243 Commits

Author SHA1 Message Date
f1609e7e3b Nuget config 2026-08-07 14:58:09 +02:00
4824bd2485 log4net update 2026-08-07 14:49:20 +02:00
7d05b53d07 Referenzen aufgearbeitet 2026-08-07 14:30:34 +02:00
77eb62d86d Schritt 2+3 2026-08-07 14:15:40 +02:00
fdd5166986 Stufe 1 2026-08-07 13:07:47 +02:00
7a84581310 KommMitBeWo: Neues Briefpapier für alle Rechnungen nochmal mit mehr dpi erstellt
SupportOID=170108
2026-08-07 12:28:05 +02:00
8975186852 BeWoFuerDich: Sozio-Rechnung so angepasst, dass zweite Seite sltener benötigt und besser angezeigt wird
SupportOID=170101
2026-08-07 12:28:04 +02:00
1975bf82d4 PluginLoader: using BeWo.Data wiederhergestellt (wird zum Release-Bau benötigt) 2026-08-07 12:28:04 +02:00
38b951686e MH: SBBMainzReports neuer KT im Beleg Bugfix 2026-08-07 11:13:04 +02:00
c8797bce97 Merge branch 'master' of https://floating.ownsoft.de/ownSoft/BeWoPlaner 2026-08-07 09:51:36 +02:00
e6160d997f MH: Mittelpunkt CustomInvoiceCreation Kappung ohne Faktor
SupportOID=170089
2026-08-07 09:41:54 +02:00
b14d193c86 Solution-Dateien repariert: KommMitBewo-Pfad und 4 tote Projekteintraege 2026-08-06 16:44:13 +02:00
38942b00b9 Erster Versuch CPM 2026-08-06 16:35:39 +02:00
f4f7dd2bf9 ExecuteAiConversationWithRoutineComplete 2026-08-06 11:30:45 +02:00
cc257d4250 MH: JusinaJugendhilfe Fix field im Taetigkeitsnachweis
SupportOID=170013
2026-08-06 10:43:49 +02:00
ab17cecf4a MH: HilfeDaheimHandInHand Zeitstempel der Unterschrift + Unterschrift neu verknümpft 2026-08-06 10:43:02 +02:00
40625d7bf7 Merge branch 'master' of https://floating.ownsoft.de/ownSoft/BeWoPlaner 2026-08-06 08:33:04 +02:00
7c7915c4ca MH: AufEigenenFuessenStehen ServicesDouble neu gefüllt
SupportOID=169992
2026-08-06 08:32:50 +02:00
3ddcaaf036 MH: Hilfe Daheim QB Unterschrift neu verknüpft
SupportOID=169994
2026-08-06 08:32:15 +02:00
da2a204756 Lori: Sammelrechnung hinzugefügt und auf allgemeiner Rechner Zahlungsinfos ergänzt
SupportOID=169984
2026-08-05 21:40:41 +02:00
60a2473b33 Versionsfehler behoben. 2026-08-05 16:52:31 +02:00
664da6b34e Supportfall ZATH-iXTU-3Ngf 2026-08-05 16:52:30 +02:00
d2d3fd6d26 MH: JusinaJugendhilfe QB Bugfix 2026-08-05 14:58:54 +02:00
bdb47825fd Merge branch 'master' of https://floating.ownsoft.de/ownSoft/BeWoPlaner 2026-08-05 13:41:59 +02:00
9d5c5bd161 MH: JusinaJugendhilfe Neuabstimmung Taetigkeitsnachweis 2026-08-05 13:41:56 +02:00
b9795b77a1 GenderBeWoReports: Quittierungsbeleg jetzt mit Briefpapier
SupportOID=169945
2026-08-05 13:21:09 +02:00
7b6a90dd9f MH: VereinZurIntegrationChemnitz wbw Abrechnung
SupportOID=169880
2026-08-05 12:57:23 +02:00
0d86079a89 VereinZurIntegrationChemnitz: Für Soziotherapie LN + Rechnung nachgebessert / korrigiert
SupportOID=169955
2026-08-05 12:51:53 +02:00
64cb73806b Merge branch 'master' of https://floating.ownsoft.de/ownSoft/BeWoPlaner 2026-08-05 08:07:40 +02:00
49dc97fc84 Mobil Projekt aufgeräumt 2026-08-04 17:53:37 +02:00
2be9ba69c1 Revert "Supportfall-Id: FywZ-asBS-TT5M"
This reverts commit d68cf083d9.
2026-08-04 15:13:17 +02:00
734d7a964b Merge branch 'master' of https://floating.ownsoft.de/ownSoft/BeWoPlaner 2026-08-04 14:37:48 +02:00
5cb6b4aef3 MH: VereinZurIntegrationChemnitz Eigenanteilsrechnung
SupportOID=169241
2026-08-04 14:37:44 +02:00
d68cf083d9 Supportfall-Id: FywZ-asBS-TT5M 2026-08-04 13:29:25 +02:00
8f902724f4 MH: Mittelpunkt/RosterIstReport Bugfix 2026-08-04 12:12:50 +02:00
6a643e9042 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-08-03 14:27:10 +02:00
0708b46c53 Supportfall FywZ-asBS-TT5M 2026-08-03 14:27:37 +02:00
b47b7a6453 MH: VereinZurIntegrationChemnitz Eigenanteilsrechnung, ABW Rechnung und WBW Rechnung
SupportOID=169241
2026-08-03 14:26:36 +02:00
a036e23379 MH: Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
Konflikte gelöst
2026-08-03 13:06:45 +02:00
d5e34c1f04 MH: VereinZurIntegrationChemnitz Vorlage §67 Rechnung + Vorbereitung WBWInvoiceCreation 2026-08-03 13:04:17 +02:00
56b1d0260e VereinZurIntegrationChemnitz: Ordnerstruktur vom Sozio-Kram im Studio anzeigen
SupportOID=169226
2026-08-03 12:41:55 +02:00
755f6968c3 VereinZurIntegrationChemnitz: Soziotherapie eingerichtet
SupportOID=169226
2026-08-03 12:22:59 +02:00
2379ba2bd6 Neues Benutzerrecht "Mitarbeiter Abwesenheiten löschen nach Ablauf" - MoK-Anteil, to be tested
ToDoOID=1328370181
2026-08-03 10:42:00 +02:00
913b51b58b Neues Benutzerrecht "Mitarbeiter Abwesenheiten löschen nach Ablauf" - FaC-Anteil
ToDoOID=1328370181
2026-08-03 10:42:00 +02:00
d6c2952c2f Neues Benutzerrecht "Mitarbeiter Abwesenheiten löschen nach Ablauf" - Serveranteil
ToDoOID=1328370181
2026-08-03 10:41:59 +02:00
401893710e Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-31 13:19:04 +02:00
e7d09d58b6 MH: TeamPfeil Stundensätze korrekt dargestellt 2026-07-31 13:18:44 +02:00
52c6a3785c MH: SKM Leverkusen Text ausgetauscht 2026-07-31 13:18:21 +02:00
ca367fe894 MH: JusinaJugendhilfe Tätigkeitsnachweis verbessertt 2026-07-31 13:18:04 +02:00
289d276415 GKV - kaufmännisches Runden 2026-07-31 12:17:57 +02:00
a9bbd22a52 Warnung bei Avisebuchung im abgelaufenen HP
ToDoOID=1076595311
2026-07-31 11:41:29 +02:00
b7b48f7434 LebenshilfeWolfsburg/Validation/CustomServiceRecordValidator.cs - Gruppenbuchung nur noch mit Leistung Sonstiges möglich
SupportOID=169213
2026-07-31 10:44:02 +02:00
cd7c156ccb WegweiserBetreuungsdienstReports/CustomReportCreator.cs - Erkennung für neuen QB nochmal angepasst
SupportOID=169120
2026-07-31 10:44:02 +02:00
72763e9fa2 GenderBeWoReports: Auf SoziotherapieRechnung IK hinzugefügt
SupportOID=169397
2026-07-30 21:25:31 +02:00
efb78f828a GenderBeWoReports: QB so angepasst, dass er auf deren Briefpapier passt (Briefbogen zur Info mit hinzugefügt)
SupportOID=169397
2026-07-30 21:25:30 +02:00
f7877a9f26 SKFAlsdorf: Auf QB Einzelunterschrift erst ab September 26 anzeigen + Anpassung Spaltenüberschrift
SupportOID=168923
2026-07-30 21:25:29 +02:00
b61c931ee5 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-30 14:17:57 +02:00
697683d868 MH x Claude: Zeitterfassungsdoku kein Pflichtfeld mehr im Falle von Doku ohne Klientenbezug 2026-07-30 14:17:47 +02:00
4f49e6b252 BWSBetreuenWohnenSoziales/CustomerDataReport mit Medikamentenliste
SupportOID=169324
2026-07-30 13:35:32 +02:00
8b3b2b7a14 SKFLeverkusen/Export/DatevExporter.cs - auch archivierte Hilfepläne in Abgrenzung
SupportOID=169329
2026-07-30 13:35:31 +02:00
d42e15d811 CaritasVerbandDuerenJuelichEvBeWo Rechnungen auf Bankverbindung aus Verwaltung umgestellt
SupportOID=169309
2026-07-30 13:35:31 +02:00
810377babb CaritasVerbandDuerenJuelichEvBeWo/Export/DiamantExporter.cs - Fehlkontakte und Faktor noch in Abgrenzung ergänzt
SupportOID=169309
2026-07-30 13:35:30 +02:00
afe4b9cd8c MH: In Modul Zeiterfassung "Unterschrift" in "Einzelunterschrift" umbenannt für mehr Kund:innenklarheit 2026-07-30 11:59:15 +02:00
afd777547c MH: CaritasverbandKelheim Briefpapier aktualisiert 2026-07-30 11:34:44 +02:00
78a7f04bea MH: SozialeDiensteNiederrhein Neue Quote im Stundenkonto 2026-07-30 11:34:20 +02:00
61dbeb71a7 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-30 07:29:51 +02:00
00cbc763c4 MH: SKM Leverkusen Spitzabrechnung 2026-07-30 07:29:23 +02:00
51665371c1 SKFLeverkusen/Invoicing/CustomInvoiceFactory.cs - CustomInvoiceCreation entfernt, da nicht genutzt
SupportOID=169285
2026-07-29 17:34:22 +02:00
fdd097f440 SKFLeverkusen/Export/DatevExporter.cs - Rechnungen raus, Fehlkontakte u alle Kostenträger rein
SupportOID=169285
2026-07-29 17:34:21 +02:00
9e9c1d783f SKFLeverkusen/Export/DatevExporter.cs - Belegnr aus Rechnung gezogen
SupportOID=169282
2026-07-29 17:34:21 +02:00
c39bfea349 HshCologne/LeistungsnachweisSbWesseling - neuer LN für Schulbegleitung in Wesseling
SupportOID=169262
2026-07-29 17:34:20 +02:00
a4b4fa9516 VereinZurIntegrationChemnitz: nur ProjektGuid (passend zu BeWoAllReports) 2026-07-29 13:07:20 +02:00
5d9ae34378 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-29 13:04:11 +02:00
063e5c2b97 HshCologne/LeistungsnachweisSbWesseling - neu
SupportOID=169237
2026-07-29 13:02:56 +02:00
07b036f7d8 DiakoniewerkEssen/Validation/ServiceRecordValidator.cs Pflichfeld Doku nur für nicht Arbeitszeit, Zukunft schon bei 1 min nach jetzt starten
SupportOID=169166
2026-07-29 13:02:56 +02:00
91b248d676 SKFAlsdorf/Invoicing/SettlementInvoiceCreation.cs - Avise auch ohne Rechnungspositionen
SupportOID=169088
2026-07-29 13:02:56 +02:00
a25e69eba2 WendepunktVelbert/SettlementReport2 - Zeilenumbruch bei zu langem Betreff
SupportOID=169146
2026-07-29 13:02:55 +02:00
38f59e057c PerspektivenEV/Invoicing/CollectiveInvoiceCreationBthg.cs - nochmal Feinjustierung bei KA bzw. KAFZ
SupportOID=169107
2026-07-29 13:02:55 +02:00
28ef778af7 DiakonischesWerkMuelheimTwg/Export/DatevExporter.cs - Bugfix nach Filterung
SupportOID=169131
2026-07-29 13:02:55 +02:00
75c6d8c664 DiakonischesWerkMuelheimTwg/Export/DatevExporter.cs - doch mit Kostenstelle u ohne BarbetragsRgen
SupportOID=169109
2026-07-29 13:02:55 +02:00
445fb99c05 ZukunftLeben/Export/DatevExporter.cs - Debitornr wieder aus HP
SupportOID=168733
2026-07-29 13:02:55 +02:00
ecac8e710f MH: PerspektivenEV Urlaubskonto Regenerationstage Bugfix 2026-07-29 13:01:33 +02:00
a572ec33f5 KCM BeWo Soziotherapie hinzugefügt zur Projektliste 2026-07-28 20:16:48 +02:00
ff89851fd3 SKFAlsdorf: Auf QB beide Unterschriftsarten verknüpft (Spalte für Einzelunterschrift hinzugefügt)
SupportOID=168923
2026-07-28 20:15:03 +02:00
1491885e02 WegweiserBetreuungsdienstReports: Für KTs LVR + LVR II (angepassten) Standardbeleg verwenden
SupportOID=169120
2026-07-28 19:00:36 +02:00
e9679d2439 BhsSolingen: Auf Quittierungsbeleg in der Verwaltung hinterlegtes Logo verwenden
SupportOID=169084
2026-07-28 09:48:55 +02:00
efa0faccf4 CaritasAichachFriedberg: Leistungsnachweis-Formulare hinzugefügt, Rechnungen angepasst und erweitert
SupportOID=169075
2026-07-27 18:51:02 +02:00
647b17d07c GKV-Abrechnung: Neue Kostenträgerdateien zum 1.7. (seit gestern auf app8) 2026-07-27 18:51:01 +02:00
2ada39a4f2 DiakonischesWerkMuelheimTwg/Export/DatevExporter - Erweiterung um isExported = 0 ergänzt 2026-07-27 15:36:24 +02:00
20f4204232 PerspektivenEV/Invoicing/CollectiveInvoiceCreationBthg.cs - ab 01.07.2026 KA für BW und TS neue Logik; Altfälle entfernt
SupportOID=169027
2026-07-27 15:36:24 +02:00
031b19cb30 PerspektivenEV/CustomReportCreator.cs - keine Spitzabrechnung mehr ab 01.07.2026
SupportOID=169027
2026-07-27 15:36:24 +02:00
977de22d47 PerspektivenEV/CollectiveBillingReportTabBthg - Spaltenüberschriften ab 01.07.2026 modifiziert
SupportOID=169027
2026-07-27 15:36:24 +02:00
67a8598de8 PerspektivenEV/Export/DatevExporterBthg und CollectiveInvoiceCreationBthg
neuer Bereich Traum mit ggf. neuen Kostenstellen
SupportOID=169021
2026-07-27 15:36:23 +02:00
c23f03a4d3 PerspektivenEV/CustomReportCreator.cs - Entfernen nicht benötigter Berichte
SupportOID=169021
2026-07-27 15:36:23 +02:00
ac9e6a7dde MH: Arche Tecklenburg BudgetnachweisAnhang in Spitzabrechnung
SupportOID=169014
2026-07-27 14:11:32 +02:00
dea89db9f6 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-27 12:29:57 +02:00
0558fa897c MH: PSM neues Logo 2026-07-27 12:29:47 +02:00
2a17c4015f PerspektivenEV/Export/DatevExporterBthg - 1. Teil neue Abteilung Trauma 2026-07-27 10:14:24 +02:00
0113802d81 BeratungStadtwald/Reporting/Quittierungsbeleg - doch wieder mit Einzelunterschrift
SupportOID=168978
2026-07-27 10:14:24 +02:00
8779fc1489 Inkomm/Invoicing/SettlementInvoiceCreation.cs - Umstellung auf Fehlkontakte Standard
SupportOID=168968
2026-07-27 10:14:24 +02:00
47070a0429 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-27 10:04:42 +02:00
9b220972be MH: Perspektiven Urlaubskonto Regenerationstage Fix
SupportOID=169016
2026-07-27 10:01:02 +02:00
b8260afa82 MH: PSM Vorlagen zurechtgerückt 2026-07-27 10:00:08 +02:00
65dfacfa09 LwlPruefliste2026 - Finish - Format für Kurzversion und Kürzel zur Angabe klappen
ToDoOID=1655578652
2026-07-24 12:57:02 +02:00
2aa6c10bfb MH: LebenshilfeStadeMID Ausnahmefall Pausen Timo
SupportOID=168937
2026-07-24 12:10:57 +02:00
56f94efb5f MH: LebenshilfeStadeMID Automatischer Pausenabzug
SupportOID=168937
2026-07-24 11:16:43 +02:00
dd77703ff7 MH: HwHilfswerkInklusionUndTeilhabe Zuschläge im Stundenkonto Jahresansicht
SupportOID=168932
2026-07-24 11:05:19 +02:00
e3d4387f68 MH: LebenshilfeStadeMID automatische Pausen 2026-07-24 11:04:14 +02:00
c26bbe9250 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-23 14:58:36 +02:00
8f1955ea0c MH: HwHilfswerkInklusionUndTeilhabe Zuschläge in Tages und Monatsansicht 2026-07-23 14:58:21 +02:00
1c96b54976 DefaultReports/LwlPruefliste2026 - neu nach Vorgaben LWL in Variante 1 und 2 - erster Wurf
ToDoOID=1655578652
2026-07-23 14:04:08 +02:00
14df9e0e34 MH: HwHilfswerkInklusionUndTeilhabe Zwischenstand Zuschläge und Pauschalen im Stundenkonto
SupportOID=168831
2026-07-23 10:55:06 +02:00
3232f552a3 MH: HwHilfswerkInklusionUndTeilhabe Standard umgekehrt
SupportOID=168831
2026-07-23 08:18:32 +02:00
08a4ba959b KetteReports/Export/Personio Exporte für Arbeitszeit und Abwesenheiten neu
SupportOID=167814
2026-07-22 15:57:44 +02:00
6abefef781 DiakonischesWerkMuelheimTwg/Export/DatevExporter.cs - neu + Umstellung Invoicing um Erlöskonten sicher zuordnen zu können
SupportOID=168755
2026-07-22 15:57:44 +02:00
f8fd931476 PerspektivenEV/Export/DatevExporterBthg.cs - Fehlerparsing Allg. Rg gefixt 2026-07-22 15:57:44 +02:00
6fbd4d16ad ZukunftLeben/Export/DatevExporter.cs - Umstellung auf volles DatevFormat
SupportOID=168700
2026-07-22 15:57:43 +02:00
55153c43ca SBBMainzReports/Invoicing - Finetuning - lange Mail
SupportOID=168696
2026-07-22 15:57:43 +02:00
b1f29972bc SBBMainzReports/Export/FibuExporter - plus Allg. Rg und Leistung richtet sich nach Kostenstelle
SupportOID=168696
2026-07-22 15:57:43 +02:00
806b2f7d28 SageExporter - Unterscheidung Konto Fahrtpauschale
SupportOID=168622
2026-07-22 15:57:43 +02:00
bb7ce87448 MH: HwHilfswerkInklusionUndTeilhabe Jugendamt QB auf mehr KT erweitert 2026-07-22 15:05:05 +02:00
89eacef09f MH: AsbRheinErftDuerenSBD qual.abh. Stundensätze 2026-07-22 15:04:42 +02:00
f491354f65 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-22 13:44:42 +02:00
4cb254b0e9 MH: CaritasverbandDuerenJuelichEV Auftteilung Belege nach MA 2026-07-22 13:44:31 +02:00
c85184ef13 MH: AsbRheinErftDuerenSBD qual.-abhäng. Stundensätze
SupportOID=168684
2026-07-22 13:44:02 +02:00
cecefb2690 Fix: In KI Chat wird kein Zeiterfassung angezeigt 2026-07-22 12:25:57 +02:00
3e70b7a0aa MH: CaritasverbandDuerenJuelichEV QBs nach Leistungen beim Rechnungsanhang trennen
SupportOID=168681
2026-07-21 14:09:52 +02:00
d0a383f2c0 MH: Humanitas Einträge ohne Uhrzeiten verhindert
SupportOID=168640
2026-07-21 12:08:19 +02:00
c5b7653614 MH: HwHilfswerkInklusionUndTeilhabe Mergekonflikt behoben 2026-07-21 10:18:28 +02:00
ccee1cef57 MH: VereinZurIntegrationChemnitz Fronleichnam raus
SupportOID=168633
2026-07-21 10:17:44 +02:00
d110afa147 MH: VSD Hamm Kappung in der Sammelrechnung
SupportOID=168627
2026-07-21 09:28:04 +02:00
bb0a227a00 MH: VSD Hamm Sammelrechnung Kappung 2026-07-21 08:16:47 +02:00
3418d56dce Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo
Konfilkte behoben
2026-07-21 07:24:54 +02:00
77aa672336 MH: HwHilfswerkInklusionUndTeilhabe Allg. Rechnung#
SupportOID=168614
2026-07-21 07:17:25 +02:00
8806964287 MH: HwHilfswerkInklusionUndTeilhabe Stundenkonto Bugfix und QB Hintergrunddienste 2026-07-21 07:16:47 +02:00
82765e6b7c KomMitBewo: Neues Briefpapier nach Umfirmierung in allen Rechnungsformularen
SupportOID=168611
2026-07-20 20:39:46 +02:00
7a9c568269 NousLeverkusen: Neue Firmenanschrift
SupportOID=168599
2026-07-20 20:07:33 +02:00
fa0b41315c SchillingerReports entfernt aus BeWoAllReports - HilfeDaheimHandInHand ist (schon länger) das Nachfolgeprojekt
SupportOID=168571
2026-07-20 16:23:52 +02:00
7319447061 DomizielAnsbach/ZVBerichtBezirk.cs - Fehler Enddatum ZV im Monat
SupportOID=168537
2026-07-20 16:19:03 +02:00
acf4919364 SBBMainzReports/Invoicing/CustomInvoiceCreationQA - Finetuning, auch unbew. HPs und NPE bei Wegepauschale
SupportOID=167648
2026-07-20 16:19:03 +02:00
dba9ca64d5 AwoIntegrationsGGmbH/ServiceRecordListReport - Anzeige 2. Dokufeld
SupportOID=167746
2026-07-20 16:19:03 +02:00
d5389775cf AwoIntegrationsGGmbH/QuittierungsbelegEinzelunterschrift ab August mit Einzelunterschrift
SupportOID=167746
2026-07-20 16:19:03 +02:00
4a559dcb9a fix: kein Bezug mehr zu .Context 2026-07-20 15:03:45 +02:00
66a016de6b fix? 2026-07-20 14:57:08 +02:00
65880dcd23 Bugfix Vga Statistik 2026-07-20 14:42:33 +02:00
57d418d4c5 Weitere Optimierung am Stundenkonto (CorrectOverlappingRecords) 2026-07-20 14:42:33 +02:00
309e288a44 #If Debug zum testen entfernt 2026-07-20 14:42:33 +02:00
5a24645dad Merge Konflikt in BeWoAllReports gelöst 2026-07-20 14:42:30 +02:00
0371bae325 MH: BeWo Schilling Summen auf Spitzabrechnung
SupportOID=168541
2026-07-20 10:20:58 +02:00
8769f32bfb MH: Neuprojekt VereinZurIntegrationChemnitz + Feiertage
SupportOID=168445
2026-07-17 12:20:25 +02:00
80946a92d5 MH: VSD Hamm Vorbereitung Sammelrechnungsanpassung 2026-07-17 12:18:40 +02:00
31bd24ee4c AidshilfeEssen: Briefkopf + GP-Nr. auf $67-Rechnung
SupportOID=168075
2026-07-17 09:52:36 +02:00
88185d7382 Kundenanpassungen an Mitarbeiterstundenkonto Refactoring 2026-07-17 03:07:51 +02:00
a939947d31 Performance Verbesserungen Urlaubskonto/Stundenkonto 2026-07-17 03:07:51 +02:00
1f853494ad Kalender: Tooltip erweitert und Bugs behoben. 2026-07-16 16:29:58 +02:00
5752537e96 MH: VSD Hamm kleinere Umbenennungen und Vorbereitung Sammelrechnung 2026-07-16 14:01:43 +02:00
6fd3fe0cd1 MH: PerspektivenEV Sonderurlaub anrechenbare ABwesenheit 2026-07-16 14:01:10 +02:00
dfe5107c62 MH: Caritas Kelheim Rechnung Verbesserungen und Bugfix
SupportOID=168082
2026-07-15 11:36:54 +02:00
1ee2189092 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-15 08:20:36 +02:00
46489fa2c5 MH: CaritasverbandKelheim Briefpapier ab Seite 2 2026-07-15 08:20:24 +02:00
e4757d1cea FlexibleJugendarbeitFrankfurtEV: Allgemeine Rechnung hinzugefügt (Briefkopf wie Sammelrechnung)
SupportOID=168022
2026-07-14 19:21:23 +02:00
a41e4316fb SehtMuenster: LWL Prüfliste eingerichtet (inkl. DB-Anteilen)
SupportOID=167729
2026-07-14 19:21:23 +02:00
6da4593d12 MH: Differenzrechnungstext angepasst bei nicht identischem Abrechezeitraum 2026-07-14 17:05:54 +02:00
a680ffa1ec MH: Differenzrechnung Hinweis über falsche Darstellung, wenn die Zeiträume nicht zueinanderpassen 2026-07-14 16:59:21 +02:00
6990bc5ae8 MH x Claude: HwHilfswerkInklusionUndTeilhabe automatische Stundengutschrift für Vertragsart Ambulant im Stundenkonto
SupportOID=167700
2026-07-14 15:29:59 +02:00
056a779050 MH: HwHilfswerkInklusionUndTeilhabe verschiedene Stundenkontoberechnung je nach Vertragsart
SupportOID=167700
2026-07-14 14:16:40 +02:00
e47bacf0f0 MH: SonjaZoeller in Rechnung Namen fest eingebaut 2026-07-14 13:16:36 +02:00
9716456165 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-14 10:26:24 +02:00
9451777280 MH x Claude: Optimierung der Dienstsuche zur Pausenberechnung 2026-07-14 10:26:11 +02:00
bacc7fcedd Verhindern, dass Ressourcen doppelt gebucht werden mit Recht: ToDoOID=91266751
Serientermine können gelöscht werden, aber es fehlt noch eine Abfrage, ob man wirklich löschen will bei normalen Terminen.
2026-07-13 20:32:48 +02:00
cf20c425f8 MH x Claude: Dienstplanung Pausenlogik eingebaut 2026-07-13 16:24:34 +02:00
5d7d4abc84 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-13 09:16:09 +02:00
a7820f34ce MH: HwHilfswerkInklusionUndTeilhabe QB Reststtundenkontingent 2026-07-13 09:16:01 +02:00
fe9adb7ba3 ZukunftLeben/Export/DatevExporter.cs - auch archivierte HPs in Erlösen
SupportOID=167738
2026-07-13 08:51:43 +02:00
a522be2b17 LebenshilfeBadKreuznach/Validation/ServiceRecordValidator.cs - entfernt, da Gesamtbew jetzt relevant ist
SupportOID=167711
2026-07-13 08:51:43 +02:00
012462d744 SBBMainzReports/ServiceInvoiceReport - Dateiname falsch, wenn Sonderzeichen im Namen, gefixt
SupportOID=167726
2026-07-13 08:51:42 +02:00
2987e9cc5f SBBMainzReports/Invoicing/CustomInvoiceCreationQA - NPE gefixt, wenn keine ServiceCategory vergeben
SupportOID=167690
2026-07-13 08:51:42 +02:00
005bb631eb CaritasVerbandDuerenJuelichEvBeWo/Export/DiamantExporter - PDF auch mit Übersicht exportierte Rgen und Gesamtsumme
SupportOID=167443
2026-07-13 08:51:42 +02:00
7f40fb9887 CaritasverbandDuerenJuelichEV - im Sammeldruck RE immer mit QB, Einzeldruck Rechnungsname angepasst
SupportOID=167605
2026-07-13 08:51:42 +02:00
070a7c16f4 MH: VKM Hamm Spalte weg vom JA QB 2026-07-10 12:08:45 +02:00
b7f67881ee MH: Inkomm Briefpapier 2026-07-10 12:08:26 +02:00
ee1c7d8f91 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-10 08:58:56 +02:00
7c482d2e81 MH: Inkomm neues Briefpapier 2026-07-10 08:58:20 +02:00
802b6f8c98 MH: AdikKleve Layout Spitzabrechnung 2026-07-10 08:57:19 +02:00
7f7bc57a9c Frau Hildmann Sachen 2026-07-09 17:01:10 +02:00
e64c1f5da3 FLS Soll/Ist Bericht freigeschaltet SupportOID=167200 2026-07-09 17:01:10 +02:00
f61bcc8754 Bugfix bei Rechnungen mit mehreren Bewilligungen im abgerechneten Monat SupportOID=167642 2026-07-09 17:01:09 +02:00
7bd725584d Bugfix für die Berechnung von Team extern SupportOID=167222 2026-07-09 17:01:09 +02:00
27b51d5ad1 Nachname statt Vorname im Quittierungsbeleg anzeigen SupportOID=167139 2026-07-09 17:01:09 +02:00
282038169f Bemerkung bei Vga besser als MEDIUMTEXT setzen 2026-07-09 17:01:09 +02:00
a5767bde91 Fenster für Bewertung etwas größer öffnen und mehr Platz für Bemerkungsfeld lassen 2026-07-09 17:01:09 +02:00
182423692b Fenster für Bewertung etwas größer öffnen und mehr Platz für Bemerkungsfeld lassen 2026-07-09 17:01:09 +02:00
91143f9e67 Bugfix Vorlagen Platzhalter für die Straffälligenhilfe SupportOID=167061 2026-07-09 17:01:09 +02:00
97d7fac034 Neue LetsEncrypt Zertifikate hinterlegt 2026-07-09 17:01:09 +02:00
44afdc0e20 Merge Konflikte gelöst 2026-07-09 17:01:05 +02:00
906310d04b Client Version 3.32.2 erstellt 2026-07-09 16:57:12 +02:00
e6fc3f18ef Bugfix bei Bargeldkassen Berechnung des Saldo wenn eine Kasse neu angelegt wird 2026-07-09 16:57:12 +02:00
b1356b54a9 Auswahl der Leistungen bei Gruppenbuchungen überarbeitet. Bei der Auswahl von einer einzelnen Person in einer Gruppenbuchung, werden nur die bei der Person hinterlegten Leistungen zur Auswahl gestellt 2026-07-09 16:57:12 +02:00
c8199f2530 AkggMid/Mitarbeiterarbeitszeitkonto.cs - auch Feiertage grau hinterlegt
SupportOID=167595
2026-07-09 13:51:32 +02:00
75aff1a436 AKGG/Mitarbeiterarbeitszeitkonto.cs - jeder Eintrag erhält eine Zeile - wie AKGGMid
SupportOID=167595
2026-07-09 13:51:32 +02:00
7c729dc17a AKGG/Mitarbeiterarbeitszeitkonto.cs - Bugfix Zelle Gesamt und auch Feiertage grau hinterlegt
SupportOID=167595
2026-07-09 13:51:32 +02:00
b49ee3a2b0 AkggMid/Mitarbeiterarbeitszeitkonto - Feiertage wie in AKGG für Hessen und farbliche Hinterlegung Wochenende
SupportOID=167572
2026-07-09 13:51:32 +02:00
1f2290eb2e AKGG/Mitarbeiterarbeitszeitkonto - farbliche Hinterlegung Wochenende
SupportOID=167480
2026-07-09 13:51:31 +02:00
4d016f3ab0 Neues Kalendermodul und DevExpress Übersetzungen 2026-07-09 11:39:56 +02:00
22c576af7b Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-09 10:59:57 +02:00
5ad6579367 MH: Mittelpunkt Rechnungsstellung Verbesserung 2026-07-09 10:59:48 +02:00
ed8694f3e3 MH: AssistenzaReports neue Fehlermeldung 2026-07-09 10:58:39 +02:00
ee039de659 Mittelpunkt: ArbeitsZuschlaege-Bericht korrigiert - kein Samstagsarbeitszuschlag bei mtl. Wechselschichtpauschale, Prüfung und Berechnung der SV-pflichtigen Sonn- und Feiertagszuschläge
SupportOID=167554
2026-07-08 19:30:36 +02:00
5c0a994e14 FreundeskreisSuchthilfe (Suchthilfe Wuppertal): Ambulante Eingliederungshilfe-Passus von Sammelrechnung entfernt
SupportOID=167533
2026-07-08 19:30:35 +02:00
621189efe9 FeidPartnerReports/Personalplanung - Filterbarkeit nach Organisation ergänzt u etwas Format
SupportOID=167181
2026-07-08 16:21:27 +02:00
9caa7aa807 FeidPartnerReports/Personalplanung - Finish (Beachtung Gruppenbuchung und Format)
SupportOID=167181
2026-07-08 16:21:27 +02:00
8659eca44e SBBMainzReports/LeistungsbestaetigungRlpBienen - neuer Beleg für Bienenprojekt aus ergänzenden Diensten
SupportOID=167465
2026-07-08 16:21:26 +02:00
18e326236b SBBMainzReportCreator - nochmal Namensänderung Kostenträger 2026-07-08 16:21:26 +02:00
9b1512b5ad Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-08 13:28:04 +02:00
da9609c01f MH: CaritasverbandKelheim Bugfixe und Erweiterung in Abrechnung 2026-07-08 13:27:53 +02:00
f967e5a56a MH: AssistenzaReports Meldung beim Speichern der Zeiterfassung ohne Zeiten
SupportOID=167514
2026-07-08 13:26:53 +02:00
f0e0a553b3 MH: TranskulturellesBetreuungsbuero Bugfix Stundenübersicht
SupportOID=167440
2026-07-08 09:55:34 +02:00
549be7c73d MH: SonjaZoeller Bankdaten in Rechnung 2026-07-08 09:54:30 +02:00
84ec2598f6 GenderBeWoReports: Soziotherapie eingerichtet
SupportOID=167423
2026-07-08 09:08:02 +02:00
08252bdd6a MH: Arche Tecklenburg Rundung in ZE für LWL Inklusionsamt
SupportOID=167253
2026-07-07 16:51:24 +02:00
5817b485b0 Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-07 16:13:39 +02:00
5e7573ba2b MH: Team Pfeil Korridore in der Abrechnung finale Version
SupportOID=167413
2026-07-07 16:13:35 +02:00
c852111cb2 AkggMid/Service/CustomVacationService.cs - Angleichung auf BeWoDB für Feiertage, erstmal auskommentiert 2026-07-07 15:34:00 +02:00
1232b709be DiakonischesWerkRegensburg/Export/EGeckoExporter.cs - Encoding und Minibugfix
SupportOID=167411
2026-07-07 15:34:00 +02:00
2b60eb62c3 HshCologne/CustomReportCreator.cs - Bornheim kriegt zwei QBs an Rechnung
SupportOID=166717
2026-07-07 15:33:59 +02:00
4960d39daa SBBMainzReports/Invoicing/CustomInvoiceCreationQA.cs - Bugfix HPs aus laufendem Monat
SupportOID=167329
2026-07-07 15:33:59 +02:00
01257e67ab HshCologne/Invoicing/CustomInvoiceCreation.cs - Wesseling Schulbegleitung immer ein preis
SupportOID=167299
2026-07-07 15:33:59 +02:00
2f9a6e2b40 HshCologne Format IFH zu ifh
SupportOID=166717
2026-07-07 15:33:59 +02:00
2a994aca69 LebenshilfeBadKreuznach/Statistics/CustomServiceRecordStatisticFactory - Frei pro Woche auf Gesamt beziehen
SupportOID=167345
2026-07-07 15:33:59 +02:00
e93fed0378 VacationService - Fortschreibung aller Schulferien bis 2029 - danke Claude 2026-07-07 15:33:59 +02:00
5d56f7f61e AKGG/Mitarbeiterarbeitszeitkonto.cs - Anzeige Feiertage wie in SB-DB
SupportOID=167315
2026-07-07 15:33:58 +02:00
639c700300 MH: TranskulturellesBetreuungsbuero Stundenübersicht erweitert
SupportOID=167379
2026-07-07 14:46:40 +02:00
5b89e270fc Merge branch 'master' of ssh://float.ownsoft.de/git/beyondSoft/BeWo 2026-07-07 10:15:28 +02:00
7bec9cc8bc MH: SonjaZoeller Vorlagen 2026-07-07 10:15:18 +02:00
7637b1e7d5 GpzBiberachReports: Neuer Hausbesuchspauschalenpreis in SoziotherapieInvoiceCreation, alte Hausbesuchspauschalenpreise ein wenig aufgeräumt
SupportOID=167306
2026-07-06 18:59:50 +02:00
0452443db9 SBBMainzReports/Invoicing/CustomInvoiceCreationQA - Beschriftung InvoiceItems und Erkennung wenn Kostenträger keine Funktion hat
SupportOID=167183
2026-07-06 15:14:38 +02:00
85f042a525 DomizielAnsbach/Rechnungen -> ZE-Nr. wird zu RangNr..
SupportOID=166002
2026-07-06 15:14:38 +02:00
e0974d557a SBBMainzReports/SBBMainzReportCreator.cs - neuen Kostenträger mit QB
SupportOID=167147
2026-07-06 15:14:38 +02:00
36c2fc9af6 AKGG/Invoicing/CollectiveInvoiceCreation.cs - Rundung für LG 8+
SupportOID=165527
2026-07-06 15:14:38 +02:00
0b281b5290 MailUtils wird noch von DakotaSender verwendet 2026-07-06 14:48:54 +02:00
6b74186cac MH: TranskulturellesBetreuungsbuero Betreuungszeiträume in Stundenübersicht
SupportOID=167276
2026-07-06 13:56:44 +02:00
91d67f19de MH: HwHilfswerkInklusionUndTeilhabe Restbudgetstunden auf QB Zwischenstand
SupportOID=167176
2026-07-06 12:10:57 +02:00
a8ae6d5916 MH: BEWODIREKTGmbH Addressdaten geändert
SupportOID=167250
2026-07-06 12:10:03 +02:00
1043 changed files with 51923 additions and 46669 deletions

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -18,8 +17,6 @@
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -48,13 +45,6 @@
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.2.2.10\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.2.2.10\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
</ItemGroup>
@@ -66,7 +56,6 @@
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Data\Data.csproj">
@@ -88,12 +77,8 @@
</ItemGroup>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.targets'))" />
</Target>
<Import Project="..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.2.10\build\net46\MSTest.TestAdapter.targets')" />
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" />
<PackageReference Include="MSTest.TestFramework" />
</ItemGroup>
</Project>

View File

@@ -1,7 +1,6 @@
using AICore.Facade.LLM;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BS.Shared.Tests.Objects;
using BS.Shared.Core;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace AiCoreUnitTest
@@ -34,9 +33,19 @@ namespace AiCoreUnitTest
var logger = ServiceLogger.GetRequestLogger(out string id);
// Build Payload
var payload = AiTestObjects.GetExampleSendRequest(UserRightHelper.GetTenant(), id);
var payload = new
{
model = "gemma3:12b",
messages = new[] {
new {
role = "user",
message = "why is the sky blue?"
}
},
requestid = id
};
var response = Client.SendAiMessageRequest(payload, out LLMResponse llm_response, logger);
var response = Client.SendAiMessageRequest(payload, out string message, out string model, out int? duration, logger);
Assert.IsTrue(response?.Success);
}

View File

@@ -1,7 +1,6 @@
using AICore.Facade.LLM;
using BeWo.Data.Security;
using BeWo.Service.Core;
using BS.Shared.Tests.Objects;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Logging;
using System;
@@ -43,9 +42,20 @@ namespace AiCoreUnitTest
var logger = ServiceLogger.GetRequestLogger(out string id);
// Build Payload
var payload = AiTestObjects.GetExampleSendRequest(UserRightHelper.GetTenant(), id);
var payload = new
{
model = "llama3:latest",
messages = new[] {
new {
role = "user",
message = "Say 'Hi'!"
}
},
customerid = UserRightHelper.GetTenant(),
requestid = id
};
var response = client.SendAiMessageRequest(payload, out LLMResponse llm_response, logger);
var response = client.SendAiMessageRequest(payload, out string message, out string model, out int? duration, logger);
Assert.IsTrue(response?.Success);
}

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MSTest.TestAdapter" version="2.2.10" targetFramework="net472" />
<package id="MSTest.TestFramework" version="2.2.10" targetFramework="net472" />
</packages>

View File

@@ -333,7 +333,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SPZLeverkusen", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Weitblick-ambulantBeWo", "ReportImp\Weitblick-ambulantBeWo\Weitblick-ambulantBeWo.csproj", "{2E99BA67-61A2-47BD-8412-6ECBC126D83E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KomMitBewo", "ReportImp\KomMitBewo\KomMitBewo.csproj", "{1A585E99-09AB-4924-8FB9-9C9D1FE48044}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KommMitBewo", "ReportImp\KomMitBewo\KommMitBewo.csproj", "{1A585E99-09AB-4924-8FB9-9C9D1FE48044}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skmRheydt", "ReportImp\skmRheydt\skmRheydt.csproj", "{B9C896DD-8C7D-4F37-B826-203D2E83D650}"
EndProject
@@ -377,8 +377,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaritasAhlen", "ReportImp\C
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TabulaRasa", "ReportImp\TabulaRasa\TabulaRasa.csproj", "{8E7F125B-32E9-4D59-A47A-C0994A980CD3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SPZLeverkusen2", "SPZLeverkusen2\SPZLeverkusen2.csproj", "{74040CE0-1D24-4F47-91B9-7F166EADBC61}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatController", "..\Chat\ChatController\ChatController.csproj", "{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PraxisPusteblume", "ReportImp\PraxisPusteblume\PraxisPusteblume.csproj", "{A6E699B3-8399-4B8D-90F1-119B021F3D44}"
@@ -441,8 +439,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkmLeverkusen", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmpathieFachassistenz", "ReportImp\EmpathieFachassistenz\EmpathieFachassistenz.csproj", "{F618F17B-5905-4D09-A976-733011945A9B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebenUndWohnenChristianWilke", "ReportImp\LebenUndWohnenChristianWilke\LebenUndWohnenChristianWilke.csproj", "{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaritasverbandDuerenJuelichEV", "ReportImp\CaritasverbandDuerenJuelichEV\CaritasverbandDuerenJuelichEV.csproj", "{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KoelnerBeWoSelbstbestimmtLeben", "ReportImp\KoelnerBeWoSelbstbestimmtLeben\KoelnerBeWoSelbstbestimmtLeben.csproj", "{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}"
@@ -507,8 +503,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutismusLeben", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LeWoAachen", "ReportImp\LeWoAachen\LeWoAachen.csproj", "{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToprakGmbH", "ReportImp\ToprakGmbH\ToprakGmbH.csproj", "{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AlzeyTeilhabe", "ReportImp\AlzeyTeilhabe\AlzeyTeilhabe.csproj", "{D173B437-EAD2-4535-B59D-76737600E058}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChristopherusHausFamilienhilfe", "ReportImp\ChristopherusHausFamilienhilfe\ChristopherusHausFamilienhilfe.csproj", "{B104F622-7BE6-4DFE-9E20-32915507860D}"
@@ -3013,22 +3007,6 @@ Global
{8E7F125B-32E9-4D59-A47A-C0994A980CD3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8E7F125B-32E9-4D59-A47A-C0994A980CD3}.Release|x86.ActiveCfg = Release|Any CPU
{8E7F125B-32E9-4D59-A47A-C0994A980CD3}.Release|x86.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|.NET.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|.NET.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|x86.ActiveCfg = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Debug|x86.Build.0 = Debug|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|.NET.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|.NET.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Any CPU.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|x86.ActiveCfg = Release|Any CPU
{74040CE0-1D24-4F47-91B9-7F166EADBC61}.Release|x86.Build.0 = Release|Any CPU
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Debug|.NET.ActiveCfg = Debug|Any CPU
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Debug|.NET.Build.0 = Debug|Any CPU
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -3525,22 +3503,6 @@ Global
{F618F17B-5905-4D09-A976-733011945A9B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F618F17B-5905-4D09-A976-733011945A9B}.Release|x86.ActiveCfg = Release|Any CPU
{F618F17B-5905-4D09-A976-733011945A9B}.Release|x86.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|.NET.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|.NET.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|x86.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|x86.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|.NET.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|.NET.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Any CPU.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|x86.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|x86.Build.0 = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|.NET.ActiveCfg = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|.NET.Build.0 = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -4053,22 +4015,6 @@ Global
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}.Release|x86.ActiveCfg = Release|Any CPU
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A}.Release|x86.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|.NET.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|.NET.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|x86.ActiveCfg = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Debug|x86.Build.0 = Debug|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|.NET.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|.NET.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Any CPU.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|x86.ActiveCfg = Release|Any CPU
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B}.Release|x86.Build.0 = Release|Any CPU
{D173B437-EAD2-4535-B59D-76737600E058}.Debug|.NET.ActiveCfg = Debug|Any CPU
{D173B437-EAD2-4535-B59D-76737600E058}.Debug|.NET.Build.0 = Debug|Any CPU
{D173B437-EAD2-4535-B59D-76737600E058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -5021,7 +4967,6 @@ Global
{888961E7-A394-4F3B-A667-09EA2F80ED4B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{96A3E6E3-3F9B-4CAB-B306-3F23DE6A40F9} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{8E7F125B-32E9-4D59-A47A-C0994A980CD3} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{74040CE0-1D24-4F47-91B9-7F166EADBC61} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298} = {E7543C39-A44C-40C9-82C9-E7FAA2D9A852}
{A6E699B3-8399-4B8D-90F1-119B021F3D44} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{E590CC37-E2A4-488F-BBA2-C70042BD488D} = {D8A691C5-146D-4613-86CC-438F02FE9106}
@@ -5053,7 +4998,6 @@ Global
{56602D65-47F7-4175-A065-A044FE7F6C81} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{E30D35E8-9B15-4345-B8B7-422415A659DA} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{F618F17B-5905-4D09-A976-733011945A9B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{976CC5EF-26C9-4415-84C6-33A450222F04} = {D8A691C5-146D-4613-86CC-438F02FE9106}
@@ -5086,7 +5030,6 @@ Global
{CEA6A3D2-DDD4-4699-89AE-FEF7908C46D5} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{54419AAB-93DB-482F-B304-035D001081DD} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{C9CDE69B-D3A1-4BF7-B988-1A4ACF2D664A} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{12BC3B31-7499-44EC-B7B9-E3CEB2D9997B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{D173B437-EAD2-4535-B59D-76737600E058} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{B104F622-7BE6-4DFE-9E20-32915507860D} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{39876291-220B-412E-8ADE-B7A24621656D} = {D8A691C5-146D-4613-86CC-438F02FE9106}

View File

@@ -19,6 +19,7 @@ using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BeWo.ViewModel.View.AI;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Translation;

View File

@@ -16,7 +16,7 @@
<EnableSecurityDebugging>true</EnableSecurityDebugging>
<TargetZone>Internet</TargetZone>
<GenerateManifests>true</GenerateManifests>
<SignManifests>true</SignManifests>
<SignManifests>false</SignManifests>
<ManifestKeyFile>
</ManifestKeyFile>
<ManifestCertificateThumbprint>8E3A8E81F1C6F67A1C6D239593544EA33D8AC6A7</ManifestCertificateThumbprint>
@@ -43,12 +43,12 @@
<TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName>
<PublisherName>ownSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.297</MinimumRequiredVersion>
<MinimumRequiredVersion>2.0.1.299</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>298</ApplicationRevision>
<ApplicationRevision>300</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
@@ -112,11 +112,13 @@
<Compile Include="AI\View\AiTranskriptionView.xaml.cs">
<DependentUpon>AiTranskriptionView.xaml</DependentUpon>
</Compile>
<Compile Include="BeWoAppInfo.cs" />
<Compile Include="Converter\AddressToStringConverter.cs" />
<Compile Include="Converter\ComparisonConverter.cs" />
<Compile Include="Converter\IconToImageSourceConverter.cs" />
<Compile Include="Converter\NewlineConverter.cs" />
<Compile Include="Converter\StringEmptyBoolConverter.cs" />
<Compile Include="Core\BeWoAppVersion.cs" />
<Compile Include="Core\BeWoUserUtils.cs" />
<Compile Include="Core\Commands\CommandFactory.cs" />
<Compile Include="Core\EventArg\TextAcceptedEventArgs.cs" />
@@ -274,38 +276,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\Designs\AI\Icon_Chat_Schw+Orange_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Chat_Schw_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Chat_Weiss+Orange_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Chat_Weiss_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Funktion_Schw+Gruen_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Funktion_Schw_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Funktion_Weiss+Gruen_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Funktion_Weiss_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Mikro_Schw+Orange.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -326,34 +296,18 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Schw+Orange_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Schw.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Schw_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Weiss+Orange.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Weiss+Orange_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Weiss.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\AI\Icon_Refresh_Weiss_2026.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Designs\GeometryCollection.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -501,9 +455,6 @@
<Reference Include="DevExpress.XtraScheduler.v23.2.Core.Desktop, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Core, Version=23.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationFramework.Aero">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
@@ -513,9 +464,6 @@
<Reference Include="PresentationFramework.Luna">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
<Reference Include="RestSharp, Version=106.15.0.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
<HintPath>..\packages\RestSharp.106.15.0\lib\net452\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Activities" />
<Reference Include="System.Core">
@@ -1363,7 +1311,6 @@
<Compile Include="Converter\CollectionContainsTag2BoolConverter.cs" />
<Compile Include="Converter\CollectionCountToBoolConverter.cs" />
<Compile Include="Converter\CollectionCountToVisibilityConverter.cs" />
<Compile Include="Converter\IsLastItemToBoolMultiConverter.cs" />
<Compile Include="Converter\DeleteForGoodRight2VisibilityConverter.cs" />
<Compile Include="Converter\EnumToDescriptionConverter.cs" />
<Compile Include="Converter\EnumTranslationConverter.cs" />
@@ -2759,6 +2706,7 @@
<Compile Include="ServiceProxy\ServiceFacade.cs" />
<Compile Include="Validation\ValidationBinding.cs" />
<Compile Include="Validation\AttributeValidator.cs" />
<Compile Include="Validation\ICustomerRelatedContext.cs" />
<Compile Include="Validation\DecimalValidator.cs" />
<Compile Include="Validation\ValidationAttribute.cs" />
<Compile Include="Validation\ValidationRules.cs" />
@@ -3172,7 +3120,6 @@
<DependentUpon>PivotGridReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -3932,4 +3879,8 @@
<Copy SourceFiles="app.DebugRemote.config" DestinationFiles="app.config" OverwriteReadOnlyFiles="true" Condition=" '$(Configuration)' == 'DebugRemote' " />
<Copy SourceFiles="app.Release.config" DestinationFiles="app.config" OverwriteReadOnlyFiles="true" Condition=" '$(Configuration)' == 'Release' " />
</Target>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="RestSharp" />
</ItemGroup>
</Project>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?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\|C:\publish\bewoplaner\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\</PublishUrlHistory>
@@ -9,7 +9,7 @@
<ErrorReportUrlHistory />
<FallbackCulture>de-DE</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ShowAllFiles</ProjectView>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>

View File

@@ -47,7 +47,6 @@
<conv:FilterDCConverter x:Key="FilterDCConverter" />
<conv:IListT2DataTableConverter x:Key="IListT2DataTableConverter" />
<conv:IndexBoolConverter x:Key="IndexBoolConverter" />
<conv:IsLastItemToBoolMultiConverter x:Key="IsLastItemToBoolMultiConverter" />
<conv:Int2DecimalConverter x:Key="Int2DecimalConverter" />
<conv:NodeType2IconPathConverter x:Key="NodeType2IconPathConverter" />
<conv:NumberSmaller0Converter x:Key="NumberSmaller0Converter" />

View File

@@ -57,7 +57,7 @@ namespace BeWo
public static LoginControl LoginControl;
public static MainControl MainControl;
public static string ShortVersion = BeWoAppInfo.BeWoAppVersion.BaseVersion.ToString();
public static string ShortVersion = "3.32.2";
public static string Version => BeWoAppInfo.BeWoAppVersion.ToString();
public static int RenderTier = 0;

View File

@@ -1,25 +1,26 @@
using BS.Shared;
using BS.Shared.Core;
using BeWo.Core;
using BS.Shared;
using DevExpress.Web.Internal.XmlProcessor;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared
namespace BeWo
{
public static class BeWoAppInfo
{
static BeWoAppInfo()
{
var baseVersion = new Version("3.32");
var baseVersion = new Version(BeWoApp.ShortVersion);
var stage = BeWoClientReleaseStage.Sandbox;
var stageVersion = new Version("5.2.3.3");
var stageVersion = new Version("5.1.6");
var feature = BeWoClientFeature.AI;
#if !DEBUG
//stage = BeWoClientReleaseStage.Release;
//feature = BeWoClientFeature.None;
stage = BeWoClientReleaseStage.Release;
feature = BeWoClientFeature.None;
#endif
BeWoAppVersion = new BeWoAppVersion(baseVersion, stage, stageVersion, feature);

View File

@@ -1,39 +0,0 @@
using System;
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Data;
namespace BeWo.Converter
{
/// <summary>
/// Erwartet: [0] = Item, [1] = ItemsControl, [2] = Items.Count (nur als Aktualisierungs-Trigger).
/// Liefert true, wenn das Item das letzte Element im ItemsControl ist.
/// </summary>
public class IsLastItemToBoolMultiConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
try
{
if (values is null || values.Length < 2)
return false;
if (!(values[1] is ItemsControl itemsControl))
return false;
var items = itemsControl.Items;
return items.Count > 0 && ReferenceEquals(items[items.Count - 1], values[0]);
}
catch (Exception)
{
return false;
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Data;
using BS.Shared.Core;
using System.Windows;
namespace BeWo.Converter

View File

@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.Core
namespace BeWo.Core
{
public class BeWoAppVersion
{

View File

@@ -265,6 +265,8 @@ namespace BeWo
private static String PUB_KEY_E8 = "04d165f25edc4bb40c029cd2b2faeee96cab3aae38a1f4d4393233c542d4cc330c34c7212090705ce8622f1c71b342d779be460dc1db47a113a0c7df8126633bd48d1df63d823332f6f42be7f5963ab41367187b6b3e8d48d9eadeedae6d3e874c";
private static String PUB_KEY_E9 = "04a05cdc459f3bace602a958495d0c153a22027ce9a68d594897db5c68e9ae3064c9d15b6017a4720ae52449ade7bf3b4783f582b6cfb60777a140657e83335878a1a635d69288ef95c78c99462abd56d0737f69083dd18988c30abed6a6e22a73";
private static String PUB_KEY_R10 = "CF57E5E6C45412EDB447FEC92758764650288C1D3E88DF059DD5B51829BDDDB55ABFFAF6CEA3BEAF00214B625A5A3C012FC55803F689FF8E1143EBC1B5E01407968F6F1FD7E7BA8139097565B7C2AF185B372628E7A3F4072B6D1AFFAB58BC95AE40FFE9CB57C4B55B7F780D1861BC17E754C6BB4991CD6E18D18085EEA66536BC74EABC504CEAFC21F338169394BAB0D36B3806CD16127ACA5275C8AD76B2C29C5D98455C6F617BC62DEE3C13528601D957E6381CDF8DB51F92919AE74A1CCC45A87255F0B0E6A307ECFDA71B669E3F488B71847158C93AFAEF5EF25B442B3C74E78FB247C1076ACD9AB70D96F712812651540AEC61F6F7F5E2F28AC8950D8D0203010001";
private static String PUB_KEY_R11 = "BA87BC5C1B0039CBCA0ACDD46710F9013CA54EA561CB26CA52FB1501B7B928F5281EED27B324183967090C08ECE03AB03B770EBDF3E53954410C4EAE41D69974DE51DBEF7BFF58BDA8B713F6DE31D5F272C9726A0B8374959C4600641499F3B1D922D9CDA892AA1C267A3FFEEF58057B089581DB710F8EFBE33109BB09BE504D5F8F91763D5A9D9E83F2E9C466B3E106664348188065A037189A9B843297B1B2BDC4F815009D2788FBE26317966C9B27674BC4DB285E69C279F0495CE02450E1C4BCA105AC7B406D00B4C2413FA758B82FC55C9BA5BB099EF1FEEBB08539FDA80AEF45C478EB652AC2CF5F3CDEE35C4D1BF70B272BAA0B4277534F796A1D87D90203010001";
@@ -273,14 +275,20 @@ namespace BeWo
private static String PUB_KEY_R13 = "00a567708dd0568164151761cdb906d4ad19908c2650379816639254dbd9cc840593ecd3ec081ba0605143487d2bc748969eb42dda9dc8273b57a19fabf0d60ed40e30ca6f9bb1d1d6a49d323e584e356f4558687117fc3ed85d82a02fb2516cb01a5db859ce3565c88ba1af1037ffe39c5dc2491734ff8c2b8b8df0bc712c930c1d05c4bac7cdaac95e7cd1c901f79c03f6fc0a5df4da7be6db764270ebf44d22da00776fd6c95f17fdda752ea5570cf6ea5cb6e073a568cfa174e275827e109fc1f5a2eb01e938b10a44ccd3c289f54935820a34b31ce988c2474e820e0a36f0474f8af1290475dacde19a5cff5e9d9895ba9a43d04aa21705010430d332b38f";
private static String PUB_KEY_R14 = "00cd68546c992fd4c4df145ee284bca5a798da8ad5d59e0eb211eaee13bd7f7344cbabf6d9e37f0f2e23cdaf7235aa9eba1daa8e00d6d0e844e0d128ee05b5a783b54b1c6e0cd6f427c78d04c976f8327a9e8b022e71bc9f12b6ac19f4ec4bb134ba50bbb89dc6f3439e006425efa46fabfa8e60e47c9fd5687d97db48a8909078d4138c8fd7c60ab9bec4cbc2f48bbf9689b65dece60bb5c183c59c20af9eabe62498495165e9ce22868a7623cd60d8190118f60bca00d292d556573d7f7278c71febbbb9bb79861970fc6c2c39a25f223ac5870dca69f409caf2716a7a5f0924934a1cd1f7084b4d2295947d80d7beb574769c79690146a715dc792e14818895";
private static String PUB_KEY_YE1 = "0407655075fe68a695ada17d2babca549c8cf31968e2572f3fcd9c0736b32966f160f2854f42729fb3012422e6f4b0186263486925903f5f74f47c1a9c8320e2230847eb9dbb7fbfe65210f2cb1066da33a11c7036cdee9f71b5e226d80bdffabc";
private static String PUB_KEY_YE2 = "04719ab43391d6c410bdcca97b7774942db58738edac647434c7b9de533ea336cf9b920f97269345ab1e5597be796fa812ea881df8925bb121b98cc808aadff603e9ef34fef576e7d2bc5d021d8c55e5a1839ad26214ef57fb1d0d3d3ef603970f";
private static String PUB_KEY_YE3 = "04bb1da0af0ccf58dda60f5be887eae5132b6285518c74bf27b9c4ad4a353599520968896d9bb9dab3bc241a6ab9894cdba3895f99ad6acea68c7e378913b2209e73ac9fc3b546984acb0b9652ab65f8776bc973583c5485377dbec2bb327f6c33";
private static String PUB_KEY_YR1 = "00a158bc5f6c42620317bc9c4d3caa7fa05d7750c8263c0041d3b5422cd0eda179adf65b8464d252055d745724f53f3e8b0fc66ad5dda0738dd6365d40751ae3e2c1276b36ce8b3d273e9986069da1ba2e3da19b43218eb074a799022e416cd536d021fa45204130b490f5c5eb1fc77176fe0f009e39b2c18c2faf14484dc1b230b66ba70037d2f90a05d52108b9b5f3624cfa05659dd2d0e957a8b9a6b5d57de6e75601be5be9efc5e3d0e20ac1f4634d0083bd815486f5873ca798a7be5f49844414edb1bdc1c26a55f62a5e06330ba11fc3f5c1f11d0096a22e654e65f0634d79279ac67a5cf59d98c9bb1736922a1a5f6f572419e13243f9df5ad2746e6e33";
private static String PUB_KEY_YR2 = "00d9d0bc70069a6a87ce25baa31ead5fde78bfdf5d0ee62d042fd4b9e958a65bcaf1a9c7ac21e807e7b2502717a7b04e470703e8123a806f9b70df9b4e80b86885f8a46eb787c0728c2a9c0410096f7cf903cffde3afff0ba0ec8ca4e0d90ec5fd88ea0d9fe794fa9c9a0e4cb15cba4791abcd091901186a7f9d3c5afd38652040ada118a80d916f3ba5aa69b0e02e50972ba18851b79b948ace2a6998ab7a2b1ebb7da0cc324d04088ab6cbdde875f8bf6e5ba6444d712fc1fc6b5cf6455b5290fed8f2cfc5d7a2dd38a6e79938b5f0045f00f6ab288f4f1ad336aea537e00caf983673574daa4393c23c5e57a2f99693f5ac6898bcb9d168f94eab26513d6fb9";
private static String PUB_KEY_YR3 = "00c94b4f90c9fad99bc5349d7ba024a83ede7ada1e8c4a37d34eb06bc74fd36d71d813856ba3ea08b30ccaa7f554229723c9faa28aeeb8e004cfd72b7a20c7ad443db81063c2e254d9f89ec991d5415475a95bfdc2ff998b57a3796edeaa29ee4e8e97ea4e2f3be504836197e32aee5f55c5408cef5ed4a58ba634ac463518c02c68391f5e82f77510956f0a811a56e7c7d8e417b770baafdb86db291162b1bed2fc73c0f7aee95baac03bf0c514a6e2df935f1ca106d23206ab1b6c6d86cafbfd2a7b6d78ee9f6850efd235cb9a4fda682c558a99c63dd144748572b2faa891e8abfbfdee6008afc11a48cb5ccd407d7d42443c0e8883cfb0af9124e223d348a5";
private bool PinPublicKey(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors)
{
try
@@ -301,14 +309,18 @@ namespace BeWo
pk.Contains(PUB_KEY_E6.ToLower()) ||
pk.Contains(PUB_KEY_E7.ToLower()) ||
pk.Contains(PUB_KEY_E8.ToLower()) ||
pk.Contains(PUB_KEY_E9.ToLower()) ||
pk.Contains(PUB_KEY_R10.ToLower()) ||
pk.Contains(PUB_KEY_R11.ToLower()) ||
pk.Contains(PUB_KEY_R12.ToLower()) ||
pk.Contains(PUB_KEY_R13.ToLower()) ||
pk.Contains(PUB_KEY_R14.ToLower()) ||
pk.Contains(PUB_KEY_YE1.ToLower()) ||
pk.Contains(PUB_KEY_YE2.ToLower()) ||
pk.Contains(PUB_KEY_YE3.ToLower()) ||
pk.Contains(PUB_KEY_YR1.ToLower()) ||
pk.Contains(PUB_KEY_YR2.ToLower()))
pk.Contains(PUB_KEY_YR2.ToLower()) ||
pk.Contains(PUB_KEY_YR3.ToLower()))
{
chainContainsPk = true;
}

View File

@@ -1,11 +1,14 @@
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Media;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Translation;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.Scheduler.Resources;
using BeWo.Scheduler.View;
@@ -151,7 +154,25 @@ namespace BeWo.Scheduler.ViewModel
protected override void DeleteAppointments(IEnumerable<AbsenceTimeDC> dcList)
{
ServiceFacade.DoCustomerServiceAsync(s => s.DeactivateAbsenceTimes(dcList.ToDictionary(dc => dc.AbsenceTimeOid != null ? dc.AbsenceTimeOid.Value : 0,
var lDcList = dcList.ToList();
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
{
var pastAbsenceTimes = lDcList.Where(dc => dc.IsInThePast).ToList();
if (pastAbsenceTimes.Count > 0)
{
lDcList = lDcList.Except(pastAbsenceTimes).ToList();
MessageBox.Show(Translator.Translate("Sie besitzen nicht das Benutzerrecht, bereits vergangene Mitarbeiter-Abwesenheiten zu löschen."),
"BeWo Planer", MessageBoxButton.OK, MessageBoxImage.Warning);
}
}
if (lDcList.Count == 0)
{
return;
}
ServiceFacade.DoCustomerServiceAsync(s => s.DeactivateAbsenceTimes(lDcList.ToDictionary(dc => dc.AbsenceTimeOid != null ? dc.AbsenceTimeOid.Value : 0,
dc => dc.AbsenceTimeVersion != null ? dc.AbsenceTimeVersion.Value : 0)));
}

View File

@@ -198,11 +198,18 @@ namespace BeWo.Scheduler.ViewModel
var message = string.Empty;
ServiceFacade.DoResourceServiceSync( s => message = s.ValidateSchedulerAppointment(start, end, employeeOids, customerOids, resourceOids, originatorOid, schedulerAppointmentOid, recurrenceInfoId, recurrenceIndex, shouldSkipResourceAvailablityCheck));
if(!string.IsNullOrWhiteSpace(message))
{
if(message.Contains("Die Ressource") && message.Contains("ist im ausgewählten Zeitraum") && message.Contains("bereits gebucht:") && BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcenDoppeltBuchen) is false)
{
message = message.Remove(message.Length - 31) + "Speichern nicht möglich.";
MessageBox.Show(message, "Überschneidung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
var messageBoxResult = MessageBox.Show(message, "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if(messageBoxResult.Equals(MessageBoxResult.No))
@@ -212,7 +219,7 @@ namespace BeWo.Scheduler.ViewModel
}
}
if (item.Type.Equals(AppointmentType.ChangedOccurrence) && _GeoeffneterTermin != null)
if(item.Type.Equals(AppointmentType.ChangedOccurrence) && _GeoeffneterTermin != null)
{
areEqual = _GeoeffneterTermin.Equals(item);
}
@@ -223,7 +230,7 @@ namespace BeWo.Scheduler.ViewModel
}
}
if (dcList.Count <= 0)
if(dcList.Count <= 0)
{
return;
}
@@ -305,6 +312,14 @@ namespace BeWo.Scheduler.ViewModel
if(!string.IsNullOrWhiteSpace(message))
{
if(message.Contains("Die Ressource") && message.Contains("ist im ausgewählten Zeitraum") && message.Contains("bereits gebucht:") && BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderRessourcenDoppeltBuchen) is false)
{
message = message.Remove(message.Length - 31) + "Speichern nicht möglich.";
MessageBox.Show(message, "Überschneidung", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return;
}
var messageBoxResult = MessageBox.Show(message, "Überschneidung", MessageBoxButton.YesNo, MessageBoxImage.Exclamation);
if(messageBoxResult.Equals(MessageBoxResult.No))
@@ -314,11 +329,10 @@ namespace BeWo.Scheduler.ViewModel
}
}
dcList.Add(vm.CommitToDataContract());
}
if (dcList.Count <= 0)
if(dcList.Count <= 0)
{
return;
}

View File

@@ -19,6 +19,7 @@ using BeWo.ViewModel;
using BeWo.ServiceProxy;
using BS.Shared.Extensions;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Translation;
using DevExpress.Xpf.Editors;

View File

@@ -29,6 +29,7 @@ using BeWo.Core;
using BeWo.Core.Service;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Editors;

View File

@@ -2,6 +2,7 @@
using BeWo.Validation;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.SchulbegleitenderDienst.ViewModel

View File

@@ -104,6 +104,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiRoutineType))]
BS.Shared.DataContracts.Feature.AI.AiConversationDC CreateAiConversationWithMessage(BS.Shared.DataContracts.Feature.AI.AiConversationDC conversation, BS.Shared.DataContracts.Feature.AI.AiViewContextDC view_context, string message);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/CloneAiConversation", ReplyAction="http://tempuri.org/IAiEnhancedService/CloneAiConversationResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/CloneAiConversationBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
BS.Shared.DataContracts.Feature.AI.AiConversationDC CloneAiConversation(long conversation_oid, System.Nullable<long> message_oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/UpdateAiConversationDisplayname", ReplyAction="http://tempuri.org/IAiEnhancedService/UpdateAiConversationDisplaynameResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/UpdateAiConversationDisplaynameBeWoFaultFau" +
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
@@ -188,7 +192,43 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ValueListEntryType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiRoutineType))]
System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationMessageDC> ExecuteAiConversationWithRoutine(long conversation, BS.Shared.DataContracts.Feature.AI.AiViewContextDC view_context, long routine, int step);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/ExecuteAiConversationWithRoutineComplete", ReplyAction="http://tempuri.org/IAiEnhancedService/ExecuteAiConversationWithRoutineCompleteResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/ExecuteAiConversationWithRoutineCompleteBeW" +
"oFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BeWoDataContract))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiConfigDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiModelDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiModelDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiConversationDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationMessageDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiConversationMessageDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiPromptbausteinFolderDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiPromptbausteinFolderDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiPromptbausteinPromptDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiPromptbausteinPromptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiPromptbausteinRoutineDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiPromptbausteinRoutineDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiPromptbausteinRoutineStepDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiPromptbausteinRoutineStepDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Feature.AI.AiUserSettingDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Compact.CompactEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.TableID, System.Collections.Generic.List<long>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<long>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, BS.Shared.ValueListEntryType>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Core.BeWoFault))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Core.BeWoFaultType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiDataContextType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiModelSource))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiActionType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.TableID))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiConversationMessageRole))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ActivationTypeId))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ValueListEntryType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.AiRoutineType))]
System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationMessageDC> ExecuteAiConversationWithRoutineComplete(BS.Shared.AiActionType actionType, BS.Shared.DataContracts.Feature.AI.AiViewContextDC view_context, long routine);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/CheckContextSize", ReplyAction="http://tempuri.org/IAiEnhancedService/CheckContextSizeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BS.Shared.Core.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/CheckContextSizeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BS.Shared.Core")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BeWoDataContract))]
@@ -340,6 +380,11 @@ namespace BeWo.ServiceProxy
return base.Channel.CreateAiConversationWithMessage(conversation, view_context, message);
}
public BS.Shared.DataContracts.Feature.AI.AiConversationDC CloneAiConversation(long conversation_oid, System.Nullable<long> message_oid)
{
return base.Channel.CloneAiConversation(conversation_oid, message_oid);
}
public long UpdateAiConversationDisplayname(long oid, long version, string displayname)
{
return base.Channel.UpdateAiConversationDisplayname(oid, version, displayname);
@@ -364,7 +409,12 @@ namespace BeWo.ServiceProxy
{
return base.Channel.ExecuteAiConversationWithRoutine(conversation, view_context, routine, step);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationMessageDC> ExecuteAiConversationWithRoutineComplete(BS.Shared.AiActionType actionType, BS.Shared.DataContracts.Feature.AI.AiViewContextDC view_context, long routine)
{
return base.Channel.ExecuteAiConversationWithRoutineComplete(actionType, view_context, routine);
}
public bool CheckContextSize(BS.Shared.AiActionType actionType, BS.Shared.DataContracts.Feature.AI.AiViewContextDC view_context)
{
return base.Channel.CheckContextSize(actionType, view_context);

View File

@@ -51,7 +51,7 @@ namespace BeWo.Services
beWoWindow.Width = double.NaN;
beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
beWoWindow.Owner = Application.Current.MainWindow;
beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
beWoWindow.Title = title + " Fenster";
beWoWindow.rootGroupBox.Header = title;
beWoWindow.GroupBoxContent = control;

View File

@@ -237,8 +237,7 @@ namespace BeWo.Services
if (windowViewModel is DialogViewModel dialogViewModel)
{
dialogViewModel.Closing += (s, e) => window.Close();
window.Closed += (s, e) => dialogViewModel.CloseFinalCommand.Execute(null);
dialogViewModel.RequestCloseFinal += (s, e) => window.Close();
}
if (options.ShowAsDialog)

View File

@@ -52,129 +52,4 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="PopUpWindowStyle2" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border
Grid.RowSpan="2"
Background="#FF202020"
CornerRadius="3,1,0,3" />
<Border
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Background="#FF202020"
CornerRadius="0,1,0,3" />
<Path
Grid.Column="1"
Data="M 0,0 L 10,10 H 0 Z"
Fill="#FF202020"
StrokeThickness="0" />
<Border
x:Name="Header"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,0,0,0"
Padding="10,0,3,0"
VerticalAlignment="Bottom"
Background="{x:Null}">
<ContentPresenter
Margin="5,0,0,3"
VerticalAlignment="Stretch"
Content="{TemplateBinding Header}"
ContentSource="Header"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
RecognizesAccessKey="True"
RenderTransformOrigin="0,0.5"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
TextElement.FontSize="16">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border
Grid.Row="2"
Grid.RowSpan="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Padding="5,5,5,5">
<ContentPresenter
Margin="0,0,0,0"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<Path
x:Name="isDirtyShape"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="0"
Width="18.21"
Height="17.336"
Margin="0,0,41.007,3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z"
RenderTransformOrigin="0.5,0.5"
StrokeThickness="0">
<Path.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FFFB6F0E" />
<GradientStop Offset="1" Color="#FF8C400A" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<Button
x:Name="button_close"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="0"
Grid.ColumnSpan="1"
Width="20"
Height="20"
Margin="3,3,3,3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Command="{Binding CloseCommand}"
Style="{DynamicResource CloseButtonStyle}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIChatSchwarzOrange2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg17"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g15">
<Canvas Name="Ebene_1">
<Canvas Name="g10">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path12"
Fill="#FF5F00">
<Path.Data>
<PathGeometry Figures="M149.9 100c0-11.8-9.5-21-21.6-21h-13.1s-16.3 0-16.3 0c-13 0-26 0-39 0-11.8 0-21.5 9.3-21.6 20.7 0 22.5-.2 46.4 0 70.3 0 8.6 4.5 15.1 12.9 19 3.8 1.8 7.7 1.7 11.5 1.7h.8s.1 0 .2 0h0c0 3.8 0 7.5 0 11.2 0 3.5 0 7.1 0 10.6 0 3.7 1.5 6.2 4.4 7.5 1.1.5 2.2.7 3.3.7 1.9 0 3.7-.8 5.3-2.2l7.3-6.7c3.6-3.3 7.3-6.7 10.9-10 3.7-3.4 7.4-6.9 11.1-10.4.8-.7 1.3-.8 1.9-.8 1.7.1 3.5.2 5.3.2 18.7 0-4.9 0 13.8 0 2.1 0 4.6 0 6.9-.7 10-2.7 16-10.5 16-20.7.1-26.7.1-48.8 0-69.3ZM78.7 183.1c0-4.4-3.4-7.6-7.8-7.6h-4.9c-2 0-4.1 0-6.1 0-3.6 0-6-2.3-6.3-5.9 0-.9 0-1.9 0-2.8v-.6s0-64.7 0-64.7c0-4.1 1.3-6.2 4.4-7.2.7-.2 1.6-.3 2.4-.3 36.6 0 31 0 67.6 0 4.5 0 6.9 2.4 6.9 6.9 0 22.6 0 45.1 0 67.7 0 4.4-2.5 6.8-6.9 6.8h-8.1c-18.8 0 4.5 0-14.3 0h0c-3 0-5.4.9-7.6 3-5.1 4.8-10.3 9.6-15.4 14.3l-2.7 2.5c-.3.3-.7.6-1 .9v-7.9c0-1.7 0-3.4 0-5.1Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIChatSchwarz2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg13"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g11">
<Canvas Name="Ebene_1">
<Canvas Name="g6">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path2"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path4"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M149.9 100c0-11.8-9.5-21-21.6-21h-13.1s-16.3 0-16.3 0c-13 0-26 0-39 0-11.8 0-21.5 9.3-21.6 20.7 0 22.5-.2 46.4 0 70.3 0 8.6 4.5 15.1 12.9 19 3.8 1.8 7.7 1.7 11.5 1.7h.8s.1 0 .2 0h0c0 3.8 0 7.5 0 11.2 0 3.5 0 7.1 0 10.6 0 3.7 1.5 6.2 4.4 7.5 1.1.5 2.2.7 3.3.7 1.9 0 3.7-.8 5.3-2.2l7.3-6.7c3.6-3.3 7.3-6.7 10.9-10 3.7-3.4 7.4-6.9 11.1-10.4.8-.7 1.3-.8 1.9-.8 1.7.1 3.5.2 5.3.2 18.7 0-4.9 0 13.8 0 2.1 0 4.6 0 6.9-.7 10-2.7 16-10.5 16-20.7.1-26.7.1-48.8 0-69.3ZM78.7 183.1c0-4.4-3.4-7.6-7.8-7.6h-4.9c-2 0-4.1 0-6.1 0-3.6 0-6-2.3-6.3-5.9 0-.9 0-1.9 0-2.8v-.6s0-64.7 0-64.7c0-4.1 1.3-6.2 4.4-7.2.7-.2 1.6-.3 2.4-.3 36.6 0 31 0 67.6 0 4.5 0 6.9 2.4 6.9 6.9 0 22.6 0 45.1 0 67.7 0 4.4-2.5 6.8-6.9 6.8h-8.1c-18.8 0 4.5 0-14.3 0h0c-3 0-5.4.9-7.6 3-5.1 4.8-10.3 9.6-15.4 14.3l-2.7 2.5c-.3.3-.7.6-1 .9v-7.9c0-1.7 0-3.4 0-5.1Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIChatWeissOrange2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg17"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g15">
<Canvas Name="Ebene_1">
<Canvas Name="g10">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path12"
Fill="#FF5F00">
<Path.Data>
<PathGeometry Figures="M149.9 100c0-11.8-9.5-21-21.6-21h-13.1s-16.3 0-16.3 0c-13 0-26 0-39 0-11.8 0-21.5 9.3-21.6 20.7 0 22.5-.2 46.4 0 70.3 0 8.6 4.5 15.1 12.9 19 3.8 1.8 7.7 1.7 11.5 1.7h.8s.1 0 .2 0h0c0 3.8 0 7.5 0 11.2 0 3.5 0 7.1 0 10.6 0 3.7 1.5 6.2 4.4 7.5 1.1.5 2.2.7 3.3.7 1.9 0 3.7-.8 5.3-2.2l7.3-6.7c3.6-3.3 7.3-6.7 10.9-10 3.7-3.4 7.4-6.9 11.1-10.4.8-.7 1.3-.8 1.9-.8 1.7.1 3.5.2 5.3.2 18.7 0-4.9 0 13.8 0 2.1 0 4.6 0 6.9-.7 10-2.7 16-10.5 16-20.7.1-26.7.1-48.8 0-69.3ZM78.7 183.1c0-4.4-3.4-7.6-7.8-7.6h-4.9c-2 0-4.1 0-6.1 0-3.6 0-6-2.3-6.3-5.9 0-.9 0-1.9 0-2.8v-.6s0-64.7 0-64.7c0-4.1 1.3-6.2 4.4-7.2.7-.2 1.6-.3 2.4-.3 36.6 0 31 0 67.6 0 4.5 0 6.9 2.4 6.9 6.9 0 22.6 0 45.1 0 67.7 0 4.4-2.5 6.8-6.9 6.8h-8.1c-18.8 0 4.5 0-14.3 0h0c-3 0-5.4.9-7.6 3-5.1 4.8-10.3 9.6-15.4 14.3l-2.7 2.5c-.3.3-.7.6-1 .9v-7.9c0-1.7 0-3.4 0-5.1Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIChatWeiss2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg17"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g15">
<Canvas Name="Ebene_1">
<Canvas Name="g10">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path12"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M149.9 100c0-11.8-9.5-21-21.6-21h-13.1s-16.3 0-16.3 0c-13 0-26 0-39 0-11.8 0-21.5 9.3-21.6 20.7 0 22.5-.2 46.4 0 70.3 0 8.6 4.5 15.1 12.9 19 3.8 1.8 7.7 1.7 11.5 1.7h.8s.1 0 .2 0h0c0 3.8 0 7.5 0 11.2 0 3.5 0 7.1 0 10.6 0 3.7 1.5 6.2 4.4 7.5 1.1.5 2.2.7 3.3.7 1.9 0 3.7-.8 5.3-2.2l7.3-6.7c3.6-3.3 7.3-6.7 10.9-10 3.7-3.4 7.4-6.9 11.1-10.4.8-.7 1.3-.8 1.9-.8 1.7.1 3.5.2 5.3.2 18.7 0-4.9 0 13.8 0 2.1 0 4.6 0 6.9-.7 10-2.7 16-10.5 16-20.7.1-26.7.1-48.8 0-69.3ZM78.7 183.1c0-4.4-3.4-7.6-7.8-7.6h-4.9c-2 0-4.1 0-6.1 0-3.6 0-6-2.3-6.3-5.9 0-.9 0-1.9 0-2.8v-.6s0-64.7 0-64.7c0-4.1 1.3-6.2 4.4-7.2.7-.2 1.6-.3 2.4-.3 36.6 0 31 0 67.6 0 4.5 0 6.9 2.4 6.9 6.9 0 22.6 0 45.1 0 67.7 0 4.4-2.5 6.8-6.9 6.8h-8.1c-18.8 0 4.5 0-14.3 0h0c-3 0-5.4.9-7.6 3-5.1 4.8-10.3 9.6-15.4 14.3l-2.7 2.5c-.3.3-.7.6-1 .9v-7.9c0-1.7 0-3.4 0-5.1Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIFunktionSchwarzGruen2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg17"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g15">
<Canvas Name="Ebene_1">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#65B231">
<Path.Data>
<PathGeometry Figures="M94.1 79c-30.9 0-56 25-56 56s25 56 56 56 56-25 56-56-25-56-56-56ZM125 121.5l-37.3 37.3c-.4.4-.9.8-1.4 1.1-.6.6-1.5.7-2.2.5-.4 0-.7-.2-.9-.4l-7.1-7.1c0 0-.2-.2-.2-.3l-13.6-13.6c-.9-.9-.8-2.4 0-3.3l7.1-7.1c.9-.9 2.4-1 3.3 0l12.1 12.1 29.6-29.6c1.6-1.6 3.6-2.1 4.5-1.2l7.1 7.1c.9.9.4 3-1.2 4.5Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Canvas Name="g12">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path10"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIFunktionSchwarz2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg13"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g11">
<Canvas Name="Ebene_1">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path2"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M94.1 79c-30.9 0-56 25-56 56s25 56 56 56 56-25 56-56-25-56-56-56ZM125 121.5l-37.3 37.3c-.4.4-.9.8-1.4 1.1-.6.6-1.5.7-2.2.5-.4 0-.7-.2-.9-.4l-7.1-7.1c0 0-.2-.2-.2-.3l-13.6-13.6c-.9-.9-.8-2.4 0-3.3l7.1-7.1c.9-.9 2.4-1 3.3 0l12.1 12.1 29.6-29.6c1.6-1.6 3.6-2.1 4.5-1.2l7.1 7.1c.9.9.4 3-1.2 4.5Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Canvas Name="g8">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path4"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIFunktionWeissGruen2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg17"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g15">
<Canvas Name="Ebene_1">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#65B231">
<Path.Data>
<PathGeometry Figures="M94.1 79c-30.9 0-56 25-56 56s25 56 56 56 56-25 56-56-25-56-56-56ZM125 121.5l-37.3 37.3c-.4.4-.9.8-1.4 1.1-.6.6-1.5.7-2.2.5-.4 0-.7-.2-.9-.4l-7.1-7.1c0 0-.2-.2-.2-.3l-13.6-13.6c-.9-.9-.8-2.4 0-3.3l7.1-7.1c.9-.9 2.4-1 3.3 0l12.1 12.1 29.6-29.6c1.6-1.6 3.6-2.1 4.5-1.2l7.1 7.1c.9.9.4 3-1.2 4.5Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Canvas Name="g12">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path10"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,49 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIFunktionWeiss2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg17"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g15">
<Canvas Name="Ebene_1">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M94.1 79c-30.9 0-56 25-56 56s25 56 56 56 56-25 56-56-25-56-56-56ZM125 121.5l-37.3 37.3c-.4.4-.9.8-1.4 1.1-.6.6-1.5.7-2.2.5-.4 0-.7-.2-.9-.4l-7.1-7.1c0 0-.2-.2-.2-.3l-13.6-13.6c-.9-.9-.8-2.4 0-3.3l7.1-7.1c.9-.9 2.4-1 3.3 0l12.1 12.1 29.6-29.6c1.6-1.6 3.6-2.1 4.5-1.2l7.1 7.1c.9.9.4 3-1.2 4.5Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Canvas Name="g12">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path10"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,61 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIRefreshSchwarzOrange2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg22"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g20">
<Canvas Name="Ebene_1">
<Canvas Name="Ebene_12">
<Canvas Name="g10">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#FF5F00">
<Path.Data>
<PathGeometry Figures="M121.6 161.6c-3.1-1.6-6.8-1-9.2 1.5-8.4 8.4-19.9 12.8-31.6 11.9-10.7-.8-20.4-5.8-27.4-13.9-3.9-4.6-6.7-9.9-8.3-15.6h9.5c.5 0 .9-.1 1.3-.4.8-.5 1.2-1.6.6-2.5l-17-25.9-.6-.9c-.7-1-2.2-1.2-3.2-.6-.2 0-.4.3-.6.6l-.6.9-16.9 25.9c-.8 1.2.1 2.7 1.7 2.8h9.7c4.7 24.3 25.3 43.2 50.6 45.2 1.4.1 2.9.2 4.3.2 14.9 0 29.2-5.9 39.8-16.7 1.8-1.8 2.6-4.2 2.2-6.7s-1.9-4.6-4.2-5.8h-.1Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FF5F00">
<Path.Data>
<PathGeometry Figures="M149.2 124.1c-.4-.2-.8-.4-1.3-.4h-9.5c-4.9-24.1-25.4-42.7-50.5-44.6-16.4-1.3-32.4 4.8-44.1 16.5-1.8 1.8-2.6 4.2-2.2 6.7.4 2.5 1.9 4.6 4.2 5.8 3.1 1.6 6.8 1 9.2-1.5 8.3-8.4 19.9-12.8 31.6-11.9 17.2 1.3 31 13.3 35.5 28.9h-9.7c-1.5 0-2.5 1.6-1.7 2.8l16.9 25.9.6.9c.2.2.3.4.6.6 1 .7 2.5.5 3.2-.6l.6-.9 17-25.9c.6-.9.2-1.9-.6-2.5l.2.2Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Canvas Name="g16">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path12"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path14"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3h-.2ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,61 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIRefreshSchwarz2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg18"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g16">
<Canvas Name="Ebene_1">
<Canvas Name="Ebene_12">
<Canvas Name="g6">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path2"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M121.6 161.6c-3.1-1.6-6.8-1-9.2 1.5-8.4 8.4-19.9 12.8-31.6 11.9-10.7-.8-20.4-5.8-27.4-13.9-3.9-4.6-6.7-9.9-8.3-15.6h9.5c.5 0 .9-.1 1.3-.4.8-.5 1.2-1.6.6-2.5l-17-25.9-.6-.9c-.7-1-2.2-1.2-3.2-.6-.2 0-.4.3-.6.6l-.6.9-16.9 25.9c-.8 1.2.1 2.7 1.7 2.8h9.7c4.7 24.3 25.3 43.2 50.6 45.2 1.4.1 2.9.2 4.3.2 14.9 0 29.2-5.9 39.8-16.7 1.8-1.8 2.6-4.2 2.2-6.7s-1.9-4.6-4.2-5.8h-.1Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path4"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M149.2 124.1c-.4-.2-.8-.4-1.3-.4h-9.5c-4.9-24.1-25.4-42.7-50.5-44.6-16.4-1.3-32.4 4.8-44.1 16.5-1.8 1.8-2.6 4.2-2.2 6.7.4 2.5 1.9 4.6 4.2 5.8 3.1 1.6 6.8 1 9.2-1.5 8.3-8.4 19.9-12.8 31.6-11.9 17.2 1.3 31 13.3 35.5 28.9h-9.7c-1.5 0-2.5 1.6-1.7 2.8l16.9 25.9.6.9c.2.2.3.4.6.6 1 .7 2.5.5 3.2-.6l.6-.9 17-25.9c.6-.9.2-1.9-.6-2.5l.2.2Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Canvas Name="g12">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path10"
Fill="#000000">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3h-.2ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,59 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIRefreshWeissOrange2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg21"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g19">
<Canvas Name="Ebene_1">
<Canvas Name="g10">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#FF5F00">
<Path.Data>
<PathGeometry Figures="M121.6 161.6c-3.1-1.6-6.8-1-9.2 1.5-8.4 8.4-19.9 12.8-31.6 11.9-10.7-.8-20.4-5.8-27.4-13.9-3.9-4.6-6.7-9.9-8.3-15.6h9.5c.5 0 .9-.1 1.3-.4.8-.5 1.2-1.6.6-2.5l-17-25.9-.6-.9c-.7-1-2.2-1.2-3.2-.6-.2.1-.4.3-.6.6l-.6.9-16.9 25.9c-.8 1.2.1 2.7 1.7 2.8h9.7c4.7 24.3 25.3 43.2 50.6 45.2 1.4.1 2.9.2 4.3.2 14.9 0 29.2-5.9 39.8-16.7 1.8-1.8 2.6-4.2 2.2-6.7-.4-2.5-1.9-4.6-4.2-5.8Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FF5F00">
<Path.Data>
<PathGeometry Figures="M149.2 124.1c-.4-.2-.8-.4-1.3-.4h-6.1s-3.4 0-3.4 0c-4.9-24.1-25.4-42.7-50.5-44.6-16.4-1.3-32.4 4.8-44.1 16.5-1.8 1.8-2.6 4.2-2.2 6.7.4 2.5 1.9 4.6 4.2 5.8 3.1 1.6 6.8 1 9.2-1.5 8.3-8.4 19.9-12.8 31.6-11.9 17.2 1.3 31 13.3 35.5 28.9h-9.7c-1.5.1-2.5 1.6-1.7 2.8l16.9 25.9.6.9c.2.2.3.4.6.6 1 .7 2.5.5 3.2-.6l.6-.9 17-25.9c.6-.9.2-1.9-.6-2.5Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Canvas Name="g16">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path12"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path14"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -1,59 +0,0 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- This file is NOT compatible with Silverlight -->
<Viewbox
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Key="AiDesignsIconKIRefreshWeiss2026"
x:Shared="False"
Stretch="Uniform">
<Canvas
Name="svg21"
Width="257.1"
Height="256">
<Canvas.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Canvas.RenderTransform>
<Canvas.Resources />
<!-- Unknown tag: sodipodi:namedview -->
<Canvas Name="g19">
<Canvas Name="Ebene_1">
<Canvas Name="g10">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path6"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M121.6 161.6c-3.1-1.6-6.8-1-9.2 1.5-8.4 8.4-19.9 12.8-31.6 11.9-10.7-.8-20.4-5.8-27.4-13.9-3.9-4.6-6.7-9.9-8.3-15.6h9.5c.5 0 .9-.1 1.3-.4.8-.5 1.2-1.6.6-2.5l-17-25.9-.6-.9c-.7-1-2.2-1.2-3.2-.6-.2.1-.4.3-.6.6l-.6.9-16.9 25.9c-.8 1.2.1 2.7 1.7 2.8h9.7c4.7 24.3 25.3 43.2 50.6 45.2 1.4.1 2.9.2 4.3.2 14.9 0 29.2-5.9 39.8-16.7 1.8-1.8 2.6-4.2 2.2-6.7-.4-2.5-1.9-4.6-4.2-5.8Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path8"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M149.2 124.1c-.4-.2-.8-.4-1.3-.4h-6.1s-3.4 0-3.4 0c-4.9-24.1-25.4-42.7-50.5-44.6-16.4-1.3-32.4 4.8-44.1 16.5-1.8 1.8-2.6 4.2-2.2 6.7.4 2.5 1.9 4.6 4.2 5.8 3.1 1.6 6.8 1 9.2-1.5 8.3-8.4 19.9-12.8 31.6-11.9 17.2 1.3 31 13.3 35.5 28.9h-9.7c-1.5.1-2.5 1.6-1.7 2.8l16.9 25.9.6.9c.2.2.3.4.6.6 1 .7 2.5.5 3.2-.6l.6-.9 17-25.9c.6-.9.2-1.9-.6-2.5Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
<Canvas Name="g16">
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path12"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M232.8 65.1h10.1c1.1 0 1.9.9 1.9 1.9v59.6c0 1.1-.9 1.9-1.9 1.9h-10.1c-1.1 0-1.9-.9-1.9-1.9v-59.6c0-1.1.9-1.9 1.9-1.9Z" FillRule="NonZero" />
</Path.Data>
</Path>
<Path
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="path14"
Fill="#FFFFFF">
<Path.Data>
<PathGeometry Figures="M191.3 65.1h11.6c.8 0 1.5.5 1.8 1.3l22.3 59.5c.5 1.3-.5 2.6-1.8 2.6h-10.3c-.8 0-1.6-.5-1.8-1.3l-3.9-11.5c-.3-.8-1-1.3-1.8-1.3h-20.9c-.8 0-1.6.5-1.8 1.3l-4.1 11.5c-.3.8-1 1.3-1.8 1.3h-9.9c-1.4 0-2.3-1.4-1.8-2.6l22.6-59.5c.3-.8 1-1.3 1.8-1.3ZM191.4 104h11c1.3 0 2.3-1.3 1.8-2.6l-7.1-20.7h-.2l-7.3 20.7c-.4 1.3.5 2.6 1.8 2.6Z" FillRule="NonZero" />
</Path.Data>
</Path>
</Canvas>
</Canvas>
</Canvas>
</Canvas>
</Viewbox>
</ResourceDictionary>

View File

@@ -3,11 +3,4 @@
<PathGeometry x:Key="GeometryFileAdd2">M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Zm-40-64a8,8,0,0,1-8,8H136v16a8,8,0,0,1-16,0V160H104a8,8,0,0,1,0-16h16V128a8,8,0,0,1,16,0v16h16A8,8,0,0,1,160,152Z</PathGeometry>
<PathGeometry x:Key="Lucide.ChevronDown">M488.75 665.1666666666667C477.6249999999999 661.5 472.9166666666666 657.0416666666667 344.9166666666667 528.9583333333334C242.4166666666667 426.3333333333334 214.8333333333333 398.0833333333334 212.4166666666667 393.125C209.8333333333333 387.8333333333334 209.375 385.0416666666668 209.375 375C209.375 361.0833333333334 211.8333333333333 354.9166666666668 220.875 345.875C229.9166666666667 336.8333333333334 236.0833333333334 334.375 250 334.375C260.0833333333333 334.375 262.8333333333333 334.8333333333334 268.125 337.4583333333334C273.0416666666667 339.8333333333334 298.5 364.5833333333334 387.2083333333333 453.0416666666666L500 565.5833333333334L612.7916666666666 453.0416666666666C701.4999999999999 364.5833333333334 726.9583333333333 339.8333333333334 731.875 337.4583333333334C737.1666666666666 334.8333333333334 739.9166666666666 334.375 750 334.375C763.9166666666666 334.375 770.0833333333333 336.8333333333334 779.125 345.875C788.1666666666666 354.9166666666668 790.625 361.0833333333334 790.625 375C790.625 385.0416666666668 790.1666666666665 387.8333333333334 787.5833333333334 393.125C785.1666666666666 398.0833333333334 757.5833333333333 426.3333333333334 655.0833333333333 528.9583333333334C510.9583333333333 673.2083333333334 520 665.125 501.8749999999999 665.7916666666666C496.375 666 490.4583333333333 665.7083333333334 488.75 665.1666666666667</PathGeometry>
<PathGeometry x:Key="Lucide.ChevronUp">M238.75 665.1666666666667C227.75 661.5416666666667 217.5833333333334 652.9166666666667 212.375 642.75C209.8333333333333 637.75 209.375 635.0833333333334 209.375 625C209.375 614.9583333333334 209.8333333333333 612.1666666666667 212.4166666666667 606.875C216.9166666666667 597.7083333333334 472.7083333333333 341.9166666666667 481.8749999999999 337.4166666666668C487.1666666666666 334.8333333333334 489.9583333333333 334.375 500 334.375C510.0416666666666 334.375 512.8333333333333 334.8333333333334 518.125 337.4166666666668C527.2916666666666 341.9166666666667 783.0833333333333 597.7083333333334 787.5833333333334 606.875C790.1666666666665 612.1666666666667 790.625 614.9583333333334 790.625 625C790.625 635.0833333333334 790.1666666666665 637.75 787.6249999999999 642.75C783.7083333333334 650.4166666666667 775.9583333333334 658.1666666666667 768.1249999999999 662.2916666666667C762.625 665.2083333333334 760.4166666666666 665.625 750 665.625C739.375 665.625 737.3749999999999 665.25 731.25 662.0416666666667C725.7083333333334 659.1666666666667 702.6666666666666 636.7916666666667 612.1666666666666 546.4583333333334L500 434.4166666666668L387.7916666666667 546.4583333333334C262.75 671.3333333333334 269.8333333333333 665.125 251.875 665.7916666666666C246.375 666 240.4583333333333 665.7083333333334 238.75 665.1666666666667</PathGeometry>
<PathGeometry x:Key="Phosphor.PuzzlePiece">M220.27,158.54a8,8,0,0,0-7.7-.46,20,20,0,1,1,0-36.16A8,8,0,0,0,224,114.69V72a16,16,0,0,0-16-16H171.78a35.36,35.36,0,0,0,.22-4,36.11,36.11,0,0,0-11.36-26.24,36,36,0,0,0-60.55,23.62,36.56,36.56,0,0,0,.14,6.62H64A16,16,0,0,0,48,72v32.22a35.36,35.36,0,0,0-4-.22,36.12,36.12,0,0,0-26.24,11.36,35.7,35.7,0,0,0-9.69,27,36.08,36.08,0,0,0,33.31,33.6,35.68,35.68,0,0,0,6.62-.14V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V165.31A8,8,0,0,0,220.27,158.54ZM208,208H64V165.31a8,8,0,0,0-11.43-7.23,20,20,0,1,1,0-36.16A8,8,0,0,0,64,114.69V72h46.69a8,8,0,0,0,7.23-11.43,20,20,0,1,1,36.16,0A8,8,0,0,0,161.31,72H208v32.23a35.68,35.68,0,0,0-6.62-.14A36,36,0,0,0,204,176a35.36,35.36,0,0,0,4-.22Z</PathGeometry>
<PathGeometry x:Key="Phosphor.Stack">M230.91,172A8,8,0,0,1,228,182.91l-96,56a8,8,0,0,1-8.06,0l-96-56A8,8,0,0,1,36,169.09l92,53.65,92-53.65A8,8,0,0,1,230.91,172ZM220,121.09l-92,53.65L36,121.09A8,8,0,0,0,28,134.91l96,56a8,8,0,0,0,8.06,0l96-56A8,8,0,1,0,220,121.09ZM24,80a8,8,0,0,1,4-6.91l96-56a8,8,0,0,1,8.06,0l96,56a8,8,0,0,1,0,13.82l-96,56a8,8,0,0,1-8.06,0l-96-56A8,8,0,0,1,24,80Zm23.88,0L128,126.74,208.12,80,128,33.26Z</PathGeometry>
<PathGeometry x:Key="Phosphor.FloppyDisk">M219.31,72,184,36.69A15.86,15.86,0,0,0,172.69,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V83.31A15.86,15.86,0,0,0,219.31,72ZM168,208H88V152h80Zm40,0H184V152a16,16,0,0,0-16-16H88a16,16,0,0,0-16,16v56H48V48H172.69L208,83.31ZM160,72a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h56A8,8,0,0,1,160,72Z</PathGeometry>
<PathGeometry x:Key="Phosphor.RowsPlusTop">M208,160H48a16,16,0,0,0-16,16v24a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V176A16,16,0,0,0,208,160Zm0,40H48V176H208v24Zm0-112H48a16,16,0,0,0-16,16v24a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V104A16,16,0,0,0,208,88Zm0,40H48V104H208v24ZM96,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H136V64a8,8,0,0,1-16,0V48H104A8,8,0,0,1,96,40Z</PathGeometry>
<PathGeometry x:Key="Phosphor.Swap">M224,48V152a16,16,0,0,1-16,16H99.31l10.35,10.34a8,8,0,0,1-11.32,11.32l-24-24a8,8,0,0,1,0-11.32l24-24a8,8,0,0,1,11.32,11.32L99.31,152H208V48H96v8a8,8,0,0,1-16,0V48A16,16,0,0,1,96,32H208A16,16,0,0,1,224,48ZM168,192a8,8,0,0,0-8,8v8H48V104H156.69l-10.35,10.34a8,8,0,0,0,11.32,11.32l24-24a8,8,0,0,0,0-11.32l-24-24a8,8,0,0,0-11.32,11.32L156.69,88H48a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16H160a16,16,0,0,0,16-16v-8A8,8,0,0,0,168,192Z</PathGeometry>
<PathGeometry x:Key="Phosphor.Copy">M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z</PathGeometry>
</ResourceDictionary>

View File

@@ -4,11 +4,11 @@
xmlns:ai="clr-namespace:BeWo.View.Detail.AI"
xmlns:dxwui="http://schemas.devexpress.com/winfx/2008/xaml/windowsui"
xmlns:templateselectors="clr-namespace:BeWo.View.TemplateSelectors"
xmlns:view="clr-namespace:BeWo.View"
xmlns:viewmodel="clr-namespace:BeWo.ViewModel">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\DataTemplates\ControlTemplates.xaml" />
<ResourceDictionary Source="..\Designs\GeometryCollection.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="MessageTextBoxStyle" TargetType="{x:Type TextBox}">
@@ -146,102 +146,35 @@
<!-- Chip-Button für AssistentCommands unter der Assistent-Antwort -->
<Style x:Key="AssistentCommandButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="{DynamicResource TextForegroundPrimary}" />
<Setter Property="FontSize" Value="12" />
<Setter Property="FontWeight" Value="Medium" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Padding" Value="12,4,12,5" />
<Setter Property="Margin" Value="0,0,6,0" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border
x:Name="border"
Padding="{TemplateBinding Padding}"
Background="#00000000"
BorderBrush="#00000000"
BorderThickness="1"
CornerRadius="12">
<ContentPresenter
HorizontalAlignment="Center"
VerticalAlignment="Center"
TextBlock.Foreground="{TemplateBinding Foreground}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#FFFFFFFF" />
<Setter TargetName="border" Property="BorderBrush" Value="#59000000" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="border" Property="Background" Value="#CCEDEDED" />
<Setter TargetName="border" Property="BorderBrush" Value="#73000000" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.45" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Speichern-Button unter der User-Nachricht: nur beim Hovern sichtbar -->
<Style
x:Key="UserMessageSaveButtonStyle"
BasedOn="{StaticResource AssistentCommandButtonStyle}"
TargetType="{x:Type Button}">
<Setter Property="Visibility" Value="Hidden" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<!-- Bei ausgeblendeten Nachrichten kein Speichern (würde eine leere Nachricht speichern) -->
<DataTrigger Binding="{Binding ShowMessage}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
<!-- Buttonleiste unter der Assistent-Antwort: bei der letzten Nachricht immer sichtbar, sonst nur beim Hovern -->
<Style x:Key="AssistentMessageCommandBarStyle" TargetType="{x:Type ItemsControl}">
<Setter Property="Visibility" Value="Hidden" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource IsLastItemToBoolMultiConverter}">
<Binding />
<Binding RelativeSource="{RelativeSource AncestorType={x:Type ListView}}" />
<Binding Path="Items.Count" RelativeSource="{RelativeSource AncestorType={x:Type ListView}}" />
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.AssistentCommands, RelativeSource={RelativeSource AncestorType={x:Type ListView}}, Converter={StaticResource CollectionCountToBoolConverter}}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
<!-- Assistent Message Control -->
<DataTemplate x:Key="AssistentMessageTemplate">
<Grid
Margin="0,0,60,0"
HorizontalAlignment="Left"
Background="Transparent">
ContextMenuService.IsEnabled="{Binding DataContext.AssistentCommands, Converter={StaticResource CollectionCountToBoolConverter}, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType=ItemsControl}}">
<Grid.ContextMenu>
<ContextMenu ItemsSource="{Binding PlacementTarget.Tag.AssistentCommands, RelativeSource={RelativeSource Self}}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{Binding Command}" />
<Setter Property="CommandParameter" Value="{Binding Path=PlacementTarget.DataContext, RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
</Style>
</ContextMenu.ItemContainerStyle>
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock
Margin="3"
VerticalAlignment="Center"
Text="{Binding Name}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</Grid.ContextMenu>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Border
Width="auto"
Margin="0,0,3,0"
@@ -312,6 +245,15 @@
</Grid>
</TextBlock.ToolTip>
</TextBlock>
<TextBlock
Grid.Column="1"
Margin="9,0,0,3"
HorizontalAlignment="Left"
VerticalAlignment="Top"
FontSize="12"
FontWeight="Bold"
Text="⋮"
Visibility="{Binding DataContext.AssistentCommands, RelativeSource={RelativeSource AncestorType=ItemsControl}, Converter={StaticResource CollectionCountToVisibilityConverter}}" />
<!--<TextBlock
Grid.Row="1"
Grid.ColumnSpan="2"
@@ -331,35 +273,6 @@
Style="{StaticResource MessageTextBoxStyle}" />
</Grid>
</Border>
<ItemsControl
Grid.Row="1"
Grid.Column="1"
Margin="0,4,0,0"
HorizontalAlignment="Left"
ItemsSource="{Binding DataContext.AssistentCommands, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
Style="{StaticResource AssistentMessageCommandBarStyle}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button
Command="{Binding Command}"
CommandParameter="{Binding DataContext, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"
Style="{StaticResource AssistentCommandButtonStyle}"
ToolTip="{Binding Name}">
<Path
Width="12"
Height="12"
Data="{Binding Icon}"
Fill="Black"
Stretch="Fill" />
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</DataTemplate>
@@ -396,156 +309,61 @@
<!-- User Message Control -->
<DataTemplate x:Key="UserMessageTemplate">
<Grid
<Border
Width="auto"
Margin="60,0,0,0"
HorizontalAlignment="Right"
Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Border
Width="auto"
HorizontalAlignment="Right"
Background="#DEFFFFFF"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="15, 15, 15, 15">
<Grid>
<TextBox Padding="12,8,12,8">
<TextBox.Style>
<Style BasedOn="{StaticResource MessageTextBoxStyle}" TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ShowMessage}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<!-- Platzhalter für ausgeblendete Nachrichten (Message kommt vom Server als null) -->
<StackPanel Orientation="Vertical">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding ShowMessage}" Value="False">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
Background="#DEFFFFFF"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="15, 15, 15, 15"
Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type view:BeWoView}}, Path=.}">
<Border.ContextMenu>
<ContextMenu>
<MenuItem
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ContextMenu}}, Path=PlacementTarget.Tag.DataContext.SavePromptCommand}"
CommandParameter="{Binding}"
Header="Speichern" />
</ContextMenu>
</Border.ContextMenu>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<!-- Titelzeile: Promptbaustein-Titel + Hilfe-Link + Ausklapp-Button -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<TextBlock
Padding="12,8,4,8"
VerticalAlignment="Center"
FontSize="14"
FontStyle="Italic"
Foreground="#FF888888"
Text="{Binding HiddenMessageText}"
TextWrapping="Wrap" />
<!-- Hilfe-Link (i) für Ownsoft-Promptbausteine mit hinterlegtem OwnsoftRefLink -->
<TextBlock
Grid.Column="1"
Margin="0"
Padding="0"
VerticalAlignment="Center"
ToolTip="Hilfe zum Promptbaustein öffnen"
Visibility="{Binding IsInfoVisible, Converter={StaticResource BoolVisibilityConverter}}">
<Hyperlink NavigateUri="{Binding OwnsoftRefLink}">
(i)
</Hyperlink>
</TextBlock>
<ToggleButton
x:Name="btnTogglePrompt"
Grid.Column="2"
Margin="4,4,8,4"
Padding="6,2,6,2"
VerticalAlignment="Center"
IsEnabled="{Binding ShowPrompt}"
ToolTipService.ShowOnDisabled="True">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<!-- Nur anzeigen, wenn die Nachricht mittels Promptbaustein erstellt wurde -->
<Setter Property="Visibility" Value="Collapsed" />
<Setter Property="Content" Value="▼" />
<Style.Triggers>
<DataTrigger Binding="{Binding HasUsedPromptbaustein}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="▲" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="ToolTip" Value="Versteckt" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
</Grid>
<TextBox Padding="12,8,12,8" Style="{StaticResource MessageTextBoxStyle}" />
<!--<TextBlock Grid.Column="1" Text="⋮"
Margin="3,8,12,8"
VerticalAlignment="Top"
HorizontalAlignment="Left"
FontSize="12"
FontWeight="Bold"/>-->
<!-- Ausgeklappter Prompt-Inhalt -->
<Border
Margin="12,0,12,8"
Padding="4"
Background="#22000000"
CornerRadius="6">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=btnTogglePrompt}" Value="True">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBox
Padding="8"
Style="{StaticResource MessageTextBoxStyle}"
Text="{Binding UsedPromptbausteinContent, Converter={StaticResource NewlineConverter}, Mode=OneWay}" />
</Border>
</StackPanel>
</Grid>
</Border>
<StackPanel
Grid.Row="1"
Margin="0,4,0,0"
HorizontalAlignment="Right" Orientation="Horizontal">
<Button
Command="{Binding DataContext.CopyPromptCommand, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
CommandParameter="{Binding}"
Style="{StaticResource UserMessageSaveButtonStyle}"
ToolTip="Kopieren">
<Path
Width="12"
Height="12"
Data="{StaticResource Phosphor.Copy}"
Fill="Black"
Stretch="Fill" />
</Button>
<Button
Command="{Binding DataContext.SavePromptCommand, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
CommandParameter="{Binding}"
Style="{StaticResource UserMessageSaveButtonStyle}"
ToolTip="Speichern">
<Path
Width="12"
Height="12"
Data="{StaticResource Phosphor.FloppyDisk}"
Fill="Black"
Stretch="Fill" />
</Button>
</StackPanel>
</Grid>
</Grid>
</Border>
</DataTemplate>
<DataTemplate x:Key="CheckboxAssistentMessageTemplate">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<CheckBox
Margin="4"
VerticalAlignment="Center"
IsChecked="{Binding IsChecked, Mode=TwoWay}" />
<ContentPresenter Content="{Binding}" ContentTemplate="{StaticResource AssistentMessageTemplate}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="CheckboxUserMessageTemplate">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<CheckBox
Margin="4"
VerticalAlignment="Center"
IsChecked="{Binding IsChecked}" />
<ContentPresenter Content="{Binding}" ContentTemplate="{StaticResource UserMessageTemplate}" />
</StackPanel>
</DataTemplate>
<templateselectors:AiConversationMessageTemplateSelector
@@ -553,4 +371,10 @@ ToolTip="Kopieren">
AssistentMessageTemplate="{StaticResource AssistentMessageTemplate}"
SystemMessageTemplate="{StaticResource SystemMessageTemplate}"
UserMessageTemplate="{StaticResource UserMessageTemplate}" />
<templateselectors:AiConversationMessageTemplateSelector
x:Key="AiConversationCloneMessageTemplateSelector"
AssistentMessageTemplate="{StaticResource CheckboxAssistentMessageTemplate}"
SystemMessageTemplate="{StaticResource SystemMessageTemplate}"
UserMessageTemplate="{StaticResource UserMessageTemplate}" />
</ResourceDictionary>

View File

@@ -22,18 +22,6 @@
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Schw+Orange.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Weiss.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Weiss+Orange.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Chat_Schw_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Chat_Schw+Orange_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Chat_Weiss_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Chat_Weiss+Orange_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Funktion_Schw_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Funktion_Schw+Gruen_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Funktion_Weiss_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Funktion_Weiss+Gruen_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Schw_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Schw+Orange_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Weiss_2026.xaml" />
<ResourceDictionary Source="Designs\AI\Icon_Refresh_Weiss+Orange_2026.xaml" />
<ResourceDictionary Source="Designs\GeometryCollection.xaml" />

View File

@@ -17,7 +17,6 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Colors\Colors.xaml" />
<ResourceDictionary Source="Designs\GeometryCollection.xaml" />
</ResourceDictionary.MergedDictionaries>
<conv:CustomerDCPrintURLConverter x:Key="CustomerDCPrintURLConverter" />

View File

@@ -3,6 +3,7 @@ using BeWo.ServiceProxy;
using BeWo.View;
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.Extensions;
using System;
using System.IO;

View File

@@ -19,10 +19,19 @@ namespace BeWo.Validation
{
PropertyInfo lPropInfo = null;
object lCurrentObject = this.ExpressionToValidate.DataItem;
// Claude: DataItem des Bindings und Eltern-Objekt des Ziel-Propertys festhalten,
// damit kontextabhaengige Regeln den Klientenbezug auswerten koennen.
// Bei "PrototypeVM.Notice" ist das DataItem die ServiceRecordListVM (kennt
// WithoutClient), bei "Notice" in den EditViews die ServiceRecordVM selbst.
object lDataItem = lCurrentObject;
object lOwner = lCurrentObject;
if (lCurrentObject != null)
{
foreach (var iPropName in this.ExpressionToValidate.ParentBinding.Path.Path.Split("."))
{
lOwner = lCurrentObject; // Claude: vor dem GetValue merken
lPropInfo = lCurrentObject.GetType().GetProperty(iPropName);
lCurrentObject = lPropInfo.GetValue(lCurrentObject, null);
}
@@ -33,7 +42,12 @@ namespace BeWo.Validation
var lAttributes = lPropInfo.GetCustomAttributes(typeof(ValidationAttribute), true);
if (lAttributes.Length > 0)
{
lValid = ((ValidationAttribute) lAttributes[0]).Validate(pValue);
// Claude: DataItem hat Vorrang, weil dort der View-Zustand liegt
// (ServiceRecordListVM.WithoutClient); sonst greift das Eltern-Objekt.
var lContext = (lDataItem as ICustomerRelatedContext)
?? (lOwner as ICustomerRelatedContext);
lValid = ((ValidationAttribute) lAttributes[0]).Validate(pValue, lContext);
}
}
}

View File

@@ -0,0 +1,12 @@
namespace BeWo.Validation
{
// Claude: Kontext fuer klientenabhaengige Validierungsregeln.
// Wird von ValidationRules.EmptyNoticeInNewServiceRecordsAllowed ausgewertet: die
// Dokumentationspflicht (Mandanten-Setting IsServiceRecordNoticeMandatory) gilt nur fuer
// klientenbezogene Zeiterfassungen, also fuer Eintraege mit Customer/Hilfeplan.
public interface ICustomerRelatedContext
{
// Claude: true, wenn der Eintrag zu einem Customer/SupportConcept gehoert.
bool IsCustomerRelated { get; }
}
}

View File

@@ -15,7 +15,9 @@ namespace BeWo.Validation
public ValidationRules ValidationRule { get; set; }
public bool Validate(object pValue)
// Claude: pContext liefert den Klientenbezug fuer EmptyNoticeInNewServiceRecordsAllowed.
// null bedeutet "unbekannt" -> bisheriges Verhalten (Pflichtfeld bleibt).
public bool Validate(object pValue, ICustomerRelatedContext pContext = null)
{
bool lResult = true;
switch (ValidationRule)
@@ -73,7 +75,12 @@ namespace BeWo.Validation
break;
case ValidationRules.EmptyNoticeInNewServiceRecordsAllowed:
if (BeWoApp.AppSettings.IsServiceRecordNoticeMandatory)
// Claude: Dokumentationspflicht greift nur noch bei klientenbezogenen
// Eintraegen (Customer/Hilfeplan). Ohne Klientenbezug - in
// ServiceRecordView2 also bei abgewaehlter CheckBox "chkWithClient" -
// ist die Dokumentation niemals Pflicht.
if (BeWoApp.AppSettings.IsServiceRecordNoticeMandatory
&& (pContext == null || pContext.IsCustomerRelated))
{
if (pValue is string)
{

View File

@@ -34,10 +34,8 @@
Background="Transparent"
Command="{Binding OpenConversationPopupCommand}"
Content="{StaticResource AiDesignsIconKIChatWeissOrange}"
ToolTip="KI Chat öffnen"
ToolTipService.ShowOnDisabled="True">
<Button.ToolTip>
<TextBlock Text="{Binding TooltipName, StringFormat='KI Chat über {0} öffnen'}" />
</Button.ToolTip>
<!--<Button.InputBindings>
<MouseBinding Command="{Binding OpenConversationPopupCommand}" Gesture="LeftClick" />
</Button.InputBindings>-->
@@ -50,10 +48,8 @@
Command="{Binding OpenAllPromptsPopupCommand}"
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen}"
MouseRightButtonUp="btnOpenAi5_MouseRightButtonUp"
ToolTip="KI Chat mit Prompt-Baustein starten"
ToolTipService.ShowOnDisabled="True">
<Button.ToolTip>
<TextBlock Text="{Binding TooltipName, StringFormat='KI Chat über {0} per Prompt-Aktion starten'}" />
</Button.ToolTip>
<!--<Button.InputBindings>
<MouseBinding Command="{Binding OpenAllPromptsPopupCommand}" Gesture="LeftClick" />
</Button.InputBindings>-->
@@ -100,14 +96,6 @@
StaysOpen="False">
<Border x:Name="border_promptbaustein_al" BorderThickness="1" />
</Popup>-->
<Border
x:Name="borderLoadingOverlay"
Grid.Column="0"
Grid.ColumnSpan="4"
Background="Transparent"
ToolTip="Lade"
ToolTipService.ShowOnDisabled="True"
Visibility="{Binding IsLoading, Converter={StaticResource BoolVisibilityConverter}}" />
<Popup
x:Name="popup_promptbaustein_favoriten"
Width="400"

View File

@@ -67,13 +67,12 @@ namespace BeWo.View.Controls.AI
{
var viewmodel = new AiPromptbausteinSelectionComplexViewModel(actionType, listvm);
viewmodel.ItemAccepted += ItemAccepted;
viewmodel.Closed += (s, e) => viewmodel.ResetSelection();
viewmodel.RequestCloseFinal += (s, e) => viewmodel.ResetSelection();
ViewModel.AllPromptsViewModel = viewmodel;
var viewmodel2 = new AiPromptbausteinSelectionComplexViewModel(actionType, listvm, true);
viewmodel2.ItemAccepted += ItemAccepted;
popup_promptbaustein_favoriten.Closed += (s, e) => viewmodel2.CloseFinalCommand.Execute(null);
viewmodel2.Closed += (s, e) => viewmodel2.ResetSelection();
popup_promptbaustein_favoriten.Closed += (s, e) => viewmodel2.ResetSelection();
var view2 = new AiPromptbausteinComplexSelectionFavoritenView(viewmodel2);
viewmodel2.SelectedFolder = viewmodel2.Folders.VMList[0];
view2.Padding = new Thickness(3);

View File

@@ -91,18 +91,15 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Path
Data="{StaticResource Phosphor.PuzzlePiece}"
Margin="2"
Grid.RowSpan="2"
Width="24"
Height="24"
Fill="Black"
Stretch="Fill"/>
<Rectangle
Grid.RowSpan="2"
Width="24"
Height="24"
Fill="White" />
<StackPanel Grid.Column="2" Orientation="Horizontal">
<TextBox
Height="21"
Margin="0,0,0,0"
Margin="2,0,0,0"
Padding="0"
VerticalAlignment="Center"
Background="Transparent"
@@ -189,8 +186,8 @@ Fill="Black"
<DataTrigger Binding="{Binding IsValid}" Value="False">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Red" />
<Setter Property="IsEnabled" Value="True" />
<Setter Property="IsHitTestVisible" Value="True" />
<Setter Property="IsEnabled" Value="False" />
<Setter Property="IsHitTestVisible" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
@@ -241,29 +238,25 @@ Fill="Black"
Background="Transparent"
ContextMenuOpening="ListBox_ContextMenuOpening"
PreviewMouseDown="Grid_PreviewMouseDown_2">
<Grid IsEnabled="{Binding IsValid}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="9" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Path
Data="{StaticResource Phosphor.Stack}"
Margin="2"
Grid.RowSpan="2"
Width="24"
Height="24"
Fill="Black"
Stretch="Fill"/>
<StackPanel Grid.Column="2" Orientation="Horizontal">
<TextBox
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="9" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle
Grid.RowSpan="2"
Width="24"
Height="24"
Fill="White" />
<StackPanel Grid.Column="2" Orientation="Horizontal">
<TextBox
Height="21"
Margin="0,0,0,0"
Padding="0"
@@ -276,10 +269,10 @@ Fill="Black"
IsReadOnly="True"
Text="{Binding Path=Title, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
ToolTipService.ShowDuration="100000">
<TextBox.ToolTip>
<StackPanel Orientation="Vertical">
<Label Content="{Binding Path=Title, Mode=OneWay}" FontWeight="Bold" />
<TextBox
<TextBox.ToolTip>
<StackPanel Orientation="Vertical">
<Label Content="{Binding Path=Title, Mode=OneWay}" FontWeight="Bold" />
<TextBox
MaxWidth="500"
Padding="3,1,0,0"
VerticalAlignment="Center"
@@ -289,16 +282,16 @@ Fill="Black"
IsReadOnly="True"
Text="{Binding Path=Description}"
TextWrapping="Wrap" />
</StackPanel>
</TextBox.ToolTip>
</TextBox>
</StackPanel>
<StackPanel
</StackPanel>
</TextBox.ToolTip>
</TextBox>
</StackPanel>
<StackPanel
Grid.Row="1"
Grid.Column="2"
Margin="0,-1,0,0"
Orientation="Horizontal">
<Border
<Border
x:Name="border1"
Width="46"
Margin="0,0,3,0"
@@ -306,27 +299,27 @@ Fill="Black"
HorizontalAlignment="Left"
Background="#E1F5EE"
CornerRadius="7">
<TextBlock
<TextBlock
Margin="1,0,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10"
Text="Routine"
TextWrapping="Wrap" />
</Border>
<TextBlock
</Border>
<TextBlock
Margin="3,0,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} Schritte">
<Binding Path="Steps.Count" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<ListBox
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} Schritte">
<Binding Path="Steps.Count" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<ListBox
Grid.Row="2"
Grid.Column="2"
Margin="3,9,3,3"
@@ -337,20 +330,20 @@ Fill="Black"
IsHitTestVisible="False"
ItemsSource="{Binding Steps.VMList}"
Visibility="{Binding Steps.VMList.Count, Converter={StaticResource CollectionCountToVisibilityConverter}}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock
x:Name="arrow"
Margin="3"
VerticalAlignment="Center"
Text="&#x2794;" />
<Border
<Border
x:Name="border1"
Height="19"
Margin="0"
@@ -358,49 +351,48 @@ Fill="Black"
HorizontalAlignment="Left"
Background="DarkGray"
CornerRadius="7">
<TextBlock
<TextBlock
Margin="3,0,3,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10"
Text="{Binding PromptReference.Title, StringFormat={}✦ {0}}"
TextWrapping="Wrap" />
</Border>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
<Setter TargetName="arrow" Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding IsValid}" Value="false">
<Setter TargetName="border1" Property="Background" Value="LightCoral" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
<StackPanel
</Border>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
<Setter TargetName="arrow" Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding IsValid}" Value="false">
<Setter TargetName="border1" Property="Background" Value="LightCoral" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
<StackPanel
Grid.Row="3"
Grid.Column="2"
Orientation="Horizontal"
Visibility="{Binding IsValid, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=reverse}">
<Image
<Image
x:Name="imgWarning"
Grid.Column="2"
Height="20"
Margin="6,0"
Source="{Binding Source={x:Static draw:SystemIcons.Warning}, Converter={StaticResource IconToImageSourceConverter}, Mode=OneWay}" />
<!-- Visibility="{Binding ElementName=btnOpenAi4, Path=Visibility}" -->
<Label Foreground="Red">
Ungültig
</Label>
</StackPanel>
</Grid>
<!-- Visibility="{Binding ElementName=btnOpenAi4, Path=Visibility}" -->
<Label Foreground="Red">
Ungültig
</Label>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
@@ -422,16 +414,22 @@ Fill="Black"
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TreeView
<GroupBox
Grid.Row="1"
Grid.Column="0"
Margin="0,7,0,0"
Padding="0"
HorizontalAlignment="Stretch"
Header="Bibliothek"
Style="{StaticResource ObjectEditGroupBox}">
<TreeView
x:Name="treeView"
Grid.Row="1"
Grid.Column="0"
MinHeight="100"
Padding="4,16,4,16"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
AllowDrop="True"
BorderThickness="1,1,0,1"
BorderThickness="1,0,0,1"
ContextMenuOpening="treeView_ContextMenuOpening"
Focusable="True"
ItemContainerStyle="{DynamicResource igoal_treeitemstyle}"
@@ -441,18 +439,18 @@ Fill="Black"
PreviewMouseRightButtonDown="OnPreviewMouseRightButtonDown"
SelectedItemChanged="treeView_SelectedItemChanged"
TreeViewItem.Selected="treeView_Selected">
<TreeView.Resources>
<Style x:Key="igoal_treeitemstyle" TargetType="TreeViewItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}" />
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.Resources>
<TreeView.InputBindings>
<KeyBinding Key="Delete" Command="{Binding DeleteFolderCommand}" />
<KeyBinding Key="Enter" Command="{Binding OpenEditFolderDialogCommand}" />
<KeyBinding Key="N" Command="{Binding OpenAddFolderDialogCommand}" />
<!--<KeyBinding
<TreeView.Resources>
<Style x:Key="igoal_treeitemstyle" TargetType="TreeViewItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}" />
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.Resources>
<TreeView.InputBindings>
<KeyBinding Key="Delete" Command="{Binding DeleteFolderCommand}" />
<KeyBinding Key="Enter" Command="{Binding OpenEditFolderDialogCommand}" />
<KeyBinding Key="N" Command="{Binding OpenAddFolderDialogCommand}" />
<!--<KeyBinding
Key="C"
Command="{Binding CopyFolderCommand}"
Modifiers="Ctrl" />
@@ -460,33 +458,33 @@ Fill="Black"
Key="V"
Command="{Binding PasteFolderCommand}"
Modifiers="Ctrl" />-->
</TreeView.InputBindings>
<TreeView.ContextMenu>
<ContextMenu>
<ContextMenu.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type Image}">
<Setter Property="Height" Value="24" />
</Style>
</ResourceDictionary>
</ContextMenu.Resources>
<MenuItem
</TreeView.InputBindings>
<TreeView.ContextMenu>
<ContextMenu>
<ContextMenu.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type Image}">
<Setter Property="Height" Value="24" />
</Style>
</ResourceDictionary>
</ContextMenu.Resources>
<MenuItem
Command="{Binding OpenAddFolderDialogCommand}"
Header="Neuer Ordner"
ToolTip="Shortcut: N">
<MenuItem.Icon>
<Image Source="..\..\..\Ressources\Icons\Add24.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem
<MenuItem.Icon>
<Image Source="..\..\..\Ressources\Icons\Add24.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem
Command="{Binding OpenEditFolderDialogCommand}"
Header="Bearbeiten"
ToolTip="Shortcut: Enter">
<MenuItem.Icon>
<Image Source="..\..\..\Ressources\Icons\Rename24.png" />
</MenuItem.Icon>
</MenuItem>
<!--<Separator />
<MenuItem.Icon>
<Image Source="..\..\..\Ressources\Icons\Rename24.png" />
</MenuItem.Icon>
</MenuItem>
<!--<Separator />
<MenuItem
Command="{Binding CopyFolderCommand}"
Header="Kopieren"
@@ -503,18 +501,19 @@ Fill="Black"
<Image Source="..\..\..\Ressources\Icons\Paste24.png" />
</MenuItem.Icon>
</MenuItem>-->
<Separator />
<MenuItem
<Separator />
<MenuItem
Command="{Binding DeleteFolderCommand}"
Header="Löschen"
ToolTip="Shortcut: Entf">
<MenuItem.Icon>
<Image Source="..\..\..\Ressources\Icons\Delete24.png" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
<MenuItem.Icon>
<Image Source="..\..\..\Ressources\Icons\Delete24.png" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>
</GroupBox>
<GridSplitter
Grid.Row="1"
Grid.Column="1"
@@ -525,7 +524,7 @@ Fill="Black"
Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="2">
<!--<Grid.Resources>
<Grid.Resources>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=treeView, Path=SelectedItem}" Value="{x:Null}">
@@ -533,7 +532,7 @@ Fill="Black"
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>-->
</Grid.Resources>
<TabControl
x:Name="tabcontrol_1"
Padding="0"

View File

@@ -142,6 +142,7 @@
IsReadOnly="True"
x:Name="popupedit_Auftraggeber"
Height="23"
MaxWidth="294"
DeleteButtonVisibility="Visible"
DeleteClick="popupedit_Auftraggeber_DeleteClick"
PopUpClick="popupedit_Auftraggeber_PopUpClick"
@@ -159,6 +160,7 @@
IsReadOnly="True"
x:Name="popupedit_AuftraggeberContactPersonSearch"
Height="23"
MaxWidth="294"
DeleteButtonVisibility="Visible"
DeleteClick="popupedit_AuftraggeberContactPersonSearch_DeleteClick"
PopUpClick="popupedit_AuftraggeberContactPersonSearch_PopUpClick"
@@ -175,6 +177,7 @@
IsReadOnly="True"
x:Name="popupedit_Einsatzstelle"
Height="23"
MaxWidth="294"
DeleteButtonVisibility="Visible"
DeleteClick="popupedit_Einsatzstelle_DeleteClick"
PopUpClick="popupedit_Einsatzstelle_PopUpClick"
@@ -192,6 +195,7 @@
IsReadOnly="True"
x:Name="popupedit_EinsatzstelleContactPersonSearch"
Height="23"
MaxWidth="294"
DeleteButtonVisibility="Visible"
DeleteClick="popupedit_EinsatzstelleContactPersonSearch_DeleteClick"
PopUpClick="popupedit_EinsatzstelleContactPersonSearch_PopUpClick"
@@ -449,13 +453,15 @@
Grid.Column="3"
Grid.RowSpan="9"
Height="190"
MaxWidth="294"
VerticalAlignment="Top"
VerticalContentAlignment="Stretch"
AcceptsReturn="True"
IsReadOnly="{Binding PermissionCustomerGemeinnutzigeArbeitManage, Mode=OneTime, Converter={StaticResource BoolReverseConverter}, ElementName=root}"
Text="{Binding Path=Bemerkung, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
TextWrapping="NoWrap"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"/>
<Popup Margin="10" Name="popup_costbearer" StaysOpen="False"
Placement="MousePoint"

View File

@@ -58,7 +58,7 @@
Grid.Column="2"
IsEnabled="False"
Style="{StaticResource TextEditNumber}"
Text="{Binding Oid, Mode=OneWay}" />
Text="{Binding Oid}" />
<Label
Grid.Row="1"
Grid.Column="0"
@@ -154,7 +154,7 @@
Grid.Column="2"
MaxLength="1024"
Style="{StaticResource TextBoxNoticeLarge}"
Text="{Binding Notice, UpdateSourceTrigger=PropertyChanged}"
Text="{Binding Notice}"
TextWrapping="Wrap" />
</Grid>
</TabItem>

View File

@@ -10,6 +10,7 @@ using System.Windows.Input;
using BeWo.Annotations;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.Extensions;
namespace BeWo.View.Controls

View File

@@ -5,6 +5,7 @@ using System.Windows.Controls;
using System.Windows.Input;
using BeWo.Validation;
using BeWo.ViewModel;
using BS.Shared.Core;
namespace BeWo.View.Controls
{

View File

@@ -26,8 +26,6 @@
VerticalAlignment="Stretch"
d:DataContext="{d:DesignInstance Type=vmv:AiConversationChatViewModel,
IsDesignTimeCreatable=True}"
d:Height="600"
d:Width="600"
Focusable="True"
Loaded="BeWoView_Loaded"
mc:Ignorable="d">
@@ -61,27 +59,7 @@
MouseDown="ConversationRenameTextBlock_MouseDown"
Text="{Binding Displayname}"
TextTrimming="CharacterEllipsis"
Visibility="{Binding IsEditing, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=false}">
<TextBlock.ToolTip>
<StackPanel>
<TextBlock
FontSize="11"
Foreground="{DynamicResource TextForegroundSecondary}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Created, StringFormat=Erstellt: {0:dd.MM.yy HH:mm}}" />
<TextBlock
FontSize="11"
Foreground="{DynamicResource TextForegroundSecondary}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Updated, StringFormat=Aktualisiert: {0:dd.MM.yy HH:mm}}" />
<TextBlock
FontSize="11"
Foreground="{DynamicResource TextForegroundSecondary}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Context_Type, StringFormat=Format: {0}}" />
</StackPanel>
</TextBlock.ToolTip>
</TextBlock>
Visibility="{Binding IsEditing, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter=false}" />
<TextBox
Margin="0"
Padding="0"
@@ -95,8 +73,24 @@
LostFocus="ConversationRenameTextBox_LostFocus"
Text="{Binding Displayname, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding IsEditing, Converter={StaticResource BoolVisibilityConverter}}" />
<TextBlock
Grid.Row="1"
FontSize="11"
Foreground="{DynamicResource TextForegroundSecondary}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Created, StringFormat=Erstellt: {0:dd.MM.yy HH:mm}}" />
<TextBlock
Grid.Row="2"
FontSize="11"
Foreground="{DynamicResource TextForegroundSecondary}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Updated, StringFormat=Aktualisiert: {0:dd.MM.yy HH:mm}}" />
<TextBlock
Grid.Row="3"
FontSize="11"
Foreground="{DynamicResource TextForegroundSecondary}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Context_Type, StringFormat=Format: {0}}" />
<!--<TextBlock
Grid.Row="2"
FontSize="10"
@@ -167,7 +161,7 @@
</Grid.RowDefinitions>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" MinWidth="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
@@ -185,34 +179,8 @@
</dxwui:HamburgerMenu>-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ToggleButton
x:Name="btnToggleConversations"
Width="24"
Height="24"
Margin="4,4,0,0"
Padding="0"
HorizontalAlignment="Right"
IsChecked="False"
ToolTip="Konversationen ein-/ausblenden">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Setter Property="Content" Value="◀" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Content" Value="▶" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
<ListView
x:Name="listview_conversations"
Grid.Row="1"
Width="200"
Padding="4"
Background="Transparent"
BorderThickness="0"
@@ -221,8 +189,7 @@
ScrollViewer.CanContentScroll="False"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
SelectedItem="{Binding ListVM.SelectedVM, Mode=TwoWay}"
SelectionChanged="listview_conversations_SelectionChanged"
Visibility="{Binding IsChecked, ElementName=btnToggleConversations, Converter={StaticResource BoolVisibilityConverter}}">
SelectionChanged="listview_conversations_SelectionChanged">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
@@ -313,7 +280,6 @@
VerticalAlignment="Stretch"
Background="Transparent"
BorderThickness="0"
Hyperlink.RequestNavigate="Hyperlink_RequestNavigate"
ItemTemplateSelector="{StaticResource AiConversationMessageTemplateSelector}"
ItemsSource="{Binding ListVM.SelectedVM.Messages.VMList, UpdateSourceTrigger=PropertyChanged}"
ScrollViewer.CanContentScroll="False"
@@ -489,6 +455,11 @@
Margin="4,0,0,0"
Command="{Binding RenameCommand}"
Content="Umbennen" />
<Button
x:Name="btnClone"
Margin="4,0,0,0"
Command="{Binding OpenCloneCommand}"
Content="Klonen" />
<Button
x:Name="btnDelete"
Margin="4,0,0,0"
@@ -571,6 +542,64 @@
ItemsSource="{Binding Models}"
SelectedItem="{Binding Config.SelectedModel, Mode=TwoWay}" />
</Grid>-->
</Popup>
<Popup
x:Name="popup_conversation_clone"
IsOpen="{Binding IsCloneOpen}"
Loaded="popup_conversation_clone_Loaded"
Placement="Center"
StaysOpen="False">
<Border
Width="400"
Height="600"
Padding="0"
Background="{DynamicResource NavigationContentBrush}"
BorderThickness="1"
CornerRadius="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<ListView
x:Name="listbox_messages_clone"
Padding="3"
Background="Transparent"
BorderThickness="0"
ItemTemplateSelector="{StaticResource AiConversationCloneMessageTemplateSelector}"
ItemsSource="{Binding ListVM.SelectedVM.Messages.VMList, UpdateSourceTrigger=PropertyChanged}"
ScrollViewer.CanContentScroll="False"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="Padding" Value="4" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<ContentPresenter Margin="{TemplateBinding Padding}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
<Button
Grid.Row="1"
Margin="8,4,8,8"
Command="{Binding CloneCommand}">
Klonen
</Button>
</Grid>
</Border>
<!-- AiConversationCloneMessageTemplateSelector -->
</Popup>
<Popup
x:Name="popup_message_save"

View File

@@ -86,6 +86,11 @@ namespace BeWo.View.Detail.AI
Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() => BeWoWpfUtils.ScrollToBottom(listview_messages)));
}
private void popup_conversation_clone_Loaded(object sender, RoutedEventArgs e)
{
Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() => BeWoWpfUtils.ScrollToBottom(listbox_messages_clone)));
}
private void Grid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)

View File

@@ -7,6 +7,7 @@ using BeWo.Core.Commands;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DependencyObject = System.Windows.DependencyObject;
@@ -139,9 +140,27 @@ namespace BeWo.View.Detail
private void RemoveAbsenceTime()
{
AbsenceTimes?.VMList.Remove(DataGridAbsenceTimes.GetCurrentValue<AbsenceTimeVM>());
var absenceTime = DataGridAbsenceTimes.GetCurrentValue<AbsenceTimeVM>();
if (absenceTime == null)
{
return;
}
if (IsAbsenceTimeInThePast(absenceTime) && !BeWoApp.LoggedOnUser.HasRight(UserRightType.Employee_AllowDeleteAbsenceTimesAfterExpiry))
{
MessageBox.Show(Translator.Translate("Sie haben nicht das Benutzerrecht, bereits vergangene Mitarbeiter-Abwesenheiten zu löschen."),
"BeWo Planer", MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
AbsenceTimes?.VMList.Remove(absenceTime);
BeWoWpfUtils.RefreshDXGrid(DataGridAbsenceTimes);
}
private static bool IsAbsenceTimeInThePast(AbsenceTimeVM absenceTime)
{
return absenceTime.End.HasValue && absenceTime.End.Value.Date < DateTime.Today;
}
}
}

View File

@@ -230,19 +230,24 @@ namespace BeWo.View.Detail.Accounting
var dialog = new GkvAbrechnungDialogViewModel(vm);
dialog.Closing += (s, ee) => Detail_Window_Closing(s, new CancelEventArgs());
dialog.RequestCloseFinal += (s, ee) => Detail_Window_Closing(s, new CancelEventArgs());
BeWoApp.MainControl.WindowService.ShowGkvAbrechnungDetailWindow(dialog);
}
private void Detail_Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
var dialog = sender as GkvAbrechnungDialogViewModel;
var vm = dialog.Abrechnung;
var bewo_window = sender as AnimatedBeWoWindow;
var detail_control = bewo_window.GroupBoxContent as GkvAbrechnungDetailControl;
var vm = detail_control.DataContext as GkvAbrechnungLightVM;
vm.CheckAllInvoiceBases();
//vm.Notice = textbox_text;
var checkbox_checked = detail_control.Checkbox_Bezahlt.IsChecked;
var textbox_text = detail_control.txt_Notice.Text;
vm.Notice = textbox_text;
if (vm.IsDirty)
{

View File

@@ -338,7 +338,7 @@ namespace BeWo.View.Detail
ApplicationCommands.Save,
(s, e) =>
{
if (editView.IsValid() && editView.IsCustomerChangeAllowed())
if (editView.IsValid() && editView.IsCustomerChangeAllowed() && editView.ConfirmExpiredHilfeplan())
{
editView.SaveData();
CloseEditView();
@@ -495,18 +495,62 @@ namespace BeWo.View.Detail
return;
}
}
if (!ConfirmExpiredHilfeplan())
{
return;
}
var atvm = ViewModel.CreateFromPrototype();
ViewModel.AccountingTransactionVMList.Add(atvm);
Save();
ViewModel.RefreshAccountingTransactionsForSelectedTreeNode();
}
}
/// Warnung wenn der ausgewählte Hilfeplan zum Buchungsdatum bereits abgelaufen ist (Enddatum des Hilfeplans; Buchungsdatum).
private bool ConfirmExpiredHilfeplan()
{
if (WithoutClient)
{
return true;
}
var selectedNode = ViewModel.SelectedCustomerNode;
if (selectedNode == null || selectedNode.SupportConceptTreeNodeDC == null)
{
return true;
}
var relDC = selectedNode.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC;
if (relDC == null)
{
return true;
}
return ConfirmHilfeplanNotExpired(relDC.EndDate, ViewModel.PrototypeVM.BookingDate);
}
internal static bool ConfirmHilfeplanNotExpired(DateTime? hilfeplanEndDate, DateTime? bookingDate)
{
if (!hilfeplanEndDate.HasValue || !bookingDate.HasValue)
{
return true;
}
if (hilfeplanEndDate.Value.Date < bookingDate.Value.Date)
{
var message = string.Format(
"Bitte beachten Sie, dass dieser Hilfeplan ist am {0:dd.MM.yyyy} abgelaufen ist. Bitte prüfen ob die Buchung in neuen/aktuellen Hilfeplan gehört.\n\nMöchten Sie die Buchung trotzdem in diesm Hilfeplan speichern?",
hilfeplanEndDate.Value, bookingDate.Value);
return MessageBox.Show(message, "Hilfeplan abgelaufen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes;
}
return true;
}
private void chkWithClient_Checked(object sender, RoutedEventArgs e)
{
if (customerInfoGrid != null)
@@ -662,6 +706,11 @@ namespace BeWo.View.Detail
if (lValid)
{
if (!ConfirmExpiredHilfeplan())
{
return;
}
var atvm = ViewModel.CreateFromPrototype();
ViewModel.AccountingTransactionVMList.Add(atvm);

View File

@@ -165,6 +165,24 @@ namespace BeWo.View.Detail
return lAllowed;
}
/// Warnung wenn der Hilfeplan der bearbeiteten Buchungsdatum bereits abgelaufen ist (Enddatum des Hilfeplans &lt; Buchungsdatum)
public bool ConfirmExpiredHilfeplan()
{
AccountingTransactionVM vm = this.ViewModel != null ? this.ViewModel.SelectedVM : null;
if (vm == null)
{
return true;
}
SupportConceptCostBearerRelDC relDC = vm.CostBearerRel;
if (relDC == null)
{
return true;
}
return AccountingTransactionBookingView.ConfirmHilfeplanNotExpired(relDC.EndDate, vm.BookingDate);
}
public bool IsValid()
{
FlatSupportConceptTreeNodeDC selectedNode = this.ViewModel.SelectedVM.SupportConceptTreeNode;
@@ -197,6 +215,11 @@ namespace BeWo.View.Detail
return false;
}
if (!this.ConfirmExpiredHilfeplan())
{
return false;
}
this.SaveData();
}
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.Services;
using BS.Shared.Translation;
using DevExpress.Xpf.RichEdit;

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Translation;

View File

@@ -370,7 +370,7 @@
Grid.Row="0"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Dokumentationstext in der Zeiterfassung Pflichtfeld}"
Content="{markup:Translate Klientenbezogener Dokumentationstext in der Zeiterfassung Pflichtfeld}"
IsChecked="{Binding Path=IsServiceRecordNoticeMandatory}" />
<CheckBox
Grid.Row="1"

View File

@@ -1,5 +1,6 @@
using BeWo.Core;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;

View File

@@ -94,7 +94,7 @@
<dxg:GridControl
Grid.Row="1"
MaxHeight="300"
MaxHeight="200"
Margin="0,10,0,0"
ItemsSource="{Binding GoalRatingList.VMList}">
<dxg:GridControl.View>

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.Services;
using BS.Shared.Translation;
using DevExpress.Xpf.RichEdit;

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;

View File

@@ -94,14 +94,9 @@ namespace BeWo.View.Detail.Report
try
{
var filter = _SelectedFilter;
UrlaubsplanerRootObj = await Task.Run(() =>
ServiceFacade.DoEmployeeServiceSync(s => s.BuildUrlaubsplanerRootObject(filter)));
var absenceOverview = await Task.Run(() =>
ServiceFacade.DoEmployeeServiceSync(x => x.GetAbsenceOverview(filter)));
UpdateScheduler(false, absenceOverview);
ServiceFacade.DoEmployeeServiceSync(s => s.BuildUrlaubsplanerRootObject(_SelectedFilter)));
UpdateScheduler(false);
ColorizeFeiertage();
ApplyFeiertagCellStyle();
}
@@ -276,14 +271,19 @@ namespace BeWo.View.Detail.Report
}
// Claude - optionaler Parameter absenceOverview: vorgeladene Daten aus Button_Click werden übergeben, um doppelten Serviceaufruf zu vermeiden
public void UpdateScheduler(bool neuLaden, List<EmployeeDC> absenceOverview = null)
public async void UpdateScheduler(bool neuLaden)
{
if (neuLaden || UrlaubsplanerRootObj == null)
{
UrlaubsplanerRootObj = await Task.Run(() =>
ServiceFacade.DoEmployeeServiceSync(s => s.BuildUrlaubsplanerRootObject(_SelectedFilter)));
}
var absenceReasons = _AbsenceReasonDCs;
if (absenceOverview == null)
absenceOverview = ServiceFacade.DoEmployeeServiceSync(x => x.GetAbsenceOverview(_SelectedFilter));
_ListOfEmployee = absenceOverview;
_ListOfEmployee = UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs.Select(i => i.Employee).ToList();
var start = new DateTime(_SelectedFilter.Year, _SelectedFilter.Month, 1);
try
@@ -314,14 +314,14 @@ namespace BeWo.View.Detail.Report
_AppointmentStorage.Clear();
//UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs = new List<AbwesenheitsInformationDC>();
int counter = 0;
foreach (var employee in absenceOverview)
foreach (var employee in _ListOfEmployee)
{
if (neuLaden == true)
{
var tageUrlaub = ServiceFacade.DoEmployeeServiceSync(s => s.CountUrlaubstage(UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter]));
UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter].TageUrlaub = ServiceFacade.DoEmployeeServiceSync(s => s.CountUrlaubstage(UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter]));
UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter].TageKrankheit = ServiceFacade.DoEmployeeServiceSync(s => s.CountKrankheitstage(UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter]));
}
//if (neuLaden == true)
//{
// var tageUrlaub = ServiceFacade.DoEmployeeServiceSync(s => s.CountUrlaubstage(UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter]));
// UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter].TageUrlaub = ServiceFacade.DoEmployeeServiceSync(s => s.CountUrlaubstage(UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter]));
// UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter].TageKrankheit = ServiceFacade.DoEmployeeServiceSync(s => s.CountKrankheitstage(UrlaubsplanerRootObj.AlleAbwesenheitsInformationDCs[counter]));
//}
#region auskommentiert
//AbwesenheitsInformationDC infoDC = new AbwesenheitsInformationDC

View File

@@ -17,6 +17,7 @@ using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;

View File

@@ -40,6 +40,7 @@ namespace BeWo.View.Detail.Report
private Dictionary<long, List<AbsenceTimeDC>> _AbsenceTimesDict;
private Dictionary<long, List<OvertimeDC>> _OverTimesDict;
private Dictionary<long, DienstInfoDC> _DienstProOidDict; // Claude: schneller Pausen-Lookup statt Listen-Suche pro Eintrag
private CompactWohnheimDC _AuswahlWohnheim;
private DienstZeileDC _AuswahlDienstZeileDC;
@@ -944,6 +945,11 @@ namespace BeWo.View.Detail.Report
{
_AuswahlDienstZeileDC.RemoveDienst(datum.Day);
DeleteFromList(eintrag, null);
// Claude: Beim Bearbeiten (alter Eintrag wird durch neuen ersetzt) die alte Dauer vom Ist/Saldo abziehen,
// sonst wird sie doppelt gezählt. Beim Löschen (dienst.Oid == -1) passiert der Abzug weiter unten.
if (dienst.Oid != -1)
CheckEintragAnAbwesenheitstagen(eintrag, null, employee, false);
}
}
if (dienst.Oid == -1)
@@ -1076,6 +1082,11 @@ namespace BeWo.View.Detail.Report
{
_AuswahlDienstZeileDC.RemoveDienst(datum.Day);
DeleteFromList(null, vertretung);
// Claude: Beim Bearbeiten (alte Vertretung wird durch neue ersetzt) die alte Dauer vom Ist/Saldo abziehen,
// sonst wird sie doppelt gezählt. Beim Löschen (dienst.Oid == -1) passiert der Abzug weiter unten.
if (dienst.Oid != -1)
CheckEintragAnAbwesenheitstagen(null, vertretung, employee, false);
}
}
if (dienst.Oid == -1)
@@ -1805,12 +1816,12 @@ namespace BeWo.View.Detail.Report
if (eintraegeEinerWoche != null)
{
foreach (var eintrag in eintraegeEinerWoche)
stundenWoche.Add(eintrag.DauerInStunden);
stundenWoche.Add(DienstInfoDC.DauerAbzueglichPause(eintrag.DauerInStunden, eintrag.DienstOid, _DienstProOidDict)); // Claude: Pause abziehen
}
if (vertretungenEinerWoche != null)
{
foreach (var vertretung in vertretungenEinerWoche)
stundenWoche.Add(vertretung.DauerInStunden);
stundenWoche.Add(DienstInfoDC.DauerAbzueglichPause(vertretung.DauerInStunden, vertretung.DienstOid, _DienstProOidDict)); // Claude: Pause abziehen
}
if (ueberstundenEinerWoche != null)
{
@@ -2120,7 +2131,7 @@ namespace BeWo.View.Detail.Report
{
if (tage.Contains(e.Datum))
{
res.Add(e.DauerInStunden * -1); // Abzug von Wochen-Ist
res.Add(DienstInfoDC.DauerAbzueglichPause(e.DauerInStunden, e.DienstOid, _DienstProOidDict) * -1); // Abzug von Wochen-Ist // Claude: gleicher Pausenabzug wie beim Aufaddieren
//_DienstplanerRootObj.MonatsZusammenfassung // Abzug von Monats-Ist
// .First(z => z.Employee.EmployeeOid == e.EmployeeOid).Ist -= Convert.ToDecimal(e.DauerInStunden);
}
@@ -2132,7 +2143,7 @@ namespace BeWo.View.Detail.Report
{
if (tage.Contains(v.Datum))
{
res.Add(v.DauerInStunden * -1); // Abzug von Wochen-Ist
res.Add(DienstInfoDC.DauerAbzueglichPause(v.DauerInStunden, v.DienstOid, _DienstProOidDict) * -1); // Abzug von Wochen-Ist // Claude: gleicher Pausenabzug wie beim Aufaddieren
//_DienstplanerRootObj.MonatsZusammenfassung // Abzug von Monats-Ist
// .First(z => z.Employee.EmployeeOid == v.EmployeeOid).Ist -= Convert.ToDecimal(v.DauerInStunden);
}
@@ -2237,6 +2248,9 @@ namespace BeWo.View.Detail.Report
}
_OverTimesDict = overtimeTemp;
// Claude: Lookup-Dictionary für den Pausenabzug einmalig aufbauen
_DienstProOidDict = DienstInfoDC.BuildDienstProOidDictionary(_DienstplanerRootObj.AlleDienste);
_GridControl.ItemsSource = _DienstplanerRootObj.DienstZeilenListe;
}
@@ -2572,6 +2586,10 @@ namespace BeWo.View.Detail.Report
}
private List<DienstplanerMonthlySummaryDC> CheckEintragAnAbwesenheitstagen(DienstEintragDC eintrag, DienstvertretungDC vertretung, EmployeeDC employee, bool plus)
{
// Claude: Pause des Dienstes von der Dauer abziehen, damit Ist/Saldo beim Eintragen/Löschen genauso berechnet werden wie beim Neuladen (BerechneSollSaldoUndIst)
decimal dauerEintrag = eintrag != null ? Convert.ToDecimal(DienstInfoDC.DauerAbzueglichPause(eintrag.DauerInStunden, eintrag.DienstOid, _DienstProOidDict)) : 0m;
decimal dauerVertretung = vertretung != null ? Convert.ToDecimal(DienstInfoDC.DauerAbzueglichPause(vertretung.DauerInStunden, vertretung.DienstOid, _DienstProOidDict)) : 0m;
if (!_DienstplanerRootObj.EnableDiensteAnFeiertagen)
{
if (eintrag != null)
@@ -2584,13 +2602,13 @@ namespace BeWo.View.Detail.Report
{
if (plus)
{
item.Ist += Convert.ToDecimal(eintrag.DauerInStunden);
item.Saldo += Convert.ToDecimal(eintrag.DauerInStunden);
item.Ist += dauerEintrag; // Claude: Dauer abzüglich Pause
item.Saldo += dauerEintrag;
}
else
{
item.Ist -= Convert.ToDecimal(eintrag.DauerInStunden);
item.Saldo -= Convert.ToDecimal(eintrag.DauerInStunden);
item.Ist -= dauerEintrag;
item.Saldo -= dauerEintrag;
}
}
@@ -2607,13 +2625,13 @@ namespace BeWo.View.Detail.Report
{
if (plus)
{
item.Ist += Convert.ToDecimal(vertretung.DauerInStunden);
item.Saldo += Convert.ToDecimal(vertretung.DauerInStunden);
item.Ist += dauerVertretung; // Claude: Dauer abzüglich Pause
item.Saldo += dauerVertretung;
}
else
{
item.Ist -= Convert.ToDecimal(vertretung.DauerInStunden);
item.Saldo -= Convert.ToDecimal(vertretung.DauerInStunden);
item.Ist -= dauerVertretung;
item.Saldo -= dauerVertretung;
}
}
}
@@ -2631,13 +2649,13 @@ namespace BeWo.View.Detail.Report
{
if (plus)
{
item.Ist += Convert.ToDecimal(eintrag.DauerInStunden);
item.Saldo += Convert.ToDecimal(eintrag.DauerInStunden);
item.Ist += dauerEintrag; // Claude: Dauer abzüglich Pause
item.Saldo += dauerEintrag;
}
else
{
item.Ist -= Convert.ToDecimal(eintrag.DauerInStunden);
item.Saldo -= Convert.ToDecimal(eintrag.DauerInStunden);
item.Ist -= dauerEintrag;
item.Saldo -= dauerEintrag;
}
}
@@ -2651,13 +2669,13 @@ namespace BeWo.View.Detail.Report
{
if (plus)
{
item.Ist += Convert.ToDecimal(vertretung.DauerInStunden);
item.Saldo += Convert.ToDecimal(vertretung.DauerInStunden);
item.Ist += dauerVertretung; // Claude: Dauer abzüglich Pause
item.Saldo += dauerVertretung;
}
else
{
item.Ist -= Convert.ToDecimal(vertretung.DauerInStunden);
item.Saldo -= Convert.ToDecimal(vertretung.DauerInStunden);
item.Ist -= dauerVertretung;
item.Saldo -= dauerVertretung;
}
}
}

View File

@@ -14,6 +14,7 @@ using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Translation;

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.Services;
using BS.Shared.Translation;
using DevExpress.Xpf.RichEdit;

View File

@@ -1757,10 +1757,15 @@ namespace BeWo.View.Detail
{
var control = new RatingEditView();
control.InitView(vm);
var height = this.ActualHeight - 50;
if (height < 600)
{
height = 600;
}
var beWoWindow = new BeWoWindow
{
rootGroupBox = { Header = "Bewertung bearbeiten" },
Height = this.Height,
Height = height,
Width = 1000,
MinWidth = 550,
WindowStartupLocation = WindowStartupLocation.CenterOwner,

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Translation;
@@ -70,7 +71,7 @@ namespace BeWo.View.Detail
urlaubskonto = new List<UrlaubskontoDarstellungDC>();
urlaubskonto.Add(new UrlaubskontoDarstellungDC()
{
Erlaeuterung = "Es existiert kein Vertrag für ausgewähltes Jahr",
Erlaeuterung = "Es existiert kein Vertrag für das ausgewählte Jahr",
});
button_openLeaveDayDialogue.Visibility = Visibility.Collapsed;
}

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Translation;

View File

@@ -5,6 +5,7 @@ using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.View.Detail.Zeiterfassung

View File

@@ -1738,7 +1738,7 @@
<ai1:VoiceToTextButtonControl
Margin="12,0,0,0"
Margin="6,0,0,0"
TargetTextBox="{Binding ElementName=dokumentationsTextBox}"
ToolTip="Spracheingabe und Transkription starten" />
</StackPanel>
@@ -2655,7 +2655,7 @@
Width="70"
AllowEditing="False"
FieldName="HatUnterschriftImage"
Header="Unterschrift"
Header="Einzelunterschrift"
IsEnabled="False"
Visible="False">
<dxg:GridColumn.EditSettings>

View File

@@ -2314,6 +2314,7 @@ namespace BeWo.View.Detail.Zeiterfassung
if (ViewModel != null)
{
ViewModel.IsGroupBooking = true;
ViewModel.IsMultiBooking = false;
}
supportConceptSelectionControl.Visibility = Visibility.Collapsed;
@@ -2341,6 +2342,11 @@ namespace BeWo.View.Detail.Zeiterfassung
SelectedItemChanged(
SupportConceptService.CreateFlatSupportConceptItem(multiSupportConceptControl.SelectedItem, null));
if (multiSupportConceptControl.SelectedSupportConcepts != null && multiSupportConceptControl.SelectedSupportConcepts.Count > 0)
{
ViewModel.UpdateGroupServiceAccountings(multiSupportConceptControl.SelectedSupportConcepts);
}
}
private void ChkGroupBooking_Unchecked(object sender, RoutedEventArgs e)
@@ -2383,6 +2389,7 @@ namespace BeWo.View.Detail.Zeiterfassung
if (ViewModel != null)
{
ViewModel.IsMultiBooking = true;
ViewModel.IsGroupBooking = false;
}
supportConceptSelectionControl.Visibility = Visibility.Collapsed;
@@ -2409,6 +2416,10 @@ namespace BeWo.View.Detail.Zeiterfassung
SelectedItemChanged(
SupportConceptService.CreateFlatSupportConceptItem(multiSupportConceptControl.SelectedItem, null));
if (multiSupportConceptControl.SelectedSupportConcepts != null && multiSupportConceptControl.SelectedSupportConcepts.Count > 0)
{
ViewModel.UpdateGroupServiceAccountings(multiSupportConceptControl.SelectedSupportConcepts);
}
}
private void ChkMultiBooking_Unchecked(object sender, RoutedEventArgs e)
@@ -2470,6 +2481,26 @@ namespace BeWo.View.Detail.Zeiterfassung
ButtonZeiterfassungErstellen.Visibility = BeWoApp.AppSettings.ShowKlientenBetreuungszeiten ? Visibility.Visible : Visibility.Collapsed;
}
SetRebookingButtonVisibility();
RevalidateNotice(); // Claude
}
// Claude: Der Klientenbezug entscheidet, ob die Dokumentation Pflichtfeld ist
// (ValidationRules.EmptyNoticeInNewServiceRecordsAllowed). Beim Umschalten der CheckBox
// muss das Notice-Binding neu bewertet werden, sonst bleibt ein bereits angezeigter
// Validierungsfehler stehen bzw. ein neu entstandener wird nicht angezeigt.
private void RevalidateNotice()
{
if (dokumentationsTextBox == null)
{
return;
}
var lExpression = dokumentationsTextBox.GetBindingExpression(TextBox.TextProperty);
if (lExpression != null)
{
lExpression.UpdateSource();
}
}
private void ChkWithClient_Unchecked(object sender, RoutedEventArgs e)
@@ -2498,6 +2529,8 @@ namespace BeWo.View.Detail.Zeiterfassung
}
SetRebookingButtonVisibility();
RevalidateNotice(); // Claude
}
//CB EINKOMMENTIEREN

View File

@@ -53,164 +53,6 @@
Text="{Binding LogicalFocus}" />
</Grid>
</TabItem>
<TabItem Header="Tests">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="20" />
<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" />
</Grid.RowDefinitions>
<Grid.Resources>
<ResourceDictionary>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="Height" Value="24" />
<Setter Property="Margin" Value="3" />
</Style>
</ResourceDictionary>
</Grid.Resources>
<Label Grid.Row="0">AiDesignsIconKIChatSchwarz2026</Label>
<ContentControl
Grid.Row="0"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIChatSchwarz2026}" />
<Button
Grid.Row="0"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIChatSchwarz2026}" />
<Label Grid.Row="1">AiDesignsIconKIChatSchwarzOrange2026</Label>
<ContentControl
Grid.Row="1"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIChatSchwarzOrange2026}" />
<Button
Grid.Row="1"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIChatSchwarzOrange2026}" />
<Label Grid.Row="2">AiDesignsIconKIChatWeiss2026</Label>
<Rectangle Fill="DarkGray" Grid.Row="2" Grid.Column="2"/>
<ContentControl
Grid.Row="2"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIChatWeiss2026}" />
<Button
Grid.Row="2"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIChatWeiss2026}" />
<Label Grid.Row="3">AiDesignsIconKIChatWeissOrange2026</Label>
<Rectangle Fill="DarkGray" Grid.Row="3" Grid.Column="2"/>
<ContentControl
Grid.Row="3"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIChatWeissOrange2026}" />
<Button
Grid.Row="3"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIChatWeissOrange2026}" />
<Label Grid.Row="4">AiDesignsIconKIFunktionSchwarz2026</Label>
<ContentControl
Grid.Row="4"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIFunktionSchwarz2026}" />
<Button
Grid.Row="4"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIFunktionSchwarz2026}" />
<Label Grid.Row="5">AiDesignsIconKIFunktionSchwarzGruen2026</Label>
<ContentControl
Grid.Row="5"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIFunktionSchwarzGruen2026}" />
<Button
Grid.Row="5"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIFunktionSchwarzGruen2026}" />
<Label Grid.Row="6">AiDesignsIconKIFunktionWeiss2026</Label>
<Rectangle Fill="DarkGray" Grid.Row="6" Grid.Column="2"/>
<ContentControl
Grid.Row="6"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIFunktionWeiss2026}" />
<Button
Grid.Row="6"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIFunktionWeiss2026}" />
<Label Grid.Row="7">AiDesignsIconKIFunktionWeissGruen2026</Label>
<Rectangle Fill="DarkGray" Grid.Row="7" Grid.Column="2"/>
<ContentControl
Grid.Row="7"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen2026}" />
<Button
Grid.Row="7"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen2026}" />
<Label Grid.Row="8">AiDesignsIconKIRefreshSchwarz2026</Label>
<ContentControl
Grid.Row="8"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIRefreshSchwarz2026}" />
<Button
Grid.Row="8"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIRefreshSchwarz2026}" />
<Label Grid.Row="9">AiDesignsIconKIRefreshSchwarzOrange2026</Label>
<ContentControl
Grid.Row="9"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIRefreshSchwarzOrange2026}" />
<Button
Grid.Row="9"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIRefreshSchwarzOrange2026}" />
<Label Grid.Row="10">AiDesignsIconKIRefreshWeiss2026</Label>
<Rectangle Fill="DarkGray" Grid.Row="10" Grid.Column="2"/>
<ContentControl
Grid.Row="10"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIRefreshWeiss2026}" />
<Button
Grid.Row="10"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIRefreshWeiss2026}" />
<Label Grid.Row="11">AiDesignsIconKIRefreshWeissOrange2026</Label>
<Rectangle Fill="DarkGray" Grid.Row="11" Grid.Column="2"/>
<ContentControl
Grid.Row="11"
Grid.Column="2"
Content="{StaticResource AiDesignsIconKIRefreshWeissOrange2026}" />
<Button
Grid.Row="11"
Grid.Column="4"
Content="{StaticResource AiDesignsIconKIRefreshWeissOrange2026}" />
</Grid>
</TabItem>
<TabItem Header="Logs" />
<TabItem Header="Configs" />
</TabControl>

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.Services;
using BS.Shared.Translation;
using DevExpress.Xpf.RichEdit;

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Translation;

View File

@@ -16,6 +16,7 @@ using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Translation;

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Translation;

View File

@@ -15,6 +15,7 @@ using BeWo.Core.Service;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Services;
using BS.Shared.Translation;

View File

@@ -8,6 +8,7 @@ using System;
using System.Linq;
using System.Windows.Media.Imaging;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.View.Navigation.Sorter;
using BS.Shared.DataContracts.Compact;

View File

@@ -41,7 +41,7 @@
x:FieldModifier="public"
MouseDoubleClick="RootGroupBox_OnMouseDoubleClick"
MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown"
Style="{DynamicResource PopUpWindowStyle2}">
Style="{DynamicResource PopUpWindowStyle}">
<GroupBox.CommandBindings>
<CommandBinding Command="ApplicationCommands.Close" Executed="CommandBinding_Close_Executed" />
<CommandBinding Command="ApplicationCommands.Save" Executed="CommandBinding_Save_Executed" />

View File

@@ -57,7 +57,7 @@ namespace BeWo.View.Windows
{
InitializeComponent();
//CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => Close()));
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => Close()));
if(ServiceFacade.IsWaiting())
StartWaiting();
@@ -169,7 +169,7 @@ namespace BeWo.View.Windows
public void Window_Closed(object sender, EventArgs e)
{
}
public void StartWaiting()

View File

@@ -8,6 +8,7 @@ namespace BeWo.ViewModel
{
public class AiConversationMessageVM : AbstractDCMapperVM<AiConversationMessageDC>
{
private bool _IsChecked;
private string _Message;
public AiConversationMessageVM(AiConversationMessageDC dc) : base(dc, dc.Oid is null)
@@ -15,6 +16,22 @@ namespace BeWo.ViewModel
}
public event EventHandler IsCheckedChanged;
public bool IsChecked
{
get { return _IsChecked; }
set
{
if (!AreDifferent(IsChecked, value))
return;
_IsChecked = value;
FirePropertyChanged(nameof(IsChecked));
IsCheckedChanged?.Invoke(this, EventArgs.Empty);
}
}
public string Message
{
get { return _Message; }
@@ -34,31 +51,6 @@ namespace BeWo.ViewModel
public int Duration => DataContract.Duration ?? 0;
public string DurationSec => ((double)Duration / 1000).ToString("0.#");
public DateTime Created => DataContract.Created;
public bool ShowMessage => DataContract.ShowMessage;
public string UsedPromptbausteinTitle => DataContract.UsedPromptbausteinTitle;
/// <summary>True, wenn die Nachricht mittels Promptbaustein erstellt wurde (Titel gecacht).</summary>
public bool HasUsedPromptbaustein => !string.IsNullOrWhiteSpace(UsedPromptbausteinTitle);
/// <summary>Steuert, ob der Prompt ausklappbar ist. False => Button disabled + Tooltip "Versteckt".</summary>
public bool ShowPrompt => DataContract.ShowPrompt;
/// <summary>Prompt-Text des verwendeten Promptbausteins (nur befüllt, wenn ShowPrompt true).</summary>
public string UsedPromptbausteinContent => DataContract.UsedPromptbausteinContent;
/// <summary>Hilfe-Link (OwnsoftRefLink) des verwendeten Ownsoft-Promptbausteins, sonst null.</summary>
public string OwnsoftRefLink => DataContract.OwnsoftRefLink;
/// <summary>Steuert, ob der (i)-Hilfe-Link neben der Nachricht angezeigt wird (vgl. AiPromptbausteinPromptVM.IsInfoVisible).</summary>
public bool IsInfoVisible => !string.IsNullOrWhiteSpace(OwnsoftRefLink);
/// <summary>Schrittnummer innerhalb der Routine (0-basiert), sonst null.</summary>
public int? StepCount => DataContract.StepCount;
/// <summary>Platzhalter für ausgeblendete Nachrichten: Promptbaustein-Titel, sonst Standardtext.</summary>
public string HiddenMessageText => string.IsNullOrWhiteSpace(UsedPromptbausteinTitle)
? "Nachricht ausgeblendet"
: UsedPromptbausteinTitle;
protected override void InitByDataContract(AiConversationMessageDC pDataContract)
{
@@ -71,5 +63,11 @@ namespace BeWo.ViewModel
return pDataContract;
}
public void SetIsChecked(bool value)
{
_IsChecked = value;
FirePropertyChanged(nameof(IsChecked));
}
}
}

View File

@@ -245,7 +245,7 @@ namespace BeWo.ViewModel
public AiPromptbausteinFolderVM Parent { get; set; }
public FontWeight FontWeight => !IsNew && (Parent is null || Parent.Parent is null) ? FontWeights.SemiBold : FontWeights.Medium;
public FontWeight FontWeight => !IsNew && Parent is null ? FontWeights.SemiBold : FontWeights.Medium;
public bool HasSubFolders => SubFolders is object && SubFolders.Count > 0;
public int TotalPromptCount

View File

@@ -7,6 +7,7 @@ using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;

View File

@@ -156,9 +156,11 @@ namespace BeWo.ViewModel
liste.DoForEach(f => f.Transaktionskassenbestand = 0);
var vorherige = liste.FirstOrDefault();
vorherige.Transaktionskassenbestand = Anfangsbestand ?? 0;
if (vorherige != null)
{
vorherige.Transaktionskassenbestand = Anfangsbestand ?? 0;
foreach (var transaktion in liste)
{
transaktion.Transaktionskassenbestand = vorherige.Transaktionskassenbestand + transaktion.Betrag*(transaktion.Zahlungstyp.Enum == Zahlungstyp.Auszahlung ? -1 : 1);

View File

@@ -7,6 +7,7 @@ using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using System.Collections.Generic;
using BS.Shared.Core;
using System.Windows;
namespace BeWo.ViewModel

View File

@@ -10,7 +10,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace BeWo.ViewModel.Controls.AI
{
@@ -30,7 +29,6 @@ namespace BeWo.ViewModel.Controls.AI
private AiChatButtonState buttonState;
public AiActionType ActionType { get; protected set; }
public string TooltipName { get; set; }
public bool IsFavoritenOpen { get; set; }
public List<AiMenuItemTemplate> AssistentCommands { get; protected set; }
@@ -59,7 +57,6 @@ namespace BeWo.ViewModel.Controls.AI
return;
FirePropertyChanged(nameof(IsContextSizeTooBig));
FirePropertyChanged(nameof(IsLoading));
FirePropertyChanged(nameof(CanSendNewMessage));
FirePropertyChanged(nameof(CanOpenConversation));
@@ -76,7 +73,6 @@ namespace BeWo.ViewModel.Controls.AI
public DelegateCommand OpenFavoritePromptsPopupCommand { get; protected set; }
public bool IsContextSizeTooBig => ButtonState == AiChatButtonState.Warning;
public bool IsLoading => ButtonState == AiChatButtonState.Loading;
public virtual bool CanSendNewMessage => ButtonState == AiChatButtonState.Normal;
public bool CanOpenConversation => ButtonState == AiChatButtonState.Normal || ButtonState == AiChatButtonState.Warning;
@@ -95,26 +91,6 @@ namespace BeWo.ViewModel.Controls.AI
OpenFavoritePromptsPopupCommand = new DelegateCommand(OpenFavoritePromptsPopup, () => CanSendNewMessage);
ButtonState = AiChatButtonState.Loading;
LoadModuleName();
}
public void LoadModuleName()
{
switch (ActionType)
{
case AiActionType.ServiceRecord:
TooltipName = "KI Zeiterfassung";
break;
case AiActionType.ServiceRecordConversation:
TooltipName = "Zeiterfassung";
break;
case AiActionType.ServiceRecordDocumentation:
TooltipName = "Dokumentationstext";
break;
default:
break;
}
}
public void CheckContextSize()
@@ -143,8 +119,7 @@ namespace BeWo.ViewModel.Controls.AI
else
ButtonState = AiChatButtonState.Warning;
},
(exp) => ButtonState = AiChatButtonState.Disabled,
false);
(exp) => ButtonState = AiChatButtonState.Disabled);
}
}
@@ -225,13 +200,8 @@ namespace BeWo.ViewModel.Controls.AI
public class AiMenuItemTemplate
{
public Geometry Icon { get; set; }
public string Icon { get; set; }
public string Name { get; set; }
public DelegateCommand<AiConversationMessageVM> Command { get; set; }
public AiMenuItemTemplate()
{
}
}
}

View File

@@ -7,8 +7,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
namespace BeWo.ViewModel.Controls.AI
{
@@ -56,13 +54,13 @@ namespace BeWo.ViewModel.Controls.AI
new AiMenuItemTemplate()
{
Command = new DelegateCommand<AiConversationMessageVM>(x => AddValue(x.Message)),
Icon = Application.Current.FindResource("Phosphor.RowsPlusTop") as Geometry,
Icon = null,
Name = "Anfügen"
},
new AiMenuItemTemplate()
{
Command = new DelegateCommand<AiConversationMessageVM>(x => ReplaceValue(x.Message)),
Icon = Application.Current.FindResource("Phosphor.Swap") as Geometry,
Icon = null,
Name = "Ersetzen"
},
};

View File

@@ -1,4 +1,5 @@
using BeWo.Validation;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;

View File

@@ -1,4 +1,5 @@
using BeWo.ViewModel.Wohnhilfe;
using BS.Shared.Core;
using BS.Shared.DataContracts.Wohnhilfe;
using DevExpress.Mvvm;
using System;

View File

@@ -1,4 +1,5 @@
using BeWo.Validation;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;

View File

@@ -8,6 +8,7 @@ using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.Extensions;

View File

@@ -5,6 +5,7 @@ using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;

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