1765 Commits

Author SHA1 Message Date
6534312e22 Undo Feature Finish 2023-06-07 14:15:49 +02:00
752f307acf History Feature soweit abgeschlosse, restliche undo redo actions implementiert 2023-05-30 11:20:16 +02:00
545d29289b Basic Tree Manipulation eingeführt.
Button eingeführt, lassen sich mit Pfeilen navigieren.
Tree Sortierung eindeutiger, Anzahl der Kinder als 2tes Sortkriterium. Zukunft: rekursiv sortieren
Add Undo und Redo implementiert, fehlt nur noch import, move, del und copy
2023-05-25 13:03:05 +02:00
1e57ccb9a2 Live sorting + basic history objects 2023-05-24 14:30:09 +02:00
9787f0a224 Feature Abschluss 2023-05-24 11:29:31 +02:00
a0dd8ff853 Renames + Bug fix (wiederholtes Tauschen wird nicht geupdatet) 2023-05-22 11:59:43 +02:00
02d276b6e8 Umbennenung + Selbe ID beim verschieben 2023-05-22 10:19:40 +02:00
e1ed848c78 Bearbeitungsmodus auf Drag and Drop angewandt. Bugs behoben. 2023-05-12 09:51:43 +02:00
663cc97f11 bug fix : ziel eigene tiefere Ebene verschieben 2023-03-31 16:43:16 +02:00
bf683161bb reorder + minor bug fix 2023-03-31 16:31:07 +02:00
5c0e2db7d1 simples drag n drop -> egde cases müssen noch betrachtet werden 2023-03-31 15:52:23 +02:00
a3ef1891f9 Copy and Paste implementiert 2023-03-31 12:04:55 +02:00
6d2a143331 gitignore angepasst 2023-03-28 13:14:03 +02:00
70f3b13c5f Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-28 13:09:16 +02:00
7aec8610f3 ResetAllTenants wird ignoriert, Syntax in SQL File, Pause bei Batch 2023-03-28 13:08:56 +02:00
4a679259a1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-28 13:04:13 +02:00
4d46c0db1a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-28 12:08:55 +02:00
1b364449ce MH: AKGG Kilometerauswertungen... 2023-03-28 12:07:45 +02:00
a7786269f8 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-28 11:45:16 +02:00
fffff9927f MH: BeWoAmRhein Fehlkontakte 2023-03-28 11:45:12 +02:00
cbfc9c72fd Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-28 11:07:40 +02:00
f730b6cc8f MH: Trialog Fehlkontakte 2023-03-28 10:58:43 +02:00
819f9ae265 MH: ASB Ruhr Fehlkontakte 2023-03-28 09:18:54 +02:00
161fdbd653 MH: HausTheresia Fehlkontakte 2023-03-28 08:52:32 +02:00
bcecb7846c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-28 08:38:03 +02:00
de0e83bf62 MH: BeWoTrio Briefpapier 2023-03-28 08:37:26 +02:00
Christian
73828583c5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-28 00:02:52 +02:00
Christian
4e7d7426ec Fibu Übergabeprotokoll ASB Rhein Ruhr+Die Perspektiven
+ Bugfix fehlendes Icon im Kalender nach Übertrag in Zeiterfassung
2023-03-28 00:02:15 +02:00
26e108d77b Fehlkontakte für SozialwerkAachenerChristen, KKKleve, BhsSolingen, BeWoDellbrueck u BeWoAuxilio 2023-03-27 17:44:27 +02:00
acae41bbfd Finalisierung SKFLeverkusen/Verträge 2023-03-27 17:43:14 +02:00
09018172e5 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-27 17:42:07 +02:00
1ede23b8ec MoK: ReportViewer weiterentwickelt. Ist noch nicht fertig und nur im Debug-Modus sichtbar.
FaC: Quittierungsbeleg für Lisa Wöller GmbH mit Klientenunterschrift und -datum versehen.
Quittierungsbeleg von Club 74 mit Quittierungsbelegunterschriften versehen.
2023-03-27 17:41:58 +02:00
360216770d MH: Dienstplandruck vorläufiger Fix 2023-03-27 10:24:25 +02:00
d29155be31 MH: SDN Stundenkonto 2023-03-27 09:07:02 +02:00
50e6b44775 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-27 07:24:18 +02:00
2db7bea9d8 MH: AKGG Kilometerauswertungen 2023-03-27 07:24:06 +02:00
7519574d86 WegweiserBetreuungsdienst: Labels shrinkable in Spitzabrechnungsreports 2023-03-24 15:57:56 +01:00
9ff517a5a9 MH: KirschbaumManz Unterschriften in Sozionachweis 2023-03-24 15:57:06 +01:00
69ab38d347 Merge branch 'Branch_faff3b1'
Routendistanze Berechnung per Google Maps API und openrouteService API
2023-03-24 15:53:34 +01:00
6ee126ed40 MH: AbwDziallasMuhrin Fehlkontakte 2023-03-24 15:44:00 +01:00
d079031828 MH: SKM Krefeld 2023-03-24 15:16:19 +01:00
2b255a46e7 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-24 15:00:17 +01:00
26e7aad671 MH: BetreuungsbueroBaak Fehlkontakte 2023-03-24 14:59:08 +01:00
ceea333621 WegweiserBetreuungsdienst: Compilefehler behoben, etwas Platz über den Bemerkungen eingebaut 2023-03-24 13:09:47 +01:00
Christian
34d88064ae Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-24 13:08:03 +01:00
Christian
b3d3682f49 diverse Report Anpassungen 2023-03-24 13:07:59 +01:00
95f8944a4b MH: AKGG Digitale Unterschriften 2023-03-24 13:03:16 +01:00
c80641157a MH: ASB Hamm Fehlkontakte 2023-03-24 12:43:49 +01:00
5693080683 MH: BetreuWo Reports Dienstplan Anpassung 2023-03-24 11:56:17 +01:00
4f66a8c08a MH: AKGG MID Kilometerauswertung 2023-03-24 09:16:41 +01:00
b138e800cc MH: VSD Hamm Fehlkontake 2023-03-23 19:04:55 +01:00
c2b6188499 MH: BeWoKerpen Fehlkontakte 2023-03-23 18:49:39 +01:00
aa6df4923a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-23 18:42:56 +01:00
a62f88b847 MH: BeWoTrio Spitzabrechnung 2023-03-23 18:42:54 +01:00
3416a3ea55 SKF Levekusen: automatischen Pausenabzug in Mitarbeiterstundenkonto verhindern 2023-03-23 18:36:31 +01:00
f9e53a7cba MH: BeWO Heinsberg Fehlkontakte 2023-03-23 18:33:00 +01:00
1935161169 MH: Der Karren Quittierungsbeleg 2023-03-23 18:20:36 +01:00
4d87502829 MH: Roman Roger Puth Dictionary 2023-03-23 18:04:52 +01:00
05bfc46644 MH: SKM Fallverantwortung 2023-03-23 15:38:34 +01:00
e3ff74efcb MH: Kompass BeWo Fehlkontakte 2023-03-23 12:56:07 +01:00
5b38b6c23d MH: Wegweiser FKs auf Rechnung 2023-03-23 12:19:36 +01:00
0f49bb8f16 MH: TranskulturellesBBBasaran Fehlkontakte 2023-03-23 11:54:11 +01:00
ab48428954 MH: Wetterleuchten Fehlkontakte 2023-03-23 11:18:54 +01:00
2dbaaca0ac MH: Mobile Taetigkeitsnachweis Unterschrift verschoben 2023-03-22 17:52:20 +01:00
46d6ef9536 MH: BeWO Direkt Fehlkontakte 2023-03-22 15:53:31 +01:00
66a4545a7b H: Haus Dülken FK 2023-03-22 14:19:51 +01:00
864dbce3db OpenrouteServiceAPI implementiert, Längengrad bei Addresse 2023-03-22 13:25:43 +01:00
5dbf26d165 MH: MalteserJohanniterJohanneshaus QB und CustomerDataReport angepasst 2023-03-22 11:02:19 +01:00
2be4223060 MH: SDN individuelle um Standardvorlagen ersetzt 2023-03-22 09:26:09 +01:00
26edfb5c26 MH: Toprak 2023-03-21 19:24:02 +01:00
d519bda297 MH: BeWoTrio zweite Spitzbrechnung 2023-03-21 18:57:43 +01:00
a61c399ed5 MH: FrommenBeWo Fehlkontakte auf Spitzabrechnung 2023-03-21 18:37:55 +01:00
1cebf9d1e7 MH: WöllReports Fehlkontakte auf Spitzabrechnungen 2023-03-21 18:35:39 +01:00
f89eb92248 MH: Fehlkontakte in SettlementRO angepasst 2023-03-21 18:24:46 +01:00
37b6a73788 MH: Fehlkontakte auf Spitzabrechnung ergänzt 2023-03-21 18:17:03 +01:00
876057936d MH: Frommen Briefpapier 2023-03-21 14:07:59 +01:00
b3e79cfc27 MH: Kirschbaum-Manz Fehlkontakte 2023-03-21 13:07:13 +01:00
672fae165d MH: RomanRogerPuth varfields 2023-03-21 12:14:51 +01:00
a83ab10a70 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-21 11:01:14 +01:00
7e449dc4e7 MH: Standard-QBs fehlkontaktgerecht angepasst 2023-03-21 11:00:58 +01:00
8e34e824aa SKF Leverkusen: neue Reports (Krisenplan, ABWErstantrag, -folgeantrag, -änderungsmitteilung) 2023-03-20 18:01:58 +01:00
0427dd4f88 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-20 11:15:04 +01:00
34657de93d MH: FizHof Mitarbeiterstammblatt + Bericht 2023-03-20 11:11:22 +01:00
Christian
790101f2f5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-20 09:36:13 +01:00
Christian
5d664faec5 cb: berichte 2023-03-20 09:36:04 +01:00
06cbc73cfb Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-17 22:11:28 +01:00
a9a56457ea BeWoDarmstadt Ersteinrichtung 2023-03-17 22:11:18 +01:00
Christian
a133601f41 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-17 14:16:31 +01:00
d1d846cb1d Berechnet Distanzen über Google API, Interface erstellt
- erste Tests laufen durch
2023-03-17 13:53:40 +01:00
dd67bd7ebd MH: FizHof Berichte 2023-03-17 13:25:34 +01:00
468ab65403 MH: Kirschbaum Sozionachweis 2023-03-17 10:34:49 +01:00
abc07dd2b1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-17 09:22:06 +01:00
970a0de29b MH: ChristopherusHaus 2023-03-17 09:21:46 +01:00
61663a9c05 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-17 07:59:39 +01:00
767022a926 BeWoDarmstadt/Zeitzuschlagsbeleg, HPHBersenbrueck/Rechnungen, SKFLeverkusen/Betreuungsvertrag 2023-03-17 07:59:28 +01:00
0166c078c8 MH: Kirschbaum-Manz Logoanpassung + Sozionachweis 2023-03-16 20:19:10 +01:00
Christian
8b4875317c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-16 19:10:13 +01:00
07baa9e98a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-16 18:21:02 +01:00
a36b5f8322 MH: BetreuWo Wesel Abbau von Mehrarbeit im Stundenkonto abgefangen 2023-03-16 18:20:45 +01:00
b79258a1d5 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-16 16:48:58 +01:00
a5ab2db229 Mok:
+ Änderungen an .scss-Dateien zurückgesetzt
2023-03-16 16:48:54 +01:00
af1dbaf18c MoK:
+ Textfeld wächst mit und hat eine Mindesthöhe von 150px.
+ Javascript-Version von sass entfernt. Will man .scss-Dateien kompilieren, dann Dart Sass 1.26.2 benutzen.
2023-03-16 16:39:15 +01:00
daacd8684f Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-16 15:24:54 +01:00
866d141620 MH: Christopherushaus Stunden an SOnn und Feiertagen darstellen 2023-03-16 15:24:50 +01:00
5f79ef95bd Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-16 13:58:08 +01:00
d82e1ed290 MoK:
+ Klientenfilter im Kalender-Modul: Rechte verfeinert
+ Auswertungsmodul angefangen. Nur im Debug-Modus sichtbar.

FaC:
+ In die Zeiterfassung übertragene Termine kriegen Icon auch, wenn nur der veraltete Flag "HasSerivceRecordEntry" auf true steht.
2023-03-16 13:57:04 +01:00
2901fd7403 MH: BeWoFuerDich eigener QB für Fehlkontakte 2023-03-16 11:59:25 +01:00
5b842a2569 MH: SPZ Korrektur 2023-03-15 17:25:12 +01:00
Christian
f00872a77b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-15 16:30:32 +01:00
bd0adc4a05 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-15 15:47:23 +01:00
bcac25e948 MH: FFS Mehrarbeitsausgleich 2023-03-15 15:47:20 +01:00
5528050d73 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-15 14:39:06 +01:00
565c54ee2d Fehler behoben CustomerDataRO - Anzeige jetzt auch für divers 2023-03-15 14:39:01 +01:00
6769ce67f1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-15 13:54:29 +01:00
c739e5f070 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-15 13:49:55 +01:00
42aad3fce2 MH: SPZ Leverkusen neuer QB für Fehlkontakte 2023-03-15 13:49:32 +01:00
8e02a39d51 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-15 13:46:10 +01:00
3978a0365d SynpraxReports/SettlementReport, PerspektivenEV Postfach, CaritasWuppertalSolingen/ServicesOverviewReport, GenderBeWoReports/ServicesOverviewReport 2023-03-15 13:45:47 +01:00
e37adcc0c4 AsbRheinErftDuerenSBD/SbdRechnung, HausDuelken Rechnungstellung 2023-03-15 13:45:01 +01:00
aa82bc1acd SkF Leverkusen: Betreuungsvertrag 2023-03-15 10:57:30 +01:00
da52dfe888 Distance Matrix API, noch auf app5 2023-03-15 10:09:46 +01:00
Christian
7fbcc7c2a3 cb, alle todos für die Version 3.13 und diverse Reports 2023-03-14 18:12:07 +01:00
9d3daf7df7 MoK:
Bugs gefixt.
Großes Esszett wird durch das kleine ersetzt; es kommt sonst zu einer Ausnahme.
Termine, die auf die alte Art und Weise in die Zeiterfassung übertragen wurden, werden wieder als übertragen angezeigt.
2023-03-14 16:12:52 +01:00
5f156254f6 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-13 19:43:42 +01:00
fda2c306b5 MoK: Report Viewer hinzugefügt
FaC: Das alte Flag von Terminen, die in die Zeiterfassung übernommen worden sind, wird ebenfalls berücksichtigt.
2023-03-13 19:39:04 +01:00
9fee72b5a1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-13 17:08:21 +01:00
8f3ae4a265 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-13 17:01:42 +01:00
7955647ebd MH: BAW Aachen Spitzabrechnung Anpassung 2023-03-13 17:01:39 +01:00
d7153ca204 SKFM 2023-03-13 16:48:19 +01:00
aff4593568 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-13 16:47:29 +01:00
a51c2edcbc CaritasWuppertalSolingen DatevExporter 2023-03-13 16:47:25 +01:00
78615406e3 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-13 16:18:03 +01:00
f848e702d3 MH: SKM Krefeld QB und Rechnungen 2023-03-13 16:17:50 +01:00
fbe98443b4 SHKService, LeWoAachen/SettlementReport2, SKFLeverkusen/Betreuungsvertrag 2023-03-13 14:26:57 +01:00
7617c7e347 SozialwerkAachenerChristen: Spitzabrechnungsberichte (Settlementreport2 neu, SettlementReport überabeitet) 2023-03-13 13:23:37 +01:00
25957f3881 MH: ZuHauseWohnenIrisThimm neue AZ-Nachweis-Spalte 2023-03-12 13:14:23 +01:00
4979684dba MH: BeWo Am Rhein Rosenmontag eingefügt 2023-03-10 11:50:53 +01:00
7c5eadd545 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-10 11:32:10 +01:00
87875b4fc8 MH: Caritas Solingen Methodenverknüpfung 2023-03-10 11:32:08 +01:00
5a008252e7 VSD Soest/Hamm: Mehr Platz fuer Unterschrift auf Spitzabrechnungsrechnung 2023-03-10 11:29:07 +01:00
cb002dbe8a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-10 10:16:00 +01:00
5c42bc2f7d MH: BAW Aachen Spitzabrechung Zeilenumbruch verhindert 2023-03-10 10:15:28 +01:00
Christian
b05f57c2fa Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-09 17:31:12 +01:00
f131c5347c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-09 17:25:46 +01:00
058e2fe14d - Quittierungsbelegunterschriften aus dem MoK den Quittierungsbelegen von INKOMM GmbH hinzugefügt
- Quittierungsbeleg von AWO Münsterland Recklinghausen gelöscht, weil die noch keine Kunden sind
2023-03-09 17:25:43 +01:00
Christian
b4c163906d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-09 17:02:17 +01:00
fc252acf77 MH: SKFM Stundenkonto angepasst 2023-03-09 14:44:10 +01:00
cf6cd1f44b MH: Lebenswert Kontaktpauschalen 2023-03-09 14:12:22 +01:00
8bbb08aa11 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-09 13:50:41 +01:00
eea1209075 MH: InKomm Ordnerstruktur nummeriert 2023-03-09 13:50:24 +01:00
95ba9abd3a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-09 13:26:58 +01:00
d7128b9ab6 AsbRheinErftDuerenSBD Rechnungsvorlage, BeWoDarmstadt, SozialwerkAachenerChristen/Quittierungsbeleg 2023-03-09 13:26:47 +01:00
62602fed04 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-09 10:51:09 +01:00
78ac51cf10 KollegiumEV: SettlementReport2 hinzugefuegt (fuer Spitzabrechnung mit vielen verschiedenen Stundensaetzen) 2023-03-09 10:03:28 +01:00
90203d56ad Globalen Exception-Handler im MoK hinzugefügt und das Fehlerfenster in alle Catch-Teile eingebaut. 2023-03-08 20:17:19 +01:00
d549e43f60 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-08 17:15:40 +01:00
aa5f5e01bf AsbRheinErftDuerenSBD und SKFLeverkusen/SettlementReport 2023-03-08 17:15:36 +01:00
baf0fe9297 HPH Bersenbrueck: Rechnungen gebaut 2023-03-08 17:04:07 +01:00
66b4e96cfc MH: Fehlkontakte MitMenschenWuppertal 2023-03-08 14:35:46 +01:00
a049140a82 MH: ZuhauseWohnenIrisThimm AZ Erfassung 2023-03-08 12:56:55 +01:00
979b19533b Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-08 10:02:02 +01:00
bae803d842 MH: Perspektive und PerspektiveN korrigiert 2023-03-08 10:01:51 +01:00
948e47bd08 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-08 09:22:53 +01:00
3cdc5f8c00 EvVereinFürWohnraumhilfe 2023-03-08 09:22:41 +01:00
33818f13c0 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-07 13:32:27 +01:00
9f052ea692 MH: Perspektiven Unterschriften 2023-03-07 13:32:15 +01:00
0b58b479a8 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-06 17:32:45 +01:00
8567f6545f SKFLeverkusen 2023-03-06 17:32:41 +01:00
Christian
defd3b5cef Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-03-06 16:45:09 +01:00
Christian
fe777ec9e8 CB, diverse Berichte 2023-03-06 16:45:02 +01:00
4a31af06f0 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-06 16:21:20 +01:00
4bd9dffd0b FaC:
Klienten meiner Teams werden im Kalender angezeigt, auch wenn man sonst keine sehen darf.
Nach der Änderung von Benutzergruppen in denen der angemeldete Mitarbeiter ist, wird der Cache geleert, um den Änderungen entsprechende Objekte aus der Datenbank neuzuladen.
2023-03-06 15:56:50 +01:00
cfd1583dc9 MH: BeWo Walz Genehmigungskennzeichen auf Sammelrechnung 2023-03-06 15:02:18 +01:00
147d9e1cf7 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-06 13:40:37 +01:00
e241c414e4 MH: Urlaubskonto Bugfix 2023-03-06 13:39:58 +01:00
e06f7907b0 Fehlende Verweise im BeWoAllReports hinzugefügt 2023-03-03 22:08:15 +01:00
ae312f5d02 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-03-03 21:54:43 +01:00
f99d674f8c FaC:
NullPointerException bei Zusagen/Absagen von Serienterminen gefixt.
Terminanzeige im HomeView hat "In Zeiterfassung übertragen"-Icons
Terminanzeige Termine werden wie folgt dargestellt: [Datum]: [Betreff]

MoK:
Auswahl des Ladeintervalls der Zeiterfassungseinträge ist standardmäßig auf "Letzte 7 Tage" und die Änderung wird nur in der Session gespeichert.
Termine in die Zeiterfassung übertragen
2023-03-03 21:54:36 +01:00
e03e3eb144 MH: Lebenswert Kontaktpauschale für Hannover 2023-03-03 15:20:03 +01:00
231519268f Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-02 19:33:21 +01:00
ef168ea0c3 MH: SHKService Zeitabzug 2023-03-02 19:33:19 +01:00
63196539a1 Tippfehler im Quittierungsbeleg-Report von moveAUT korrigiert 2023-03-02 19:29:03 +01:00
3ad6deecfb MH: Input Gruppenbuchung Rundung weggenommen 2023-03-02 18:59:11 +01:00
9772016d05 MH: User Datei 2023-03-02 11:59:31 +01:00
7d44896c08 MH: Kompass SettlementReport2 eingefügt 2023-03-02 11:44:33 +01:00
aca7bd9688 MH: MObile Fix 2023-03-01 11:59:40 +01:00
6014e966ab Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-03-01 11:53:28 +01:00
fa0d9753a3 MH: Fix Mobile eV 2023-03-01 11:53:13 +01:00
Christian
7d66251ad9 Todo Stunden/Minuten Auswahl erledigt + diverse Berichte (Akgg, IBP) 2023-02-28 17:16:54 +01:00
f0318034f7 MH: Wichernhaus Fehlkontakte auf Sammelrechnung 80 Prozent 2023-02-28 17:14:06 +01:00
36240d8bfd MH: MobileEV Taetigkeitsnachweis auf Kategorien angepasst 2023-02-28 16:50:58 +01:00
187b85dcd6 MH: ALzey QB Unterschriftenfix 2023-02-28 16:37:35 +01:00
25e64ac732 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-28 16:20:02 +01:00
8e74d24703 MH: SHK Service Zeitabzug eingefügt 2023-02-28 16:18:40 +01:00
5c4c529c25 Speichern von Zeiterfassung außerhalb HP-Zeitraum zulassen falls Recht vorhanden 2023-02-28 15:05:33 +01:00
600df92813 MH: Autismus KB CustomReportCreator 2023-02-28 14:30:00 +01:00
d9af69a787 MH: Adik Kleve Fußzeile angepasst 2023-02-28 12:44:18 +01:00
cdc9416b7f MH: Nochmal hph Bersenbrück, sie hatte was vergessen.. 2023-02-28 12:29:16 +01:00
cc7363f124 MH: LH Coburg InvoiceCreation 2023-02-27 17:02:54 +01:00
3a0b6f9ad8 MH: Schriftzug wegen Briefpapier runtergesetzt 2023-02-27 15:54:08 +01:00
cf7b67fb5c MH: Angehörige auf Stammdatenblatt verknüpft 2023-02-27 15:01:06 +01:00
8a5131fd67 MH: SKM Krefeld Logo Fix 2023-02-27 13:31:11 +01:00
cf9ff6427e MH: Rechnungslayout gefixt bei Wegweiser Betreuungsdienst 2023-02-24 12:36:05 +01:00
83d539e974 MH: Lebenswert QB Anpassung 2023-02-24 10:58:11 +01:00
093e059769 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-24 08:22:18 +01:00
26c82591a1 MH: MobileEV Rechnungstext angepasst 2023-02-24 08:22:00 +01:00
1a265b641f Diverse Verbesserungen im Kalendermodul.
MoK: Klientenstammdaten editierbar gemacht
2023-02-23 17:02:42 +01:00
aa8e390e6d Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoPlanerMobil/Views/Shared/_Layout.cshtml
2023-02-23 15:12:53 +01:00
ffec43bd77 test 2 2023-02-23 11:48:41 +01:00
d8444d23ad MH: SDN Quote neu berechnet 2023-02-23 11:32:27 +01:00
f219a2c850 MH: HPH Bugfix 2023-02-23 08:47:57 +01:00
9ec5e28227 MH: HPH Bersenbrück 2023-02-23 08:19:32 +01:00
2f8cd3926f MH: LH Coburg 2023-02-23 08:03:40 +01:00
595bc8c4ec MH: LH Coburg nochmal Rechnungsanpassung 2023-02-22 15:59:39 +01:00
1a7475c1f3 MH: FFS Stundenkonto-Fix und Pausen selbst eintragbar 2023-02-22 15:35:54 +01:00
dda813e018 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-22 13:41:47 +01:00
096eea1bca MH: IlkaLinkIvi 2023-02-22 13:41:07 +01:00
d643c32679 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-22 10:51:01 +01:00
8c09069fc9 AkggMid und diverse Reports 2023-02-22 10:50:49 +01:00
c2a2b322aa Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-22 10:08:24 +01:00
de7bc510bd MH: Änderung LH Coburg, MobileEV, VARO, Caritas Guenzburg, VKM Aachen 2023-02-22 10:07:53 +01:00
cd7d4ce7ad Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-16 08:02:50 +01:00
Christian
2849b1db0e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2023-02-15 20:14:38 +01:00
Christian
c4b7703842 cb 2023-02-15 20:13:03 +01:00
2dd50af7f8 test 2023-02-15 18:31:54 +01:00
b3f67d5de5 Overlapping in MitarbeiterstundenkontoBerechnung 2023-02-15 17:33:50 +01:00
14f37e025c BeWoDarmstadt/Zeitzuschlagsbeleg, PerspektivenEV/ServiceRecordValidator.cs, SKFLeverkusen,
LebensWert, MobileEV, ChristinaFrommen
2023-02-15 17:33:28 +01:00
13b990d702 AsbRheinErftDuerenSBD, SKM Krefeld, BWARMitarbeiterstundenkontoBerechnung,
VSDHammReports/Leistungsnachweise
2023-02-15 17:31:59 +01:00
550fde89dd MH: Wohnheimrechnung LH Coburg 2023-02-15 17:04:19 +01:00
5e446b1efc MH: Verfallsdatum Resturlaub SKM Krefeld 2023-02-15 11:56:49 +01:00
4c79529c30 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-13 22:01:24 +01:00
b0b76df095 MH: LH Coburg InvoiceCreation 2023-02-13 22:01:09 +01:00
fb478d4738 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-13 14:55:50 +01:00
c28d29d8f1 MalteserJohanniterJohanneshaus/Quittierungsbeleg 2023-02-13 14:55:46 +01:00
051585ba6f . 2023-02-13 12:33:43 +01:00
afbbcf7e66 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-13 11:50:35 +01:00
7edfd137f4 MH: LH Coburg neue Schlüssel hinterlegt 2023-02-13 11:50:11 +01:00
1487d2c438 PluginLoader 2023-02-13 11:25:23 +01:00
1a3050ac3c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-13 11:20:04 +01:00
b148a6162f Neukunde 2023-02-13 11:16:41 +01:00
277db3d99a MalteserJohanniterJohanneshaus/Quittierungsbeleg 2023-02-13 11:12:57 +01:00
875cd86125 BeWoKoelnSued/Quittierungsbeleg, CaritasWuppertalSolingen/ServicesOverviewReport, EvVereinFürWohnraumhilfe/CollectiveBillingReport 2023-02-13 11:11:44 +01:00
2efc0c3462 MobileEV Hilfeplanuebersicht, SKMKrefeld/Quittierungsbeleg, AidshilfeDortmund Fehlkontakt, AutismusLeben/SettlementReport 2023-02-13 11:10:33 +01:00
be3f0d251f Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-13 09:31:54 +01:00
54130bebbe MH: PaS QB Fehlkontakte 2023-02-13 09:31:23 +01:00
Christian
38a8c5f675 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-02-10 16:18:22 +01:00
Christian
6a8e628d54 cb 2023-02-10 16:18:18 +01:00
98335de54e MH: SDN Fehlkontakte auf QBs 2023-02-10 15:58:19 +01:00
a9b06b41dc . 2023-02-10 15:31:58 +01:00
0e80ae2499 MH: Rundung input Familienhilfe 2023-02-10 10:01:01 +01:00
31eee429c3 Bugfixes im Intervallfinder und Rechteprüfung verbessert im MoK 2023-02-09 20:47:52 +01:00
845719d3b5 MH: ASB Ruhr Unterschriften 2023-02-09 18:23:32 +01:00
9dcf9c7e86 MH: Fehlkontakte auf QB von Diakonie Lennep 2023-02-09 18:14:54 +01:00
fd9dd9190c MH: Bella Donna Handynummer verschoben 2023-02-09 18:07:36 +01:00
5beb04bd12 MH: BAW Rundung fixen + BetreuWo Unterschriften 2023-02-09 16:48:37 +01:00
c4aaeaf45c Bugfixes im Kalendermodul des MoK 2023-02-09 15:17:33 +01:00
de1b269bf3 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-09 11:42:23 +01:00
bf347e2538 MH: BAW Fix 2023-02-09 11:42:09 +01:00
1e0b2513f9 BhsSolingen/CustomerDataReport, BHVBergischeHauspflege, AWOMuensterlandRecklinghausen 2023-02-08 19:02:51 +01:00
7e04cba1ea BeWoDarmstadt Zeitverteilung 2023-02-08 19:02:19 +01:00
da7c5ccf18 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-07 15:16:46 +01:00
5c07fd02c2 MH: BHV 2023-02-07 15:16:27 +01:00
062c91bc28 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-07 14:44:00 +01:00
8083d0bf7b BhsSolingen CustomerDataReport 2023-02-07 14:43:56 +01:00
ac4361b205 AWOMuensterlandRecklinghausen Qbeleg, SHKService und AsbRheinErftDuerenSBD 2023-02-07 14:42:36 +01:00
6a15452a1d MH: Fehlkontakte auf QB 2023-02-07 12:29:44 +01:00
fa2f0cd5a6 MH: Alzey fehlende Methode eingefügt 2023-02-07 12:24:00 +01:00
2d5b3acb91 MH: Storno für Alzey 2023-02-07 12:09:25 +01:00
ea5a37b838 MH: BeWoAmRhein UNterschriften QB 2023-02-07 09:45:24 +01:00
3cb216c627 MH: Unterschriften Alzey 2023-02-07 09:41:08 +01:00
72c5baf375 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-06 17:10:17 +01:00
067f267c10 MH: KCM BeWo QB Unterschriften 2023-02-06 17:06:05 +01:00
52a73af6b6 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-06 16:45:12 +01:00
fea1def0be AsbRheinErftDuerenSBD und SKFLeverkusen 2023-02-06 16:45:02 +01:00
0c10621834 Wichernhaus, ChristinaFrommen und BeWoSchillingReports 2023-02-06 16:44:33 +01:00
36254ebcaf SbdDefaultInvoiceCreation 2023-02-06 16:43:27 +01:00
3b83c6473c MH: BAW Aachen 2023-02-06 10:58:22 +01:00
036ffe43c6 MH: aha eV Anpassungen 2023-02-06 08:58:45 +01:00
d8ef4c8c0b Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-03 13:26:33 +01:00
15a71e3dc5 MH: HomeView Anpassung BAW Aachen 2023-02-03 13:26:23 +01:00
9e255007b3 ChristinaFrommen Fehlkontakte und PluginLoader Neukunde SKF 2023-02-03 10:07:32 +01:00
d7ad849f9b MH: Kritischer Bugfix Alzey 2023-02-02 19:18:15 +01:00
5eb9d2a998 MH: Digitale Unterschrift auf QB 2023-02-02 18:43:10 +01:00
0cab990d4a MH: Ausfallzeiten AidshilfeEssen 2023-02-02 17:48:42 +01:00
d23ce27fe4 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-02 09:58:29 +01:00
40959ecce5 MH: Alzey QB Fix 2023-02-02 09:58:17 +01:00
c50e0df174 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-02 08:01:34 +01:00
acd625828e VkmHamm Pausenabzug, Änderung IKNR BeWoSchillingReports 2023-02-02 08:01:29 +01:00
b73c5a7f2b SHKService/CustomReportCreator, Neukunde SKFLeverkusen 2023-02-02 08:00:43 +01:00
0088a2b510 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-02-01 20:43:32 +01:00
9114dc2e0b MoK:
Layout verbessert
Diverse Bugs im Kalender- und Intervallfindermodul gefixt
2023-02-01 20:41:13 +01:00
5a59c3dca8 MH: BellaDonna Platz für 4 Stundensätze gemacht 2023-02-01 16:25:10 +01:00
d0651f5830 MH: BAW Rechnunganpassung Rundung 2023-02-01 16:13:33 +01:00
c36e6fdc05 MH: ServiceRecordValidator gefixt 2023-02-01 14:27:19 +01:00
6d42000d99 MH: Fehlkontakte auf Neustart QB 2023-02-01 13:41:08 +01:00
6e62c1a703 MH: Über/Unterbringung + Rechnung auf QB Alzey 2023-02-01 13:04:09 +01:00
1e2a9df1f2 MH: Fehlbesuche für PSH Bochum 2023-02-01 10:30:28 +01:00
87255b9b7c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-02-01 09:26:17 +01:00
734eb0cc8a MH: Anzeige der Betreuer angepasst AutismusKölnBonn 2023-02-01 09:26:07 +01:00
126871c319 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-02-01 07:45:14 +01:00
1b79e91154 AbwWeeger Fehlkontakt und DieDüne 2023-02-01 07:45:03 +01:00
d47177f8a4 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-31 16:12:15 +01:00
1bf7b3ba92 MH: Gesamtbudget Fehler für VARO behoben 2023-01-31 16:12:11 +01:00
87ea2572cb Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-01-31 12:15:05 +01:00
2ada883bf3 Wöll, PaSMoenchengladbach/SettlementReport und SDN 2023-01-31 12:14:55 +01:00
b94271a374 MH: Alzey Bedingung für ReportCreator hinzugefügt 2023-01-31 11:46:42 +01:00
a62ebd4cd1 MH: Pause als Leistung ausgeschlossen BAW Aachen 2023-01-31 09:21:47 +01:00
8315474820 MH: Pausen bei der Validation ausgeschlossen BAW 2023-01-31 09:14:57 +01:00
4ba8f39416 MH: Fehlkontakt QB + Hessische Feiertage aha EV 2023-01-30 13:04:40 +01:00
a18b6471ba Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-30 10:16:30 +01:00
2ec80fe0d1 MH: QB BAW Aachen 2023-01-30 10:16:19 +01:00
c9f0e6dcc1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-01-30 08:59:27 +01:00
1780496156 EvVereinFürWohnraumhilfe Umbennnung, PaS Spitzabrechnung, DieDueneReports/ServicesOverviewReport und QuerFaelltEin/Quittierungsbeleg 2023-01-30 08:59:18 +01:00
c0bc270c01 MH: BAW Aachen Rechnungsanpassungen + AZ-Erfassung 2023-01-27 17:33:05 +01:00
d2cf541cdc MH: BZH Essen Fehlkontakte auf QB 2023-01-27 14:30:41 +01:00
cab648dc5d Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-27 10:31:51 +01:00
c2c6c834af MH: PortaEV AZ-Kategorie angepasst 2023-01-27 10:31:40 +01:00
bfbc584aa0 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-01-27 08:39:53 +01:00
bd2b80b8bf DiakonieKKKleve/RechnungSoziotherapie und DiakonieMuelheim/Quittierungsbeleg 2023-01-27 08:38:02 +01:00
951fde3a12 MH: Fehlkontakte auf QB für DiakonischesWerkWesel 2023-01-26 15:51:49 +01:00
b409e7a0e1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-26 15:29:50 +01:00
ad6dbcd011 MH: Rechnungen etwas kompremiert für WegweiserBetreuungsdienst 2023-01-26 15:29:44 +01:00
78fea62561 Konflikt gelöst 2023-01-26 13:46:34 +01:00
197c1b8da6 FaC:
Termine in die Zeiterfassung übernehmen hat jetzt eine Link-Table, um das entsprechende Icon zuverlässig anzuzeigen.

MoK:
Löschen von Quittierungsbelegunterschriften eingebaut.
Bewerten von Zielen/Maßnahmen an das entsprechende Recht gekoppelt.
2023-01-26 12:55:56 +01:00
270cb28f25 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-26 12:26:50 +01:00
2de19d2942 MH: MalteserJohanniterJohanneshaus QB 2023-01-26 12:26:13 +01:00
Christian
5a1f9f0023 cb 2023-01-26 00:31:27 +01:00
5019b9cc5e Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-25 17:06:39 +01:00
b8006517d6 MH: Spitzabrechnung BAW Aachen 2023-01-25 17:06:33 +01:00
cfc9d02e2c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-01-25 14:29:49 +01:00
19dd5ae4c3 LisaWöll Quittierungsbelege 2023-01-25 14:29:44 +01:00
8e28133bf1 MH: Malteser QB + BAW Aachen Settlement2 + QB67er 2023-01-25 13:58:21 +01:00
7803ddd140 EvVereinFürWohnraumhilfe 2023-01-25 07:55:46 +01:00
c6f67226e5 MH: BeWo Im Flow 2023-01-25 07:52:07 +01:00
4719a9224a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-24 21:19:51 +01:00
171b0080de MH: BAW Sammelrechnung den Wünschen entsprechend angepasst 2023-01-24 21:19:40 +01:00
a890ad3e25 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2023-01-23 16:01:51 +01:00
67b08e1ef6 DiakoneKKKleveSoziotherapie, Zuverdienst 2023-01-23 16:01:33 +01:00
8d3b2350de BetreutesWohnenWoellReports/QuittierungsbelegASL und FLS angepasst
SHKService Mitarbeiterarbeitszeitkonto
2023-01-23 16:00:53 +01:00
c1dad8a5f8 MH: Quittierungsbeleg angepasst BeWo Im Flow 2023-01-20 17:00:56 +01:00
f546e34386 MH: Automatische Pausen für BAW raus 2023-01-20 10:36:27 +01:00
cfdb3cdc36 MH: AZ-Erfassung Pausen ab 01.02. 2023-01-20 09:43:35 +01:00
ce304eabb7 MH: Wegweiser SettlementReport Seitenumbruch + SPFH Rechnung 2023-01-20 08:49:32 +01:00
4c942e298a MH: BeWoDirekt Stundenkonto Fix Prototyp 2023-01-19 19:34:40 +01:00
f223ce63ba MH: AZ-Nachweis FFS Soll an Abwesenheitstagen 2023-01-19 19:11:10 +01:00
9dae2a7b31 MH: QB für §67 BAW Aachen 2023-01-19 18:05:21 +01:00
33cc3aab80 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-19 17:51:57 +01:00
b2f7a2bb95 MH: Christian hat den Tag gerettet 2023-01-19 17:51:45 +01:00
3d07aa38a8 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-19 17:20:51 +01:00
d361307cb4 FaC:
Geänderte Ausnahmen von Serienterminen werden bei der Ressourcenverfügbarkeitsprüfung berücksichtigt.
2023-01-19 17:19:09 +01:00
e22d49fb19 MH: QB Hannover digitale Unterschriften 2023-01-19 15:37:08 +01:00
1c8b734f6a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-19 11:17:54 +01:00
3463bb6f58 MH: AZ-Erfassung anpassung BeWoDirekt 2023-01-19 11:17:39 +01:00
70d7e7b84c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-18 20:48:33 +01:00
f6ce07e2da MoK:
Korrekte Costbearer2SupportConceptOid wird bei Gruppenbuchungen ausgewählt
Dauer ist nicht standardmäßig 0 bei Gruppenbuchungen
2023-01-18 20:48:27 +01:00
bb793b6014 MH: AZ-Erfassung VKM Hamm 2023-01-18 18:14:33 +01:00
db608d9451 MH: AWO Dortmund Spitzabrechnung 2023-01-18 17:38:51 +01:00
a5ad1ee494 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-18 17:13:52 +01:00
a94d24392e MoK:
Korrekte Costbearer2SupportConceptOid wird in der Gruppenbuchung ausgewählt
2023-01-18 17:13:42 +01:00
4b9d292be1 MH: QB für MalteserJohanniterJohanneshaus 2023-01-18 16:46:53 +01:00
58c178000c Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-18 13:59:52 +01:00
b3f47204ac MH: AZ-Erfassung BeWoDirekt 2023-01-18 13:59:48 +01:00
e65e47c9bb Konflikte gelöst 2023-01-18 13:47:25 +01:00
1dc127db4e FaC:
Anonymisierung überarbeitet
Gelöschte Termine einer Terminserie werden bei der Ressourcenprüfung nicht mehr beachtet

MoK:
noch nicht fertig: Quittierungsbelegsmodul verbessert (Eingaben bleiben beim Neuladen erhalten, Löschbuttons + Rechte dafür folgen)
2023-01-18 13:43:11 +01:00
e848cbdcb3 MH: Ordnerstruktur MalteserJohanniterJohanneshaus 2023-01-18 12:27:06 +01:00
3d607a4390 MH: Ordnerstruktur für SHK Service 2023-01-18 12:08:35 +01:00
43f737e7f8 MH: Fehlkontakt BeWoAmRhein 2023-01-18 11:27:21 +01:00
3175042f57 MH: VARO neue Unterschriften 2023-01-17 18:11:13 +01:00
7e4426c92d MH: InKomm Ordnerstruktur 2023-01-17 13:49:43 +01:00
b753496b7a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-17 12:30:47 +01:00
7d3a73c0b2 MH: Briefpapier Club74 2023-01-17 12:30:32 +01:00
Christian
4e9e5d53ba cb 2023-01-17 00:12:53 +01:00
Christian
f3cc657a00 cb 2023-01-17 00:12:33 +01:00
25200b6ec8 Überflüssiges Semikolon entfernt in MainModel.cs 2023-01-16 15:04:29 +01:00
ffc7cb01ec Fehler behoben und QuittierungsbelegsResultPartial.cshtml hinzugefügt 2023-01-16 14:55:13 +01:00
11b80297be Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-16 14:34:05 +01:00
d8b0d4638e . 2023-01-16 14:33:52 +01:00
930ddf98a2 MH: SHK AZ Erfassung 2023-01-16 13:15:45 +01:00
761b791786 MH: AZ-Nachweis Goldfisch 2023-01-16 12:51:43 +01:00
85029baeda MH: Sammelrechnung für BAW Aachen 2023-01-16 12:08:19 +01:00
62ce7d010f MH: ReportCreator von RatPlusTat gefixt 2023-01-16 09:42:46 +01:00
0bc8f98f2e MH: SDN Faktor vertauscht.. 2023-01-16 09:24:55 +01:00
59d1263795 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-13 14:59:07 +01:00
29a8c3fc92 MH: BAW Sammelrechnung und 2. Spitzabrechnung 2023-01-13 14:59:04 +01:00
Christian
001c9171a6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-01-13 14:44:40 +01:00
Christian
acd8cd0a67 model changes 2023-01-13 14:44:30 +01:00
7bbca86f8d MH: Grundstein automatische Pausen abziehen 2023-01-13 12:30:28 +01:00
a9a15440da Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-13 11:08:11 +01:00
215d64d14c MH: Fehlkontakte FFS + Spitzabrechnung BAW 2023-01-13 11:07:59 +01:00
09d87b06ee Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-12 19:47:59 +01:00
0e7e4d3288 FaC: das Ändern eines Termins einer Serie mit Ressourcen führt nicht zu einer falschen Überschneidungsmeldung 2023-01-12 19:47:14 +01:00
66ad7052d9 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-12 18:36:23 +01:00
e7b92a0cfd MH: BAW Invoice 2023-01-12 18:36:14 +01:00
7c12915a30 Bug der langsamen Ladezeit behoben(Lädt nichtmehr unnötig herunter)
ToDo: Logik in Mvvm umschreiben -> Bessere Übersicht
- Datenlogik in Model lagern
- Logik aus Views holen
- ViewLogik in ViewModel
- Bindings
2023-01-12 13:30:29 +01:00
Christian
2f3218ca19 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2023-01-12 12:14:03 +01:00
Christian
3c426c0fc0 cb 2023-01-12 12:12:27 +01:00
7ea3f58b94 MH: Fehlkontakte auf QB für MobileEV 2023-01-12 11:42:12 +01:00
f47548731e MH: Korrektur QB Lebenswert 2023-01-12 11:09:51 +01:00
788743619f Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-12 10:45:20 +01:00
43878ec3de MH: Anpassung QB Haus Duelken 2023-01-12 10:44:53 +01:00
920f61eca7 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-11 17:28:15 +01:00
5ec0bd6dad Bugs beim Laden von Terminen im HomeView gefixt
Rechtelogik verbessert; Termine mit Mitarbeitern, die man nicht sehen dürfte, bei denen man aber in der Mitarbeiterliste ist, werden angezeigt.
2023-01-11 17:26:38 +01:00
260e94cbca MH: BAW Rechnung 2023-01-11 15:26:57 +01:00
e978e2f6fb MH: BZH Fehlkontakte auf QB 2023-01-11 14:09:19 +01:00
2fe9dd226d MH: AssL aus Spitzabrechnungen entfernt für Aidshilfe Duisburg 2023-01-11 13:22:45 +01:00
3d0cdc03f9 MH: Seht Münster Rechnungen und QB 2023-01-11 10:48:18 +01:00
202b14f213 MH: Seht Muenster Anpassung 2023-01-11 08:13:49 +01:00
01338e74d0 MH: AZ-Erfassung für Grundstein 2023-01-10 17:44:47 +01:00
9aeaa9bf71 MH: Rechnungsanpassung BeWo Im Flow 2023-01-10 17:34:33 +01:00
7dfc7163ef MH: FFS Stundenkonto Fix 2023-01-10 14:18:43 +01:00
ee17b14606 MH: VSD Hamm Fix 2023-01-10 12:27:39 +01:00
f240faaad5 MH: AZ-Nachweise für Porta undd Betreuungsservice 2023-01-09 18:16:14 +01:00
421fae3332 Feature: Download Server ignoreren, wenn nicht vorhanden
Client macht vorm Update Checken eine Anfrage an den Download Server und prüft dessen Verfügbarkeit. Sollte keine vorhanden sein, so wird der Client direkt gestartet.
2023-01-09 17:28:56 +01:00
b40c92d17a Update wird übersprungen, wenn Update Server nicht erreichbar 2023-01-09 15:43:48 +01:00
77f2f549dc Update passiert über Sessions.
Sessions werden beim Plan erstellt
Sessions beinhalten Session_ID, Tenant (Zugriff auf andere Kunden unterbinden) und alle Files zum Download.
Files sind standardhaft 5x abrufbar.
Nach dem Closen von Sessions werden ALLE Sessions überprüft, ob ein Timeout vorliegt.
-> verbesserungsfähig

Sessions gelten nach 10 Minuten als ungültig.
Sessions ohne Files werden geclosed
2023-01-09 15:30:50 +01:00
2a00632c87 MH: FFS QB und AZ-Nachweis 2023-01-09 12:51:20 +01:00
8dcb0f05f5 MH: FFS 2023-01-06 17:45:12 +01:00
33b9874321 Kleinere Bugs (Beim Install Fail und erneute Install wird die Location nicht geupdatet) -> Größe der Festplatte wird nicht berechnet.
.xml und .pdb Dateien vom Update ausgeschlossen
UnitTests machen trotzdem zusätzlichen Stress bzgl der verschiedenen Frameworks
Fehler im Launcher werden im rootgrid2 statt rootgrid angezeigt
Logger wird vorerst aufm Server ignoriert
2023-01-06 16:55:01 +01:00
5860be96ca MH: Briefpapier SDN 2023-01-06 15:12:19 +01:00
d8d4f04c44 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-06 14:59:47 +01:00
2f63fba19a MH: Briefpapier und Unterschriften für KommMitBeWo 2023-01-06 14:58:52 +01:00
8825798754 Feature Doppelte Authentifizierung + Download Stückweise abgeschlossen 2023-01-06 14:11:08 +01:00
1ffecba567 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft//BeWo 2023-01-05 16:22:18 +01:00
80c20e5291 MoK:
- Breite der Labels verbessert
2023-01-05 16:22:04 +01:00
Christian
4a5f526180 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/ServiceImplementations/ResourceServiceImp.cs
2023-01-05 14:03:32 +01:00
Christian
25da18d93c cb 2023-01-05 13:56:27 +01:00
96e5616951 MH: LH Coburg Rechnung 2023-01-04 20:14:35 +01:00
aa1e50c9e8 MoK:
- Kompakteres Design für die Zeiterfassung
 - Bug bei dem es zu einer negativen Dauerberechnung kam behoben
2023-01-04 19:55:12 +01:00
3438abc90a MH: Pause rausgerechnet bei Rat Plus Tat 2023-01-04 13:29:10 +01:00
ca7cc0e651 MH: ZAD Nr für Grundstein angepasst 2023-01-04 10:21:26 +01:00
292897c09c MH: QB VSD Hamm gefixt 2023-01-03 14:48:10 +01:00
06aebe89d8 MH: ASS-QB für Haus Dülken 2023-01-03 13:44:40 +01:00
cf7dc80a6b MH: AZ-Nachweis FFS angepasst 2023-01-03 11:24:58 +01:00
e0e5eedf2a Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2023-01-02 15:48:55 +01:00
bbda0adf5a MH: FFS AZ-Nachweis + LH Coburg 2023-01-02 15:48:41 +01:00
a2f962f701 Konflikte gelöst 2022-12-30 16:41:42 +01:00
58b361498f FaC:
ServiceRecord-Fremdschlüssel zu NewSchedulerAppointment-Tabelle hinzugefügt. Funktionalität ist noch nicht implementiert.

MoK:
Ziele/Maßnahmen verbessert; Suche funktioniert jetzt richtig
Mehrfachbuchung implementiert
Kalender:
Termine sind jetzt löschbar, wenn Recht zu bearbeiten vorhanden ist.
Unterscheidung zwischen Mitarbeiter-, Klienten-, und Ressourcenauswahl bei Ansicht und Formular
2022-12-30 16:28:23 +01:00
94e12adef5 MH: Fehlbesuche auf QB für PsychosozialeHilfenBochum 2022-12-30 10:45:46 +01:00
0eb72d5e55 MH: RosterRO Fix 2022-12-29 13:57:48 +01:00
c9bff87ad2 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-29 12:32:11 +01:00
7cf1a6fa54 MH: CreatorName auf Dienstplanausdruck 2022-12-29 12:32:07 +01:00
51a068a19f MH: Allgemeine Rechnungen stornierbar gemacht + Nummer für Perspektiven 2022-12-29 12:15:47 +01:00
Christian
94829b1432 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-12-28 23:57:55 +01:00
Christian
15feda43ca cb 2022-12-28 23:57:47 +01:00
rene
0b1459df9d temp commit 2022-12-28 17:19:48 +01:00
rene
4fbfdbaf2c Unit Tests erstellt
Informationen ausgelagert
Kleines Spy/Test Programm erstellt
Mehr Exceptions/InvalidUpdateFileRequestException.cs
Launcher Host in Download Server geändert
Download Server macht zusätzlich Abfrage an den Hauptserver
Download geht jetzt stückweise von statten
2022-12-28 16:36:59 +01:00
bc3c056598 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-28 14:04:23 +01:00
6a02baec3e MH: Coburg InvoiceCreation + Anpassung Rechnung Christopherushaus 2022-12-28 14:04:10 +01:00
2d2e23d0da EvVereinFürWohnraumhilfe mit PluginLoader 2022-12-27 18:47:27 +01:00
18214691b9 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-12-23 19:12:47 +01:00
d75df004ad EvVereinFürWohnraumhilfe, PerspektivenEV, BetreutesWohnenAmRheinReports und AbwWeeger 2022-12-23 19:12:36 +01:00
69ffe62415 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-22 09:23:38 +01:00
4100084486 MH: Soziale Dienste Becker Stundenkontofix + Feature 2022-12-22 09:23:22 +01:00
e056f6be53 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-12-21 07:43:23 +01:00
fea5758fdc Invoicing und AbwWeeger 2022-12-21 07:43:12 +01:00
e4a7393eaa Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-19 18:35:54 +01:00
84a42a7e4b MH: Dienstplaner Bugfix 2022-12-19 18:35:40 +01:00
747eadb232 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-12-19 16:00:34 +01:00
550a1187d0 AbwWeeger Fehlkontakt, BehindertNaUnd,BeWoAmRhein und Varo 2022-12-19 15:59:58 +01:00
rene
c8adcff8cc Progress Info Fehler behoben, spezielle Exceptions aufm Server hinzugefügt 2022-12-19 13:54:51 +01:00
158d16fc96 MH: Hotfix TranslationDictionary 2022-12-16 16:00:13 +01:00
607376e77b Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-16 14:16:52 +01:00
4bf7f51c18 MH: Spalte auf Mitarbeiterauslastung für WoellReports hinzugefügt 2022-12-16 14:16:29 +01:00
Christian
20f7725089 cb 2022-12-16 01:05:29 +01:00
Christian
f07f83b269 cb 2022-12-15 23:43:37 +01:00
Christian
8f270ee422 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/View/Navigation/EmployeeNavigationView.xaml
#	BeWo/View/Navigation/UserNavigationView.xaml
#	BeWoAllReports.sln
#	Service/Plugins/PluginLoader.cs
2022-12-15 23:34:20 +01:00
Christian
fd164962f2 cb 2022-12-15 23:16:04 +01:00
553c63310b Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-12-15 13:55:16 +01:00
87e9ebde1c BehindertNaUnd, LHCoburg, SDN Niederrhein 2022-12-15 13:55:02 +01:00
411602d0b7 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-15 13:22:10 +01:00
51f8ff9b5d MH: Button hinzugefügt, der alle Mitarbeiter für eine Hilfeplanaufgabe hinzufügt + Haus Duelken fix in AZE 2022-12-15 13:21:56 +01:00
rene
34b8e42e3c Testen aufm App5 2022-12-14 12:08:20 +01:00
e7bf1992a6 Varo, Trialog und SDN Niederrhein 2022-12-14 08:15:58 +01:00
4dc998745d DomizielAnsbach, LHCoburg und BehindertNaUnd 2022-12-12 11:10:25 +01:00
dce38c6976 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-12-09 14:22:08 +01:00
d0fa11637a Umfassende Änderungen DomizielAnsbach, KontaktUndKrisenhilfe, MVZMedikusGmbH 2022-12-09 14:21:58 +01:00
84ec806725 LHCoburg, BundBBetreutesWohnen, ApiBerlin 2022-12-09 14:21:06 +01:00
c131b07dc0 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-12-08 11:57:20 +01:00
34b9f3b789 MH: Briefpapier für Behindert Na Und eingerichtet 2022-12-08 11:57:07 +01:00
57231e3527 AsbRheinErftDuerenSBD 2022-12-05 16:21:00 +01:00
03dcb2365e Anpassung im RatingEditView.xaml (srcollbar) 2022-12-05 16:20:43 +01:00
f151c7b035 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-12-05 15:38:50 +01:00
f7aed35e9f VkmHamm und DiakonieKKKleve 2022-12-05 15:38:39 +01:00
42b2f30d62 MH: Anpassung MVZ Medikus 2022-12-05 15:02:19 +01:00
rene
c0c6a96f84 läuft soweit, stand vorm testen aufm app5 2022-12-02 13:00:27 +01:00
db95a53020 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-11-30 12:32:26 +01:00
8b27d49adc MH: Services 2022-11-30 12:31:02 +01:00
eff1a9069d AwoDortmund, AidshilfeDortmund, VkmHamm, ApiBerlin und SDBecker 2022-11-29 15:26:27 +01:00
944fd443af VARO und LebensWert/QuittierungsbelegHannover.cs 2022-11-29 15:25:26 +01:00
beb5f271a7 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-11-29 15:24:25 +01:00
f31e3b8b6d Neukunde PsychosozialeProjekteSaarpfalz (mit PluginLoader) 2022-11-29 15:24:14 +01:00
54fa46594b MH: Anpassung MVZ Medikus 2022-11-28 14:22:01 +01:00
688472fd39 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-11-25 15:23:09 +01:00
5012649157 MH: Programm gegendert (Bella Donna hat die das komplette Dictionary) 2022-11-25 15:22:38 +01:00
36641436f4 MobileEV Neukunde mit PluginLoader 2022-11-25 13:16:31 +01:00
8057e2855a AwoDortmund und PSHBochum 2022-11-24 09:33:42 +01:00
198e284531 LebensWert, VKMHamm, BewegtSystemischeBeratung 2022-11-24 09:31:59 +01:00
e23fc2f713 PSHBochum und BeWoImFlow 2022-11-22 14:40:12 +01:00
62b5674ec1 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-11-21 15:59:48 +01:00
2cec099d28 AwoDortmund, VkmHamm und BetreuWo 2022-11-21 15:59:38 +01:00
63809b5a81 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-11-21 09:41:06 +01:00
913b55608b MH: Urlaubskontodarstellung neue Variablen 2022-11-21 09:40:52 +01:00
d1569d6107 Solve Conflict 2022-11-17 08:51:25 +01:00
f8b725a6c9 AutismusLeben, AwoDortmund, ChristianWilke
ProBalance und ÜbergangshilfenUnna
2022-11-17 08:48:53 +01:00
d643ffbd47 AsbRuhr und DiePerspektive 2022-11-17 08:46:57 +01:00
08709d39a8 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo into master 2022-11-16 15:32:42 +01:00
633b487eb4 MH: TranslationDictionary für BellaDonna 2022-11-16 15:30:57 +01:00
Marcel Hirschle
a34890ef5f MH: Christian Wilke Anpassung 2022-11-16 11:09:30 +01:00
85a68f329b Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-11-14 16:41:37 +01:00
20aca7a4e6 DiePerspektive 2022-11-14 16:41:16 +01:00
fb4e52983f KetteReports und ReportCreator DiakonieKKKleve 2022-11-14 16:40:53 +01:00
1f52097741 Änderung Bew FLS ohne Assistenz 2022-11-14 16:39:26 +01:00
8ee030f8fa LH Remscheid und SPZLeverkusen 2022-11-14 16:38:22 +01:00
Marcel Hirschle
bb204acc59 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-11-10 17:44:30 +01:00
Marcel Hirschle
0ae8137170 MH: Mit CB ermöglicht, dass CustomFeiertage für SBD funktionieren 2022-11-10 17:44:27 +01:00
960e976bea Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-11-10 16:55:55 +01:00
cb5b510504 BetreutesWohnenWoellReports 2022-11-10 16:55:43 +01:00
Marcel Hirschle
82d2b52698 MH: Christian Wilke Anpassung 2022-11-10 11:18:20 +01:00
Marcel Hirschle
c497057f7e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-11-10 10:31:31 +01:00
Marcel Hirschle
c7f4440838 MH: Wilke und Kette Anpassungen 2022-11-10 10:30:28 +01:00
56f3e524dc Neukunden Solution und PluginLoader 2022-11-09 16:03:11 +01:00
fdfd86dfaf Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2022-11-09 16:00:11 +01:00
ba29d18ac0 BehindertNaUnd, ApiBerlin, VSDHammReports und AutismusKoelnBonn 2022-11-09 15:56:21 +01:00
Marcel Hirschle
88c679c2f1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-11-09 13:12:27 +01:00
Marcel Hirschle
42775220bd MH: Christian Wilke Anpassungen 2022-11-09 12:58:12 +01:00
Marcel Hirschle
186856f869 MH: BZH Rechnung Anpassung 2022-11-09 12:53:42 +01:00
Christian
b97e4709ad Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-11-09 09:44:51 +01:00
Christian
4ddee24914 cb 2022-11-09 09:44:24 +01:00
Alexandra
7c9e356102 BudgetnachweisAnhangRO 2022-11-08 17:37:51 +01:00
Alexandra
dd9bca07a5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-11-08 15:50:43 +01:00
Alexandra
1616fc68ac AutismusKoelnBonn und DiakonieKKKleve 2022-11-08 15:50:32 +01:00
Alexandra
f667f8a4d1 AKGG, ABWElsebrock und ApiBerlin 2022-11-08 15:50:03 +01:00
Marcel Hirschle
ccb7c3b802 MH: BZH Essen Spitzabrechnung 2022-11-08 15:28:06 +01:00
Marcel Hirschle
3cfc9068a1 MH: Custom RosterReport für Alpha e.V. 2022-11-08 10:48:14 +01:00
Marcel Hirschle
981f0658d6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-11-07 12:11:06 +01:00
Marcel Hirschle
4f892392c0 MH: Ziele auf ChristopherusHaus-QB 2022-11-07 12:10:44 +01:00
Alexandra
9273e885b4 VSDHammReports, BeWoAuxilio und AutismusKoelnBonn 2022-11-04 13:48:34 +01:00
Alexandra
8a303891c6 ASBRuhr und DiePerspektive Export 2022-11-02 17:18:45 +01:00
Alexandra
74a59c86ae VSDHammReports 2022-10-31 10:56:24 +01:00
Alexandra
1fcd2bc3ff Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-10-28 12:40:03 +02:00
Alexandra
22e9b3d200 ProBalance, LH RheinSieg und SHKService 2022-10-28 12:39:51 +02:00
Marcel Hirschle
eb1bdeaf42 MH: Standard-CustomerDataReport um die ICD-10-Diagnosen ergänzt 2022-10-28 08:41:24 +02:00
Marcel Hirschle
e932342e3e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-10-27 15:31:46 +02:00
Marcel Hirschle
1f8d4c2b1a MH: Pflegedienst Wesel 2022-10-27 15:31:40 +02:00
Marcel Hirschle
a0f390493d MH: Forum Seitennummerierung 2022-10-27 14:59:57 +02:00
Alexandra
c724d0ff2f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-10-26 12:45:21 +02:00
Alexandra
1d4eed1c5b DiakoneKKKleve, GerdasPflegedienst, ProBalance und VSDHammReports 2022-10-26 12:44:52 +02:00
Alexandra
0304e1abd0 AbwMuenster, AwoDortmund, BeWoDellbrueck 2022-10-26 12:44:17 +02:00
Alexandra
f91fbeffbb LebenshilfeRheinSiegReports, PflegedienstWessel, SHKService 2022-10-26 12:43:09 +02:00
Alexandra
17d05f2fc1 AKGG und BeWoDellbrueck 2022-10-26 12:08:38 +02:00
Marcel Hirschle
bf94d56c37 MH: Allgemeine Rechnung Club74 2022-10-24 10:53:47 +02:00
Marcel Hirschle
4316eb9f08 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-10-21 14:12:58 +02:00
Marcel Hirschle
893706277c MH Briefpapier Club74 2022-10-21 14:12:55 +02:00
Alexandra
336f4ae266 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-10-21 09:23:13 +02:00
Alexandra
41d0ee0f27 AutismusLeben und BetreutesWohnenWoellReports 2022-10-21 09:23:01 +02:00
Marcel Hirschle
73b0eedd35 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-10-21 09:16:01 +02:00
Marcel Hirschle
df8cf93671 MH: aha e.V. Arbeitszeiterfassung 2022-10-21 09:12:22 +02:00
Alexandra
29dd027293 AsbRuhr, Die Perspektive, AsbFassbacherHof 2022-10-18 16:06:33 +02:00
Alexandra
1c4f980623 Reportimp Kleinkram 2022-10-14 14:56:44 +02:00
Alexandra
6c31c194eb Neukunde AMBEWO mit PluginLoader 2022-10-14 14:45:25 +02:00
Alexandra
762d31d2ab PraxisPusteblume und AutismusLeben 2022-10-14 14:43:25 +02:00
Marcel Hirschle
b74874f9a6 MH: Dienstplaner Fehlerbehebung 2022-10-14 13:41:53 +02:00
Alexandra
f222a35373 SBBMainz Gruppentermine, PerspektivenEV Datev 2022-10-13 13:57:47 +02:00
Alexandra
a94a1f0d4c DomizielAnsbach/ZV und AutismusKoelnBonn 2022-10-12 11:05:24 +02:00
d555e3aad3 Konflikte gelöst 2022-10-11 17:22:55 +02:00
2f8dcc87f0 BeWoDatabaseTerminator hinzugefügt
Kalender-Report für Kollegium e.V. angefangen. Noch nicht fertig!
2022-10-11 16:48:36 +02:00
Alexandra
4d679d3669 AutismusKoelnBonn, AutimusLeben, PerspektivenEV, AKGG und Varo 2022-10-11 16:01:53 +02:00
Alexandra
d2c26007c1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-10-10 14:46:35 +02:00
Alexandra
31cb9a091e ApiBerlin, BeWoAuxilio, DomizielAnsbach, BeWo Rimbach 2022-10-10 14:46:23 +02:00
Christian
3dfffebd28 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-10-10 12:57:38 +02:00
Christian
bc5e47f6b0 cb 2022-10-10 12:57:34 +02:00
Marcel Hirschle
75b0c91690 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-10-07 09:57:17 +02:00
Marcel Hirschle
1cb7dd1f11 MH: BeWo Für Dich Korrektur 2022-10-07 09:56:56 +02:00
Alexandra
3020533060 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-10-06 11:22:05 +02:00
Alexandra
192c27d13b GerdasPflegedienst, AidshilfeEssen, ASB Mönchengladbach, DomizielAnsbach und PerspektivenEV 2022-10-06 11:21:52 +02:00
Marcel Hirschle
6bdb7c0ee2 MH: "Meine Klienten" für Hph überschrieben 2022-10-05 16:18:59 +02:00
Marcel Hirschle
4c560f124a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-10-05 11:28:07 +02:00
Marcel Hirschle
f5b8a8db09 MH: HPH Änderungen 2022-10-05 11:28:04 +02:00
Marcel Hirschle
e4eceb3b94 MH: Zwei neue Unterschriften für Ilka Link ivi 2022-10-05 11:25:34 +02:00
Alexandra
cfabc1d4f6 DomizielAnsbach Zuverdienst und BeWoAuxilio 2022-10-04 16:27:47 +02:00
Alexandra
d59958bb1f KollegiumEv Finanzauswertung 2022-09-30 13:27:31 +02:00
Alexandra
f6bacf771f Zuverdienst DomizielAnsbach 2022-09-30 13:26:01 +02:00
Alexandra
2d705749af BewegtSystemischeBeratung QBeleg 2022-09-28 15:49:22 +02:00
Alexandra
537bfbe4f9 Serveränderungen - SearchDAO und SettlementInvoiceCreation 2022-09-27 10:56:02 +02:00
Alexandra
efeff538f4 HausDuelken und ApiBerlin 2022-09-26 12:26:43 +02:00
Alexandra
33fcf51e70 Haus Dülken 2022-09-23 15:41:44 +02:00
Alexandra
0337cae8a8 ApiBerlin 2022-09-23 12:54:43 +02:00
Alexandra
82088ac923 Wichernhaus QBeleg 2022-09-23 11:36:30 +02:00
Alexandra
98b9442de3 Neukunde HausDuelken mit PluginLoader 2022-09-22 14:17:06 +02:00
Alexandra
1633e741d0 Bussmannshof 2022-09-21 15:24:13 +02:00
Alexandra
333c6521dd VaroSozialagentur 2022-09-21 12:56:07 +02:00
Alexandra
b3465db6b4 AutismusLeben 2022-09-21 09:15:08 +02:00
Alexandra
7cfbaa7882 ApiBerlin/Mitarbeiterarbeitszeitkonto, AidshilfeEssen Rundung Bewo67 2022-09-19 17:47:03 +02:00
Alexandra
a3c6c8731c PerspektivenEV/InvoiceCustomerReport.cs 2022-09-16 11:04:43 +02:00
Alexandra
6ff69aa5c8 AwoDortmund SoziotherapieFinanceROCreation in schön 2022-09-15 13:57:52 +02:00
rene
7fbdd1b945 Version in Connection String hinzugefügt
- Version wird aktuell im Client angezeigt

LoadingScreen statt StartPlanerProcess

UI verschönert

Fehler im Host/web.config behoben
2022-09-15 12:47:13 +02:00
Alexandra
d388fd6c79 AwoDortmund Finanzauswertung mit SoziotherapieFinanceROCreation 2022-09-15 10:39:20 +02:00
rene
eeb6132aee Einheitliche Benennung 2022-09-14 17:24:17 +02:00
rene
faff3b1116 Zwischenstand 2022.0914 10.57 2022-09-14 10:57:51 +02:00
Alexandra
764883165c VaroSozialagentur/CustomReportCreator.cs 2022-09-13 16:57:38 +02:00
Alexandra
db04c208be Nochmal SDN 2022-09-13 14:56:28 +02:00
Alexandra
98c8428e24 SDN Briefpapier 2022-09-13 14:55:37 +02:00
Alexandra
7a5da8c8c1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-12 16:15:18 +02:00
Alexandra
200cd0ec02 HausTheresia 2022-09-12 16:14:29 +02:00
Marcel Hirschle
b6047e971b MH: CustomerDataReport für 3 Kundennummern 2022-09-09 11:58:24 +02:00
Marcel Hirschle
e4acc08e96 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-09-08 14:56:47 +02:00
Marcel Hirschle
1559344555 MH: Zwei weitere KT für Blömelings Pauschale eingefügt 2022-09-08 14:56:30 +02:00
Alexandra
1983c1df4a BeWoAuxilio 2022-09-08 11:25:44 +02:00
Alexandra
e2958640fd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-07 16:00:21 +02:00
Alexandra
7690e80d82 AwoDortmund DiamantExporter 2022-09-07 15:59:28 +02:00
Marcel Hirschle
af33fbec28 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-09-07 15:03:36 +02:00
Marcel Hirschle
6eeb6c7156 MH: Feiertage im Dienstplaner angepasst 2022-09-07 15:03:33 +02:00
Marcel Hirschle
96aefde2d2 MH: Liste mit Krankenkassen für Blömeling und Teckhaus, die Hauspauschalen zahlen 2022-09-07 15:02:18 +02:00
Christian
7d185b363f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-07 14:43:06 +02:00
Christian
0c4fc9a09b cb 2022-09-07 14:43:01 +02:00
b959025ed7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-07 13:19:17 +02:00
269f75fe41 MoK:
Zeitberechnung überarbeitet. Diverse Bugs gefixt
2022-09-07 13:19:08 +02:00
Alexandra
d623eda8df Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-06 13:27:21 +02:00
Alexandra
9545e1a7c6 AKGG - Rest nur nach Input 2022-09-06 13:27:08 +02:00
Marcel Hirschle
5f97ce7af4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-09-06 06:59:10 +02:00
Marcel Hirschle
9fe7f1eb65 MH: Pauschalen für die Kette angepasst 2022-09-06 06:58:50 +02:00
Alexandra
19d0a5699b AKGG Invoicing 2022-09-05 16:56:32 +02:00
Alexandra
261388a7ed Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-02 13:34:45 +02:00
Alexandra
6436b7db2d AKGG und PraxisPusteblume 2022-09-02 13:34:16 +02:00
Marcel Hirschle
bc550e1f00 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-09-02 13:11:16 +02:00
Marcel Hirschle
fdf7d40dca MH: Anpassung der Arbeitszeiterfassung auf Wunsch entfernt 2022-09-02 13:11:03 +02:00
Christian
eeeef6af5c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-09-01 11:55:36 +02:00
Christian
b4c6b09db4 cb 2022-09-01 11:55:27 +02:00
rene
73e797142c Update Masken Entwurf 2022-09-01 10:55:25 +02:00
Alexandra
534c2ee9bd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-31 16:47:02 +02:00
Alexandra
5a1a594e40 AutismusKoelnBonn/LeistungsnachweisJugendamt 2022-08-31 16:44:37 +02:00
Marcel Hirschle
0919f35c79 MH: CustomerDataReport für SDKathrinSchmidt/Schoenberg/Gessner 2022-08-30 10:43:29 +02:00
ae442fa062 Zwischenstand 22.08.30 2022-08-30 09:12:20 +02:00
Marcel Hirschle
1569f26e72 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-30 08:53:39 +02:00
Marcel Hirschle
ec8123904f MH: Verschieben von Feiertagskram in VacationService + Anpassung Autismus Leben 2022-08-30 08:53:24 +02:00
Marcel Hirschle
40b5863783 MH: Anpassung QB Wetterleuchten 2022-08-29 08:57:11 +02:00
Marcel Hirschle
f73b775722 MH: QB für Zander BeWo 2022-08-25 13:39:25 +02:00
Christian
768373c1a7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-25 12:51:57 +02:00
Christian
c3eb925f6b cb 2022-08-25 12:51:53 +02:00
Marcel Hirschle
b264d40abb MH: Anpassung CustomerDataReport von Sozialedienstleistungen Gessner 2022-08-23 15:28:28 +02:00
Marcel Hirschle
81ca887bfd MH: Rechnungsanpassung BetreuWoWesel 2022-08-22 14:17:26 +02:00
Marcel Hirschle
b63e0351a6 MH: Rechnungsanpassung Übergangshilfe Unna 2022-08-22 13:56:37 +02:00
Marcel Hirschle
7428fcb514 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-19 14:38:58 +02:00
Marcel Hirschle
77f010e5c6 MH: Sozio Blömeling und Teckhaus feintuning 2022-08-19 14:38:42 +02:00
da7da608f3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-19 13:53:45 +02:00
8a0ad54ee9 MoK:
- Gruppenbuchung mit nur einem Hilfeplan, aber mehreren Mitarbeitern wird - wie im Fat-Client - als Gruppenbuchung gespeichert. Eine Gruppenbuchung mit einem Hilfeplan und nur einem Mitarbeiter wird weiterhin - wie auch im Fat-Client - als Einzelbuchung gespeichert.

- Der Button "Textbausteine" wird nur angezeigt, wenn auch Textbausteine vorhanden sind.
2022-08-19 13:53:32 +02:00
Marcel Hirschle
d0f6d5b3b0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-18 16:00:41 +02:00
Marcel Hirschle
0a12985176 MH: Anpassung Tagesansicht des Stundenkontos 2022-08-18 16:00:29 +02:00
Alexandra
1c2a4016be Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-18 10:20:56 +02:00
Alexandra
22d5262cbb ForumEV 2022-08-18 10:20:44 +02:00
Marcel Hirschle
0d6c4271e8 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-17 13:31:48 +02:00
Marcel Hirschle
3129b3d1f6 MH: Sammelrechnungen für Autismus Leben angepasst 2022-08-17 13:31:45 +02:00
Alexandra
1b73c43e59 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-17 13:13:41 +02:00
Alexandra
62d8a4a56c PerspektivenEV DatevExporter und VSDHammReports/ServicesOverviewReport 2022-08-17 13:13:31 +02:00
Marcel Hirschle
cf2228c1da Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-17 10:05:32 +02:00
Marcel Hirschle
26ccb28aed MH: Feinschliff für Sammelrechnung der Kette 2022-08-17 10:05:28 +02:00
Alexandra
b882f62d8f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-17 09:19:24 +02:00
Alexandra
7cacbdc417 BrueckeABW und ChristopherusHausFamilienhilfe 2022-08-17 09:19:12 +02:00
Marcel Hirschle
fa637fe78f MH: Neue Zeile für Dokutext eingefügt 2022-08-17 07:51:19 +02:00
Marcel Hirschle
abe171e7ac Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-16 08:52:29 +02:00
Marcel Hirschle
241c5cf657 MH: ScrollViewer in der NationalityView eingebaut 2022-08-16 08:52:05 +02:00
Alexandra
a26f4bda4c PerspektivenEV Änderungen für Export 2022-08-15 17:22:35 +02:00
Alexandra
e021409b56 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-12 14:36:24 +02:00
Alexandra
c3a634cb56 PerspektivenEV/Export/DatevExporter 2022-08-12 14:36:11 +02:00
Christian
a4ee749429 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoPlanerMobil/Controllers/ChatController.cs
2022-08-12 10:19:10 +02:00
Christian
173c20e391 cb 2022-08-12 10:16:19 +02:00
Marcel Hirschle
63abe8d451 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-11 17:42:23 +02:00
Marcel Hirschle
9e5d0eca80 MH: Schnellere Funktion zum Holen eines Hilfeplans aus dem Archiv eingebaut 2022-08-11 17:42:18 +02:00
38f8febc3a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-11 15:10:20 +02:00
340fb16215 Logo ausgetauscht
PartialView für den Ziele/Maßnahmen-Baum hinzugefügt
2022-08-11 15:10:01 +02:00
Alexandra
f3ff2b5e95 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-11 14:52:08 +02:00
Alexandra
5d54c3477b Perspektiven - DatevExporter 2022-08-11 14:51:56 +02:00
Marcel Hirschle
46965aa7f9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-11 10:33:45 +02:00
Marcel Hirschle
d09a2bd094 MH: Neue Vorlagen für Autismus leben + Mitarbeiterstundenkonto für AKGG gefixt 2022-08-11 10:33:32 +02:00
Alexandra
f53d469450 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-10 15:21:17 +02:00
Alexandra
213c9175e6 Umfirmierung LG Lebensgestaltung 2022-08-10 15:21:01 +02:00
9d6a6c5c34 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-10 14:13:41 +02:00
682e4b9222 MoK:
- Nach Mitarbeitern, Ressourcen, und Klienten filtern
    - Ziele in Modal-Popup mit PartialView gepackt
2022-08-10 14:13:29 +02:00
Christian
7617b0df07 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-10 12:13:42 +02:00
Christian
c1ad323bc6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/IBPReports/IBPReportCreator.cs
2022-08-10 12:13:18 +02:00
Marcel Hirschle
56c6deebb0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-10 11:50:10 +02:00
Marcel Hirschle
e6cca3a77c MH: Rechnungsanpassung Autismus leben + automatischen Pausenabzug für Frommen entfernt 2022-08-10 11:49:56 +02:00
Alexandra
24031b2c91 Umfirmierung IBP 2022-08-10 09:27:58 +02:00
Alexandra
5493f03ee1 BudgetnachweisAnhangRO, AwoDortmund und PerspektivenEV 2022-08-10 09:07:15 +02:00
Christian
d89381d05f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-08 15:14:07 +02:00
Alexandra
4c02493470 DomizielAnsbach ZuverdienstRechnungstellung 2022-08-08 14:54:02 +02:00
Alexandra
424738d10f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-08 11:06:26 +02:00
Alexandra
22fe10a6fc Rundung Allgemeine Rechnung und AKGG 2022-08-08 11:06:14 +02:00
Christian
515f9cb7df Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-05 16:01:22 +02:00
Christian
0da4db4157 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/DiakonieLandshut/ServicesOverviewReport.cs
#	ReportImp/PraxisPusteblume/Invoicing/IFSInvoiceCreation.cs
2022-08-05 16:00:45 +02:00
Marcel Hirschle
919b51f33d MH: Autismus Leben Rechnungsanpassung Zwischenstand 2022-08-05 15:22:24 +02:00
Christian
1136be5b0e cb 2022-08-05 13:42:20 +02:00
Marcel Hirschle
163865674d MH: Sichtbarkeitsanpassung CustomerService und Bugfix für Pusteblume 2022-08-05 13:23:01 +02:00
Marcel Hirschle
23f4d721bc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-04 08:18:29 +02:00
Marcel Hirschle
06b3ad850f MH: Sichtbarkeitsbedingung für Teams in CustomerNavigationView 2022-08-04 08:18:13 +02:00
Alexandra
8b017e3060 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-03 16:46:54 +02:00
Alexandra
eb7f4aed9f Zuverdienst 2022-08-03 16:46:41 +02:00
Marcel Hirschle
a05ab11de5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-03 10:51:36 +02:00
Marcel Hirschle
9de3d0f7a0 MH: Anpassung für varo 2022-08-03 10:50:36 +02:00
Alexandra
428cc4a55a FreundeskreisSuchthilfe/Mitarbeiterstundenkonto 2022-08-02 15:41:27 +02:00
Alexandra
9941f23b0d PluginLoader, Nachtrag VSDHamm 2022-08-02 13:20:36 +02:00
Alexandra
bc87d1c57f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-02 13:09:09 +02:00
Alexandra
b2428e1032 VSDHammReports und AKGG 2022-08-02 13:08:53 +02:00
Marcel Hirschle
97fcc669c1 MH: Darstellung des Urlaubskontos gefixt 2022-08-02 07:52:34 +02:00
Marcel Hirschle
ca20e775fd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-08-02 06:58:57 +02:00
Marcel Hirschle
31da708ffa MH: IBAN für ABW Münster angepasst 2022-08-02 06:58:42 +02:00
Alexandra
29838b1714 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-08-01 18:20:36 +02:00
Alexandra
e6556dcc9d AKGG und Neustart 2022-08-01 18:20:23 +02:00
Marcel Hirschle
393c89aef3 MH: Pauschalen für Kette 2022-08-01 12:59:09 +02:00
Marcel Hirschle
124aa2e8ab MH: Anpassung Hilfe Daheim 2022-07-29 15:26:15 +02:00
Marcel Hirschle
7e99bfcc2c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-29 11:51:56 +02:00
Marcel Hirschle
3d8f1f7419 MH: Urlaubkonto in der Mitarbeitermaske gefixt (Urlaub und Endsumme stimmten nicht überein) 2022-07-29 11:51:42 +02:00
LynJet
04d972cb4b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-28 19:19:10 +02:00
LynJet
9e882e38df ChatControlleränderungen 2022-07-28 19:19:01 +02:00
Marcel Hirschle
c2b2075eee Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-28 15:06:02 +02:00
Marcel Hirschle
83e930e9a4 MH: Anpassung für Diakonisches Werk Landshut 2022-07-28 14:57:41 +02:00
Alexandra
848cc45e76 IBPReports/Budgetnachweis.cs 2022-07-28 12:01:26 +02:00
Alexandra
012e98c518 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-27 16:42:05 +02:00
Alexandra
f36d4e6bfc AwoDortmund SoziotherapieInvoiceCreation 2022-07-27 16:41:54 +02:00
Marcel Hirschle
c605d3e094 MH: Hand In Hand 2022-07-27 15:31:48 +02:00
Marcel Hirschle
1e7feac175 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-27 09:37:10 +02:00
Marcel Hirschle
b642c12787 MH: Anpassung für Pusteblume 2022-07-27 09:36:59 +02:00
Alexandra
69ef9a3a1a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-26 12:07:58 +02:00
Alexandra
a62ef5e1ee AutismusKoelnBonn LN bzw Qbeleg 2022-07-26 12:07:45 +02:00
Marcel Hirschle
2d9189baf9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-26 10:58:20 +02:00
Marcel Hirschle
54e9d9053a MH: Ordnerstruktur für KontaktVereinFuerPsychosozialeHilfenEV 2022-07-26 10:58:07 +02:00
Alexandra
2c5793a4bd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-25 16:44:31 +02:00
Alexandra
d453af2402 AutismusKoelnBonn, DiakonieKKKleve, Kette und PerspektivenEV 2022-07-25 16:43:45 +02:00
Marcel Hirschle
ab438ecc35 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-25 09:37:25 +02:00
Marcel Hirschle
73191fbbe9 MH: Pauschale für Blömeling + Rechnung für Autismus Köln 2022-07-25 09:37:12 +02:00
Alexandra
e1314c17e7 AutismusKoelnBonn QBeleg und PerspektivenEV 2022-07-22 13:31:05 +02:00
Alexandra
439682ea23 PerspektivenEV und AutismusKoelnBonn 2022-07-22 11:48:20 +02:00
Alexandra
d1cc1320c7 BetreuungsbueroBaak und HolsingerReports 2022-07-21 15:31:04 +02:00
Alexandra
3c49d8ffb0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-21 10:51:53 +02:00
Alexandra
a8d8cb8aca DiakoneKKKleveSoziotherapieInvoiceCreation - Änderung TKK 2022-07-21 10:51:42 +02:00
Marcel Hirschle
a334fc2c4a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-20 14:34:33 +02:00
Marcel Hirschle
9b528007b0 MH: Archivierung rückgängig machen ermöglicht in CustomerNavigationView 2022-07-20 14:34:07 +02:00
Alexandra
82e3327d99 PerspektivenEV, HshNetzwerk/ServicesOverviewReport und KetteReports 2022-07-20 14:07:41 +02:00
Alexandra
d21650f3b8 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-19 16:50:43 +02:00
Alexandra
52de3d761f PerspektivenEV Rechnung mit Anhang QBeleg 2022-07-19 16:49:57 +02:00
Marcel Hirschle
77512f3d4c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-19 13:33:37 +02:00
Marcel Hirschle
ef17b267b8 MH: Stundenkonto für aha e.V., Sozio für Blömeling und Briefkopf für Landhuter Netzwerk 2022-07-19 12:57:07 +02:00
Christian
f1a4d0cc1a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
2022-07-19 11:16:48 +02:00
Alexandra
f1e92472cb HolsingerReports und PerspektivenEV 2022-07-18 16:30:03 +02:00
Alexandra
cffa32d191 SozialbueroSchuesslerWilckens 2022-07-15 13:59:13 +02:00
Alexandra
294e068e68 SozialbueroSchuesslerWilckens und TRIAS 2022-07-14 14:51:42 +02:00
Alexandra
15fcc98e4e VARO 2022-07-13 09:13:31 +02:00
Alexandra
17d08b813d AidshilfeEssen/Quittierungsbeleg 2022-07-13 07:41:21 +02:00
Alexandra
3c5aa46fc6 Domiziel Ansbach 2022-07-12 11:43:32 +02:00
Alexandra
9a2b2f7744 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-11 17:02:37 +02:00
Alexandra
a7c000af49 KetteReports, AKGG/Export/ExactExporter 2022-07-11 17:02:14 +02:00
LynJet
1984d19898 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-11 16:01:51 +02:00
LynJet
90ffba9b6b Reload-Button in der ChatView sichtbar gemacht 2022-07-11 16:00:19 +02:00
Christian
eaa514dcf6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-08 15:36:33 +02:00
Marcel Hirschle
68c84abf0e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-08 14:03:43 +02:00
Marcel Hirschle
0a4f0dc78e MH: Ordnerstruktur und Logo für Christina Frommen 2022-07-08 14:03:39 +02:00
Alexandra
78b69ce90f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-08 13:47:10 +02:00
Alexandra
46bfceb804 BeWoDellbrueck, TeamPfeil und AKGG MIT PluginLoader 2022-07-08 13:46:56 +02:00
Marcel Hirschle
d8490ee82a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-08 08:55:02 +02:00
Marcel Hirschle
bbf3e04193 MH: Spitzabrechnung für Autismus leben 2022-07-08 08:54:33 +02:00
Alexandra
587553e47c HshNetzwerk und PerspektivenEV 2022-07-07 14:19:45 +02:00
Christian
fd3b828567 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-06 11:18:39 +02:00
Alexandra
7ba4014451 FortisNova Umfirmierung und HshNetzwerk 2022-07-06 09:19:25 +02:00
Christian
386652a614 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-05 12:44:07 +02:00
Alexandra
4444ef80d6 AidshilfeDortmund/SettlementReport Datum und Unterschrift 2022-07-05 12:26:02 +02:00
Alexandra
c1c94f8369 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-05 12:04:47 +02:00
Alexandra
8eeb54a9a3 Kette und DiakonieKKKleve 2022-07-05 12:00:41 +02:00
Christian
25f616cbd6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-05 09:45:11 +02:00
Marcel Hirschle
0a168ef37d MH 2022-07-05 09:11:49 +02:00
Marcel Hirschle
c0c3c4d1a9 MH: Automatischen Pausenabzug für KommMit entfernt 2022-07-05 09:09:33 +02:00
Marcel Hirschle
55e30ad367 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-04 17:12:21 +02:00
Marcel Hirschle
3f80464f65 MH: Ilka Link angepasst und Frommen Arbeitszeiterfassung 2022-07-04 17:12:05 +02:00
Alexandra
f34d325b03 PraxisPusteblume/QuittierungsbelegIfs Unterschrift und Kette Betreff Jugendamt 2022-07-04 16:05:46 +02:00
Christian
b943b867f7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-04 10:13:06 +02:00
Alexandra
ffcfd3925c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-04 09:20:54 +02:00
Alexandra
f1a6e99655 TeamPfeil/Quittierungsbeleg Logo 2022-07-04 09:20:40 +02:00
Marcel Hirschle
505048dfac MH: 24. als Feiertag entfernt 2022-07-01 16:15:47 +02:00
Marcel Hirschle
c8677508a1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-07-01 14:41:35 +02:00
Marcel Hirschle
5c5fd27757 MH: Stundenkontokorrektur für KommMitBewo 2022-07-01 14:41:24 +02:00
Alexandra
4f9083ffc0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-07-01 14:07:01 +02:00
Alexandra
7fa28f13a8 Domziel Ansbach 2022-07-01 14:04:51 +02:00
Marcel Hirschle
5d7f8cec03 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-30 14:04:46 +02:00
Marcel Hirschle
28571a9633 MH: Varo fertig gemacht 2022-06-30 14:04:25 +02:00
Christian
727b04a7fd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-30 11:20:58 +02:00
Alexandra
0c66f3a7f9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-28 16:00:27 +02:00
Alexandra
ae3d1d11c9 LH Dorsten 2022-06-28 15:59:49 +02:00
Marcel Hirschle
fb14592236 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-28 14:45:05 +02:00
Marcel Hirschle
3958d13494 MH: CustomerDataReport für Ansbach, QB für Varo, Doku rausgenommen für Unna 2022-06-28 14:44:53 +02:00
Alexandra
4bbd7da1df Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-27 16:53:47 +02:00
Alexandra
f42132e950 SBBMainz und LHDorsten 2022-06-27 16:53:14 +02:00
Marcel Hirschle
a6a7590dae Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-24 13:51:05 +02:00
Marcel Hirschle
d5e269e7ad MH: Briefkopf aktualisiert für Toprak 2022-06-24 13:51:01 +02:00
Alexandra
4eb9bb5dc5 AlzeyTeilhabe und SBBMainzReports 2022-06-24 13:06:16 +02:00
Marcel Hirschle
d4123ca6ad Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-24 11:50:17 +02:00
Marcel Hirschle
598535a0d9 MH: Ordnerstruktur für Gerdas Pflegedienst 2022-06-24 11:50:04 +02:00
Christian
1523f17639 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-23 21:15:01 +02:00
Christian
e8711f0e38 cb 2022-06-23 21:14:29 +02:00
Alexandra
53de408d0f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-23 15:15:13 +02:00
Alexandra
de4c2945fa DiakoneKKKleve und AlzeyTeilhabe 2022-06-23 15:14:36 +02:00
Marcel Hirschle
b7247ca9a3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-23 12:23:05 +02:00
Marcel Hirschle
c3afc9f7d3 MH: Korrektur Schillinger (HandInHand) 2022-06-23 12:22:52 +02:00
Alexandra
a0845de1b5 AlzeyTeilhabe neuer StundenzettelBi, Wegweiser neue Unterschrift, BeWoWalzPaiva 2022-06-22 16:11:16 +02:00
Alexandra
f499bbcbce Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-21 14:21:58 +02:00
Alexandra
cfef775847 SettlementReports AutismusKoelnBonn 2022-06-21 14:21:13 +02:00
Marcel Hirschle
2377075eb3 MH: Korrektur HandInHand (Schillinger) und TranskulturellesBetreuungsbuero (Toprak) 2022-06-21 13:46:26 +02:00
Marcel Hirschle
9961b35255 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-21 12:24:59 +02:00
Marcel Hirschle
727ba180f1 MH: Schillinger (Hand In Hand) fertig gemacht 2022-06-21 12:24:43 +02:00
Alexandra
4c1e04d974 AutismusKoelnBonn 2022-06-21 11:53:42 +02:00
Alexandra
1e0fb17994 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-20 17:08:48 +02:00
Alexandra
b18b00de70 AutismusKoelnBonn und BUGeVReports 2022-06-20 17:08:02 +02:00
Christian
7ff5f89d85 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-20 14:13:48 +02:00
Christian
52cb81a22d cb neue version 2022-06-20 14:13:28 +02:00
Alexandra
04d9c2e98f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-17 14:10:20 +02:00
Alexandra
7d3fe1b58d AutismusKoelnBonn, PerspektivenEV und Mobilo 2022-06-17 14:09:33 +02:00
Marcel Hirschle
4235374e7a MH: Anpassung für SPZ Leverkusen und Sozio-Rechnung für Bloemeling und Teckhaus 2022-06-15 12:52:50 +02:00
Marcel Hirschle
0a1b3e8816 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-14 09:32:55 +02:00
Marcel Hirschle
811da16c2b MH: QB für HandInHand 2022-06-14 09:32:35 +02:00
LynJet
2822a0488e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-13 15:38:49 +02:00
LynJet
fbfaa7265a Im Kalender für die Bestätigungen die LabelId-Eigenschaft (int) in die LabelKey-Eigenschaft (long?) geändert. 2022-06-13 15:38:43 +02:00
Alexandra
5cba2d1135 AutismusKoelnBonn und PerspektivenEV 2022-06-13 14:10:00 +02:00
LynJet
f92089ef43 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-13 13:59:06 +02:00
LynJet
0f1487ac23 Gelöschte Serientermine tauchen nicht mehr im Druck auf.
Verstrichene Termine werden beim Klick auf "Allen zusagen" nicht mehr als zugesagt gespeichert, sondern als verstrichen wie beim Klick auf OK.
2022-06-13 13:58:51 +02:00
Alexandra
402689a076 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-10 13:38:04 +02:00
Alexandra
92bf6967f0 DiakonieLandshut und AutismusKoelnBonn 2022-06-10 13:37:16 +02:00
Marcel Hirschle
77f0471f08 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-10 11:56:43 +02:00
Marcel Hirschle
b22ccf31ef MH: Beleg für Hand in Hand fertig gemacht 2022-06-10 11:56:28 +02:00
Christian
514cb20b0b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-06-10 10:15:06 +02:00
Marcel Hirschle
f6276b5fe7 MH: Validation für FFS 2022-06-09 16:31:29 +02:00
Marcel Hirschle
226d7f51e1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-06-09 15:26:27 +02:00
Marcel Hirschle
8a7a00763c MH: FFS Arbeitszeiterfassung, HandInHand-Spitzabrechnung und Bloemeling-Soziotherapie 2022-06-09 15:26:11 +02:00
Alexandra
621a1d4717 DomizielAnsbach 2022-06-09 11:58:07 +02:00
Alexandra
a1a4aea04d ProBeWoDueren Nachtrag 2022-06-09 09:52:17 +02:00
Alexandra
5667580360 ProBeWoDueren 2022-06-08 17:41:32 +02:00
Christian
7a74389067 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-08 12:08:18 +02:00
Christian
253b7f87e2 cb 2022-06-08 11:59:49 +02:00
Alexandra
ecab3fb257 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-06-08 11:58:28 +02:00
Alexandra
74733e19e9 Zuverdienst 2022-06-08 11:58:15 +02:00
Alexandra
3120d2e5a8 Zuverdienst DomizielAnsbach 2022-06-07 17:21:58 +02:00
Marcel Hirschle
de4f01b685 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-06-07 16:31:06 +02:00
Marcel Hirschle
9a05d85b47 MH: Wohnheim/Dienstplan-Änderungen und Arbeitszeiterfassung für FFS 2022-06-07 16:14:23 +02:00
Alexandra
3f91eb9dfd Conflict gelöst 2022-06-03 12:34:41 +02:00
Alexandra
bed842907b ProBeWoDueren 2022-06-03 12:32:29 +02:00
Christian
b0680b6daf Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/PerspektivenEV/PerspektivenEV.csproj
2022-06-01 13:19:01 +02:00
Christian
e26c8436f4 cb 2022-06-01 12:50:12 +02:00
Alexandra
bf7090de73 Rest Perspektiven 2022-06-01 07:52:35 +02:00
Alexandra
21d759fb74 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-31 17:15:12 +02:00
Alexandra
c657b7427f PerspektivenEV 2022-05-31 17:14:22 +02:00
Marcel Hirschle
ba90a61a40 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-31 11:34:37 +02:00
Marcel Hirschle
46b5abcf52 MH: Soziale Dienste Schilling Sammelrechnung + Sortierung für RosterReport 2022-05-31 11:34:25 +02:00
Alexandra
b5a0918128 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-30 17:55:43 +02:00
Alexandra
d98b7e8afa AutismusKoelnBonn, TRIAS und AidshilfeEssen 2022-05-30 17:54:58 +02:00
Marcel Hirschle
108e2b34bc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-30 11:46:14 +02:00
Marcel Hirschle
a7f09f4639 MH: Fehlerbehebung WahlEV und neues Briefpapier für BloemelingUndTeckhaus 2022-05-30 11:45:28 +02:00
Alexandra
c0db0f40e3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-27 12:42:44 +02:00
Alexandra
a95fda37d7 AutismusKoelnBonn 2022-05-27 12:41:52 +02:00
LynJet
48ae38eb35 Generated.cs generiert 2022-05-27 12:13:52 +02:00
LynJet
ce2da3882e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-27 11:51:17 +02:00
LynJet
4ea471e7d7 . 2022-05-27 11:51:12 +02:00
Alexandra
2f8cd9c7b7 PerspektivenEV 2022-05-25 17:16:45 +02:00
Christian
12a8e87d16 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-25 08:33:58 +02:00
Alexandra
241779970c Reports... 2022-05-23 16:56:37 +02:00
Christian
097d4b2d7b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-20 13:45:33 +02:00
Alexandra
3a2008c6cf Perspektiven EV und Diakonie Landshut 2022-05-20 12:01:09 +02:00
Christian
7e7897a6be Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-19 10:54:49 +02:00
Alexandra
614961b770 LH Dorsten und Biotop 2022-05-19 10:06:02 +02:00
Christian
fde64b4a34 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-17 15:08:13 +02:00
Alexandra
05977dc807 Lebenswert 2022-05-17 15:01:56 +02:00
Alexandra
f53e41e7f3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-17 13:36:02 +02:00
Alexandra
ba900c9f24 Varo 2022-05-17 13:35:22 +02:00
Christian
0e75a1656a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-17 13:22:54 +02:00
Christian
37615013c2 cb 2022-05-17 13:22:50 +02:00
Marcel Hirschle
fdb71746e2 MH: Digitale Unterschrift für ProfEggersStiftung eingerichtet 2022-05-17 11:49:07 +02:00
Marcel Hirschle
fcbe3785a7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-17 10:30:49 +02:00
Marcel Hirschle
977257d1db MH: Anpassung WahlEV 2022-05-17 10:30:37 +02:00
Alexandra
958fdd4bff Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-16 17:08:17 +02:00
Alexandra
f086be3307 PerspektivenEV und LebensWert 2022-05-16 17:07:36 +02:00
Marcel Hirschle
dc856c18ca Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-16 16:06:36 +02:00
Marcel Hirschle
3c1ec209a1 MH: Anpassung Dienstplan und ProBeWo Dueren 2022-05-16 16:06:26 +02:00
LynJet
d4ba3a764f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-13 12:22:11 +02:00
LynJet
4a8d234a04 MoK Intervallfinder-Bug behoben. Zurückbutton hatte nicht funktioniert. 2022-05-13 12:22:02 +02:00
Marcel Hirschle
eeece3c415 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-13 11:46:51 +02:00
Marcel Hirschle
2b6d21508f MH: Anpassung für BeWo am Heumarkt 2022-05-13 11:46:39 +02:00
Alexandra
c33d180121 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-13 10:39:27 +02:00
Alexandra
bbbb6a29db GrundsteinEV 2022-05-13 10:37:20 +02:00
LynJet
ef864358e4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-12 18:36:27 +02:00
LynJet
29bb1d517e MoK:
Ganztägige Termine werden korrekt angezeigt
Ganztägige Termine oben kleiner wie in Fat-Client
Geänderte Serientermine haben durchgestrichenes Symbol wie in Fat-Client
2022-05-12 18:36:05 +02:00
Marcel Hirschle
8dc8e01825 MH: Selbstzahler AWO Plön eingerichtet 2022-05-12 15:00:16 +02:00
Christian
15fa28a8d6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-12 12:08:56 +02:00
Christian
8768b226f0 cb 2022-05-12 12:08:52 +02:00
Marcel Hirschle
28490f55c0 MH: Selbstzahler für Uebergangshilfe Unna 2022-05-12 10:15:04 +02:00
Marcel Hirschle
43684f52f3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-10 10:14:18 +02:00
Marcel Hirschle
15c055eea5 MH: ganz viel Rechnungskram für AWO Plön 2022-05-10 10:13:07 +02:00
Alexandra
51c3694ab6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-09 16:07:19 +02:00
Alexandra
3c49921985 GrundsteinEV und PerspektivenEV 2022-05-09 16:06:31 +02:00
Alexandra
d82a17c1ca VkmMenden und PerspektivenEV 2022-05-06 16:04:05 +02:00
Marcel Hirschle
b154a07040 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-05-06 10:40:53 +02:00
Marcel Hirschle
a074e79670 MH: Rechnung Adik Kleve angepasst 2022-05-06 10:40:39 +02:00
Alexandra
c7f539dd60 BeWoNeuss und PerspektivenEV 2022-05-03 16:39:58 +02:00
Alexandra
572a6b00d6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-05-02 14:45:51 +02:00
Alexandra
54dcc49a13 AsbRheinErftDuerenSBD 2022-05-02 14:45:39 +02:00
Christian
49a5f5e7dd cb 2022-04-29 20:37:37 +02:00
Alexandra
3e86618fd7 Biotop 2022-04-29 15:07:28 +02:00
Alexandra
db326939a3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-29 12:51:26 +02:00
Alexandra
aa5bf2d50b AsbRheinErftDuerenSBD, ProIntegra, QuerFaelltEin, PerspektivenEV 2022-04-29 12:51:12 +02:00
LynJet
b4630a2d37 . 2022-04-28 20:06:18 +02:00
LynJet
8bb8f69ca1 MoK:
"nicht bewilligt" und "Betreuung beendet am ..." hinzugefügt

NHibernateDLLCopier.bat hinzugefügt, um die NHibernate DLLs nach Host\bin und BeWoPlanerMobil\bin zu kopieren
2022-04-28 20:03:43 +02:00
Alexandra
996a47d8ef Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-27 17:25:58 +02:00
Alexandra
f9701f65e5 Perspektiven, AKGG, VKMMenden 2022-04-27 17:25:44 +02:00
Marcel Hirschle
dc1683fb22 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-04-26 10:01:02 +02:00
Marcel Hirschle
c2692dd9cc MH: Neues Flag für InfoButton im Kalender erstellt 2022-04-26 10:00:34 +02:00
Alexandra
74bdf200c0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-25 18:12:16 +02:00
Alexandra
46ff6b45a8 AKGG, SDN und AsbRheinErftDuerenSBD 2022-04-25 18:08:08 +02:00
Christian
309f5619d9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
2022-04-25 15:48:46 +02:00
Christian
ba9cef33bf CB hat etwas aufgeräumt 2022-04-25 15:45:02 +02:00
Marcel Hirschle
c04063e896 MH: Was für Biotop vergessen 2022-04-25 14:28:02 +02:00
Marcel Hirschle
d5876a0707 MH: Hauptbetreuer/-in auf QB von Biotop eingefügt 2022-04-25 14:27:01 +02:00
Marcel Hirschle
48611a21df MH: Fehler bei AKGG und Ilka Link Ivi behoben 2022-04-25 13:49:44 +02:00
Marcel Hirschle
49a0dd68e9 MH: Dienstplanung 2022-04-22 15:41:01 +02:00
Marcel Hirschle
603ba4a99e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-04-21 15:31:39 +02:00
Marcel Hirschle
24a6b1ce41 MH: Dienstplaner-Changes zum testen 2022-04-21 15:31:01 +02:00
Alexandra
4ae9bcf1a0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-20 15:41:56 +02:00
Alexandra
2d982076a5 Biotop und weitere Reports 2022-04-20 15:41:43 +02:00
Christian
3c47dfcfd1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-19 18:33:43 +02:00
Lyndon
271a61b1e1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-19 16:56:57 +02:00
Lyndon
5d873c85d7 Der Löschenbutton wurde unter bestimmten Rechtekombinationen zwar richtiger weise angezeigt, das dazugehörige Formular aber nicht, so dass der Eintrag letztendendes nicht gelöscht wurde. Das ist gefixt. 2022-04-19 16:56:45 +02:00
Christian
fe8977b86a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-19 14:02:57 +02:00
Alexandra
20628506bb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-19 13:24:30 +02:00
Alexandra
6045b53e16 Änderungen für Übernahme Zeiterfassung 2022-04-19 13:23:46 +02:00
Christian
ecda5cdf10 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-14 15:04:14 +02:00
Marcel Hirschle
8131d832cf Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-04-14 12:51:33 +02:00
Marcel Hirschle
feb601fbf3 MH: Vergessene Rechnung für BeWoWalzPaiva eingefügt 2022-04-14 12:51:15 +02:00
Christian
22099eeff3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-13 17:40:21 +02:00
Christian
336949ea70 cb 2022-04-13 17:40:15 +02:00
Alexandra
ab48d205bb FrauenhausEWFRA 2022-04-13 14:10:31 +02:00
Alexandra
6218bfd952 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-12 14:31:37 +02:00
Alexandra
bb964105bd Frauenhaus EWFRA, SDN, AutismusLeben 2022-04-12 14:30:45 +02:00
Christian
c21d1f2296 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-12 12:48:01 +02:00
Marcel Hirschle
e4cc9ac3a2 MH: Kleinkram für Frau Neuhausen 2022-04-12 12:14:21 +02:00
Marcel Hirschle
5e42893933 MH: Kleinkram für Frau Neuhausen 2022-04-12 11:59:19 +02:00
Marcel Hirschle
49287b5897 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-04-12 08:37:42 +02:00
Marcel Hirschle
2b376ac5d8 MH: Anpassung Ilka Link ivi 2022-04-12 08:37:16 +02:00
Christian
728e3a6eae Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-11 15:00:17 +02:00
Lyndon
50f73e0fdc . 2022-04-06 16:49:46 +02:00
Lyndon
e30e1fe6e9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-06 16:47:19 +02:00
Lyndon
fd013b8bcc Termine mit ausgewählten Ressourcen werden anonymisiert angezeigt 2022-04-06 16:47:09 +02:00
Christian
e77b45c9cd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-06 15:00:14 +02:00
Marcel Hirschle
114fd3e56a MH: Noch ein Textalignment angepasst 2022-04-06 14:35:40 +02:00
Marcel Hirschle
e31538f763 MH: Christopherushaus Familienhilfe fertig gemacht 2022-04-06 14:21:00 +02:00
Christian
8f30a358d9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-06 11:49:29 +02:00
Christian
6a6fb7ad44 cb 2022-04-06 11:49:20 +02:00
Marcel Hirschle
30d81981b1 MH: Einsatzzeiten von Christopherushaus Familienhilfe gefixt 2022-04-06 07:50:20 +02:00
Marcel Hirschle
e578a23c81 MH: Bugfix für VSD Hamm 2022-04-05 12:26:24 +02:00
Marcel Hirschle
caef66f06e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-04-05 08:32:51 +02:00
Marcel Hirschle
530a87d0ed MH: Anpassung für Team Pfeil und BeWoWalzPaiva 2022-04-05 08:32:36 +02:00
Alexandra
f832350185 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-04-04 18:10:39 +02:00
Alexandra
006a0ee3c2 Biotop 2022-04-04 18:09:29 +02:00
Marcel Hirschle
8318aca4c0 MH: Anpassung für Leistungskontingente von VARO gemacht 2022-04-04 13:47:37 +02:00
Marcel Hirschle
672611c6a2 MH: Fehler bei ChristopherusHausFamilienhilfe behoben und Vorlage für Wegweiser vorbereitet 2022-04-01 11:41:05 +02:00
Marcel Hirschle
70498feca6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-03-25 15:06:29 +01:00
Marcel Hirschle
d073df11cb MH: Viel Dienstplanung, Wohnheim und Urlaubsplanung fix 2022-03-25 15:05:39 +01:00
Alexandra
2afb31cce8 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-25 11:50:10 +01:00
Alexandra
b637aa98af Biotop und AWO Plön 2022-03-25 11:49:13 +01:00
Marcel Hirschle
c11acef3a6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-03-22 11:39:01 +01:00
Marcel Hirschle
acb4ab59b2 MH: Wohnheim-Changes 2022-03-22 11:38:58 +01:00
Marcel Hirschle
8a94a3068b MH: Anpassung für Ilka Link Ivi 2022-03-22 11:36:48 +01:00
Alexandra
465c6c6bb2 Biotop/CustomReportCreator.cs 2022-03-21 13:31:29 +01:00
Alexandra
ef1a8268b3 HausTheresia 2022-03-18 13:18:47 +01:00
Alexandra
17aeeef690 WHB Refrath und DiakonieLennep 2022-03-17 15:15:24 +01:00
Alexandra
6c99f92ce4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-16 15:24:22 +01:00
Alexandra
3f8831eed7 AwoKreisverbandPloen und CaritasAhlen/RechnungJugendamt 2022-03-16 15:23:27 +01:00
Marcel Hirschle
1c1f382479 MH: Anpassung für Toprak 2022-03-15 11:24:36 +01:00
Marcel Hirschle
7f4b63f9e1 MH: Anpassung für Leben & Wohnen Ambulante Dienste 2022-03-15 08:31:29 +01:00
Marcel Hirschle
b896cbd12f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-03-14 13:01:38 +01:00
Marcel Hirschle
edc8842e0d MH: Anpassung für Betreuwo 2022-03-14 13:01:35 +01:00
Alexandra
9a19017b82 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-14 10:32:43 +01:00
Alexandra
dde5614be8 AmbulantBetreutesWohnenAstridPulm 2022-03-14 10:31:54 +01:00
Marcel Hirschle
fc42ab182a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-03-14 07:08:32 +01:00
Marcel Hirschle
54e982209d MH: Anpassung für Ilka Link Ivi 2022-03-14 07:06:21 +01:00
Alexandra
657da87da5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-11 13:32:55 +01:00
Alexandra
5b584ced2b FrauenhausEWFRA, WhbRefrath und Schnödewind 2022-03-11 13:32:42 +01:00
Christian
89863803a9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-11 08:28:23 +01:00
Christian
cffd91209e cb 2022-03-11 08:28:19 +01:00
Alexandra
52164bf3d6 SbdStundenaufstellung mit Zeiterfassung 2022-03-09 16:52:32 +01:00
rene
25438ebd2d Zwischenstand:
- Download Req und Res eingeführt
- Version XML + version.config
2022-03-09 16:29:00 +01:00
Alexandra
7c759780ef Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-09 14:59:52 +01:00
Alexandra
a8822a5a87 Biotop, AsbRheinErftDuerenSBD 2022-03-09 14:59:38 +01:00
Marcel Hirschle
a31ce4dd41 MH: Anpassung für Autismus Leben 2022-03-08 10:09:21 +01:00
Christian
313c484a8b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-04 12:51:18 +01:00
Christian
130ea244b2 cb 2022-03-04 12:51:13 +01:00
Marcel Hirschle
46afdd2012 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-03-04 06:59:57 +01:00
Marcel Hirschle
a8405ccf9f MH: Anpassung für BuB 2022-03-04 06:58:21 +01:00
Christian
1e03e54840 cb 2022-03-03 01:27:17 +01:00
Christian
7f9d67b18e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-03 00:46:55 +01:00
Christian
89e36e01fb cb 2022-03-03 00:46:51 +01:00
Alexandra
c041efaa88 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-03-02 16:33:27 +01:00
Alexandra
9d80e5678f AsbRheinErftDuerenSBD, AutismusLeben und VSDHammReports 2022-03-02 16:33:15 +01:00
Marcel Hirschle
1dd5b54d9f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-03-02 16:00:38 +01:00
Marcel Hirschle
4bc71e5da4 MH: dienstplanung 2022-03-02 16:00:21 +01:00
rene
bae1380d45 Hauptfeatures laufen, Sicherheit eingebaut, Dynamische Programm Location
(Christian Gespräch 02.03.2022, OneNote Notizen 1)
2022-03-02 14:45:33 +01:00
Alexandra
8e29ad8351 VsdHammReportCreator 2022-03-02 10:25:46 +01:00
Alexandra
055bc8b035 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
#	Service/Plugins/PluginLoader.cs
2022-03-01 16:52:32 +01:00
Alexandra
092b228476 AsbRheinErftDuerenSBD 2022-03-01 16:49:00 +01:00
Marcel Hirschle
4f9f8f7d93 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-03-01 10:34:39 +01:00
Marcel Hirschle
c13d345af9 MH: Noch eine Anpassung für Link 2022-03-01 10:34:26 +01:00
rene
a2945ffdb4 Security Issue behoben, Anonyme Pipes als Lösung 2022-02-28 15:07:29 +01:00
rene
ad3c636fc5 Security Issue: Parameter werden im Prozess Baum gespeichert
-> Einfaches Auslesen
2022-02-28 12:19:12 +01:00
Christian
25b8b169c1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-02-28 10:48:54 +01:00
Christian
e5beb0d429 cb 2022-02-28 10:45:02 +01:00
rene
65b412f662 Basics + Dynamischer Installationsort laufen 2022-02-25 14:38:29 +01:00
Marcel Hirschle
b62e304c56 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-25 14:34:00 +01:00
Marcel Hirschle
bab3d11e26 MH: Anpassung für Autismus Leben 2022-02-25 14:33:44 +01:00
Alexandra
840dcc8d99 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-25 14:08:31 +01:00
Alexandra
8d4415b7cd WhbRefrath 2022-02-25 14:07:43 +01:00
Marcel Hirschle
c5d160d5d8 MH: Korrektur auf dem Betruungsnachweis 2022-02-24 09:20:16 +01:00
Marcel Hirschle
e0e86dd441 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-24 08:12:33 +01:00
Marcel Hirschle
b7e318db9c MH: PL 2022-02-24 08:12:29 +01:00
Marcel Hirschle
0673f79c99 MH: Dienstplanung und Anpassung für Ilka Link 2022-02-24 08:11:58 +01:00
Alexandra
62cdc8c9d6 FrauenhausEWFRA, LH Dorsten und kleinere 2022-02-23 17:47:22 +01:00
Alexandra
b445083420 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-22 16:46:00 +01:00
Alexandra
97966e7768 FrauenhausEWFRA, TRIAS und AstridPulm 2022-02-22 16:45:46 +01:00
Christian
aa8bb02bdd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-22 11:58:49 +01:00
Christian
8184426879 cb 2022-02-22 11:58:42 +01:00
Alexandra
ad4e7b768a FrauenhausEWFRA, SozialpaedagogischePraxis und GrundsteinEV 2022-02-21 17:12:00 +01:00
Marcel Hirschle
5b1fd3beaa MH: Unterschriften für Ilka Link Ivi 2022-02-21 13:52:13 +01:00
Marcel Hirschle
d97c1e45f7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-18 16:09:40 +01:00
Marcel Hirschle
17871b5ada MH: Updatevorbereitung 2022-02-18 16:09:25 +01:00
Alexandra
6afadd85ba Lösen Conflicts 2022-02-18 14:32:01 +01:00
Alexandra
fb3b903836 ProBalance 2022-02-18 14:28:47 +01:00
Alexandra
060adae957 ProBalance 2022-02-18 14:22:19 +01:00
Alexandra
a8327800e7 HausTheresia 2022-02-18 11:03:12 +01:00
Alexandra
5edb73ba87 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-18 11:01:41 +01:00
Alexandra
becb9f0cf1 Reports 2022-02-18 11:01:29 +01:00
Marcel Hirschle
8c3a4ba6bc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-17 13:42:48 +01:00
Marcel Hirschle
cdbc1d9f3e MH: Möglichkeit, die Statuszeile ein- und auszublenden, eingebaut 2022-02-17 13:42:32 +01:00
Lyndon
4cac269d67 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-15 17:23:34 +01:00
Lyndon
1c71edd78b Interfal Finder fertiggestellt 2022-02-15 17:22:14 +01:00
Alexandra
414d9ea445 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-15 17:21:40 +01:00
Alexandra
5a30c7a718 CaritasGuenzburgNeuUlm Stundenkonto... 2022-02-15 17:20:58 +01:00
Marcel Hirschle
d6c86f94de MH: Nachtrag Dienstplaner-Sortierung 2022-02-15 16:53:51 +01:00
Marcel Hirschle
9ca7757d70 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-15 16:36:29 +01:00
Marcel Hirschle
6cdc8fddc2 MH: Sortieren-Feature für Dienstplanung eingebaut 2022-02-15 16:36:23 +01:00
Christian
9abe34d3b1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
#	Service/Plugins/PluginLoader.cs
2022-02-15 16:13:46 +01:00
Christian
f2c7d12eec cb 2022-02-15 14:59:07 +01:00
Alexandra
0ea953e6be Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-15 14:37:48 +01:00
Alexandra
c108a19e92 AstridPulm und Scholz 2022-02-15 14:36:57 +01:00
Marcel Hirschle
fa0d1d0431 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-02-15 12:35:19 +01:00
Marcel Hirschle
446787de3d MH: PluginLoader 2022-02-15 12:33:55 +01:00
Marcel Hirschle
c4b8499364 MH: Teamnamen hinter Klienten- und Mitarbeiternamen eingefügt 2022-02-15 12:33:15 +01:00
Alexandra
9044c310c9 Stephan Schillings 2022-02-14 16:18:20 +01:00
Alexandra
0e8e9d642c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-14 15:02:21 +01:00
Alexandra
8b2326d5ba Diverse Reports + PluginLoader 2022-02-14 15:02:06 +01:00
Marcel Hirschle
03ca3d37ea MH: Insert und Updates in Model gepackt 2022-02-11 15:19:45 +01:00
Marcel Hirschle
f5a21aca8b MH: ContractHistory eingefügt 2022-02-11 15:12:53 +01:00
Marcel Hirschle
f77e7c8b0a MH: für KIMM 24.12. als Feiertag eingefügt 2022-02-11 10:31:51 +01:00
Marcel Hirschle
5332a8ac97 MH: QB für KIMM angepasst 2022-02-11 10:13:46 +01:00
Marcel Hirschle
bd03fe6b4b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-10 13:03:53 +01:00
Marcel Hirschle
c5ef266cd2 MH: Ordnerstruktur für Autismus Köln Bonn 2022-02-10 13:03:38 +01:00
Lyndon
26b0627a2f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-10 12:28:32 +01:00
Lyndon
7e6b4b6835 Verweis hinzugefügt 2022-02-10 12:28:23 +01:00
Christian
0145674ae8 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-10 12:17:14 +01:00
Christian
2976fb1c4f cb 2022-02-10 12:17:08 +01:00
Lyndon
a1ccce8883 Ein Mörtsch 2022-02-10 12:09:59 +01:00
Lyndon
9ffcf8ed62 Views in Partials aufgeteilt
Intervallfinder hinzugefügt
2022-02-10 11:06:03 +01:00
Alexandra
211797d89d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-09 16:46:36 +01:00
Alexandra
2749aeac46 Grundstein und Wegfinder 2022-02-09 16:45:44 +01:00
Marcel Hirschle
0c5a76f1dd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-09 14:45:05 +01:00
Marcel Hirschle
e87dbc7476 MH: PluginLoader 2022-02-09 14:45:02 +01:00
Marcel Hirschle
67acb563c1 MH: Neue Setting; Ornderstruktur für Klienten Autismus Köln; Feature Rechnungsübersicht 2022-02-09 14:44:33 +01:00
Alexandra
9f19a6227f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-08 11:27:37 +01:00
Alexandra
808727beb0 ChristopherusHausFamilienhilfe/Einsatzzeiten.Designer 2022-02-08 11:26:52 +01:00
Christian
61a854e7a4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-08 09:51:22 +01:00
Christian
a434dec647 cb 2022-02-08 09:51:16 +01:00
Alexandra
1bc9afcbe5 PluginLoader 2022-02-07 15:30:32 +01:00
Alexandra
02627d6a5f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-07 15:28:45 +01:00
Alexandra
5d03c0a231 BeWoTrio/Finanzauswertung und LH Essen u weitere 2022-02-07 15:27:32 +01:00
Marcel Hirschle
03adea044d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-02-07 11:14:21 +01:00
Marcel Hirschle
4754ae6f59 MH: Kundennummer bei Aidshilfe Essen eingefügt 2022-02-07 11:14:05 +01:00
Alexandra
33d0e7061b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-04 15:05:17 +01:00
Alexandra
816a5649f2 Grundstein und kleine Änderungen andere 2022-02-04 15:04:06 +01:00
Marcel Hirschle
0af8e5494b MH: Andere Rechnungen für Baak auch noch angepasst 2022-02-04 12:14:02 +01:00
Marcel Hirschle
de0b48db59 MH: Arbeitszeiterfassung in richtiges Integra-Projekt verschoben 2022-02-04 10:47:32 +01:00
Marcel Hirschle
04879a987c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-02-02 17:51:51 +01:00
Marcel Hirschle
4608d68eb8 MH: Anpassungen für Aidshilfe Essen 2022-02-02 17:50:40 +01:00
Alexandra
72133cd07e Nachträge 2022-02-02 16:30:55 +01:00
Alexandra
7e7fa00e7e BeWoTrio 2022-02-02 16:20:40 +01:00
Alexandra
26e198af10 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-02 16:18:26 +01:00
Alexandra
ed85aa0946 DiakonischesWerkPassau/Invoicing 2022-02-02 16:17:39 +01:00
Christian
f4b11c09c1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-02-02 16:15:24 +01:00
Christian
a431024934 cb 2022-02-02 16:13:54 +01:00
Alexandra
ed7d327306 KomMitBewo/Jahresabgrenzung 2022-02-02 15:40:51 +01:00
Alexandra
8cbd0012ae Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-02 14:02:42 +01:00
Alexandra
09669f1ed2 Neukunde Wegfinder 2022-02-02 14:02:27 +01:00
Christian
d347f65b5c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-02 13:26:36 +01:00
Christian
16e97523ec cb 2022-02-02 13:26:33 +01:00
Alexandra
247244c80a DiakonischesWerkPassau und PluginLoader 2022-02-02 11:52:34 +01:00
Alexandra
b16b952f15 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-02 11:07:32 +01:00
Alexandra
c428934836 KundeXyz 2022-02-02 11:06:17 +01:00
Christian
202dd8a820 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-02-01 12:20:53 +01:00
Christian
4850d012c3 cb 2022-02-01 12:20:49 +01:00
Alexandra
d5174f9778 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-31 17:52:02 +01:00
Alexandra
7f9474d2f8 DiakonischesWerkPassau 2022-01-31 17:51:37 +01:00
Marcel Hirschle
1580f1e903 MH: Dienstplanung testen und Fehler suchen 2022-01-31 14:00:07 +01:00
Marcel Hirschle
68ec155b63 MH 2022-01-28 17:12:24 +01:00
Marcel Hirschle
0e918ad215 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-01-28 15:38:39 +01:00
Marcel Hirschle
c432f296cf MH: Musste wieder PluginLoader einchecken 2022-01-28 15:35:31 +01:00
Marcel Hirschle
cde162bee2 MH: Uebergangshilfe Unna e.V. Anpassungen 2022-01-28 15:33:25 +01:00
Christian
5a0671eacb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-01-28 14:51:19 +01:00
Christian
9291b616bc cb 2022-01-28 14:27:43 +01:00
Alexandra
eeafe74850 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-28 14:12:42 +01:00
Alexandra
400eee8c5b GrundsteinEV und DiakonischesWerkPassau 2022-01-28 14:12:26 +01:00
Marcel Hirschle
79522451f0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-27 16:06:44 +01:00
Marcel Hirschle
3759bb0936 MH: ANpassung ivi 2022-01-27 16:06:31 +01:00
Alexandra
185c56bcb7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-26 17:08:50 +01:00
Alexandra
41785cd9c4 DiakonieLennepJobfit und DiakoniePassau 2022-01-26 17:07:40 +01:00
Marcel Hirschle
db3b4aa59d MH: Viel für ivi Ilka Link Ambulante Hilfen 2022-01-26 16:38:25 +01:00
Marcel Hirschle
04b397195b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-25 16:56:23 +01:00
Marcel Hirschle
cb7d7f5deb MH: Muss leider den PluginLoader einchecken 2022-01-25 16:56:20 +01:00
Marcel Hirschle
d1919917c4 MH: Viele Anpassungen für Ilka Link 2022-01-25 16:54:45 +01:00
Christian
8f809cfad2 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-25 10:43:49 +01:00
Christian
a68afa13ee CB 2022-01-25 10:43:43 +01:00
Alexandra
e2eb3dde62 KomMitBewo 2022-01-24 17:29:46 +01:00
Alexandra
aef19b2689 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-24 16:24:54 +01:00
Alexandra
5ffab721d2 KomMitBewo und BeWoAuxilio 2022-01-24 16:24:40 +01:00
Marcel Hirschle
459ea68ed9 MH: QB für IVI 2022-01-24 15:25:48 +01:00
Marcel Hirschle
bc1aa46619 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-24 14:01:29 +01:00
Marcel Hirschle
1cb3cc7739 MH: Ganz viel für Unna e.V. 2022-01-24 14:01:15 +01:00
Alexandra
ba15433512 PluginLoader 2022-01-21 16:01:58 +01:00
Alexandra
a8140e4f44 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-21 16:00:33 +01:00
Alexandra
e433add5e2 KomMitBewo 2022-01-21 15:59:36 +01:00
Marcel Hirschle
338c97902c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-21 15:53:02 +01:00
Marcel Hirschle
2d06c6ecee MH: Viele Änderung für Lebenshilfe Unna 2022-01-21 15:52:49 +01:00
Alexandra
1783497253 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-19 14:41:31 +01:00
Alexandra
b47edb3e3d BeWoAuxilio 2022-01-19 14:41:17 +01:00
Marcel Hirschle
de6e86a64b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-19 09:41:31 +01:00
Marcel Hirschle
dda8932148 MH: Arbeitszeiterfassung für Integra e.V. ermöglicht 2022-01-19 09:41:17 +01:00
Alexandra
f42b71eb39 SBBMainzReports/QuittierungsbelegJaMainz 2022-01-18 18:55:43 +01:00
Marcel Hirschle
eb20968855 MH: Rechnung für Baak angepasst 2022-01-18 16:09:48 +01:00
Marcel Hirschle
e816edefcc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-18 14:41:28 +01:00
Marcel Hirschle
7505275800 MH: Dienstplanung + neue Steuernummer für BeWoRimbach 2022-01-18 14:41:15 +01:00
Christian
135b216fcb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2022-01-17 19:22:14 +01:00
Christian
d4679eb6b9 cb 2022-01-17 19:04:46 +01:00
Alexandra
258c3b5fc7 AKGG, BeWoImFlow und LebensWert 2022-01-17 16:38:00 +01:00
Marcel Hirschle
4517993d74 MH: Bugfix im Soll-Druck, Ordnerstruktur für KOMM 2022-01-17 12:12:45 +01:00
Marcel Hirschle
e8929af7d9 MH: Anpassungen auf den Ausdrucken des Dienstplans 2022-01-12 09:32:16 +01:00
Marcel Hirschle
c0e3f5b202 MH: Korrektur bei Pro Hilfe GbR 2022-01-10 16:07:25 +01:00
Marcel Hirschle
45a49b406d MH: Korrektur bei der Rechnung 2022-01-10 15:25:12 +01:00
Marcel Hirschle
239c37d8c1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-10 15:21:34 +01:00
Marcel Hirschle
8e9da2b774 MH: Anpassung für Grundstein e.V. 2022-01-10 15:21:21 +01:00
Alexandra
3d66ba6db9 BeWoAuxilio 2022-01-07 13:31:38 +01:00
Alexandra
ffafbd0d69 BeWoAuxilio 2022-01-07 12:58:09 +01:00
Alexandra
0ea8ecfd48 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-07 12:50:57 +01:00
Alexandra
869984ff9a AbwKlassen 2022-01-07 12:44:05 +01:00
Marcel Hirschle
cedf54e103 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-07 10:26:27 +01:00
Marcel Hirschle
853e462599 MH: Anpassung für Pro Hilfe GbR 2022-01-07 10:26:09 +01:00
Christian
106d0fd7ca Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
#	Service/ServiceImplementations/CustomerServiceImp.cs
2022-01-07 00:48:33 +01:00
Marcel Hirschle
a201e2c125 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-06 17:20:44 +01:00
Marcel Hirschle
37cbb9d8c7 MH: Anpassung für Pro Hilfe GbR + WahlEv 2022-01-06 17:20:40 +01:00
Alexandra
b276c9c4e9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-06 14:54:17 +01:00
Alexandra
22c0309459 SBBMainz und AbwKlassen 2022-01-06 14:54:07 +01:00
Marcel Hirschle
b4a5056536 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2022-01-06 08:52:36 +01:00
Alexandra
877ff135e6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2022-01-06 08:04:25 +01:00
Alexandra
171c1ea38a Lebenswert 2022-01-06 08:04:08 +01:00
Alexandra
dff6786c74 Lebenswert 2022-01-05 17:40:23 +01:00
Alexandra
e124b273ae LebensWert, Lori und SBBMainzReports 2022-01-05 17:27:49 +01:00
Marcel Hirschle
d5cf6a33ab MH: Fehler in Druckversionen der Dienstplanung behoben und diese verbessert 2022-01-05 16:23:38 +01:00
Christian
5ad5c5025d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/PraxisPusteblume/PraxisPusteblume.csproj
2022-01-04 12:38:27 +01:00
Christian
32b2638d10 CB Reports 2022-01-04 12:13:52 +01:00
Alexandra
11692f07e2 IBPReports Budgetnachweis LWL 2022-01-04 09:44:03 +01:00
Alexandra
4ee3237234 Pusteblume und BetreuwoWesel 2022-01-03 15:57:28 +01:00
Alexandra
b682f33af6 BeWoRimbach 2021-12-30 11:35:07 +01:00
Alexandra
8933d0c372 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/DieBrueckeHilfeUndHalt/Teamstundenkonto.cs
2021-12-29 16:37:03 +01:00
Alexandra
5aa3529575 VSDHammReports und DieBrücke 2021-12-29 16:34:14 +01:00
Alexandra
31388f2379 VSDHammReports und DieBrücke 2021-12-29 15:33:02 +01:00
Alexandra
e367bf1208 Reports Diverse 2021-12-28 16:46:30 +01:00
Alexandra
54a1822ef3 WHB Refrath 2021-12-23 14:16:09 +01:00
Alexandra
b5ec8d2b14 GenderBeWoReports Feiertage 2021-12-22 13:45:00 +01:00
Alexandra
3490207531 GenderBeWoReports Feiertage 2021-12-21 17:39:39 +01:00
Alexandra
5375c9eb15 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-21 11:56:15 +01:00
Alexandra
aeb007a7c0 Der Karren und Neukunde Whb Refrath 2021-12-21 11:56:00 +01:00
Christian
79e2347b1a cb 2021-12-21 00:41:23 +01:00
Alexandra
8b38ccf49a Input Formatierung Punktebogen 2021-12-20 17:19:18 +01:00
Alexandra
ec2ea3e847 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-20 16:51:01 +01:00
Alexandra
3140dc90b0 AWOPlön und KCM GmbH 2021-12-20 16:50:46 +01:00
Marcel Hirschle
bf234c774e MH: Namensanpassung bei BeWo ImFlow 2021-12-20 07:52:00 +01:00
Marcel Hirschle
89d6ee3a09 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-12-20 07:04:43 +01:00
Marcel Hirschle
1ac58d5373 MH: Legende auf Punktebogen für Input Familienhilfe eingefügt 2021-12-20 07:04:28 +01:00
Alexandra
98d0d2b549 LH Dorsten 2021-12-17 13:21:16 +01:00
Alexandra
0a9fe4062c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-17 11:53:14 +01:00
Alexandra
21763cd3c7 Baak und BehindertenhilfeMenden 2021-12-17 11:52:32 +01:00
Marcel Hirschle
fc012aecfe Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-12-15 13:30:09 +01:00
Marcel Hirschle
3f47158261 MH: Logo auf Rechnungen für Münchener Aids-Hilfe eingefügt 2021-12-15 13:29:14 +01:00
Christian
35bd46a1bb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-12-15 11:06:19 +01:00
Christian
f66b9a1add CB 2021-12-15 11:05:34 +01:00
Marcel Hirschle
fefe61f56b MH: Anpassung für BHV Bergische Hauspflege (Abwesenheit, die nicht Soll beeinflusst 2021-12-15 09:51:04 +01:00
Marcel Hirschle
8d680a72a2 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-12-14 15:14:33 +01:00
Marcel Hirschle
c545780c4b MH: Kleine Änderungen für Dienstplanung 2021-12-14 15:14:16 +01:00
Alexandra
98458525ca Input 2021-12-14 15:09:55 +01:00
Alexandra
cc93e5b84d SBBMainzReports/QuittierungsbelegJaMainz und BetreuungsbueroBaak 2021-12-14 13:13:47 +01:00
Alexandra
92670cfe21 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-13 16:28:02 +01:00
Alexandra
200190f426 Sprungbrett 2021-12-13 16:27:52 +01:00
Alexandra
4ac724a590 Sprungbrett 2021-12-13 15:33:45 +01:00
Alexandra
990d7f8f1e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-13 15:23:22 +01:00
Alexandra
5643c0c73f SprungbrettReports und SprungbrettTheresia 2021-12-13 15:21:46 +01:00
Marcel Hirschle
3a87d88948 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-12-13 08:07:34 +01:00
Marcel Hirschle
165e1067a9 MH: DienstView und ICF Updates 2021-12-13 08:07:09 +01:00
Christian
2a2753169b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/BeWoRimbach/ServiceInvoiceReport.Designer.cs
#	ReportImp/BeWoRimbach/ServiceInvoiceReport.cs
#	ReportImp/BeWoRimbach/ServiceInvoiceReport.resx
2021-12-10 10:22:39 +01:00
Christian
418f40606f cb 2021-12-09 15:51:43 +01:00
Alexandra
f80bf44e4f Neukunden und BeWoSchilling 2021-12-09 14:25:27 +01:00
Alexandra
76ae5d6432 BeWoRimbach Rechnungstext 2021-12-07 12:55:12 +01:00
Alexandra
7fbd9fa0c6 BetreuungsbueroBaak/SettlementReport 2021-12-07 09:34:05 +01:00
Alexandra
34dc4e95a7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-06 17:55:08 +01:00
Alexandra
d1fda11641 KompassBeWoWesel Font Lato 2021-12-06 17:53:50 +01:00
Alexandra
2f84c25661 BetreuwoWesel diverse Rechnungsänderungen 2021-12-06 16:19:44 +01:00
Christian
eeecc08c01 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-05 19:21:22 +01:00
Christian
be6732e5e8 CB, Storno und Reports 2021-12-05 19:21:17 +01:00
Alexandra
4c3b1ff8e4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-03 10:13:50 +01:00
Alexandra
d7c638a37e Reports diverse 2021-12-03 10:13:33 +01:00
Marcel Hirschle
ea94580be4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-12-01 14:10:14 +01:00
Marcel Hirschle
92d44be7ad MH: SupportConcept Histories eingefügt + Einfügen von ganzen Teams in Wohnheime ermöglicht 2021-12-01 14:09:56 +01:00
Christian
e0609b94cd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-12-01 10:20:03 +01:00
Alexandra
6226eb0194 Ferien Niedersachsen ergänzt 2021-11-30 17:06:41 +01:00
Alexandra
f3bcbc2f0e CarlSonnenscheinHaus Briefkopf, Logo, Arbeitszeiterfassung 2021-11-30 16:21:11 +01:00
Christian
edde5e1a31 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/CaritasFrankfurt2Reports/ServicesOverviewReport.Designer.cs
#	ReportImp/CaritasFrankfurtReports/ServicesOverviewReport.Designer.cs
2021-11-30 13:33:46 +01:00
Christian
0775c566e5 cb 2021-11-29 19:31:36 +01:00
Alexandra
dbdff096e5 RatPlusTat Selbstzahler und Caritas Frankfurt 2021-11-29 16:10:15 +01:00
Alexandra
445c9804ed Bewegt Korrektur 2021-11-26 08:00:44 +01:00
Alexandra
27a802687c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-25 14:53:40 +01:00
Alexandra
f0b154f87c RatPlusTat Finish und Kette neues Logo 2021-11-25 14:53:25 +01:00
Christian
bfd2e1fbc4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-24 17:12:12 +01:00
Christian
f51561e5bf cb 2021-11-24 17:12:03 +01:00
Alexandra
f5dd4fde45 VARO Bewilligte FLS monatlich/wöchentlich 2021-11-24 16:53:19 +01:00
Alexandra
4aede80c0e Merge Conflict 2021-11-24 16:50:24 +01:00
Alexandra
8bd8032fc3 Änderungen VARO Rechnung und Quittierungsbeleg 2021-11-24 16:35:16 +01:00
Alexandra
6cd3c6d3fa Änderungen VARO Rechnung und Quittierungsbeleg 2021-11-24 15:25:25 +01:00
Christian
d2d3cee3dd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-22 16:58:07 +01:00
Alexandra
632aaed745 BeWoRimbach Ergänzung 2021-11-22 16:53:58 +01:00
Christian
616d5e63c2 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-22 16:15:23 +01:00
Christian
d42c932ef0 cb 2021-11-22 16:15:15 +01:00
rene
4fb9c98ee1 Projekte hinzugefügt:
- BeWoLauncher.csproj
- SharedLauncher.csproj
- LauncherHost.csproj
2021-11-22 15:50:34 +01:00
Alexandra
a5704382b6 Pusteblume OBASammel
RatPlusTat und SBBMainz Quittierungsbelege
2021-11-22 14:32:00 +01:00
Alexandra
8b1c6e1838 BeWoRimbach Logo und Feiertage, SBB neue Quittierungsbelege 2021-11-19 14:54:44 +01:00
Alexandra
028a135ffb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-18 09:59:55 +01:00
Alexandra
39b0ab153d Firmenname von ABC zu Schubkraft, Unterschrift auf Rg bei WahlEv 2021-11-18 09:59:38 +01:00
Christian
02fdf19582 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-17 11:50:32 +01:00
Christian
9af997c3da cb 2021-11-17 11:50:24 +01:00
Marcel Hirschle
52a45455ef MH: Pfad von ICF aktualisiert + unnötige control auskommmentiert 2021-11-17 11:36:58 +01:00
Alexandra
8583b72b7c RatPlusTat Rechnungen und QBelege 2021-11-16 17:01:21 +01:00
Marcel Hirschle
eda4a58f2e Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-11-16 17:00:24 +01:00
Marcel Hirschle
66bbe92eac MH: ICF komplett drin und Dienstplaner Soll-Druck-Version verbessert 2021-11-16 17:00:05 +01:00
Christian
becde4d393 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-16 10:56:53 +01:00
Christian
0cdbf53408 cb 2021-11-16 10:56:40 +01:00
Alexandra
9915643e40 BeWo am Rhein Spitzabrechnung an LVR Wünsche angepasst 2021-11-12 12:06:59 +01:00
Alexandra
5b1a054a05 Pusteblume zusätzliche Spalte 2021-11-11 12:11:39 +01:00
Alexandra
96afc19efe ProBalance/ServicesOverviewReport Unterschrift Klient im QBeleg 2021-11-10 17:18:44 +01:00
Alexandra
774db49e2b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-10 15:56:15 +01:00
Alexandra
69b2deefc4 BetreutesWohnenStLudgerus/FLSListReport und ServiceRecordListReport angepasst 2021-11-10 15:56:08 +01:00
Marcel Hirschle
e6d9692f41 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-11-10 14:28:05 +01:00
Marcel Hirschle
9d8e799baf mh 2021-11-10 14:28:00 +01:00
Alexandra
7dd164b161 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-10 14:27:26 +01:00
Alexandra
1ef887a298 PZDDuesseldorf/Quittierungsbeleg neu 2021-11-10 14:27:03 +01:00
Marcel Hirschle
0450b68096 MH: Anpassung für Wahl e.V. + Anpassung der Legende im RosterReport 2021-11-10 13:16:40 +01:00
Marcel Hirschle
ab9a3019db Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	BeWo/Scheduler/View/SchedulerAppointmentEditForm.xaml.cs
#	BeWo/ServiceProxy/Generated.cs
2021-11-09 16:54:44 +01:00
Marcel Hirschle
eee7837ece MH: Auslastungsübersicht für Klienten im Kalender 2021-11-09 16:48:58 +01:00
Alexandra
c3a937ceab BellaDonna/ServiceInvoiceReport Betreff 2021-11-09 14:40:04 +01:00
Alexandra
7f41c78911 ChristopherusHausFamilienhilfe - Neukunde 2021-11-09 13:56:58 +01:00
Alexandra
99191761c3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-09 13:20:56 +01:00
Alexandra
bb89c8bf98 ClaudiaCharisius/SettlementReport neu 2021-11-09 13:20:48 +01:00
Lyndon Jetten
ca0e45e33d Konflikte behoben 2021-11-08 20:39:15 +01:00
Lyndon Jetten
9783999104 MoK:
Medikamentenlistenansicht ausgeblendet, wenn man nicht im Debug-Modus ist
5- und 7-tägige Ansicht implementiert

Fat-Client:
Das Ändern von Zeitelementen von Serienterminen ist nun möglich und es werden dabei auch keine Ausnahmen gelöscht.
2021-11-08 20:24:26 +01:00
Christian
a874692529 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-08 16:43:54 +01:00
Christian
5206a72da6 cb 2021-11-08 16:43:43 +01:00
Alexandra
a3e44896b6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-11-08 10:04:54 +01:00
Alexandra
f68831d03d Änderungen bei Kimm und Pusteblume 2021-11-08 10:04:27 +01:00
Alexandra
0d24e7bb60 Änderungen bei Kimm und Pusteblume 2021-11-08 09:30:14 +01:00
Alexandra
f3d147f0f1 Korrektur letzter Checkin
Der hat das alles eingecheckt und nicht nur das was ich wollte :-(
2021-11-05 12:58:00 +01:00
Alexandra
619cb2a3cd Hoffentlich gelöst
# Conflicts:
#	BeWoAllReports.sln
#	ReportImp/TrialogReports/SettlementReport.Designer.cs
#	ReportImp/TrialogReports/SettlementReportAlt.Designer.cs
#	Service/Plugins/PluginLoader.cs
2021-11-05 12:32:48 +01:00
Alexandra
c29fd32a21 Reports Trialog und Pusteblume 2021-11-05 11:57:09 +01:00
Marcel Hirschle
b0cdf19f0f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-11-02 12:55:11 +01:00
Marcel Hirschle
27ee1130ce MH: Anpassung Ist-Druck für Wahl eV 2021-11-02 12:50:37 +01:00
Christian
c52ec80497 cb 2021-10-30 20:05:24 +02:00
Christian
7dcc456bec Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
#	ReportImp/TrialogReports/SettlementReport2.Designer.cs
#	ReportImp/TrialogReports/SettlementReport2.resx
2021-10-29 14:41:48 +02:00
Christian
1fceea28f2 cb 2021-10-29 14:40:10 +02:00
Alexandra
51f32f8866 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-10-29 10:38:06 +02:00
Alexandra
fd240551d6 Trialog Umfirmierung 2021-10-29 10:37:36 +02:00
Christian
5d62ed4f96 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
#	Service/Plugins/PluginLoader.cs
2021-10-28 12:19:19 +02:00
Christian
a0df120622 cb: Reports 2021-10-28 12:07:51 +02:00
Marcel Hirschle
6491dc5e6f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-10-28 11:17:10 +02:00
Marcel Hirschle
bef66b0f67 MH: Testcommit 2021-10-28 11:16:54 +02:00
Alexandra
c18d29fbca Anpassung Quittierungsbelege Caritas Frankfurt 2021-10-25 13:50:35 +02:00
Alexandra
cc283e7dc4 Neukunde Claudia Charisius 2021-10-22 14:16:50 +02:00
Alexandra
e12bf57b96 ZAD-Nr geändert 2021-10-22 10:14:02 +02:00
Christian
b40cfb6981 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-10-18 00:43:51 +02:00
Christian
d5a0cd38b5 cb bugfixing V3.5 2021-10-18 00:43:47 +02:00
Lyndon Jetten
f81b5e2c62 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-10-15 19:18:24 +02:00
Lyndon Jetten
df976bd58b Bis zu vier Ressourcenfarben werden im Kalender angezeigt. 2021-10-15 19:18:15 +02:00
Christian
6da9ae3dd3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Model/Change_2021_09_28_DienstInfo.txt
2021-10-15 17:46:53 +02:00
Christian
6e2b34d6fc cb 2021-10-15 17:32:32 +02:00
Marcel Hirschle
8166431a6b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-10-15 13:13:42 +02:00
Marcel Hirschle
fe0cc55ccc MH: Alle Ungereimtheiten, die ich finden konnte, berichtigt 2021-10-15 13:13:27 +02:00
Lyndon Jetten
fc1b9c3be1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-10-13 19:14:15 +02:00
Lyndon Jetten
ba64856120 MoK:
Fehler im MultitenancyPath in Web.config behoben
Bei der Statistik ist auch bei mehreren Teilhilfeplänen
2021-10-13 19:14:11 +02:00
Marcel Hirschle
4dcad28652 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-10-13 16:47:22 +02:00
Marcel Hirschle
b37d0c7a4e MH: Bug behoben 2021-10-13 16:47:15 +02:00
Lyndon Jetten
4c95e55ca9 . 2021-10-13 16:19:31 +02:00
Lyndon Jetten
5939aef72c Fat-Client:
Es ist möglich, allen Termin-Einladungen auf einmal zuzusagen

MoK:
DevExpress von Version 17.1 auf 21.1 aktualisiert
Reports testweise eingebaut
DevExpress-Scheduler testweise eingebaut
2021-10-13 16:00:33 +02:00
Christian
f22d93c5eb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-10-13 14:51:21 +02:00
Christian
360df71632 CB 2021-10-13 14:38:51 +02:00
Marcel Hirschle
5bae8adf99 MH: Bugs im Dienstplaner behoben 2021-10-13 14:08:23 +02:00
Marcel Hirschle
2ead42bea0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-10-12 16:00:33 +02:00
Marcel Hirschle
70126f8a20 MH: Viel rund um Dienstplanung + neue Methode für MitarbeiterstundenkontoBerechnung 2021-10-12 16:00:17 +02:00
Alexandra
07dd2261f3 Neukunde PZD und VARO Änderungen 2021-10-08 14:51:28 +02:00
Alexandra
0d83711093 Anlegen neues Projekt für LebensWert und Logo bei VaroSozialagentur.Quittierungsbeleg 2021-10-07 13:10:09 +02:00
Alexandra
e582ddebf1 DomizielAnsbach Sammelrechnung 2021-10-06 17:39:27 +02:00
Alexandra
2aebf1668e PluginLoader 2021-10-06 17:37:43 +02:00
Alexandra
b5557ee58f Erstellung Sammelrechnung Bezirk (stationär) 2021-10-06 17:32:14 +02:00
Alexandra
54e6a80e33 Anpassung in Spitzabrechnung 2021-10-05 15:00:54 +02:00
Alexandra
f47122dca8 Zurück auf ursprünglichen Stand 2021-10-05 13:37:29 +02:00
Alexandra
430b6af30f Änderungen an Rechnungen IFF und HPFF 2021-10-05 13:30:44 +02:00
Alexandra
b07ccc8313 Änderungen an Rechnungen IFF und HPFF 2021-10-05 13:30:20 +02:00
Christian
908ce1ea7f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-10-01 18:38:39 +02:00
Christian
8b8177fcdc cb 2021-10-01 16:49:37 +02:00
Alexandra
58722d739b Reports Support 2021-10-01 14:23:56 +02:00
Alexandra
b489d9c46d Änderungen LHDuisburgAtz 2021-09-28 19:03:51 +02:00
Christian
e101738421 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
#	Service/Plugins/PluginLoader.cs
2021-09-27 21:44:38 +02:00
Christian
73f5092b67 cb 2021-09-27 21:33:04 +02:00
Marcel Hirschle
859b3e2170 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-09-27 15:11:54 +02:00
Marcel Hirschle
a390f4b49f MH: Dienstplaner-Code verbessert, kommentiert und Bugs behoben 2021-09-27 15:11:22 +02:00
Alexandra
3481027915 Neukunde CarlSonnenscheinHaus Reports Briefkopf 2021-09-27 11:16:13 +02:00
Alexandra
20f7fc351c WEtterleuchten nacharbeiten 2021-09-24 11:17:40 +02:00
Alexandra
8d0b129dc4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-24 07:57:40 +02:00
Alexandra
cb688d25d4 Minimodifikation Support (Az entfernt) 2021-09-24 07:57:24 +02:00
Christian
c7dde64d67 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoAllReports.sln
#	ReportImp/DomizielAnsbach/DomizielAnsbach.csproj
#	Service/Plugins/PluginLoader.cs
2021-09-23 20:41:13 +02:00
Christian
3d03e0cf25 cb: reports 2021-09-23 18:44:18 +02:00
Alexandra
e4aa6b0fc8 Erster Versuch gelöscht 2021-09-23 15:05:28 +02:00
Alexandra
d85760ec55 Neuer Budgetnachweis LWL 2021-09-23 14:59:12 +02:00
Alexandra
f52fb72317 Anpassung Kundenwunsch 2021-09-23 14:57:57 +02:00
Alexandra
91519c8658 Briefkopf DomizielAnsbach eingefügt 2021-09-23 14:56:57 +02:00
Alexandra
a7494e1e61 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-23 10:05:24 +02:00
Alexandra
df5d1d7844 Anpassungen Reports aus Supportaufträgen 2021-09-23 10:05:07 +02:00
Marcel Hirschle
3ae9502625 MH: ServiceInvoiceReport für Betreuwo Wesel angepasst 2021-09-22 16:19:05 +02:00
Marcel Hirschle
d2ed50e391 MH: Ordnerstruktur für neue Klienten / Mitarbeiter von Betreuwo Wesel angelegt 2021-09-22 16:16:22 +02:00
Marcel Hirschle
2f16142313 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-09-22 15:35:01 +02:00
Marcel Hirschle
0ac5d426d7 MH: Tolle neue Sachen im Dienstplaner 2021-09-22 15:34:38 +02:00
Alexandra
2e58211e6f Umstellung Spitzabrechnung Marienhospital auf neues LWL Formular 2021-09-20 15:31:55 +02:00
Alexandra
61e4817b3b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-17 11:52:25 +02:00
Alexandra
e456f7131f Reportanpassungen Marienhospital und Pusteblume 2021-09-17 11:51:53 +02:00
Marcel Hirschle
6dd2110d88 MH: Urlaubskonto als eigene View erstellt und aus AbwesenheitsView aufrufbar gemacht 2021-09-15 16:52:14 +02:00
Marcel Hirschle
b887a1ddb5 MH: Urlaubsplaner->Statistik für Jahr: Fehlerbehebung und Verbesserung 2021-09-15 14:32:21 +02:00
Marcel Hirschle
df69682c63 MH: Versucht, Code zu vereinfachen; ist aber in einer Region auskommentiert 2021-09-15 11:12:01 +02:00
Marcel Hirschle
bab5d2ff89 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-09-15 11:00:13 +02:00
Marcel Hirschle
8a2110434a MH: Code verschönert und vereinfacht 2021-09-15 11:00:00 +02:00
Alexandra
34390a4b58 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-15 10:17:21 +02:00
Alexandra
e8b8570ac9 BeWoDirekt Quittierungsbeleg und Spitzabrechnung Texte modifiziert 2021-09-15 10:17:03 +02:00
Marcel Hirschle
b268d465ad MH: Code von Darstellungsmethode verschönert 2021-09-14 16:52:17 +02:00
Marcel Hirschle
9558fafec1 MH: Urlaubskonto funktioniert.. Es lebt, juhu! 2021-09-14 15:29:17 +02:00
Marcel Hirschle
5349d19c04 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-09-14 14:08:25 +02:00
Marcel Hirschle
3e20250e84 MH: Fehler bei Drucken des Dienstplans behoben 2021-09-14 14:08:08 +02:00
Alexandra
6405b85b88 KoelnerBewo Anpassung String Format 2021-09-13 13:52:33 +02:00
Alexandra
43c37de1ff Entfernen von kleinem Text unterhalb des Logos 2021-09-10 14:32:15 +02:00
Alexandra
cc719181bc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-10 12:51:36 +02:00
Alexandra
e46b49af74 Code aufgeräumt 2021-09-10 12:51:28 +02:00
Alexandra
984c92201f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-09-10 09:56:22 +02:00
Alexandra
a362434928 Anhang alter Budgetnachweis bei Wetterleuchten - neuer QBeleg für DiakonischesWerkRegensburg 2021-09-10 09:53:49 +02:00
Lyndon Jetten
365027afc9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-07 19:33:44 +02:00
Lyndon Jetten
e1b5a94293 MoK:
Gruppen bei Gruppenbuchungen werden alphabetisch sortiert
2021-09-07 19:33:40 +02:00
Christian
fb8da8daa7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	BeWo/View/Detail/SupportConceptGoalRatingView.xaml.cs
#	BeWo/View/Search/SupportConceptGroupSearchView.cs
#	BeWo/ownChat/ChatServiceCustomer.xaml.cs
#	BeWo/ownChat/ChatServiceEmployee.xaml.cs
#	ReportImp/ChristianLuft/ServiceInvoiceReport.Designer.cs
#	Service/Plugins/PluginLoader.cs
#	Service/ServiceContracts/IEmployeeService.cs
2021-09-07 16:16:16 +02:00
Christian
104a7e6972 cb 2021-09-07 15:51:34 +02:00
Alexandra
749c9b51c2 Änderung Rg ChristianLuft 2021-09-07 10:20:58 +02:00
Marcel Hirschle
b402d6c32e MH: Konflikt beseitigt 2021-09-06 12:47:09 +02:00
Marcel Hirschle
b3fd51c1b9 MH: Anpassung des Namespace für Caritas Guenzburg Neu Ulm 2021-09-06 12:45:11 +02:00
Marcel Hirschle
5446c259f7 MH: Erneuerung der Urlaubstage-Ansicht in EmployeeView + Anpassung für Caritas Guenzburg Neu Ulm 2021-09-06 12:43:23 +02:00
Alexandra
7f3f6e36c7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-09-03 10:07:24 +02:00
Alexandra
25762ec81b Einfügen der Abwesenheiten im QBeleg 2021-09-03 10:06:14 +02:00
Alexandra
d13aa6d295 Alphabetische Sortierung der Gruppen 2021-08-31 14:11:06 +02:00
Christian
d657ca6d94 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-31 10:50:01 +02:00
Christian
90e6529527 cb 2021-08-31 10:47:52 +02:00
Alexandra
220d1c6909 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-30 10:38:33 +02:00
Alexandra
5634049fa2 Ergänzung Wichernhaus 2021-08-30 10:38:11 +02:00
Alexandra
aa9f6d9157 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-30 10:35:34 +02:00
Alexandra
9fe348b3a1 Neues ReportImp Wichernhaus 2021-08-30 10:34:57 +02:00
Alexandra
0d556df91f Modifikation KassenbuchDruck 2021-08-30 10:33:15 +02:00
Marcel Hirschle
2f39ac28d0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-08-27 07:34:58 +02:00
Marcel Hirschle
d82b1ed005 MH: Abwesenheitsauswertung als Tabelle und als druckbaren Bericht + Urlaubskontodarstellung 2021-08-27 07:34:43 +02:00
Alexandra
77f8d6cad6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-25 17:16:25 +02:00
Christian
830d6da259 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-25 17:15:24 +02:00
Christian
a2238b4b3f cb 2021-08-25 17:15:13 +02:00
Alexandra
44829e0b30 Abrechnung der Assistenzleistungen 2021-08-25 12:51:58 +02:00
Alexandra
09bd6a0ffd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-25 12:42:12 +02:00
Alexandra
d14d906070 Abrechnung der Assistenzleistungen 2021-08-25 12:36:15 +02:00
Christian
89ea1047a5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-24 14:52:28 +02:00
Christian
fb6113e962 cb 2021-08-24 14:52:23 +02:00
Lyndon Jetten
d52023008b Konflikte gelöst 2021-08-19 18:02:10 +02:00
Lyndon Jetten
afae37211c . 2021-08-19 17:43:16 +02:00
Lyndon Jetten
9522b89660 MoK:
DevExpress Scheduler testweise eingebaut. Musste die web.config anpassen und die Skripte, deshalb hab ich das nicht einfach auskommentiert.

Fat-Client:
Kalender: mehrere Termine, die zum löschen ausgewählt sind, werden jetzt auf einmal gelöscht, nicht mehr hintereinander.

BetreuWoReports:
Klienten sind nach Namen sortiert.
Klienten, für die der ausgewählte Mitarbeiter/Team Stunden geleistet hat, werden alle angezeigt. Auch die, die nicht vom Mitarbeiter/Team betreut werden.
2021-08-19 17:22:04 +02:00
Christian
9036e89ad7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-08-19 09:54:59 +02:00
Christian
8c4853c905 cb 2021-08-19 09:54:50 +02:00
Alexandra
6d3530b959 Essenanwesenheit als Druck 2021-08-18 16:01:36 +02:00
Alexandra
6a177b26f4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-08-17 17:22:57 +02:00
Alexandra
4f40b22f75 Preis aufgeräumt 2021-08-17 17:12:52 +02:00
Alexandra
785aae4d9a Mit änderbarem Preis 2021-08-17 15:32:30 +02:00
Alexandra
862226d501 Mit änderbarem Preis 2021-08-17 15:32:01 +02:00
Alexandra
19e82a2695 Mit änderbarem Preis 2021-08-17 15:31:37 +02:00
Alexandra
939ed275bf Mit änderbarem Preis 2021-08-17 15:31:19 +02:00
Alexandra
0b34ccb9fc Mit änderbarem Preis 2021-08-17 15:31:02 +02:00
Alexandra
3498680a06 Mit änderbarem Preis 2021-08-17 15:30:54 +02:00
Christian
d59e131dd3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-08-17 12:01:45 +02:00
Christian
17093d6388 cb reports 2021-08-17 11:58:11 +02:00
Marcel Hirschle
0992112590 MH: Anpassung für ABW Elsebrock 2021-08-17 07:39:05 +02:00
Marcel Hirschle
fa8c77ce5a MH: Anpassung für Sozialwerk Aachener Christen und Anfänge für BeWo Rimbach 2021-08-16 12:19:22 +02:00
Marcel Hirschle
6215b6308f MH: Anpassung für Severin 2021-08-13 07:55:10 +02:00
Marcel Hirschle
208f65e911 MH: Anpassung für Severin 2021-08-12 14:51:13 +02:00
Marcel Hirschle
5ec49f5eaf MH: Anpassung für Christian Luft 2021-08-12 11:30:25 +02:00
Marcel Hirschle
6351b5a3cc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-08-12 11:02:23 +02:00
Marcel Hirschle
71c02efcb9 MH: Pull 2021-08-12 11:02:10 +02:00
Alexandra
f6583bc30a Zurücksetzen auf vorherigen Stand 2021-08-11 14:39:20 +02:00
Alexandra
25206f70d6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-08-11 14:14:17 +02:00
Alexandra
71860359a4 AB 2021-08-11 14:10:15 +02:00
Alexandra
67f0a01a71 Anpassung auf bayrische und betriebsspezifische Feiertage 2021-08-11 14:08:16 +02:00
Marcel Hirschle
f42ff16c60 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-08-11 13:58:05 +02:00
Marcel Hirschle
ac046affce MH: Vorlagen und Anpassungen für Diakonisches Werk Passau eingefügt 2021-08-11 13:57:49 +02:00
Alexandra
1908f72182 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-08-11 12:09:24 +02:00
Alexandra
ec4059f282 AB 2021-08-11 12:06:56 +02:00
Christian
b862171710 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
2021-08-11 12:00:11 +02:00
Christian
18d70417d9 cb 2021-08-11 11:59:16 +02:00
Alexandra
c41a3d3bad Änderung Bezeichnung auf Kundenwunsch 2021-08-10 10:23:49 +02:00
Alexandra
de921ea96b Anpassung Layout nach Umfirmierung 2021-08-10 09:52:39 +02:00
Marcel Hirschle
756bdf14ea MH: Anpassung für Sicherleben Inh. Michael Voß 2021-08-10 07:35:56 +02:00
Alexandra
752ae924fc Anpassung an Kundenwünsche 2021-08-09 16:09:59 +02:00
Marcel Hirschle
750ec87086 MH: Anpassung für LORI 2021-08-09 14:11:57 +02:00
Marcel Hirschle
2db7285889 MH: Anpassung für Sozialwerk Aachener Christen 2021-08-09 13:00:06 +02:00
Marcel Hirschle
02f94198ee MH: Pull 2021-08-09 10:38:02 +02:00
Alexandra
13c9a23fc9 Aktivierung Hibernate für Preis 2021-08-05 11:57:27 +02:00
Alexandra
7e0be99ef9 Spaltenüberschrift geändert 2021-08-05 11:56:01 +02:00
Marcel Hirschle
81edefb7d4 MH: Ordnerstruktur für zukünftige Klienten von FiZ Hof angelegt 2021-08-05 11:55:36 +02:00
Marcel Hirschle
14604ca417 MH: Samstage farblich angepasst 2021-08-05 11:35:55 +02:00
Marcel Hirschle
90822eb2f1 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-08-04 15:13:30 +02:00
Marcel Hirschle
c4238086d7 MH: Resturlaubsberechnung für manche Situationen eingefügt 2021-08-04 15:13:15 +02:00
Alexandra
ed60afcecb AB 2021-08-04 14:56:07 +02:00
Alexandra
781a3038ce Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/ProIntegra/ProIntegra.csproj
2021-08-04 14:41:38 +02:00
Alexandra
9b9ae49c9f AB 2021-08-04 14:31:43 +02:00
Alexandra
53d2e00be5 AB 2021-08-04 14:30:26 +02:00
Christian
34f7cb56eb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-08-03 14:11:03 +02:00
Christian
cc6afe27dd cb: reports 2021-08-03 14:08:22 +02:00
Marcel Hirschle
2ffb57aa1c MH: Bugfix für die Urlaubsplanung 2021-08-02 15:00:39 +02:00
Marcel Hirschle
0ffa73a8e2 MH: Letzte Bugs bei Umbenennen-Funktion gefixt 2021-08-02 07:34:51 +02:00
Marcel Hirschle
a39fc24372 MH: Bug im Dienstplaner gefixt 2021-07-30 11:44:34 +02:00
Marcel Hirschle
06c167197b MH: Dateinamen und -beschreibung änderbar 2021-07-30 09:08:25 +02:00
Marcel Hirschle
0b360dea73 MH: Anpassungen für Lebenshilfe Essen und TRIAS Ambulante Sozialarbeit 2021-07-29 10:53:56 +02:00
Marcel Hirschle
497fae1e99 MH: Neue View zum Bearbeiten von Datei-Infos erstellt 2021-07-29 08:44:33 +02:00
Marcel Hirschle
7cb2024ec7 MH: Neue View und Neuerung für DokumenteView 2021-07-28 15:04:35 +02:00
Marcel Hirschle
992334c2ba MH: Pull 2021-07-28 11:24:18 +02:00
Marcel Hirschle
05dce0ce27 MH: Dienstplaner Änderung 2021-07-27 14:44:45 +02:00
Marcel Hirschle
7110fc7c6a MH: Anpassung für Zuhause Wohnen Iris Thimm 2021-07-27 11:45:00 +02:00
Marcel Hirschle
a36ca3cd77 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-07-26 09:14:59 +02:00
Marcel Hirschle
2a88ad4e21 MH: Bilder für ZuhauseWohnenIrisThimm + Neues Projekt für FAM Rhein-Sieg Gbr angelegt 2021-07-26 09:11:12 +02:00
Christian
ccf58677cf Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-07-25 21:49:54 +02:00
Christian
e77fb19672 cb reports 2021-07-25 21:49:50 +02:00
Lyndon Jetten
1c4bd11446 MoK:
- Zeiterfassungseinträge mit ServiceDescription "Arbeitszeit" und "Pause" dürfen sich bei Kunde Synprax überschneiden
- Bei Klienten werden jetzt auch die Organisationen des Umfelds angezeigt
2021-07-21 15:36:18 +02:00
Lyndon Jetten
bf3df8de22 Die ausgewählte Kalenderansicht wird in den UserSettings gespeichert. 2021-07-16 18:00:38 +02:00
Lyndon Jetten
41df500195 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-07-14 13:45:53 +02:00
Lyndon Jetten
0206362bd5 - Im MoK werden jetzt die Klienten so angezeigt wie auch im BeWoPlaner
- Der ownChat lädt jetzt asynchron Nachrichten, Kontakte, etc.
2021-07-14 13:45:43 +02:00
Christian
505c58a27a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
#	BeWo/ViewModel/ServiceRecordVM.cs
#	Service/Plugins/PluginLoader.cs
2021-07-07 15:45:23 +02:00
Christian
4dd6742038 cb reportStart 2021-07-07 15:05:45 +02:00
Lyndon Jetten
ede9bc6d80 Warnung beim Ändern unterschriebener ServiceRecords. Unterschriften werden beim Ändern des Datums oder der Zeit gelöscht. 2021-07-05 18:05:43 +02:00
Lyndon Jetten
0604df8e32 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-06-29 15:13:29 +02:00
Lyndon Jetten
768887127b KommAmbulanteDienste -> FlsAuswertung hinzugefügt 2021-06-29 15:13:20 +02:00
Marcel Hirschle
e8f4dcb5d0 MH: Anpassung für ProIntegra 2021-06-29 11:00:14 +02:00
Marcel Hirschle
c1ac81ccc6 MH: Tabellenänderung 2021-06-28 12:04:23 +02:00
Marcel Hirschle
a5c9bcd39b MH: Bugfix 2021-06-28 12:01:01 +02:00
Marcel Hirschle
0334070b8b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-06-28 08:38:17 +02:00
Marcel Hirschle
f0b982e8ff MH: EmployeeView-Bug behoben und Farben in Urlaubsplanung entfernt 2021-06-28 08:38:15 +02:00
Marcel Hirschle
6e35417cc9 MH: Bug in Urlaubstab der EmployeeView behoben 2021-06-28 08:35:50 +02:00
Lyndon Jetten
81e87b10d1 . 2021-06-23 14:35:38 +02:00
Lyndon Jetten
9bbb5c12b0 EncryptionUtils hinzugefügt 2021-06-23 14:33:07 +02:00
Lyndon Jetten
6dfa6c115a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-06-23 13:44:29 +02:00
Lyndon Jetten
f5559d0e5a . 2021-06-23 13:44:13 +02:00
Christian
6fdf5a796b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-06-22 20:56:05 +02:00
Christian
8d752c2694 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-06-22 20:55:30 +02:00
Marcel Hirschle
41335e3dce Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-06-21 07:43:35 +02:00
Marcel Hirschle
469ce0a754 MH 2021-06-21 07:43:22 +02:00
Christian
8954ab9917 cb reports 2021-06-20 23:11:01 +02:00
Lyndon Jetten
b05684dac9 Fehler behoben in BeWoApp wegen DebugMessageLogView 2021-06-18 14:32:53 +02:00
Lyndon Jetten
97d59e0417 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-06-18 14:18:43 +02:00
Lyndon Jetten
48b273318f EncryptionUtils hinzugefügt 2021-06-18 14:18:34 +02:00
Marcel Hirschle
775820e0d2 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-06-18 13:35:04 +02:00
Marcel Hirschle
fc346dc440 MH: Dienstplaner Oberfläche auf 3 Zeilen zurückgestellt & Urlaubsplaner Anpassungen 2021-06-18 13:34:42 +02:00
Lyndon Jetten
9b330950cf Konflikte gelöst 2021-06-16 15:44:45 +02:00
Lyndon Jetten
38d7564496 Mobilklient:
Bewertung hinzugefügt
2021-06-16 15:11:39 +02:00
Marcel Hirschle
891e36c14e MH 2021-06-10 15:00:52 +02:00
Marcel Hirschle
a9d64eea1d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	.gitignore
#	Service/Plugins/PluginLoader.cs
2021-06-10 14:54:07 +02:00
Marcel Hirschle
c065a9a67f MH: Viele Urlaubsplaner / Dienstplaner-Änderungen + Anpassung für Ambulant Betreutes Wohnen Astrid Pulm 2021-06-10 14:40:23 +02:00
Lyndon Jetten
d96b92852b MySQL für die Stundenübersicht von BetreuWo hinzugefügt. 2021-06-08 11:15:52 +02:00
Lyndon Jetten
27c15e87e4 . 2021-06-07 19:41:55 +02:00
Lyndon Jetten
c35c76ec18 Die app.configs der Report-Projekte hinzugefügt 2021-06-07 14:23:55 +02:00
Lyndon Jetten
be9f660787 Konflikte gelöst 2021-06-07 13:49:48 +02:00
Lyndon Jetten
e01123928d FLS-Auswertung 2021-06-02 20:01:13 +02:00
Christian
312bec000f cb reports 2021-05-30 16:31:45 +02:00
Christian
2cba7145f5 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
#	Service/Plugins/PluginLoader.cs
2021-05-24 21:44:37 +02:00
Christian
8e4ea7fe24 cb reports 2021-05-24 21:40:02 +02:00
Lyndon Jetten
9c2208609d . 2021-05-17 15:03:04 +02:00
Lyndon Jetten
959d0a5806 Mobilklient:
- jQuery von Version 3.4.1 auf Version 3.6.0 geupdated
    - Beim Laden von Objekten aus der Datenbank wird vorher geprüft, ob der angemeldete Benutzer das Recht hat, das Objekt zu sehen.
2021-05-17 14:01:06 +02:00
Marcel Hirschle
5e987a0582 MH: Änderungen am Urlaubsplaner 2021-05-14 06:57:09 +02:00
Marcel Hirschle
17e8377266 MH: Anpassung für VARO Sozialagentur + Änderungen bei der Urlaubsplanung 2021-05-07 13:22:01 +02:00
Marcel Hirschle
9dc3cda2ce MH: Änderungen des Dienstplaner-Drucks 2021-05-06 09:47:00 +02:00
Lyndon Jetten
f1784b4b53 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-05-05 18:36:01 +02:00
Lyndon Jetten
7ef83b1328 FlsAuslastungsauswertungRO eingecheckt 2021-05-05 18:35:46 +02:00
Christian
f59f6f8151 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
2021-05-05 11:01:14 +02:00
Christian
3d9037ebcc cb reports 2021-05-05 10:58:36 +02:00
Marcel Hirschle
1e7c4a8e12 MH 2021-05-04 14:48:22 +02:00
Marcel Hirschle
ba1196a970 MH: Namespace angepasst 2021-05-04 08:14:15 +02:00
Marcel Hirschle
288a44596a MH: Konflikte gelöst 2021-05-03 15:16:55 +02:00
Marcel Hirschle
7d68a83b47 MH: Änderungen an Dienst- und Urlaubsplan + Anpassung für Bewolonia 2021-05-03 15:13:53 +02:00
Lyndon Jetten
a5a92f6fcd Dateien hinzugefügt 2021-04-29 16:11:53 +02:00
Lyndon Jetten
14b89d26f2 . 2021-04-29 15:33:01 +02:00
Lyndon Jetten
f7b67598aa Mobilklient:
Statistik bei Hilfeplänen mit Kostenträger ohne Bewilligung wird angezeigt. Hatte Exception beim Span-String erstellen ausgelöst.
2021-04-29 15:11:56 +02:00
Christian
3875b214f6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/BetreuWoReports/BetreuWoReports.csproj
2021-04-28 23:04:31 +02:00
Christian
6b44efd379 cb reports 2021-04-28 22:50:08 +02:00
Lyndon Jetten
6dee96419b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-28 12:52:07 +02:00
Lyndon Jetten
86e415ce83 Mobilklient:
Reststunden werden korrekt angezeigt.
Bei nur einer Bewilligung ohne zugeordneter Kategorie wird die Statistik wieder angezeigt
2021-04-28 12:51:55 +02:00
Christian
90b20e8c6d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-22 00:56:20 +02:00
Christian
1e1f7a40bb CB Reports 2021-04-22 00:56:10 +02:00
Lyndon Jetten
e4561f77a4 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-21 16:19:47 +02:00
Lyndon Jetten
572b3e171e Mobilklient:
Statistik:
        Gesamt bei einer Unterstatistik entfernt.
2021-04-21 16:19:39 +02:00
Christian
37b2645889 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-20 13:23:18 +02:00
Christian
ebd0aabf9d cb bugfixing v33 2021-04-20 13:23:15 +02:00
Lyndon Jetten
02bb48c535 Mobilklient:
Statistik:
        UI-Verbesserung
2021-04-19 05:39:41 +02:00
Lyndon Jetten
9ff8c0aace Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Data/Access/SearchDAO.cs
2021-04-19 04:43:31 +02:00
Lyndon Jetten
0be4fb084a Mobilklient:
Klientenfilter hinzugefügt
2021-04-19 04:38:29 +02:00
Christian
cd84c70fbb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-04-19 01:17:55 +02:00
Christian
f2eb03c454 CB V33 2021-04-19 01:15:53 +02:00
Marcel Hirschle
58354841ad Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-04-15 07:44:03 +02:00
Marcel Hirschle
06ccb4f06e MH: Anpassungen für Team Pfeil + viele Änderungen am Dienstplaner 2021-04-15 07:34:33 +02:00
Lyndon Jetten
753c0db561 GetSettingValueAsEnum zu .NET 4.5 kompatibel gemacht 2021-04-14 14:36:11 +02:00
Lyndon Jetten
170e344547 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-14 12:35:24 +02:00
Lyndon Jetten
b3ba93e3b5 SupportConceptStatisticsData.cs 2021-04-14 12:35:15 +02:00
Christian
7aa2d8b4f3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-14 00:24:58 +02:00
Christian
504548af24 cb reports 2021-04-14 00:24:38 +02:00
Lyndon Jetten
e9174a5d34 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/Plugins/PluginLoader.cs
2021-04-13 20:01:37 +02:00
Lyndon Jetten
b1f3ac742e Mobilklient:
Fehler behoben
2021-04-13 19:45:21 +02:00
Christian
7ff7bdc9b3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Data/Access/SearchDAO.cs
#	Shared/Core/UserSettingsUtils.cs
2021-04-12 20:36:38 +02:00
Christian
66fbc3d7fd cb: new reports 2021-04-12 20:32:10 +02:00
Lyndon Jetten
f51450b2bb Mobilklient:
Statistik erweitert, damit sie so aussieht wie im Fat-Client.
2021-04-08 19:21:14 +02:00
Lyndon Jetten
617e3b15ea Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-04-08 12:32:32 +02:00
Lyndon Jetten
4aae9a8114 . 2021-04-08 12:31:08 +02:00
Marcel Hirschle
fd4bf2f37b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-04-06 08:07:11 +02:00
Marcel Hirschle
9d1f77e470 MH: Arbeiten am Dienstplaner 2021-04-06 08:06:51 +02:00
Lyndon Jetten
bd5ae54ace Es gab Probleme nach dem Pull 2021-03-30 19:23:35 +02:00
Lyndon Jetten
df26dd8354 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-03-30 16:53:34 +02:00
Lyndon Jetten
460f09c6af . 2021-03-30 16:53:22 +02:00
Lyndon Jetten
398f75e581 Bugfix -> Methode, die C# 7.3 benutzt in den Mobilklienten verschoben
Speichern und Laden von FileAttachment.Data vom Server vorbereitet.
2021-03-30 16:35:45 +02:00
Christian
848762b0e9 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWoPlanerMobil/Controllers/MainController.cs
#	Report/DefaultReports/Quittierungsbeleg.cs
#	Service/Plugins/PluginLoader.cs
2021-03-30 11:24:33 +02:00
Christian
9158396b8a cb reports 2021-03-30 10:58:50 +02:00
Marcel Hirschle
4a81a616df MH: Pull benötigt 2021-03-19 13:38:02 +01:00
Marcel Hirschle
1c5cb3e60f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-03-19 13:23:17 +01:00
Marcel Hirschle
f14cc410d3 MH: Verbesserungen und einbauen von Features für Dienstplaner (bis auf Pfeil-Icon in Zellen mit Bemerkung) 2021-03-19 13:22:47 +01:00
Lyndon Jetten
8a0fc28982 Mobilversion:
- "Abmelden in" dem Countdown hinzugefügt
2021-03-18 16:34:40 +01:00
Lyndon Jetten
525503e433 Vergessen, zu speichern 2021-03-17 19:51:48 +01:00
Lyndon Jetten
18f1e5ace2 Nachtrag 2021-03-17 19:47:38 +01:00
Lyndon Jetten
176a8e1409 Konflikte gelöst 2021-03-17 19:39:20 +01:00
Lyndon Jetten
743fa0ef46 Mobilversion:
Unterschriftenfunktionsprototyp soweit fertig
Alle Dateien werden von unserem Server bereitgestellt
Code-Optimierungen
Aufklappbare Elemente haben jetzt ein Pfeilicon

Fat-Client:
SettingsKeys eingeführt
Aufgaben nur noch im Hilfeplan anlegbar
Debug-Ausgabe
2021-03-17 18:44:40 +01:00
Marcel Hirschle
d9a77f1d35 MH: Änderungen im Dienstplaner und Anpassungen für Bewegt Systemische Beratung 2021-03-15 13:30:34 +01:00
Christian
a5e8cb0dab Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
2021-03-11 12:12:25 +01:00
Christian
b5b6a2609e cb reports 2021-03-11 12:09:38 +01:00
Marcel Hirschle
2d2014ded6 MH: Create-Statements von neuen Tabellen eingefügt 2021-03-10 12:58:12 +01:00
Marcel Hirschle
a377113a01 MH: Verbesserungen am Dienstplaner fertiggestellt 2021-03-10 12:31:31 +01:00
Marcel Hirschle
165e59ae16 MH: Dienstplaner mit Funktionen erweitert 2021-03-09 15:23:06 +01:00
Marcel Hirschle
2395e9b602 MH: QBs für Caritas Frankfurt angepasst und Monatsspalte für Dienstplaner 2021-03-04 11:37:51 +01:00
Marcel Hirschle
6f7b4cc691 MH: DiamantExporter für Caritasverband Düren Jülich eingefügt und QB-Anpassung für Kölner BeWo 2021-03-03 14:51:17 +01:00
Marcel Hirschle
80cf247845 MH: Für Caritasverband Düren-Jülich e.V. Export Für Steuerberater vorbereitet 2021-03-02 13:58:13 +01:00
Marcel Hirschle
429cccf144 MH: Spalten für DatevExport für Leben und Wohnen angepasst 2021-03-02 13:14:48 +01:00
Marcel Hirschle
6a0d6a026c MH: Datev-Schnittstelle für Leben und Wohnen Christian Wilke vorbereitet + XAMLManager eingefügt 2021-03-02 13:10:21 +01:00
Marcel Hirschle
d82a167806 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-02-25 10:47:01 +01:00
Marcel Hirschle
03bbfb477f MH: InformationView eingefügt 2021-02-25 10:46:26 +01:00
Christian
a179dab989 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
2021-02-24 14:13:48 +01:00
Christian
a4b0f7f4a1 cb reports 2021-02-24 14:12:53 +01:00
Marcel Hirschle
8f89f0100f MH: Standard-Ordnerstruktur für BeWo ImFlow angelegt 2021-02-24 13:33:42 +01:00
Marcel Hirschle
0883de7356 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-02-24 12:33:03 +01:00
Marcel Hirschle
23803e5c40 MH: Logo für Empathie Fachassistenz eingefügt 2021-02-24 12:32:58 +01:00
Christian
1c38daa231 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-02-24 11:00:47 +01:00
Christian
231eb8162a cb, farbige Markierung in Listenansicht in der Zeiterfassung 2021-02-24 11:00:38 +01:00
Marcel Hirschle
71d3e516df MH: Anpassung für Kompass BeWo Wesel 2021-02-24 08:28:12 +01:00
Marcel Hirschle
38d5f9800e MH: Kontonummer für Lebenshilfe Remscheid angepasst 2021-02-23 16:21:13 +01:00
Marcel Hirschle
27e369cad3 MH: Anpassung für Die Brücke Hilfe und Halt + fälschlicherweise gemachte Änderungen in ServiceRecordView2 rückgängig gemacht 2021-02-23 16:09:52 +01:00
Marcel Hirschle
e94819f38a MH: Distanzen für Gruppenbuchungen in der Tabelle der Zeiterfassungen angepasst 2021-02-23 14:30:55 +01:00
Marcel Hirschle
b1b4d9763b MH: Überprüfung auf Überschneidungen in Abwesenheiten mit farblicher Markierung betroffener Zeilen 2021-02-23 11:45:37 +01:00
Marcel Hirschle
1c9488b698 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-02-23 10:24:25 +01:00
Marcel Hirschle
137c396387 MH 2021-02-23 10:24:22 +01:00
Christian
1902caf6da Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-02-23 10:23:52 +01:00
Christian
1a80ce88c5 cb 2021-02-23 10:23:48 +01:00
Christian
694b12be89 cb Pluginloader 2021-02-23 10:23:22 +01:00
Christian
3cdd52d096 cb versehentlich security mode="Transport" eingecheckt 2021-02-23 10:22:38 +01:00
Marcel Hirschle
8f425a7769 MH: Färben von Überschneidungen in Abwesenheiten vorbereitet 2021-02-23 09:57:51 +01:00
Marcel Hirschle
8aae8e3e04 MH 2021-02-23 08:27:14 +01:00
Marcel Hirschle
2b4b0adaed Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-02-23 08:06:11 +01:00
Marcel Hirschle
166ca681eb MH: Anpassung für Lebenshilfe Essen + Überschneidungsprüfung in Abwesenheiten 2021-02-23 08:05:56 +01:00
Christian
b93517eacc Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-02-22 10:14:17 +01:00
Christian
e2e0689c1d cb 2 faktor Authentifizierung 2021-02-22 10:14:07 +01:00
Marcel Hirschle
55e9441194 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-02-22 09:14:23 +01:00
Marcel Hirschle
beeafe8421 MH: Anpassung für Adik Kleve 2021-02-22 09:13:59 +01:00
Christian
9d4c419cc0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
#	Service/Plugins/PluginLoader.cs
2021-02-21 19:11:10 +01:00
Christian
21febac1a0 cb reports 2021-02-21 19:01:51 +01:00
Marcel Hirschle
3c2a98b139 MH: Anpassung für BeWo Nordeifel 2021-02-19 13:21:30 +01:00
Marcel Hirschle
2bae71c68a MH: Anpassung des Unterschriftenbereichs für Klienten für Kirschbaum und Manz 2021-02-19 11:19:55 +01:00
Marcel Hirschle
029c05bd8e MH: Methoden für Pivot Tabelle aus OperationsServiceImp in FlexibleReportManager ausgelagert 2021-02-19 11:04:33 +01:00
Marcel Hirschle
fa06c2521b MH:
Pivot-Tabelle: Checkbox hinzugefügt, mit der man Layout für alle Mitarbeiter verfügbar macht
Allgemeine Rechnung und Eigenanteilsrechnung: Anrede auf Sehr geehrte Damen und Herren geändert
2021-02-19 10:43:23 +01:00
Marcel Hirschle
1d31b342f4 MH: Anpassungen für BHS Solingen und Mobilo Ambulant 2021-02-18 10:41:05 +01:00
Lyndon Jetten
a8c56af660 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-02-17 19:17:10 +01:00
Lyndon Jetten
32e19d94af Weiterentwicklung am Quittierungsbelegfeature im Mobilklienten
Mehrtägige Buchungen werden im Mobilklienten korrekt gespeichert
2021-02-17 16:59:26 +01:00
Marcel Hirschle
25fa5a8662 MH: Anpassung von Sammel-, Spitz- und Eigenanteilsrechnung für Pro BeWo Düren 2021-02-17 14:51:29 +01:00
Marcel Hirschle
31d3dfe038 MH: Feld für Kompass BeWo Wesel entfernt 2021-02-17 11:58:17 +01:00
Marcel Hirschle
e0a40b8dcd MH: Anpassung für Lebenshilfe Kusel (Briefpapier) 2021-02-17 11:48:21 +01:00
Marcel Hirschle
91fb5f3937 MH: Anpassung für Betreuungsbüro Frank Röhrig 2021-02-17 11:18:53 +01:00
Marcel Hirschle
3aa7b9c6a6 Anpassung Quittierungsbeleg für Input Familienhilfe 2021-02-17 08:20:28 +01:00
Marcel Hirschle
9959e7ee75 MH: Anpassung für Caritas Leverkusen 2021-02-17 07:30:33 +01:00
Marcel Hirschle
07ef1867d2 MH: Anpassung für Lebenshilfe Remscheid 2021-02-16 14:45:46 +01:00
Marcel Hirschle
7435599687 Anpassung der Spitzabrechnung für Lebenshilfe Wetterau 2021-02-16 14:11:10 +01:00
Marcel Hirschle
371bd65db9 Anpassung für Die Düne 2021-02-16 10:46:41 +01:00
Marcel Hirschle
6c42b72fc9 Anpassung für Kompass BeWo Wesel 2021-02-16 09:52:28 +01:00
Marcel Hirschle
b41ebc8feb MH: Farbliche Hinterlegung für markierte Zeilen in Zeiterfassung hinzugefügt 2021-02-15 15:06:17 +01:00
Marcel Hirschle
22b36efd60 MH: OperationsServiceImp aufgeräumt + Aktenzeichenfeld für Behindertenausweis hinzugefügt 2021-02-15 08:04:40 +01:00
Marcel Hirschle
c30a36df35 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
MH: Mergekonflikt gelöst
2021-02-10 14:10:05 +01:00
Marcel Hirschle
51728e7f54 MH: Dienstplanung zum Testen fertiggestellt 2021-02-10 14:02:59 +01:00
Christian
9d1e79cb88 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	.gitignore
#	BeWo/View/Controls/DPCtrlEmployeeTooltip.xaml.cs
#	Report/ReportObjects/KilometerauswertungsListRO.cs
#	Report/ReportObjects/KilometerauswertungsRO.cs
#	Service/Plugins/PluginLoader.cs
2021-02-02 23:40:30 +01:00
Christian
9409438771 CB Reports 2021-02-02 23:23:05 +01:00
Marcel Hirschle
9b3aa65772 Anpassung für Passgenau Hildesheim 2021-02-02 12:26:15 +01:00
Marcel Hirschle
e9ddd6a7b6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2021-01-29 14:41:49 +01:00
Marcel Hirschle
e2acfe4102 MH: Änderungen in Dienstplanung + Korrektur bei Kilometerauswertung bei Gruppenbuchungen 2021-01-29 14:37:43 +01:00
Lyndon Jetten
833022b2a4 Mobilklient:
- Die Unterschrift ist bei nicht gegebener Einstellung nicht mehr sichtbar bzw. es wird nicht zum signieren aufgefordert.
2021-01-14 20:39:33 +01:00
Lyndon Jetten
a6c82a3e99 Konflikte gelöst 2021-01-14 17:03:49 +01:00
Lyndon Jetten
9f32ac48e5 Mobilklient:
- Aufgaben werden nicht mehr doppelt angezeigt
    - Erledigte Aufgaben werden nicht mehr angezeigt
    - Die Meldung bei bereits belegten Ressourcen ist wieder sichtbar
2021-01-14 16:30:28 +01:00
Marcel Hirschle
2f0e9f77c0 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	Data/Access/SearchDAO.cs
2021-01-13 11:25:30 +01:00
Marcel Hirschle
e90029cdc1 MH: Dokumente und Vorlagen 2021-01-13 11:21:51 +01:00
Christian
c6bb5607ac Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2021-01-12 01:24:00 +01:00
Christian
a14d49eaf5 cb bugfixing und reports 2021-01-12 01:12:03 +01:00
Lyndon Jetten
f682dbde0d Mobilklient:
- Leistungen und Kategorien werden gemäß den Einstellungen des ausgewählten Hilfeplans geladen und angezeigt.
    - Änderungen an der Entwicklerseite (um Testdaten zu erzeugen)
2021-01-07 19:40:15 +01:00
Lyndon Jetten
af04f2e226 Seite im Mobilklienten zur Erstellung von Testdaten angelegt.
Im Mobilklienten wird der Zeiterfassungseintragszeitraumdropdown für "Ohne Hilfeplan" wieder angezeigt.
2021-01-05 19:19:51 +01:00
Christian
233aa3a493 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-12-31 15:59:46 +01:00
Christian
eb65d5b105 cb reports 2020-12-31 15:57:06 +01:00
Lyndon Jetten
6d95f16cb5 . 2020-12-30 16:11:26 +01:00
Lyndon Jetten
23b28c702a Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-12-30 12:30:42 +01:00
Lyndon Jetten
a3aa99bad1 CustomerFilterEnum hinzugefügt 2020-12-30 12:30:33 +01:00
Christian
2174f3e202 CB, delete obj files 2020-12-30 02:51:06 +01:00
Christian
951111dfa7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-12-30 02:47:36 +01:00
Christian
82f7e18fff CB bugfixing 2020-12-30 02:46:55 +01:00
Christian
3a058b194d CB Reports 2020-12-30 02:44:06 +01:00
Lyndon Jetten
79452aa505 Entwicklerwerkzeug im Mobilklienten hinzugefügt (noch keine Funktionalität) 2020-12-17 13:43:57 +01:00
Lyndon Jetten
e10555e6b2 Gruppenbuchungen sind löschbar 2020-12-17 13:26:40 +01:00
Lyndon Jetten
b1597e16f6 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Host/Multitenancy/demo.config
2020-12-16 21:57:31 +01:00
Lyndon Jetten
e70ae17f40 Hilfeplanauswahlfilter wie im Fat-Client
Hilfepläne werden korrekt angezeigt
Diverse Bugs im Mobilklienten behoben
2020-12-16 21:49:47 +01:00
Marcel Hirschle
0838a7e102 DokumenteView weitergeführt + Anpassung für MVZ Medikus GmbH 2020-12-15 12:45:07 +01:00
Marcel Hirschle
81386f10c8 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2020-12-11 12:30:41 +01:00
Marcel Hirschle
aa8e4631b3 Kundenanpassung für Betreuungsbüro Frank Röhrig + DokumenteView mit Vorlagen 2020-12-11 11:44:05 +01:00
Christian
dd634f0e9f Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-12-07 13:37:24 +01:00
Christian
a9674a90d6 cb bugfixing 2020-12-07 13:37:14 +01:00
Lyndon Jetten
bafa8a9970 Mobilklient:
1. Die Dauer wird jetzt korrekt berechnet. Man kann vorher eingetragene Von- und Bis-Werte wieder löschen. Es kommt ebenfalls nicht mehr zu seltsamen Dauer-Werten wie 52000.
2020-12-07 13:08:55 +01:00
Christian
ab4b08ad32 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-12-05 15:47:29 +01:00
Christian
b6c86ebdec cb reports + bugfixing 2020-12-05 15:47:00 +01:00
Lyndon Jetten
cb2c97026f Der Überschneidungstest ist angepasst und die Bugs behoben 2020-12-02 21:46:58 +01:00
Lyndon Jetten
8cc0de74eb Konflikt gelöst (demo.config) 2020-12-01 12:36:46 +01:00
Lyndon Jetten
ee68e7879a Bugs im Kalender behoben (noch nicht alle)
Mitarbeiter wird nicht mehr automatisch bei Gruppenbuchungen hinzugefügt, wenn es nicht erwünscht IsTask
Hilfepläne, die heute ablaufen, werden noch als nicht abgelaufen angezeigt wie im Fat-Client
2020-12-01 12:29:12 +01:00
Christian
82a18d5000 cb reports 2020-11-29 17:56:11 +01:00
Christian
f59c40cc08 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo.sln
#	Service/Plugins/PluginLoader.cs
2020-11-25 11:43:53 +01:00
Christian
64ab1519d8 cb: Reports, bugfixing etc. 2020-11-25 11:40:05 +01:00
Lyndon Jetten
7812d1fecb Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-11-20 23:28:31 +01:00
Lyndon Jetten
659ec6b3eb Kalender:
Die Abfrage nach der Ressourcenbelegung kommt nur ein mal und das Abbrechen des Speicherns hat keinen "kaputten" Reload zur Folge
    Das Löschen eines Serientermins mit veränderten oder gelöschten Elementen führt zu keiner Exception mehr, da ich den Service-Aufruf auf synchron geändert habe.
    Es gibt allerdings noch Bugs! -> Serientermin erstellen und ein Element davon ändern führt zu einer doppelten Abfrage, ausgelöst durch die Überlappungsprüfung, die eine    Überlappung mit der Serie selbst feststellt!
2020-11-20 23:28:09 +01:00
Marcel Hirschle
ba7bb5e943 BeWoNordeifel Kundennummer in PluginLoader hinzugefügt 2020-11-20 12:49:59 +01:00
Marcel Hirschle
b284861c1b Abrechnungsanpassung für BeWo Nordeifel 2020-11-20 11:19:48 +01:00
Marcel Hirschle
2f92791483 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2020-11-20 10:20:24 +01:00
Marcel Hirschle
32263df3ee Diakonie Herne Belegsanpassung + DokumenteView 2020-11-20 10:20:02 +01:00
Christian
5a73dfa487 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	Service/ServiceImplementations/OperationsServiceImp.cs
2020-11-12 13:01:02 +01:00
Christian
c211e4b963 CB, bugfixes 2020-11-11 23:26:35 +01:00
Lyndon Jetten
05a0436a9f IsActive bzw. ActivationType wird bei Textbausteinen ignoriert. Es wird eh sofort gelöscht und nicht auf Deleted gesetzt. 2020-11-11 19:39:11 +01:00
Lyndon Jetten
029a7c87bd Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-11-11 14:21:37 +01:00
Lyndon Jetten
e92a8daba1 Textbausteine wird IsActive zugewiesen beim Insert
Mitarbeiteranzahl ist jetzt korrekt bei Gruppenbuchungen im Mobilklienten
Textbausteine-Button in der Mobilversion wird nicht angezeigt, wenn es keine Textbausteine gibt
Der Klienten-Kommentar wird in der Mobilversion angezeigt
2020-11-11 14:21:29 +01:00
Christian
8c293df314 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo.sln
#	Service/ServiceContracts/IOperationsService.cs
#	Service/ServiceImplementations/OperationsServiceImp.cs
#	Shared/Core/EnumTranslations.cs
2020-11-10 02:55:53 +01:00
Christian
514c19ce3d cb, letzte Bugfixes vor Version 2020-11-10 02:25:15 +01:00
Lyndon Jetten
dd47935428 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-11-09 18:47:53 +01:00
Lyndon Jetten
630b3806b0 Fixes für Mobilklient: Dokufelder 2020-11-09 17:55:01 +01:00
Marcel Hirschle
065bde6f6c Quittierungsbeleg für BeWoImFlow angepasst 2020-10-29 15:32:13 +01:00
Marcel Hirschle
55afb28b52 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master
# Conflicts:
#	BeWo.sln
#	Service/Plugins/PluginLoader.cs
2020-10-29 11:28:00 +01:00
Marcel Hirschle
a4ec9c4dc6 Druckvorschau für Bewertungen 2020-10-29 11:20:37 +01:00
Christian
d0bc35e844 cb neue reports 2020-10-29 10:59:13 +01:00
Christian
f8184f3912 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/View/Detail/Report/ServicesReportViewAlt.xaml
#	BeWo/View/Detail/Report/ServicesReportViewAlt.xaml.cs
#	Service/Plugins/PluginLoader.cs
2020-10-27 13:49:12 +01:00
Christian
e772aa7ac3 CB new reports und Betrag in ServiceRecord 2020-10-27 12:29:59 +01:00
rene
a7cedee344 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-22 12:21:48 +02:00
rene
1e228ba3a1 Kalender Export iCalender 2020-10-22 12:20:35 +02:00
Lyndon Jetten
4e62ae0092 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-21 12:53:00 +02:00
Marcel Hirschle
bc3a354eca neue Dateien für Quittierungsbelegsstatus 2020-10-21 10:26:40 +02:00
Lyndon Jetten
cd81076636 Konflikte gelöst 2020-10-20 21:30:16 +02:00
Lyndon Jetten
a43bda6352 Kalender:
- Scheduler/View/SchedulerAppointmentEditForm.xaml:
          Ist die Ganztägig-CheckBox angehakt, sind die Uhrzeitfelder deaktiviert
          Wird die Ganztägig-CheckBox auf false gesetzt, wird das Ende automatisch auf denselben Tag des vormals ganztägigen Termin gesetzt
          -> 20.10.2020 00:00 bis 21.10.2020 00:00 wird zu 20.10.2020 00:30 - 20.10.2020 01:00

Mobilklient:
    - Weiterarbeit an der Unterschriftenfunktion für Mitarbeiter im Mobilklienten
2020-10-20 21:07:26 +02:00
Marcel Hirschle
236c266de5 Wegweiser Betreuungsdienst: Ordnerstruktur für neue Klienten erstellt 2020-10-20 17:31:26 +02:00
Marcel Hirschle
0f860c0187 Für DiakonischesWerkWesel Finanzauswertung angepasst 2020-10-20 11:25:44 +02:00
Marcel Hirschle
5fb8d67351 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo into master 2020-10-19 17:28:00 +02:00
Marcel Hirschle
51565211b8 MH Quittierungsbelegsstatus-Übersicht + Version auf 4.7.2 2020-10-19 17:22:40 +02:00
Christian
309301cf34 CB, Template für NeuKunden 2020-10-16 16:48:35 +02:00
Christian
6f67519bce Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-16 13:06:46 +02:00
Christian
a74869de04 CB, bugfixing neue Version 2020-10-16 13:02:29 +02:00
rene
bfc7b28d38 Merge branch 'BewoRene'
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	Report/DefaultReportCreator.cs
#	Service/ServiceContracts/IOperationsService.cs
2020-10-13 15:22:48 +02:00
rene
28d271f86f Urlaubskonto Berechnung
Urlaubskonto Anzeige AbwesenheitsView
2020-10-13 14:35:06 +02:00
Christian
32cdbb1097 CB Merge Konflikte behoben 2020-10-12 13:53:51 +02:00
Christian
4cb6efcaee Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	Host/Multitenancy/demo.config
2020-10-12 13:37:29 +02:00
Christian
ef24988f0e CB, Reports 2020-10-12 13:03:05 +02:00
Lyndon Jetten
1f43e8986b Bug mit Popups behoben
Speichern-Button bei der Unterschriftenfunktion ist jetzt über dem Canvas
Canvas-Inhalt wird beim drehen beibehalten.
2020-10-08 18:32:20 +02:00
Lyndon Jetten
045ba8593c Unterschriftenfeld füllt im quergehaltenen Handy nur noch 85% der Breite aus, sodass man mit den Rändern neben dem Feld scrollen kann.
Optimierung der Größenänderung des Unterschriftenfelds
2020-10-07 19:42:17 +02:00
Lyndon Jetten
31fc428189 Neue Unterschriftenfunktion und Lizenzanzeige in der Mobilversion 2020-10-06 18:26:04 +02:00
Lyndon Jetten
091c29ddf7 Merge 2020-10-01 14:33:10 +02:00
Lyndon Jetten
2da382531c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-01 13:58:10 +02:00
Lyndon Jetten
23553e1584 x 2020-10-01 11:45:48 +02:00
Christian
4ae3a82f09 CB Reports 2020-10-01 10:37:26 +02:00
Christian
b2b86a4f14 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-10-01 10:32:39 +02:00
Christian
0453d5b31c CB: Reports und Bugfixing SBD 2020-10-01 10:32:31 +02:00
Lyndon Jetten
1fd6040f58 Kilometerauswertung für Mitarbeiter
Ressourcencheck ist jetzt korrekt
Weiterentwicklung der Quittierungsbelege für die Mobilversion
2020-09-30 19:23:42 +02:00
rene
ccad6ad68c Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	BeWo/View/Master/ReportView.xaml.cs
#	BeWo/View/Report/Employee/EmployeeHourReportView.xaml
#	Data/Data.csproj
#	Report/AbstractReportCreator.cs
#	Report/DefaultReportCreator.cs
#	Report/Report.csproj
#	Service/DCEntityMapper/MapperFactory.cs
#	Service/Service.csproj
#	Service/ServiceContracts/IOperationsService.cs
#	Service/ServiceImplementations/OperationsServiceImp.cs
#	Shared/BeWoEntityEnums.cs
#	Shared/DataContracts/ReportTypes.cs
#	Shared/Shared.csproj
2020-09-30 12:07:08 +02:00
rene
98363ea890 Dienstplaner, Abwesenheiten, Drucken 2020-09-30 10:00:31 +02:00
Christian
0aa1594ffa cb: Theme geändert 2020-09-25 13:58:45 +02:00
Christian
b4b0e9db25 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
2020-09-24 01:52:40 +02:00
Christian
5cffa4ef32 CB, new icons 2020-09-24 00:49:37 +02:00
Christian
23dfb8dd80 CB: Reports, Umbau Ziele/Maßnahmen, Bugfixing Dateinamen auf Sonderzeichen prüfen 2020-09-23 22:10:52 +02:00
Lyndon Jetten
0cb5c02831 BeWoPlanerMobil:
Fortschritt bei Quittierungsbelegunterschrift

Qlik:
    Zeitraum hinzugefügt
2020-09-23 16:00:51 +02:00
Lyndon Jetten
14b04d1685 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-21 11:57:18 +02:00
Lyndon Jetten
63d9844e3f BeWoPlanerMobil:
Beim Bearbeiten von Zeiterfassungseinträgen ohne Zeitangaben wird das Datum nicht mehr auf 0 Uhr gesetzt
2020-09-21 11:57:10 +02:00
Christian
1a997708a7 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-18 15:59:12 +02:00
Christian
3f47565586 cb, neues Mitarbeiterstundenkonto 2020-09-18 15:59:03 +02:00
Lyndon Jetten
f645770b16 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-15 16:03:52 +02:00
Lyndon Jetten
bd7350106c Mobilversion:
Einträge ohne Uhrzeit nehmen new Date() anstelle des 01.01.1900.
2020-09-15 16:03:49 +02:00
Christian
ad3531ce6b Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	ReportImp/demo_reports/Export/QlikCsvExporter.cs
2020-09-15 13:27:15 +02:00
Christian
7a441a9956 cb diverse bugfixing 2020-09-15 13:23:34 +02:00
Christian
e60ea35935 cb, Unterstützung von mehreren Rechnunungsnummern 2020-09-15 13:14:43 +02:00
Christian
a49343786e cb, new reports 2020-09-15 13:12:53 +02:00
Lyndon Jetten
af424556f2 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-14 19:07:32 +02:00
Lyndon Jetten
42ece55df3 BeWoPlanerMobil:
Zeiterfassungseinträge auch ohne Uhrzeit möglich
2020-09-14 19:07:23 +02:00
Christian
49dd33b241 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-04 12:35:28 +02:00
Christian
540f53326d cb Verweise 2020-09-04 12:34:37 +02:00
Lyndon Jetten
a641b691b0 Die Werte der Qlik-Mitabeiterauswertung stimmen jetzt 2020-09-02 19:50:32 +02:00
Christian
f8e7600019 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-09-02 18:20:36 +02:00
Christian
3b4e24e7eb cb fixed references 2020-09-02 18:20:32 +02:00
Christian
b5f5554dcf cb bugfixing 2020-09-02 18:19:15 +02:00
Christian
c68f7f8fdc CB Reports 2020-09-02 17:41:09 +02:00
Lyndon Jetten
d801a76481 Qlik-Sql-Skript 2020-08-31 18:03:49 +02:00
Lyndon Jetten
2f84b9962d . 2020-08-31 18:01:59 +02:00
Lyndon Jetten
ef016941f5 . 2020-08-31 17:54:40 +02:00
Lyndon Jetten
03cd4c5905 Qlik-Reporte eingebaut 2020-08-31 17:44:05 +02:00
Christian
128901cf16 CB Projekt Verweise korrigiert 2020-08-20 19:15:30 +02:00
Christian
ef262894b3 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/ServiceProxy/Generated.cs
#	Host/Multitenancy/demo.config
2020-08-20 18:45:42 +02:00
Christian
816b7c88e4 CB, Sicherheitszeug 2020-08-20 18:35:33 +02:00
Lyndon Jetten
1fc2ffcc2d Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
Ein Arsch voll Konflikte.
2020-08-19 12:15:10 +02:00
Christian
7c3424c00f CB 2020-08-17 15:50:41 +02:00
Christian
0f565685b0 CB Jede Menge Reports und die Rating Änderungen 2020-08-17 15:50:00 +02:00
Christian
dba047c59b cb dies und das 2020-04-15 18:24:01 +02:00
Christian
9fd84c7f62 cb SBD 2020-04-15 18:22:10 +02:00
Christian
2e9f59a531 cb Kundenreports 2020-04-15 18:20:43 +02:00
Christian
85785d6bbe cb Reports und Renes Dienstplaner 2020-04-08 14:25:01 +02:00
Christian
f2fda51f16 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
# Conflicts:
#	BeWo/BeWo.csproj
#	Host/Multitenancy/demo.config
2020-04-08 14:12:45 +02:00
Christian
a953db7931 cb reports 2020-03-03 09:27:02 +01:00
rene
6ac29c8bed Dienstplaner:
- Dienst Objekt (Informationen über Name, Kürzel, Zeitraum, Pause, Farbe) eingefügt
- Dienst in Verwaltung implementiert
- Dienstplaner Tab in Auswertung eingefügt

Allgemein:
- Budget Variablen auf privat gestellt
2020-02-27 15:10:29 +01:00
Christian
67152c6f71 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2020-02-06 19:07:19 +01:00
Christian
9ba9b4ddca cb 2020-02-06 19:06:32 +01:00
Christian
8dd3b51815 cb diverse bugfixing 2020-02-06 18:57:35 +01:00
Christian
a2c942bf48 cb diverse bugfixing 2020-02-06 18:56:40 +01:00
Christian
cda0b10554 cb bugfixing textbausteine in mobil version 2020-02-06 18:44:35 +01:00
Christian
2c91535937 cb new reports 2020-02-06 18:43:11 +01:00
Christian
857d328379 Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo 2019-12-12 17:33:14 +01:00
Christian
71e92df25a cb 2019-12-12 17:32:48 +01:00
Christian
45689f6372 cb 2019-12-12 17:31:50 +01:00
Christian
3449ef5b40 cb reports 2019-12-12 17:28:10 +01:00
32325 changed files with 15284410 additions and 356566 deletions

181
.gitignore vendored
View File

@@ -7,7 +7,6 @@
/BeWoPlanerAndroid/obj
/BeWoPlanerMobil/bin
/BeWoPlanerMobil/obj
/BeWoPlanerMobil/node_modules
/Host/bin
/Host/obj
/Controls/bin
@@ -416,4 +415,182 @@
/ReportImp/KuhringBetreuung/obj/Release
/ReportImp/LebenshilfeFrankfurtOder/obj/Debug
/ReportImp/LebenshilfeFrankfurtOder/obj/Release
/BeWoPlanerMobil/delete_and_ignore_file.txt
/ReportImp/AbwKlassen/bin/Debug
/ReportImp/AbwKlassen/bin/Release
/ReportImp/AbwKlassen/obj/Debug
/ReportImp/AbwKlassen/obj/Release
/ReportImp/DiakonischesWerkMuelheimTwg/bin/Debug
/ReportImp/DiakonischesWerkMuelheimTwg/obj/Debug
/ReportImp/DiakonischesWerkMuelheimTwg/obj/Release
/ReportImp/Inkomm/obj/Debug
/ReportImp/Inkomm/obj/Release
/ReportImp/LebenshilfeDorsten/obj/Debug
/ReportImp/LebenshilfeDorsten/obj/Release
/ReportImp/QuerFaelltEin/obj/Debug
/ReportImp/QuerFaelltEin/obj/Release
/ReportImp/AsbRuhr/obj/Debug
/ReportImp/AsbRuhr/obj/Release
/ReportImp/DiePerspektive/obj/Debug
/ReportImp/DiePerspektive/obj/Release
/ReportImp/PhoenixBeWo/obj/Debug
/ReportImp/PhoenixBeWo/obj/Release
/ReportImp/EvangelischeKirchengemeindeBottrop/obj/Debug
/ReportImp/EvangelischeKirchengemeindeBottrop/obj/Release
/ReportImp/InputFamilienhilfe/obj/Debug
/ReportImp/InputFamilienhilfe/obj/Release
/ReportImp/LebenshilfeWolfsburg/obj/Debug
/ReportImp/LebenshilfeWolfsburg/obj/Release
/ReportImp/SichtWeise/obj/Debug
/ReportImp/SichtWeise/obj/Release
/packages
/ReportImp/BfpDus/obj/Debug
/ReportImp/BfpDus/obj/Release
/ReportImp/DiakonischesWerkWesel/obj/Debug
/ReportImp/DiakonischesWerkWesel/obj/Release
/ReportImp/KcmGmbH/obj/Debug
/ReportImp/KcmGmbH/obj/Release
/ReportImp/LebenshilfeRodenkirchen2Reports/obj/Debug
/ReportImp/LebenshilfeRodenkirchen2Reports/obj/Release
/ReportImp/PraunheimerWerkstaetten3/obj/Debug
/ReportImp/PraunheimerWerkstaetten3/obj/Release
/ReportImp/PraunheimerWerkstaetten2/obj/Release
/ReportImp/PraunheimerWerkstaetten2/obj/Debug
/ReportImp/RosegGmbH/obj/Debug
/ReportImp/RosegGmbH/obj/Release
/ReportImp/VkmHamm2/obj/Debug
/ReportImp/VkmHamm2/obj/Release
/ReportImp/BellaDonna/obj/Debug
/ReportImp/BellaDonna/obj/Release
/ReportImp/PsychosozialeHilfenBochum/obj/Debug
/ReportImp/PsychosozialeHilfenBochum/obj/Release
/ReportImp/DieBrueckeHilfeUndHalt/obj/Debug
/ReportImp/DieBrueckeHilfeUndHalt/obj/Release
/ReportImp/DiakonischesWerkHerne/obj/Debug
/ReportImp/DiakonischesWerkHerne/obj/Release
/ReportImp/SabGmbH/obj/Debug
/ReportImp/SabGmbH/obj/Release
/ReportImp/BeWoFlex/obj/Debug
/ReportImp/BeWoFlex/obj/Release
/ReportImp/Neustart/obj/Debug
/ReportImp/VerbandEvKirchengemeindenDorsten/obj/Debug
/ReportImp/FabEvBerlin/obj/Debug
/ReportImp/FabEvBerlin/obj/Release
/ReportImp/Neustart/obj/Release
/ReportImp/VerbandEvKirchengemeindenDorsten/obj/Release
/ReportImp/MVZMedikusGmbH/obj
/ReportImp/BetreuungsbueroFrankRoehrig/obj
/ReportImp/BeWoMundo/obj/Debug
/ReportImp/BeWoMundo/obj/Release
/ReportImp/Kimm/obj/Debug
/ReportImp/Kimm/obj/Release
/ReportImp/KommAmbulanteDienste/obj/Debug
/ReportImp/KommAmbulanteDienste/obj/Release
/ReportImp/PassgenauUG/obj/Debug
/ReportImp/PassgenauUG/obj/Release
/ReportImp/KompassBeWoWesel/obj/Debug
/ReportImp/MobiloAmbulant/obj/Debug
/ReportImp/KompassBeWoWesel/obj/Release
/ReportImp/MobiloAmbulant/obj/Release
/ReportImp/EmpathieFachassistenz/obj/Debug
/ReportImp/EmpathieFachassistenz/obj/Release
/ReportImp/LebenUndWohnenChristianWilke/obj/Debug
/ReportImp/CaritasverbandDuerenJuelichEV/obj/Debug
/ReportImp/KoelnerBeWoSelbstbestimmtLeben/obj/Debug
/ReportImp/BewegtSystemischeBeratung/obj/Debug
/ReportImp/TeamPfeil/obj/Debug
/ReportImp/AsbFassbacherHof/obj/Debug
/ReportImp/AsbFassbacherHof/obj/Release
/ReportImp/VereinSozialmedizinStade/obj/Release
/ReportImp/VereinSozialmedizinStade/obj/Debug
/ReportImp/BewegtSystemischeBeratung/obj/Release
/ReportImp/TeamPfeil/obj/Release
/ReportImp/Bewolonia/obj/Debug
/ReportImp/AlzeyTeilhabe/obj/Debug
/ReportImp/AlzeyTeilhabe/obj/Release
/ReportImp/Bewolonia/obj/Release
/ReportImp/ForumEV/obj/Release
/ReportImp/Kette2/obj/Debug
/ReportImp/Kette2/obj/Release
/ReportImp/ForumEV/obj/Debug
/ReportImp/LebenshilfeDuisburgAtz/obj/Debug
/ReportImp/LebenshilfeDuisburgAtz/obj/Release
/ReportImp/VaroSozialagentur/obj/Debug
/ReportImp/AmbulantBetreutesWohnenAstridPulm/obj/Debug
/ReportImp/VaroSozialagentur/obj/Release
/ReportImp/LebenshilfeDuisburg2/obj/Debug
/ReportImp/LebenshilfeDuisburg2/obj/Release
/ReportImp/LebenshilfeDuisburgAtz6860475645/obj/Debug
/ReportImp/LebenshilfeDuisburgAtz6860475645/obj/Release
/ReportImp/Kette2/obj/DebugRemote
/ReportImp/DomizielAnsbach/obj/Debug
/ReportImp/DomizielAnsbach/obj/Release
/ReportImp/AbwMuenster/obj/Debug
/ReportImp/AbwMuenster/obj/Release
/ReportImp/InFamiliaGbr/obj/Debug
/ReportImp/InFamiliaGbr/obj/Release
/ReportImp/LebenshilfeDuisburgBeWo/obj/Debug
/ReportImp/LebenshilfeDuisburgBeWo/obj/Release
/ReportImp/LebenshilfeDuisburgHPFH/obj/Debug
/ReportImp/LebenshilfeDuisburgHPFH/obj/Release
/ReportImp/LebenshilfeDuisburgHPTG/obj/Debug
/ReportImp/LebenshilfeDuisburgHPTG/obj/Release
/ReportImp/ProIntegra/obj/Debug
/ReportImp/ZuhauseWohnenIrisThimm/obj/Debug
/ReportImp/FAMRheinSiegGbr/obj/Debug
/ReportImp/ProIntegra/obj/Release
/ReportImp/AmbulantBetreutesWohnenAstridPulm/obj/Release
/ReportImp/SozialwerkAachenerChristen/obj/Debug
/ReportImp/SicherlebenMichaelVoß/obj/Debug
/ReportImp/DiakonischesWerkPassau/obj/Debug
/ReportImp/BeWoRimbach/obj/Debug
/ReportImp/Wichernhaus/obj
/ReportImp/FAMRheinSiegGbr/obj/Release
/ReportImp/KoelnerBeWoSelbstbestimmtLeben/obj/Release
/ReportImp/DiakonischesWerkPassau/obj/Release
/ReportImp/DiakonischesWerkRegensburg/obj/Debug
/ReportImp/DiakonischesWerkRegensburg/obj/Release
/ReportImp/CarlSonnenscheinHaus/obj/Debug
/ReportImp/CarlSonnenscheinHaus/obj/Release
/ReportImp/SozialwerkAachenerChristen/obj/Release
/ReportImp/LebensWert/obj/Debug
/ReportImp/PZDDuesseldorf/obj/Debug
/ReportImp/PZDDuesseldorf/obj/Release
/ReportImp/LebensWert/obj/Release
/ReportImp/BehindertenhilfeMenden/obj/Debug
/ReportImp/BehindertenhilfeMenden/obj/Release
/ReportImp/ChristopherusHausFamilienhilfe/obj
/ReportImp/RatPlusTat/obj
obj
/BeWoAllReports - Kopie.sln
/BeWoAllReports.sln.BASE.sln
/BeWoAllReports.sln.LOCAL.sln
/BeWoAllReports.sln.REMOTE.sln
/ReportImp/KundeArbeitszeit
*.user
/ReportImp/KundeMuster
/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.designer.cs
/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.resx
/ReportImp/DiakonieKKKleve/Mitarbeiterarbeitszeitkonto.cs
/ReportImp/DiakonieKKKleve/CustomMitarbeiterstundenkontoBerechnungTagesansicht.cs
/ReportImp/AMBEWO/Endabrechnung Beispiel.jpg
/ReportImp/AutismusKoelnBonn/Hintergrund.jpg
/ReportImp/AutismusKoelnBonn/Briefpapier.jpg
/ReportImp/RatPlusTat/CustomBudgetnachweisAnhangRO.cs
/ReportImp/MusterArbeitszeit
/BeWoDatabaseTerminator/.vs
/LauncherHost/bin
/LauncherHost/obj
/SharedLauncher/bin
/SharedLauncher/obj
/BeWoLauncher/bin
/BeWoLauncher/obj
/UnitTests/bin
/UnitTests/obj
/DownloadServer/bin
/DownloadServer/obj
/BeWoTest/bin
/BeWoTest/obj
/UnitTestProject472/bin
/UnitTestProject472/obj
/UnitTestProject45/bin
/UnitTestProject45/obj

2090
BeWo.sln

File diff suppressed because it is too large Load Diff

View File

@@ -16,10 +16,10 @@
<EnableSecurityDebugging>true</EnableSecurityDebugging>
<TargetZone>Internet</TargetZone>
<GenerateManifests>true</GenerateManifests>
<SignManifests>false</SignManifests>
<SignManifests>true</SignManifests>
<ManifestKeyFile>
</ManifestKeyFile>
<ManifestCertificateThumbprint>D9ACF3EBC5E47956B8D786361F7061E3F6D6F286</ManifestCertificateThumbprint>
<ManifestCertificateThumbprint>8CA4066C36C87B745E4016FDA715A6DB16FCFFA9</ManifestCertificateThumbprint>
<IsWebBootstrapper>true</IsWebBootstrapper>
<SignAssembly>false</SignAssembly>
<ExpressionBlendVersion>3.0.1927.0</ExpressionBlendVersion>
@@ -39,16 +39,16 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>true</UpdateRequired>
<MapFileExtensions>false</MapFileExtensions>
<InstallUrl>http://app.beyondsoft.de/dev/</InstallUrl>
<InstallUrl>https://app.ownsoft.de/</InstallUrl>
<TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName>
<PublisherName>beyondSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.172</MinimumRequiredVersion>
<MinimumRequiredVersion>2.0.1.220</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>173</ApplicationRevision>
<ApplicationRevision>221</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
@@ -89,6 +89,10 @@
<ManifestTimestampUrl>
</ManifestTimestampUrl>
</PropertyGroup>
<PropertyGroup>
<StartupObject>
</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="Blacklight.Wpf.Controls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -100,8 +104,10 @@
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Office.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v17.1.Export, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Web.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Accordion.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Core.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Charts.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
@@ -115,30 +121,26 @@
<Reference Include="DevExpress.Xpf.Printing.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Ribbon.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.RichEdit.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Images.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Scheduler.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.LightGray.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2007Black.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2010Black.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2013.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Xpf.Themes.Office2016White.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraBars.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPivotGrid.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.PivotGrid.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Sparkline.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.CodeParser.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.RichEdit.v17.1.Export, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting.Extensions, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraGrid.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v17.1.Reporting, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Lib\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationFramework.Aero">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
@@ -153,6 +155,7 @@
<HintPath>..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Activities" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
@@ -278,6 +281,26 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Controls\DPCtrlEmployeeContractTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\DPCtrlEmployeeTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\DPCtrlDienstTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\MonthPicker.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\DienstplanerControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Controls\GoalRatingControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -290,6 +313,66 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\DebugMessageLogView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\Zeiterfassung\ServiceRecordCreationView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\UrlaubskontoView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\OwnChatSettingsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\InformationView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\DateiBearbeiten.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\PreisView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Urlaubsuebersicht.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\UrlaubstagSchenkenView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Suchergebnis.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\TemplatePrintSelection.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\VorlageEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\RatingTypeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\DienstView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\GoalImportControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\NotizenKategorieView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -306,11 +389,23 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitsEmployeeHeaderTooltip.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitsEmployeeHeader.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\DienstplanerView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\EMailStatusLogControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitstabelleView.xaml">
<Page Include="View\Detail\Report\AbwesenheitsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@@ -318,6 +413,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\AbwesenheitsPrintControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\IcfImportControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -346,14 +445,33 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\RatingEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\SupportConceptGoalRatingView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\HomeView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Master\DokumenteView.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</Page>
<Page Include="View\TwoFactorAuthMessageDialog.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Report\Kilometerauswertung\KilometerauslastungsView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Report\Rating\RatingReportView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\StundenplanView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -382,7 +500,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\ServiceRecordRTFWindowView.xaml">
<Page Include="View\Detail\Zeiterfassung\ServiceRecordRTFWindowView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -526,7 +644,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\ServiceRecordRebookingView.xaml">
<Page Include="View\Detail\Zeiterfassung\ServiceRecordRebookingView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -534,7 +652,7 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\ServiceRecordHistoryView.xaml">
<Page Include="View\Detail\Zeiterfassung\ServiceRecordHistoryView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
@@ -658,6 +776,7 @@
<Compile Include="Converter\BoolVisibilityMultiConverter.cs" />
<Compile Include="Converter\NullableBoolToBoolConverter.cs" />
<Compile Include="Converter\ParticipationBrushConverter.cs" />
<Compile Include="Converter\ArchiveRight2VisibilityConverter.cs" />
<Compile Include="Converter\ReactivationRight2VisibilityConverter.cs" />
<Compile Include="Converter\Rights2DefaultBooleanConverter.cs" />
<Compile Include="Converter\StringLengthVisibilityConverter.cs" />
@@ -687,6 +806,7 @@
<Compile Include="ProxyLoginView.xaml.cs">
<DependentUpon>ProxyLoginView.xaml</DependentUpon>
</Compile>
<Compile Include="Scheduler\Converter\AptToServRecsIconVisibilityConverter.cs" />
<Compile Include="Scheduler\Utils\AppointmentExtensions.cs" />
<Compile Include="Scheduler\Utils\Utils.cs" />
<Compile Include="Scheduler\ViewModel\CustomFieldStorage.cs" />
@@ -724,6 +844,7 @@
</Compile>
<Compile Include="SchulbegleitenderDienst\WochenansichtVM.cs" />
<Compile Include="SchulbegleitenderDienst\WochenVertretung.cs" />
<Compile Include="Security\EncryptionUtils.cs" />
<Compile Include="UploadDialog.xaml.cs">
<DependentUpon>UploadDialog.xaml</DependentUpon>
</Compile>
@@ -798,8 +919,21 @@
<Compile Include="ViewModel\AdditionalServiceGroupOfPeopleVM.cs" />
<Compile Include="ViewModel\AdditionalServiceRegionVM.cs" />
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\DienstInfoVM.cs" />
<Compile Include="ViewModel\BudgetVM.cs" />
<Compile Include="ViewModel\DocumentTreeItemVM.cs" />
<Compile Include="ViewModel\DokumentvorlageVM.cs" />
<Compile Include="ViewModel\GeschenkterUrlaubstagVM.cs" />
<Compile Include="ViewModel\ListViewModel\PreisListVM.cs" />
<Compile Include="ViewModel\PreisVM.cs" />
<Compile Include="ViewModel\PrintSelectionVM.cs" />
<Compile Include="ViewModel\QuittierungsbelegsstatusVM.cs" />
<Compile Include="ViewModel\RatingTypeVM.cs" />
<Compile Include="ViewModel\ListViewModel\GoalRatingListVM.cs" />
<Compile Include="ViewModel\ListViewModel\RatingTypeListVM.cs" />
<Compile Include="ViewModel\ListViewModel\DienstListVM.cs" />
<Compile Include="ViewModel\ListViewModel\BudgetListVM.cs" />
<Compile Include="ViewModel\ListViewModel\RatingListVM.cs" />
<Compile Include="ViewModel\NotizenKategorieVM.cs" />
<Compile Include="ViewModel\NotizenEintragVM.cs" />
<Compile Include="ViewModel\FeiertagVM.cs" />
@@ -822,6 +956,10 @@
<Compile Include="ViewModel\ListViewModel\NotizenEintragListVM.cs" />
<Compile Include="ViewModel\ListViewModel\FeiertagListVM.cs" />
<Compile Include="ViewModel\QuittierungsCheckVM.cs" />
<Compile Include="ViewModel\GoalRatingVM.cs" />
<Compile Include="ViewModel\RatingVM.cs" />
<Compile Include="ViewModel\RegelmaessigerDienstVM.cs" />
<Compile Include="ViewModel\SuchergebnisVM.cs" />
<Compile Include="ViewModel\TokenVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitListVM.cs" />
<Compile Include="ViewModel\ListViewModel\ArbeitszeitEintragListVM.cs" />
@@ -880,6 +1018,31 @@
<Compile Include="ViewModel\OrganisationPersonRelationVM.cs" />
<Compile Include="ViewModel\TextModuleVM.cs" />
<Compile Include="ViewModel\VerordnungslistenVM.cs" />
<Compile Include="View\Controls\DPCtrlEmployeeContractTooltip.xaml.cs">
<DependentUpon>DPCtrlEmployeeContractTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlEmployeeTooltip.xaml.cs">
<DependentUpon>DPCtrlEmployeeTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlDienstTooltip.xaml.cs">
<DependentUpon>DPCtrlDienstTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlIst.cs" />
<Compile Include="View\Controls\DPCtrlMonth.cs" />
<Compile Include="View\Controls\DPCtrlSaldo.cs" />
<Compile Include="View\Controls\DPCtrlSoll.cs" />
<Compile Include="View\Controls\DPCtrlUrlaubKrankheit.cs" />
<Compile Include="View\Controls\DPCtrlZeitkonto.cs" />
<Compile Include="View\Controls\MonthPicker.xaml.cs">
<DependentUpon>MonthPicker.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DienstplanerControl.xaml.cs">
<DependentUpon>DienstplanerControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlDay.cs" />
<Compile Include="View\Controls\DPCtrlEmployee.cs" />
<Compile Include="View\Controls\DPCtrlIcon.cs" />
<Compile Include="View\Controls\DPCtrlWeek.cs" />
<Compile Include="View\Controls\GoalRatingControl.xaml.cs">
<DependentUpon>GoalRatingControl.xaml</DependentUpon>
</Compile>
@@ -889,6 +1052,55 @@
<Compile Include="View\Controls\ValueListEntryEditControl.xaml.cs">
<DependentUpon>ValueListEntryEditControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\DebugMessageLogView.xaml.cs">
<DependentUpon>DebugMessageLogView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\MassnahmenHistoryRecord.cs" />
<Compile Include="View\Detail\MassnahmenHistory.cs" />
<Compile Include="View\Detail\MassnahmenTreeTrimmer.cs" />
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordCreationView.xaml.cs">
<DependentUpon>ServiceRecordCreationView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\UrlaubskontoView.xaml.cs">
<DependentUpon>UrlaubskontoView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\OwnChatSettingsView.xaml.cs">
<DependentUpon>OwnChatSettingsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\InformationView.xaml.cs">
<DependentUpon>InformationView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\DateiBearbeiten.xaml.cs">
<DependentUpon>DateiBearbeiten.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\PreisView.xaml.cs">
<DependentUpon>PreisView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Urlaubsuebersicht.xaml.cs">
<DependentUpon>Urlaubsuebersicht.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\UrlaubstagSchenkenView.xaml.cs">
<DependentUpon>UrlaubstagSchenkenView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\SuchergebnisMasterMenuItem.cs" />
<Compile Include="View\Detail\Suchergebnis.xaml.cs">
<DependentUpon>Suchergebnis.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\TemplatePrintSelection.xaml.cs">
<DependentUpon>TemplatePrintSelection.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\VorlageEditView.xaml.cs">
<DependentUpon>VorlageEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\RatingTypeView.xaml.cs">
<DependentUpon>RatingTypeView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\DienstView.xaml.cs">
<DependentUpon>DienstView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\GoalImportControl.xaml.cs">
<DependentUpon>GoalImportControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\NotizenKategorieView.xaml.cs">
<DependentUpon>NotizenKategorieView.xaml</DependentUpon>
</Compile>
@@ -898,12 +1110,24 @@
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
<DependentUpon>AbsenceTimesView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitstabelleView.xaml.cs">
<DependentUpon>AbwesenheitstabelleView.xaml</DependentUpon>
<Compile Include="View\Detail\Report\AbwesenheitsEmployeeHeaderTooltip.xaml.cs">
<DependentUpon>AbwesenheitsEmployeeHeaderTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsEmployeeHeader.xaml.cs">
<DependentUpon>AbwesenheitsEmployeeHeader.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\DienstplanerView.xaml.cs">
<DependentUpon>DienstplanerView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsView.xaml.cs">
<DependentUpon>AbwesenheitsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsEditView.xaml.cs">
<DependentUpon>AbwesenheitsEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitsPrintControl.xaml.cs">
<DependentUpon>AbwesenheitsPrintControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\IcfImportControl.xaml.cs">
<DependentUpon>IcfImportControl.xaml</DependentUpon>
</Compile>
@@ -934,13 +1158,29 @@
<Compile Include="View\Detail\Report\TimeSheetMailView.xaml.cs">
<DependentUpon>TimeSheetMailView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\RatingEditView.xaml.cs">
<DependentUpon>RatingEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\SupportConceptGoalRatingView.xaml.cs">
<DependentUpon>SupportConceptGoalRatingView.xaml</DependentUpon>
</Compile>
<Compile Include="View\HomeView.xaml.cs">
<DependentUpon>HomeView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Master\DokumenteView.xaml.cs">
<DependentUpon>DokumenteView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Navigation\Filter\PersonNavigationFilter.cs" />
<Compile Include="View\TwoFactorAuthMessageDialog.xaml.cs">
<DependentUpon>TwoFactorAuthMessageDialog.xaml</DependentUpon>
</Compile>
<Compile Include="View\Navigation\Sorter\UserSorter.cs" />
<Compile Include="View\Report\Kilometerauswertung\KilometerauslastungsView.xaml.cs">
<DependentUpon>KilometerauslastungsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Report\Rating\RatingReportView.xaml.cs">
<DependentUpon>RatingReportView.xaml</DependentUpon>
</Compile>
<Compile Include="View\StundenplanView.xaml.cs">
<DependentUpon>StundenplanView.xaml</DependentUpon>
</Compile>
@@ -962,7 +1202,7 @@
<Compile Include="View\Controls\TextModuleTreeViewControl.xaml.cs">
<DependentUpon>TextModuleTreeViewControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordRTFWindowView.xaml.cs">
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordRTFWindowView.xaml.cs">
<DependentUpon>ServiceRecordRTFWindowView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\TextbausteinView.xaml.cs">
@@ -1073,13 +1313,13 @@
<Compile Include="View\Detail\ProfileEditView.xaml.cs">
<DependentUpon>ProfileEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordRebookingView.xaml.cs">
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordRebookingView.xaml.cs">
<DependentUpon>ServiceRecordRebookingView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AccountingReportView.xaml.cs">
<DependentUpon>AccountingReportView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordHistoryView.xaml.cs">
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordHistoryView.xaml.cs">
<DependentUpon>ServiceRecordHistoryView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\SchedulerSettingsView.xaml.cs">
@@ -1112,7 +1352,6 @@
<Compile Include="View\MiniChatView.xaml.cs">
<DependentUpon>MiniChatView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Navigation\Filter\CustomerFilterEnum.cs" />
<Compile Include="View\Navigation\Sorter\WohnheimSorter.cs" />
<Compile Include="View\Navigation\WohnheimNavigationView.xaml.cs">
<DependentUpon>WohnheimNavigationView.xaml</DependentUpon>
@@ -1162,7 +1401,6 @@
<Compile Include="View\Master\ReportView.xaml.cs">
<DependentUpon>ReportView.xaml</DependentUpon>
</Compile>
<Reference Include="WindowsFormsIntegration" />
<Resource Include="Ressources\Icons\Search.png" />
<Reference Include="System.Xaml" />
</ItemGroup>
@@ -1347,7 +1585,7 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\ServiceRecordGroupEditView.xaml">
<Page Include="View\Detail\Zeiterfassung\ServiceRecordGroupEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -1389,13 +1627,13 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\ServiceRecordEditView.xaml">
<Page Include="View\Detail\Zeiterfassung\ServiceRecordEditView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\ServiceRecordView2.xaml">
<Page Include="View\Detail\Zeiterfassung\ServiceRecordView2.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<Generator>MSBuild:Compile</Generator>
@@ -1407,6 +1645,12 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\ServicesReportViewAlt.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\ViewMailView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -1899,7 +2143,7 @@
<Compile Include="View\Detail\NewsItemView.xaml.cs">
<DependentUpon>NewsItemView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordGroupEditView.xaml.cs">
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordGroupEditView.xaml.cs">
<DependentUpon>ServiceRecordGroupEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\MandatorView.xaml.cs">
@@ -1920,15 +2164,18 @@
<Compile Include="View\Detail\BookingView.xaml.cs">
<DependentUpon>BookingView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordEditView.xaml.cs">
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordEditView.xaml.cs">
<DependentUpon>ServiceRecordEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ServiceRecordView2.xaml.cs">
<Compile Include="View\Detail\Zeiterfassung\ServiceRecordView2.xaml.cs">
<DependentUpon>ServiceRecordView2.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\ServicesReportView.xaml.cs">
<DependentUpon>ServicesReportView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\ServicesReportViewAlt.xaml.cs">
<DependentUpon>ServicesReportViewAlt.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\ViewMailView.xaml.cs">
<DependentUpon>ViewMailView.xaml</DependentUpon>
</Compile>
@@ -2206,18 +2453,6 @@
<Project>{D5E53B0F-BF5A-41E8-93E2-0F32845FC729}</Project>
<Name>Controls</Name>
</ProjectReference>
<ProjectReference Include="..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\Report\Report.csproj">
<Project>{40D8B312-EA64-49E3-A31A-5E57ED4D5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\Service\Service.csproj">
<Project>{094331C3-ECEE-4C89-BBFD-4C9DED89F0EF}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\Shared\Shared.csproj">
<Project>{2F50B83D-A3F0-4EC4-979A-3F9B7E3D8ED4}</Project>
<Name>Shared</Name>
@@ -2383,6 +2618,16 @@
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.RichEdit.v17.1.Export">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Sparkline.v17.1.Core">
<Visible>False</Visible>
<Group>
@@ -2403,6 +2648,16 @@
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Accordion.v17.1">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="DevExpress.Xpf.Charts.v17.1">
<Visible>False</Visible>
<Group>
@@ -2778,7 +3033,26 @@
<ItemGroup>
<Resource Include="Ressources\Icons\Paste24.png" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Resource Include="Ressources\Icons\Favorites16.png" />
<Resource Include="Ressources\Icons\Favorites32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\FavoritesDisabled32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\ziel.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\massnahme.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\imassnahme.png" />
<Resource Include="Ressources\Icons\iziel.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Ressources\Icons\Copy24.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\|C:\Projects\beyondsoft\BeWoPlaner\Publish\</PublishUrlHistory>
<InstallUrlHistory>http://app.beyondsoft.de/sbdtest/|http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/sbd/|http://app.beyondsoft.de/lha/|http://fortis-bewoplaner.fortis-ev.org.local/</InstallUrlHistory>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\</PublishUrlHistory>
<InstallUrlHistory>https://app.ownsoft.de/|http://app.beyondsoft.de/|http://app.beyondsoft.de/test/|http://app.beyondsoft.de/dev/|http://app.beyondsoft.de/sbdtest/</InstallUrlHistory>
<SupportUrlHistory />
<UpdateUrlHistory />
<UpdateUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/bewoplaner.application/</UpdateUrlHistory>
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>

View File

@@ -60,6 +60,7 @@
<conv:UserRightTypeConverter x:Key="UserRightTypeConverter" />
<conv:ValueEqualsParamVisibilityConverter x:Key="ValueEqualsParamVisibilityConverter" />
<conv:ReactivationRight2VisibilityConverter x:Key="ReactivationRight2VisibilityConverter" />
<conv:ArchiveRight2VisibilityConverter x:Key="ArchiveRight2VisibilityConverter" />
<conv:BoolReverseConverter x:Key="BoolReverseConverter" />
<conv:IndividualGoalMassnahmeUncheckPreventConverter x:Key="IndividualGoalMassnahmeUncheckPreventConverter" />
<conv:Rights2DefaultBooleanConverter x:Key="Rights2DefaultBooleanConverter"/>
@@ -92,6 +93,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -107,10 +109,13 @@
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock VerticalAlignment="Center" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2" Margin="0,0,3,0" Visibility="{Binding Path=IsDeleted, Converter={StaticResource ReactivationRight2VisibilityConverter}, ConverterParameter=SupportConcept}">
<TextBlock VerticalAlignment="Center" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2" Margin="0,0,3,0" Visibility="{Binding Path=IsArchived, Converter={StaticResource ArchiveRight2VisibilityConverter}, ConverterParameter=SupportConcept}">
<Hyperlink TargetName="_NewWindow" Foreground="#FFFFFFFF" Click="Hyperlink_Hilfeplan_AusArchivHolen_Click" Tag="{Binding}">Aus Archiv holen</Hyperlink>
</TextBlock>
<TextBlock VerticalAlignment="Center" Grid.Column="4" Grid.Row="0" Grid.RowSpan="2" Margin="0,0,3,0" Visibility="{Binding Path=IsDeleted, Converter={StaticResource ReactivationRight2VisibilityConverter}, ConverterParameter=SupportConcept}">
<Hyperlink TargetName="_NewWindow" Foreground="#FFFFFFFF" Click="Hyperlink_Hilfeplan_Reaktivieren_Click" Tag="{Binding}">Reaktivieren</Hyperlink>
</TextBlock>
<Button x:Name="btnOpenServiceRecordView" Grid.Column="4" Grid.Row="0" Grid.RowSpan="2" Width="25" Height="25" Style="{DynamicResource TransparentButtonStyle}" ToolTip="{markup:Translate In Zeiterfassung öffnen}" Tag="{Binding}" Margin="0,0,2,0" Click="BtnOpenServiceRecordView_Click">
<Button x:Name="btnOpenServiceRecordView" Grid.Column="5" Grid.Row="0" Grid.RowSpan="2" Width="25" Height="25" Style="{DynamicResource TransparentButtonStyle}" ToolTip="{markup:Translate In Zeiterfassung öffnen}" Tag="{Binding}" Margin="0,0,2,0" Click="BtnOpenServiceRecordView_Click">
<Image Source="Ressources\Icons\HistoryDisabled.png" />
</Button>
</Grid>

File diff suppressed because it is too large Load Diff

View File

@@ -26,15 +26,16 @@
<RowDefinition Height="*" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap" Margin="3" FontSize="14">WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!</TextBlock>
<Button x:Name="CountButton" Grid.Row="2" Grid.Column ="1" Width="120" Margin="3,25,3,3" IsDefault="True" HorizontalAlignment="Right" Click="ButtonBase_OnClick">OK</Button>
<Button x:Name="CountButton" Grid.Row="2" Grid.Column="1" Width="120" Margin="3,25,3,3" IsDefault="True" HorizontalAlignment="Right" Click="ButtonBase_OnClick">OK</Button>
<!--<Button Grid.Row="2" Grid.Column ="2" Width="100" Margin="3" IsCancel="True" IsEnabled="False" HorizontalAlignment="Right">Abbrechen</Button>-->
</Grid>
</Grid>
</Border>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
</Grid>

View File

@@ -0,0 +1,47 @@
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using BS.Shared;
namespace BeWo.Converter
{
public class ArchiveRight2VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter == null)
{
return Visibility.Collapsed;
}
var hasRight = false;
switch (parameter.ToString())
{
case "Person":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Person_AllowArchiving);
break;
case "Organisation":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Organisation_AllowArchiving);
break;
case "SupportConcept":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.SupportConceptView_AllowArchiving);
break;
case "Customer":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_AllowArchiving);
break;
case "Employee":
hasRight = BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowArchiving);
break;
}
return (bool)value && hasRight ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -8,9 +8,9 @@ namespace BeWo.Converter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is bool)
if (value is bool buhl)
{
return !(bool) value;
return !buhl;
}
return false;

View File

@@ -5,7 +5,9 @@ using System.Linq;
using System.Windows.Data;
using System.Windows.Markup;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
using DevExpress.Xpf.Grid;
namespace BeWo.Converter
@@ -23,9 +25,49 @@ namespace BeWo.Converter
var viewTag = cellData.View.Tag as List<AdditionalServiceBookingVM>;
var date = int.Parse(value[1].ToString().Split('.')[0], NumberStyles.Integer);
if (viewTag != null && viewTag.Count > 0 && value.Length > 2 && value[2] is Teilnehmer)
{
var booking = viewTag[0];
if (date <= DateTime.DaysInMonth(booking.Date.Year, booking.Date.Month))
{
var dt = new DateTime(booking.Date.Year, booking.Date.Month, date);
if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday)
{
return Brushes.CornflowerBlue;
}
var t = (Teilnehmer) value[2];
if (IsAbsence(dt, t.Customer.AbsenceTimes))
{
return Brushes.LightGray;
}
}
}
return viewTag.Any(v => v.Date.Day.Equals(date)) ? Brushes.White : b;
}
private bool IsAbsence(DateTime dt, List<AbsenceTimeDC> absenceTimes)
{
if (absenceTimes == null)
{
return false;
}
foreach (var at in absenceTimes)
{
if ((!at.Start.HasValue || at.Start.Value <= dt) && (!at.End.HasValue || at.End.Value >= dt))
{
return true;
}
}
return false;
}
public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); }
public override object ProvideValue(IServiceProvider serviceProvider) { return this; }

View File

@@ -45,9 +45,12 @@ using Image = System.Windows.Controls.Image;
using MessageBox = System.Windows.MessageBox;
using Panel = System.Windows.Controls.Panel;
using System.Windows.Media;
using System.Windows.Threading;
using BeWo.Core.Service;
using BeWo.ownChat;
using BeWo.PasswortSecurity;
using BeWo.Scheduler.Utils;
using BeWo.ViewModel.ListViewModel;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.DocumentViewer;
using DevExpress.Xpf.Printing.PreviewControl.Bars;
@@ -55,6 +58,8 @@ using DevExpress.XtraScheduler;
using RestSharp;
using Control = System.Windows.Controls.Control;
using Utils = BS.Shared.Core.Utils;
using Brush = System.Windows.Media.Brush;
using BeWo.View.Detail.Zeiterfassung;
namespace BeWo.Core
{
@@ -102,10 +107,15 @@ namespace BeWo.Core
public static void NavigateToReportUri(string navigateUriString, string title)
{
NavigateToReportUriWithDocumentPreviewControl(navigateUriString, title, null);
NavigateToReportUri(navigateUriString, title, null);
}
public static void NavigateToReportUriWithDocumentPreviewControl(string navigateUriString, string title, DocumentPreviewControl dp)
public static void NavigateToReportUri(string navigateUriString, string title, Action callback)
{
NavigateToReportUriWithDocumentPreviewControl(navigateUriString, title, null, callback);
}
public static void NavigateToReportUriWithDocumentPreviewControl(string navigateUriString, string title, DocumentPreviewControl dp, Action callback)
{
var reportTemplates = ServiceFacade.DoOperationsServiceSync(x => x.GetReportTemplates(navigateUriString));
@@ -120,7 +130,7 @@ namespace BeWo.Core
WindowStartupLocation = WindowStartupLocation.CenterOwner,
GroupBoxContent = control,
Owner = BeWoApp.CurrentBeWo.MainWindow,
rootGroupBox = { Header = "Layout speichern" }
rootGroupBox = { Header = "Bericht auswählen" }
};
control.CancelButtonClicked += () => beWoWindow.Close();
@@ -148,6 +158,10 @@ namespace BeWo.Core
StartGetReportStreamAsync(GetReportStreamForWPFControl, newUri, ms => BeWoApp.MainControl.Dispatch(delegate
{
if (callback != null)
{
callback();
}
ShowReportWindow(ms, title, dp);
}));
};
@@ -160,6 +174,10 @@ namespace BeWo.Core
StartGetReportStreamAsync(GetReportStreamForWPFControl, navigateUriString, ms => BeWoApp.MainControl.Dispatch(delegate
{
if (callback != null)
{
callback();
}
ShowReportWindow(ms, title, dp);
}));
}
@@ -1305,7 +1323,7 @@ namespace BeWo.Core
}
var serv2 = serv as ServicesReportView;
if(serv != null)
if(serv2 != null)
{
if(serv2.Customer != null)
{
@@ -1660,93 +1678,48 @@ namespace BeWo.Core
cbDc = node.SupportConceptTreeNodeDC.CostBearer;
relDc = node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC;
}
var dc = vm.CommitToDataContract();
dc.Employee = selectedEmployee ?? BeWoApp.LoggedOnUser.Employee;
dc.SupportConcept = scDc;
dc.CostBearer = cbDc;
if(vm.ServiceRecordFormat != ServiceRecordFormate.ZeiterfassungMitMonatJahr && vm.Date.HasValue && vm.DateAndTime.HasValue && vm.StartDate.HasValue) {
dc.Start = new DateTime(vm.Date.Value.Year,
vm.Date.Value.Month,
vm.Date.Value.Day,
vm.StartTime == null ? vm.DateAndTime.Value.Hour : vm.StartDate.Value.Hour,
vm.StartTime == null ? vm.DateAndTime.Value.Minute : vm.StartDate.Value.Minute,
vm.StartTime == null ? vm.DateAndTime.Value.Second : vm.StartDate.Value.Second);
if(vm.DurationInStunden == ZeiterfassungsDauer.Minuten)
{
if (vm.ServiceRecordFormat == ServiceRecordFormate.ZeiterfassungMitEndDatum)
{
dc.End = dc.Start.Value.AddMinutes(Convert.ToDouble(vm.DurationSTD));
}
else
{
dc.End = dc.Start.Value.AddMinutes(Convert.ToDouble(vm.Duration));
}
}
else
{
if (vm.ServiceRecordFormat == ServiceRecordFormate.ZeiterfassungMitEndDatum)
{
dc.End = dc.Start.Value.AddHours(Convert.ToDouble(vm.DurationSTD));
}
else
{
dc.End = dc.Start.Value.AddHours(Convert.ToDouble(vm.Duration));
}
}
}
else
{
var dates = DateTime.Parse("1." + vm.OnlyMonth + vm.OnlyYear);
var StartDatetime = new DateTime(dates.Year, dates.Month, 1, 0, 0, 0);
dc.Start = StartDatetime;
dc.End = StartDatetime.AddHours((double)vm.DurationMonthYearGes);
}
if (relDc != null)
dc.CostBearer2SupportConceptOid = relDc.CostBearer2SupportConceptOid;
{
dc.CostBearer2SupportConceptOid = relDc.CostBearer2SupportConceptOid;
}
var r = new List<ServiceRecordValidationResultDC>();
var validationResults = new List<ServiceRecordValidationResultDC>();
var maxdays = BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed;
if (withoutClient && BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed <= 0)
{
maxdays = -1;
}
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowEditAfterMaxDaysInNextMonth))
{
maxdays = -1;
}
var test = dc.Start;
var test2 = vm.DateAndTime;
ServiceFacade.DoOperationsServiceSync(o => validationResults = o.ValidateServiceRecord(dc, statistics, maxdays, employeeOids, cb2ScOids));
ServiceFacade.DoOperationsServiceSync(o => r = o.ValidateServiceRecord(dc, statistics, maxdays, employeeOids, cb2ScOids));
if (r.Count > 0)
if (validationResults.Count > 0)
{
var exitLoop = false;
foreach (var result in r)
foreach (var result in validationResults)
{
switch (result.ResultType)
{
case ServiceRecordValidationResult.OutsideOfSupportConcept:
MessageBox.Show("Das gewählte Datum '" + vm.DateAndTime.Value.ToShortDateString() + "' liegt außerhalb des Zeitraums des gewählten Hilfeplans (" + relDc.DateRangeString + ").\nDas Speichern ist nicht möglich.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"Das gewählte Datum '{vm.StartDate.ToShortDateString()}' liegt außerhalb des Zeitraums des gewählten Hilfeplans ({relDc.DateRangeString}).\nDas Speichern ist nicht möglich.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
exitLoop = true;
break;
case ServiceRecordValidationResult.OutOfEditLimit:
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da bereits der " + BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed + ". des nachfolgenden Monats überschritten ist.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"Sie können keine neuen Leistungen für den {vm.StartDate.ToShortDateString()} dokumentieren, da bereits der {BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed}. des nachfolgenden Monats überschritten ist.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
exitLoop = true;
break;
@@ -1755,11 +1728,11 @@ namespace BeWo.Core
{
if (BeWoApp.AppSettings.AnzTageZeiterfassErfolgt == 1)
{
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von einem Tag erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"Sie können keine neuen Leistungen für den {vm.StartDate.ToShortDateString()} dokumentieren, da die Zeiterfassung innerhalb von einem Tag erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
}
else
{
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von " + BeWoApp.AppSettings.AnzTageZeiterfassErfolgt + " Tagen erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"Sie können keine neuen Leistungen für den {vm.StartDate.ToShortDateString()} dokumentieren, da die Zeiterfassung innerhalb von {BeWoApp.AppSettings.AnzTageZeiterfassErfolgt} Tagen erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
}
lValid = false;
@@ -1775,10 +1748,10 @@ namespace BeWo.Core
case ServiceRecordValidationResult.ServiceRecordOverlapping:
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))
{
MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag (" + result.Message + " bei Klient/in " + result.CustomerName + ") .\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag ({result.Message} bei " + BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName + ") .\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
}
else if (MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag (" + result.Message + " bei Klient/in " + result.CustomerName + ").\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
else if (MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag ({result.Message} bei " + BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName + ").\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
lValid = false;
exitLoop = true;
@@ -1788,25 +1761,23 @@ namespace BeWo.Core
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee))
{
MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag von " + result.EmployeeName + "\n(" + result.Message + ").\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag von {result.EmployeeName}\n({result.Message}).\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
lValid = false;
}
else if (MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag von " + result.EmployeeName + "\n(" + result.Message + ").\n\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
else if (MessageBox.Show($"An dem gewählten Datum '{vm.StartDate.ToShortDateString()} {vm.StartDate.ToShortTimeString()}' existiert bereits ein Eintrag von {result.EmployeeName}\n({result.Message}).\n\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
lValid = false;
exitLoop = true;
}
break;
case ServiceRecordValidationResult.ApprovedFLSOverspending:
String klient = "diesen Hilfeplan";
if (!String.IsNullOrEmpty(result.CustomerName))
var klient = "diesen Hilfeplan";
if (!string.IsNullOrEmpty(result.CustomerName))
{
klient = "Klient/in " + result.CustomerName;
klient = BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName;
}
String msg =
String.Format(
"Die für {2} genehmigten FLS ({0:N}) werden mit diesem Eintrag überschritten. ({1:N}).",
result.ApprovedHours, result.HoursNew, klient);
var msg = string.Format("Die für {2} genehmigten FLS ({0:N}) werden mit diesem Eintrag überschritten. ({1:N}).", result.ApprovedHours, result.HoursNew, klient);
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved))
{
@@ -1820,17 +1791,17 @@ namespace BeWo.Core
}
break;
case ServiceRecordValidationResult.SettlementInvoiceAlreadyExisting:
String klient2 = "diesen Hilfeplan";
if (!String.IsNullOrEmpty(result.CustomerName))
var klient2 = "diesen Hilfeplan";
if (!string.IsNullOrEmpty(result.CustomerName))
{
klient2 = "Klient/in " + result.CustomerName;
klient2 = BS.Shared.Translation.Translator.Translate("Klient/in") + " " + result.CustomerName;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.BookServiceRecordAfterSettlementInvoice))
{
MessageBox.Show(String.Format("Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für {0} erstellt wurde.", klient2), "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
MessageBox.Show($"Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für {klient2} erstellt wurde.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
lValid = false;
}
else if (MessageBox.Show(String.Format("Es existiert bereits eine Spitzabrechnung für {0}. Um diesen Eintrag zu berücksichtigen, muss eventuell eine neue Spitzabrechnung erstellt werden.\nMöchten Sie trotzdem speichern?", klient2), "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
else if (MessageBox.Show($"Es existiert bereits eine Spitzabrechnung für {klient2}. Um diesen Eintrag zu berücksichtigen, muss eventuell eine neue Spitzabrechnung erstellt werden.\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
{
lValid = false;
exitLoop = true;
@@ -1851,14 +1822,23 @@ namespace BeWo.Core
lValid = false;
exitLoop = true;
}
break;
case ServiceRecordValidationResult.SignatureExists:
if(MessageBox.Show(result.Message, "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
{
lValid = false;
exitLoop = true;
}
break;
}
if (exitLoop) break;
if (exitLoop)
{
break;
}
}
}
return lValid;
}
@@ -1911,7 +1891,7 @@ namespace BeWo.Core
else
{
var msg = vm.GroupOid != null
? "ACHTUNG, wenn Sie fortfahren, löschen Sie die gesamte Gruppenbuchung.\nWenn Sie nur einzelne Klienten aus der Gruppe entfernen möchten,\neditieren Sie die Gruppe und entfernen den Klienten aus der Liste aller Hilfepläne.\nSind Sie sicher, dass Sie dem gesamten Gruppeneintrag löschen möchten?"
? "ACHTUNG, wenn Sie fortfahren, löschen Sie die gesamte Gruppenbuchung.\nWenn Sie nur einzelne " + BS.Shared.Translation.Translator.Translate("Klienten") + " aus der Gruppe entfernen möchten,\neditieren Sie die Gruppe und entfernen den Klienten aus der Liste aller Hilfepläne.\nSind Sie sicher, dass Sie den gesamten Gruppeneintrag löschen möchten?"
: "Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?";
if (MessageBox.Show(msg, "Eintrag löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) !=
@@ -1940,8 +1920,18 @@ namespace BeWo.Core
var employeeOid = Convert.ToInt64(variablen["employeeOid"]);
var serienTermine = (List<SchedulerAppointmentDC>)variablen["serienTermine"];
var mehrtaegigeTermine = (List<SchedulerAppointmentDC>)variablen["mehrtaegigeTermine"];
var nullableAbsenceTimeOids = (List<long?>) variablen["absenceTimeOids"] ?? new List<long?>();
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKalenderReport(appointmentIds, employeeOid, serienTermine, selectedDays, mehrtaegigeTermine), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
var absenceTimeOids = new List<long>();
foreach(var absenceTimeOid in nullableAbsenceTimeOids)
{
if(absenceTimeOid.HasValue)
{
absenceTimeOids.AddIfNotIn(absenceTimeOid.Value);
}
}
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKalenderReportWithAbsenceTimes(appointmentIds, employeeOid, serienTermine, selectedDays, mehrtaegigeTermine, absenceTimeOids), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
break;
case ReportEnum.KassenbuchReportEnum:
@@ -2070,25 +2060,26 @@ namespace BeWo.Core
}
}
public static void CreateZeiterfassung(DateTime start, DateTime end, List<CompactCustomerDC> customer, List<CompactEmployeeDC> employees, String notice, Appointment appointment, Action schedulerCallback)
public static void CreateZeiterfassung(DateTime start, DateTime end, List<CompactCustomerDC> customer, List<CompactEmployeeDC> employees, string notice, Appointment appointment, Action<List<ServiceRecordDC>> schedulerCallback)
{
ChatDokumentationsView newView;
if (customer.Count == 0)
if(customer.Count == 0)
{
// Normale Buchung
newView = new ChatDokumentationsView(notice, null, start, end, schedulerCallback, appointment);
newView = new ChatDokumentationsView(notice, null, start, end, null, schedulerCallback, appointment);
}
else if (customer.Count == 1 && employees.Count == 0)
else if(customer.Count == 1 && employees.Count < 2)
{
var compactKlient = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(customer[0].CustomerOid));
// Normale Buchung
newView = new ChatDokumentationsView(notice, compactKlient, start, end, schedulerCallback, appointment);
newView = new ChatDokumentationsView(notice, compactKlient, start, end, employees.Count == 1 ? employees[0] : null, schedulerCallback, appointment);
}
else
{
if (employees.Count == 0)
if(employees.Count == 0)
{
employees.Add(BeWoApp.CompactLoggedOnEmployee);
}
@@ -2107,14 +2098,14 @@ namespace BeWo.Core
if(customer.Count == 0)
{
// Normale Buchung
newView = new ChatDokumentationsView(notice, null, start, end);
newView = new ChatDokumentationsView(notice, null, start, end, null);
}
else if(customer.Count == 1 && employees.Count == 0)
else if(customer.Count == 1 && employees.Count < 2)
{
var compactKlient = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(customer[0].CustomerOid));
// Normale Buchung
newView = new ChatDokumentationsView(notice, compactKlient, start, end);
newView = new ChatDokumentationsView(notice, compactKlient, start, end, employees.Count == 1 ? employees[0] : null);
}
else
{
@@ -2131,7 +2122,7 @@ namespace BeWo.Core
}
public static void OwnChatSynchronisationVeranlassen()
{
{
if (!BeWoApp.Mandator.Apikey.IsNullOrEmpty())
{
try
@@ -2167,11 +2158,11 @@ namespace BeWo.Core
// response.Close();
// response.Dispose();
//}
}
catch (Exception exception)
{
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
}
}
@@ -2187,11 +2178,169 @@ namespace BeWo.Core
return BeWoApp.LoggedOnUser.HasRight(pUserRightType);
}
public static bool CheckSchedulerRights(Appointment pAppointment, bool pIsNew, SchedulerRightsCheckType pCheckType)
public static bool CheckSchedulerRights(Appointment pAppointment, bool pIsNew, SchedulerRightsCheckType pCheckType, List<long> teamMemberCustomerOids, bool ignoreViewEditCreateAllRights)
{
var storage = pAppointment.GetCustomFieldStorage();
return Utils.CheckSchedulerRights(storage.CustomerList, storage.ResourceList, storage.EmployeeList.ToList(), storage.Originator, pIsNew, pCheckType, BeWoApp.LoggedOnUser);
return Utils.CheckSchedulerRights(storage.CustomerList, storage.ResourceList, storage.EmployeeList.ToList(), storage.Originator, pIsNew, pCheckType, BeWoApp.LoggedOnUser, teamMemberCustomerOids, ignoreViewEditCreateAllRights);
}
public static void EditServiceRecord(ServiceRecordDC dc, DispatcherObject p)
{
var record = ServiceFacade.DoOperationsServiceSync(s => s.GetServiceRecordById(dc.ServiceRecordOid.Value));
//var allgoalsCopy = GoalService.CopyGoals(selectedRecord.AllGoals, false);
//var sr = new ServiceRecordVM(record, ViewModel.PrototypeVM.Category2Services,
//selectedRecord.AllGoalCategories, allgoalsCopy);
VMFactory.CreateServiceRecordVMAsync(
BeWoApp.LoggedOnUser.Employee.EmployeeOid,
vmList => p.Dispatch(
delegate
{
vmList.DispatcherObject = p;
if (record.Customer != null && record.SupportConcept != null)
{
vmList.InitPrototypeVM(record.Customer.CustomerOid, record.SupportConcept.SupportConceptOid, record.CostBearer2SupportConceptOid);
}
//var allgoalsCopy = GoalService.CopyGoals(selectedRecord.AllGoals, false);
//var sr = new ServiceRecordVM(record, ViewModel.PrototypeVM.Category2Services,
// selectedRecord.AllGoalCategories, allgoalsCopy);
var vm = new ServiceRecordVM(record, vmList.PrototypeVM.Category2Services, vmList.PrototypeVM.AllGoalCategories, vmList.PrototypeVM.AllGoals);
EditServiceRecord(vmList, vm);
}));
}
public static void EditServiceRecord(ServiceRecordListVM listvm, ServiceRecordVM vm)
{
if (vm == null)
{
return;
}
BeWoView serviceRecordEditView;
if (vm.GroupOid != null)
{
serviceRecordEditView = new ServiceRecordGroupEditView();
}
else
{
serviceRecordEditView = new ServiceRecordEditView();
}
double height = BeWoApp.MainControl.ActualHeight * 0.8;
double width = 710;
if (BeWoApp.AppSettings.ShowRtfTextfield)
{
height = BeWoApp.MainControl.ActualHeight - 120;
width = 1000;
}
if (BeWoApp.MainControl.ActualWidth < width)
{
width = BeWoApp.MainControl.ActualWidth;
}
if (height < 600)
{
height = 600;
}
var beWoWindow = new BeWoWindow
{
Height = height,
Width = width,
WindowStartupLocation = WindowStartupLocation.CenterOwner,
GroupBoxContent = serviceRecordEditView,
Owner = BeWoApp.CurrentBeWo.MainWindow
};
beWoWindow.rootGroupBox.Style = null;
beWoWindow.rootGroupBox.Visibility = Visibility.Visible;
beWoWindow.rootGroupBox.Margin = new Thickness(-10);
beWoWindow.rootGroupBox.Padding = new Thickness(0);
if (serviceRecordEditView.CommandBindings.Count == 0)
{
serviceRecordEditView.CommandBindings.Add(
new CommandBinding(
ApplicationCommands.Close,
(s, e) =>
{
var result = ServiceRecordDialogResult.ClosedWithoutSaving;
if (vm.EditAllowed)
{
if (serviceRecordEditView is ServiceRecordEditView view)
{
result = view.CloseAndDoSaveCheck();
}
else
{
result = ((ServiceRecordGroupEditView)serviceRecordEditView).CloseAndDoSaveCheck();
}
}
beWoWindow.Close();
}));
serviceRecordEditView.CommandBindings.Add(
new CommandBinding(
ApplicationCommands.Save,
(s, e) =>
{
if (vm.EditAllowed)
{
bool save;
if (serviceRecordEditView is ServiceRecordEditView)
{
save = ((ServiceRecordEditView)serviceRecordEditView).IsValid() &&
((ServiceRecordEditView)serviceRecordEditView).IsCustomerChangeAllowed();
}
else
{
save = ((ServiceRecordGroupEditView)serviceRecordEditView).IsValid() &&
((ServiceRecordGroupEditView)serviceRecordEditView)
.IsCustomerChangeAllowed();
}
if (!save)
{
return;
}
serviceRecordEditView.SaveData();
}
beWoWindow.Close();
}));
}
if (serviceRecordEditView is ServiceRecordEditView)
{
((ServiceRecordEditView)serviceRecordEditView).InitView(listvm, vm, vm.SupportConcept == null);
}
else
{
var group = ServiceFacade.DoOperationsServiceSync(s => s.GetServiceRecordGroup(vm.GroupOid.Value));
((ServiceRecordGroupEditView)serviceRecordEditView).InitView(listvm, vm, group);
beWoWindow.Width += 190;
}
beWoWindow.ShowDialog();
}
public static bool CheckForExistingSignatures(ServiceRecordDC serviceRecord)
{
var validationResult = ServiceFacade.DoOperationsServiceSync(s => s.CheckForExistingSignature(serviceRecord));
return validationResult != null && MessageBox.Show(validationResult.Message, "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.Yes) || validationResult == null;
}
}
}

View File

@@ -1,6 +1,8 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using BeWo.View.Navigation.Filter;
using BS.Shared;
using DevExpress.XtraScheduler;
namespace BeWo.Core.Config
{
@@ -16,7 +18,7 @@ namespace BeWo.Core.Config
private bool misZeiterfassDateNormal = true;
private bool misZeiterfassungInStdMin = true;
private String einheitZeiterfassung = "0";
private CustomerFilterEnum _CustomerFilterInZeiterfassung = CustomerFilterEnum.All;
private CustomerFilterEnum _CustomerFilterSupportConcepts = CustomerFilterEnum.All;
@@ -31,6 +33,12 @@ namespace BeWo.Core.Config
private int mLastSelectedServiceRecordTimeIntervalDays = 7;
private int mServiceRecordAllowChangeHours = 24;
private DateTime mLastSelectedServiceRecordMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
private ZeiterfassungsDauer mLetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten;
public enum WindowStateType
@@ -38,7 +46,11 @@ namespace BeWo.Core.Config
Default,
Maximised
}
public AppSettings()
{
DienstplanungStandardZeilenAnzahl = 1;
}
public bool IsServiceRecordNoticeMandatory
{
@@ -74,10 +86,10 @@ namespace BeWo.Core.Config
set { misZeiterfassDateNormal = value; }
}
public bool IsZeiterfassungInStdMin
public String EinheitZeiterfassung
{
get { return misZeiterfassungInStdMin; }
set { misZeiterfassungInStdMin = value; }
get { return einheitZeiterfassung; }
set { einheitZeiterfassung = value; }
}
public ZeiterfassungsDauer LetzteZeiterfassungsDauer
@@ -181,7 +193,6 @@ namespace BeWo.Core.Config
public bool ShowLargeCustomerNotice { get; set; }
public bool ZeigeNurMeineTermine
{
get { return mZeigeNurMeineTermine; }
@@ -309,12 +320,44 @@ namespace BeWo.Core.Config
}
}
public DateTime LastSelectedServiceRecordMonth
{
get { return mLastSelectedServiceRecordMonth; }
set
{
if (mLastSelectedServiceRecordMonth != value)
{
mLastSelectedServiceRecordMonth = value;
IsDirty = true;
}
}
}
public int ServiceRecordAllowChangeHours
{
get { return mServiceRecordAllowChangeHours; }
set
{
if (mServiceRecordAllowChangeHours != value)
{
mServiceRecordAllowChangeHours = value;
IsDirty = true;
}
}
}
public bool IsDirty { get; set; }
public string TimeRecordingMenuName { get; set; }
public bool ShowDistanceFields { get; set; }
public bool ShowBetrag { get; set; }
public bool ShowHilfeplanBezeichnung { get; set; }
public bool ShowArbeitszeiten { get; set; }
@@ -341,7 +384,9 @@ namespace BeWo.Core.Config
public bool IsWohnheimAllowed { get; set; }
public bool IsChatAllowed { get; set; }
public bool ShowOwnChat { get; set; }
public bool ShowOwnChatSettings { get; set; }
public bool IsMedicationAllowed { get; set; }
@@ -351,8 +396,69 @@ namespace BeWo.Core.Config
public bool PrinterSettingsUseMargins { get; set; }
public bool ShowMultipleResourceColors { get; set; }
public bool ShowPivotGrid { get; set; }
public string ExpandedAdministrationItems { get; set; }
public bool ShowUrlaubsplanung { get; set; }
public bool DontShowSpitzabrechnung { get; set; }
public bool ShowDienstplanung { get; set; }
public int DienstplanungStandardZeilenAnzahl { get; set; }
public bool ShowInfoButtonInCalender{ get; set; }
public bool AllowStorno { get; set; }
public bool ShowEmployeeSignature { get; set; }
public bool SetStartTimeToEndTimeAfterSave { get; set; }
public bool ShowHilfeplanStatistikReport { get; set; }
private SchedulerViewType _SchedulerViewType;
public SchedulerViewType SchedulerViewType
{
get => _SchedulerViewType;
set
{
if(_SchedulerViewType != value)
{
_SchedulerViewType = value;
IsDirty = true;
}
}
}
private int _SchedulerTimelineViewDayCount;
public int SchedulerTimelineViewDayCount
{
get => _SchedulerTimelineViewDayCount == 0 ? 10 : _SchedulerTimelineViewDayCount;
set
{
if(_SchedulerTimelineViewDayCount != value)
{
_SchedulerTimelineViewDayCount = value > 0 ? value : 10;
IsDirty = true;
}
}
}
private int _SchedulerDayViewDayCount;
public int SchedulerDayViewDayCount
{
get => _SchedulerDayViewDayCount == 0 ? 5 : _SchedulerDayViewDayCount;
set
{
if(_SchedulerDayViewDayCount != value)
{
_SchedulerDayViewDayCount = value > 0 ? value : 5;
IsDirty = true;
}
}
}
public bool ShowKlientenBetreuungszeiten { get; set; }
}
}

View File

@@ -38,7 +38,9 @@ namespace BeWo.Core.Service
private List<CompactEmployeeDC> mTeamMembers;
private Dictionary<ValueListEntryDC, List<ResourceDC>> mCats2ResInDic;
private List<RatingTypeDC> mRatingTypes;
private Dictionary<ValueListEntryDC, List<ResourceDC>> mCats2ResInDic;
private Cache()
{
@@ -63,6 +65,7 @@ namespace BeWo.Core.Service
this.ClearCustomers();
this.ClearWohnheims();
ClearResources();
ClearRatingTypes();
}
public void ClearAllValueListEntries()
@@ -115,7 +118,12 @@ namespace BeWo.Core.Service
mCats2ResInDic = null;
}
public void GetActiveSupportConceptCostbearer(Action<List<CompactSupportConceptDC>> callback)
public void ClearRatingTypes()
{
mRatingTypes = null;
}
public void GetActiveSupportConceptCostbearer(Action<List<CompactSupportConceptDC>> callback)
{
if (this.mActiveSupportConceptCostbearerList == null)
{
@@ -247,6 +255,16 @@ namespace BeWo.Core.Service
}
}
public List<RatingTypeDC> GetAllRatingTypeList()
{
if(mRatingTypes == null)
{
ServiceFacade.DoOperationsServiceSync(cs => mRatingTypes = cs.GetAllRatingTypes());
}
return mRatingTypes;
}
public void GetServiceCategoryDescriptionDict(Action<Dictionary<ServiceCategoryDC, List<ServiceDescriptionDC>>> callback)
{
if (this.mServiceCategoryDescriptionDict == null)
@@ -334,6 +352,28 @@ namespace BeWo.Core.Service
return ve;
}
public void AddGoalEntry(ValueListEntryDC newdc)
{
if (newdc.ValueListEntryOid.HasValue)
{
var ve = GetGoalEntry(newdc.ValueListEntryOid.Value);
if (ve == null || !ve.ValueListEntryOid.HasValue)
{
if (mValueListEntryDict != null)
{
if (!mValueListEntryDict.ContainsKey(newdc.Type))
{
mValueListEntryDict[newdc.Type] = new List<ValueListEntryDC>();
}
mValueListEntryDict[newdc.Type].Add(newdc);
}
}
}
}
public ValueListEntryDC GetValueListEntry(ValueListEntryType type, long oid)
{
if (mValueListEntryDict == null || !mValueListEntryDict.ContainsKey(type))

View File

@@ -41,8 +41,8 @@ namespace BeWo.Core.Service
}
}
var sortedCategories = allCategories.OrderBy(s => s.TypeDescription).ToList();
var sortedGoals = pAllGoals.OrderBy(s => s.TypeDescription).ToList();
var sortedCategories = allCategories.OrderBy(s => s.DisplayName).ToList();
var sortedGoals = pAllGoals.OrderBy(s => s.DisplayName).ToList();
var allCatList = new List<SupportConceptGoalDC>();
var allGoalList = new List<SupportConceptGoalDC>();
@@ -284,6 +284,7 @@ namespace BeWo.Core.Service
public static void RecursiveSynchronousSCValueListEntrySave(SupportConceptGoalTreeItem treeItem)
{
var neuerDC = ServiceFacade.DoValueListServiceSync(s => s.InsertNewValueListEntry(treeItem.GoalEntryVM.CommitToDataContract()));
Cache.GetInstance().AddGoalEntry(neuerDC);
InsertedGoals.Add(neuerDC);
treeItem.GoalEntryVM = new ValueListEntryVM(neuerDC);
treeItem.GoalEntryDC = neuerDC;
@@ -302,7 +303,7 @@ namespace BeWo.Core.Service
{
ValueListEntryDC copyVe = new ValueListEntryDC();
copyVe.Abbreviation = ve.Abbreviation;
copyVe.Rating = copyRating ? ve.Rating : null;
copyVe.RatingTypeOid = copyRating ? ve.RatingTypeOid : null;
copyVe.Notice = ve.Notice;
copyVe.IsSystemEntry = ve.IsSystemEntry;
copyVe.ParentOid = ve.ParentOid;
@@ -310,7 +311,9 @@ namespace BeWo.Core.Service
copyVe.TypeDescription = ve.TypeDescription;
copyVe.ValueListEntryOid = ve.ValueListEntryOid;
copyVe.ValueListEntryVersion = ve.ValueListEntryVersion;
if (ve.Parent != null)
copyVe.CatalogOid = ve.CatalogOid;
copyVe.CatalogItem = ve.CatalogItem;
if (ve.Parent != null)
{
copyVe.Parent = ve.Parent;
}

View File

@@ -17,6 +17,14 @@ namespace BeWo.Core.Service
if (allGoalsAndCategories != null)
{
foreach (var goal in allGoalsAndCategories)
{
if (goal.CatalogOid.HasValue)
{
var catalogItem = Cache.GetInstance().GetValueListEntry(ValueListEntryType.MassnahmenKatalog, goal.CatalogOid.Value);
goal.CatalogItem = catalogItem;
}
}
var ziele = allGoalsAndCategories.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalCategoryType) || w.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType)).OrderBy(s => s.DisplayName).ToList();
var massnahmen = allGoalsAndCategories.Where(w => w.Type.Equals(ValueListEntryType.SupportConceptGoalType) || w.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType)).OrderBy(s => s.DisplayName).ToList();
var goalCategoryDict = new Dictionary<long, SupportConceptGoalDC>();
@@ -26,6 +34,7 @@ namespace BeWo.Core.Service
{
var treeItem = new SupportConceptGoalDC
{
CheckRecursive = false,
GoalEntryDC = goalCat,
IsExpanded = allGoalsAndCategories.Count <= 30
};
@@ -57,16 +66,21 @@ namespace BeWo.Core.Service
}
}
var zieleOhneKinder = goalCategoryDict.Values.Where(w => w.Children.Count == 0).ToList();
foreach (var ziel in zieleOhneKinder)
{
CheckIfSelected(ziel, selectedGoals);
}
//var zieleOhneKinder = goalCategoryDict.Values.Where(w => w.Children.Count == 0).ToList();
//foreach (var ziel in zieleOhneKinder)
//{
// CheckIfSelected(ziel, selectedGoals);
//}
var alleZiele = goalCategoryDict.Values.ToList();
foreach (var ziel in alleZiele)
{
CheckIfSelected(ziel, selectedGoals);
}
foreach (var goal in massnahmen)
{
var kind = new SupportConceptGoalDC { GoalEntryDC = goal };
var kind = new SupportConceptGoalDC { GoalEntryDC = goal, CheckRecursive = false };
CheckIfSelected(kind, selectedGoals);
if (goal.ParentOid != null && goalCategoryDict.ContainsKey(goal.ParentOid.Value))
@@ -91,29 +105,38 @@ namespace BeWo.Core.Service
if (existingGoal.Equals(goal.GoalEntryDC))
{
goal.IsChecked = true;
goal.GoalEntryDC.Rating = existingGoal.Rating;
goal.GoalEntryDC.RatingTypeOid = existingGoal.RatingTypeOid;
if (existingGoal.RatingTypeOid.HasValue)
{
var rdc = Cache.GetInstance().GetAllRatingTypeList()
.FirstOrDefault(r => r.RatingTypeOid == existingGoal.RatingTypeOid);
if (rdc != null)
{
goal.RatingName = rdc.DisplayName;
}
}
}
}
goal.PropertyChanged += (s, e) =>
{
var selectedGoal = s as SupportConceptGoalDC;
if (selectedGoal != null)
{
if (selectedGoal.IsChecked)
{
if (!selectedGoals.Contains(selectedGoal.GoalEntryDC))
{
selectedGoals.Add(selectedGoal.GoalEntryDC);
}
//goal.PropertyChanged += (s, e) =>
//{
// var selectedGoal = s as SupportConceptGoalDC;
// if (selectedGoal != null)
// {
// if (selectedGoal.IsChecked)
// {
// if (!selectedGoals.Contains(selectedGoal.GoalEntryDC))
// {
// selectedGoals.Add(selectedGoal.GoalEntryDC);
// }
}
else
{
selectedGoals.Remove(selectedGoal.GoalEntryDC);
}
}
};
// }
// else
// {
// selectedGoals.Remove(selectedGoal.GoalEntryDC);
// }
// }
//};
}
}

View File

@@ -1,29 +1,81 @@
using System.ComponentModel;
using BeWo.ViewModel;
using BS.Shared;
using BeWo.ViewModel;
using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.Extensions;
using System.ComponentModel;
using System.Diagnostics;
namespace BeWo.Core
{
[DebuggerDisplay("{GoalEntryVM.Abbreviation}: {GoalEntryVM.Description}")]
public class SupportConceptGoalTreeItem : SupportConceptGoalDC
{
private ValueListEntryVM _GoalEntryVM;
private BindingList<SupportConceptGoalTreeItem> _Children;
private bool _ShowNotice;
public SupportConceptGoalTreeItem() { }
public ValueListEntryVM GoalEntryVM
{
get => _GoalEntryVM;
set => _GoalEntryVM = value;
}
//CB Das ist doch genau falsch herum?
public bool IsGoal => GoalEntryVM != null ?
GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType) :
GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType);
public bool IsZiel
{
get
{
return IsOfType(ValueListEntryType.SupportConceptGoalCategoryType);
}
}
public bool IsIndZiel
{
get
{
return IsOfType(ValueListEntryType.SupportConceptIndividualGoalCategoryType);
}
}
public bool IsMassnahme
{
get
{
return IsOfType(ValueListEntryType.SupportConceptGoalType);
}
}
public bool IsIndMassnahme
{
get
{
return IsOfType(ValueListEntryType.SupportConceptIndividualGoalType);
}
}
public bool IsOfType(ValueListEntryType t)
{
if (GoalEntryVM != null)
{
return GoalEntryVM.Type == t;
}
else if (GoalEntryDC != null)
{
return GoalEntryDC.Type == t;
}
return false;
}
//public bool IsGoal => GoalEntryVM != null ?
// GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryVM.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType) :
// GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptGoalType) || GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType);
public bool ShowNotice
@@ -36,6 +88,8 @@ namespace BeWo.Core
}
}
public bool IsHidden { get; set; }
public BindingList<SupportConceptGoalTreeItem> Items
{
get => _Children ?? (_Children = new BindingList<SupportConceptGoalTreeItem>());

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Scheduler;
namespace BeWo
@@ -17,6 +18,22 @@ namespace BeWo
}
}
//class CustomGridLocalizer : GridControlLocalizer
//{
// protected override void PopulateStringTable()
// {
// base.PopulateStringTable();
// for (int i = 0; i < 10000; i++)
// {
// var enumInt = (GridControlStringId)i;
// AddString(enumInt, enumInt.ToString());
// }
// ;
// }
//}
//class CustomSchedulerResXLocalizer : SchedulerControlResXLocalizer
//{
// public override string GetLocalizedString(SchedulerControlStringId id)
@@ -28,7 +45,7 @@ namespace BeWo
// {
// base.PopulateStringTable();
// }
//}

View File

@@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d" Width="Auto" Background="{StaticResource LoginBackground}" SnapsToDevicePixels="False" Focusable="True">
<Page.Resources>
<Storyboard x:Key="OnLoaded1">
@@ -49,14 +50,14 @@
<Label x:Name="lblGesperrt" Content="Gesperrt" Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" HorizontalAlignment="Center" />
<TextBlock Text="Bitte melden Sie sich an, um den BeWoPlaner zu entsperren." TextWrapping="Wrap" Foreground="#FF000000" FontSize="12" />
</StackPanel>
<Label Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="Benutzername:" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{markup:Translate Benutzername:}" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Content="Passwort:" Foreground="#FF000000" Background="#00000000" />
<TextBox TabIndex="0" SnapsToDevicePixels="True" Grid.Column="2" Grid.Row="1" Margin="10,10,20,10" Height="24" x:Name="TextBoxUsername" HorizontalAlignment="Stretch" Text="" />
<PasswordBox Margin="10,0,20,0" Height="24" Grid.Column="2" Grid.Row="2" x:Name="PasswordBoxPassword" Password="" HorizontalAlignment="Stretch" TabIndex="1" />
<Button Margin="10,30,20,50" Height="30" x:Name="ButtonLogin" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Stretch" Content="Anmelden" IsDefault="True" Foreground="White" TabIndex="2" />
<Label VerticalAlignment="Bottom" HorizontalAlignment="Left" Content="Copyright 2010 | beyondSoft GmbH" Foreground="#FF818181" Margin="5,0,0,3" Grid.Row="3" Grid.ColumnSpan="3" Grid.Column="0" FontSize="10" />
<Label VerticalAlignment="Bottom" HorizontalAlignment="Left" Content="Copyright 2010 | ownSoft GmbH" Foreground="#FF818181" Margin="5,0,0,3" Grid.Row="3" Grid.ColumnSpan="3" Grid.Column="0" FontSize="10" />
<TextBlock Grid.Row="3" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,0,12,10">
<Hyperlink TargetName="newWindow" Foreground="#FF818181" NavigateUri="http://www.beyondsoft.de">www.beyondsoft.de</Hyperlink>
<Hyperlink TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de/">www.ownsoft.de</Hyperlink>
</TextBlock>
</Grid>
</Border>

View File

@@ -10,7 +10,7 @@ namespace BeWo
Loaded += LockedPage_Loaded;
LblVersion.Content = BeWoApp.Version;
lblGesperrt.Content = $"Gesperrt von Benutzer {BeWoApp.LoggedOnUser.Employee.FirstName} {BeWoApp.LoggedOnUser.Employee.LastName}";
lblGesperrt.Content = $"Gesperrt von " + BS.Shared.Translation.Translator.Translate("BenutzerSingular") + " " + BeWoApp.LoggedOnUser.Employee.FirstName + " " + BeWoApp.LoggedOnUser.Employee.LastName;
}
private void LockedPage_Loaded(object sender, RoutedEventArgs e)

View File

@@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d"
Width="Auto" Background="{StaticResource LoginBackground}"
d:DesignHeight="600" d:DesignWidth="800">
@@ -17,7 +18,7 @@
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Grid.RenderTransform>
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}">
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}" KeyDown="UIElement_OnKeyDown">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
@@ -35,20 +36,20 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_big.png" Height="45" Margin="7,7,0,0"/>
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="44" Margin="7,7,0,0"/>
<Label VerticalAlignment="Top" HorizontalAlignment="Right" Content="Version x.x.x" Foreground="#FF818181" Margin="5,7,3,0" Grid.Row="0" Grid.ColumnSpan="4"
Grid.Column="0" FontSize="10" x:Name="lblVersion" />
<StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="0,80,0,0">
<Label Content="Herzlich willkommen beim BeWoPlaner!" Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" />
<Label Content="Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein." Foreground="#FF000000" FontSize="12" />
<Label Content="{markup:Translate Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein.}" Foreground="#FF000000" FontSize="12" />
</StackPanel>
<Label Content="PIN:" Grid.Column="1" Grid.Row="1" Foreground="#FF000000" Background="#00000000" VerticalAlignment="Center" Visibility="{Binding Path=IsTechSupport, Converter={StaticResource BoolVisibilityConverter}}"/>
<TextBox x:Name="PINTextBox" Grid.Column="2" Grid.Row="1" Margin="10,0,20,0" Height="24" SnapsToDevicePixels="True" HorizontalAlignment="Stretch" Visibility="{Binding Path=IsTechSupport, Converter={StaticResource BoolVisibilityConverter}}"/>
<Label x:Name="lblPin" Content="PIN:" Grid.Column="1" Grid.Row="1" Foreground="#FF000000" Background="#00000000" VerticalAlignment="Center" Visibility="Collapsed"/>
<TextBox x:Name="PINTextBox" Grid.Column="2" Grid.Row="1" Margin="10,0,20,0" Height="24" SnapsToDevicePixels="True" HorizontalAlignment="Stretch" Visibility="Collapsed"/>
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Right" Content="Benutzername:" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{markup:Translate Benutzername:}" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Left" Content="Passwort:" Foreground="#FF000000" Background="#00000000" />
<TextBox TabIndex="0" SnapsToDevicePixels="True" Grid.Column="2" Grid.Row="2" Margin="10,10,20,10" Height="24" x:Name="TextBox_Username" HorizontalAlignment="Stretch" Text="" GotFocus="TextBox_Username_OnGotFocus" />
@@ -163,10 +164,10 @@
</Hyperlink>
</TextBlock>
</StackPanel>
<TextBlock x:Name="txtCopyright" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="10" Margin="10,5,0,5" Text="Copyright 2017 | beyondSoft GmbH" Foreground="#FF818181"/>
<TextBlock x:Name="txtCopyright" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="10" Margin="10,5,0,5" Text="Copyright 2022 | ownSoft GmbH" Foreground="#FF818181"/>
<TextBlock Grid.Row="7" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,5,12,5">
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="http://www.beyondsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.beyondsoft.de</Hyperlink>
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.ownsoft.de</Hyperlink>
</TextBlock>
</Grid>
</Border>

View File

@@ -25,9 +25,11 @@ using BS.Shared;
using BS.Shared.Extensions;
using BeWo.Core;
using BeWo.Security;
using BeWo.ServiceProxy;
using BeWo.View;
using BeWo.View.Detail;
using BS.Shared.Translation;
using Path = System.IO.Path;
namespace BeWo
@@ -39,18 +41,11 @@ namespace BeWo
{
private readonly Stack<Control> _ModalPopUpControls = new Stack<Control>();
private String GETSERVER_URL = "https://support.bewoplaner.de/api/getserver.php?k={0}&t=1";
private String GETSERVER_URL = "https://support.bewoplaner.de/api/getserver.php?k={0}&t=0";
private String GETSTATUSMESSAGE_URL = "https://support.bewoplaner.de/api/getstate.php?k={0}&t=1";
private String GETSTATUSMESSAGE_URL = "https://support.bewoplaner.de/api/getstate.php?k={0}&t=0&v={1}";
private String GETNETMESSAGE_URL = "https://support.bewoplaner.de/api/getxmlstate.php?k={0}&t=1";
private bool _IsTechSupport;
public bool IsTechSupport
{
get { return _IsTechSupport; }
set { _IsTechSupport = value; OnPropertyChanged("IsTechSupport"); }
}
private String GETNETMESSAGE_URL = "https://support.bewoplaner.de/api/getxmlstate.php?k={0}&t=0";
private Control _CurrentModalPopUp;
@@ -83,7 +78,7 @@ namespace BeWo
if (DateTime.Now > dt)
dt = DateTime.Now;
txtCopyright.Text = String.Format("Copyright {0:yyyy} | beyondSoft GmbH", dt);
txtCopyright.Text = String.Format("Copyright {0:yyyy} | ownSoft GmbH", dt);
var checkPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\profiles.txt";
if (File.Exists(checkPath))
@@ -181,65 +176,10 @@ namespace BeWo
{
}
if (ProfileList.Count == 0 || String.IsNullOrEmpty(ProfileList[0].Tenant))
{
//LH Würzburg Hack:
if (ApplicationDeployment.IsNetworkDeployed)
{
Uri uri = ApplicationDeployment.CurrentDeployment.ActivationUri;
if (uri == null)
{
uri = ApplicationDeployment.CurrentDeployment.UpdateLocation;
}
if (uri != null)
{
if (uri.Host.IndexOf("10.0.116.4") >= 0 || uri.Host.IndexOf("lebenshilfe-wuerzburg") >= 0)
{
BeWoProfile bp = new BeWoProfile("Lebenshilfe Würzburg", "10.0.116.4", "1");
ProfileList.Add(bp);
SaveProfileListToFile();
}
else if (uri.Host.IndexOf("fortis") >= 0)
{
BeWoProfile bp = new BeWoProfile("Fortis", "fortis-bewoplaner.fortis-ev.org.local", "4526293996");
ProfileList.Add(bp);
SaveProfileListToFile();
}
}
}
}
// IP-Adresse holen
try
{
var adminUrl = GetAdminUrl();
if (!String.IsNullOrEmpty(adminUrl))
{
using (var wc = new WebClient())
{
Uri path = new Uri(adminUrl);
BeWoApp.IpAddress = Encoding.UTF8.GetString(wc.DownloadData(path));
}
}
}
catch (Exception e)
{
BeWoApp.IpAddress = String.Empty;
}
//string ipaddress = "";
#if DEBUG
IsTechSupport = true;
#else
IsTechSupport = !String.IsNullOrEmpty(BeWoApp.IpAddress) && BeWoApp.IpAddress.Equals("87.79.89.65");
#endif
// --------------
if (ProfileList.Count == 0 || String.IsNullOrEmpty(ProfileList[0].Tenant))
@@ -272,32 +212,28 @@ namespace BeWo
//if (profileSelectionComboBox.SelectedItem == null)
profileSelectionComboBox.SelectedItem = selectedProfile;
if (selectedProfile != null && selectedProfile.Tenant == "demo")
TextBox_Username.Focus();
if (selectedProfile != null && selectedProfile.Tenant == "demo")
{
TextBox_Username.Text = "demo";
PasswordBox_Password.Password = "demo";
button_login.Focus();
}
else
{
TextBox_Username.Focus();
}
//this.lblTenant.Content = BeWoApp.Tenant;
lblVersion.Content = BeWoApp.Version;
Loaded += LoginControl_Loaded;
if (!IsTechSupport)
return;
linkLine.Margin = new Thickness(linkLine.Margin.Left, linkLine.Margin.Top + 25, linkLine.Margin.Right, linkLine.Margin.Bottom);
gridLogin.Height += 25;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
PinCertificate();
//linkLine.Margin = new Thickness(linkLine.Margin.Left, linkLine.Margin.Top + 25, linkLine.Margin.Right, linkLine.Margin.Bottom);
//gridLogin.Height += 25;
}
@@ -306,30 +242,31 @@ namespace BeWo
ServicePointManager.ServerCertificateValidationCallback = PinPublicKey;
}
private static String PUB_KEY = "3082010A02820101009CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
private static String PUB_KEY_X3 = "3082010A02820101009CD30CF05AE52E47B7725D3783B3686330EAD735261925E1BDBE35F170922FB7B84B4105ABA99E350858ECB12AC468870BA3E375E4E6F3A76271BA7981601FD7919A9FF3D0786771C8690E9591CFFEE699E9603C48CC7ECA4D7712249D471B5AEBB9EC1E37001C9CAC7BA705EACE4AEBBD41E53698B9CBFD6D3C9668DF232A42900C867467C87FA59AB8526114133F65E98287CBDBFA0E56F68689F3853F9786AFB0DC1AEF6B0D95167DC42BA065B299043675806BAC4AF31B9049782FA2964F2A20252904C674C0D031CD8F31389516BAA833B843F1B11FC3307FA27931133D2D36F8E3FCF2336AB93931C5AFC48D0D1D641633AAFA8429B6D40BC0D87DC3930203010001";
private static String PUB_KEY_R3 = "3082010A0282010100BB021528CCF6A094D30F12EC8D5592C3F882F199A67A4288A75D26AAB52BB9C54CB1AF8E6BF975C8A3D70F4794145535578C9EA8A23919F5823C42A94E6EF53BC32EDB8DC0B05CF35938E7EDCF69F05A0B1BBEC094242587FA3771B313E71CACE19BEFDBE43B45524596A9C153CE34C852EEB5AEED8FDE6070E2A554ABB66D0E97A540346B2BD3BC66EB66347CFA6B8B8F572999F830175DBA726FFB81C5ADD286583D17C7E709BBF12BF786DCC1DA715DD446E3CCAD25C188BC60677566B3F118F7A25CE653FF3A88B647A5FF1318EA9809773F9D53F9CF01E5F5A6701714AF63A4FF99B3939DDC53A706FE48851DA169AE2575BB13CC5203F5ED51A18BDB150203010001";
private static String PUB_KEY_E1 = "04245C2DA22AFD1C4BA65D97732731ACB2A06962EF65E8A6B0F0AC4B9FFF1C0B700FD3982F4DFC0F009B37F074055732972E05EF2A4325A3FB6E342713F64F7E69D302995EEB244792C1249BE6B1218FC12481FC68CC1F69BA58F51922F774C616";
private bool PinPublicKey(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
{
try
{
if (null == certificate || chain == null)
if (certificate == null || chain == null)
return false;
;
bool chainContainsPk = false;
foreach (var element in chain.ChainElements)
{
String pk = element.Certificate.GetPublicKeyString();
if (pk == PUB_KEY)
if (pk == PUB_KEY_X3 || pk == PUB_KEY_R3 || pk == PUB_KEY_E1)
{
chainContainsPk = true;
}
}
//bool subjectAccepted = Regex.IsMatch(certificate.Subject, @"app[\d]*.bewoplaner.de");
bool subjectAccepted = certificate.Subject.Trim().ToLower().EndsWith(".bewoplaner.de") ||
certificate.Subject.Trim().ToLower().EndsWith(".ownchat.de");
return chainContainsPk && subjectAccepted;
@@ -347,11 +284,45 @@ namespace BeWo
return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}
private bool CheckStatusMessage(BeWoProfile profile, String url)
private bool CheckStatusMessage(String url)
{
#if DEBUG
//String message = @"Sehr geehrte Kundin, sehr geehrter Kunde,
// Ihr BeWoPlaner Nutzungszeitraum endet automatisch am 31.01.2020.
// Bitte wenden Sie sich an den BeWoPlaner - Support, sofern Sie den Nutzungszeitraum verlängern möchten.
// Vielen Dank.
// Ihr BeWoPlaner-Team;1";
//if (!String.IsNullOrWhiteSpace(message) && message.Trim().Length > 2)
//{
// String ende = message.Substring(message.Length - 2);
// message = message.Replace("\\n", "\n");
// message = message.Substring(0, message.Length - 2);
// MessageDialog dlg = new MessageDialog();
// if (message.Contains("<") && message.Contains(">"))
// {
// dlg.SetXaml(message);
// }
// else
// {
// dlg.Message = message;
// }
// dlg.Visibility = Visibility.Visible;
// dlg.ShowDialog();
// if (ende.EndsWith(";0"))
// {
// return false;
// }
//}
return true;
#endif
#else
try
{
using (WebClient client = new WebClient())
@@ -404,6 +375,7 @@ namespace BeWo
}
return true;
#endif
}
private BeWoProfile ReadSelectedProfile()
@@ -460,9 +432,9 @@ namespace BeWo
while (!myFile.EndOfStream)
{
var data = myFile.ReadLine().Split('|');
var data = myFile.ReadLine()?.Split('|');
if (data.Length >= 3)
if (data?.Length >= 3)
{
if (!String.IsNullOrEmpty(data[1]) && !String.IsNullOrEmpty(data[2]))
ProfileList.Add(new BeWoProfile(data[0], data[1], data[2]));
@@ -474,7 +446,6 @@ namespace BeWo
catch (Exception e)
{
}
}
private string GetNumericServerName(string serverName)
@@ -533,31 +504,6 @@ namespace BeWo
}
}
private string GetServerFromTenantAlt(string tenant)
{
try
{
using (WebClient client = new WebClient())
{
//MessageBox.Show(hostAddress);
byte[] response = client.UploadValues(GetAdminUrl(), "POST", new NameValueCollection()
{
{"k", tenant},
{"p", "6ca793d9e460"}
});
String server = System.Text.Encoding.ASCII.GetString(response);
return server;
}
}
catch (Exception ex)
{
MessageBox.Show(String.Format("Fehler beim Prüfen der Kundennummer: {0}\n\n{1}", ex.Message, ex.StackTrace));
}
return null;
}
private string GetServerFromTenant(string tenant)
{
@@ -596,33 +542,6 @@ namespace BeWo
return null;
}
private string GetAdminUrl()
{
String address = String.Empty;
#if DEBUG
if (true)
{
address = "http://localhost/Host";
//Uri uri = new Uri("http://app.beyondsoft.de/bewo.application");
//hostAddress = String.Format("{0}://{1}", uri.Scheme, uri.Host);
#else
if (ApplicationDeployment.IsNetworkDeployed && ApplicationDeployment.CurrentDeployment.UpdateLocation != null)
{
Uri uri = ApplicationDeployment.CurrentDeployment.UpdateLocation;
address = String.Format("{0}://{1}", uri.Scheme, uri.Host);
#endif
}
if (String.IsNullOrEmpty(address))
{
return null;
}
return String.Format("{0}/{1}", address, "Admin.aspx");
}
private BeWoProfile GenerateProfileFromUri(Uri uri)
{
@@ -771,26 +690,25 @@ namespace BeWo
if (!isNet45OrNewer)
{
if (!CheckStatusMessage(profile, String.Format(GETNETMESSAGE_URL, profile.Tenant)))
if (!CheckStatusMessage(String.Format(GETNETMESSAGE_URL, profile.Tenant, BeWoApp.Version)))
{
return;
}
}
#if DEBUG
//if (!CheckStatusMessage(profile, String.Format(GETNETMESSAGE_URL, profile.Tenant)))
//{
// return;
//}
#else
if (!CheckStatusMessage(profile, String.Format(GETSTATUSMESSAGE_URL, profile.Tenant)))
if (!CheckStatusMessage(String.Format(GETSTATUSMESSAGE_URL, profile.Tenant, BeWoApp.ShortVersion)))
{
return;
}
}
#else
if (!CheckStatusMessage(String.Format(GETSTATUSMESSAGE_URL + "&pre", profile.Tenant, BeWoApp.ShortVersion)))
{
return;
}
#endif
ChangeServerAndTenant(profile);
var lWaitLayer = new WaitLayer2();
grid_root.Children.Add(lWaitLayer);
@@ -815,7 +733,7 @@ namespace BeWo
try
{
//1. Versuch
UserValidationResult result = TryLogin(lWaitLayer, lUserName, lPassword, lPIN );
UserValidationResult result = TryLogin(lWaitLayer, lUserName, lPassword, lTenant, lPIN );
//2. Versuch
if (result == UserValidationResult.UnkownError)
@@ -823,7 +741,7 @@ namespace BeWo
ServiceFacade.DoOperationsServiceAsync(op => op.ResetTenant(lTenant),
delegate
{
result = TryLogin(lWaitLayer ,lUserName, lPassword, lPIN);
result = TryLogin(lWaitLayer ,lUserName, lPassword, lTenant, lPIN);
if (result == UserValidationResult.UnkownError)
{
@@ -831,7 +749,7 @@ namespace BeWo
ServiceFacade.DoOperationsServiceAsync(op => op.ResetAllTenants(),
delegate
{
result = TryLogin(lWaitLayer,lUserName, lPassword, lPIN);
result = TryLogin(lWaitLayer,lUserName, lPassword, lTenant, lPIN);
if (result == UserValidationResult.UnkownError)
{
@@ -851,7 +769,15 @@ namespace BeWo
this.Dispatch(delegate
{
grid_root.Children.Remove(lWaitLayer);
MessageBox.Show("Anmeldeinformationen nicht bekannt. Bitte überprüfen Sie den Benutzernamen und das Passwort!", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
MessageBox.Show("Anmeldeinformationen nicht bekannt. Bitte überprüfen Sie den " + BS.Shared.Translation.Translator.Translate("Benutzernamen") + " und das Passwort!", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
});
}
if (result == UserValidationResult.EmployeeDeleted)
{
this.Dispatch(delegate
{
grid_root.Children.Remove(lWaitLayer);
MessageBox.Show("Der zugeordnete " + Translator.Translate("Mitarbeiterdatensatz") + " wurde gelöscht oder archiviert! Anmeldung nicht möglich.", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
});
}
if (result == UserValidationResult.TenantUnknown)
@@ -916,7 +842,7 @@ namespace BeWo
}
}
private UserValidationResult TryLogin(WaitLayer2 lWaitLayer, string lUserName, string lPassword, string lPIN = "")
private UserValidationResult TryLogin(WaitLayer2 lWaitLayer, string lUserName, string lPassword, string tenant, string lPin)
{
UserValidationResult? result = null;
@@ -953,7 +879,7 @@ namespace BeWo
{
try
{
return s.IsUserValid(tempUsername, lPassword, lPIN);
return s.IsUserValid(tempUsername, lPassword, lPin);
}
catch (Exception)
{
@@ -963,7 +889,13 @@ namespace BeWo
r =>
{
result = r;
LoginResult(lWaitLayer,r, lUserName, lPassword, lPIN );
this.Dispatch(delegate
{
LoginResult(lWaitLayer, r, lUserName, lPassword, tenant, lPin);
});
}, true);
}
catch (FaultException<BeWoFault>)
@@ -985,26 +917,45 @@ namespace BeWo
return result.Value;
}
private void LoginResult( WaitLayer2 lWaitLayer, UserValidationResult result, String lUserName, String lPassword, String lPIN = "")
private void LoginResult( WaitLayer2 lWaitLayer, UserValidationResult result, String lUserName, String lPassword, String tenant, String lPIN)
{
if (result == UserValidationResult.UserValid)
if (result == UserValidationResult.UserValid || result == UserValidationResult.UserValidTwoFactorAuthenticationNeeded)
{
//this.Dispatch(delegate
//{
// if (BeWoApp.Tenant == "demo")
// {
// var dlg = new ConfirmDemoDialog();
// dlg.Topmost = true;
// dlg.Show();
// }
//});
if (result == UserValidationResult.UserValidTwoFactorAuthenticationNeeded)
{
grid_root.Children.Remove(lWaitLayer);
var dlg = new TwoFactorAuthMessageDialog(lUserName, lPassword);
var message = Translator.Translate("Zwei Faktor Authentifizierung erforderlich");
if (message.Contains("<") && message.Contains(">"))
{
dlg.SetXaml(message);
}
else
{
dlg.Message = message;
}
var dr = dlg.ShowDialog();
if (!dr.HasValue || !dr.Value)
{
return;
}
}
if (!CheckStatusMessage(String.Format(GETSTATUSMESSAGE_URL, tenant, BeWoApp.ShortVersion)))
{
grid_root.Children.Remove(lWaitLayer);
return;
}
BeWoApp.UserName = lUserName;
BeWoApp.UserPassword = lPassword;
BeWoApp.PasswortStrength = BeWoUtils.CheckPasswordSecurity(lPassword);
ServiceFacade.DoUserServiceAsync(s2 => s2.LoadUserByLoginName(lUserName),
ServiceFacade.DoUserServiceAsync(s2 => s2.LoadUserByNameAndPassword(lUserName, lPassword),
r2 =>
{
BeWoApp.LoggedOnUser = r2;
@@ -1020,12 +971,12 @@ namespace BeWo
});
}, true);
}
else if (result == UserValidationResult.PasswordExpired)
else if (result == UserValidationResult.PasswordExpired || result == UserValidationResult.BeWoPasswordNotAllowed)
{
BeWoApp.UserName = lUserName;
BeWoApp.UserPassword = lPassword;
ServiceFacade.DoUserServiceAsync(s2 => s2.LoadUserByLoginName(lUserName),
ServiceFacade.DoUserServiceAsync(s2 => s2.LoadUserByNameAndPassword(lUserName, lPassword),
r2 =>
{
BeWoApp.LoggedOnUser = r2;
@@ -1036,8 +987,13 @@ namespace BeWo
BeWoApp.Mandator = m;
this.Dispatch(delegate
{
String msg = Translator.Translate("Das Passwort ist abgelaufen!");
if (result == UserValidationResult.BeWoPasswordNotAllowed)
{
msg = Translator.Translate("Das Passwort ist leider unsicher und muss zwingend geändert werden!");
}
grid_root.Children.Remove(lWaitLayer);
MessageBox.Show("Das Passwort ist abgelaufen!", "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
MessageBox.Show(msg, "Fehler bei der Anmeldung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
var pav = new PasswortAenderungsView();
pav.ShowDialog();
@@ -1122,6 +1078,7 @@ namespace BeWo
ReadProxyName();
}
// TODO: Verschlüsselung einbauen!
private void ReadProxyName()
{
int counter = 0;
@@ -1136,17 +1093,24 @@ namespace BeWo
filePath = Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
}
var file = new System.IO.StreamReader(filePath);
while ((line = file.ReadLine()) != null)
{
byte[] decbuff = Convert.FromBase64String(line);
var x = System.Text.Encoding.UTF8.GetString(decbuff);
var allLines = File.ReadAllLines(filePath);
datai[counter] = x;
foreach(var linex in allLines)
{
var decryptedLine = EncryptionUtils.DecryptString(linex);
datai[counter] = decryptedLine;
counter++;
}
file.Close();
//var file = new StreamReader(filePath);
//while ((line = file.ReadLine()) != null)
//{
// datai[counter] = Encoding.UTF8.GetString(Convert.FromBase64String(line));
// counter++;
//}
//file.Close();
proxyname = datai[0];
proxyUsername = datai[1];
@@ -1160,6 +1124,7 @@ namespace BeWo
}
private void SaveSelectedProfile(BeWoProfile profile)
{
try
@@ -1183,7 +1148,6 @@ namespace BeWo
}
}
private void SaveProfileListToFile()
{
try
@@ -1388,6 +1352,33 @@ namespace BeWo
pwvViewOffen = true;
}
private void UIElement_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.P)
{
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl) && Keyboard.IsKeyDown(Key.LeftAlt))
{
PinEinblenden();
}
}
}
private void PinEinblenden()
{
if (PINTextBox.Visibility != Visibility.Visible)
{
PINTextBox.Visibility = Visibility.Visible;
lblPin.Visibility = Visibility.Visible;
linkLine.Margin = new Thickness(linkLine.Margin.Left, linkLine.Margin.Top + 25, linkLine.Margin.Right,
linkLine.Margin.Bottom);
gridLogin.Height += 25;
PINTextBox.Focus();
}
}
}
public class BeWoProfile

View File

@@ -51,9 +51,9 @@
</Grid.RowDefinitions>
<!--<Frame x:Name="chatFrame" Grid.Column="2" Grid.Row="0" />-->
<TextBlock HorizontalAlignment="Center" Width="Auto" Margin="5,2,0,0">
<Hyperlink NavigateUri="http://www.bewoplaner.de" TargetName="newWindow" Foreground="Transparent" RequestNavigate="Hyperlink_OnRequestNavigate">
<Hyperlink NavigateUri="https://www.bewoplaner.de" TargetName="newWindow" Foreground="Transparent" RequestNavigate="Hyperlink_OnRequestNavigate">
<InlineUIContainer>
<Image HorizontalAlignment="Left" Source="Ressources\Icons\bewoplaner_logo_small.png"
<Image HorizontalAlignment="Left" Source="Ressources\Icons\bewoplaner_logo_small.png" Width="130"
Style="{StaticResource toolbarImageStyle}" RenderTransformOrigin="0.5,0.5" x:Name="image">
<Image.RenderTransform>
<TransformGroup>
@@ -148,7 +148,7 @@
</Canvas>
</Viewbox>
</Border>
<Grid x:Name="toolbarContent" RenderTransformOrigin="0.5,0.5" MouseEnter="UIElement_OnMouseEnter" Loaded="ToolbarContent_OnLoaded">
<Grid x:Name="toolbarContent" RenderTransformOrigin="0.5,0.5" Loaded="ToolbarContent_OnLoaded">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
@@ -246,7 +246,7 @@
</Button.RenderTransform>
</localView:ImageButton>
<localView:ImageButton r:DemandUserRight.VisibleDemands="ViewAll, AccountingTransactionView_View"
<localView:ImageButton r:DemandUserRight.VisibleDemands="ViewAll, AccountingTransactionView_View, BargeldverwaltungFinanzenAnsehen, DokumenteFinanzen"
ImageSource="Ressources\Icons\CoinsDisabled.png" x:Name="button_AccountingTransacation"
Click="button_AccountingTransacation_Click" Style="{StaticResource NavBarButton}"
Content="{t:Translate FinanzenMenuItem}" Background="{StaticResource AccountingContentBrush}"
@@ -448,6 +448,20 @@
</TransformGroup>
</Button.RenderTransform>
</localView:ImageButton>
<localView:ImageButton r:DemandUserRight.VisibleDemands="ViewAll, TeamView_ViewAll, TeamView_ViewMyTeams"
x:Name="button_Dokumente" Click="button_Dokumente_Click" Style="{StaticResource NavBarButton}"
Content="{t:Translate DokumenteMenuItem}" Background="{StaticResource DokumenteContentBrush}"
RenderTransformOrigin="0.5,0.5"
ImageSource="Ressources\Icons\Folder.png" Width="90">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Button.RenderTransform>
</localView:ImageButton>
<localView:ImageButton r:DemandUserRight.VisibleDemands="ViewAll, UserView_View"
x:Name="button_User" Click="button_User_Click" Style="{StaticResource NavBarButton}"
Content="{t:Translate BenutzerMenuItem}" Background="{StaticResource UserContentBrush}"

View File

@@ -21,6 +21,7 @@ using BeWo.SchulbegleitenderDienst;
using BeWo.ServiceProxy;
using BeWo.View;
using BeWo.View.Detail;
using BeWo.View.Detail.Zeiterfassung;
using BeWo.View.Master;
using BeWo.View.Navigation;
using BeWo.ViewModel;
@@ -28,8 +29,7 @@ using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Scheduler;
using BS.Shared.Translation;
using Hyperlink = System.Windows.Documents.Hyperlink;
namespace BeWo
@@ -42,6 +42,7 @@ namespace BeWo
Employee,
Organisation,
Team,
Dokumente,
User,
UserGroup,
Report,
@@ -49,7 +50,7 @@ namespace BeWo
Wohnheim,
Vertretungen,
CustomerTeam
}
}
public partial class MainControl
{
@@ -76,8 +77,10 @@ namespace BeWo
KeyDown += MainControl_KeyDown;
NavigateToHomeView();
EditorLocalizer.Active = new CustomDXEditorLocalizer();
SchedulerControlLocalizer.Active = new CustomSchedulerLocalizer();
//EditorLocalizer.Active = new CustomDXEditorLocalizer();
//SchedulerControlLocalizer.Active = new CustomSchedulerLocalizer();
//GridControlLocalizer.Active = new CustomGridLocalizer();
OpenedModalViewWindows = new List<ModalViewWindow>();
@@ -88,7 +91,9 @@ namespace BeWo
BeWoApp.InitAutoUILocking();
BeWoApp.InitBlubb();
AufOffeneTerminePruefen();
//BeWoApp.InitBlubb();
#if !DEBUG
if (this.button_Scheduler.Visibility == Visibility.Visible && !BeWoApp.AppSettings.IsSchedulerAllowed)
@@ -108,8 +113,13 @@ namespace BeWo
{
this.button_SchulbegleitenderDienst.Visibility = Visibility.Collapsed;
}
this.button_Dokumente.Visibility = Visibility.Collapsed;
#endif
}
#if DEBUG
//DebugHelperViewButton.Visibility = Visibility.Visible;
#endif
}
public List<ModalViewWindow> OpenedModalViewWindows { get; set; }
@@ -205,7 +215,10 @@ namespace BeWo
case UIContext.Team:
view = new TeamNavigationView();
break;
case UIContext.User:
case UIContext.Dokumente:
view = new DokumenteView();
break;
case UIContext.User:
view = new UserNavigationView();
break;
case UIContext.UserGroup:
@@ -1025,7 +1038,15 @@ namespace BeWo
}
}
private void button_CustomerTeam_Click(object sender, RoutedEventArgs e)
private void button_Dokumente_Click(object sender, RoutedEventArgs e)
{
if (DoSaveCheck())
{
NavigateTo(GetViewForUIContext(UIContext.Dokumente));
}
}
private void button_CustomerTeam_Click(object sender, RoutedEventArgs e)
{
if (DoSaveCheck())
{
@@ -1171,7 +1192,7 @@ namespace BeWo
};
var phoneLabel = new Label
{
Content = "PIN für Support-Anruf erhalten",
Content = "PIN für Support erhalten",
FontWeight = FontWeights.Bold,
Margin = new Thickness(5),
HorizontalContentAlignment = HorizontalAlignment.Center,
@@ -1184,17 +1205,31 @@ namespace BeWo
Margin = new Thickness(45, 5, 5, 5),
Text = "Wenn Sie auf das PIN-Symbol klicken, wird Ihnen eine zufällige Support-PIN angezeigt.\n\n" +
"Benötigen wir zur Lösung einer Support-Anfrage den Zugriff auf Ihre Datenbank,\n" +
"werden Sie vom Support-Mitarbeiter gebeten, ihm eine solche Support-PIN zu übermitteln.\n" +
"werden Sie " + Translator.Translate("vom Support-Mitarbeiter") + " gebeten, ihm eine solche Support-PIN zu übermitteln.\n" +
"Diese PIN ist nur einmalig nutzbar/gültig. Sie wird nicht automatisch an den Support übermittelt.\n" +
"Dies stellt sicher, dass ein Support-Mitarbeiter nicht ohne Ihre Einwilligung auf Ihre Datenbank zugreifen kann.\n" +
"Dies stellt sicher, dass " + Translator.Translate("ein Support-Mitarbeiter") + " nicht ohne Ihre Einwilligung auf Ihre Datenbank zugreifen kann.\n" +
"Jeder Support-Zugriff auf Ihre Datenbank wird zudem mit Hilfe der PIN protokolliert."
};
/*
* <TextBlock Grid.Row="7" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,5,12,5">
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="http://www.beyondsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.beyondsoft.de</Hyperlink>
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.ownsoft.de</Hyperlink>
</TextBlock>
*/
var tvLabel = new Label
{
Content = "Support per Fernwartung",
FontWeight = FontWeights.Bold,
Margin = new Thickness(40, 5, 5, 5)
};
var textBlockTeamViewer = new TextBlock
{
Foreground = Brushes.Black,
Margin = new Thickness(45, 5, 5, 5),
Text = "Wenn Sie in einem Telefonat mit " + Translator.Translate("einem unserer Support-Mitarbeiter") + " aufgefordert werden\nden Teamviewer zu installieren, so können Sie ihn hier herunterladen."
};
var supportToolLink = new TextBlock
{
Foreground = Brushes.Black,
@@ -1275,21 +1310,24 @@ namespace BeWo
var centeredStackPanel = new StackPanel {Orientation = Orientation.Vertical, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center};
var mailStackPanel = new StackPanel {Orientation = Orientation.Horizontal};
var phoneStackPanel = new StackPanel {Orientation = Orientation.Horizontal};
var tvStackPanel = new StackPanel { Orientation = Orientation.Horizontal };
mailStackPanel.Children.Add(mailButton);
mailStackPanel.Children.Add(mailButton);
mailStackPanel.Children.Add(mailLabel);
phoneStackPanel.Children.Add(phoneButton);
phoneStackPanel.Children.Add(phoneLabel);
centeredStackPanel.Children.Add(mailStackPanel);
centeredStackPanel.Children.Add(textBlockMail);
centeredStackPanel.Children.Add(phoneStackPanel);
centeredStackPanel.Children.Add(textBlockPhone);
centeredStackPanel.Children.Add(supportToolLink);
centeredStackPanel.Children.Add(tvLabel);
centeredStackPanel.Children.Add(textBlockTeamViewer);
centeredStackPanel.Children.Add(supportToolLink);
centeredStackPanel.Children.Add(cancelButton);
@@ -1657,18 +1695,18 @@ namespace BeWo
}
}
private void UIElement_OnMouseEnter(object sender, MouseEventArgs e)
{
AufOffeneTerminePruefen();
}
//private void UIElement_OnMouseEnter(object sender, MouseEventArgs e)
//{
// AufOffeneTerminePruefen();
//}
public void InitOffeneTermine()
{
if (!_TermineInitialized && BeWoApp.LoggedOnEmployee != null)
{
AufOffeneTerminePruefen();
_TermineInitialized = true;
}
//if (!_TermineInitialized && BeWoApp.LoggedOnEmployee != null)
//{
// AufOffeneTerminePruefen();
// _TermineInitialized = true;
//}
}
public void AufOffeneTerminePruefen()
@@ -1692,5 +1730,5 @@ namespace BeWo
NavigateTo(GetViewForUIContext(UIContext.Vertretungen));
}
}
}
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows;
using BeWo.Core.Config;
using BeWo.MultiLanguage;
@@ -18,7 +19,6 @@ namespace BeWo
InitializeComponent();
ApplicationThemeHelper.ApplicationThemeName = "Office2010Black";
ShowLoginControl();
}

View File

@@ -54,5 +54,25 @@ namespace BeWo.MultiLanguage
}
return String.Format(this.currentCulture, input, args);
}
public String TranslateKey(String key, String defaultText)
{
if (key != null && this.dict != null && this.dict.TryGetValue(key, out var translation))
{
return translation;
}
return defaultText;
}
public String TranslateKey(String key, String defaultText, params Object[] args)
{
String translation;
if (!String.IsNullOrEmpty(key) && this.dict.TryGetValue(key, out translation))
{
return String.Format(this.currentCulture, translation, args);
}
return String.Format(this.currentCulture, defaultText, args);
}
}
}

View File

@@ -8,9 +8,9 @@ using System.Windows;
[assembly: AssemblyTitle("BeWoPlaner")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("beyondSoft GmbH")]
[assembly: AssemblyCompany("ownSoft GmbH")]
[assembly: AssemblyProduct("BeWoPlaner")]
[assembly: AssemblyCopyright("Copyright © 2013 beyondSoft GmbH")]
[assembly: AssemblyCopyright("Copyright © 2022 ownSoft GmbH")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

View File

@@ -1,6 +1,7 @@
<Window x:Class="BeWo.ProxyLoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Title="Proxy Einstellungen" Height="200" Width="300">
<Grid>
<Button x:Name="proxyOK" Content="OK" HorizontalAlignment="Left" Margin="75,120,0,0" VerticalAlignment="Top" Width="100" Click="proxyOK_Click"/>
@@ -8,7 +9,7 @@
<Label Content="Proxyname:" HorizontalAlignment="Left" Margin="10,15,0,0" VerticalAlignment="Top" Width="100"/>
<Label Content="Benutzername:" HorizontalAlignment="Left" Margin="10,45,0,0" VerticalAlignment="Top" Width="100"/>
<Label Content="{markup:Translate Benutzername:}" HorizontalAlignment="Left" Margin="10,45,0,0" VerticalAlignment="Top" Width="100"/>
<Label Content="Passwort:" HorizontalAlignment="Left" Margin="10,75,0,0" VerticalAlignment="Top" Width="100"/>
<TextBox x:Name="proxynametxt" HorizontalAlignment="Left" Height="23" Margin="120,15,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="160" SelectionOpacity="0.5" />

View File

@@ -1,36 +1,22 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using BeWo.Security;
namespace BeWo
{
/// <summary>
/// Interaktionslogik für ProxyLoginView.xaml
/// </summary>
public partial class ProxyLoginView : Window
public partial class ProxyLoginView
{
public ProxyLoginView()
{
InitializeComponent();
überprüfe();
CheckBeWoProfile();
}
private void überprüfe() {
private void CheckBeWoProfile() {
if (proxynametxt.Text.Equals("") && proxybenutzer.Text.Equals("") && proxypasswort.Password.Equals("")) {
@@ -41,24 +27,34 @@ namespace BeWo
try
{
var filePath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\proxy.dat";
var filePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\proxy.dat";
if (!File.Exists(filePath))
{
filePath = System.IO.Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
filePath = Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
}
var file = new System.IO.StreamReader(filePath);
while ((line = file.ReadLine()) != null)
{
var allLines = File.ReadAllLines(filePath);
byte[] decbuff = Convert.FromBase64String(line);
var x= System.Text.Encoding.UTF8.GetString(decbuff);
datai[counter] = x;
foreach(var linex in allLines)
{
var decryptedLine = EncryptionUtils.DecryptString(linex);
datai[counter] = decryptedLine;
counter++;
}
file.Close();
//var file = new StreamReader(filePath);
//while ((line = file.ReadLine()) != null)
//{
// byte[] decbuff = Convert.FromBase64String(line);
// var x= System.Text.Encoding.UTF8.GetString(decbuff);
// datai[counter] = x;
// counter++;
//}
//file.Close();
proxynametxt.Text = datai[0];
proxybenutzer.Text = datai[1];
@@ -70,50 +66,53 @@ namespace BeWo
}
// TODO: Verschlüsselung einbauen!
private void proxyOK_Click(object sender, RoutedEventArgs e)
{
string ptname = proxynametxt.Text;
string ptbenutzer = proxybenutzer.Text;
string ptpasswd = proxypasswort.Password;
string[] lines = { ptname, ptbenutzer, ptpasswd };
string[] lines = { proxynametxt.Text, proxybenutzer.Text, proxypasswort.Password };
var encryptedLines = new List<string>();
try
{
var filePath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\proxy.dat";
var filePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\proxy.dat";
if (!File.Exists(filePath))
{
filePath = System.IO.Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
filePath = Path.Combine(BeWoApp.GetAndCreateUserAppDataPath(), "proxy.dat");
}
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(filePath))
foreach(var line in lines)
{
foreach (string line in lines)
{
byte[] encData_byte = new byte[line.Length];
encData_byte = System.Text.Encoding.UTF8.GetBytes(line);
string encodedData = Convert.ToBase64String(encData_byte);
file.WriteLine(encodedData);
}
encryptedLines.Add(EncryptionUtils.EncryptString(line));
}
ptname = "";
ptbenutzer = "";
ptpasswd = "";
File.WriteAllLines(filePath, encryptedLines);
this.Close();
}catch(IOException i){
//using (var file = new StreamWriter(filePath))
//{
// foreach (string line in lines)
// {
// byte[] encData_byte = new byte[line.Length];
// encData_byte = System.Text.Encoding.UTF8.GetBytes(line);
// string encodedData = Convert.ToBase64String(encData_byte);
// file.WriteLine(encodedData);
// }
//}
Close();
}catch(IOException){
//Fehlermeldung
}
}
private void proxyAbbr_Click(object sender, RoutedEventArgs e)
{
this.Close();
Close();
}
}
}

View File

@@ -1,6 +1,7 @@
<Window x:Class="BeWo.PwVergessenView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Title="PwVergessenView" Height="135" Width="322" WindowStartupLocation="CenterScreen" WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
@@ -18,7 +19,7 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Red" Margin="3,8,3,3"/>
<Label Grid.Row="1" Grid.Column="0" Margin="3" Content="Benutzername" />
<Label Grid.Row="1" Grid.Column="0" Margin="3" Content="{markup:Translate Benutzername}" />
<TextBox x:Name="BenutzernamenTextBox" Grid.Row="1" Grid.Column="1" MaxLines="1" Margin="3" />
<StackPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Stretch">
<Button Margin="3" Content="Neues Passwort anfordern" Width="150" Click="AnfordernClick" IsDefault="True" VerticalContentAlignment="Center" />

View File

@@ -31,7 +31,7 @@ namespace BeWo
var benutzername = BenutzernamenTextBox.Text;
if (benutzername.Equals(""))
{
MessageBox.Show("Bitte geben Sie einen Benutzernamen an", "Passwort anfordern fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show("Bitte geben Sie einen " + BS.Shared.Translation.Translator.Translate("Benutzernamen") + " an", "Passwort anfordern fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}
@@ -42,7 +42,7 @@ namespace BeWo
{
if(email.Equals("") || !hatEmail)
{
MessageBox.Show("Es konnte kein Benutzer mit diesem Namen gefunden werden oder der Benutzer hat keine E-Mail Adresse hinterlegt\nBitte wenden Sie sich an Ihren Systemadministrator", "Passwort anfordern fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
MessageBox.Show("Es konnte " + BS.Shared.Translation.Translator.Translate("kein Benutzer") + " mit diesem Namen gefunden werden oder " + BS.Shared.Translation.Translator.Translate("der Benutzer") + " hat keine E-Mail Adresse hinterlegt\nBitte wenden Sie sich an " + BS.Shared.Translation.Translator.Translate("Ihren Systemadministrator") + ".", "Passwort anfordern fehlgeschlagen", MessageBoxButton.OK, MessageBoxImage.Information);
return;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Data;
using BeWo.Scheduler.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.Scheduler.Converter
{
public class AptToServRecsIconVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is CustomFieldStorage customFieldStorage)
{
return customFieldStorage.ServiceRecordList.Any() || customFieldStorage.HasServiceRecordEntry ? Visibility.Visible : Visibility.Collapsed;
}
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -11,8 +11,6 @@ namespace BeWo.Scheduler
DateTime End { get; set;}
int LabelId { get; set;}
string Subject { get; set;}
string Description { get; set; }
@@ -26,5 +24,7 @@ namespace BeWo.Scheduler
string RecurrenceInfo { get; set; }
Dictionary<string, object> CustomFields { get; }
long? LabelKey { get; set; }
}
}

View File

@@ -13,6 +13,8 @@ namespace BeWo.Scheduler.Utils
{
public static class AppointmentExtensions
{
#region CustomField Getters
public static CustomFieldStorage GetCustomFieldStorage(this Appointment appointment)
{
return appointment.CustomFields[nameof(CustomFieldStorage)] as CustomFieldStorage;
@@ -37,7 +39,6 @@ namespace BeWo.Scheduler.Utils
{
return appointment.GetCustomFieldStorage()?.IsAllDay ?? false;
}
public static ObservableCollection<Employee2SchedulerAppointmentDC> CF_EmployeeList(this Appointment appointment)
{
@@ -95,8 +96,37 @@ namespace BeWo.Scheduler.Utils
return appointment.GetCustomFieldStorage()?.HasServiceRecordEntry ?? false;
}
public static bool CF_CanBeEdited(this Appointment appointment)
{
return appointment.GetCustomFieldStorage()?.CanBeEdited ?? false;
}
public static long? CF_AbsenceTimeOid(this Appointment appointment)
{
return appointment.GetCustomFieldStorage()?.AbsenceTimeOid;
}
public static bool CF_IsCustomerAbsenceTime(this Appointment appointment)
{
return appointment.GetCustomFieldStorage()?.IsCustomerAbsenceTime ?? false;
}
public static List<ServiceRecordDC> CF_ServiceRecordList(this Appointment appointment)
{
return appointment.GetCustomFieldStorage()?.ServiceRecordList ?? new List<ServiceRecordDC>();
}
public static string CF_CompletedUser(this Appointment appointment)
{
return appointment.GetCustomFieldStorage()?.CompletedUser;
}
#endregion
#region CustomField Setters
public static void CF_IsTask(this Appointment appointment, bool pIsTask)
{
appointment.GetCustomFieldStorage().IsTask = pIsTask;
@@ -117,8 +147,15 @@ namespace BeWo.Scheduler.Utils
appointment.GetCustomFieldStorage().IsAllDay = pIsAllDay;
}
public static void CF_AbsenceTimeOid(this Appointment appointment, long? absenceTimeOid)
{
appointment.GetCustomFieldStorage().AbsenceTimeOid = absenceTimeOid;
}
public static void CF_IsCustomerAbsenceTime(this Appointment appointment, bool isCustomerAbsenceTime)
{
appointment.GetCustomFieldStorage().IsCustomerAbsenceTime = isCustomerAbsenceTime;
}
public static void CF_EmployeeList(this Appointment appointment, ObservableCollection<Employee2SchedulerAppointmentDC> pEmployeeList)
{
@@ -140,15 +177,11 @@ namespace BeWo.Scheduler.Utils
appointment.GetCustomFieldStorage().SupportConceptList = pSupportConceptList;
}
public static void CF_Originator(this Appointment appointment, CompactEmployeeDC pOriginator)
{
appointment.GetCustomFieldStorage().Originator = pOriginator;
}
public static void CF_DueDate(this Appointment appointment, DateTime? pDueDate)
{
appointment.GetCustomFieldStorage().DueDate = pDueDate;
@@ -173,5 +206,17 @@ namespace BeWo.Scheduler.Utils
{
appointment.GetCustomFieldStorage().HasServiceRecordEntry = hasServiceRecordEntry;
}
public static void CF_ServiceRecordList(this Appointment appointment, List<ServiceRecordDC> serviceRecords)
{
appointment.GetCustomFieldStorage().ServiceRecordList = serviceRecords;
}
public static void CF_CompletedUser(this Appointment appointment, string completedUser)
{
appointment.GetCustomFieldStorage().CompletedUser = completedUser;
}
#endregion
}
}

View File

@@ -4,19 +4,19 @@ namespace BeWo.Scheduler.Utils
{
public static class Utils
{
private static readonly Regex indexRegex = new Regex("(?:Index=\"){1}([0-9]+)\"{1}");
private static readonly Regex idRegex = new Regex("(?:Id=\")(([a-z0-9]{8})-{1}([a-z0-9]{4})-{1}([a-z0-9]{4})-{1}([a-z0-9]{4})-{1}([a-z0-9]{12}))(?=\"{1})");
private static readonly Regex _IndexRegex = new Regex("(?:Index=\"){1}([0-9]+)\"{1}");
private static readonly Regex _IdRegex = new Regex("(?:Id=\")(([a-z0-9]{8})-{1}([a-z0-9]{4})-{1}([a-z0-9]{4})-{1}([a-z0-9]{4})-{1}([a-z0-9]{12}))(?=\"{1})");
public static string ExtractIdFromRecurrenceInfo(string pRecurrenceInfo)
{
return pRecurrenceInfo != null ? idRegex.Match(pRecurrenceInfo).Groups[1].Value : null;
return pRecurrenceInfo != null ? _IdRegex.Match(pRecurrenceInfo).Groups[1].Value : null;
}
public static int ExtractIndexFromRecurrenceInfo(string pRecurrenceInfo)
{
if(pRecurrenceInfo != null)
{
var indexString = indexRegex.Match(pRecurrenceInfo).Groups[1].Value;
var indexString = _IndexRegex.Match(pRecurrenceInfo).Groups[1].Value;
var index = !string.IsNullOrEmpty(indexString) ? int.Parse(indexString) : 0;

View File

@@ -40,7 +40,7 @@ namespace BeWo.Scheduler.View
public string TimeEditMask => CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern;
public RecurrenceVisualController RecurrenceVisualController { get; }
protected internal bool IsNewAppointment => Controller == null || Controller.IsNewAppointment;
protected internal bool IsNewAppointment => Controller is null || Controller.IsNewAppointment;
protected bool ShouldShowRecurrence => !Appointment.IsOccurrence && Controller.ShouldShowRecurrenceButton;
@@ -51,8 +51,11 @@ namespace BeWo.Scheduler.View
return false;
}
// TODO: Endzeit und Startzeit werden als Dauer auf das Start-Objekt addiert
if (ShouldShowRecurrence)
{
var rvcStart = RecurrenceVisualController.Start;
RecurrenceVisualController.ApplyRecurrence();
}

View File

@@ -6,11 +6,13 @@
xmlns:view="clr-namespace:BeWo.View"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<Grid Width="Auto" Height="Auto" x:Name="root">
<GroupBox x:Name="rootGroupBox" Style="{StaticResource PopUpWindowStyle}" Header="Mitarbeiterverfügbarkeit">
<GroupBox x:Name="rootGroupBox" Style="{StaticResource PopUpWindowStyle}" Header="{markup:Translate Mitarbeiterverfügbarkeit}">
<Grid Margin="0,3,0,0" Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
@@ -18,7 +20,7 @@
</Grid.RowDefinitions>
<dxg:GridControl DataSource="{Binding Verfuegbarkeiten}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Mitarbeiter" Header="Mitarbeiter" AllowEditing="False" />
<dxg:GridColumn FieldName="Mitarbeiter" Header="{t:Translate MitarbeiterSingular}" AllowEditing="False" />
<dxg:GridColumn FieldName="Ueberstunden" Header="Überstunden" AllowEditing="False">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskUseAsDisplayFormat="True" Mask="########0.00" MaskType="Numeric" />

View File

@@ -1,21 +1,21 @@
<localView:BeWoView x:Class="BeWo.Scheduler.View.NewSchedulerView"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localSchConv="clr-namespace:BeWo.Scheduler.Converter"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
xmlns:dxschint="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:dxscht="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/themekeys"
xmlns:dxscht="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/themekeys"
xmlns:view="clr-namespace:BeWo.Scheduler.View"
xmlns:converter="clr-namespace:BeWo.Converter"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
Loaded="NewSchedulerView_OnLoaded"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ResourceDictionary>
<dxschint:ToolTipVisibilityToVisibilityConverter x:Key="ToolTipVisibilityConverter" />
<localView:BeWoView.Resources>
<ResourceDictionary>
<dxschint:ToolTipVisibilityToVisibilityConverter x:Key="ToolTipVisibilityConverter" />
<dx:BooleanToVisibilityConverter x:Key="boolToVisibilityConverter" />
<localSchConv:CheckBoxConverter x:Key="CheckBoxConverter" />
<localSchConv:NewCalendarBackgroundConverter x:Key="NewCalendarBackgroundConverter" />
@@ -23,11 +23,12 @@
<view:AppointmentToolTipConverter x:Key="AppointmentToolTipConverter" />
<view:WidthAdditionMultiConverter x:Key="WidthAdditionMultiConverter" />
<view:FilterBackgroundConverter x:Key="DickbuttConverter" />
<view:EmployeeBrushConverter x:Key="EmployeeBrushConverter" />
<view:EmployeeBrushConverter x:Key="EmployeeBrushConverter" />
<view:AppointmentBorderZusageConverter x:Key="AppointmentBorderZusageConverter" />
<view:NichtNochEinConverter x:Key="NichtNochEinConverter" />
<!-- Region Appointment Templates -->
<view:InformationButtonVisibilityConverter x:Key="InformationButtonVisibilityConverter" />
<localSchConv:AptToServRecsIconVisibilityConverter x:Key="AptToServRecsIconVisibilityConverter" />
<!-- Region Appointment Templates -->
<!-- Region VerticalAppointmentTemplate -->
<ControlTemplate x:Key="{dxscht:SchedulerViewThemeKey ResourceKey=VerticalAppointmentTemplate, IsThemeIndependent=true}" TargetType="{x:Type dxschint:VisualVerticalAppointmentControl}">
@@ -70,7 +71,7 @@
Visibility="{Binding ViewInfo.View.AppointmentToolTipVisibility, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ToolTipVisibilityConverter}}">
</ToolTip>
</ToolTipService.ToolTip>
<!-- Endregion -->
<!-- Endregion -->
<dxschint:AppointmentBorder x:Name="back" DefaultCornerRadius="4" Opacity="1" ViewInfo="{TemplateBinding ViewInfo}" Background="{Binding Path=ViewInfo.CustomViewInfo, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource AppointmentBorderZusageConverter}}">
<dxschint:AppointmentBorder DefaultCornerRadius="3" DefaultMargin="2" ViewInfo="{TemplateBinding ViewInfo}" Background="{Binding Path=ViewInfo.CustomViewInfo[CustomFieldStorage].BackgroundColor, RelativeSource={RelativeSource TemplatedParent}}" BorderThickness="1" DefaultBorderThickness="1">
<dxschint:AppointmentBorder x:Name="AppointmentBorder" DefaultCornerRadius="2" DefaultMargin="0" ViewInfo="{TemplateBinding ViewInfo}" Background="Transparent">
@@ -106,9 +107,9 @@
<ContentPresenter x:Name="PART_Content" Grid.Column="0" Margin="5,4,5,0" Content="{TemplateBinding ViewInfo}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Grid>
<dxschint:AppointmentBorder x:Name="Selection" DefaultCornerRadius="4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
DefaultBorderThickness="2" ViewInfo="{TemplateBinding ViewInfo}"
BorderBrush="Black"
Visibility="{Binding ViewInfo.Selected, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" />
DefaultBorderThickness="2" ViewInfo="{TemplateBinding ViewInfo}"
BorderBrush="Black"
Visibility="{Binding ViewInfo.Selected, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" />
<!--ResizingHitTest Obere und untere Kanten-->
<Rectangle Fill="Transparent" Height="5" VerticalAlignment="Top" HorizontalAlignment="Stretch"
Visibility="{Binding Path=ViewInfo.CanResizeStart, RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource boolToVisibilityConverter}}"
@@ -145,16 +146,18 @@
<TextBlock Grid.Row="0" Text="{Binding Subject}" TextWrapping="NoWrap" Margin="6,0,0,3" Foreground="{Binding Path=CustomViewInfo[CustomFieldStorage].ForegroundColor}" />
<TextBlock Grid.Row="1" Text="{Binding Location}" TextWrapping="Wrap" Margin="6,0,0,3" Foreground="{Binding Path=CustomViewInfo[CustomFieldStorage].ForegroundColor}" />
</Grid>
<dxschint:AppointmentImagesControl Grid.Column="1" ViewInfo="{Binding}" Orientation="Vertical" SnapsToDevicePixels="True" />
<Image Grid.Row="0" Grid.Column="2" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].HasServiceRecordEntry, Converter={StaticResource BoolVisibilityConverter}}" Source="/BeWoPlaner;component/Ressources/Icons/HistoryDisabled.png" SnapsToDevicePixels="True" Height="20" Width="20" VerticalAlignment="Top" />
<dxschint:AppointmentImagesControl Grid.Column="1" Margin="0,0,4,0" ViewInfo="{Binding}" Orientation="Vertical" SnapsToDevicePixels="True" />
<!-- ToDo: Neuen Converter schreiben, der prüft, ob in der Liste ServiceRecords sind -->
<Image Grid.Row="0" Grid.Column="2" Margin="-4,-2,6,0"
Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage], Converter={StaticResource AptToServRecsIconVisibilityConverter}}" Source="/BeWoPlaner;component/Ressources/Icons/HistoryDisabled.png"
SnapsToDevicePixels="True" Height="20" Width="20" VerticalAlignment="Top" />
</Grid>
</DataTemplate>
<!--Endregion-->
<!-- Region Horizontal -->
<!-- Region Horizontal (Monatsanzeige, etc.) -->
<!-- HorizontalAppointmentTemplate -->
<ControlTemplate x:Key="{dxscht:SchedulerViewThemeKey ResourceKey=HorizontalAppointmentTemplate, IsThemeIndependent=true}"
TargetType="{x:Type dxschint:VisualHorizontalAppointmentControl}">
<ControlTemplate x:Key="{dxscht:SchedulerViewThemeKey ResourceKey=HorizontalAppointmentTemplate, IsThemeIndependent=true}" TargetType="{x:Type dxschint:VisualHorizontalAppointmentControl}">
<dxschint:AppointmentColorConvertControl x:Name="clrConvCtrl" SnapsToDevicePixels="True" ControlColor="{Binding Path=ViewInfo.CustomViewInfo[CustomFieldStorage].BackgroundColor.GradientStops[0].Color, RelativeSource={RelativeSource TemplatedParent}}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="DraggedStates">
@@ -188,60 +191,62 @@
<Grid x:Name="PART_ToolTipContainer" dxsch:SchedulerControl.HitTestType="AppointmentContent" dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}">
<ToolTipService.ToolTip>
<ToolTip Content="{TemplateBinding ViewInfo}" ContentTemplate="{Binding ViewInfo.View.AppointmentToolTipContentTemplate, RelativeSource={RelativeSource TemplatedParent}, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding ViewInfo.View.AppointmentToolTipVisibility, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ToolTipVisibilityConverter}}">
Visibility="{Binding ViewInfo.View.AppointmentToolTipVisibility, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ToolTipVisibilityConverter}}">
</ToolTip>
</ToolTipService.ToolTip>
<dxschint:AppointmentBorder x:Name="back" DefaultCornerRadius="4" Opacity="1" ViewInfo="{TemplateBinding ViewInfo}"
Background="{Binding Path=ViewInfo.CustomViewInfo, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource AppointmentBorderZusageConverter}}">
<dxschint:AppointmentBorder DefaultCornerRadius="3" DefaultMargin="1" ViewInfo="{TemplateBinding ViewInfo}" Background="{Binding Path=ViewInfo.CustomViewInfo[CustomFieldStorage].BackgroundColor, RelativeSource={RelativeSource TemplatedParent}}" DefaultBorderThickness="1">
<dxschint:AppointmentBorder x:Name="AppointmentBorder" DefaultCornerRadius="2" DefaultMargin="0" ViewInfo="{TemplateBinding ViewInfo}" Background="Transparent">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Width="10" CornerRadius="4,0,0,4" HorizontalAlignment="Left" SnapsToDevicePixels="True">
<Border.Background>
<MultiBinding Converter="{StaticResource EmployeeBrushConverter}">
<Binding Path="AllItems" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="ViewInfo.CustomViewInfo" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type dxschint:AppointmentBorder}}" />
<Binding Path="IsEmployeeBrushVisible" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</Border.Background>
</Border>
<Border SnapsToDevicePixels="True" Background="Transparent" Grid.Column="1" />
<Border Width="10" CornerRadius="0,4,4,0" HorizontalAlignment="Right" SnapsToDevicePixels="True" Grid.Column="2">
<Border.Background>
<MultiBinding Converter="{StaticResource DickbuttConverter}">
<Binding Path="AllItems" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="ViewInfo.CustomViewInfo" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type dxschint:AppointmentBorder}}" />
</MultiBinding>
</Border.Background>
</Border>
</Grid>
</dxschint:AppointmentBorder>
Background="{Binding Path=ViewInfo.CustomViewInfo, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource AppointmentBorderZusageConverter}}">
<dxschint:AppointmentBorder DefaultCornerRadius="3" DefaultMargin="1" ViewInfo="{TemplateBinding ViewInfo}" Background="{Binding Path=ViewInfo.CustomViewInfo[CustomFieldStorage].BackgroundColor, RelativeSource={RelativeSource TemplatedParent}}" DefaultBorderThickness="1">
<dxschint:AppointmentBorder x:Name="AppointmentBorder" DefaultCornerRadius="2" DefaultMargin="0" ViewInfo="{TemplateBinding ViewInfo}" Background="Transparent">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Width="10" CornerRadius="4,0,0,4" HorizontalAlignment="Left" SnapsToDevicePixels="True">
<Border.Background>
<MultiBinding Converter="{StaticResource EmployeeBrushConverter}">
<Binding Path="AllItems" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="ViewInfo.CustomViewInfo" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type dxschint:AppointmentBorder}}" />
<Binding Path="IsEmployeeBrushVisible" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</Border.Background>
</Border>
<Border SnapsToDevicePixels="True" Background="Transparent" Grid.Column="1" />
<!-- TODO: Mehrere Farben für Ressourcen anzeigen -->
<Border Width="10" CornerRadius="0,4,4,0" HorizontalAlignment="Right" SnapsToDevicePixels="True" Grid.Column="2">
<Border.Background>
<MultiBinding Converter="{StaticResource DickbuttConverter}">
<Binding Path="AllItems" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="ViewInfo.CustomViewInfo" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type dxschint:AppointmentBorder}}" />
</MultiBinding>
</Border.Background>
</Border>
</Grid>
</dxschint:AppointmentBorder>
</dxschint:AppointmentBorder>
</dxschint:AppointmentBorder>
<Grid x:Name="ContentContainer" Margin="0,0,0,3">
<ContentPresenter x:Name="PART_Content" Grid.Row="0" Margin="3,0,3,0" Content="{TemplateBinding ViewInfo}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Grid>
<!-- Rahmen bei ausgewähltem Termin -->
<dxschint:AppointmentBorder x:Name="Selection" DefaultCornerRadius="4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
DefaultBorderThickness="2" ViewInfo="{TemplateBinding ViewInfo}"
BorderBrush="Black"
Visibility="{Binding ViewInfo.Selected, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" />
DefaultBorderThickness="2" ViewInfo="{TemplateBinding ViewInfo}"
BorderBrush="Black"
Visibility="{Binding ViewInfo.Selected, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" />
<Rectangle Fill="Transparent" Width="5" HorizontalAlignment="Left"
Visibility="{Binding ViewInfo.CanResizeStart, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}"
IsHitTestVisible="True"
dxsch:SchedulerControl.HitTestType="AppointmentResizingLeftEdge"
dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}"
Cursor="SizeWE">
Visibility="{Binding ViewInfo.CanResizeStart, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}"
IsHitTestVisible="True"
dxsch:SchedulerControl.HitTestType="AppointmentResizingLeftEdge"
dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}"
Cursor="SizeWE">
</Rectangle>
<Rectangle Fill="Transparent" Width="5" HorizontalAlignment="Right" IsHitTestVisible="True"
Visibility="{Binding Path=ViewInfo.CanResizeEnd, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}"
dxsch:SchedulerControl.HitTestType="AppointmentResizingRightEdge"
dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}"
Cursor="SizeWE">
Visibility="{Binding Path=ViewInfo.CanResizeEnd, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}"
dxsch:SchedulerControl.HitTestType="AppointmentResizingRightEdge"
dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}"
Cursor="SizeWE">
</Rectangle>
</Grid>
</dxschint:AppointmentColorConvertControl>
@@ -257,6 +262,7 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -270,18 +276,23 @@
dxschint:VerticalAppointmentContentPanel.AlwaysOnNewRow="True" TextWrapping="Wrap" Margin="11,6,0,0"
Foreground="{Binding Path=CustomViewInfo[CustomFieldStorage].ForegroundColor}" />
<dxschint:AppointmentImagesControl Grid.Row="0" Grid.Column="4" Margin="0,4,10,0" ViewInfo="{Binding}" Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" />
<dxschint:AppointmentImagesControl Grid.Row="0" Grid.Column="4" Margin="0,4,10,0" ViewInfo="{Binding}"
Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" />
<Image Grid.Row="0" Grid.Column="5" Margin="0,4,10,0"
Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage], Converter={StaticResource AptToServRecsIconVisibilityConverter}}"
Source="/BeWoPlaner;component/Ressources/Icons/HistoryDisabled.png" SnapsToDevicePixels="True" Height="20" Width="20" VerticalAlignment="Top" />
</Grid>
</dxschint:HorizontalAppointmentContentPanel>
</DataTemplate>
<!-- HorizontalAppointmentContentTemplate wird auf ganztägige Termine angewandt -->
<!-- HorizontalAppointmentContentTemplate wird auf ganztägige Termine und Abwesenheiten angewandt -->
<DataTemplate x:Key="{dxscht:SchedulerViewThemeKey ResourceKey=HorizontalAppointmentLongerThanADayContentTemplate, IsThemeIndependent=true}">
<Grid SnapsToDevicePixels="True" HorizontalAlignment="Stretch" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
<dxschint:AppointmentContinueStartDateControl ViewInfo="{Binding}" Margin="12, 4, 0, 2" Foreground="{Binding Path=CustomViewInfo[CustomFieldStorage].ForegroundColor}" VerticalAlignment="Center" />
@@ -290,12 +301,15 @@
<dxschint:HorizontalAppointmentContentPanel Grid.Column="1" ClipToBounds="True" VerticalAlignment="Center" Margin="2,0,2,0">
<dxschint:AppointmentImagesControl HorizontalAlignment="Center" ViewInfo="{Binding}" Orientation="Horizontal" />
<TextBlock Text="{Binding Subject}" VerticalAlignment="Center" TextWrapping="Wrap" Foreground="{Binding Path=CustomViewInfo[CustomFieldStorage].ForegroundColor}" Margin="8, 2, 0, 0" />
</dxschint:HorizontalAppointmentContentPanel>
</dxschint:HorizontalAppointmentContentPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center">
<dxschint:HorizontalAppointmentEndClockControl ViewInfo="{Binding}" Margin="0, 4, 12, 2" VerticalAlignment="Center" />
<dxschint:AppointmentContinueEndDateControl ViewInfo="{Binding}" Margin="0, 4, 12, 2" Foreground="{Binding Path=CustomViewInfo[CustomFieldStorage].ForegroundColor}" VerticalAlignment="Center" />
</StackPanel>
</Grid>
<Image Grid.Column="3" Grid.Row="0" Margin="0,0,4,0"
Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage], Converter={StaticResource AptToServRecsIconVisibilityConverter}}"
Source="/BeWoPlaner;component/Ressources/Icons/HistoryDisabled.png" SnapsToDevicePixels="True" Height="17" Width="17" VerticalAlignment="Center" />
</Grid>
</DataTemplate>
<!-- Endregion-->
@@ -309,6 +323,8 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -326,7 +342,7 @@
<TextBlock Text="{Binding Path=EndTimeText}" />
<TextBlock Text=" Uhr" Margin="0,0,4,0" />
</StackPanel>
<TextBlock Grid.Column="1" Text="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTip}" TextWrapping="Wrap" MaxWidth="{Binding ElementName=Scheduler, Path=ActualWidth}" />
<TextBlock Grid.Column="1" Text="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTip}" TextWrapping="Wrap" MaxWidth="{Binding Path=ActualWidth, Source={x:Reference Scheduler}}" />
</Grid>
<Separator Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Height="1" Background="DimGray" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipTrennstrichVisibility}" />
@@ -334,7 +350,7 @@
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Path=CustomViewInfo, Converter={StaticResource AppointmentToolTipConverter}, ConverterParameter=Ressourcen}"
Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipResourcesVisibility}" />
<TextBlock Margin="0,0,3,0" Grid.Row="3" Grid.Column="0" Text="{markup:Translate Mitarbeiter:}" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipEmployeesVisibility}" />
<TextBlock Margin="0,0,3,0" Grid.Row="3" Grid.Column="0" Text="{t:Translate MitarbeiterPlural:}" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipEmployeesVisibility}" />
<ListView Margin="-6,-3,0,0" Grid.Row="3" Background="Transparent" BorderThickness="0" ItemsSource="{Binding Path=CustomViewInfo[CustomFieldStorage].EmployeeList}" Grid.Column="1" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipEmployeesVisibility}" Name="ToolTipEmployeeList">
<ListView.ItemsPanel>
@@ -352,7 +368,6 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!--<Border Grid.Column="0" Background="{Binding Converter={StaticResource NichtNochEinConverter}}" BorderThickness="1" BorderBrush="DimGray" Width="5" Margin="0,0,3,0" />-->
<Border Grid.Column="0" Background="{Binding Converter={StaticResource NichtNochEinConverter}}" BorderThickness="1" BorderBrush="DimGray" Width="5" Margin="0,0,3,0" Visibility="{Binding Path=DataContext.CustomViewInfo[CustomFieldStorage].ToolTipZusageVisibility, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}}" />
<TextBlock Grid.Column="1" Foreground="DimGray" Text="{Binding Converter={StaticResource NichtNochEinConverter}, ConverterParameter=GibName}" />
</Grid>
@@ -363,7 +378,11 @@
<TextBlock Margin="0,0,3,0" Grid.Row="4" Grid.Column="0" Text="{markup:Translate Klienten:}" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipCustomersVisibility}" />
<TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding Path=CustomViewInfo, Converter={StaticResource AppointmentToolTipConverter}, ConverterParameter=Klienten}"
Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].ToolTipCustomersVisibility}" />
</Grid>
<!-- Separator und "Angelegt von: " mit dem Namen des Originators -->
<Separator Grid.Row="5" Grid.ColumnSpan="2" Height="1" Background="DimGray" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock Margin="0,0,3,0" Grid.Row="6" Grid.Column="0" Text="Angelegt von:" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock Margin="0,0,3,0" Grid.Row="6" Grid.Column="1" Text="{Binding Path=CustomViewInfo[CustomFieldStorage].Originator}" Visibility="{Binding Path=CustomViewInfo[CustomFieldStorage].CanBeEdited, Converter={StaticResource BoolVisibilityConverter}}" />
</Grid>
</DataTemplate>
<!-- DragDropHoverTimeCellsStyle -->
@@ -451,7 +470,6 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MitarbeiterTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
@@ -557,11 +575,11 @@
</Button>
<StackPanel x:Name="DayViewOptions" Orientation="Horizontal" Visibility="Visible">
<Label VerticalAlignment="Center" Content="anz Tage:" />
<dxe:SpinEdit MaxValue="100" VerticalAlignment="Center" x:Name="SpinEditDayViewDayCount" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False" EditValueChanged="SpinEditDayViewDayCount_EditValueChanged" />
<dxe:SpinEdit MaxValue="100" LostFocus="SpinEditDayViewDayCount_OnLostFocus" VerticalAlignment="Center" x:Name="SpinEditDayViewDayCount" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False" EditValueChanged="SpinEditDayViewDayCount_EditValueChanged" />
</StackPanel>
<StackPanel x:Name="TimelineViewOptions" Orientation="Horizontal" Visibility="Collapsed">
<Label VerticalAlignment="Center" Content="anz Tage:" />
<dxe:SpinEdit MaxValue="100" VerticalAlignment="Center" x:Name="SpinEditTimelineViewDayCount" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False" EditValueChanged="SpinEditTimelineViewDayCount_EditValueChanged" />
<dxe:SpinEdit MaxValue="100" LostFocus="SpinEditTimelineViewDayCount_OnLostFocus" VerticalAlignment="Center" x:Name="SpinEditTimelineViewDayCount" AllowNullInput="False" Height="23" Width="50" IsFloatValue="False" EditValueChanged="SpinEditTimelineViewDayCount_EditValueChanged" />
</StackPanel>
<Button Click="ReloadButton_OnClick" Margin="5,1,1,1" ToolTip="Kalender aktualisieren" Width="24" Height="24">
<Button.Template>
@@ -578,14 +596,15 @@
</ControlTemplate>
</Button.Template>
</Button>
<Button Click="ExportButton_OnClick" Margin="5,1,1,1" ToolTip="Exportieren" Width="24" Height="24" Visibility="Collapsed"/>
</StackPanel>
<Grid Grid.Column="2" Grid.Row="0" Margin="6,0,0,0" VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="0" Content="{markup:Translate Mitarbeiterfarben}" x:Name="MitarbeiterfarbenEinAusCheckBox" Checked="MitarbeiterfarbenEinAusCheckBox_OnChecked"
Unchecked="MitarbeiterfarbenEinAusCheckBox_OnChecked"
@@ -593,13 +612,13 @@
<CheckBox Grid.Column="1" Content="Abwesenheiten" Margin="10,0,0,0" x:Name="AbwesenheitenEinAusCheckBox" Checked="AbwesenheitenEinAusCheckBox_OnChecked"
Unchecked="AbwesenheitenEinAusCheckBox_OnChecked"
IsChecked="{Binding Path=IsAbsenceTimeVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type view:NewSchedulerView}}, Mode=TwoWay}" />
<CheckBox Grid.Column="2" Margin="10,0,0,0" VerticalAlignment="Center" Content="Aufgaben" x:Name="ShowTasksCheckBox" Click="ShowTasksCheckBox_OnClick" />
<TextBlock IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}" Grid.Column="0" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Center">
<CheckBox Grid.Column="2" VerticalAlignment="Center" Margin="10,0,0,0" Content="Aufgaben" x:Name="ShowTasksCheckBox" Click="ShowTasksCheckBox_OnClick" />
<TextBlock IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10,0,0,0">
<Hyperlink RequestNavigate="ShowAppointmentRequests" NavigateUri="#" IsEnabled="{Binding Enabled, UpdateSourceTrigger=PropertyChanged}">
<TextBlock Text="{Binding Requests, UpdateSourceTrigger=PropertyChanged}" />
</Hyperlink>
</TextBlock>
<CheckBox Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Nur private Termine anzeigen" x:Name="ShowPrivateAppointmentsCheckBox" Click="ShowPrivateAppointmentsCheckBox_OnClick" />
<CheckBox Grid.Column="4" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Nur private Termine anzeigen" x:Name="ShowPrivateAppointmentsCheckBox" Click="ShowPrivateAppointmentsCheckBox_OnClick" />
</Grid>
<Border Grid.Row="0" Grid.Column="3" Width="{Binding ElementName=RightExpanderButton, Path=ActualWidth}" />
<Border Grid.Row="0" Grid.Column="4" Width="{Binding ElementName=DateNavigator, Path=ActualWidth}">
@@ -626,9 +645,10 @@
<CheckBox x:Name="ZeigeNurMeineTermineCheckBox" Grid.Row="0" Content="Nur meine Termine anzeigen" Margin="3, 3, 3, 3" IsChecked="{Binding Path=ZeigeNurMeineTermine, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Checked="NurMeineTermineEinAusCheckBox_OnChecked" Unchecked="NurMeineTermineEinAusCheckBox_OnChecked" />
<UniformGrid Grid.Column="0" x:Name="AuswahlGrid" Rows="2" Columns="1" Width="270" Grid.Row="1">
<TabControl SelectionChanged="Selector_OnSelectionChanged" x:Name="TabControl">
<TabItem Header="{markup:Translate Mitarbeiter}" Style="{StaticResource MitarbeiterTabItemStyle}" x:Name="MitarbeiterTabItem">
<TabItem Header="{t:Translate MitarbeiterPlural}" Style="{StaticResource MitarbeiterTabItemStyle}" x:Name="MitarbeiterTabItem">
<Grid x:Name="MitarbeiterTabGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
@@ -638,8 +658,9 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox Grid.Column="0" Content="Alle auswählen" Margin="3" x:Name="AlleMitarbeiterCB" Click="AlleMitarbeiterCB_OnClick" />
<ToggleButton Margin="3" Grid.Row="0" Grid.Column="1" Height="17" Width="36" Style="{StaticResource LupenToggleButtonStyle}" x:Name="MeinTB" Checked="MeinTB_OnChecked" Unchecked="MeinTB_OnChecked" />
<Grid x:Name="MitarbeiterSuchGrid" Margin="0,1,0,3" Grid.Column="0" Grid.ColumnSpan="2" Background="Black" Grid.Row="1" Visibility="Collapsed">
<CheckBox Grid.Column="1" Grid.Row="0" Content="Meine Teams" Click="MyTeamsCheckBox_OnClick" Margin="3" x:Name="TeamMembersCheckBox" HorizontalAlignment="Left" />
<ToggleButton Margin="3" Grid.Row="0" Grid.Column="2" Height="17" Width="36" Style="{StaticResource LupenToggleButtonStyle}" x:Name="MeinTB" Checked="MeinTB_OnChecked" Unchecked="MeinTB_OnChecked" />
<Grid x:Name="MitarbeiterSuchGrid" Margin="0,1,0,3" Grid.Column="0" Grid.ColumnSpan="3" Background="Black" Grid.Row="1" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
@@ -647,7 +668,7 @@
<Label Content="Suche:" Grid.Column="0" Foreground="White" />
<TextBox x:Name="MitarbeiterSuchTextBox" Grid.Column="1" TextChanged="TextBoxEmployees_OnTextChanged" Margin="3" VerticalContentAlignment="Center" />
</Grid>
<ListView Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="2" Margin="0" ItemsSource="{Binding Path=GefilterteMitarbeiter, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Background="Transparent" BorderThickness="0">
<ListView Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="2" Margin="0" ItemsSource="{Binding Path=GefilterteMitarbeiter, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Background="Transparent" BorderThickness="0" PreviewMouseRightButtonDown="ListView_PreviewMouseRightButtonDown">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -671,16 +692,20 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="{Binding Path=DetailDescription}" PreviewMouseDown="MitarbeiterListe_OnClick" Checked="ListItemCheckedEvent" Unchecked="ListItemCheckedEvent" VerticalAlignment="Center" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox Content="{Binding Path=DetailDescription}" PreviewMouseLeftButtonDown="MitarbeiterListe_OnClick" Checked="ListItemCheckedEvent" Unchecked="ListItemCheckedEvent" VerticalAlignment="Center" FontSize="11" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CheckBoxConverter}" ConverterParameter="Mitarbeiter">
<Binding Path="EmployeeOid" Mode="OneWay" />
<Binding Path="SelectedEmployees" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" />
<Binding Path="SelectedEmployees" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"
RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<Border Width="15" Height="15" Grid.Column="1" Background="{Binding Path=FilterableBrush}" CornerRadius="3" />
<Button x:Name="btn_showEmployeeInformation" Width="15" Height="15" Grid.Column="2" Margin="5 0 5 0" Click="btn_showEmployeeInformation_Click" FontFamily="Microsoft Sans Serif" Content="i" Visibility="{Binding Converter={StaticResource InformationButtonVisibilityConverter}}"/>
</Grid>
</Border>
</Grid>
@@ -736,8 +761,8 @@
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
@@ -745,7 +770,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox Grid.Row="0" Grid.Column="0" Content="Alle auswählen" Margin="3" x:Name="AlleKlientenCB" Click="AlleKlientennCB_OnClick" HorizontalAlignment="Left" HorizontalContentAlignment="Center" />
<CheckBox Grid.Row="0" Grid.Column="1" Content="{markup:Translate Nur meine Klienten}" Margin="3" x:Name="NurMeineKlientenCB" HorizontalAlignment="Right" Click="NurEigeneKlientenAnzeigen" IsThreeState="False" HorizontalContentAlignment="Center" />
<CheckBox Grid.Row="0" Grid.Column="1" Content="{markup:Translate Nur meine Klienten}" Margin="3" x:Name="NurMeineKlientenCB" HorizontalAlignment="Left" Click="NurEigeneKlientenAnzeigen" IsThreeState="False" HorizontalContentAlignment="Center" />
<ToggleButton Margin="3" Grid.Row="0" Grid.Column="2" Height="17" Width="36" Style="{StaticResource LupenToggleButtonStyle}" x:Name="MeinTB2" Checked="MeinTB2_OnChecked" Unchecked="MeinTB2_OnChecked" />
<Grid x:Name="KlientenSuchGrid" Margin="0,1,0,3" Grid.Column="0" Grid.ColumnSpan="3" Background="Black" Grid.Row="1" Visibility="Collapsed">
<Grid.ColumnDefinitions>
@@ -777,6 +802,10 @@
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="{Binding Path=DetailDescription}" PreviewMouseDown="KlientenListe_OnClick" Checked="ListItemCheckedEvent" Unchecked="ListItemCheckedEvent" VerticalAlignment="Center" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CheckBoxConverter}" ConverterParameter="Klienten">
@@ -785,6 +814,8 @@
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<Button x:Name="btn_showCustomerInformation" Width="15" Height="15" Grid.Column="1" Margin="5 0 5 0" Click="btn_showCustomerInformation_Click" FontFamily="Microsoft Sans Serif" Content="i" Visibility="{Binding Converter={StaticResource InformationButtonVisibilityConverter}}"/>
</Grid>
</Border>
</Grid>
@@ -853,7 +884,8 @@
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CheckBoxConverter}" ConverterParameter="Ressourcen" UpdateSourceTrigger="PropertyChanged" NotifyOnSourceUpdated="True">
<Binding Path="ResourceOid" Mode="OneWay" />
<Binding Path="SelectedResources" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" />
<Binding Path="SelectedResources" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"
RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
@@ -916,7 +948,9 @@
<dxsch:SchedulerControl Grid.Column="2" x:Name="Scheduler" dx:ThemeManager.ThemeName="Office2010Black"
FormCustomizationUsingMVVMLocal="False"
InplaceEditorShowing="Scheduler_OnInplaceEditorShowing"
GroupType="None" AppointmentDrag="Scheduler_OnAppointmentDrag"
GroupType="None"
AppointmentDrag="Scheduler_OnAppointmentDrag"
AppointmentDrop="Scheduler_OnAppointmentDrop"
VerticalAlignment="Stretch"
EditAppointmentFormShowing="Scheduler_EditAppointmentFormShowing"
EditRecurrentAppointmentFormShowing="SchedulerControl_EditRecurrentAppointmentFormShowing"
@@ -960,7 +994,7 @@
End="End"
Subject="Subject"
Description="Description"
Label="LabelId"
Label="LabelKey"
AllDay="AllDay"
ResourceId="ResourceId"
RecurrenceInfo="RecurrenceInfo"
@@ -985,9 +1019,9 @@
<dxb:RemoveBarItemAndLinkAction ItemName="{x:Static dxsch:SchedulerMenuItemName.NewRecurringAppointment}" />
<dxb:RemoveBarItemAndLinkAction ItemName="{x:Static dxsch:SchedulerMenuItemName.NewRecurringEvent}" />
<dxb:AddBarItemAction>
<!--<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="AufgabeAnlegenButtonItem" Content="{markup:Translate Neue Aufgabe}" ItemClick="AufgabeAnlegen_OnItemClick" />
</dxb:AddBarItemAction>
</dxb:AddBarItemAction>-->
<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="MitarbeiterVerfuegbarkeitPruefenButtonItem"
@@ -1000,19 +1034,19 @@
<dxsch:SchedulerControl.AppointmentMenuCustomizations>
<dxb:RemoveBarItemAndLinkAction ItemName="{x:Static dxsch:SchedulerMenuItemName.RestoreOccurrence}" />
<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="RestoreAppointmentButtonItem" Content="Serientermin wiederherstellen" ItemClick="RestoreAppointmentButtonItem_OnItemClick" />
<dxb:BarButtonItem Name="RestoreAppointmentButtonItem" Content="Serientermin wiederherstellen" ItemClick="RestoreAppointmentButtonItem_OnItemClick" />
</dxb:AddBarItemAction>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorTop"></dxb:BarItemSeparator>
<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="ZusagenButtonItem" Content="Zusagen" ItemClick="ZusagenButtonItem_OnItemClick" />
<dxb:BarButtonItem Name="ZusagenButtonItem" Content="Zusagen" ItemClick="ZusagenButtonItem_OnItemClick" />
</dxb:AddBarItemAction>
<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="MitVorbehaltButtonItem" Content="Mit Vorbehalt zusagen" ItemClick="MitVorbehaltButtonItem_OnItemClick" />
<dxb:BarButtonItem Name="MitVorbehaltButtonItem" Content="Mit Vorbehalt zusagen" ItemClick="MitVorbehaltButtonItem_OnItemClick" />
</dxb:AddBarItemAction>
<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="AbsagenButtonItem" Content="Absagen" ItemClick="AbsagenButtonItem_OnItemClick" />
<dxb:BarButtonItem Name="AbsagenButtonItem" Content="Absagen" ItemClick="AbsagenButtonItem_OnItemClick" />
</dxb:AddBarItemAction>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorBottom"></dxb:BarItemSeparator>
<dxb:BarItemSeparator Name="ZusagenStackSeperatorBottom"></dxb:BarItemSeparator>
<dxb:AddBarItemAction>
<dxb:BarButtonItem Name="ZeiterfassungButtonItem" Content="{markup:Translate In Zeiterfassung übertragen}" ItemClick="ZeiterfassungButtonItem_OnItemClick" />
</dxb:AddBarItemAction>
@@ -1039,7 +1073,7 @@
</dxe:DateNavigator>
</Grid>
<Border Grid.Row="0" Grid.RowSpan="2" x:Name="PopupContent" />
<Border Grid.Row="0" Grid.RowSpan="2" x:Name="PopupContent" Margin="0,-10,0,10" />
<Popup Grid.Row="0" StaysOpen="True" Placement="MousePoint" Width="290" Height="80" Closed="popup_Closed" Opened="popup_Opened" x:Name="DeleteAppointmentsPopup">
<Grid Background="{StaticResource ControlBackground}" Margin="2,2,2,2">
<Grid.ColumnDefinitions>

File diff suppressed because it is too large Load Diff

View File

@@ -147,14 +147,25 @@
<Label Grid.Column="0" Grid.Row="7" Margin="3" Content="Notiz"/>
<TextBox Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="3" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Disabled" Margin="3" TextWrapping="Wrap" Text="{Binding Path=SelektierterTermin.Description}" IsReadOnly="True" />
<StackPanel x:Name="ZusagenStack" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" Orientation="Horizontal" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=ZusagenStack}">
<Button Margin="3" Content="Zusagen" Click="Zusagen_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Mit Vorbehalt" Click="MitVorbehalt_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Absagen" Click="Absagen_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
</StackPanel>
<Button x:Name="OkButton" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="3" Content="OK" Click="OK_OnClick" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=OKBtn}" />
<Grid Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="AlleBestaetigen" Grid.Column="0" Content="Alle bestätigen" Margin="3" Click="ButtonBase_OnClick" Width="100" />
<StackPanel x:Name="ZusagenStack" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=ZusagenStack}">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button Margin="3" Content="Zusagen" Click="Zusagen_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Mit Vorbehalt" Click="MitVorbehalt_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Absagen" Click="Absagen_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
</StackPanel>
</StackPanel>
</Grid>
<Button x:Name="OkButton" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="3" Width="100" Content="OK" Click="OK_OnClick" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=OKBtn}" />
</Grid>
</Grid>
<Button Grid.Row="1" x:Name="CloseBtn" Content="Schließen" HorizontalAlignment="Right" Margin="3" Click="CloseButton_Click" />
<Button Grid.Row="1" x:Name="CloseBtn" Content="Schließen" HorizontalAlignment="Right" Margin="3" Width="100" Click="CloseButton_Click" />
</Grid>
</dx:DXWindow>

View File

@@ -14,7 +14,6 @@ using BeWo.ServiceProxy;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using DevExpress.Xpf.Editors;
@@ -25,6 +24,8 @@ namespace BeWo.Scheduler.View
{
public partial class RequestAnswerView : INotifyPropertyChanged
{
private bool raiseChangeEvent = true;
public static readonly RoutedEvent ParticipationChangedEvent = EventManager.RegisterRoutedEvent(nameof(ParticipationChanged), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(RequestAnswerView));
public event RoutedEventHandler ParticipationChanged
{
@@ -48,13 +49,13 @@ namespace BeWo.Scheduler.View
public ObservableCollection<IBeWoAppointment> OffeneTermine { get; set; }
private IBeWoAppointment _selektierterTermin;
private IBeWoAppointment _SelektierterTermin;
public IBeWoAppointment SelektierterTermin
{
get => _selektierterTermin;
get => _SelektierterTermin;
set
{
_selektierterTermin = value;
_SelektierterTermin = value;
OnPropertyChanged(nameof(SelektierterTermin));
}
}
@@ -68,7 +69,7 @@ namespace BeWo.Scheduler.View
var item = (SchedulerAppointmentVM) beWoAppointment;
foreach(var relation in item.EmployeeList.Where(emp => emp.IsPChanged && emp.ParticipationAnswer != ParticipationAnswer.Offen && emp.ParticipationAnswer != ParticipationAnswer.Verstrichen && !emp.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)))
{
if(statusUpdatesAsAppointments.All(a => a.LabelId != relation.Employee2SchedulerAppointmentOid))
if(statusUpdatesAsAppointments.All(a => a.LabelKey != relation.Employee2SchedulerAppointmentOid))
{
if(relation.Employee2SchedulerAppointmentOid != null)
{
@@ -88,11 +89,11 @@ namespace BeWo.Scheduler.View
private static SchedulerAppointmentVM BuildNewVMFromOldVM(SchedulerAppointmentVM item, long emp2AppOid)
{
var customFieldStorage = (CustomFieldStorage) item.CustomFields[nameof(CustomFieldStorage)];
var dc = item.CommitToDataContract();
return new SchedulerAppointmentVM(new SchedulerAppointmentDC
{
SchedulerAppointmentOid = item.CommitToDataContract().SchedulerAppointmentOid,
NewSchedulerAppointmentVersion = item.CommitToDataContract().NewSchedulerAppointmentVersion,
SchedulerAppointmentOid = dc.SchedulerAppointmentOid,
NewSchedulerAppointmentVersion = dc.NewSchedulerAppointmentVersion,
IsPrivate = item.IsPrivate,
RecurrenceInfo = item.RecurrenceInfo,
Type = item.EventType,
@@ -108,9 +109,13 @@ namespace BeWo.Scheduler.View
Status = 1,
Originator = customFieldStorage.Originator,
IsTeilnahmeBestaetigung = true,
SupportConceptList = customFieldStorage.SupportConceptList
SupportConceptList = customFieldStorage.SupportConceptList,
ActivationType = dc.ActivationType,
ServiceRecordList = customFieldStorage.ServiceRecordList
})
{ CustomFields = item.CustomFields, LabelId = Convert.ToInt32(emp2AppOid)};
{
CustomFields = item.CustomFields, LabelKey = emp2AppOid
};
}
private void CloseButton_Click(object sender, RoutedEventArgs e)
@@ -153,6 +158,7 @@ namespace BeWo.Scheduler.View
});
ToggleControls();
raiseChangeEvent = true;
ServiceFacade.DoResourceServiceAsync(s => s.UpdateSchedulerAppointments(new List<SchedulerAppointmentDC> { termin.CommitToDataContract() }), UpdateView);
}
@@ -175,25 +181,32 @@ namespace BeWo.Scheduler.View
vm.UpdateCustomFields();
if (vm.LabelId == 0)
if (vm.LabelKey is null)
{
this.Dispatch(() =>
{
OffeneTermine = OffeneTermine.Where(w => !w.Equals(vm)).ToObservableCollection();
OnPropertyChanged(nameof(OffeneTermine));
RaiseParticipationChangedEventEvent();
if (raiseChangeEvent)
{
OnPropertyChanged(nameof(OffeneTermine));
RaiseParticipationChangedEventEvent();
}
});
}
else
{
var test = (SchedulerAppointmentVM) OffeneTermine.FirstOrDefault(f => dc.EmployeeList.Any(a => a.Employee2SchedulerAppointmentOid.HasValue && a.Employee2SchedulerAppointmentOid.Value == f.LabelId));
var test = (SchedulerAppointmentVM) OffeneTermine.FirstOrDefault(f => dc.EmployeeList.Any(a => a.Employee2SchedulerAppointmentOid.HasValue && a.Employee2SchedulerAppointmentOid.Value == f.LabelKey));
this.Dispatch(() =>
{
OffeneTermine = OffeneTermine.Where(w => !w.Equals(test)).ToObservableCollection();
OnPropertyChanged(nameof(OffeneTermine));
if (raiseChangeEvent)
{
OnPropertyChanged(nameof(OffeneTermine));
RaiseParticipationChangedEventEvent();
RaiseParticipationChangedEventEvent();
}
});
}
}
@@ -205,27 +218,35 @@ namespace BeWo.Scheduler.View
ToggleControls();
if (OffeneTermine.Count == 0 && OTListView.Items.Count == 0)
{
Close();
}
else
{
OTListView.SelectedIndex = 0;
}
if (!raiseChangeEvent)
{
//Close();
}
else
{
if (OffeneTermine.Count == 0 && OTListView.Items.Count == 0)
{
Close();
}
else
{
OTListView.SelectedIndex = 0;
}
}
});
}
private void OK_OnClick(object sender, RoutedEventArgs e)
{
SelektierterTermin = OTListView.SelectedItem as IBeWoAppointment;
if(_selektierterTermin != null && _selektierterTermin.Start < DateTime.Now && _selektierterTermin.End < DateTime.Now)
if(_SelektierterTermin != null && _SelektierterTermin.Start < DateTime.Now && _SelektierterTermin.End < DateTime.Now)
{
if(SelektierterTermin != null && BeWoApp.LoggedOnEmployee.EmployeeOid.HasValue)
{
var customFieldStorage = (CustomFieldStorage) SelektierterTermin.CustomFields[nameof(CustomFieldStorage)];
var emp2App = customFieldStorage.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelId) ??
var emp2App = customFieldStorage.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelKey) ??
customFieldStorage.EmployeeList.ToList().Find(f => f.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value);
if(emp2App.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid.Value)
@@ -238,22 +259,24 @@ namespace BeWo.Scheduler.View
}
ToggleControls();
raiseChangeEvent = true;
ServiceFacade.DoResourceServiceAsync(s => s.UpdateSchedulerAppointments(new List<SchedulerAppointmentDC> { ((SchedulerAppointmentVM)SelektierterTermin).DataContract }), UpdateView);
return;
}
if(SelektierterTermin == null || SelektierterTermin.LabelId <= 0)
if(SelektierterTermin?.LabelKey is null)
{
return;
}
var customFieldStorage2 = (CustomFieldStorage)SelektierterTermin.CustomFields[nameof(CustomFieldStorage)];
customFieldStorage2.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelId).IsPC_CheckedTs = DateTime.Now;
customFieldStorage2.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelId).IsPChanged = false;
customFieldStorage2.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelKey).IsPC_CheckedTs = DateTime.Now;
customFieldStorage2.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == SelektierterTermin.LabelKey).IsPChanged = false;
ToggleControls();
raiseChangeEvent = true;
ServiceFacade.DoResourceServiceAsync(s => s.UpdateSchedulerAppointments(new List<SchedulerAppointmentDC> {((SchedulerAppointmentVM) SelektierterTermin).DataContract}), UpdateView);
}
@@ -267,7 +290,9 @@ namespace BeWo.Scheduler.View
ZusagenStack.IsEnabled = !ZusagenStack.IsEnabled;
OkButton.IsEnabled = !OkButton.IsEnabled;
CloseBtn.IsEnabled = !CloseBtn.IsEnabled;
}
AlleBestaetigen.IsEnabled = !AlleBestaetigen.IsEnabled;
}
private void PopupBaseEdit_OnPopupOpening(object sender, OpenPopupEventArgs e)
{
@@ -279,7 +304,57 @@ namespace BeWo.Scheduler.View
{
BeWoApp.MainControl.AufOffeneTerminePruefen();
}
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
var appointmentsToUpdate = new List<SchedulerAppointmentDC>();
foreach(var appointment in OffeneTermine)
{
if(appointment.CustomFields["CustomFieldStorage"] is CustomFieldStorage customFieldStorage)
{
var employeeList = customFieldStorage.EmployeeList ?? new ObservableCollection<Employee2SchedulerAppointmentDC>();
foreach(var e2Sa in employeeList)
{
e2Sa.IsPC_CheckedTs = DateTime.Now;
if (e2Sa.Employee.EmployeeOid == BeWoApp.LoggedOnEmployee.EmployeeOid)
{
if(appointment.Start < DateTime.Now && appointment.End < DateTime.Now)
{
e2Sa.ParticipationAnswer = ParticipationAnswer.Verstrichen;
e2Sa.IsPC_CheckedTs = DateTime.Now;
e2Sa.IsPChanged = false;
}
else
{
e2Sa.IsPChanged = true;
e2Sa.ParticipationAnswer = ParticipationAnswer.Zusage;
}
}
else
{
e2Sa.IsPChanged = false;
}
}
if (employeeList.Any())
{
if(appointment is SchedulerAppointmentVM vm)
{
appointmentsToUpdate.AddIfNotIn(vm.CommitToDataContract());
}
}
}
}
ToggleControls();
raiseChangeEvent = false;
ServiceFacade.DoResourceServiceAsync(s => s.UpdateSchedulerAppointments(appointmentsToUpdate), UpdateView);
Close();
}
}
public class LVItemConverter : IValueConverter
{
@@ -292,7 +367,7 @@ namespace BeWo.Scheduler.View
return string.Empty;
}
if(app.LabelId <= 0)
if(app.LabelKey is null)
{
return $"{app.Start.ToShortDateString()}: {app.Subject}";
}
@@ -301,7 +376,7 @@ namespace BeWo.Scheduler.View
var customFieldStorage = (CustomFieldStorage) app.CustomFields[nameof(CustomFieldStorage)];
var l = customFieldStorage.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == app.LabelId);
var l = customFieldStorage.EmployeeList.ToList().Find(f => f.Employee2SchedulerAppointmentOid == app.LabelKey);
switch(l.ParticipationAnswer)
{

View File

@@ -1,17 +1,19 @@
<localSchView:AbstractAppointmentEditForm x:Class="BeWo.Scheduler.View.SchedulerAppointmentEditForm"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxschint="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
xmlns:converter="clr-namespace:BeWo.Scheduler.Converter"
xmlns:bewoConverter="clr-namespace:BeWo.Converter"
xmlns:localSchView="clr-namespace:BeWo.Scheduler.View"
xmlns:search="clr-namespace:BeWo.View.Search"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300" Width="420">
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxschint="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
xmlns:converter="clr-namespace:BeWo.Scheduler.Converter"
xmlns:bewoConverter="clr-namespace:BeWo.Converter"
xmlns:localSchView="clr-namespace:BeWo.Scheduler.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300" Width="420">
<localSchView:AbstractAppointmentEditForm.Resources>
<dxschint:TimeSpanToDateTimeConverter x:Key="TimeSpanToDateTimeConverter"/>
<converter:Recurrence2GermanConverter x:Key="Recurrence2GermanConverter"/>
@@ -19,42 +21,42 @@
<converter:NewCalendarBackgroundConverter x:Key="NewCalendarBackgroundConverter" />
<bewoConverter:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
<bewoConverter:ParticipationBrushConverter x:Key="ParticipationBrushConverter" />
<localSchView:RemoveElementVisibilityConverter x:Key="RemoveElementVisibilityConverter" />
<localSchView:RemoveElementVisibilityConverter x:Key="RemoveElementVisibilityConverter" />
<localSchView:InformationVisibilityConverter x:Key="InformationVisibilityConverter" />
<Style x:Key="MultiSupportConceptSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="2,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="25" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
<Style x:Key="MultiSupportConceptSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="2,2,2,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="25" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25" Background="{StaticResource SupportConceptContentBrush}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25" Background="{StaticResource SupportConceptContentBrush}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock x:Name="txtDetail1" Grid.Column="0" Grid.Row="0" Text="{Binding Path=CustomerName}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="0" Grid.Row="1" ToolTip="{Binding Path=FirstCostBearerDetailString}" Text="{Binding Path=FirstCostBearerDetailString}" FontSize="10" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" />
<Button x:Name="btnRemoveSupportConcept" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Width="20" Height="20" ToolTip="Hilfeplan aus der Liste entfernen" Tag="{Binding}" Style="{DynamicResource CloseButtonStyle}" Click="BtnRemoveSupportConcept_Click" Margin="3,0,0,0" />
</Grid>
</Border>
<TextBlock x:Name="txtDetail1" Grid.Column="0" Grid.Row="0" Text="{Binding Path=CustomerName}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="0" Grid.Row="1" ToolTip="{Binding Path=FirstCostBearerDetailString}" Text="{Binding Path=FirstCostBearerDetailString}" FontSize="10" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" />
<Button x:Name="btnRemoveSupportConcept" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" Width="20" Height="20" ToolTip="Hilfeplan aus der Liste entfernen" Tag="{Binding}" Style="{DynamicResource CloseButtonStyle}" Click="BtnRemoveSupportConcept_Click" Margin="3,0,0,0" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
@@ -101,8 +103,8 @@
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter>
</Style>
<Style x:Key="MultiElementSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -127,10 +129,12 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" CornerRadius="2" Width="5" Height="15" Background="{Binding Converter={StaticResource ParticipationBrushConverter}}" BorderThickness="1" BorderBrush="{Binding Converter={StaticResource ParticipationBrushConverter}, ConverterParameter=Border}" />
<TextBlock VerticalAlignment="Center" Grid.Column="1" Text="{Binding Converter={StaticResource TextFromIDataContractConverter}}" Margin="3,0,0,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<Button x:Name="btnRemoveElement" Grid.Column="2" Grid.RowSpan="2" Width="15" Height="15" ToolTip="Element aus der Liste entfernen" Tag="{Binding}" Visibility="{Binding Converter={StaticResource RemoveElementVisibilityConverter}}" Style="{DynamicResource CloseButtonStyleSmall}" Click="BtnRemoveElement_Click" Margin="3,0,0,0" />
<Button x:Name="btnInformation" Grid.Column="2" Grid.RowSpan="2" Width="15" Height="15" ToolTip="Informationen zur Auslastung anzeigen" Tag="{Binding}" Visibility="{Binding Converter={StaticResource InformationVisibilityConverter}}" Content="i" Click="btnInformation_Click" Margin="3,0,0,0" />
<Button x:Name="btnRemoveElement" Grid.Column="3" Grid.RowSpan="2" Width="15" Height="15" ToolTip="Element aus der Liste entfernen" Tag="{Binding}" Visibility="{Binding Converter={StaticResource RemoveElementVisibilityConverter}}" Style="{DynamicResource CloseButtonStyleSmall}" Click="BtnRemoveElement_Click" Margin="3,0,0,0" />
</Grid>
</Border>
</Grid>
@@ -248,7 +252,7 @@
</Setter>
</Style>
</localSchView:AbstractAppointmentEditForm.Resources>
<Grid>
<Grid x:Name="FormContainer">
<Grid HorizontalAlignment="Stretch" Background="#0C000000">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <!-- 0 -->
@@ -290,33 +294,44 @@
<!-- Endregion -->
<!-- Region Start -->
<Label x:Name="StartLabel" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" Content="Start"/>
<dxe:DateEdit Grid.Column="1" Grid.Row="2" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayStartDate}" x:Name="StartDate"/>
<dxe:TextEdit Grid.Column="2" Grid.Row="2" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding Controller.DisplayStartTime, Converter={StaticResource TimeSpanToDateTimeConverter}}" x:Name="StartTime"/>
<dxe:CheckEdit x:Name="AllDay" Grid.Column="3" Grid.Row="2" Content="Ganztägig" EditValue ="{Binding Controller.AllDay}" HorizontalAlignment="Right" Margin="3" />
<Label x:Name="StartLabel" Grid.Column="0" Grid.Row="2" VerticalAlignment="Center" Content="Start" />
<dxe:DateEdit Grid.Column="1" Grid.Row="2" MaskType="DateTimeAdvancingCaret" Background="White"
Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayStartDate}" x:Name="StartDateDateEdit"
EditValueChanged="StartDate_OnChange" />
<dxe:TextEdit Grid.Column="2" Grid.Row="2" IsEnabled="{Binding Path=Controller.AllDay, Converter={StaticResource BoolReverseConverter}}"
MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValueChanged="StartTimeTextEdit_OnEditValueChanged"
EditValue ="{Binding Controller.DisplayStartTime, Converter={StaticResource TimeSpanToDateTimeConverter}}" x:Name="StartTimeTextEdit"/>
<dxe:CheckEdit x:Name="AllDay" Grid.Column="3" Grid.Row="2" Content="Ganztägig" EditValueChanged="AllDay_OnEditValueChanged" EditValue ="{Binding Controller.AllDay}" HorizontalAlignment="Right" Margin="3" />
<!-- Endregion -->
<!-- Region Ende -->
<Label x:Name="EndLabel" Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" Content="Ende"/>
<dxe:DateEdit Grid.Column="1" Grid.Row="3" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayEndDate}" x:Name="EndDate"/>
<dxe:TextEdit Grid.Column="2" Grid.Row="3" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding Controller.DisplayEndTime, Converter={StaticResource TimeSpanToDateTimeConverter}}" x:Name="EndTime"/>
<dxe:DateEdit Grid.Column="1" Grid.Row="3" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80"
Margin="3" EditValue="{Binding Controller.DisplayEndDate}" x:Name="EndDate"
EditValueChanged="EndDate_OnChange" />
<dxe:TextEdit Grid.Column="2" Grid.Row="3" IsEnabled="{Binding Path=Controller.AllDay, Converter={StaticResource BoolReverseConverter}}"
MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValueChanged="EndTimeTextEdit_OnEditValueChanged"
EditValue ="{Binding Controller.DisplayEndTime, Converter={StaticResource TimeSpanToDateTimeConverter}}" x:Name="EndTime"/>
<!-- Endregion -->
<!-- Region Zu erledigen bis -->
<!-- Region Zu erledigen bis (Aufgabe) -->
<Label Visibility="Collapsed" Grid.Column="0" Grid.Row="4" x:Name="DueDateLabel" VerticalAlignment="Center" Content="Zu erledigen bis" />
<dxe:DateEdit Visibility="Collapsed" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="4" AllowNullInput="True" x:Name="DueDate" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayDueDateDate}" />
<dxe:TextEdit Visibility="Collapsed" Grid.Column="3" Grid.ColumnSpan="2" Grid.Row="4" Width="38" AllowNullInput="True" x:Name="DueDateTime" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding Controller.DisplayDueDateTime}" />
<dxe:DateEdit Visibility="Collapsed" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="4" AllowNullInput="True" x:Name="DueDate"
EditValueChanged="DueDate_OnEditValueChanged"
MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayDueDateDate}" />
<dxe:TextEdit Visibility="Collapsed" Grid.Column="3" Grid.ColumnSpan="2" Grid.Row="4" Width="38" AllowNullInput="True"
x:Name="DueDateTime" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding Controller.DisplayDueDateTime}" />
<!-- Endregion -->
<!-- Region Mitarbeiter -->
<Label Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" Content="Mitarbeiter"/>
<Label Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" Content="{t:Translate MitarbeiterPlural}"/>
<Grid Grid.Column="1" Grid.Row="5" Height="23" Margin="3,3,0,3" Grid.ColumnSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox IsReadOnly="True" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding CountSelectedEmployees, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Margin="0" />
<ToggleButton Grid.Column="1" x:Name="MitarbeiterToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Mitarbeiter anzeigen" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
<ToggleButton Grid.Column="1" x:Name="MitarbeiterToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="{markup:Translate Ausgewählte Mitarbeiter anzeigen}" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
</Grid>
<Popup Grid.Column="1" Grid.Row="5" Margin="10" Name="PopupEmployee" StaysOpen="False" Placement="MousePoint" Width="450" Height="300" >
<search:MultiEmployeeSearch x:Name="MultiEmployeeSearch" ResultListBackground="{StaticResource EmployeeListBrush}" SelectionChanged="MultiEmployeeSearch_OnSelectionChanged" SelectedEmployees="{Binding Controller.EmployeeList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
@@ -344,14 +359,14 @@
<!-- Endregion -->
<!-- Region Klienten -->
<Label x:Name="CustomersLabel" Grid.Column="0" Grid.Row="7" VerticalAlignment="Center" Content="Klienten"/>
<Label x:Name="CustomersLabel" Grid.Column="0" Grid.Row="7" VerticalAlignment="Center" Content="{markup:Translate Klienten}"/>
<Grid x:Name="CustomersGrid" Grid.Column="1" Grid.Row="7" Height="23" Margin="3,3,0,3" Grid.ColumnSpan="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox IsReadOnly="True" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding CountSelectedCustomers, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
<ToggleButton Grid.Column="1" x:Name="KlientenToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="Ausgewählte Klienten anzeigen" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
<ToggleButton Grid.Column="1" x:Name="KlientenToggleButton" IsThreeState="False" Margin="0,0,2,0" Height="19" Width="19" ToolTip="{markup:Translate Ausgewählte Klienten anzeigen}" Style="{StaticResource ExpanderLookAlikeToggleBotton}"/>
</Grid>
<Button x:Name="KlientenPopUpOeffnenBtn" Grid.Column="4" Grid.Row="7" Width="20" Height="20" Margin="3,0,3,0" VerticalAlignment="Center" Click="CustomerPopUpEditClick">
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center">
@@ -375,12 +390,17 @@
</Border>
</ControlTemplate>
</ListBox.Template>
<!--<ListBox.ItemTemplate>
<DataTemplate>
<Button Content="i"></Button>
</DataTemplate>
</ListBox.ItemTemplate>-->
</ListBox>
<!-- Endregion -->
<!-- Region Ressourcen -->
<Label Grid.Column="0" Grid.Row="9" VerticalAlignment="Center" Content="Ressourcen"/>
<Grid Grid.Column="1" Grid.Row="9" Height="23" Margin="3,3,0,3" Grid.ColumnSpan="3">
<Label Grid.Column="0" Grid.Row="9" VerticalAlignment="Center" Content="Ressourcen" x:Name="ResourceLabel" />
<Grid Grid.Column="1" Grid.Row="9" Height="23" Margin="3,3,0,3" Grid.ColumnSpan="3" x:Name="ResourceToggleButtonGrid" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
@@ -397,7 +417,7 @@
<Popup Grid.Column="1" Grid.Row="9" Margin="10" Name="PopupResource" StaysOpen="False" Placement="MousePoint" Width="450" Height="300">
<search:ResourcesTreeSearchView x:Name="ResourcesTreeSearchView" ResultListBackground="{StaticResource ResourceContentBrush}" SelectionChanged="ResourcesTreeSearchView_OnSelectionChanged" SelectedResources="{Binding Controller.ResourceList}" />
</Popup>
<ListBox Grid.Column="1" Grid.Row="10" Background="{StaticResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedResources}" IsSynchronizedWithCurrentItem="True"
<ListBox x:Name="ResourceListBox" Grid.Column="1" Grid.Row="10" Background="{StaticResource ObjectEditBackgroundBrush}" Margin="4,0,1,4" ItemsSource="{Binding Path=SelectedResources}" IsSynchronizedWithCurrentItem="True"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3"
ItemContainerStyle="{StaticResource MultiResourceSelectionControlStyle}" MaxHeight="70" Height="70"
Visibility="{Binding IsChecked, ElementName=RessourcenToggleButton, Converter={StaticResource BoolVisibilityConverter}}">
@@ -413,7 +433,7 @@
</ListBox>
<!-- Endregion -->
<!-- Region Hilfeplan -->
<!-- Region Hilfeplan (Aufgabe) -->
<Label Grid.Column="0" Grid.Row="11" VerticalAlignment="Center" Content="Hilfeplan" Visibility="Collapsed" x:Name="SupportConceptBtn" />
<Button x:Name="SupportConceptsPopUpOeffnenBtn" Grid.Column="4" Grid.Row="11" Width="20" Height="20" Margin="3,0,3,0" VerticalAlignment="Center" Click="SupportConceptsPopUpClick" Visibility="Collapsed">
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center">
@@ -439,32 +459,31 @@
</ListBox>
<!-- Endregion -->
<!-- Region Beschreibung -->
<Label x:Name="TaskDescriptionLabel" Visibility="Collapsed" Grid.Column="0" Grid.Row="13" VerticalAlignment="Top" Content="Beschreibung"/>
<TextBox Visibility="Collapsed" Grid.Column="1" Grid.Row="13" Grid.ColumnSpan="4" AcceptsReturn="True" VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled" Height="45" Margin="3" TextWrapping="Wrap" x:Name="TaskDescription"
Text="{Binding Path=Controller.TaskDescription, UpdateSourceTrigger=PropertyChanged}" MaxLength="1024" />
<!-- Region Beschreibung (Aufgabe) -->
<Label x:Name="TaskDescriptionLabel" Visibility="Collapsed" Grid.Column="0" Grid.Row="13" VerticalAlignment="Top" Content="Beschreibung"/>
<TextBox Visibility="Collapsed" Grid.Column="1" Grid.Row="13" Grid.ColumnSpan="4" AcceptsReturn="True" VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled" Height="45" Margin="3" TextWrapping="Wrap" x:Name="TaskDescription"
Text="{Binding Path=Controller.TaskDescription, UpdateSourceTrigger=PropertyChanged}" MaxLength="1024" />
<!-- Endregion -->
<!-- Endregion -->
<!-- Region Erledigt am -->
<Label Visibility="Collapsed" x:Name="CompletedDateLabel" Grid.Column="0" Grid.Row="14" VerticalAlignment="Center" Content="Erledigt am" />
<dxe:DateEdit Visibility="Collapsed" x:Name="CompletedDate" Grid.Column="1" Grid.ColumnSpan="4" Grid.Row="14" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayCompletedDateDate}" />
<!-- Endregion -->
<!-- Region Erledigt am (Aufgabe) -->
<Label Visibility="Collapsed" x:Name="CompletedDateLabel" Grid.Column="0" Grid.Row="14" VerticalAlignment="Center" Content="Erledigt am" />
<dxe:DateEdit Visibility="Collapsed" x:Name="CompletedDate" Grid.Column="1" Grid.ColumnSpan="4" Grid.Row="14"
MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding Controller.DisplayCompletedDateDate}" />
<!-- Endregion -->
<!-- Region Notiz -->
<Label x:Name="NoticeLabel" Grid.Column="0" Grid.Row="15" VerticalAlignment="Top" Content="Notiz"/>
<TextBox Grid.Column="1" Grid.Row="15" Grid.ColumnSpan="4" AcceptsReturn="True" VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled" Height="45" Margin="3" TextWrapping="Wrap" x:Name="Notice"
Text="{Binding Path=Controller.Description, UpdateSourceTrigger=PropertyChanged}" MaxLength="1024" />
<!-- Endregion -->
<!-- Region Serienmuster -->
<Label x:Name="SerienLabel" Grid.Column="0" Grid.Row="16" Content="Wiederholung" Margin="3" />
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="16" Grid.ColumnSpan="4" x:Name="EdtRecurrenceType" Margin="3"
ItemsSource="{Binding RecurrenceVisualController.RecurrenceElements}"
EditValue="{Binding RecurrenceVisualController.RecurrenceElement, UpdateSourceTrigger=PropertyChanged}" IsTextEditable="False">
<Label x:Name="SerienLabel" Grid.Column="0" Grid.Row="16" Content="Wiederholung" Margin="3" />
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="16" Grid.ColumnSpan="4" x:Name="EdtRecurrenceType" Margin="3"
ItemsSource="{Binding RecurrenceVisualController.RecurrenceElements}"
EditValue="{Binding RecurrenceVisualController.RecurrenceElement, UpdateSourceTrigger=PropertyChanged}" IsTextEditable="False">
<dxe:ComboBoxEdit.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description, Converter={StaticResource Recurrence2GermanConverter}}" />
@@ -472,20 +491,20 @@
</dxe:ComboBoxEdit.ItemTemplate>
</dxe:ComboBoxEdit>
<Grid x:Name="SerienGrid" Grid.Column="0" Grid.Row="17" Grid.ColumnSpan="5" Visibility="{Binding RecurrenceVisualController.EnableRecurrence, Converter={StaticResource BoolVisibilityConverter}}" >
<Grid x:Name="SerienGrid" Grid.Column="0" Grid.Row="17" Grid.ColumnSpan="5" Visibility="{Binding RecurrenceVisualController.EnableRecurrence, Converter={StaticResource BoolVisibilityConverter}}" >
<StackPanel>
<dx:GroupFrame Header="Serienmuster" Margin="3">
<StackPanel>
<dxsch:DailyRecurrenceControl Visibility="{Binding RecurrenceVisualController.IsDailyRecurrence, Converter={dxschint:BoolToVisibilityConverter}}"
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" />
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" />
<dxsch:WeeklyRecurrenceControl Visibility="{Binding RecurrenceVisualController.IsWeeklyRecurrence, Converter={dxschint:BoolToVisibilityConverter}}"
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" x:Name="WeeklyRecurrenceControl" />
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" x:Name="WeeklyRecurrenceControl" />
<dxsch:MonthlyRecurrenceControl x:Name="MonthlyRecurrenceControl"
Visibility="{Binding RecurrenceVisualController.IsMonthlyRecurrence, Converter={dxschint:BoolToVisibilityConverter}}"
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" />
<dxsch:YearlyRecurrenceControl x:Name="YearlyRecurrenceControl"
Visibility="{Binding RecurrenceVisualController.IsYearlyRecurrence, Converter={dxschint:BoolToVisibilityConverter}}"
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" />
Visibility="{Binding RecurrenceVisualController.IsYearlyRecurrence, Converter={dxschint:BoolToVisibilityConverter}}"
RecurrenceInfo="{Binding RecurrenceVisualController.RecurrenceInfo}" />
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Seriendauer" Margin="3" >

View File

@@ -9,13 +9,13 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using BeWo.Annotations;
using BeWo.Core;
using BeWo.Core.Service;
using BeWo.Scheduler.Utils;
using BeWo.Scheduler.ViewModel;
using BeWo.ServiceProxy;
using BeWo.View;
using BeWo.View.Detail;
using BeWo.View.Search;
using BS.Shared;
@@ -23,7 +23,6 @@ using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using DevExpress.Mvvm.Native;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Scheduler.UI;
using DevExpress.XtraScheduler;
@@ -36,7 +35,7 @@ namespace BeWo.Scheduler.View
{
public bool IsInCustomerViewMode { get; set; }
private readonly bool IsInTaskViewMode;
private readonly bool _IsInTaskViewMode;
private List<ValueListEntryDC> _Categories;
public List<ValueListEntryDC> Categories
@@ -135,6 +134,9 @@ namespace BeWo.Scheduler.View
public static bool IsOwnAppointment { get; set; }
public static bool IsAllowedToChange { get; set; }
public InformationView InformationView { get; set; }
public CompactCustomerDC Customer { get; set; }
public SchedulerAppointmentEditForm(SchedulerAppointmentListVM vm, SchedulerControl schedulerControl, Appointment appointment, IEnumerable<CompactEmployeeDC> employees, IEnumerable<CompactCustomerDC> customers, Dictionary<ValueListEntryDC, List<ResourceDC>> categoriesToResources, bool pIsInTaskViewMode) : base(schedulerControl, appointment)
{
ViewModel = vm;
@@ -144,7 +146,7 @@ namespace BeWo.Scheduler.View
IsOwnAppointment = Equals(BeWoApp.CompactLoggedOnEmployee, NewSchedulerAppointmentFormController.Originator) && (NewSchedulerAppointmentFormController.EmployeeList?.Count == 0 || NewSchedulerAppointmentFormController.EmployeeList.Any(a => Equals(a.Employee, BeWoApp.CompactLoggedOnEmployee)));
IsInTaskViewMode = pIsInTaskViewMode;
_IsInTaskViewMode = pIsInTaskViewMode;
InitializeComponent();
@@ -181,18 +183,18 @@ namespace BeWo.Scheduler.View
EdtRecurrenceType.CustomDisplayText += EdtRecurrenceType_CustomDisplayText;
if(IsInTaskViewMode && !SelectedEmployees.Any(a => a.Employee.Equals(BeWoApp.CompactLoggedOnEmployee)))
if(_IsInTaskViewMode && !SelectedEmployees.Any(a => a.Employee.Equals(BeWoApp.CompactLoggedOnEmployee)))
{
SelectedEmployees.Add(new Employee2SchedulerAppointmentDC { Employee = BeWoApp.CompactLoggedOnEmployee });
MitarbeiterToggleButton.IsChecked = true;
}
InitRights();
}
private void InitRights()
{
var darfKlientermineAnsehen = BeWoUtils.HasRight(UserRightType.CustomerView_View);
var darfKlientenAnsehen = BeWoUtils.HasRight(UserRightType.CustomerView_View) || BeWoUtils.HasRight(UserRightType.Customer_ViewMyTeams) || BeWoUtils.HasRight(UserRightType.Customer_ViewMyCustomers);
var darfKliententermineAnlegen = BeWoUtils.HasRight(UserRightType.KalenderKliententermineAnlegen);
var darfKliententermineAendern = BeWoUtils.HasRight(UserRightType.KalenderKliententermineAendern);
@@ -202,13 +204,14 @@ namespace BeWo.Scheduler.View
var darfRessourcentermineAnlegen = BeWoUtils.HasRight(UserRightType.KalenderRessourcentermineAnlegen);
var darfRessourcentermineAendern = BeWoUtils.HasRight(UserRightType.KalenderRessourcentermineAendern);
if(IsNew && !darfKliententermineAnlegen)
{
KlientenPopUpOeffnenBtn.Visibility = Visibility.Hidden;
SelectedCustomers.Clear();
}
if(!IsNew && (!darfKliententermineAendern || !darfKlientermineAnsehen) || !darfKlientermineAnsehen)
if(!IsNew && (!darfKliententermineAendern || !darfKlientenAnsehen) || !darfKlientenAnsehen)
{
KlientenPopUpOeffnenBtn.Visibility = Visibility.Hidden;
}
@@ -241,18 +244,24 @@ namespace BeWo.Scheduler.View
// --------------------------------------------------------------------
var checkType = IsNew ? SchedulerRightsCheckType.Create : SchedulerRightsCheckType.Edit;
var allowedToChange = BS.Shared.Core.Utils.CheckSchedulerRights(SelectedCustomers.ToList(), SelectedResources.ToList(), SelectedEmployees.ToList(), NewSchedulerAppointmentFormController.Originator, IsNew, checkType, BeWoApp.LoggedOnUser);
var customerOids = new List<long>();
ServiceFacade.DoEmployeeServiceSync(s => customerOids = s.LoadTeamsRelatedCustomerOids(BeWoApp.CompactLoggedOnEmployee.EmployeeOid));
if(IsInTaskViewMode)
var checkType = IsNew ? SchedulerRightsCheckType.Create : SchedulerRightsCheckType.Edit;
var allowedToChange = BS.Shared.Core.Utils.CheckSchedulerRights(SelectedCustomers.ToList(), SelectedResources.ToList(), SelectedEmployees.ToList(), NewSchedulerAppointmentFormController.Originator, IsNew, checkType, BeWoApp.LoggedOnUser, customerOids, true);
if(_IsInTaskViewMode)
{
BetreffLabel.Content = "Titel";
StartLabel.Content = "Beginn";
EndDate.Visibility = Visibility.Collapsed;
EndTime.Visibility = Visibility.Collapsed;
EndLabel.Visibility = Visibility.Collapsed;
AllDay.Visibility = Visibility.Collapsed;
EndDate.Visibility = Visibility.Collapsed;
EndTime.Visibility = Visibility.Collapsed;
EndLabel.Visibility = Visibility.Collapsed;
StartTimeTextEdit.Visibility = Visibility.Collapsed;
AllDay.Visibility = Visibility.Collapsed;
OrtLabel.Visibility = Visibility.Collapsed;
Ort.Visibility = Visibility.Collapsed;
SerienLabel.Visibility = Visibility.Collapsed;
@@ -272,13 +281,32 @@ namespace BeWo.Scheduler.View
SupportConceptsPopUpOeffnenBtn.Visibility = Visibility.Visible;
SelectedSupportConceptsListBox.Visibility = Visibility.Visible;
CustomersLabel.Visibility = Visibility.Collapsed;
CustomersGrid.Visibility = Visibility.Collapsed;
CustomerSearchViewPopup.Visibility = Visibility.Collapsed;
CustomersLabel.Visibility = Visibility.Collapsed;
CustomersGrid.Visibility = Visibility.Collapsed;
CustomerSearchViewPopup.Visibility = Visibility.Collapsed;
SelectedCustomersListBox.Visibility = Visibility.Collapsed;
KlientenPopUpOeffnenBtn.Visibility = Visibility.Collapsed;
KlientenPopUpOeffnenBtn.Visibility = Visibility.Collapsed;
SelectedCustomers.Clear();
ResourceLabel.Visibility = Visibility.Collapsed;
ResourceToggleButtonGrid.Visibility = Visibility.Collapsed;
RessourcenPopUpOeffnenBtn.Visibility = Visibility.Collapsed;
PopupResource.Visibility = Visibility.Collapsed;
ResourceListBox.Visibility = Visibility.Collapsed;
StartDateDateEdit.IsEnabled = false;
BetreffEditText.IsEnabled = false;
DueDate.IsEnabled = false;
DueDateTime.IsEnabled = false;
SupportConceptBtn.IsEnabled = false;
SupportConceptsPopUpOeffnenBtn.IsEnabled = false;
Notice.IsEnabled = false;
TaskDescription.IsEnabled = false;
CompletedDate.IsEnabled = false;
MitarbeiterPopUpOeffnenBtn.IsEnabled = false;
DeleteButton.Visibility = Visibility.Collapsed;
SelectedCustomers.Clear();
if (!Controller.IsNewAppointment)
{
@@ -288,9 +316,9 @@ namespace BeWo.Scheduler.View
CompletedDateLabel.Visibility = Visibility.Visible;
CompletedDate.Visibility = Visibility.Visible;
}
}
}
NewSchedulerAppointmentFormController.DisplayDueDateTime = NewSchedulerAppointmentFormController.DueDate;
NewSchedulerAppointmentFormController.DisplayDueDateTime = NewSchedulerAppointmentFormController.DueDate;
IsAllowedToChange = allowedToChange;
@@ -301,8 +329,8 @@ namespace BeWo.Scheduler.View
BetreffEditText.IsReadOnly = true;
Ort.IsReadOnly = true;
StartDate.IsReadOnly = true;
StartTime.IsReadOnly = true;
StartDateDateEdit.IsReadOnly = true;
StartTimeTextEdit.IsReadOnly = true;
AllDay.IsReadOnly = true;
EndDate.IsReadOnly = true;
EndTime.IsReadOnly = true;
@@ -331,9 +359,9 @@ namespace BeWo.Scheduler.View
e.Handled = true;
}
public string CountSelectedEmployees => $"{SelectedEmployees.Count} Mitarbeiter ausgewählt";
public string CountSelectedResources => $"{SelectedResources.Count} Resourcen ausgewählt";
public string CountSelectedCustomers => $"{SelectedCustomers.Count} Klienten ausgewählt";
public string CountSelectedEmployees => $"{SelectedEmployees.Count} " + BS.Shared.Translation.Translator.Translate("MitarbeiterPlural") + " ausgewählt";
public string CountSelectedResources => $"{SelectedResources.Count} Ressourcen ausgewählt";
public string CountSelectedCustomers => $"{SelectedCustomers.Count} " + BS.Shared.Translation.Translator.Translate("Klienten") + " ausgewählt";
public string CountSelectedSupportConcepts => $"{SelectedSupportConcepts.Count} Hilfepläne ausgewählt";
public override AppointmentFormController CreateFormController(SchedulerControl schedulerControl, Appointment appointment)
@@ -392,6 +420,13 @@ namespace BeWo.Scheduler.View
{
try
{
if(NewSchedulerAppointmentFormController.IsTask)
{
MessageBox.Show("Aufgaben können nur im Hilfeplan angelegt und geändert werden", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
var isWeeklyRecurrence = RecurrenceVisualController.IsWeeklyRecurrence;
var weekDays = WeeklyRecurrenceControl.WeekDays;
@@ -401,10 +436,10 @@ namespace BeWo.Scheduler.View
return;
}
Controller.Storage.BeginUpdate();
var employees = NewSchedulerAppointmentFormController.EmployeeList;
Controller.Storage.BeginUpdate();
var employees = NewSchedulerAppointmentFormController.EmployeeList;
var customers = NewSchedulerAppointmentFormController.CustomerList;
var resources = NewSchedulerAppointmentFormController.ResourceList;
var originator = NewSchedulerAppointmentFormController.Originator;
@@ -419,8 +454,7 @@ namespace BeWo.Scheduler.View
var start = NewSchedulerAppointmentFormController.Start;
var end = NewSchedulerAppointmentFormController.End;
ViewModel.NewVM.AllDay = !Appointment.AllDay;
ViewModel.NewVM.AllDay = NewSchedulerAppointmentFormController.AllDay;
ViewModel.NewVM.IsPrivate = isPrivate;
ViewModel.NewVM.ResourceList = resources;
ViewModel.NewVM.CustomerList = customers;
@@ -436,11 +470,15 @@ namespace BeWo.Scheduler.View
ViewModel.NewVM.Start = start;
ViewModel.NewVM.End = end;
if (isTask && dueDate.HasValue)
{
ViewModel.NewVM.End = dueDate.Value.GetShortDateTime().AddDays(1);
}
// Änderung an den CustomFields lösen das NewSchedulerStorage_AppointmentsChanged-Event aus
var employeeOids = new List<long>();
var customerOids = new List<long>();
var overlaps = false;
foreach (var emp in employees)
{
@@ -452,44 +490,29 @@ namespace BeWo.Scheduler.View
customerOids.AddIfNotIn(customer.CustomerOid);
}
var item = (SchedulerAppointmentVM) Appointment.GetSourceObject(Control.GetCoreStorage());
var item = Appointment.GetSourceObject(Control.GetCoreStorage());
if(!IsInTaskViewMode){
ServiceFacade.DoResourceServiceSync(definedBelow => overlaps = definedBelow.OverlappingAppointmentsExist(Appointment.Start, Appointment.End, employeeOids, customerOids, resources.Select(res => res.ResourceOid.Value).ToList(), ViewModel.NewVM.Originator.EmployeeOid, item?.CommitToDataContract().SchedulerAppointmentOid, string.Empty, Appointment.RecurrenceIndex));
if (overlaps)
{
var erg = MessageBox.Show("Dieser Termin überschneidet sich mit einem anderen bereits existierenden Termin.\n Möchten Sie ihn wirklich speichern?", "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if (erg.Equals(MessageBoxResult.No))
{
Controller.Storage.EndUpdate();
return;
}
}
}
ViewModel.ShouldLockOverlappingAppointmentCheck = true;
ViewModel.ShouldLockOverlappingAppointmentCheck = Appointment.Type == AppointmentType.ChangedOccurrence;
if (Appointment.RecurrenceInfo != null)
{
ViewModel.ApplyChangesToChangedOccurencyCustomFields(employees, customers, resources, originator, isPrivate, Appointment.RecurrenceIndex.ToString(), new Guid(Appointment.RecurrenceInfo.Id.ToString()), isTask, taskDescription, completedDate, dueDate, completedNotice, supportConceptList, Appointment.Subject, Appointment.AllDay);
}
{
var customFieldStorage = Appointment.GetCustomFieldStorage();
var serviceRecords = customFieldStorage?.ServiceRecordList ?? new List<ServiceRecordDC>();
//if(Appointment.IsOccurrence && item == null)
//{
// Appointment.GetCustomFieldStorage().EmployeeList.ForEach(each =>
// {
// each.Employee2SchedulerAppointmentOid = null;
// each.Employee2SchedulerAppointmentVersion = null;
// each.SchedulerAppointmentOid = null;
// each.IsPChanged = false;
// each.IsPC_CheckedTs = null;
// });
//}
ViewModel.ApplyChangesToChangedOccurencyCustomFields(employees, customers, resources, originator, isPrivate, Appointment.RecurrenceIndex.ToString(), new Guid(Appointment.RecurrenceInfo.Id.ToString()), isTask, taskDescription, completedDate, dueDate, completedNotice, supportConceptList, Appointment.Subject, Appointment.AllDay, serviceRecords);
var oldRecurrenceInfo = Appointment.RecurrenceInfo.ToXml();
var newRecurrenceInfo = ViewModel.NewVM.RecurrenceInfo;
if(!Equals(oldRecurrenceInfo, newRecurrenceInfo))
{
// Damit wird verhindert, dass beim Ändern von Zeitangaben bei Serienterminen die Ausnahmen gelöscht werden.
SaveFlagToInternInfo();
}
}
ApplyChanges();
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message + "\n" + exception.StackTrace);
@@ -519,12 +542,12 @@ namespace BeWo.Scheduler.View
if(y.Count == 0)
{
MessageBox.Show("Bitte wählen Sie mindestens einen Klienten aus!");
MessageBox.Show("Bitte wählen Sie mindestens " + BS.Shared.Translation.Translator.Translate("einen Klienten") + " aus!");
}
else
{
var startDate = StartDate.DateTime;
var startTime = DateTime.Parse(StartTime.Text);
var startDate = StartDateDateEdit.DateTime;
var startTime = DateTime.Parse(StartTimeTextEdit.Text);
var endDate = EndDate.DateTime;
var endTime = DateTime.Parse(EndTime.Text);
@@ -542,6 +565,11 @@ namespace BeWo.Scheduler.View
private void BtnRemoveElement_Click(object sender, RoutedEventArgs e)
{
if(_IsInTaskViewMode)
{
return;
}
var obj = ((Button) sender).Tag;
switch(obj)
@@ -569,6 +597,49 @@ namespace BeWo.Scheduler.View
SelectedEmployees.Remove(emp);
OnPropertyChanged(nameof(CountSelectedEmployees));
}
private void btnInformation_Click(object sender, RoutedEventArgs e)
{
var obj = ((Button)sender).Tag;
if (obj == null || !(obj is CompactCustomerDC))
return;
Customer = (CompactCustomerDC)obj;
InformationView = new InformationView();
//ServiceFacade.DoOperationsServiceAsync(s => s.GetXAMLInformationStringForScheduler(Customer.CustomerOid), OpenWindow);
InformationView.SetXaml(ServiceFacade.DoOperationsServiceSync(s => s.GetXAMLInformationStringForScheduler(Customer.CustomerOid)));
var beWoWindow = new BeWoWindow();
InformationView.ButtonCloseClicked += () => beWoWindow.Close();
beWoWindow.Height = 200;
beWoWindow.Width = 600;
beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
beWoWindow.GroupBoxContent = InformationView;
beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
//beWoWindow.rootGroupBox.Header = "Auslastung von " + Customer.FirstName + " " + Customer.LastName;
beWoWindow.ShowDialog();
}
public void OpenWindow(string xaml)
{
this.Dispatch(() =>
{
InformationView.SetXaml(xaml);
var beWoWindow = new BeWoWindow();
beWoWindow.Height = 200;
beWoWindow.Width = 500;
beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
beWoWindow.GroupBoxContent = Control;
beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
beWoWindow.rootGroupBox.Header = "Auslastung von " + Customer.FirstName + " " + Customer.LastName;
beWoWindow.ShowDialog();
});
}
private void ResourcesTreeSearchView_OnSelectionChanged(object sender, RoutedEventArgs e)
{
@@ -636,11 +707,146 @@ namespace BeWo.Scheduler.View
OnPropertyChanged(nameof(CountSelectedSupportConcepts));
}
}
}
public class NewSchedulerAppointmentFormController : AppointmentFormController
private void DueDate_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
// if(e.NewValue != null && e.NewValue is DateTime dueDate)
// {
// var newEnd = dueDate.GetShortDateTime().AddDays(1);
// NewSchedulerAppointmentFormController.End = newEnd;
// NewSchedulerAppointmentFormController.DisplayEnd = newEnd;
// NewSchedulerAppointmentFormController.DisplayEndDate = newEnd;
//}
}
/*
* Appointment.End:
* ======================================================================================================
* The End property is usually specified by the Appointment.Start and Appointment.
* Duration properties, and is always calculated as End = Start + Duration.
* When setting the End property, the Appointment. Start property retains its value, and the Appointment.
* Duration is changed according to the new value of the End property.
* If the new Appointment. End property's value is less than the Appointment.
* Start property's value, an exception is raised.
*
* Ende = Start + Vorherige Dauer
*/
private DateTime? _PreviousEndDate;
private DateTime? _PreviousEndDate2;
private bool _EndTimeHasBeenChangedByStartTime;
private bool _EndDateHasBeenChangedByStartDate;
// TODO: Bei jeder Änderung darauf achten, dass keinn anderer Wert manipuliert wird!
private void StartDate_OnChange(object sender, EditValueChangedEventArgs e)
{
// BeWoApp.LogMessage("StartDate changed", Colors.DarkTurquoise);
// LogAllDates();
//_EndTimeHasBeenChangedByStartTime = false;
// _PreviousEndDate2 = NewSchedulerAppointmentFormController.End;
//_EndDateHasBeenChangedByStartDate = true;
}
private void EndDate_OnChange(object sender, EditValueChangedEventArgs e)
{
// BeWoApp.LogMessage("EndDate changed", Colors.DarkTurquoise);
// LogAllDates();
//_EndTimeHasBeenChangedByStartTime = false;
// if(_EndDateHasBeenChangedByStartDate && _PreviousEndDate2.HasValue)
// {
// var start = NewSchedulerAppointmentFormController.Start;
// if(_PreviousEndDate2 > start)
// {
// var neuesEnddatum = NewSchedulerAppointmentFormController.End.MergeDatesByDateReversed(_PreviousEndDate2.Value);
// //NewSchedulerAppointmentFormController.End = neuesEnddatum;
// }
// }
// _EndDateHasBeenChangedByStartDate = true;
}
private void StartTimeTextEdit_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
// BeWoApp.LogMessage("StartTime changed", Colors.DarkTurquoise);
// LogAllDates();
//_PreviousEndDate = NewSchedulerAppointmentFormController.End;
// _EndTimeHasBeenChangedByStartTime = true;
}
private void EndTimeTextEdit_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
// BeWoApp.LogMessage("EndTime changed", Colors.DarkTurquoise);
// LogAllDates();
//if (_EndTimeHasBeenChangedByStartTime && _PreviousEndDate.HasValue)
// {
// var start = NewSchedulerAppointmentFormController.Start;
// if (_PreviousEndDate > start)
// {
// //NewSchedulerAppointmentFormController.End = NewSchedulerAppointmentFormController.End.MergeDatesByDate(_PreviousEndDate.Value);
// }
// }
// _EndTimeHasBeenChangedByStartTime = false;
}
// Was beeinflusst was? Startzeit -> Endzeit
// Ganztag -> DisplayEndDate
//
private void AllDay_OnEditValueChanged(object sender, EditValueChangedEventArgs e)
{
//BeWoApp.LogMessage("AllDay changed", Colors.DarkTurquoise);
//LogAllDates();
}
private static void SaveFlagToInternInfo()
{
if (CurrentAppointment.IsRecurring)
{
var internalInfo = CurrentAppointment.GetCustomFieldStorage().InternalInfo ?? new InternalInfo();
internalInfo.IsTimeChangedRecurringAppointment = true;
CurrentAppointment.GetCustomFieldStorage().InternalInfo = internalInfo;
}
}
private void LogAllDates()
{
var initialStartValue = NewSchedulerAppointmentFormController.Start;
var initialEndValue = NewSchedulerAppointmentFormController.End;
var isAllDay = NewSchedulerAppointmentFormController.AllDay;
var initialDisplayStart = NewSchedulerAppointmentFormController.DisplayStart;
var initialDisplayEnd = NewSchedulerAppointmentFormController.DisplayEnd;
BeWoApp.LogMessage("\n" +
$"\t\t\tIs AllDay: {isAllDay}\n" +
$"\t\t\tStart: {initialStartValue:dd.MM.yy HH:mm}\n" +
$"\t\t\tEnd: {initialEndValue:dd.MM.yy HH:mm}\n" +
$"\t\t\tDisplayStart: {initialDisplayStart:dd.MM.yy HH:mm}\n" +
$"\t\t\tDisplayEnd: {initialDisplayEnd:dd.MM.yy HH:mm}");
}
}
public class NewSchedulerAppointmentFormController : AppointmentFormController
{
private List<ResourceDC> SourceResourceList
private List<ResourceDC> SourceResourceList
{
get => SourceAppointment.CF_ResourceList();
set => SourceAppointment.CF_ResourceList(value);
@@ -862,7 +1068,10 @@ namespace BeWo.Scheduler.View
return resourceListsAreEqual || employeeListsAreEqual || customerListsAreEqual || originatorsAreEqual || isPrivatesAreEqual || dueDatesAreEqal || completedDatesAreEqal || taskDescriptionsAreEqual || supportConceptListsAreEqual;
}
public NewSchedulerAppointmentFormController(SchedulerControl control, Appointment apt) : base(control, apt) { }
public NewSchedulerAppointmentFormController(SchedulerControl control, Appointment apt) : base(control, apt)
{
}
protected override void ApplyCustomFieldsValues()
{
@@ -892,12 +1101,14 @@ namespace BeWo.Scheduler.View
{
return Visibility.Visible;
}
var isNew = SchedulerAppointmentEditForm.IsNew;
var isAllowedToChange = BeWoUtils.CheckSchedulerRights(SchedulerAppointmentEditForm.CurrentAppointment, isNew, SchedulerRightsCheckType.Edit);
var customerOids = new List<long>();
ServiceFacade.DoEmployeeServiceSync(s => customerOids = s.LoadTeamsRelatedCustomerOids(BeWoApp.CompactLoggedOnEmployee.EmployeeOid));
var isNew = SchedulerAppointmentEditForm.IsNew;
var isAllowedToChange = BeWoUtils.CheckSchedulerRights(SchedulerAppointmentEditForm.CurrentAppointment, isNew, SchedulerRightsCheckType.Edit, customerOids, true);
return isAllowedToChange ? Visibility.Visible : Visibility.Hidden;
}
@@ -906,4 +1117,15 @@ namespace BeWo.Scheduler.View
throw new NotImplementedException();
}
}
public class InformationVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value is CompactCustomerDC ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -27,11 +27,11 @@ namespace BeWo.Scheduler.ViewModel
result += " erledigt am " + CompletedDate.Value.ToShortDateString();
} else if(DueDate.HasValue)
{
result += " bis " + DueDate.Value.ToString("dd.MM.yyyy HH:mm");
result += $" bis {DueDate.Value:dd.MM.yyyy HH:mm}";
}
}
if (IsAbsenceTime && _AbsenceTimeStart.HasValue)
if(IsAbsenceTime && _AbsenceTimeStart.HasValue)
{
result += _AbsenceTimeStart.Value.GetIntervalDescription(_AbsenceTimeEnd);
}
@@ -58,6 +58,7 @@ namespace BeWo.Scheduler.ViewModel
public DateTime? DueDate { get; set; }
public DateTime? CompletedDate { get; set; }
public string CompletedNotice { get; set; }
public string CompletedUser { get; set; }
public string TaskDescription { get; set; }
public long? SchedulerAppointmentOid { get; set; }
@@ -71,6 +72,14 @@ namespace BeWo.Scheduler.ViewModel
private DateTime? _AbsenceTimeEnd;
public InternalInfo InternalInfo { get; set; }
public bool CanBeEdited { get; set; }
public long? AbsenceTimeOid { get; set; }
public bool IsCustomerAbsenceTime { get; set; }
public CustomFieldStorage()
{
@@ -105,6 +114,11 @@ namespace BeWo.Scheduler.ViewModel
_AbsenceTimeEnd = pAppointment.AbsenceTimeEnd;
HasServiceRecordEntry = pAppointment.HasServiceRecordEntry;
CanBeEdited = pAppointment.CanBeEdited;
AbsenceTimeOid = pAppointment.AbsenceTimeOid;
IsCustomerAbsenceTime = pAppointment.IsCustomerAbsenceTime;
ServiceRecordList = pAppointment.ServiceRecordList;
}
public CustomFieldStorage(SchedulerAppointmentDC pAppointment)
@@ -118,6 +132,7 @@ namespace BeWo.Scheduler.ViewModel
CustomerList = pAppointment.CustomerList;
ResourceList = pAppointment.ResourceList;
SupportConceptList = pAppointment.SupportConceptList;
ServiceRecordList = pAppointment.ServiceRecordList;
DueDate = pAppointment.DueDate;
CompletedDate = pAppointment.CompletedDate;
@@ -133,9 +148,11 @@ namespace BeWo.Scheduler.ViewModel
RecurrenceIndex = pAppointment.RecurrenceIndex;
HasServiceRecordEntry = pAppointment.HasServiceRecordEntry;
CanBeEdited = pAppointment.CanBeEdited;
}
public CustomFieldStorage(ObservableCollection<Employee2SchedulerAppointmentDC> pEmployees, List<CompactCustomerDC> pCustomers, List<ResourceDC> pResources, CompactEmployeeDC pOriginator, bool pIsPrivate, bool pIsTask, string pTaskDescription, DateTime? pDueDate, DateTime? pCompletedDate, string pCompletedNotice, List<CompactSupportConceptDC> pSupportConcepts, string pSubject, bool pIsAllDay)
public CustomFieldStorage(ObservableCollection<Employee2SchedulerAppointmentDC> pEmployees, List<CompactCustomerDC> pCustomers, List<ResourceDC> pResources, CompactEmployeeDC pOriginator, bool pIsPrivate, bool pIsTask, string pTaskDescription, DateTime? pDueDate, DateTime? pCompletedDate, string pCompletedNotice, List<CompactSupportConceptDC> pSupportConcepts, string pSubject, bool pIsAllDay, List<ServiceRecordDC> serviceRecords)
{
IsTask = pIsTask;
IsPrivate = pIsPrivate;
@@ -144,7 +161,9 @@ namespace BeWo.Scheduler.ViewModel
EmployeeList = pEmployees;
CustomerList = pCustomers;
ResourceList = pResources;
SupportConceptList = pSupportConcepts;
ServiceRecordList = serviceRecords;
DueDate = pDueDate;
CompletedDate = pCompletedDate;
@@ -168,5 +187,12 @@ namespace BeWo.Scheduler.ViewModel
public Visibility ToolTipZusageVisibility => IsTask ? Visibility.Collapsed : Visibility.Visible;
public bool HasServiceRecordEntry { get; set; }
public List<ServiceRecordDC> ServiceRecordList { get; set; } = new List<ServiceRecordDC>();
}
public class InternalInfo
{
public bool IsTimeChangedRecurringAppointment { get; set; }
}
}

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using BeWo.Scheduler.View;
using BeWo.ServiceProxy;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
@@ -14,6 +14,7 @@ namespace BeWo.Scheduler.ViewModel
{
public class NewSchedulerViewModel
{
public event EventHandler<EventArgs<ISchedulerViewModel>> ViewModelChanged;
private ISchedulerViewModel _ActiveAppointmentViewModel;
@@ -55,22 +56,47 @@ namespace BeWo.Scheduler.ViewModel
return ActiveAppointmentViewModel == null ? null : SchedulerSettings ?? ActiveAppointmentViewModel.GetDefaultSchedulerSettings();
}
public IEnumerable<SchedulerAppointmentVM> ConvertAbsenceTimesToAppointments(IEnumerable<AbsenceTimeDC> pAbsenceTimes, DateTime pIntervalEnd, List<CompactEmployeeDC> allEmployees)
public IEnumerable<SchedulerAppointmentVM> ConvertAbsenceTimesToAppointments(IEnumerable<AbsenceTimeDC> pAbsenceTimes, DateTime pIntervalEnd, List<CompactEmployeeDC> allEmployees, List<CompactCustomerDC> allCustomers)
{
return pAbsenceTimes.Where(w => w.AbsenceTimeOid.HasValue && w.Start.HasValue).Select(abwesenheit =>
{
var subject = $"{abwesenheit.Reason.Description}";
var employee = abwesenheit.EmployeeOid != null ? allEmployees.FirstOrDefault(f => f.EmployeeOid == abwesenheit.EmployeeOid.Value) : null;
{
var isEmployeeAbsenceTime = abwesenheit.EmployeeOid.HasValue;
if(employee != null)
{
subject += $" ({employee.SimpleDescription})";
}
var subject = $"{abwesenheit.Reason.Description}";
var employee = abwesenheit.EmployeeOid.HasValue ? allEmployees.FirstOrDefault(f => f.EmployeeOid == abwesenheit.EmployeeOid.Value) : null;
var customer = abwesenheit.CustomerOid.HasValue ? allCustomers.FirstOrDefault(f => f.CustomerOid == abwesenheit.CustomerOid.Value) : null;
IFilterableDC dc = employee;
var originator = employee;
if(!isEmployeeAbsenceTime)
{
dc = customer;
ServiceFacade.DoEmployeeServiceSync(s => originator = s.FindCompactEmployeeByFullname(abwesenheit.InsUser));
}
if(!(dc is null))
{
subject += $" ({dc.SimpleDescription})";
}
var absenceTimeEnd = abwesenheit.End?.AddTicks(1);
if(originator is null)
{
originator = BeWoApp.CompactLoggedOnEmployee;
}
return new SchedulerAppointmentVM(true, subject, abwesenheit.Start.Value, abwesenheit.End ?? pIntervalEnd, employee, abwesenheit.Start, absenceTimeEnd);
}).ToList();
return new SchedulerAppointmentVM(
true,
subject,
abwesenheit.Start.Value,
abwesenheit.End ?? pIntervalEnd,
originator,
abwesenheit.Start,
absenceTimeEnd,
abwesenheit.AbsenceTimeOid.Value,
!isEmployeeAbsenceTime);
}).ToList();
}
}
}

View File

@@ -29,7 +29,21 @@ namespace BeWo.Scheduler.ViewModel
{
public bool ShouldLockOverlappingAppointmentCheck { get; set; }
public SchedulerSettings GetDefaultSchedulerSettings()
//protected override SchedulerAppointmentVM CreateVM(SchedulerAppointmentDC pDC)
//{
// var vm = base.CreateVM(pDC);
// if (!pDC.SchedulerAppointmentOid.HasValue && vm.EmployeeList.Count == 0)
// {
// var e2sVm = new Employee2SchedulerAppointmentDC();
// e2sVm.Employee = BeWoApp.LoggedOnUser.Employee;
// vm.EmployeeList.Add(e2sVm);
// }
// return vm;
//}
public SchedulerSettings GetDefaultSchedulerSettings()
{
var settings = new SchedulerSettings(AppointmentKind.General, AppointmentViewType.WorkWeek);
return settings;
@@ -57,18 +71,16 @@ namespace BeWo.Scheduler.ViewModel
}
}
private readonly List<CompactCustomerDC> _AllCustomers;
private readonly List<CompactEmployeeDC> _AllEmployees;
private readonly Dictionary<ValueListEntryDC, List<ResourceDC>> _Categories2Resources;
private static void AppointmentListAddingNew(object sender, AddingNewEventArgs e)
private static void AppointmentListAddingNew(object sender, AddingNewEventArgs e)
{
var dc = new SchedulerAppointmentDC
{
EmployeeList = new List<Employee2SchedulerAppointmentDC>(),
CustomerList = new List<CompactCustomerDC>(),
ResourceList = new List<ResourceDC>(),
Status = 0
EmployeeList = new List<Employee2SchedulerAppointmentDC>(),
CustomerList = new List<CompactCustomerDC>(),
ResourceList = new List<ResourceDC>(),
ServiceRecordList = new List<ServiceRecordDC>(),
SupportConceptList = new List<CompactSupportConceptDC>(),
Status = 0
};
var neu = new SchedulerAppointmentVM(dc);
@@ -79,19 +91,19 @@ namespace BeWo.Scheduler.ViewModel
private Dictionary<Guid, Dictionary<string, Dictionary<string, object>>> _ChangedOccurenceCustomFields;
public Dictionary<Guid, Dictionary<string, Dictionary<string, object>>> ChangedOccurenceCustomFields { get; }
public List<CompactCustomerDC> AllCustomers => _AllCustomers;
public List<CompactCustomerDC> AllCustomers { get; }
public List<CompactEmployeeDC> AllEmployees => _AllEmployees;
public List<CompactEmployeeDC> AllEmployees { get; }
public Dictionary<ValueListEntryDC, List<ResourceDC>> Categories2Resources => _Categories2Resources;
public Dictionary<ValueListEntryDC, List<ResourceDC>> Categories2Resources { get; }
private Appointment _GeoeffneterTermin;
private Appointment _GeoeffneterTermin;
public SchedulerAppointmentListVM(List<SchedulerAppointmentDC> appList, List<CompactCustomerDC> allCustomers, List<CompactEmployeeDC> allEmployees, Dictionary<ValueListEntryDC, List<ResourceDC>> lCategoriesToResources) : base(appList)
{
_Categories2Resources = lCategoriesToResources;
_AllCustomers = allCustomers;
_AllEmployees = allEmployees;
Categories2Resources = lCategoriesToResources;
AllCustomers = allCustomers;
AllEmployees = allEmployees;
// TODO: Hier Rechte beachten!
@@ -150,37 +162,55 @@ namespace BeWo.Scheduler.ViewModel
UpdateSchedulerAppointment(item, vm);
if(vm.ResourceList.Any())
// Wird ein Serientermin bearbeitet, erfolgt ein Insert und ein Update. Beim Insert erfolgt bereits die Überschneidungsprüfung und muss hier nicht wiederholt werden.
var shouldSkipResourceAvailablityCheck = false;
if(_RecurrenceInfoId != null && item.RecurrenceInfo?.Id is Guid recurrenceId)
{
if(!CheckForUnavailableResources(vm))
{
return;
}
shouldSkipResourceAvailablityCheck = recurrenceId.Equals(_RecurrenceInfoId);
}
if (!ShouldLockOverlappingAppointmentCheck && vm.EventType != 3 && !vm.IsTask)
{
var isOverlapping = false;
ServiceFacade.DoResourceServiceSync(s => isOverlapping = s.OverlappingAppointmentsExist(
vm.Start,
vm.End,
vm.EmployeeList.Select(emp => emp.Employee.EmployeeOid).ToList(),
vm.CustomerList.Select(cc => cc.CustomerOid).ToList(),
vm.ResourceList.Select(r => r.ResourceOid.Value).ToList(),
vm.Originator.EmployeeOid,
vm.DataContract.SchedulerAppointmentOid,
item.RecurrenceInfo?.Id.ToString() ?? string.Empty, item.RecurrenceIndex));
/*
* EventTypes:
* 0: Normal
* 1: Pattern
* 2: Occurrence
* 3: ChangedOccurrence
* 4: DeletedOccurrence
*
*
*
* Wozu ist das gut?
* !ShouldLockOverlappingAppointmentCheck &&
*/
if (isOverlapping)
{
var erg = MessageBox.Show("Dieser Termin überschneidet sich mit einem anderen bereits existierenden Termin.\nMöchten Sie ihn wirklich speichern?", "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if(!shouldSkipResourceAvailablityCheck && !vm.IsTask && vm.EventType != 4 && !(vm.EventType == 3 && vm.DataContract?.SchedulerAppointmentOid == null))
{
var start = vm.Start;
var end = vm.End;
var employeeOids = vm.EmployeeList.Select(emp => emp.Employee.EmployeeOid).ToList();
var customerOids = vm.CustomerList.Select(cc => cc.CustomerOid).ToList();
var resourceOids = vm.ResourceList.Where(r => r.ResourceOid.HasValue).Select(r => r.ResourceOid.Value).ToList();
var originatorOid = vm.Originator.EmployeeOid;
var schedulerAppointmentOid = vm.DataContract?.SchedulerAppointmentOid;
var recurrenceInfoId = vm.RecurrenceId;
var recurrenceIndex = vm.RecurrenceIndex;
if (erg.Equals(MessageBoxResult.No))
{
return;
}
}
var message = string.Empty;
ServiceFacade.DoResourceServiceSync( s => message = s.ValidateSchedulerAppointment(start, end, employeeOids, customerOids, resourceOids, originatorOid, schedulerAppointmentOid, recurrenceInfoId, recurrenceIndex, shouldSkipResourceAvailablityCheck));
if(!string.IsNullOrWhiteSpace(message))
{
var messageBoxResult = MessageBox.Show(message, "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if(messageBoxResult.Equals(MessageBoxResult.No))
{
return;
}
}
}
if (item.Type.Equals(AppointmentType.ChangedOccurrence) && _GeoeffneterTermin != null)
@@ -203,11 +233,13 @@ namespace BeWo.Scheduler.ViewModel
var mostRecentAppointments = new List<SchedulerAppointmentDC>();
ServiceFacade.DoResourceServiceSync(sync => mostRecentAppointments = sync.UpdateSchedulerAppointments(dcList));
UpdateViewModel(mostRecentAppointments);
_RecurrenceInfoId = null;
control.ActiveView.LayoutChanged();
NewSchedulerView.IgnoreChangeEvents = false;
}
public void InsertAppointments(SchedulerControl control, IEnumerable<Appointment> list)
private Guid? _RecurrenceInfoId;
public void InsertAppointments(SchedulerControl control, IEnumerable<Appointment> list)
{
var dcList = new List<SchedulerAppointmentDC>();
foreach (var item in list)
@@ -218,25 +250,26 @@ namespace BeWo.Scheduler.ViewModel
{
var dc = new SchedulerAppointmentDC
{
IsPrivate = item.CF_IsPrivate(),
Subject = item.Subject,
Description = item.Description,
StartDate = item.Start,
EndDate = item.End,
Originator = item.CF_Originator(),
LabelId = item.LabelId,
AllDay = item.AllDay,
Status = item.StatusId,
Type = (int) item.Type,
Location = item.Location,
RecurrenceInfo = item.RecurrenceInfo.ToXml(),
ReminderInfo = item.Reminder?.ToXml(),
CustomerList = item.CF_CustomerList(),
EmployeeList = item.CF_EmployeeList().ToList(),
ResourceList = item.CF_ResourceList(),
SupportConceptList = item.CF_SupportConceptList(),
RecurrenceIndex = item.RecurrenceIndex,
RecurrenceId = item.RecurrenceInfo.Id.ToString(),
IsPrivate = item.CF_IsPrivate(),
Subject = item.Subject,
Description = item.Description,
StartDate = item.Start,
EndDate = item.End,
Originator = item.CF_Originator(),
LabelKey = (long?) item.LabelKey,
AllDay = item.AllDay,
Status = item.StatusId,
Type = (int) item.Type,
Location = item.Location,
RecurrenceInfo = item.RecurrenceInfo.ToXml(),
ReminderInfo = item.Reminder?.ToXml(),
CustomerList = item.CF_CustomerList(),
EmployeeList = item.CF_EmployeeList().ToList(),
ResourceList = item.CF_ResourceList(),
SupportConceptList = item.CF_SupportConceptList(),
ServiceRecordList = item.CF_ServiceRecordList(),
RecurrenceIndex = item.RecurrenceIndex,
RecurrenceId = item.RecurrenceInfo.Id.ToString(),
HasServiceRecordEntry = item.CF_HasServiceRecordEntry()
};
@@ -247,42 +280,43 @@ namespace BeWo.Scheduler.ViewModel
continue;
}
}
if(item.RecurrenceInfo != null)
{
_RecurrenceInfoId = (Guid) item.RecurrenceInfo.Id;
}
UpdateSchedulerAppointment(item, vm);
if(vm.ResourceList.Any())
if(!vm.IsTask && vm.EventType != 4 && !ShouldLockOverlappingAppointmentCheck)
{
if(!CheckForUnavailableResources(vm))
var start = vm.Start;
var end = vm.End;
var employeeOids = vm.EmployeeList.Select(emp => emp.Employee.EmployeeOid).ToList();
var customerOids = vm.CustomerList.Select(cc => cc.CustomerOid).ToList();
var resourceOids = vm.ResourceList.Where(r => r.ResourceOid.HasValue).Select(r => r.ResourceOid.Value).ToList();
var originatorOid = vm.Originator.EmployeeOid;
var schedulerAppointmentOid = vm.DataContract?.SchedulerAppointmentOid;
var recurrenceInfoId = vm.RecurrenceId;
var recurrenceIndex = vm.RecurrenceIndex;
var message = string.Empty;
ServiceFacade.DoResourceServiceSync(s => message = s.ValidateSchedulerAppointment(start, end, employeeOids, customerOids, resourceOids, originatorOid, schedulerAppointmentOid, recurrenceInfoId, recurrenceIndex, false));
if(!string.IsNullOrWhiteSpace(message))
{
return;
var messageBoxResult = MessageBox.Show(message, "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if(messageBoxResult.Equals(MessageBoxResult.No))
{
return;
}
}
}
}
if (!ShouldLockOverlappingAppointmentCheck && !vm.IsTask)
{
var isOverlapping = false;
ServiceFacade.DoResourceServiceSync(s => isOverlapping = s.OverlappingAppointmentsExist(
vm.Start,
vm.End,
vm.EmployeeList.Select(emp => emp.Employee.EmployeeOid).ToList(),
vm.CustomerList.Select(cc => cc.CustomerOid).ToList(),
vm.ResourceList.Select(r => r.ResourceOid.Value).ToList(),
vm.Originator.EmployeeOid,
vm.DataContract.SchedulerAppointmentOid,
item.RecurrenceInfo?.Id.ToString() ?? string.Empty, item.RecurrenceIndex));
if (isOverlapping)
{
var erg = MessageBox.Show("Dieser Termin überschneidet sich mit einem anderen bereits existierenden Termin.\nMöchten Sie ihn wirklich speichern?", "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if (erg.Equals(MessageBoxResult.No))
{
return;
}
}
}
dcList.Add(vm.CommitToDataContract());
dcList.Add(vm.CommitToDataContract());
}
if (dcList.Count <= 0)
@@ -300,30 +334,26 @@ namespace BeWo.Scheduler.ViewModel
private void UpdateSchedulerAppointment(Appointment app, SchedulerAppointmentVM vm)
{
vm.EmployeeList = app.CF_EmployeeList();
vm.CustomerList = app.CF_CustomerList();
vm.ResourceList = app.CF_ResourceList();
vm.Originator = app.CF_Originator();
vm.IsPrivate = app.CF_IsPrivate();
vm.IsTask = app.CF_IsTask();
vm.DueDate = app.CF_DueDate();
vm.CompletedDate = app.CF_CompletedDate();
vm.CompletedNotice = app.CF_CompletedNotice();
vm.TaskDescription = app.CF_TaskDescription();
vm.SupportConceptList = app.CF_SupportConceptList();
vm.EmployeeList = app.CF_EmployeeList();
vm.CustomerList = app.CF_CustomerList();
vm.ResourceList = app.CF_ResourceList();
vm.Originator = app.CF_Originator();
vm.IsPrivate = app.CF_IsPrivate();
vm.IsTask = app.CF_IsTask();
vm.DueDate = app.CF_DueDate();
vm.CompletedDate = app.CF_CompletedDate();
vm.CompletedNotice = app.CF_CompletedNotice();
vm.TaskDescription = app.CF_TaskDescription();
vm.SupportConceptList = app.CF_SupportConceptList();
vm.HasServiceRecordEntry = app.CF_HasServiceRecordEntry();
vm.ServiceRecordList = app.CF_ServiceRecordList();
if(vm.IsTask)
{
vm.AllDay = true;
if(vm.DueDate.HasValue)
{
vm.DueDate = vm.Start.MergeDatesByDate(vm.DueDate.Value);
vm.DueTime = vm.DueDate;
}
}
if(!vm.CustomFields.ContainsKey(nameof(CustomFieldStorage)))
if(vm.IsTask)
{
vm.AllDay = true;
}
if(!vm.CustomFields.ContainsKey(nameof(CustomFieldStorage)))
{
vm.CustomFields.Add(nameof(CustomFieldStorage), new CustomFieldStorage(vm));
}
@@ -364,8 +394,8 @@ namespace BeWo.Scheduler.ViewModel
}
}
app.LabelId = vm.LabelId;
}
app.LabelKey = vm.LabelKey;
}
AbstractAppointmentEditForm ISchedulerViewModel.GetEditAppointmentForm(SchedulerControl control, Appointment appointment)
{
@@ -384,7 +414,7 @@ namespace BeWo.Scheduler.ViewModel
if (!appointment.Type.Equals(AppointmentType.ChangedOccurrence))
{
return new SchedulerAppointmentEditForm(this, control, appointment, _AllEmployees, _AllCustomers, _Categories2Resources, isTask);
return new SchedulerAppointmentEditForm(this, control, appointment, AllEmployees, AllCustomers, Categories2Resources, isTask);
}
var index = appointment.RecurrenceIndex;
@@ -402,17 +432,17 @@ namespace BeWo.Scheduler.ViewModel
}
}
return new SchedulerAppointmentEditForm(this, control, appointment, _AllEmployees, _AllCustomers, _Categories2Resources, isTask);
return new SchedulerAppointmentEditForm(this, control, appointment, AllEmployees, AllCustomers, Categories2Resources, isTask);
}
public void ApplyChangesToChangedOccurencyCustomFields(ObservableCollection<Employee2SchedulerAppointmentDC> employees, List<CompactCustomerDC> customers, List<ResourceDC> resources, CompactEmployeeDC originator, bool isPrivate, string index, Guid id, bool isTask, string taskDescription, DateTime? completedDate, DateTime? dueDate, string completedNotice, List<CompactSupportConceptDC> supportConcepts, string subject, bool isAllDay)
public void ApplyChangesToChangedOccurencyCustomFields(ObservableCollection<Employee2SchedulerAppointmentDC> employees, List<CompactCustomerDC> customers, List<ResourceDC> resources, CompactEmployeeDC originator, bool isPrivate, string index, Guid id, bool isTask, string taskDescription, DateTime? completedDate, DateTime? dueDate, string completedNotice, List<CompactSupportConceptDC> supportConcepts, string subject, bool isAllDay, List<ServiceRecordDC> serviceRecords)
{
if (!_ChangedOccurenceCustomFields.ContainsKey(id) || !_ChangedOccurenceCustomFields[id].ContainsKey(index))
{
return;
}
_ChangedOccurenceCustomFields[id][index][nameof(CustomFieldStorage)] = new CustomFieldStorage(employees, customers, resources, originator, isPrivate, isTask, taskDescription, dueDate, completedDate, completedNotice, supportConcepts, subject, isAllDay);
_ChangedOccurenceCustomFields[id][index][nameof(CustomFieldStorage)] = new CustomFieldStorage(employees, customers, resources, originator, isPrivate, isTask, taskDescription, dueDate, completedDate, completedNotice, supportConcepts, subject, isAllDay, serviceRecords);
}
public void AddCustomFieldsMapping(SchedulerStorage schedulerStorage)
@@ -524,8 +554,8 @@ namespace BeWo.Scheduler.ViewModel
var istEigen = ersteller.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid);
var mVorhanden = appEList.Any(a2app => _AllEmployees.Contains(a2app.Employee));
var kVorhanden = customerList.Any(_AllCustomers.Contains);
var mVorhanden = appEList.Any(a2app => AllEmployees.Contains(a2app.Employee));
var kVorhanden = customerList.Any(AllCustomers.Contains);
wirdAngezeigt = liste[0] && mVorhanden || liste[1] && resourceList.Any() || liste[2] && kVorhanden;
@@ -640,39 +670,6 @@ namespace BeWo.Scheduler.ViewModel
return areEqual;
}
private static bool CheckForUnavailableResources(SchedulerAppointmentVM vm)
{
var unavailableResources = new List<ResourceDC>();
ServiceFacade.DoResourceServiceSync(s => unavailableResources = s.CheckResourceAvailability(vm.Start, vm.End, vm.ResourceList.Select(resource => resource.ResourceOid.Value).ToList(), null));
if(unavailableResources.Any())
{
var names = string.Empty;
unavailableResources.DoForEach(resource => names += resource.Name + ", ");
names = names.TrimEnd(' ').TrimEnd(',');
var resourceCount = vm.ResourceList.Count;
var warningMessage = unavailableResources.Count > 1 ?
$"Ein{(resourceCount > 1 ? "ige" : "e")} der ausgewählten Ressourcen ({names}) sind" :
$"{(resourceCount > 1 ? "Eine der" : "Die")} ausgewählte{(resourceCount > 1 ? "n" : string.Empty)} Ressource{(resourceCount > 1 ? "n" : string.Empty)} ({names}) ist";
warningMessage += $" zum gewählten Zeitpunkt ({vm.Start.GetIntervalDescription(vm.End).TrimStart(' ')}) nicht verfügbar.\n\nMöchten Sie trotzdem speichern?";
var erg = MessageBox.Show(warningMessage, "Überschneidung", MessageBoxButton.YesNo);
if(erg.Equals(MessageBoxResult.No))
{
return false;
}
}
return true;
}
}
}

View File

@@ -2,13 +2,14 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using BeWo.Scheduler.Utils;
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using DevExpress.XtraScheduler;
namespace BeWo.Scheduler.ViewModel
{
@@ -33,34 +34,40 @@ namespace BeWo.Scheduler.ViewModel
public static string PropertyName_DueDate = nameof(DueDate);
public static string PropertyName_CompletedDate = nameof(CompletedDate);
public static string PropertyName_CompletedNotice = nameof(CompletedNotice);
public static string PropertyName_TaskDescription = nameof(TaskDescription);
public static string PropertyName_CompletedUser = nameof(CompletedUser);
public static string PropertyName_TaskDescription = nameof(TaskDescription);
private bool _AllDay;
private string _Description;
private DateTime _End;
private string _Location;
private string _RecurrenceInfo;
private DateTime _Start;
private int _Status;
private string _Subject;
private int _Type;
private Dictionary<string, object> _CustomFields;
private bool _IsPrivate;
private bool _AllDay;
private string _Description;
private DateTime _End;
private string _Location;
private string _RecurrenceInfo;
private DateTime _Start;
private int _Status;
private string _Subject;
private int _Type;
private Dictionary<string, object> _CustomFields;
private bool _IsPrivate;
private ObservableCollection<Employee2SchedulerAppointmentDC> _EmployeeList;
private List<CompactCustomerDC> _CustomerList;
private List<ResourceDC> _ResourceList;
private List<CompactSupportConceptDC> _SupportConceptList;
private CompactEmployeeDC _Originator;
private bool _IsTask;
private string _TaskDescription;
private string _CompletedNotice;
private DateTime? _CompletedDate;
private DateTime? _DueDate;
private DateTime? _DueTime;
private bool _HasServiceRecordEntry;
private List<CompactCustomerDC> _CustomerList;
private List<ResourceDC> _ResourceList;
private List<CompactSupportConceptDC> _SupportConceptList;
private CompactEmployeeDC _Originator;
private bool _IsTask;
private string _TaskDescription;
private string _CompletedNotice;
private string _CompletedUser;
private DateTime? _CompletedDate;
private DateTime? _DueDate;
private DateTime? _DueTime;
private bool _HasServiceRecordEntry;
private bool _IsArchived;
private long? _AbsenceTimeOid;
private bool _IsCustomerAbsenceTime;
private List<ServiceRecordDC> _ServiceRecordList;
public bool HasServiceRecordEntry
public bool HasServiceRecordEntry
{
get => _HasServiceRecordEntry;
set
@@ -75,11 +82,30 @@ namespace BeWo.Scheduler.ViewModel
}
}
public bool IsArchived
{
get => _IsArchived;
set
{
if(AreDifferent(_IsArchived, value))
{
_IsArchived = value;
StoreDirtyInformation((value && DataContract.ActivationType == ActivationTypeId.Active) || (!value && DataContract.ActivationType == ActivationTypeId.Archived), nameof(IsArchived));
FirePropertyChanged(nameof(IsArchived));
}
}
}
public DateTime? AbsenceTimeStart { get; set; }
public DateTime? AbsenceTimeEnd { get; set; }
public long? AbsenceTimeOid { get; set; }
public bool IsCustomerAbsenceTime { get; set; }
public object Id { get; set; }
public int LabelId { get; set; }
public Dictionary<string, object> CustomFields
{
get => _CustomFields ?? (_CustomFields = new Dictionary<string, object>());
@@ -94,20 +120,23 @@ namespace BeWo.Scheduler.ViewModel
var customFieldStorage = (CustomFieldStorage) value[nameof(CustomFieldStorage)];
EmployeeList = customFieldStorage.EmployeeList;
CustomerList = customFieldStorage.CustomerList;
ResourceList = customFieldStorage.ResourceList;
Originator = customFieldStorage.Originator;
IsPrivate = customFieldStorage.IsPrivate;
IsTask = customFieldStorage.IsTask;
DueDate = customFieldStorage.DueDate;
TaskDescription = customFieldStorage.TaskDescription;
CompletedDate = customFieldStorage.CompletedDate;
CompletedNotice = customFieldStorage.CompletedNotice;
SupportConceptList = customFieldStorage.SupportConceptList;
}
EmployeeList = customFieldStorage.EmployeeList;
CustomerList = customFieldStorage.CustomerList;
ResourceList = customFieldStorage.ResourceList;
Originator = customFieldStorage.Originator;
IsPrivate = customFieldStorage.IsPrivate;
IsTask = customFieldStorage.IsTask;
DueDate = customFieldStorage.DueDate;
TaskDescription = customFieldStorage.TaskDescription;
CompletedDate = customFieldStorage.CompletedDate;
CompletedNotice = customFieldStorage.CompletedNotice;
CompletedUser = customFieldStorage.CompletedUser;
SupportConceptList = customFieldStorage.SupportConceptList;
AbsenceTimeOid = customFieldStorage.AbsenceTimeOid;
IsCustomerAbsenceTime = customFieldStorage.IsCustomerAbsenceTime;
}
}
public int EventType
{
get => _Type;
@@ -473,7 +502,28 @@ namespace BeWo.Scheduler.ViewModel
}
}
public DateTime? CompletedDate
public string CompletedUser
{
get => _CompletedUser;
set
{
if (AreDifferent(_CompletedUser, value))
{
_CompletedUser = value;
if (IsAbsenceTime)
{
return;
}
StoreDirtyInformation(AreDifferent(DataContract.CompletedUser, value), nameof(CompletedUser));
FirePropertyChanged(nameof(CompletedUser));
}
}
}
public DateTime? CompletedDate
{
get => _CompletedDate;
@@ -530,24 +580,59 @@ namespace BeWo.Scheduler.ViewModel
}
}
public SchedulerAppointmentVM(SchedulerAppointmentDC pDC) : base(pDC, pDC.SchedulerAppointmentOid == null)
public Guid? RecurrenceId => BS.Shared.Core.Utils.GetRecurrenceIdFromRecurrenceInfo(RecurrenceInfo);
public int RecurrenceIndex => BS.Shared.Core.Utils.GetRecurrenceIndexFromRecurrenceInfo(RecurrenceInfo);
public bool CanBeEdited { get; set; } = true;
public SchedulerAppointmentVM(SchedulerAppointmentDC pDC) : base(pDC, pDC.SchedulerAppointmentOid == null)
{
IsTeilnahmeBestaetigung = pDC.IsTeilnahmeBestaetigung;
}
CanBeEdited = pDC.CanBeEdited;
}
// Wird für die Druckfunktion von Serienterminen benutzt:
public SchedulerAppointmentVM(Appointment appointment) : base(new SchedulerAppointmentDC(), true)
{
_AllDay = appointment.AllDay;
_Start = appointment.Start;
_End = appointment.End;
_Location = appointment.Location;
_Description = appointment.Description;
_Subject = appointment.Subject;
_Type = (int) appointment.Type;
_IsPrivate = appointment.CF_IsPrivate();
_EmployeeList = appointment.CF_EmployeeList();
_CustomerList = appointment.CF_CustomerList();
_ResourceList = appointment.CF_ResourceList();
_Originator = appointment.CF_Originator();
_AbsenceTimeOid = appointment.CF_AbsenceTimeOid();
_IsCustomerAbsenceTime = appointment.CF_IsCustomerAbsenceTime();
if(!(appointment.RecurrenceInfo is null) && appointment.Type == AppointmentType.Occurrence)
{
_RecurrenceInfo = $"<RecurrenceInfo Id=\"{appointment.RecurrenceInfo.Id}\" Index=\"{appointment.RecurrenceIndex}\" />";
}
}
// Wird für Abwesenheiten genutzt
public SchedulerAppointmentVM(bool pAllDay, string pSubject, DateTime pStart, DateTime pEnd, CompactEmployeeDC pOriginator, DateTime? absenceTimeStart, DateTime? absenceTimeEnd)
public SchedulerAppointmentVM(bool pAllDay, string pSubject, DateTime pStart, DateTime pEnd, CompactEmployeeDC pOriginator, DateTime? absenceTimeStart, DateTime? absenceTimeEnd, long absenceTimeOid, bool isCustomerAbsenceTime)
{
_AllDay = pAllDay;
_Subject = pSubject;
_Start = pStart;
_End = pEnd;
_AllDay = pAllDay;
_Subject = pSubject;
_Start = pStart;
_End = pEnd;
_Originator = pOriginator;
AbsenceTimeStart = absenceTimeStart;
AbsenceTimeEnd = absenceTimeEnd;
AbsenceTimeEnd = absenceTimeEnd;
IsAbsenceTime = true;
AbsenceTimeOid = absenceTimeOid;
IsAbsenceTime = true;
IsCustomerAbsenceTime = isCustomerAbsenceTime;
UpdateCustomFields();
}
@@ -579,9 +664,14 @@ namespace BeWo.Scheduler.ViewModel
_IsTask = pDataContract.IsTask;
_TaskDescription = pDataContract.TaskDescription;
_CompletedNotice = pDataContract.CompletedNotice;
_CompletedDate = pDataContract.CompletedDate;
_CompletedUser = pDataContract.CompletedUser;
_CompletedDate = pDataContract.CompletedDate;
_SupportConceptList = pDataContract.SupportConceptList ?? new List<CompactSupportConceptDC>();
_HasServiceRecordEntry = pDataContract.HasServiceRecordEntry;
_ServiceRecordList = pDataContract.ServiceRecordList ?? new List<ServiceRecordDC>();
_IsArchived = pDataContract.ActivationType == ActivationTypeId.Archived;
CanBeEdited = pDataContract.CanBeEdited;
if(pDataContract.DueDate.HasValue)
@@ -610,10 +700,12 @@ namespace BeWo.Scheduler.ViewModel
pDataContract.IsTask = _IsTask;
pDataContract.TaskDescription = _TaskDescription;
pDataContract.CompletedNotice = _CompletedNotice;
pDataContract.CompletedDate = _CompletedDate;
pDataContract.CompletedUser = _CompletedUser;
pDataContract.CompletedDate = _CompletedDate;
pDataContract.SupportConceptList = _SupportConceptList;
pDataContract.HasServiceRecordEntry = _HasServiceRecordEntry;
pDataContract.ActivationType = _IsArchived ? ActivationTypeId.Archived : ActivationTypeId.Active;
pDataContract.ServiceRecordList = _ServiceRecordList;
if(_DueDate.HasValue && _DueTime.HasValue)
{
@@ -624,6 +716,8 @@ namespace BeWo.Scheduler.ViewModel
pDataContract.DueDate = _DueDate;
}
pDataContract.CanBeEdited = CanBeEdited;
return pDataContract;
}
@@ -660,7 +754,7 @@ namespace BeWo.Scheduler.ViewModel
var areEqual =
Equals(Subject, obj.Subject) &&
LabelId == obj.LabelId &&
LabelKey == obj.LabelKey &&
AllDay == obj.AllDay &&
IsPrivate == obj.IsPrivate &&
IsDirty == obj.IsDirty &&
@@ -670,7 +764,8 @@ namespace BeWo.Scheduler.ViewModel
Equals(CompletedDate, obj.CompletedDate) &&
Equals(DueDate, obj.DueDate) &&
Equals(CompletedNotice, obj.CompletedNotice) &&
customFieldsAreEqual &&
Equals(CompletedUser, obj.CompletedUser) &&
customFieldsAreEqual &&
CustomerList.AreEqual(obj.CustomerList) &&
Equals(Description, obj.Description) &&
EmployeeList.AreEqual(obj.EmployeeList) &&
@@ -679,7 +774,8 @@ namespace BeWo.Scheduler.ViewModel
Equals(Location, obj.Location) &&
ResourceList.AreEqual(obj.ResourceList) &&
Equals(RecurrenceInfo, obj.RecurrenceInfo) &&
HasServiceRecordEntry == obj.HasServiceRecordEntry;
HasServiceRecordEntry == obj.HasServiceRecordEntry
;
return areEqual;
}
@@ -691,13 +787,55 @@ namespace BeWo.Scheduler.ViewModel
: base.GetHashCode();
}
public override bool IsDirty => !IsAbsenceTime && base.IsDirty;
public override bool IsDirty
{
get
{
public new bool IsNew
return (!IsAbsenceTime && base.IsDirty) || EmployeesChanged();
}
}
private bool EmployeesChanged()
{
if (_EmployeeList != null && this.DataContract.EmployeeList != null && _EmployeeList.Count != this.DataContract.EmployeeList.Count)
{
return true;
}
return false;
}
public new bool IsNew
{
get => !IsAbsenceTime && base.IsNew;
set => base.IsNew = value;
}
public long? LabelKey { get; set; }
public List<ServiceRecordDC> ServiceRecordList
{
get => _ServiceRecordList ?? (ServiceRecordList = new List<ServiceRecordDC>());
set
{
if(!AreDifferent(_ServiceRecordList, value))
{
return;
}
_ServiceRecordList = value;
if(IsAbsenceTime)
{
return;
}
StoreDirtyInformation(AreDifferent(DataContract.ServiceRecordList, value), nameof(ServiceRecordList));
FirePropertyChanged(nameof(ServiceRecordList));
}
}
}
}

View File

@@ -20,7 +20,11 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
{
var substitutionStartingDayCountCondition = SubstitutionStartingDayCountCondition(viewModel);
if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
if (viewModel.VertretungsStatus == VertretungsStatus.KlientUndMitarbeiterKrank || viewModel.VertretungsStatus == VertretungsStatus.MaKrankKeineVertretungBenoetigt)
{
unwantedSubstitutionList.AddIfNotIn(viewModel);
}
else if (substitutionStartingDayCountCondition || viewModel.Vertretung?.VertretenderMitarbeiterOid != null || viewModel.Customer != null && viewModel.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted)
{
unwantedSubstitutionList.AddIfNotIn(viewModel);
}

View File

@@ -7,9 +7,10 @@
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Title="Vertretung auswählen" Height="650" Width="750" WindowStartupLocation="CenterScreen"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent">
<GroupBox Header="Vertretenden auswählen" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
<GroupBox Header="{markup:Translate Vertretenden auswählen}" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
<Grid>
<Grid Background="White" x:Name="rootGroupBoxMitarbeiter" >
@@ -38,7 +39,7 @@
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Header="Mitarbeiter Wunsch Kriterien" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="{markup:Translate Mitarbeiter Wunsch Kriterien}" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- Ready machen für teilweise funktion / Combobox zur auswahl der tokens und TextBox zur anzeige der ausgewählten tokens -->
<Grid>
@@ -62,7 +63,7 @@
</GroupBox>
<GroupBox Header="Mitarbeiter Ausschluss Kriterien" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<GroupBox Header="{markup:Translate Mitarbeiter Ausschluss Kriterien}" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<!-- Ready machen für teilweise funktion <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <RowDefinition Height="Auto"/>-->
@@ -85,9 +86,9 @@
</Grid>
</GroupBox>
<GroupBox Header="Klient Wunsch Kriterien" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="{markup:Translate Klient Wunsch Kriterien}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
@@ -110,7 +111,7 @@
<!-- ############################################################################################################## -->
</GroupBox>
<GroupBox Header="Klient Ausschluss Kriterien" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox Header="{markup:Translate Klient Ausschluss Kriterien}" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
@@ -149,8 +150,8 @@
<RowDefinition Height="60"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Klienten PLZ">
<GroupBox Grid.Row="0" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="{markup:Translate Klienten PLZ}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>

View File

@@ -584,7 +584,7 @@ namespace BeWo.SchulbegleitenderDienst
}
else
{
MessageBox.Show("Bitte wählen sie zuerst einen Klienten aus.");
MessageBox.Show("Bitte wählen sie zuerst " + BS.Shared.Translation.Translator.Translate("einen Klienten") + " aus.");
}
}
}

View File

@@ -91,7 +91,7 @@
<controls:PopupNonTopmost Topmost="False" x:Name="popup_newMitarbeiterVertretung" Width="300" StaysOpen="True" Placement="MousePoint" Grid.Row="1" PlacementTarget="{Binding ElementName=MitarbeiterVertretung_Button}">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_newEnvironmentPerson" Header="Mitarbeiter/in hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<GroupBox x:Name="groupbox_newEnvironmentPerson" Header="{markup:Translate Mitarbeiter/in hinzufügen}" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -182,7 +182,7 @@
<controls:PopupNonTopmost Topmost="False" x:Name="popup_newKlientVertretung" Width="300" StaysOpen="True" Placement="MousePoint" Grid.Row="1" PlacementTarget="{Binding ElementName=KlientVertretung_Button}">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_newKlientVertretung" Header="Klient/in hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<GroupBox x:Name="groupbox_newKlientVertretung" Header="{markup:Translate Klient/in hinzufügen}" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -203,7 +203,7 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Klient/in" />
<Label Grid.Row="0" Grid.Column="0" Content="{markup:Translate Klient/in}" />
<Label Grid.Row="1" Grid.Column="0" Content="Abwesenheitskategorie" />
<Label Grid.Row="2" Grid.Column="0" Content="Meldung vom" />
<Label Grid.Row="3" Grid.Column="0" Content="Startdatum" />
@@ -295,7 +295,7 @@
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}" >
<dxg:GridControl x:Name="GridDataControlTagesansichtMitarbeiter" Visibility="Visible" Grid.Row="0" Margin="5,5,5,5" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Employee" Width="125" ReadOnly="True" Header="Mitarbeiter/in">
<dxg:GridColumn FieldName="Employee" Width="125" ReadOnly="True" Header="{markup:Translate Mitarbeiter/in}">
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.MitarbeiterStatusColor}" />
@@ -303,7 +303,7 @@
</dxg:GridColumn.CellStyle>
</dxg:GridColumn>
<dxg:GridColumn FieldName="ArbeitszeitenString" Header="Arbeitszeit" ReadOnly="True" Width="100"/>
<dxg:GridColumn FieldName="Customer" Header="Klient/in" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Customer" Header="{markup:Translate Klient/in}" Width="125" ReadOnly="True" >
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.KlientStatusColor}" />
@@ -352,7 +352,7 @@
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Employee" Width="125" ReadOnly="True" Header="Mitarbeiter/in">
<dxg:GridColumn FieldName="Employee" Width="125" ReadOnly="True" Header="{markup:Translate Mitarbeiter/in}">
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.MitarbeiterStatusColor}" />
@@ -362,7 +362,7 @@
<dxg:GridColumn FieldName="ArbeitszeitenString" Header="Arbeitszeit" ReadOnly="True" Width="100"/>
<dxg:GridColumn FieldName="Customer" Header="Klient/in" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Customer" Header="{markup:Translate Klient/in}" Width="125" ReadOnly="True" >
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
@@ -422,11 +422,11 @@
<dxg:GridControl x:Name="GridDataControlWochenansichtMitarbeiter" Grid.Row="1" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" BorderBrush="Black" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Employee" Header="Mitarbeiter/in" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Employee" Header="{markup:Translate Mitarbeiter/in}" Width="125" ReadOnly="True" >
</dxg:GridColumn>
<dxg:GridColumn FieldName="Customer" Header="Klient/in" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Customer" Header="{markup:Translate Klient/in}" Width="125" ReadOnly="True" >
</dxg:GridColumn>
@@ -574,11 +574,11 @@
<dxg:GridControl x:Name="GridDataControlWochenansichtKlient" Grid.Row="2" Grid.ColumnSpan="3" AllowDrop="true" Margin="5,5,5,5" VerticalContentAlignment="Center" BorderBrush="Black" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Employee" Header="Mitarbeiter / in" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Employee" Header="{markup:Translate Mitarbeiter/in}" Width="125" ReadOnly="True" >
</dxg:GridColumn>
<dxg:GridColumn FieldName="Customer" Header="Klient/in" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Customer" Header="{markup:Translate Klient/in}" Width="125" ReadOnly="True" >
</dxg:GridColumn>
@@ -619,7 +619,7 @@
<!-- Umbauen -->
<dxg:GridColumn FieldName="Employee" Header="Mitarbeiter" Width="125" ReadOnly="True" >
<dxg:GridColumn FieldName="Employee" Header="{markup:Translate Mitarbeiter}" Width="125" ReadOnly="True" >
<!-- <dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="White" />
@@ -640,7 +640,7 @@
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick" >
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaMo" ToolTip="Klient/in hinzufügen"/>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaMo" ToolTip="{markup:Translate Klient/in hinzufügen}"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>
@@ -670,7 +670,7 @@
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaDi" ToolTip="Klient/in hinzufügen"/>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaDi" ToolTip="{markup:Translate Klient/in hinzufügen}"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>
@@ -700,7 +700,7 @@
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaMi" ToolTip="Klient/in hinzufügen"/>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaMi" ToolTip="{markup:Translate Klient/in hinzufügen}"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>
@@ -730,7 +730,7 @@
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaDo" ToolTip="Klient/in hinzufügen"/>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaDo" ToolTip="{markup:Translate Klient/in hinzufügen}"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>
@@ -760,7 +760,7 @@
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaFr" ToolTip="Klient/in hinzufügen"/>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaFr" ToolTip="{markup:Translate Klient/in hinzufügen}"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>
@@ -790,7 +790,7 @@
<dxe:ButtonEditSettings.Buttons >
<dxe:ButtonInfo GlyphKind="Custom" ButtonKind="Simple" Click="AddKlientToMitarbeiter_OnClick">
<dxe:ButtonInfo.Content>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaSa" ToolTip="Klient/in hinzufügen"/>
<Image Source ="../Ressources/Icons/Search.png" Width="20" Height="15" RenderOptions.BitmapScalingMode="HighQuality" x:Name="SearchImageButtonMaSa" ToolTip="{markup:Translate Klient/in hinzufügen}"/>
</dxe:ButtonInfo.Content>
</dxe:ButtonInfo>
</dxe:ButtonEditSettings.Buttons>

View File

@@ -550,7 +550,7 @@ namespace BeWo.SchulbegleitenderDienst
}
else
{
MessageBox.Show("Bitte wählen sie eine/n Mitarbeiter/in und eine Abwesenheitskategorie aus.");
MessageBox.Show(BS.Shared.Translation.Translator.Translate("Bitte wählen sie eine/n Mitarbeiter/in und eine Abwesenheitskategorie aus."));
}
@@ -746,7 +746,7 @@ namespace BeWo.SchulbegleitenderDienst
}
else
{
MessageBox.Show("Bitte wählen Sie eine/n Klient/in und eine Abwesenheitskategorie aus.");
MessageBox.Show("Bitte wählen Sie " + BS.Shared.Translation.Translator.Translate("eine/n Klient/in") + " und eine Abwesenheitskategorie aus.");
}
@@ -868,21 +868,21 @@ namespace BeWo.SchulbegleitenderDienst
if (e.MenuInfo.Column.FieldName == "Kunde")
{
BarButtonItem x = new BarButtonItem() {Content = "Klient/in öffnen"};
BarButtonItem x = new BarButtonItem() {Content = BS.Shared.Translation.Translator.Translate("Klient/in öffnen") };
x.ItemClick += Kundeninfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "KrankerMitarbeiter")
{
BarButtonItem x = new BarButtonItem() {Content = "Mitarbeiter/in öffnen"};
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
x.ItemClick += Mitarbeiterinfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "Vertretung")
{
BarButtonItem s = new BarButtonItem() {Content = "Mitarbeiter/in öffnen"};
BarButtonItem s = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
s.ItemClick += MitarbeiterVertretunginfo_OnClick;
e.Customizations.Add(s);
}
@@ -905,21 +905,21 @@ namespace BeWo.SchulbegleitenderDienst
if (e.MenuInfo.Column.FieldName == "Kunde")
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Klient/in öffnen") };
x.ItemClick += Kundeninfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "KrankerMitarbeiter")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
x.ItemClick += Mitarbeiterinfo_OnClick;
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "Vertretung")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem s = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
s.ItemClick += MitarbeiterVertretunginfo_OnClick;
e.Customizations.Add(s);
}
@@ -946,14 +946,14 @@ namespace BeWo.SchulbegleitenderDienst
if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Klient/in öffnen") };
x.ItemClick += Kundeninfo_OnClick; // bearbeiten
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "MaKrank")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
x.ItemClick += Mitarbeiterinfo_OnClick; // eee
e.Customizations.Add(x);
}
@@ -963,7 +963,7 @@ namespace BeWo.SchulbegleitenderDienst
e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" ||
e.MenuInfo.Column.FieldName == "VertretungSo")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem s = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick;
e.Customizations.Add(s);
_mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName;
@@ -986,14 +986,14 @@ namespace BeWo.SchulbegleitenderDienst
if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Klient/in öffnen") };
x.ItemClick += Kundeninfo_OnClick; // bearbeiten
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "MaKrank")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
x.ItemClick += Mitarbeiterinfo_OnClick; // eee
e.Customizations.Add(x);
}
@@ -1003,7 +1003,7 @@ namespace BeWo.SchulbegleitenderDienst
e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" ||
e.MenuInfo.Column.FieldName == "VertretungSo")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem s = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick;
e.Customizations.Add(s);
_mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName;
@@ -1026,14 +1026,14 @@ namespace BeWo.SchulbegleitenderDienst
if (e.MenuInfo.Column.FieldName == "Kunde") // FieldNames umbennenen
{
BarButtonItem x = new BarButtonItem() { Content = "Klient/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Klient/in öffnen") };
x.ItemClick += Kundeninfo_OnClick; // bearbeiten
e.Customizations.Add(x);
}
if (e.MenuInfo.Column.FieldName == "MaKrank")
{
BarButtonItem x = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem x = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
x.ItemClick += Mitarbeiterinfo_OnClick; // eee
e.Customizations.Add(x);
}
@@ -1043,7 +1043,7 @@ namespace BeWo.SchulbegleitenderDienst
e.MenuInfo.Column.FieldName == "VertretungFr" || e.MenuInfo.Column.FieldName == "VertretungSa" ||
e.MenuInfo.Column.FieldName == "VertretungSo")
{
BarButtonItem s = new BarButtonItem() { Content = "Mitarbeiter/in öffnen" };
BarButtonItem s = new BarButtonItem() { Content = BS.Shared.Translation.Translator.Translate("Mitarbeiter/in öffnen") };
s.ItemClick += MitarbeiterVertretunginfoWochenanzeige_OnClick;
e.Customizations.Add(s);
_mitarbeiterVertretungWocheninfo = e.MenuInfo.Column.FieldName;
@@ -1173,12 +1173,12 @@ namespace BeWo.SchulbegleitenderDienst
}
}
else
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
MessageBox.Show(BS.Shared.Translation.Translator.Translate("Es wurde der Vertretung kein Mitarbeiter zugeteilt"));
}
else
{
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
MessageBox.Show(BS.Shared.Translation.Translator.Translate("Es wurde der Vertretung kein Mitarbeiter zugeteilt"));
}
}
@@ -1225,12 +1225,12 @@ namespace BeWo.SchulbegleitenderDienst
));
}
else
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
MessageBox.Show(BS.Shared.Translation.Translator.Translate("Es wurde der Vertretung kein Mitarbeiter zugeteilt"));
}
else
{
MessageBox.Show("Es wurde der Vertretung kein Mitarbeiter zugeteilt");
MessageBox.Show(BS.Shared.Translation.Translator.Translate("Es wurde der Vertretung kein Mitarbeiter zugeteilt"));
}
}

View File

@@ -107,7 +107,7 @@
</Button>
<controls:PopupNonTopmost Topmost="False" x:Name="PopupNewMitarbeiterVertretung" Width="300" StaysOpen="True" Placement="MousePoint" PlacementTarget="{Binding ElementName=MitarbeiterVertretungButton}">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="GroupboxNewEnvironmentPerson" Header="Mitarbeiter/in hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<GroupBox x:Name="GroupboxNewEnvironmentPerson" Header="{markup:Translate Mitarbeiter/in hinzufügen}" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -127,7 +127,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Mitarbeiter/in" />
<Label Grid.Row="0" Grid.Column="0" Content="{markup:Translate Mitarbeiter/in}" />
<Label Grid.Row="2" Grid.Column="0" Content="Abwesenheitskategorie" />
<Label Grid.Row="3" Grid.Column="0" Content="Meldung vom" />
<Label Grid.Row="4" Grid.Column="0" Content="Startdatum" />
@@ -171,7 +171,7 @@
<controls:PopupNonTopmost Topmost="False" x:Name="PopupNewKlientVertretung" Width="300" StaysOpen="True" Placement="MousePoint" PlacementTarget="{Binding ElementName=KlientVertretungButton}">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="GroupboxNewKlientVertretung" Header="Klient/in hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<GroupBox x:Name="GroupboxNewKlientVertretung" Header="{markup:Translate Klient/in hinzufügen}" Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -192,7 +192,7 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Klient/in" />
<Label Grid.Row="0" Grid.Column="0" Content="{markup:Translate Klient/in}" />
<Label Grid.Row="1" Grid.Column="0" Content="Abwesenheitskategorie" />
<Label Grid.Row="2" Grid.Column="0" Content="Meldung vom" />
<Label Grid.Row="3" Grid.Column="0" Content="Startdatum" />
@@ -211,7 +211,7 @@
<CheckBox Grid.Column="1" Grid.Row="5" Content="ganztägig" Unchecked="KlientVertretungsToggleButton_OnUnchecked" Checked="KlientVertretungsToggleButton_OnChecked"
Grid.ColumnSpan="2" HorizontalAlignment="Left" x:Name="KVCheckBox" Margin="3"/>
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Mask="HH:mm" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
<dxe:DateEdit x:Name="KVDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Margin="3" Height="23" EditValueChanged="KVDatepickerBis_OnEditValueChanged"/>
@@ -262,7 +262,7 @@
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}" >
<dxg:GridControl x:Name="GridDataControlTagesansichtMitarbeiter" Visibility="Visible" Margin="5" VerticalContentAlignment="Stretch" ItemsSource="{Binding Path=AbsentEmployeesDayViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="Mitarbeiter/in" SortOrder="Ascending">
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="{markup:Translate Mitarbeiter/in}" SortOrder="Ascending">
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.MitarbeiterStatusColor, Converter={StaticResource SubstitutionBrushConverter}}" />
@@ -278,7 +278,7 @@
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" ReadOnly="True" >
<dxg:GridColumn FieldName="CustomerName" Header="{markup:Translate Klient/in}" ReadOnly="True" >
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.KlientStatusColor, Converter={StaticResource SubstitutionBrushConverter}}" />
@@ -406,7 +406,7 @@
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl x:Name="GridDataControlTagesansichtKlient" Visibility="Visible" Margin="5" VerticalContentAlignment="Stretch" ItemsSource="{Binding Path=AbsentCustomersDayViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="Mitarbeiter/in" SortOrder="Ascending">
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="{markup:Translate Mitarbeiter/in}" SortOrder="Ascending">
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.MitarbeiterStatusColor, Converter={StaticResource SubstitutionBrushConverter}}" />
@@ -424,7 +424,7 @@
</dxg:GridColumn>
<dxg:GridColumn FieldName="AssistanceTimeEntry" Header="Betreuungszeiten" ReadOnly="False">
</dxg:GridColumn>
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" ReadOnly="True">
<dxg:GridColumn FieldName="CustomerName" Header="{markup:Translate Klient/in}" ReadOnly="True">
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}">
<Setter Property="Background" Value="{Binding RowData.Row.KlientStatusColor, Converter={StaticResource SubstitutionBrushConverter}}" />
@@ -517,7 +517,7 @@
<TextBlock Text="{Binding Row.SchulbegleitenderDienstString}" Visibility="{Binding Path=Text, Converter={StaticResource StringLengthVisibilityConverter}, RelativeSource={RelativeSource Self}}" />
<Separator Visibility="{Binding Row.EmployeeAddressString, Converter={StaticResource StringLengthVisibilityConverter}}" />
<TextBlock FontWeight="Bold" Text="Mitarbeiter/in:" Visibility="{Binding Row.EmployeeAddressString, Converter={StaticResource StringLengthVisibilityConverter}}" />
<TextBlock FontWeight="Bold" Text="{markup:Translate Mitarbeiter/in:}" Visibility="{Binding Row.EmployeeAddressString, Converter={StaticResource StringLengthVisibilityConverter}}" />
<TextBlock Text="{Binding Row.EmployeeAddressString}" Visibility="{Binding Path=Text, Converter={StaticResource StringLengthVisibilityConverter}, RelativeSource={RelativeSource Self}}" />
</StackPanel>
</DataTemplate>
@@ -536,7 +536,7 @@
<GroupBox Grid.Row="2" Header="{markup:Translate Kein Vertretungsbedarf}" Style="{StaticResource ObjectEditGroupBox}">
<dxg:GridControl x:Name="SubstitutionUnwantedDayViewGridControl" AllowDrop="True" Margin="5" BorderBrush="Black" VerticalContentAlignment="Stretch" ItemsSource="{Binding Path=SubstitutionUnwantedDayViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="Mitarbeiter/in abwesend" SortOrder="Ascending">
<dxg:GridColumn FieldName="EmployeeName" ReadOnly="True" Header="{markup:Translate Mitarbeiter/in abwesend}" SortOrder="Ascending">
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.MitarbeiterStatusColor, Converter={StaticResource SubstitutionBrushConverter}}" />
@@ -552,7 +552,7 @@
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Vertreter" Header="Mitarbeiter/in vertretend" x:Name="SubUnwantedSubstitutionColumn" ReadOnly="True" AllowEditing="False">
<dxg:GridColumn FieldName="Vertreter" Header="{markup:Translate Mitarbeiter/in vertretend}" x:Name="SubUnwantedSubstitutionColumn" ReadOnly="True" AllowEditing="False">
<dxg:GridColumn.DisplayTemplate>
<ControlTemplate>
<Grid>
@@ -572,7 +572,7 @@
</ControlTemplate>
</dxg:GridColumn.DisplayTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" ReadOnly="True" >
<dxg:GridColumn FieldName="CustomerName" Header="{markup:Translate Klient/in}" ReadOnly="True" >
<dxg:GridColumn.CellStyle>
<Style TargetType="{x:Type dxg:LightweightCellEditor}" >
<Setter Property="Background" Value="{Binding RowData.Row.KlientStatusColor}" />
@@ -661,7 +661,7 @@
<GroupBox Header="{markup:Translate Abwesenheiten Mitarbeiter}" Style="{StaticResource ObjectEditGroupBox}">
<dxg:GridControl x:Name="GridDataControlWochenansichtMitarbeiter" AllowDrop="true" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" ItemsSource="{Binding AbsentEmployeesWeekViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
<dxg:GridColumn FieldName="EmployeeName" Header="{markup:Translate Mitarbeiter/in}" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
<dxg:GridColumn.CellToolTipTemplate>
<DataTemplate>
<StackPanel>
@@ -679,7 +679,7 @@
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" ReadOnly="True" >
<dxg:GridColumn FieldName="CustomerName" Header="{markup:Translate Klient/in}" ReadOnly="True" >
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="5,5,0,0">
@@ -965,7 +965,7 @@
<GroupBox Grid.Row="1" Header="{markup:Translate Abwesenheiten Klienten}" Style="{StaticResource ObjectEditGroupBox}" Margin="0,10,0,0">
<dxg:GridControl x:Name="GridDataControlWochenansichtKlient" AllowDrop="true" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black" ItemsSource="{Binding AbsentCustomersWeekViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
<dxg:GridColumn FieldName="EmployeeName" Header="{markup:Translate Mitarbeiter/in}" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="5,5,0,0">
@@ -976,7 +976,7 @@
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in" Width="100" ReadOnly="True" AllowBestFit="True">
<dxg:GridColumn FieldName="CustomerName" Header="{markup:Translate Klient/in}" Width="100" ReadOnly="True" AllowBestFit="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="5,5,0,0">
@@ -1162,7 +1162,7 @@
<dxg:GridControl AllowDrop="True" Margin="5" VerticalContentAlignment="Stretch" BorderBrush="Black"
x:Name="SubstitutionUnwantedWeekViewGridControl" ItemsSource="{Binding SubstitutionUnwantedWeekViewList, UpdateSourceTrigger=PropertyChanged}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="EmployeeName" Header="Mitarbeiter/in abwesend" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
<dxg:GridColumn FieldName="EmployeeName" Header="{markup:Translate Mitarbeiter/in abwesend}" ReadOnly="True" SortOrder="Ascending" AllowBestFit="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="5,5,0,0">
@@ -1173,7 +1173,7 @@
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="CustomerName" Header="Klient/in abwesend" ReadOnly="True" AllowBestFit="True">
<dxg:GridColumn FieldName="CustomerName" Header="{markup:Translate Klient/in abwesend}" ReadOnly="True" AllowBestFit="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="5,5,0,0">

View File

@@ -274,7 +274,7 @@ namespace BeWo.SchulbegleitenderDienst
}
else
{
MessageBox.Show("Bitte wählen sie eine/n Mitarbeiter/in und eine Abwesenheitskategorie aus.");
MessageBox.Show(BS.Shared.Translation.Translator.Translate("Bitte wählen Sie eine/n Mitarbeiter/in und eine Abwesenheitskategorie aus."));
}
@@ -481,7 +481,7 @@ namespace BeWo.SchulbegleitenderDienst
}
else
{
MessageBox.Show("Bitte wählen Sie eine/n Klient/in und eine Abwesenheitskategorie aus.");
MessageBox.Show("Bitte wählen Sie " + BS.Shared.Translation.Translator.Translate("eine/n Klient/in") + " und eine Abwesenheitskategorie aus.");
}
if(isValid)
@@ -563,7 +563,7 @@ namespace BeWo.SchulbegleitenderDienst
{
if (isOverlapping)
{
MessageBox.Show($"In dem angegebenen Zeitraum({absenceTime.Start.Value:dd.MM.yyyy} - {absenceTime.End.Value:dd.MM.yyyy}) existiert bereits eine Abwesehenheit von Klient {_CurrentCustomer.SimpleDescription}. Die Abwesenheit konnte nicht angelegt werden.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Warning);
MessageBox.Show($"In dem angegebenen Zeitraum({absenceTime.Start.Value:dd.MM.yyyy} - {absenceTime.End.Value:dd.MM.yyyy}) existiert bereits eine Abwesenheit von " + BS.Shared.Translation.Translator.Translate("Klient") + " " + _CurrentCustomer.SimpleDescription + ". Die Abwesenheit konnte nicht angelegt werden.", "Fehler", MessageBoxButton.OK, MessageBoxImage.Warning);
}
else
{
@@ -621,6 +621,15 @@ namespace BeWo.SchulbegleitenderDienst
var barButtonItem2 = new BarButtonItem {Content = "Steckbrief anzeigen"};
barButtonItem2.ItemClick += ShowCharacteristics;
e.Customizations.Add(barButtonItem2);
var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
if (selectedViewModel != null && selectedViewModel.Vertretung != null)
{
var barButtonItem3 = new BarButtonItem {Content = "Vertretung löschen", Tag = e.Source.DataControl.SelectedItem };
barButtonItem3.ItemClick += DeleteVertretung_OnClick;
e.Customizations.Add(barButtonItem3);
}
}
private void ShowCharacteristics(object sender, RoutedEventArgs e)
@@ -679,6 +688,18 @@ namespace BeWo.SchulbegleitenderDienst
}
}
//private void DeleteVertretung_OnClick(object sender, RoutedEventArgs e)
//{
// if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
// {
// var selectedViewModel = (TagesansichtVM)GridDataControlTagesansichtMitarbeiter.SelectedItem;
// _Tagesvertretung.DeleteVertretung(selectedViewModel);
// LadeTagesansicht(Datepicker.DateTime.Date);
// }
//}
private void DeleteKlientKrankmeldung_OnClick(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("Möchten Sie die Abwesenheit wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
@@ -693,6 +714,9 @@ namespace BeWo.SchulbegleitenderDienst
private static bool? ShowDeletionMessageBox(AbsenceTimeDC absenceTime)
{
// erstmal nur ganze Abwesenheit
return true;
if(absenceTime.Start != null && absenceTime.End != null && absenceTime.Start.Value.Date == absenceTime.End.Value.Date)
{
return true;
@@ -1033,8 +1057,16 @@ namespace BeWo.SchulbegleitenderDienst
{
var barButtonItem = new BarButtonItem {Content = "Abwesenheit löschen", Tag = e.Source.DataControl.SelectedItem};
barButtonItem.ItemClick += DeleteCustomerAbsenceTime_OnClick;
e.Customizations.Add(barButtonItem);
var selectedTagesansichtVM = (TagesansichtVM)barButtonItem.Tag;
if (selectedTagesansichtVM != null && selectedTagesansichtVM.Vertreter != null)
{
var barButtonItem2 = new BarButtonItem { Content = "Vertretung löschen", Tag = e.Source.DataControl.SelectedItem };
barButtonItem2.ItemClick += DeleteVertretung_OnClick;
e.Customizations.Add(barButtonItem2);
}
}
private void DeleteCustomerAbsenceTime_OnClick(object sender, RoutedEventArgs e)
@@ -1049,7 +1081,20 @@ namespace BeWo.SchulbegleitenderDienst
LadeTagesansicht(Datepicker.DateTime);
}
}
private void DeleteVertretung_OnClick(object sender, RoutedEventArgs e)
{
var barButtonItem = (BarButtonItem)sender;
var selectedTagesansichtVM = (TagesansichtVM)barButtonItem.Tag;
if (MessageBox.Show("Möchten Sie die Vertretung wirklich löschen?", "Abwesenheit löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
_Tagesvertretung.DeleteVertretung(selectedTagesansichtVM);
LadeTagesansicht(Datepicker.DateTime);
}
}
private void GridControlSubUnwanted_OnCellValueChanged(object sender, CellValueChangedEventArgs e)
{
_Tagesvertretung.UpdateRowData((TagesansichtVM) SubstitutionUnwantedDayViewGridControl.SelectedItem);

View File

@@ -7,6 +7,7 @@
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Title="Vertretung auswählen" SizeToContent="WidthAndHeight" AllowsTransparency="True" WindowStartupLocation="CenterScreen"
ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent" d:DataContext="{d:DesignData VertretungsSearchView}">
<Window.Resources>
@@ -44,34 +45,35 @@
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Klient/in:" Margin="3" FontWeight="Bold"/>
<Label x:Name="lblCustomerName" Content="{Binding Path=CustomerName, UpdateSourceTrigger=PropertyChanged}" Grid.Row="0" Grid.Column="1" Margin="3,3,3,0" />
<Label x:Name="lblCustomerStreet" Content="{Binding Path=CustomerStreet, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="1" Margin="3,0,3,0"/>
<Label x:Name="lblCustomerCity" Content="{Binding Path=CustomerCity, UpdateSourceTrigger=PropertyChanged}" Grid.Row="2" Grid.Column="1" Margin="3,0,3,0"/>
<Label Grid.Row="0" Grid.Column="0" Content="{markup:Translate Klient/in:}" Margin="3,2,3,0" FontWeight="Bold"/>
<Label x:Name="lblCustomerName" Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="3,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="2" Content="Schule:" Margin="10,3,3,3" FontWeight="Bold"/>
<Label x:Name="lblSchoolName" Grid.Row="0" Grid.Column="3" Margin="3,3,3,0"/>
<Label x:Name="lblSchoolStreet" Grid.Row="1" Grid.Column="3" Margin="3,0,3,0"/>
<Label x:Name="lblSchoolCity" Grid.Row="2" Grid.Column="3" Margin="3,0,3,0"/>
<Label Grid.Row="0" Grid.Column="1" Content="Schule:" Margin="15,2,2,0" FontWeight="Bold"/>
<Label x:Name="lblSchoolName" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="2" Content="Betreuungszeiten:" Margin="15,2,2,0" FontWeight="Bold"/>
<Label x:Name="lblBetreuungszeiten" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="4" Content="Klient Wunschkriterien" Margin="10,3,3,3" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="3" Margin="10,3,3,3" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="200" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<Label Grid.Row="0" Grid.Column="3" Content="{markup:Translate Klient Wunschkriterien}" Margin="15,2,3,0" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="3" Grid.RowSpan="2" Margin="15,0,3,2" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>
<Label Grid.Row="0" Grid.Column="5" Content="Klient Ausschlusskriterien" Margin="3" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="5" Grid.RowSpan="3" Margin="3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="200" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<Label Grid.Row="0" Grid.Column="4" Content="{markup:Translate Klient Ausschlusskriterien}" Margin="15,2,2,0" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="2" Margin="15,0,2,3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
</dxg:LookUpEdit.StyleSettings>
@@ -131,7 +133,7 @@
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Nachname" ReadOnly="True" Header="Nachname" SortOrder="Ascending" />
<dxg:GridColumn FieldName="Vorname" ReadOnly="True" Header="Vorname"/>
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Arbeitszeit"/>
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Betreuungszeiten"/>
<dxg:GridColumn FieldName="Postleitzahl" ReadOnly="True" Header="Postleitzahl" />
<dxg:GridColumn FieldName="Strasse" ReadOnly="True" Header="Strasse" />
<dxg:GridColumn FieldName="Stadt" ReadOnly="True" Header="Stadt" />

View File

@@ -182,33 +182,45 @@ namespace BeWo.SchulbegleitenderDienst
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
try
{
DragMove();
}
catch (Exception exception)
{
//ignore
}
}
private void SetCustomerInfos()
{
lblCustomerName.Content = string.Empty;
lblCustomerStreet.Content = string.Empty;
lblCustomerCity.Content = string.Empty;
lblSchoolName.Content = string.Empty;
lblSchoolStreet.Content = string.Empty;
lblSchoolCity.Content = string.Empty;
lblBetreuungszeiten.Content = string.Empty;
if (_Tagesansicht.Customer != null)
{
lblCustomerName.Content = _Tagesansicht.Customer.Name;
lblCustomerStreet.Content = _Tagesansicht.Customer.Street;
lblCustomerCity.Content = $"{_Tagesansicht.Customer.PostalCode} {_Tagesansicht.Customer.Town}";
{
lblCustomerName.Content = String.Format("{0}\n{1}\n{2} {3}", _Tagesansicht.Customer.Name,
_Tagesansicht.Customer.Street, _Tagesansicht.Customer.PostalCode, _Tagesansicht.Customer.Town);
}
if (_Tagesansicht.Schule != null)
if (_Tagesansicht.Schools != null && _Tagesansicht.Schools.Count > 0)
{
lblSchoolName.Content = _Tagesansicht.Schule.Name;
lblSchoolStreet.Content = _Tagesansicht.Schule.Street;
lblSchoolCity.Content = $"{_Tagesansicht.Schule.PostalCode} {_Tagesansicht.Schule.Town}";
var c2o = _Tagesansicht.Schools[0];
var schule = c2o.Organisation;
lblSchoolName.Content = String.Format("{0}\n{1}\n{2} {3}", schule.Name, schule.Street, schule.PostalCode, schule.Town);
// _Tagesansicht.Schule.Street, _Tagesansicht.Schule.PostalCode, _Tagesansicht.Schule.Town);
}
}
if (_Tagesansicht.AssistanceTimeEntry != null)
{
lblBetreuungszeiten.Content = _Tagesansicht.AssistanceTimeEntry.ToString();
}
//"Montag 09:00 - 12:00\nDienstag 10:00 - 11:00\nMittwoch 08:00 - 12:00\nDonnerstag 08:00 - 12:00\nFreitag 08:00 - 12:00";
}
private void SetzeLetzteVertreter()
{
@@ -269,7 +281,12 @@ namespace BeWo.SchulbegleitenderDienst
{
if (eintrag != null && (int)_Tagesansicht.Datum.DayOfWeek == (int)eintrag.Tag + 1)
{
arbeitszeitEintrag = eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
if (arbeitszeitEintrag.Length > 0)
{
arbeitszeitEintrag += ", ";
}
arbeitszeitEintrag += eintrag.UhrzeitVon + " - " + eintrag.UhrzeitBis;
}
}
}

View File

@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace BeWo.Security
{
public class EncryptionUtils
{
private static readonly byte[] _Rc2Iv = { 50, 241, 173, 46, 224, 103, 137, 72 };
private static readonly byte[] _Rc2Key = { 140, 81, 67, 90, 70, 222, 51, 20, 154, 60, 68, 87, 112, 169, 38, 234 };
public static string EncryptString(string stringToEncrypt)
{
var rc2Csp = new RC2CryptoServiceProvider();
var encryptor = rc2Csp.CreateEncryptor(_Rc2Key, _Rc2Iv);
using(var memoryStream = new MemoryStream())
{
using(var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
{
var toEncrypt = Encoding.UTF8.GetBytes(stringToEncrypt);
cryptoStream.Write(toEncrypt, 0, toEncrypt.Length);
cryptoStream.FlushFinalBlock();
var encrypted = memoryStream.ToArray();
return Convert.ToBase64String(encrypted);
}
}
}
public static string DecryptString(string stringToDecrypt)
{
if (String.IsNullOrEmpty(stringToDecrypt))
{
return "";
}
var rc2Csp = new RC2CryptoServiceProvider();
var decryptor = rc2Csp.CreateDecryptor(_Rc2Key, _Rc2Iv);
stringToDecrypt = stringToDecrypt.Replace(' ', '+');
stringToDecrypt = stringToDecrypt.Trim(',');
try
{
using (var memoryStream = new MemoryStream(Convert.FromBase64String(stringToDecrypt)))
{
using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
{
var bytes = new List<byte>();
int b;
do
{
b = cryptoStream.ReadByte();
if(b != -1)
{
bytes.Add(Convert.ToByte(b));
}
} while(b != -1);
return Encoding.UTF8.GetString(bytes.ToArray());
}
}
}
catch(CryptographicException)
{
// Es wird davon ausgegangen, dass der String nicht verschlüsselt ist.
return Encoding.UTF8.GetString(Convert.FromBase64String(stringToDecrypt));
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -248,7 +248,21 @@ namespace BeWo.ServiceProxy
ShowErrorMessage(e);
}
}
public static T DoWohnheimServiceSync<T>(Func<IOperationsService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<OperationsServiceClient, IOperationsService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
return default(T);
}
public static void DoMailServiceAsync<T>(Func<IMailService, T> pFunc, Action<T> pCallBack)
{
DoAsync<MailServiceClient, IMailService, T>(pFunc, pCallBack, true);
@@ -851,7 +865,7 @@ namespace BeWo.ServiceProxy
{
var lBeWoFault = (e as FaultException<BeWoFault>).Detail;
String rowUpdated = "Der Datensatz wurde in der Zwischenzeit von einem anderen Benutzer geändert. Ihre Änderungen konnten leider NICHT gespeichert werden. Das Problem tritt auf, wenn mehrere Benutzer gleichzeitig den gleichen Datensatz bearbeiten.\n\nSie müssen den Datensatz schließen und erneut öffnen, um die Änderungen vornehmen zu können.";
String rowUpdated = "Der Datensatz wurde in der Zwischenzeit von " + BS.Shared.Translation.Translator.Translate("einem anderen Benutzer") + " geändert. Ihre Änderungen konnten leider NICHT gespeichert werden. Das Problem tritt auf, wenn mehrere " + BS.Shared.Translation.Translator.Translate("BenutzerPlural") + " gleichzeitig den gleichen Datensatz bearbeiten.\n\nSie müssen den Datensatz schließen und erneut öffnen, um die Änderungen vornehmen zu können.";
switch (lBeWoFault.FaultType)
{
case BeWoFaultType.Concurrency:

View File

@@ -2789,12 +2789,15 @@
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" SharedSizeGroup="EmployeeDetailColumn1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="EmployeeDetailColumn2"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -2802,7 +2805,10 @@
</Grid.RowDefinitions>
<Image Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" Source="..\Ressources\Icons\AnonymousUserDisabled.png" Margin="0,0,5,0" Height="30" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="Auto" RenderTransformOrigin="0.5, 0.5" />
<TextBlock x:Name="txtDetail1" Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock x:Name="txtDetail2" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" Text="{Binding Path=Details2}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock x:Name="txtDetail3" Grid.Row="0" Grid.Column="3" Grid.RowSpan="2" Text="{Binding Path=Details3}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock x:Name="txtTeams" Grid.Row="0" Grid.Column="4" Grid.RowSpan="2" Text="{Binding Path=Teams}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" />
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="5" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2814,7 +2820,7 @@
Anonymisieren
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="3" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="6" Margin="0,0,3,0" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2826,7 +2832,7 @@
Endgültig löschen
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="7" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center">
<TextBlock.Visibility>
<Binding Path="IsDeleted" ConverterParameter="Employee">
<Binding.Converter>
@@ -2838,7 +2844,7 @@
Reaktivieren
</Hyperlink>
</TextBlock>
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="5" FontSize="12" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" Margin="5,0,0,0">
<TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="8" FontSize="12" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" VerticalAlignment="Center" Margin="5,0,0,0">
<Hyperlink Click="Hyperlink_Employee_Print_Click" TargetName="_NewWindow" Foreground="#FFFFFFFF" Tag="{Binding}">
Drucken
</Hyperlink>
@@ -2850,9 +2856,13 @@
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FF808080" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsDeleted}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FFF97E7B" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FFF97E7B" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
@@ -3014,8 +3024,23 @@
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
<!-- Region User Styles-->
<!-- Region Team Styles-->
<SolidColorBrush x:Key="DokumenteContentBrush" Color="AntiqueWhite" />
<Style x:Key="DokumenteNavigationStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="Beige" />
<LinearGradientBrush x:Key="NavigationContentBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="AntiqueWhite" Offset="0" />
<GradientStop Color="Beige" Offset="1" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
<!-- Region User Styles-->
<SolidColorBrush x:Key="UserContentBrush" Color="#FF4B4B4B" />
<Style x:Key="UserNavigationStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
@@ -3180,10 +3205,7 @@
<Canvas Grid.Column="1" Width="14" Margin="2,2,2,2">
<Ellipse Stroke="#FF7C7C7C" Height="10" Width="10" StrokeThickness="2" Fill="{x:Null}" />
<Line Fill="#FFFFFFFF" Stretch="Fill" Stroke="#FF7C7C7C" Canvas.Left="6" Canvas.Top="7.4" Y1="0" Y2="5" StrokeThickness="3" X2="4" />
</Canvas>
</Grid>
</Border>

View File

@@ -9,6 +9,7 @@
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:controls="clr-namespace:BeWo.View.Controls"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
mc:Ignorable="d" VerticalAlignment="Stretch" Focusable="True">
<view:BeWoView.Resources>
@@ -110,6 +111,7 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}} -->
<!--<Label Grid.Column="0" Grid.Row="0" Content="Kasse" VerticalAlignment="Center" />
@@ -128,16 +130,19 @@
<Label Grid.Column="0" Grid.Row="2" Content="Betrag" VerticalAlignment="Center" />
<dxe:TextEdit Grid.Column="1" Grid.Row="2" MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Height="23" Margin="3" x:Name="NewTransaktionBetragTextEdit"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Betrag, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label Grid.Column="0" Grid.Row="3" Content="{t:Translate Belegnummer}" VerticalAlignment="Center" />
<dxe:TextEdit Grid.Column="1" Grid.Row="3" Height="23" Margin="3" x:Name="NewTransaktionBelegnummerTextEdit"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Belegnummer, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label Grid.Column="0" Grid.Row="3" Content="Notiz" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" Height="60" Margin="3,0,3,3"
<Label Grid.Column="0" Grid.Row="4" Content="Notiz" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Height="60" Margin="3,0,3,3"
ScrollViewer.CanContentScroll="False" VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Hidden" TextWrapping="Wrap" AcceptsReturn="True"
AutoWordSelection="True" Language="de-DE" SpellCheck.IsEnabled="True"
x:Name="NewTransaktionNotizTextBox"
Text="{Binding Path=NewBargeldtransaktion.Notice, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"/>
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="4" Orientation="Horizontal" HorizontalAlignment="Right">
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="5" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Click="ButtonAddBargeldtransaktionClick" Content="Hinzufügen" Height="25"
FontWeight="Normal" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Right" />
<Button HorizontalAlignment="Right" VerticalAlignment="Center" Height="25"
@@ -285,6 +290,11 @@
<dxe:TextEditSettings MaskType="Numeric" Mask="c" MaskUseAsDisplayFormat="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="{t:Translate Belegnummer}" FixedWidth="True" FieldName="Belegnummer" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Angelegt von" FixedWidth="True" FieldName="InsUser" AllowEditing="False">
</dxg:GridColumn>

View File

@@ -217,6 +217,7 @@ namespace BeWo.View
{
isRelevantProperty = args.PropertyDescriptor.Name.Equals(BargeldtransaktionsVM.PropertyName_Betrag) ||
args.PropertyDescriptor.Name.Equals(BargeldtransaktionsVM.PropertyName_Notice) ||
args.PropertyDescriptor.Name.Equals(BargeldtransaktionsVM.PropertyName_Belegnummer) ||
args.PropertyDescriptor.Name.Equals(BargeldtransaktionsVM.PropertyName_Zahlungsdatum) ||
args.PropertyDescriptor.Name.Equals(BargeldtransaktionsVM.PropertyName_Zahlungstyp);
}

View File

@@ -9,8 +9,8 @@
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ContextMenu x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened">
<localView:DeleteButtonVisibilityConverter x:Key="DeleteButtonVisibilityConverter" />
<ContextMenu x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened" >
<MenuItem Header="Neu" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Add24.png"/>
@@ -22,14 +22,14 @@
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Header="Löschen" >
<MenuItem Header="Löschen" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Delete24.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
<HierarchicalDataTemplate x:Key="test" DataType="{x:Type localViewModel:BeWoFolderVM}" ItemsSource="{Binding SubFolders}">
</ContextMenu>
<HierarchicalDataTemplate x:Key="test" DataType="{x:Type localViewModel:BeWoFolderVM}" ItemsSource="{Binding SubFolders}">
<StackPanel Orientation="Horizontal" ContextMenu="{StaticResource cm}">
<Image Name="img" Width="20" Height="20" Stretch="Fill" Source="..\Ressources\Icons\Folder.png" />
@@ -49,7 +49,7 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Neue Datei hochladen">
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Neue Datei hochladen" x:Name="GroupBoxDateiHochladen">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -80,7 +80,7 @@
<dxg:GridControl Grid.Row="1" Margin="2,3,5,5" DataSource="{Binding SelectedItem.Files, ElementName=treeview, diagnostics:PresentationTraceSources.TraceLevel=High}" x:Name="datagrid_documents" Grid.Column="1" ItemsSourceChanged="Datagrid_documents_OnItemsSourceChanged">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="FileName" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn FieldName="FileName" Header="" FixedWidth="True" Width="24" ReadOnly="True" Visible="{Binding Converter={StaticResource DeleteButtonVisibilityConverter}}">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18" VerticalAlignment="Center" />

View File

@@ -21,6 +21,8 @@ using BS.Shared;
using BS.Shared.Core;
using DevExpress.Xpf.Grid;
using Microsoft.Win32;
using System.Windows.Data;
using System.Globalization;
namespace BeWo.View
{
@@ -46,6 +48,12 @@ namespace BeWo.View
{
InitializeComponent();
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsUploadAll))
{
GroupBoxDateiHochladen.Visibility = Visibility.Collapsed;
}
CursorControl.Visibility = Visibility.Collapsed;
_ObjectOid = pObjectOid;
_ObjectTid = pObjectTid;
@@ -205,6 +213,10 @@ namespace BeWo.View
private void ContextMenu_Click(object sender, RoutedEventArgs e)
{
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{
return;
}
if (e.OriginalSource is MenuItem)
{
var twi = e.OriginalSource as MenuItem;
@@ -337,6 +349,10 @@ namespace BeWo.View
private void treeview_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{
return;
}
drag = treeview.GetDataItemUnderMouse<BeWoFolderVM>(e) ?? datagrid_documents.GetRow(datagrid_documents.View.GetRowHandleByMouseEventArgs(e));
_MouseDownPosition = e.GetPosition(this);
@@ -537,7 +553,8 @@ namespace BeWo.View
BeWoFolderVM folder = this.treeview.SelectedItem as BeWoFolderVM;
bool enabled = false;
bool darfBearbeiten = BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders);
if (folder != null)
{
if (folder.ParentFolder != null)
@@ -550,7 +567,13 @@ namespace BeWo.View
{
MenuItem menuitem = item as MenuItem;
if (menuitem.Header.Equals("Umbenennen"))
{
menuitem.IsEnabled = enabled;
}
if (!darfBearbeiten)
{
menuitem.IsEnabled = false;
}
}
}
}
@@ -717,5 +740,23 @@ namespace BeWo.View
{
DocumentTableView.BestFitColumns();
}
}
public class DeleteButtonVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsDeleteAll))
{
return true;
}
else
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -53,7 +53,11 @@ namespace BeWo.View
{
try
{
DragMove();
var p = e.GetPosition(this);
if (p.Y <= 40)
{
DragMove();
}
}
catch (Exception){}
}

View File

@@ -150,15 +150,9 @@
</Popup>
<Popup x:Name="RatingPopup" StaysOpen="False" Placement="MousePoint" Width="400" Height="200" >
<Border Background="{StaticResource ObjectEditBackgroundBrush}">
<StackPanel Orientation="Vertical" Margin="5">
<RadioButton x:Name="RadioButtonNone" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="-1" Content="Keine Bewertung" IsChecked="True"></RadioButton>
<RadioButton x:Name="RadioButton0" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="0" Content="xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %"></RadioButton>
<RadioButton x:Name="RadioButton1" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="1" Content="xxx.1 - Problem leicht ausgeprägt (schwach, gering ...) 5 bis 24 %"></RadioButton>
<RadioButton x:Name="RadioButton2" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="2" Content="xxx.2 - Problem mäßig ausgeprägt (mittel, ziemlich ...) 25 bis 49 %"></RadioButton>
<RadioButton x:Name="RadioButton3" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="3" Content="xxx.3 - Problem erheblich ausgeprägt (hoch, äußerst ...) 50 bis 95 %"></RadioButton>
<RadioButton x:Name="RadioButton4" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="4" Content="xxx.4 - Problem voll ausgeprägt (komplett, total ...) 96 bis 100 %"></RadioButton>
<RadioButton x:Name="RadioButton8" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="8" Content="xxx.8 - Nicht spezifiziert"></RadioButton>
<RadioButton x:Name="RadioButton9" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="9" Content="xxx.9 - Nicht anwendbar"></RadioButton>
<StackPanel x:Name="ratingPanel" Orientation="Vertical" Margin="5">
<RadioButton x:Name="RadioButtonNone" Margin="3" FontSize="12" Click="RatingButton_OnClick" Content="Keine Bewertung" IsChecked="True"></RadioButton>
</StackPanel>
</Border>

View File

@@ -5,7 +5,8 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
@@ -15,6 +16,22 @@ namespace BeWo.View.Controls
{
private SupportConceptGoalDC lastCheckedSupportConceptGoal;
public static readonly DependencyProperty ShowRatingPanelProperty = DependencyProperty.Register("ShowRatingPanel", typeof(bool), typeof(ComboBoxTreeViewControl), new FrameworkPropertyMetadata(false));
public bool ShowRatingPanel
{
get { return (bool)GetValue(ShowRatingPanelProperty); }
set { SetValue(ShowRatingPanelProperty, value); }
}
public static readonly DependencyProperty SelectOnlyLeafsProperty = DependencyProperty.Register("SelectOnlyLeafs", typeof(bool), typeof(ComboBoxTreeViewControl), new FrameworkPropertyMetadata(true));
public bool SelectOnlyLeafs
{
get { return (bool)GetValue(SelectOnlyLeafsProperty); }
set { SetValue(SelectOnlyLeafsProperty, value); }
}
public double ParentWindowHeight
{
get { return (double) GetValue(ParentWindowHeightProperty); }
@@ -40,6 +57,26 @@ namespace BeWo.View.Controls
{
InitializeComponent();
DataContext = this;
InitRatings();
}
private void InitRatings()
{
ratingPanel.Children.Clear();
var ratingList = Cache.GetInstance().GetAllRatingTypeList();
foreach (var r in ratingList)
{
//<RadioButton x:Name="RadioButton0" Margin="3" FontSize="12" Click="RatingButton_OnClick" Tag="0" Content="xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %"></RadioButton>
var rb = new RadioButton();
rb.Margin = new Thickness(3);
rb.FontSize = 12;
rb.Click += RatingButton_OnClick;
rb.Tag = r;
rb.Content = r.DisplayName;
ratingPanel.Children.Add(rb);
}
}
private void ShowCheckedValues()
@@ -104,6 +141,14 @@ namespace BeWo.View.Controls
}
else
{
if (!SelectOnlyLeafs)
{
GoalCount++;
if (item.IsChecked)
{
selectedGoals.Add(item.GoalEntryDC);
}
}
AddCheckedGoals(item.Children, selectedGoals);
}
}
@@ -175,6 +220,15 @@ namespace BeWo.View.Controls
private void SetPopUpVisible(bool visible)
{
if (!ShowRatingPanel || !BeWoApp.LoggedOnUser.HasRight(UserRightType.BewertenInZeiterfassung))
{
return;
}
if (ratingPanel.Children.Count == 0)
{
return;
}
if (lastCheckedSupportConceptGoal == null)
{
return;
@@ -182,38 +236,29 @@ namespace BeWo.View.Controls
if (lastCheckedSupportConceptGoal.Children != null && lastCheckedSupportConceptGoal.Children.Count > 0)
{
return;
//return;
}
RatingPopup.IsOpen = visible;
RadioButtonNone.IsChecked = true;
if (lastCheckedSupportConceptGoal.GoalEntryDC.Rating != null)
if (lastCheckedSupportConceptGoal.GoalEntryDC.RatingTypeOid.HasValue)
{
switch (lastCheckedSupportConceptGoal.GoalEntryDC.Rating.Value)
foreach (var c in ratingPanel.Children)
{
case 0:
RadioButton0.IsChecked = true;
break;
case 1:
RadioButton1.IsChecked = true;
break;
case 2:
RadioButton2.IsChecked = true;
break;
case 3:
RadioButton3.IsChecked = true;
break;
case 4:
RadioButton4.IsChecked = true;
break;
case 8:
RadioButton8.IsChecked = true;
break;
case 9:
RadioButton9.IsChecked = true;
break;
RadioButton rb = c as RadioButton;
if (rb != null && rb.Tag != null)
{
RatingTypeDC rbRating = rb.Tag as RatingTypeDC;
if (rbRating != null && rbRating.RatingTypeOid ==
lastCheckedSupportConceptGoal.GoalEntryDC.RatingTypeOid)
{
rb.IsChecked = true;
}
}
}
}
}
@@ -305,11 +350,11 @@ namespace BeWo.View.Controls
RadioButton rb = sender as RadioButton;
if (rb.Tag != null)
{
int rating = 0;
if (Int32.TryParse(rb.Tag.ToString(), out rating))
var rt = rb.Tag as RatingTypeDC;
if (rt != null)
{
lastCheckedSupportConceptGoal.SetRating(rating);
lastCheckedSupportConceptGoal.SetRatingType(rt);
}
}
}

View File

@@ -3,7 +3,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:localsearch="clr-namespace:BeWo.View.Search" mc:Ignorable="d"
xmlns:localsearch="clr-namespace:BeWo.View.Search" mc:Ignorable="d"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Key="MultiSupportConceptSelectionControlStyle" TargetType="{x:Type ListBoxItem}">
@@ -38,7 +39,7 @@
<TextBlock x:Name="txtDetail1" Grid.Column="0" Grid.Row="0" Text="{Binding Path=FullName}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<!--<CheckBox x:Name="participatingCheckBox" Grid.Column="1" Grid.RowSpan="2" ToolTip="Anwesenheit des Klienten" Margin="3,0,20,0" VerticalAlignment="Center" />-->
<Button x:Name="btnRemoveCustomer" Grid.Column="2" Grid.RowSpan="2" Width="20" Height="20" ToolTip="Klienten aus der Gruppe entfernen" Tag="{Binding}" Style="{DynamicResource CloseButtonStyle}" Click="btnRemoveCustomer_Click" Margin="3,0,0,0" />
<Button x:Name="btnRemoveCustomer" Grid.Column="2" Grid.RowSpan="2" Width="20" Height="20" ToolTip="{markup:Translate Klienten aus der Gruppe entfernen}" Tag="{Binding}" Style="{DynamicResource CloseButtonStyle}" Click="btnRemoveCustomer_Click" Margin="3,0,0,0" />
</Grid>
</Border>
</Grid>
@@ -95,7 +96,7 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label x:Name="labelTitle" Content="Gruppendetails" FontSize="12" FontWeight="Bold" />
<Button x:Name="btnAddCustomer" HorizontalAlignment="Right" Click="btnAddCustomer_Click" Height="21" Width="45" Margin="0,0,0,3" ToolTip="Neuen Klienten hinzufügen">
<Button x:Name="btnAddCustomer" HorizontalAlignment="Right" Click="btnAddCustomer_Click" Height="21" Width="45" Margin="0,0,0,3" ToolTip="{markup:Translate Neuen Klienten hinzufügen}">
<StackPanel Orientation="Horizontal">
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center">
<Line X1="4" X2="12" Y1="8" Y2="8" Fill="{x:Null}" Stroke="#FFFFFFFF" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16" />

View File

@@ -0,0 +1,243 @@
using BeWo.ServiceProxy;
using BeWo.View.Detail.Report;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using Brush = System.Windows.Media.Brush;
using SolidColorBrush = System.Windows.Media.SolidColorBrush;
namespace BeWo.View.Controls
{
public class DPCtrlDay : DienstplanerControl
{
public static bool bemerkungVorhanden = false;
public static readonly DependencyProperty DPCtrlDayInformationProperty = DependencyProperty.Register(
"DPCtrlDayInformation",
typeof(DPCtrlDayInformation),
typeof(DPCtrlDay),
new UIPropertyMetadata(
(s, e) =>
{
var info = (DPCtrlDayInformation)e.NewValue;
var c = (DPCtrlDay)s;
if (c != null && info != null)
{
if (info.StatusInformation == null)
{
var dc = info.DienstInfoDC;
var right = info.DayOfWeek == DayOfWeek.Sunday || info.IsLastColumn;
var bottom = info.IsLastRow;
c.Path_Notice.Visibility = info.MarkierungBenoetigt ? Visibility.Visible : Visibility.Collapsed;
var bottomBorder = bottom ? 1.5 : 0;
c.Border = new Thickness(0, 0, Convert.ToDouble(right), bottomBorder);
if (!info.IsInContractRange)
{
c.Background = Brushes.Gray;
c.Foreground = Brushes.Red;
c.Text = string.Empty;
c.ToolTip = "Kein gültiger Arbeitsvertrag";
}
else if (info.AbsenceTime != null && info.EnableDiensteAnFeiertagen == true)
{
string additionToTooltip = "";
var start = info.AbsenceTime.Start.Value;
var end = info.AbsenceTime.End.Value;
var startArray = start.ToString().Split(' ');
var endArray = end.ToString().Split(' ');
if (start.Date == end.Date)
{
if (start.TimeOfDay == end.TimeOfDay)
additionToTooltip = " (ganzer Tag)";
else
additionToTooltip = " (halber Tag)";
}
else
additionToTooltip = string.Format(" ({0} - {1})", startArray[0], endArray[0]);
c.Foreground = Brushes.Red;
c.Text = $"{info.AbsenceTime.Reason.Description[0]}";
c.ToolTip = $"{info.AbsenceTime.Reason.Description}" + additionToTooltip;
if (info.DayOfWeek == DayOfWeek.Saturday || info.DayOfWeek == DayOfWeek.Sunday)
c.Background = new SolidColorBrush(ColorExtensions.FromHexString("EFEFEF"));
else
c.Background = Brushes.White;
}
else if (info.OverTime != null)
{
c.Foreground = Brushes.Red;
c.Text = "ÜS";
c.ToolTip = (dc == null) ? string.Format("Überstunden:\t{0:0.00}\nAuszahlung:\t{1}\nBemerkung:\t{2}",
info.OverTime.Betrag, info.OverTime.Auszahlungsart.Name, info.OverTime.Notice) : null;
if (info.DayOfWeek == DayOfWeek.Saturday || info.DayOfWeek == DayOfWeek.Sunday)
c.Background = new SolidColorBrush(ColorExtensions.FromHexString("EFEFEF"));
else if (dc != null)
c.Background = (SolidColorBrush)new BrushConverter().ConvertFrom(dc.Farbe);
else
c.Background = Brushes.White;
}
else
{
c.Background = ((int)info.DayOfWeek % 6 == 0) ? new SolidColorBrush(ColorExtensions.FromHexString("EFEFEF")) : Brushes.White;
c.Text = string.Empty;
c.ToolTip = null;
}
if (dc != null)
{
c.Text = $"{dc.Kurz}";
if (c.Path_Notice.Visibility == Visibility.Collapsed)
{
c.BorderThickness = new Thickness(0, 0, 0, 0);
c.BorderBrush = Brushes.Transparent;
}
var bg = string.IsNullOrEmpty(dc.Farbe) ? Brushes.White : (SolidColorBrush)new BrushConverter().ConvertFrom(dc.Farbe);
var grey = 0.2989 * bg.Color.R + 0.5870 * bg.Color.G + 0.1140 * bg.Color.B;
c.Background = bg;
if (info.OverTime == null && info.AbsenceTime == null)
c.Foreground = grey < 70 ? Brushes.White : Brushes.Black;
else
c.Foreground = Brushes.Red;
c.ToolTip = new DPCtrlDienstTooltip(dc, info.Dauer, info.Bemerkung, info.Zeiten, info.OverTime, info.AbsenceTime);
}
else
{
c.Path_Notice.Visibility = Visibility.Collapsed;
c.BorderThickness = new Thickness(0, 0, 0, 0);
c.BorderBrush = Brushes.Transparent;
}
}
else
{
var right = info.DayOfWeek == DayOfWeek.Sunday || info.IsLastColumn;
c.Border = new Thickness(0, 0, Convert.ToDouble(right), 2);
if (info.StatusInformation != null)
{
var converter = new BrushConverter();
var color = (info.StatusInformation.BesetzungsStatus) ? info.StatusInformation.ColorTrue : info.StatusInformation.ColorFalse;
c.Background = (Brush)converter.ConvertFromString(color);
if (info.StatusInformation.BesetzungsStatus)
{
c.ToolTip = "Dienste decken 24 Stunden ab";
}
else
{
c.ToolTip = "Achtung: Dienste decken nicht 24 Stunden ab";
}
if (!info.StatusInformation.StatusInfoString.IsNullOrEmpty())
{
c.ToolTip += c.ToolTip.ToString().IsNullOrEmpty() ? info.StatusInformation.StatusInfoString : "\n" + info.StatusInformation.StatusInfoString;
c.Path_Notice.Visibility = Visibility.Visible;
}
else
c.Path_Notice.Visibility = Visibility.Collapsed;
}
}
if (info.Feiertag != null)
{
c.Background = Brushes.LightPink;
c.ToolTip += "\n" + info.Feiertag.Name + " (gesetzl. Feiertag)";
}
}
}));
public DPCtrlDay()
{
InitializeComponent();
MouseDown += DienstplanerControl_MouseDown;
}
public new Brush Background
{
get => BorderLight.Background;
set => BorderLight.Background = value;
}
public Thickness Border
{
get => BorderBlack.BorderThickness;
set => BorderBlack.BorderThickness = value;
}
public DPCtrlDayInformation DPCtrlDayInformation
{
get { return (DPCtrlDayInformation)GetValue(DPCtrlDayInformationProperty); }
set { SetValue(DPCtrlDayInformationProperty, value); }
}
private void DienstplanerControl_MouseDown(object sender, MouseButtonEventArgs e)
{
DienstplanerView entryView = null;
System.Windows.DependencyObject parent = VisualTreeHelper.GetParent(this);
while (parent != null && entryView == null)
{
entryView = parent as DienstplanerView;
var fe = parent as FrameworkElement;
parent = fe != null ? VisualTreeHelper.GetParent(fe) : null;
}
if (entryView != null)
{
entryView.DienstplanerControl_MouseDown(sender, e);
}
}
}
public class DPCtrlDayInformation
{
public DienstInfoDC DienstInfoDC { get; set; }
public AbsenceTimeDC AbsenceTime { get; set; }
public OvertimeDC OverTime { get; set; }
public bool IsInContractRange { get; set; }
public bool IsLastRow { get; set; }
public bool IsLastColumn { get; set; }
public DayOfWeek DayOfWeek { get; set; }
public StatusInformation StatusInformation { get; set; }
public string Bemerkung { get; set; }
public string[] Zeiten { get; set; }
public double Dauer { get; set; }
public FeiertagDC Feiertag { get; set; }
public bool MarkierungBenoetigt { get; set; }
public bool EnableDiensteAnFeiertagen { get; set; }
}
public class StatusInformation
{
public bool BesetzungsStatus { get; set; }
public string StatusInfoString { get; set; }
public DayOfWeek DayOfWeek { get; set; }
public bool IsLastColumn { get; set; }
public string ColorTrue { get; set; }
public string ColorFalse { get; set; }
}
}

View File

@@ -0,0 +1,52 @@
<UserControl x:Class="BeWo.View.Controls.DPCtrlDienstTooltip" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Dienst:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="Start:"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Ende:"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="Dauer:"/>
<TextBlock Grid.Row="5" Grid.Column="0" Text="Pausendauer:"/>
<TextBlock Grid.Row="7" Grid.Column="0" Text="Bemerkung:"/>
<TextBlock x:Name="lblUeberstunden" Grid.Row="9" Grid.Column="0" Text="Überstunden:" Visibility="Collapsed" />
<TextBlock x:Name="lblAuszahlungsart" Grid.Row="10" Grid.Column="0" Text="Auszahlung:" Visibility="Collapsed" />
<TextBlock x:Name="lblUrlaub" Grid.Row="12" Grid.Column="0" Text="Urlaub:" Visibility="Collapsed" />
<Separator Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"/>
<TextBlock Grid.Row="0" Grid.Column="2" x:Name="TxtDienst"/>
<TextBlock Grid.Row="2" Grid.Column="2" x:Name="TxtStart"/>
<TextBlock Grid.Row="3" Grid.Column="2" x:Name="TxtEnde"/>
<TextBlock Grid.Row="4" Grid.Column="2" x:Name="TxtDauer"/>
<TextBlock Grid.Row="5" Grid.Column="2" x:Name="TxtPausendauer"/>
<TextBlock Grid.Row="7" Grid.Column="2" x:Name="TxtBemerkung" MaxWidth="275" TextWrapping="Wrap"/>
<TextBlock Grid.Row="9" Grid.Column="2" x:Name="TxtUeberstunden" Visibility="Collapsed" />
<TextBlock Grid.Row="10" Grid.Column="2" x:Name="TxtAuszahlungsart" Visibility="Collapsed" />
<TextBlock Grid.Row="12" Grid.Column="2" x:Name="TxtUrlaub" Visibility="Collapsed" />
<Separator Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="3"/>
<Separator x:Name="sepUeberstunden" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="3" Visibility="Collapsed"/>
<Separator x:Name="sepUrlaub" Grid.Row="11" Grid.Column="0" Grid.ColumnSpan="3" Visibility="Collapsed"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DPCtrlDienstTooltip : UserControl
{
public DPCtrlDienstTooltip(DienstInfoDC dienst, double dauer, string bemerkung, string[] zeiten, OvertimeDC overtime, AbsenceTimeDC absence)
{
InitializeComponent();
TxtDienst.Text = $"{dienst.DienstName} ({dienst.Kurz})";
TxtEnde.Text = zeiten[1];
TxtEnde.Foreground = dienst.Ende.ToString("HH:mm").Equals(zeiten[1]) ? TxtDienst.Foreground : Brushes.CornflowerBlue;
TxtPausendauer.Text = dienst.Pause.ToString();
TxtStart.Text = zeiten[0];
TxtStart.Foreground = dienst.Start.ToString("HH:mm").Equals(zeiten[0]) ? TxtDienst.Foreground : Brushes.CornflowerBlue;
TxtDauer.Text = string.Format("{0:0.00}", dauer);
TxtBemerkung.Text = bemerkung;
if (overtime != null)
{
TxtUeberstunden.Text = string.Format("{0:0.00}", overtime.Betrag);
TxtAuszahlungsart.Text = overtime.Auszahlungsart.Name;
TxtUeberstunden.Visibility = Visibility.Visible;
TxtAuszahlungsart.Visibility = Visibility.Visible;
lblUeberstunden.Visibility = Visibility.Visible;
lblAuszahlungsart.Visibility = Visibility.Visible;
sepUeberstunden.Visibility = Visibility.Visible;
}
if (absence != null)
{
string tooltipString = "";
var start = absence.Start.Value;
var end = absence.End.Value;
var startArray = start.ToString().Split(' ');
var endArray = end.ToString().Split(' ');
if (start.Date == end.Date)
{
if (start.TimeOfDay == end.TimeOfDay)
tooltipString = "ganzer Tag";
else
tooltipString = "halber Tag";
}
else
tooltipString = string.Format("{0} - {1}", startArray[0], endArray[0]);
TxtUrlaub.Text = tooltipString;
lblUrlaub.Visibility = Visibility.Visible;
TxtUrlaub.Visibility = Visibility.Visible;
sepUrlaub.Visibility = Visibility.Visible;
}
}
}
}

View File

@@ -0,0 +1,172 @@
using BeWo.View.Detail.Report;
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using BS.Shared.Translation;
namespace BeWo.View.Controls
{
public class DPCtrlEmployee : DienstplanerControl
{
public static readonly DependencyProperty EmployeeInformationProperty = DependencyProperty.Register(
"EmployeeInformation",
typeof(DPCtrlEmployeeInformation),
typeof(DPCtrlEmployee),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlEmployeeInformation)e.NewValue;
var ctrl = (DPCtrlEmployee)s;
if (ctrl != null)
{
if (information != null)
{
if(information.Employee != null)
{
if (information.IsLastRow)
{
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1.5);
ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1.5);
}
else
{
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 1);
}
}
else
{
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
ctrl.BorderLight.BorderThickness = new Thickness(0, 0, 0, 2);
}
ctrl.Text = ctrl.DisplayMember;
ctrl.ToolTip = new DPCtrlEmployeeTooltip(information.Employee, information.Contracts, information.IsVertretung);
//if (information.IsVertretung)
// ctrl.Path_Notice.Visibility = Visibility.Visible;
}
else
{
ctrl.ToolTip = null;
}
}
}));
public DPCtrlEmployee()
{
InitializeComponent();
FontSize = 12;
txt.HorizontalAlignment = HorizontalAlignment.Left;
MouseDown += DienstplanerControl_MouseDown;
}
private void DienstplanerControl_MouseDown(object sender, MouseButtonEventArgs e)
{
DienstplanerView entryView = null;
System.Windows.DependencyObject parent = VisualTreeHelper.GetParent(this);
while (parent != null && entryView == null)
{
entryView = parent as DienstplanerView;
var fe = parent as FrameworkElement;
parent = fe != null ? VisualTreeHelper.GetParent(fe) : null;
}
if (entryView != null)
{
entryView.DienstplanerControl_MouseDown(sender, e);
}
}
public DPCtrlEmployeeInformation EmployeeInformation
{
get { return (DPCtrlEmployeeInformation)GetValue(EmployeeInformationProperty); }
set { SetValue(EmployeeInformationProperty, value); }
}
public string DisplayMember
{
get
{
var sb = new StringBuilder();
if (EmployeeInformation.Employee != null)
{
switch (EmployeeInformation.Row)
{
case 0: return EmployeeInformation.Employee.LastNameFirstName;
//Auskommentieren für nur eine Zeile
//case 1:
// foreach (var contract in EmployeeInformation.Contracts)
// {
// sb.Append(contract.EmploymentType?.Name);
// sb.Append('/');
// }
// sb.Remove(sb.Length - 1, 1);
// return sb.ToString();
//case 2:
// foreach (var contract in EmployeeInformation.Contracts)
// {
// sb.Append('(');
// if (contract.EntryDate.HasValue)
// sb.Append(contract.EntryDate.Value.ToString("dd.MM.yy"));
// else
// sb.Append("k.A.");
// sb.Append(" - ");
// if (contract.ContractEndDate.HasValue)
// sb.Append(contract.ContractEndDate.Value.ToString("dd.MM.yy"));
// else
// sb.Append("unbefr.");
// sb.Append(')');
// sb.Append('/');
// }
// sb.Remove(sb.Length - 1, 1);
// return sb.ToString();
}
}
else
{
return Translator.Translate("Status");
}
return null;
}
}
}
public class DPCtrlEmployeeInformation
{
public EmployeeDC Employee { get; set; }
public List<ContractDC> Contracts { get; set; }
public int Row { get; set; }
public bool IsLastRow { get; set; }
public bool IsVertretung { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
<UserControl x:Class="BeWo.View.Controls.DPCtrlEmployeeContractTooltip" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Separator Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"/>
<TextBlock Grid.Row="1" Grid.Column="0" Text="Beschäftigungsart:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="Vereinbarte Regelarbeitszeit:"/>
<TextBlock Grid.Row="1" Grid.Column="2" x:Name="TxtEmploymentType"/>
<TextBlock Grid.Row="2" Grid.Column="2" x:Name="TxtArbeitszeit"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DPCtrlEmployeeContractTooltip : UserControl
{
public DPCtrlEmployeeContractTooltip(ContractDC contract)
{
InitializeComponent();
TxtEmploymentType.Text = contract.EmploymentType.Name;
if(contract.MonthlyTotalHours != null)
{
TxtArbeitszeit.Text = $"{contract.MonthlyTotalHours.Value} Std/Monat";
}
else if(contract.WeeklyTotalHours != null)
{
TxtArbeitszeit.Text = $"{contract.WeeklyTotalHours.Value} Std/Woche";
}
else
{
TxtArbeitszeit.Text = $"k.A.";
}
}
}
}

View File

@@ -0,0 +1,14 @@
<UserControl x:Class="BeWo.View.Controls.DPCtrlEmployeeTooltip" xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="RootGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="{t:Translate MitarbeiterSingular:}"/>
<TextBlock Grid.Row="0" Grid.Column="2" x:Name="TxtMitarbeiter"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DPCtrlEmployeeTooltip : UserControl
{
public DPCtrlEmployeeTooltip(EmployeeDC employeeDC, List<ContractDC> contractDCs, bool isVertretung)
{
InitializeComponent();
if(employeeDC != null)
{
TxtMitarbeiter.Text = employeeDC.LastNameFirstName;
var separator = new Separator();
foreach (var contract in contractDCs)
{
var sep1 = new Separator();
var sep2 = new Separator();
var txtType1 = new TextBlock();
var txtType2 = new TextBlock();
var txtArbeit1 = new TextBlock();
var txtArbeit2 = new TextBlock();
var txtVertretung1 = new TextBlock();
var txtVertretung2 = new TextBlock();
txtType1.Text = "Beschäftigungsart:";
txtType2.Text = $"{contract.EmploymentType?.Name}";
txtArbeit1.Text = "Vereinbarte Regelarbeitszeit:";
if (contract.MonthlyTotalHours != null)
{
txtArbeit2.Text = $"{contract.MonthlyTotalHours.Value:0.00} Std/Monat";
}
else if (contract.WeeklyTotalHours != null)
{
txtArbeit2.Text = $"{contract.WeeklyTotalHours.Value:0.00} Std/Woche";
}
else
{
txtArbeit2.Text = $"k.A.";
}
txtVertretung1.Text = "Vertretung:";
txtVertretung2.Text = isVertretung ? "Ja" : "Nein";
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(sep1);
Grid.SetRow(sep1, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumnSpan(sep1, 3);
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(txtType1);
RootGrid.Children.Add(txtType2);
Grid.SetRow(txtType1, RootGrid.RowDefinitions.Count - 1);
Grid.SetRow(txtType2, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumn(txtType2, 2);
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(txtArbeit1);
RootGrid.Children.Add(txtArbeit2);
Grid.SetRow(txtArbeit1, RootGrid.RowDefinitions.Count - 1);
Grid.SetRow(txtArbeit2, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumn(txtArbeit2, 2);
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(sep2);
Grid.SetRow(sep2, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumnSpan(sep2, 3);
RootGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
RootGrid.Children.Add(txtVertretung1);
RootGrid.Children.Add(txtVertretung2);
Grid.SetRow(txtVertretung1, RootGrid.RowDefinitions.Count - 1);
Grid.SetRow(txtVertretung2, RootGrid.RowDefinitions.Count - 1);
Grid.SetColumn(txtVertretung2, 2);
}
}
}
}
}

View File

@@ -0,0 +1,68 @@
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
namespace BeWo.View.Controls
{
public class DPCtrlIcon : DienstplanerControl
{
public static readonly DependencyProperty DienstValueProperty = DependencyProperty.Register(
"DienstValue",
typeof(DienstInfoDC),
typeof(DienstplanerControl),
new UIPropertyMetadata(
(s, e) =>
{
var dc = (DienstInfoDC)e.NewValue;
var c = (DPCtrlIcon)s;
if (c != null)
{
if (dc != null)
{
// rgb2gray converts RGB values to grayscale values by forming a weighted sum of the R, G, and B components:
// 0.2989 * R + 0.5870 * G + 0.1140 * B
var color = ColorExtensions.FromHexStringDefault(dc.Farbe, Colors.Transparent);
var brush = new SolidColorBrush(color);
c.BorderBlack.Background = brush;
c.BorderBlack.ToolTip = dc.DienstName;
c.Foreground = color.IsBrighter(70) ? Brushes.Black : Brushes.White;
c.Text = dc.Kurz;
}
else
{
c.BorderBlack.ToolTip = string.Empty;
c.BorderBlack.Background = Brushes.White;
c.Foreground = Brushes.Black;
c.Text = string.Empty;
}
}
}));
public DPCtrlIcon()
{
InitializeComponent();
BorderBlack.BorderThickness = new Thickness(1);
BorderBlack.CornerRadius = new CornerRadius(4);
BorderBlack.Visibility = Visibility.Visible;
BorderLight.Visibility = Visibility.Hidden;
FontSize = 12;
}
public DienstInfoDC DienstValue
{
get { return (DienstInfoDC)GetValue(DienstValueProperty); }
set { SetValue(DienstValueProperty, value); }
}
}
}

View File

@@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlIst : DienstplanerControl
{
public static readonly DependencyProperty IstInformationProperty = DependencyProperty.Register(
"IstInformation",
typeof(DPCtrlIstInformation),
typeof(DPCtrlIst),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlIstInformation)e.NewValue;
var ctrl = (DPCtrlIst)s;
if (ctrl != null)
{
ctrl.Text = "";
ctrl.ToolTip = "";
if (information != null)
{
if (information.Row == 0 && !information.Statuszeile)
{
ctrl.Text = string.Format("{0:0.00}", information.IstWert);
ctrl.ToolTip = "Ist-Wert";
}
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 2);
else
{
if (information.IsLastRow)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 1.5);
else
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 0);
}
}
}
}));
public DPCtrlIst()
{
InitializeComponent();
//BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlIstInformation IstInformation
{
get { return (DPCtrlIstInformation)GetValue(IstInformationProperty); }
set { SetValue(IstInformationProperty, value); }
}
}
public class DPCtrlIstInformation
{
public int Row { get; set; }
public bool Statuszeile { get; set; }
public decimal IstWert { get; set; }
public bool IsLastRow { get; set; }
}
}

View File

@@ -0,0 +1,83 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlMonth : DienstplanerControl
{
public static readonly DependencyProperty DPCtrlMonthProperty = DependencyProperty.Register(
"DPCtrlMonthInformation",
typeof(DPCtrlMonthInformation),
typeof(DPCtrlMonth),
new UIPropertyMetadata(
(s, e) =>
{
var dc = (DPCtrlMonthInformation)e.NewValue;
var c = (DPCtrlMonth)s;
if (c != null)
{
if (dc != null)
{
double res = 0.0;
if (dc.Hours.Count != 0 || dc.Row == 2)
{
foreach (var stunde in dc.Hours)
{
res += stunde;
}
c.Text = res.ToString("0.##");
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
}
else
{
if (dc.Statuszeile)
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
else
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
c.Text = "";
}
}
else
{
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
c.Text = "";
}
}
}));
public DPCtrlMonth()
{
InitializeComponent();
BorderBlack.BorderThickness = new Thickness(1, 0, 0, 0);
txt.TextAlignment = TextAlignment.Left;
txt.HorizontalAlignment = HorizontalAlignment.Left;
txt.FontWeight = FontWeights.SemiBold;
}
public DPCtrlMonthInformation DPCtrlMonthInformation
{
get { return (DPCtrlMonthInformation)GetValue(DPCtrlMonthProperty); }
set { SetValue(DPCtrlMonthProperty, value); }
}
}
public class DPCtrlMonthInformation
{
public List<double> Hours { get; set; }
public int Row { get; set; }
public bool Statuszeile { get; set; }
}
}

View File

@@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlSaldo : DienstplanerControl
{
public static readonly DependencyProperty SaldoInformationProperty = DependencyProperty.Register(
"SaldoInformation",
typeof(DPCtrlSaldoInformation),
typeof(DPCtrlSaldo),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlSaldoInformation)e.NewValue;
var ctrl = (DPCtrlSaldo)s;
if (ctrl != null)
{
ctrl.Text = "";
ctrl.ToolTip = "";
if (information != null)
{
if (information.Row == 0 && !information.Statuszeile)
{
ctrl.Text = string.Format("{0:0.00}", information.SaldoWert);
ctrl.ToolTip = "Saldo-Wert";
}
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
else
{
if (information.IsLastRow)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1.5);
else
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
}
}
}
}));
public DPCtrlSaldo()
{
InitializeComponent();
//BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlSaldoInformation SaldoInformation
{
get { return (DPCtrlSaldoInformation)GetValue(SaldoInformationProperty); }
set { SetValue(SaldoInformationProperty, value); }
}
}
public class DPCtrlSaldoInformation
{
public int Row { get; set; }
public bool Statuszeile { get; set; }
public decimal SaldoWert { get; set; }
public bool IsLastRow { get; set; }
}
}

View File

@@ -0,0 +1,76 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlSoll : DienstplanerControl
{
public static readonly DependencyProperty SollInformationProperty = DependencyProperty.Register(
"SollInformation",
typeof(DPCtrlSollInformation),
typeof(DPCtrlSoll),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlSollInformation)e.NewValue;
var ctrl = (DPCtrlSoll)s;
if (ctrl != null)
{
ctrl.Text = "";
ctrl.ToolTip = "";
if (information != null)
{
Debug.WriteLine("Status: " + information.Statuszeile + " | MA: " + information.EmployeeDC + " | Soll: " + information.SollWert);
if (information.Row == 0 && !information.Statuszeile)
{
ctrl.Text = string.Format("{0:0.00}", information.SollWert);
ctrl.ToolTip = "Soll-Wert";
}
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 2);
else
{
if (information.IsLastRow)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 1.5);
else
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 0);
}
}
}
}));
public DPCtrlSoll()
{
InitializeComponent();
//BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlSollInformation SollInformation
{
get { return (DPCtrlSollInformation)GetValue(SollInformationProperty); }
set { SetValue(SollInformationProperty, value); }
}
}
public class DPCtrlSollInformation
{
public int Row { get; set; }
public bool Statuszeile { get; set; }
public decimal SollWert { get; set; }
public bool IsLastRow { get; set; }
public EmployeeDC EmployeeDC { get; set; }
}
}

View File

@@ -0,0 +1,88 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlUrlaubKrankheit : DienstplanerControl
{
public static readonly DependencyProperty UrlaubKrankheitInformationProperty = DependencyProperty.Register(
"UrlaubKrankheitInformation",
typeof(DPCtrlUrlaubKrankheitInformation),
typeof(DPCtrlUrlaubKrankheit),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlUrlaubKrankheitInformation)e.NewValue;
var ctrl = (DPCtrlUrlaubKrankheit)s;
if (ctrl != null)
{
ctrl.Text = "";
ctrl.ToolTip = "";
if (information != null)
{
if (information.SpalteFuerUrlaub)
{
if (information.IsLastRow)
{
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 1.5);
}
else
{
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 2);
else
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 0);
}
}
else
{
if (information.IsLastRow)
{
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1.5);
}
else
{
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
else
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
}
}
if(information.Row == 0 && !information.Statuszeile)
{
ctrl.Text = string.Format("{0:0.00}", information.SummeTage);
ctrl.ToolTip = "Abwesenheiten an Wochenend- und Feiertagen werden nicht mitgezählt.";
}
}
}
}));
public DPCtrlUrlaubKrankheit()
{
InitializeComponent();
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlUrlaubKrankheitInformation UrlaubKrankheitInformation
{
get { return (DPCtrlUrlaubKrankheitInformation)GetValue(UrlaubKrankheitInformationProperty); }
set { SetValue(UrlaubKrankheitInformationProperty, value); }
}
}
public class DPCtrlUrlaubKrankheitInformation
{
public bool Statuszeile { get; set; }
public int Row { get; set; }
public bool SpalteFuerUrlaub { get; set; }
public decimal SummeTage { get; set; }
public bool IsLastRow { get; set; }
}
}

View File

@@ -0,0 +1,92 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlWeek : DienstplanerControl
{
public static readonly DependencyProperty DPCtrlWeekProperty = DependencyProperty.Register(
"DPCtrlWeekInformation",
typeof(DPCtrlWeekInformation),
typeof(DPCtrlWeek),
new UIPropertyMetadata(
(s, e) =>
{
var dc = (DPCtrlWeekInformation)e.NewValue;
var c = (DPCtrlWeek)s;
if (c != null)
{
c.Text = "";
c.ToolTip = "";
if (dc != null)
{
//dc.RemoveAll(x => x == null);
if (!dc.IsLastRow)
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
else
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1.5 );
double res = 0.0;
if(!dc.Statuszeile)
{
if (dc.Hours.Count != 0 || dc.Row == 0)
{
foreach (var dauer in dc.Hours)
{
res += dauer;
}
c.Text = res.ToString("0.##");
}
}
else
{
if(dc.Statuszeile)
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
else
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
c.Text = "";
}
}
else
{
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
c.Text = "";
}
}
}));
public DPCtrlWeek()
{
InitializeComponent();
BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
txt.TextAlignment = TextAlignment.Left;
txt.HorizontalAlignment = HorizontalAlignment.Left;
}
public DPCtrlWeekInformation DPCtrlWeekInformation
{
get { return (DPCtrlWeekInformation)GetValue(DPCtrlWeekProperty); }
set { SetValue(DPCtrlWeekProperty, value); }
}
}
public class DPCtrlWeekInformation
{
public List<double> Hours { get; set; }
public bool Statuszeile { get; set; }
public int Row { get; set; }
public bool IsLastRow { get; set; }
}
}

View File

@@ -0,0 +1,73 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlZeitkonto : DienstplanerControl
{
public static readonly DependencyProperty ZeitkontoInformationProperty = DependencyProperty.Register(
"ZeitkontoInformation",
typeof(DPCtrlZeitkontoInformation),
typeof(DPCtrlZeitkonto),
new UIPropertyMetadata(
(s, e) =>
{
var information = (DPCtrlZeitkontoInformation)e.NewValue;
var ctrl = (DPCtrlZeitkonto)s;
if (ctrl != null)
{
if (information != null)
{
if (information.IsLastRow)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
else
{
if (information.Statuszeile)
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 0, 2);
else
{
ctrl.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 0);
if (information.Row == 0)
{
ctrl.Text = string.Format("{0:0.00}", information.Monatszusammenfassung.ZeitkontoLetzterMonat);
ctrl.ToolTip = "Zeitkonto Vormonat";
}
else if (information.Row == 1)
{
ctrl.Text = string.Format("{0:0.00}", information.Monatszusammenfassung.ZeitkontoAktualisiert);
ctrl.ToolTip = "Zeitkonto dieser Monat";
}
}
}
}
}
}));
public DPCtrlZeitkonto()
{
InitializeComponent();
//BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
txt.HorizontalAlignment = HorizontalAlignment.Right;
}
public DPCtrlZeitkontoInformation ZeitkontoInformation
{
get { return (DPCtrlZeitkontoInformation)GetValue(ZeitkontoInformationProperty); }
set { SetValue(ZeitkontoInformationProperty, value); }
}
}
public class DPCtrlZeitkontoInformation
{
public int Row { get; set; }
public bool Statuszeile { get; set; }
public DienstplanerMonthlySummaryDC Monatszusammenfassung { get; set;}
public bool IsLastRow { get; set; }
}
}

View File

@@ -0,0 +1,26 @@
<UserControl x:Class="BeWo.View.Controls.DienstplanerControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Border x:Name="boLight" IsHitTestVisible="True" Background="White" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="0 0 1 1" BorderBrush="#FFBFBFBF" />
<Border x:Name="bo" IsHitTestVisible="True" Background="Transparent" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="0 0 0 0" BorderBrush="#FF000000" >
<Rectangle x:Name="Path_Notice" Visibility="Collapsed" Fill="Black" Margin="15,-50,-8,-15" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-45"/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Border>
<TextBlock Name="txt" FontSize="15" Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center" />
<!--<Path
x:Name="Path_Notice"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="Black"
Data="M 22,1 L 27,1 L 27,5" Margin="21.031,0,0.804,20.416" Stretch="Fill" Width="6" Height="6"
Visibility="Collapsed"
/>-->
</Grid>
</UserControl>

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for DienstplanerControl.xaml
/// </summary>
public partial class DienstplanerControl : UserControl
{
public DienstplanerControl()
{
InitializeComponent();
ToolTipService.SetShowDuration(this, 60000);
}
public string Text
{
get => txt.Text;
set => txt.Text = value;
}
public new double FontSize
{
get => txt.FontSize;
set => txt.FontSize = value;
}
public Border BorderLight
{
get => boLight;
set => boLight = value;
}
public Border BorderBlack
{
get => bo;
set => bo = value;
}
}
}

View File

@@ -9,6 +9,8 @@ using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using BeWo.Core.Service;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.ClientPartials;
using BS.Shared.Translation;
using DevExpress.Data.Helpers;
@@ -26,29 +28,17 @@ namespace BeWo.View.Controls
public event Action CancelButtonClicked;
public event Action ActionButtonClicked;
private List<GoalRating> _Ratings;
public GoalRatingControl()
{
InitializeComponent();
InitRatings();
ColumnRating.EditSettings = new ComboBoxEditSettings { ItemsSource = _Ratings, IsTextEditable = false };
ColumnRating.EditSettings = new ComboBoxEditSettings { ItemsSource = Cache.GetInstance().GetAllRatingTypeList(), IsTextEditable = false };
IsDirty = false;
}
private void InitRatings()
{
_Ratings = new List<GoalRating>();
_Ratings.Add(new GoalRating { RatingValue = -1, RatingName = "Keine Bewertung"});
_Ratings.Add(new GoalRating { RatingValue = 0, RatingName = "xxx.0 - Problem nicht vorhanden (ohne, kein, unerheblich ...) 0 bis 4 %" });
_Ratings.Add(new GoalRating { RatingValue = 1, RatingName = "xxx.1 - Problem leicht ausgeprägt (schwach, gering ...) 5 bis 24 %" });
_Ratings.Add(new GoalRating { RatingValue = 2, RatingName = "xxx.2 - Problem mäßig ausgeprägt (mittel, ziemlich ...) 25 bis 49 %" });
_Ratings.Add(new GoalRating { RatingValue = 3, RatingName = "xxx.3 - Problem erheblich ausgeprägt (hoch, äußerst ...) 50 bis 95 %" });
_Ratings.Add(new GoalRating { RatingValue = 4, RatingName = "xxx.4 - Problem voll ausgeprägt (komplett, total ...) 96 bis 100 %" });
_Ratings.Add(new GoalRating { RatingValue = 8, RatingName = "xxx.8 - Nicht spezifiziert" });
_Ratings.Add(new GoalRating { RatingValue = 9, RatingName = "xxx.9 - Nicht anwendbar" });
}
public List<SupportConceptGoalDC> Goals
{
get { return _Goals;}
@@ -69,7 +59,7 @@ namespace BeWo.View.Controls
entry.Name = goal.DetailDescription;
if (goal.HasRating)
{
entry.GoalRating = _Ratings.FirstOrDefault(r => r.RatingValue == goal.GoalEntryDC.Rating.Value);
entry.RatingType = Cache.GetInstance().GetAllRatingTypeList().FirstOrDefault(r => r.RatingTypeOid == goal.GoalEntryDC.RatingTypeOid);
}
entries.Add(entry);
@@ -120,13 +110,13 @@ namespace BeWo.View.Controls
{
foreach (var e in Entries)
{
if (e.GoalRating != null)
if (e.RatingType != null)
{
e.Goal.SetRating(e.GoalRating.RatingValue);
e.Goal.SetRatingType(e.RatingType);
}
else
{
e.Goal.SetRating(null);
e.Goal.SetRatingType(null);
}
}
}
@@ -137,34 +127,7 @@ namespace BeWo.View.Controls
{
public SupportConceptGoalDC Goal { get; set; }
public String Name { get; set; }
public GoalRating GoalRating { get; set; }
}
public class GoalRating
{
public int RatingValue { get; set; }
public String RatingName { get; set; }
public override string ToString()
{
return RatingName;
}
public override bool Equals(object obj)
{
var gr = obj as GoalRating;
if (gr != null)
{
return this.RatingName.Equals(((GoalRating) obj).RatingName);
}
return false;
}
public override int GetHashCode()
{
return RatingName.GetHashCode();
}
public RatingTypeDC RatingType { get; set; }
}
}

View File

@@ -18,8 +18,9 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListBox x:Name="Listbox" Grid.ColumnSpan="3" Margin="3, 3, 3, 0" SelectionMode="Single"/>
<Button x:Name="CancelButton" Grid.Row="1" Grid.Column="1" Content="Abbrechen" Margin="3" Click="CancelButton_Click"/>
<Button x:Name="SelectButton" Grid.Row="1" Grid.Column="2" Content="Auswählen" Margin="3" Click="SelectButton_Click"/>
<ListBox x:Name="Listbox" Grid.ColumnSpan="3" Margin="3, 3, 3, 0" SelectionMode="Single" FontSize="14" MouseDoubleClick="Listbox_OnMouseDoubleClick"/>
<Button x:Name="SelectButton" Grid.Row="1" Grid.Column="1" Content=" Auswählen " Margin="3" Click="SelectButton_Click"/>
<Button x:Name="CancelButton" Grid.Row="1" Grid.Column="2" Content=" Abbrechen " Margin="3" Click="CancelButton_Click"/>
</Grid>
</UserControl>

View File

@@ -6,6 +6,7 @@ using System.Linq;
using System.Web.UI.WebControls;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Input;
using BeWo.Annotations;
using BS.Shared;
@@ -42,5 +43,10 @@ namespace BeWo.View.Controls
{
SelectButtonClicked?.Invoke();
}
private void Listbox_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
SelectButtonClicked?.Invoke();
}
}
}

View File

@@ -0,0 +1,11 @@
<UserControl x:Class="BeWo.View.Controls.MonthPicker"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<dxe:ComboBoxEdit x:Name="_MonthPicker" IsManipulationEnabled="False" IsTextEditable="False" HorizontalAlignment="Stretch"/>
</Grid>
</UserControl>

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.View.Detail;
using BeWo.View.Detail.Report;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
/// <summary>
/// Interaction logic for MonthPicker.xaml
/// </summary>
public partial class MonthPicker : UserControl
{
public MonthPicker()
{
InitializeComponent();
_MonthPicker.ItemsSource = DateTimeFormatInfo.CurrentInfo.MonthNames.Where(s => !string.IsNullOrEmpty(s));
_MonthPicker.SelectedIndex = 0;
}
public int SelectedMonth
{
get => _MonthPicker.SelectedIndex + 1;
set => _MonthPicker.SelectedIndex = value - 1;
}
public string SelectedMonthName
{
get => (string)_MonthPicker.SelectedItem;
}
}
}

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