Neues Release 3.30 erstellt mit Anpassung/Bugfixing der KI Funktionen

This commit is contained in:
2026-02-26 11:40:00 +01:00
parent f3f5676268
commit 8e75c9b472
21 changed files with 242 additions and 83 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -8,7 +8,7 @@
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Button x:Name="ButtonOpenTranskriptionView" Click="ButtonOpenTranskriptionView_Click"> <Button x:Name="ButtonOpenTranskriptionView" Click="ButtonOpenTranskriptionView_Click">
<Image Source="Icon_KI_Chat_Weiss_TEMP.png" <Image Source="/BeWoPlaner;component/Ressources/Icons/KI/Icon_KI_Chat_Weiss+Orange.png"
Width="22" Width="22"
Height="22" Height="22"
Margin="0,0,0,0"/> Margin="0,0,0,0"/>

View File

@@ -49,7 +49,7 @@ namespace BeWo.AI.Controls
{ {
get get
{ {
if (!BeWoApp.AppSettings.ShowAIVoice || String.IsNullOrEmpty(BeWoApp.LoggedOnEmployeeOwnChatCode)) if (!BeWoApp.AppSettings.ShowAIVoice || String.IsNullOrEmpty(BeWoApp.LoggedOnEmployeeOwnChatCode) || !BeWoApp.HasLoggedOnUserRight(BS.Shared.UserRightType.AiVoiceView))
{ {
return false; return false;
} }

View File

@@ -44,7 +44,7 @@
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Image Source="Icon_KI_Chat_Weiss_TEMP.png" <Image Source="/BeWoPlaner;component/Ressources/Icons/KI/Icon_KI_Chat_Weiss+Orange.png"
Width="32" Width="32"
Height="32" Height="32"
Margin="0,0,10,0"/> Margin="0,0,10,0"/>
@@ -182,7 +182,28 @@
</Ellipse> </Ellipse>
</StackPanel> </StackPanel>
<StackPanel
x:Name="PanelAiButtons"
HorizontalAlignment="Right"
Orientation="Horizontal"
Visibility="Collapsed">
<StackPanel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/BeWoPlaner;component/Styles/ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</StackPanel.Resources>
<Button
x:Name="btn_AiPromptbaustein"
Padding="0"
Command="{Binding OpenAiPromptSelectionCommand}"
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen}"
Style="{StaticResource PrimaryButton}" />
</StackPanel>
</StackPanel> </StackPanel>
<TextBox <TextBox
Style="{x:Null}" Style="{x:Null}"
x:Name="TextBoxErgebnis" x:Name="TextBoxErgebnis"

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Forms; using System.Windows.Forms;
@@ -16,12 +17,14 @@ using BeWo.View;
using BeWo.View.Controls; using BeWo.View.Controls;
using BeWo.ViewModel; using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel; using BeWo.ViewModel.ListViewModel;
using BeWo.ViewModel.View.AI;
using BS.Shared; using BS.Shared;
using BS.Shared.Core; using BS.Shared.Core;
using BS.Shared.DataContracts; using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Feature.AI.Functions.ServiceRecords;
using BS.Shared.Extensions; using BS.Shared.Extensions;
using BS.Shared.Translation; using BS.Shared.Translation;
using DevExpress.Mvvm;
using DevExpress.Utils; using DevExpress.Utils;
using DevExpress.Xpf.Editors; using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid; using DevExpress.Xpf.Grid;
@@ -37,13 +40,134 @@ namespace BeWo.AI.View
bool timerActive = false; bool timerActive = false;
AiVoiceDataDC currentVoiceData = null; AiVoiceDataDC currentVoiceData = null;
public ICommand OpenAiPromptSelectionCommand { get; set; }
public AiTranskriptionView() public AiTranskriptionView()
{ {
InitializeComponent(); InitializeComponent();
//InitAiPrompt();
} }
//private void InitAiPrompt()
//{
// var vm_doku = new AiPromptbausteinSelectionComplexViewModel(AiActionType.ServiceRecordDocumentation);
// vm_doku.PromptAccepted += PromptAccepted;
// OpenAiPromptSelectionCommand = new DelegateCommand(() =>
// {
// BeWoApp.MainControl.WindowService.Show(vm_doku);
// }, () => !string.IsNullOrWhiteSpace(TextBoxErgebnis.Text));
//}
//private void PromptAccepted(object sender, AiPromptbausteinPromptVM prompt)
//{
// if (prompt is null)
// throw new NotImplementedException();
// // 1. Information aufbereiten
// // 1.1 Prompt
// var prompt_oid = prompt.DataContract.Oid.Value;
// var prompt_version = prompt.DataContract.Version;
// // 1.2 Hilfeplan
// var support_concept = SelectedCustomerNode.SupportConceptTreeNodeDC.SupportConcept;
// var support_concept_oid = support_concept.SupportConceptOid;
// var support_concept_version = support_concept.SupportConceptVersion;
// // 1.3 Aktuelles Doku Feld
// var doku_feld = TextBoxErgebnis.Text;
// // 1.4 Sichtbaren Zeiterfassungseinträge
// var service_records = CurrentVisibleVMs;
// var sr_refs = service_records.Select(x => new BeWoRefDC(x.DataContract.ServiceRecordOid.Value, x.DataContract.ServiceRecordVersion));
// // 1.5 Costbearer
// var costbearer = SelectedCustomerNode.SupportConceptTreeNodeDC.CostBearer;
// var cb_oid = costbearer.CostBearerOid.Value;
// var cb_ver = costbearer.CostBearerVersion;
// // Service Aufruf
// var req = new AiFunctionDocRequest()
// {
// AiPromptbausteinPrompt = new BeWoRefDC(prompt_oid, prompt_version),
// SupportConcept = new BeWoRefDC(support_concept_oid, support_concept_version),
// ServiceRecords = sr_refs,
// CostBearer = new BeWoRefDC(cb_oid, cb_ver),
// Dokumentation = doku_feld,
// };
// ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.ExecuteAiFunctionServiceRecordDocumentation(req),
// callback =>
// {
// var viewModel = new AiPromptbausteinActionResultViewModel();
// viewModel.Result = callback.Result;
// viewModel.Accept_Button_Clicked += (s, e) =>
// {
// var sb = new StringBuilder();
// sb.AppendLine("AI Antwort:");
// sb.AppendLine(viewModel.Result);
// sb.AppendLine();
// sb.AppendLine("Original:");
// sb.AppendLine(AktuellerDokutext);
// var str = sb.ToString();
// var idx = _AiActionHistoryIndex;
// var count = _AiActionHistory.Count;
// if (count - 1 > idx)
// {
// _AiActionHistory.RemoveRange(idx + 1, count - idx - 1);
// }
// if (AktuellerDokutext != _AiActionHistory[_AiActionHistoryIndex])
// {
// _AiActionHistory.Add(AktuellerDokutext);
// _AiActionHistoryIndex++;
// }
// _AiActionHistory.Add(str);
// _AiActionHistoryIndex++;
// AktuellerDokutext = str;
// };
// viewModel.Replace_Button_Clicked += (s, e) =>
// {
// var str = viewModel.Result;
// var idx = _AiActionHistoryIndex;
// var count = _AiActionHistory.Count;
// if (count - 1 > idx)
// {
// _AiActionHistory.RemoveRange(idx + 1, count - idx - 1);
// }
// if (AktuellerDokutext != _AiActionHistory[_AiActionHistoryIndex])
// {
// _AiActionHistory.Add(AktuellerDokutext);
// _AiActionHistoryIndex++;
// }
// _AiActionHistory.Add(str);
// _AiActionHistoryIndex++;
// AktuellerDokutext = str;
// };
// viewModel.Retry_Button_Clicked += (s, e) =>
// {
// PromptAccepted(sender, prompt);
// };
// BeWoApp.MainControl.WindowService.Show(viewModel);
// }
// );
//}
public void InitView() public void InitView()
{ {
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -20,7 +20,7 @@
<ManifestKeyFile> <ManifestKeyFile>
</ManifestKeyFile> </ManifestKeyFile>
<ManifestCertificateThumbprint>8E3A8E81F1C6F67A1C6D239593544EA33D8AC6A7</ManifestCertificateThumbprint> <ManifestCertificateThumbprint>8E3A8E81F1C6F67A1C6D239593544EA33D8AC6A7</ManifestCertificateThumbprint>
<IsWebBootstrapper>false</IsWebBootstrapper> <IsWebBootstrapper>true</IsWebBootstrapper>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<ExpressionBlendVersion>3.0.1927.0</ExpressionBlendVersion> <ExpressionBlendVersion>3.0.1927.0</ExpressionBlendVersion>
<TargetFrameworkProfile> <TargetFrameworkProfile>
@@ -29,25 +29,26 @@
</FileUpgradeFlags> </FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion> <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation /> <UpgradeBackupLocation />
<PublishUrl>C:\publish\bewoplaner\</PublishUrl> <PublishUrl>D:\Projects\beyondsoft\BeWoPlaner\Publish\</PublishUrl>
<Install>true</Install> <Install>true</Install>
<InstallFrom>Disk</InstallFrom> <InstallFrom>Web</InstallFrom>
<UpdateEnabled>false</UpdateEnabled> <UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode> <UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval> <UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits> <UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically> <UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>true</UpdateRequired> <UpdateRequired>true</UpdateRequired>
<MapFileExtensions>false</MapFileExtensions> <MapFileExtensions>false</MapFileExtensions>
<InstallUrl>https://app.ownsoft.de/</InstallUrl>
<TargetCulture>de-DE</TargetCulture> <TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName> <ProductName>BeWoPlaner</ProductName>
<PublisherName>ownSoft GmbH</PublisherName> <PublisherName>ownSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.284</MinimumRequiredVersion> <MinimumRequiredVersion>2.0.1.290</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish> <CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage> <WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish> <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters> <TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>285</ApplicationRevision> <ApplicationRevision>291</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion> <ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut> <CreateDesktopShortcut>true</CreateDesktopShortcut>
@@ -3693,10 +3694,6 @@
<None Include="Scripts\src\SvcUtil.exe" /> <None Include="Scripts\src\SvcUtil.exe" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="AI\Controls\Icon_KI_Chat_Weiss_TEMP.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="AI\View\Icon_KI_Chat_Weiss_TEMP.png" />
<Resource Include="Ressources\Icons\KI\Icon_KI_Chat_Schw+Orange.png" /> <Resource Include="Ressources\Icons\KI\Icon_KI_Chat_Schw+Orange.png" />
<Resource Include="Ressources\Icons\KI\Icon_KI_Chat_Schw.png" /> <Resource Include="Ressources\Icons\KI\Icon_KI_Chat_Schw.png" />
<Resource Include="Ressources\Icons\KI\Icon_KI_Chat_Weiss+Orange.png" /> <Resource Include="Ressources\Icons\KI\Icon_KI_Chat_Weiss+Orange.png" />

View File

@@ -1,7 +1,7 @@
<?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"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\|D:\Projects\beyondsoft\BeWoPlaner\Publish45\</PublishUrlHistory> <PublishUrlHistory>D:\Projects\beyondsoft\BeWoPlaner\Publish\|C:\publish\bewoplaner\|publish\|D:\Projects\beyondsoft\BeWoPlaner\PublishTest\|D:\Projects\beyondsoft\BeWoPlaner\PublishDev\</PublishUrlHistory>
<InstallUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/test/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/</InstallUrlHistory> <InstallUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/test/|https://app.ownsoft.de/dev/|http://app.ownsoft.de/dev/|http://app.beyondsoft.de/dev/</InstallUrlHistory>
<SupportUrlHistory /> <SupportUrlHistory />
<UpdateUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/bewoplaner.application/</UpdateUrlHistory> <UpdateUrlHistory>https://app.ownsoft.de/|https://app.ownsoft.de/bewoplaner.application/</UpdateUrlHistory>

View File

@@ -56,7 +56,7 @@ namespace BeWo
public static LoginControl LoginControl; public static LoginControl LoginControl;
public static MainControl MainControl; public static MainControl MainControl;
public static string ShortVersion = "3.29"; public static string ShortVersion = "3.30";
public static string Version => BeWoAppInfo.BeWoAppVersion.ToString(); public static string Version => BeWoAppInfo.BeWoAppVersion.ToString();
public static int RenderTier = 0; public static int RenderTier = 0;
@@ -654,8 +654,10 @@ namespace BeWo
showHilfeplanBezeichnung = true; showHilfeplanBezeichnung = true;
AppSettings.AllowStorno = true; AppSettings.AllowStorno = true;
AppSettings.AllowXRechnung = true; AppSettings.AllowXRechnung = true;
//AppSettings.ShowAI = true;
//AppSettings.ShowAIInternal = true; AppSettings.ShowAI = true;
AppSettings.ShowAIVoice = true;
AppSettings.ShowWorktime = true; AppSettings.ShowWorktime = true;
AppSettings.ShowPersehImport = true; AppSettings.ShowPersehImport = true;
AppSettings.ShowWohnhilfe = true; AppSettings.ShowWohnhilfe = true;
@@ -778,9 +780,9 @@ namespace BeWo
//{ //{
// url += "/service45"; // url += "/service45";
//} //}
if (url.IndexOf("/service_ai") < 0) if (url.IndexOf("/service") < 0)
{ {
url += "/service_ai"; url += "/service";
} }
return new Uri(String.Format("https://{0}", url)); return new Uri(String.Format("https://{0}", url));

View File

@@ -14,9 +14,9 @@ namespace BeWo
static BeWoAppInfo() static BeWoAppInfo()
{ {
var baseVersion = new Version(BeWoApp.ShortVersion); var baseVersion = new Version(BeWoApp.ShortVersion);
var stage = BeWoClientReleaseStage.Sandbox; var stage = BeWoClientReleaseStage.Release;
var stageVersion = new Version("3.1"); var stageVersion = new Version("3.1");
var feature = BeWoClientFeature.AI; var feature = BeWoClientFeature.None;
BeWoAppVersion = new BeWoAppVersion(baseVersion, stage, stageVersion, feature); BeWoAppVersion = new BeWoAppVersion(baseVersion, stage, stageVersion, feature);
} }

View File

@@ -235,6 +235,11 @@ namespace BeWo.View.Detail.Zeiterfassung
} }
stackpanel_ai.DataContext = ViewModel; stackpanel_ai.DataContext = ViewModel;
if (!BeWoApp.AppSettings.ShowAI)
{
stackpanel_ai.Visibility = Visibility.Collapsed;
}
} }
private static void CheckRecursive(List<SupportConceptGoalDC> goalTree, bool wert) private static void CheckRecursive(List<SupportConceptGoalDC> goalTree, bool wert)

View File

@@ -1687,8 +1687,6 @@
Content="A-" Content="A-"
IsTabStop="False" IsTabStop="False"
TabIndex="999" /> TabIndex="999" />
<ai1:VoiceToTextButtonControl Margin="3" TargetTextBox="{Binding ElementName=dokumentationsTextBox}"/>
</DockPanel> </DockPanel>
<StackPanel <StackPanel
@@ -1724,6 +1722,8 @@
Command="{Binding OpenAiPromptSelectionCommand}" Command="{Binding OpenAiPromptSelectionCommand}"
Content="{StaticResource AiDesignsIconKIFunktionWeissGruen}" Content="{StaticResource AiDesignsIconKIFunktionWeissGruen}"
Style="{StaticResource PrimaryButton}" /> Style="{StaticResource PrimaryButton}" />
<ai1:VoiceToTextButtonControl TargetTextBox="{Binding ElementName=dokumentationsTextBox}"/>
</StackPanel> </StackPanel>
<Button <Button
@@ -3315,6 +3315,7 @@
<ColumnDefinition Width="auto" /> <ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel <StackPanel
x:Name="PanelConversationButton"
Margin="0" Margin="0"
VerticalAlignment="Center" VerticalAlignment="Center"
Orientation="Horizontal"> Orientation="Horizontal">

View File

@@ -351,6 +351,11 @@ namespace BeWo.View.Detail.Zeiterfassung
Func<bool> canExecuteAi = () => ViewModel.IsAiButtonVisible; Func<bool> canExecuteAi = () => ViewModel.IsAiButtonVisible;
OpenAiWindowCommand = CommandFactory.GetAiViewCommand(OpenAiWindow, UserRightType.AiModuleView, canExecuteAi); OpenAiWindowCommand = CommandFactory.GetAiViewCommand(OpenAiWindow, UserRightType.AiModuleView, canExecuteAi);
OpenAiChatPromptWindowCommand = CommandFactory.GetAiViewCommand(OpenAiChatPromptWindow, UserRightType.AiModuleChatAdd, canExecuteAi); OpenAiChatPromptWindowCommand = CommandFactory.GetAiViewCommand(OpenAiChatPromptWindow, UserRightType.AiModuleChatAdd, canExecuteAi);
if (!BeWoApp.AppSettings.ShowAI)
{
btn_AiPromptbaustein.Visibility = Visibility.Collapsed;
}
} }
public ICommand OpenAiWindowCommand { get; set; } public ICommand OpenAiWindowCommand { get; set; }

View File

@@ -318,7 +318,7 @@
Header="{markup:Translate Ressource}" Header="{markup:Translate Ressource}"
Selected="Tabitem_Selected" /> Selected="Tabitem_Selected" />
</dxa:AccordionItem> </dxa:AccordionItem>
<dxa:AccordionItem Foreground="{StaticResource TabItemTextBrush}" Header="{markup:Translate KI Bereich}"> <dxa:AccordionItem Name="TabitemKIBereich" Foreground="{StaticResource TabItemTextBrush}" Header="{markup:Translate KI Bereich}">
<!--<dxa:AccordionItem <!--<dxa:AccordionItem
Name="TabitemAiPromptbausteine" Name="TabitemAiPromptbausteine"
Foreground="Black" Foreground="Black"

View File

@@ -82,9 +82,6 @@ namespace BeWo.View.Master
{ {
TabitemSbd.Visibility = Visibility.Collapsed; TabitemSbd.Visibility = Visibility.Collapsed;
} }
#if DEBUG
TabitemSbd.Visibility = Visibility.Visible;
#endif
if (BeWoApp.AppSettings.ShowDienstplanung) if (BeWoApp.AppSettings.ShowDienstplanung)
{ {
TabitemDienste.Visibility = Visibility.Visible; TabitemDienste.Visibility = Visibility.Visible;
@@ -98,14 +95,21 @@ namespace BeWo.View.Master
// TabitemOwnChatSettings.Visibility = Visibility.Collapsed; // TabitemOwnChatSettings.Visibility = Visibility.Collapsed;
//} //}
#if DEBUG
TabitemDienste.Visibility = Visibility.Visible;
#endif
if (!BeWoApp.AppSettings.ShowWohnhilfe) if (!BeWoApp.AppSettings.ShowWohnhilfe)
{ {
TabitemFalldaten.Visibility = Visibility.Collapsed; TabitemFalldaten.Visibility = Visibility.Collapsed;
} }
if (!BeWoApp.AppSettings.ShowAI)
{
TabitemKIBereich.Visibility = Visibility.Collapsed;
}
#if DEBUG
TabitemSbd.Visibility = Visibility.Visible;
TabitemDienste.Visibility = Visibility.Visible;
TabitemKIBereich.Visibility = Visibility.Visible;
#endif
#endregion #endregion
} }

View File

@@ -234,7 +234,7 @@ namespace BeWo.ViewModel.ListViewModel
} }
public string AktuellerEditDokutext public string AktuellerEditDokutext
{ {
get => EditVM.Notice; get => EditVM?.Notice;
set set
{ {
EditVM.Notice = value; EditVM.Notice = value;
@@ -243,7 +243,7 @@ namespace BeWo.ViewModel.ListViewModel
} }
} }
public bool IsAiButtonVisible => SelectedCustomerNode is object; public bool IsAiButtonVisible => SelectedCustomerNode is object && (BeWoApp.AppSettings.ShowAI || BeWoApp.AppSettings.ShowAIVoice);
public bool IsUndoButtonVisible => _AiActionHistoryIndex > 0; public bool IsUndoButtonVisible => _AiActionHistoryIndex > 0;
public bool IsRedoButtonVisible => _AiActionHistoryIndex < _AiActionHistory.Count - 1; public bool IsRedoButtonVisible => _AiActionHistoryIndex < _AiActionHistory.Count - 1;
@@ -466,21 +466,31 @@ namespace BeWo.ViewModel.ListViewModel
public void UpdateViewYearFilter(IEnumerable<ServiceRecordVM> enumerable) public void UpdateViewYearFilter(IEnumerable<ServiceRecordVM> enumerable)
{ {
AiConversationButtonState = AiConversationButtonState.Loading;
if (BeWoApp.AppSettings.ShowAI)
{
AiConversationButtonState = AiConversationButtonState.Loading;
var context = GetVisibleInformationReferences(enumerable);
if (context != null)
{
var context2 = context.ToDictionary(kv => kv.Key, kv => kv.Value.ToList());
var context = GetVisibleInformationReferences(enumerable); ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.CheckContextSize(AiContextType.ServiceRecord, context2, null),
isValid =>
var context2 = context.ToDictionary(kv => kv.Key, kv => kv.Value.ToList()); {
if (isValid)
ServiceFacade.DoAiEnhancedServiceAsnyc(x => x.CheckContextSize(AiContextType.ServiceRecord, context2, null), AiConversationButtonState = AiConversationButtonState.Normal;
isValid => else
{ AiConversationButtonState = AiConversationButtonState.Warning;
if (isValid) },
AiConversationButtonState = AiConversationButtonState.Normal; (exp) => AiConversationButtonState = AiConversationButtonState.Disabled);
else }
AiConversationButtonState = AiConversationButtonState.Warning;
}, }
(exp) => AiConversationButtonState = AiConversationButtonState.Disabled); else
{
AiConversationButtonState = AiConversationButtonState.Hidden;
}
} }
public Dictionary<TableID, long[]> GetVisibleInformationReferences(IEnumerable<ServiceRecordVM> selected_records) public Dictionary<TableID, long[]> GetVisibleInformationReferences(IEnumerable<ServiceRecordVM> selected_records)
@@ -489,7 +499,7 @@ namespace BeWo.ViewModel.ListViewModel
var hello = current?.SupportConceptTreeNodeDC; var hello = current?.SupportConceptTreeNodeDC;
var sr = ServiceRecordsForSelectedCustomer; var sr = ServiceRecordsForSelectedCustomer;
if (current is null) if (current is null || hello is null)
return null; return null;
var oids = new List<long>(); var oids = new List<long>();

View File

@@ -102,6 +102,7 @@ namespace BeWo.ViewModel
{(r) => r == UserRightType.AiChatInZeiterfassung, BeWoApp.AppSettings.ShowAI}, {(r) => r == UserRightType.AiChatInZeiterfassung, BeWoApp.AppSettings.ShowAI},
{IsAiModuleRight, BeWoApp.AppSettings.ModuleAiEnabled || BeWoApp.AppSettings.ShowAI}, {IsAiModuleRight, BeWoApp.AppSettings.ModuleAiEnabled || BeWoApp.AppSettings.ShowAI},
{IsAiModuleSettingRight, BeWoApp.AppSettings.ModuleAiSettingsEnabled}, {IsAiModuleSettingRight, BeWoApp.AppSettings.ModuleAiSettingsEnabled},
{(r) => r == UserRightType.AiVoiceView, BeWoApp.AppSettings.ShowAIVoice},
}; };
public List<UserRightType> PossibleRights public List<UserRightType> PossibleRights

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"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<UseIISExpress>false</UseIISExpress> <UseIISExpress>false</UseIISExpress>

View File

@@ -191,15 +191,9 @@ namespace BeWo.Data.Security
if (isRightVersion322(r)) if (isRightVersion322(r))
return "3.22"; return "3.22";
if (isRightVersion324(r))
return "3.24";
if (isRightVersion326(r))
return "3.26";
if (isRightVersion329(r)) if (isRightVersion329(r))
return "3.29"; return "3.29";
if (r == UserRightType.KalenderInAbwesenheitenUebernehmen) if (isRightVersion330(r))
return "3.30"; return "3.30";
return BASE_VERSION; return BASE_VERSION;
} }
@@ -224,19 +218,6 @@ namespace BeWo.Data.Security
} }
private static bool isRightVersion324(UserRightType r)
{
return r == UserRightType.AiModuleView
|| r == UserRightType.AiModuleChatAdd
|| r == UserRightType.AiModuleChatDelete
|| r == UserRightType.AiModuleChatEdit;
}
private static bool isRightVersion326(UserRightType r)
{
return r == UserRightType.AiModuleChatClone
|| r == UserRightType.AiModuleViewSetting;
}
private static bool isRightVersion329(UserRightType r) private static bool isRightVersion329(UserRightType r)
{ {
@@ -244,13 +225,21 @@ namespace BeWo.Data.Security
|| r == UserRightType.Employee_AllowEditOvertimes; || r == UserRightType.Employee_AllowEditOvertimes;
} }
private static bool isRightVersion328(UserRightType r) private static bool isRightVersion330(UserRightType r)
{ {
return r == UserRightType.AiModulePromptbausteineAdd return r == UserRightType.KalenderInAbwesenheitenUebernehmen
|| r == UserRightType.AiModuleView
|| r == UserRightType.AiModuleChatClone
|| r == UserRightType.AiModuleViewSetting
|| r == UserRightType.AiModuleChatAdd
|| r == UserRightType.AiModuleChatDelete
|| r == UserRightType.AiModuleChatEdit
|| r == UserRightType.AiModulePromptbausteineAdd
|| r == UserRightType.AiModulePromptbausteineEdit || r == UserRightType.AiModulePromptbausteineEdit
|| r == UserRightType.AiModulePromptbausteineRemove || r == UserRightType.AiModulePromptbausteineRemove
|| r == UserRightType.AiModulePromptbausteineSeeAll || r == UserRightType.AiModulePromptbausteineSeeAll
|| r == UserRightType.AiModulePromptbausteineView; || r == UserRightType.AiModulePromptbausteineView
|| r == UserRightType.AiVoiceView;
} }
} }
} }

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup> <PropertyGroup>
<NameOfLastUsedPublishProfile>C:\Projects\Bewo\BeWo - Main\Host\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile> <NameOfLastUsedPublishProfile>C:\Projects\Bewo\BeWo - Main\Host\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>

View File

@@ -70,7 +70,7 @@ namespace BeWo.Service.Plugins
//t = "5351926758"; // Viva a Vida //t = "5351926758"; // Viva a Vida
//t = "2215396183"; // Diakonie Remscheid Lennep //t = "2215396183"; // Diakonie Remscheid Lennep
//t = "5157599087"; // SHG Schwerte //t = "5157599087"; // SHG Schwerte
//t = "4526293996"; // Fortis t = "4526293996"; // Fortis
//t = "3647969417"; // Caritas Bottrop //t = "3647969417"; // Caritas Bottrop
//t = "3057313346"; // SSB Mainz //t = "3057313346"; // SSB Mainz
//t = "6246287823"; // BeWo Alsdorf //t = "6246287823"; // BeWo Alsdorf
@@ -85,7 +85,7 @@ namespace BeWo.Service.Plugins
//t = "4867997795"; // ADiK Kleve //t = "4867997795"; // ADiK Kleve
//t = "3184859776"; // Sergej Becker //t = "3184859776"; // Sergej Becker
//t = "7752610643"; // BWK Gbr //t = "7752610643"; // BWK Gbr
t = "3785623125"; // Betreuwo //t = "3785623125"; // Betreuwo
//t = "7130228334"; // LH Borken //t = "7130228334"; // LH Borken
//t = "4209820830"; // VKM Hamm //t = "4209820830"; // VKM Hamm
//t = "5700328131"; // Betreutes Wohnen St. Ludgerus Essen-Werden //t = "5700328131"; // Betreutes Wohnen St. Ludgerus Essen-Werden
@@ -120,7 +120,7 @@ namespace BeWo.Service.Plugins
//t = "3536719736"; // BeWo Stefanie Schäfer (BeWoKerpen) //t = "3536719736"; // BeWo Stefanie Schäfer (BeWoKerpen)
//t = "7739670213"; // SPZ Leverkusen //t = "7739670213"; // SPZ Leverkusen
//t = "3341456098"; // Hilfe Daheim (früher BeWo Schillinger) //t = "3341456098"; // Hilfe Daheim (früher BeWo Schillinger)
t = "4271389563"; // Komm Mit //t = "4271389563"; // Komm Mit
//t = "5430005891"; // Marienhospital Eickel //t = "5430005891"; // Marienhospital Eickel
//t = "3265049248"; // Gerdas Pflegedienst //t = "3265049248"; // Gerdas Pflegedienst
//t = "1549622397"; // Kontakt und Krisenhilfe //t = "1549622397"; // Kontakt und Krisenhilfe
@@ -185,7 +185,7 @@ namespace BeWo.Service.Plugins
//t = "5260936181"; // LORI //t = "5260936181"; // LORI
//t = "1931553444"; // HIBA //t = "1931553444"; // HIBA
//t = "7185338722"; // BeWo Walz & Paiva //t = "7185338722"; // BeWo Walz & Paiva
t = "3196643272"; // Betreutes Wohnen Lisa Wöll //t = "3196643272"; // Betreutes Wohnen Lisa Wöll
//t = "3432911735"; // Caritas Günzburg - Neu Ulm //t = "3432911735"; // Caritas Günzburg - Neu Ulm
//t = "2591682148"; // Humanitas //t = "2591682148"; // Humanitas
//t = "9805564204"; // LeWo Aachen //t = "9805564204"; // LeWo Aachen
@@ -246,7 +246,7 @@ namespace BeWo.Service.Plugins
//t = "2697528233"; // Diakonisches Werk Wesel //t = "2697528233"; // Diakonisches Werk Wesel
//t = "2547623489"; // Sprungbrett //t = "2547623489"; // Sprungbrett
//t = "5076807716"; // Psychosoziale Hilfen Bochum e.V. //t = "5076807716"; // Psychosoziale Hilfen Bochum e.V.
t = "1601313225"; // Bella Donna //t = "1601313225"; // Bella Donna
//t = "5098825926"; // SAB GmbH //t = "5098825926"; // SAB GmbH
//t = "7808149226"; // BeWo Flex //t = "7808149226"; // BeWo Flex
//t = "7419804320"; // Gender Bewo //t = "7419804320"; // Gender Bewo
@@ -426,7 +426,7 @@ namespace BeWo.Service.Plugins
//t = "6652760522"; // BBI Rhein-Sieg gGmbH //t = "6652760522"; // BBI Rhein-Sieg gGmbH
//t = "6095094585"; // IBAHS e.V. //t = "6095094585"; // IBAHS e.V.
//t = "9453919144"; // Beratung am Stadtwald - Lisa Maria Reeh //t = "9453919144"; // Beratung am Stadtwald - Lisa Maria Reeh
t = "5960095273"; // Flexible Jugendarbeit Frankfurt (Oder) e.V. //t = "5960095273"; // Flexible Jugendarbeit Frankfurt (Oder) e.V.
return t; return t;
#else #else
if (MultitenancyOperationContextExt.Current != null) if (MultitenancyOperationContextExt.Current != null)