Merge branch 'master' into feature_rene_13_dakota

# Conflicts:
#	BeWo/BeWo.csproj
#	BeWo/ServiceProxy/Generated.cs
#	BeWo/ServiceProxy/ServiceFacade.cs
#	Data/Access/GenericDAO.cs
#	Data/Access/SearchDAO.cs
#	Data/Data.csproj
#	Service/DCEntityMapper/Compact/CompactCustomerDC_Customer.cs
#	Service/DCEntityMapper/Compact/CompactEmployeeDC_Employee.cs
#	Service/DCEntityMapper/Compact/CompactOrganisationDC_Organisation.cs
#	Service/DCEntityMapper/Compact/CompactPersonDC_Person.cs
#	Service/DCEntityMapper/Compact/CompactSupportConceptDC_SupportConcept.cs
#	Shared/Shared.csproj
This commit is contained in:
2025-05-12 12:21:33 +02:00
1350 changed files with 240283 additions and 81153 deletions

3
.gitignore vendored
View File

@@ -3,6 +3,9 @@
.editorconfig
DebugConfig.txt
Host/Multitenancy/demo.config
*.log.txt
*temp.txt
*.Secrets.config
# Folder
bin[Rr]elease/

View File

@@ -1,5 +1,6 @@
using BeWo.AI.View;
using BeWo.View;
using BeWo.View.Windows;
using BS.Shared;
using BS.Shared.Translation;
using System;

View File

@@ -1,18 +1,23 @@
<view:BeWoView x:Class="BeWo.AI.View.AiChatView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:view="clr-namespace:BeWo.View"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
mc:Ignorable="d" VerticalAlignment="Stretch" Focusable="True">
<view:BeWoView
x:Class="BeWo.AI.View.AiChatView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:view="clr-namespace:BeWo.View"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True"
mc:Ignorable="d">
<view:BeWoView.Resources>
<!--<Expander x:Name="ExpanderTemplate" IsExpanded="True">
<Expander.Header>
@@ -25,60 +30,120 @@
</Expander.Header>
</Expander>-->
</view:BeWoView.Resources>
<Grid Margin="0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid Margin="0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<dxlc:LayoutControl Orientation="Vertical" Padding="0">
<dxlc:LayoutGroup dxlc:LayoutControl.AllowVerticalSizing="True" Height="200">
<dxlc:LayoutControl Padding="0" Orientation="Vertical">
<dxlc:LayoutGroup Height="200" dxlc:LayoutControl.AllowVerticalSizing="True">
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="Einstellungen" HorizontalAlignment="Left" Click="btnSettings_Click"/>
<Popup Grid.Row="0" Grid.RowSpan="3" StaysOpen="True" Placement="MousePoint" Width="400" Height="300" x:Name="PopupTemplate">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}" Margin="2,2,2,2">
<Button
Grid.Row="0"
HorizontalAlignment="Left"
Click="btnSettings_Click"
Content="Einstellungen" />
<Popup
x:Name="PopupTemplate"
Grid.Row="0"
Grid.RowSpan="3"
Width="400"
Height="300"
Placement="MousePoint"
StaysOpen="True">
<Grid Margin="2,2,2,2" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="{t:Translate Datensatz Template}"></Label>
<TextBox x:Name="TextBoxTemplate" Grid.Row="1" MinHeight="60" AcceptsReturn="True" AcceptsTab="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"></TextBox>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Grid.Row="2" Content="Übernehmen" Click="btnSaveSettings_Click" Margin="3"/>
<Button Grid.Row="2" Content="Abbrechen" Click="btnCancelSettings_Click" Margin="3"/>
<Label Grid.Row="0" Content="{t:Translate Datensatz Template}" />
<TextBox
x:Name="TextBoxTemplate"
Grid.Row="1"
MinHeight="60"
AcceptsReturn="True"
AcceptsTab="True"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto" />
<StackPanel
Grid.Row="2"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button
Grid.Row="2"
Margin="3"
Click="btnSaveSettings_Click"
Content="Übernehmen" />
<Button
Grid.Row="2"
Margin="3"
Click="btnCancelSettings_Click"
Content="Abbrechen" />
</StackPanel>
</Grid>
</Popup>
<Label Grid.Row="1" Content="{t:Translate Formulieren Sie hier Ihre Anfrage}"></Label>
<TextBox x:Name="TextBoxAnfrage" Grid.Row="2" MinHeight="60" AcceptsReturn="True" AcceptsTab="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"></TextBox>
<Label Grid.Row="1" Content="{t:Translate Formulieren Sie hier Ihre Anfrage}" />
<TextBox
x:Name="TextBoxAnfrage"
Grid.Row="2"
MinHeight="60"
AcceptsReturn="True"
AcceptsTab="True"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto" />
</Grid>
</dxlc:LayoutGroup>
<dxlc:LayoutGroup dxlc:LayoutControl.AllowVerticalSizing="True">
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Content="{t:Translate Ergebnis}"></Label>
<TextBox x:Name="TextBoxErgebnis" Grid.Row="1" MinHeight="60" AcceptsReturn="True" AcceptsTab="True" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" TextWrapping="Wrap" ></TextBox>
<Label Content="{t:Translate Ergebnis}" />
<TextBox
x:Name="TextBoxErgebnis"
Grid.Row="1"
MinHeight="60"
AcceptsReturn="True"
AcceptsTab="True"
HorizontalScrollBarVisibility="Disabled"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
</Grid>
</dxlc:LayoutGroup>
</dxlc:LayoutControl>
<StackPanel Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center" Height="Auto" Margin="5,10,10,10" HorizontalAlignment="Right">
<Button x:Name="btnSend" Content="{t:Translate Absenden}" Margin="0,0,3,0" Height="25" Click="btnSend_Click"/>
<Button x:Name="btnClose" Content=" Schließen " Margin="0,0,3,0" Height="25" Click="btnClose_Click"/>
<StackPanel
Grid.Row="1"
Height="Auto"
Margin="5,10,10,10"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnSend"
Height="25"
Margin="0,0,3,0"
Click="btnSend_Click"
Content="{t:Translate Absenden}" />
<Button
x:Name="btnClose"
Height="25"
Margin="0,0,3,0"
Click="btnClose_Click"
Content=" Schließen " />
</StackPanel>
</Grid>
</view:BeWoView>

View File

@@ -94,6 +94,45 @@
</StartupObject>
</PropertyGroup>
<ItemGroup>
<Compile Include="Converter\Features\AiConversationMessageSystemConverter.cs" />
<Compile Include="Converter\NewlineConverter.cs" />
<Compile Include="ServiceProxy\GeneratedAiEnhancedService.cs" />
<Compile Include="Services\BeWoControlFactory.cs" />
<Compile Include="Services\BeWoWindowFactory.cs" />
<Compile Include="Services\BeWoWindowService.cs" />
<Compile Include="Services\IControlFactory.cs" />
<Compile Include="Services\IWindowFactory.cs" />
<Compile Include="Services\IWindowService.cs" />
<Compile Include="ViewModel\AiConfigVM.cs" />
<Compile Include="View\Detail\AI\AiConfigView.xaml.cs">
<DependentUpon>AiConfigView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\AI\AiConversationChatModalPopup.xaml.cs">
<DependentUpon>AiConversationChatModalPopup.xaml</DependentUpon>
</Compile>
<Compile Include="View\Document\RtfEditView.xaml.cs">
<DependentUpon>RtfEditView.xaml</DependentUpon>
</Compile>
<Compile Include="View\TemplateSelectors\AiConversationMessageTemplateSelector.cs" />
<Compile Include="View\Windows\AnimatedBeWoWindow.xaml.cs">
<DependentUpon>AnimatedBeWoWindow.xaml</DependentUpon>
</Compile>
<Page Include="View\Detail\AI\AiConfigView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\AI\AiConversationChatModalPopup.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Document\RtfEditView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Windows\AnimatedBeWoWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Reference Include="Blacklight.Wpf.Controls, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Lib\Blacklight.Wpf.Controls.dll</HintPath>
@@ -324,6 +363,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ControlStyles\WindowStyles.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\DataTemplates\ControlTemplates.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -332,6 +375,14 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\DataTemplates\WindowTemplates.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\Features\AIChatStyles.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\ModernOrangeBlack.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -410,6 +461,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\AI\AiConversationChatView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Detail\CustomerVermittlungArbeitView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -669,6 +724,10 @@
<Page Include="View\Document\DokumenteView.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</Page>
<Page Include="View\Master\AiConversationView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="View\Master\SchedulingMasterView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -1125,6 +1184,7 @@
<Compile Include="SchulbegleitenderDienst\WochenVertretung.cs" />
<Compile Include="Security\EncryptionUtils.cs" />
<Compile Include="ServiceProxy\ServiceFacadeExtension.cs" />
<Compile Include="ServiceProxy\GeneratedOperationsEnhancedService.cs" />
<Compile Include="UploadDialog.xaml.cs">
<DependentUpon>UploadDialog.xaml</DependentUpon>
</Compile>
@@ -1199,11 +1259,15 @@
<Compile Include="ViewModel\AdditionalServiceGroupOfPeopleVM.cs" />
<Compile Include="ViewModel\AdditionalServiceRegionVM.cs" />
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\AiConversationMessageVM.cs" />
<Compile Include="ViewModel\AiConversationVM.cs" />
<Compile Include="ViewModel\BaseVM.cs" />
<Compile Include="ViewModel\CustomerVermittlungArbeitVM.cs" />
<Compile Include="ViewModel\Light\GkvAbrechnungLightVM.cs" />
<Compile Include="ViewModel\Light\InvoiceBaseLightVM.cs" />
<Compile Include="ViewModel\ListViewModel\AbstractListVM.cs" />
<Compile Include="ViewModel\ListViewModel\AiConversationMessageListVM.cs" />
<Compile Include="ViewModel\ListViewModel\AiConversationListVM.cs" />
<Compile Include="ViewModel\ListViewModel\CustomerVermittlungArbeitListVM.cs" />
<Compile Include="ViewModel\ListViewModel\Light\GkvAbrechnungLightListVM.cs" />
<Compile Include="ViewModel\Wohnhilfe\CustomerWohnhilfeBereichBundVM.cs" />
@@ -1335,6 +1399,9 @@
<Compile Include="View\Detail\Administration\SoziotherapieSettingsView.xaml.cs">
<DependentUpon>SoziotherapieSettingsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\AI\AiConversationChatView.xaml.cs">
<DependentUpon>AiConversationChatView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\CustomerVermittlungArbeitView.xaml.cs">
<DependentUpon>CustomerVermittlungArbeitView.xaml</DependentUpon>
</Compile>
@@ -1378,7 +1445,7 @@
<Compile Include="View\HilfeplanImportView.xaml.cs">
<DependentUpon>HilfeplanImportView.xaml</DependentUpon>
</Compile>
<Compile Include="View\BeWoWindowBuilder.cs" />
<Compile Include="View\Windows\BeWoWindowBuilder.cs" />
<Compile Include="View\Controls\DPCtrlEmployeeContractTooltip.xaml.cs">
<DependentUpon>DPCtrlEmployeeContractTooltip.xaml</DependentUpon>
</Compile>
@@ -1549,6 +1616,9 @@
<Compile Include="View\Document\DokumenteView.xaml.cs">
<DependentUpon>DokumenteView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Master\AiConversationView.xaml.cs">
<DependentUpon>AiConversationView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Master\SchedulingMasterView.xaml.cs">
<DependentUpon>SchedulingMasterView.xaml</DependentUpon>
</Compile>
@@ -3447,7 +3517,13 @@
<ItemGroup>
<Resource Include="Ressources\Icons\chatbot.png" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Resource Include="Ressources\Icons\chatbot2.png" />
</ItemGroup>
<ItemGroup>
<Folder Include="Scripts\" />
<Folder Include="View\Controls\Popup\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>

View File

@@ -82,6 +82,7 @@
<conv:RadioBoolToIntConverter x:Key="RadioBoolToIntConverter" />
<conv:EnumTranslationConverter x:Key="EnumTranslationConverter" />
<conv:TooltipTextConverter x:Key="TooltipTextConverter" />
<conv:NewlineConverter x:Key="NewlineConverter" />
<conv:ValidationConverter x:Key="ValidationConverter" />
<conv:ValueConverterGroup x:Key="Validation2BrushConverter">
@@ -605,9 +606,13 @@
Grid.RowSpan="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Padding="5,5,5,5">
Padding="5,5,5,5"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<ContentPresenter
Margin="0,0,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"

View File

@@ -35,6 +35,7 @@ using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Scheduling;
using DevExpress.XtraScheduler;
using System.ServiceModel;
using BeWo.View.Windows;
namespace BeWo
{
@@ -44,54 +45,55 @@ namespace BeWo
public partial class BeWoApp : INotifyPropertyChanged
{
private static DebugMessageLogView _DebugMessageLogView;
private static FrameworkElement _lockedContent;
private static AppSettings _AppSettings;
private static CompactEmployeeDC _CompactLoggedOnEmployee;
private static EmployeeDC _LoggedOnEmployee;
private static UserDC _LoggedOnUser;
private static MandatorDC _Mandator;
private static bool _IsInDeveloperMode;
public static LoginControl LoginControl;
public static MainControl MainControl;
public static string ShortVersion = "3.24";
public static string Version = "Version 3.24";
public static string ShortVersion = "3.25";
public static string Version = "Version 3.25";
public static int RenderTier = 0;
public static bool IsInDesignMode = DesignerProperties.GetIsInDesignMode(new DependencyObject());
internal static string IpAddress = string.Empty;
internal static string Tenant = string.Empty;
internal static string ServerName = string.Empty;
internal static string UserName = string.Empty;
internal static string UserPassword = string.Empty;
internal static string TwoFactorPin = string.Empty;
internal static string chatServerURL = string.Empty;
private static AppSettings _AppSettings;
private static CompactEmployeeDC _CompactLoggedOnEmployee;
private static EmployeeDC _LoggedOnEmployee;
private static UserDC _LoggedOnUser;
private static MandatorDC _Mandator;
private static string _ServerAddress;
private static int _LockUITime = 30;
private static List<Window> OpenDevExpressEditForms = new List<Window>();
private static List<Window> OpenDevExpressEditForms = new List<Window>();
private static DocumentWatcher _DocumentWatcher;
internal static PasswortSecurityStrength PasswortStrength;
public static BeWoApp CurrentBeWo => Current as BeWoApp;
public static Dictionary<string, string> ICD10Diagnosis { get; set; }
public static bool IsInDeveloperMode {
get => _IsInDeveloperMode;
set
{
if(IsInDeveloperMode == value)
return;
_IsInDeveloperMode = value;
CurrentBeWo.FirePropertyChanged(nameof(IsInDeveloperMode));
}
}
public static EmployeeDC LoggedOnEmployee
{
get => _LoggedOnEmployee;
@@ -239,6 +241,18 @@ namespace BeWo
isServiceRecordNoticeMandatory = false;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsServiceRecordGoalMandatory);
if (val != null && val.Equals("1"))
{
AppSettings.IsServiceRecordGoalMandatory = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsServiceRecordRatingMandatory);
if (val != null && val.Equals("1"))
{
AppSettings.IsServiceRecordRatingMandatory = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.IsPasswordSecurityActiv);
if (val != null && val.Equals("1"))
{
@@ -420,7 +434,7 @@ namespace BeWo
{
showAnnualReport = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowCustomerDistanceFields);
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys. ShowCustomerDistanceFields);
if (val != null && val.Equals("1"))
{
showCustomerDistanceFields = true;
@@ -491,9 +505,9 @@ namespace BeWo
AppSettings.ShowKlientenBetreuungszeiten = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.FilterGroupServiceCategories);
if (val != null && val.Equals("0"))
if (val != null && val.Equals("1"))
{
AppSettings.FilterGroupServiceCategories = false;
AppSettings.FilterGroupServiceCategories = true;
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowInfoButtonInCalender);
if (val != null && val.Equals("1"))
@@ -527,7 +541,10 @@ namespace BeWo
_AppSettings.ServiceRecordAllowChangeHours = Convert.ToInt32(val);
}
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowGkvAbrechnung);
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowServicesOverviewHalfOrWholeMonth);
AppSettings.ShowServicesOverviewHalfOrWholeMonth = val?.Equals("1") ?? false;
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowGkvAbrechnung);
AppSettings.AllowGkvAbrechnung = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowWohnhilfe);
@@ -542,6 +559,9 @@ namespace BeWo
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.DontUpdateApprovalPeriodDates);
AppSettings.DontUpdateApprovalPeriodDates = val != null && val.Equals("1");
// REFACTOR: getUserSetting verwenden?
AppSettings.ModuleAiEnabled = getUserSetting(SettingsKeys.ModuleAiEnabled);
AppSettings.ModuleAiSettingsEnabled = getUserSetting(SettingsKeys.ModuleAiSettingsEnabled);
switch (_Mandator.BeWoClientType)
{
@@ -603,14 +623,18 @@ namespace BeWo
showDienstplanung = true;
showHilfeplanBezeichnung = true;
AppSettings.AllowStorno = true;
AppSettings.ShowAI = true;
AppSettings.ShowAIInternal = true;
//AppSettings.ShowAI = true;
//AppSettings.ShowAIInternal = true;
AppSettings.ShowWorktime = true;
AppSettings.ShowPersehImport = true;
AppSettings.ShowWohnhilfe = true;
//AppSettings.AllowGkvAbrechnung = true;
//AppSettings.AllowGkvAbrechnung = false;
//showInfoButtonInCalender = true;
IsInDeveloperMode = true;
//IsInDeveloperMode = false;
AppSettings.ModuleAiEnabled = true;
AppSettings.ModuleAiSettingsEnabled = false;
#endif
AppSettings.ShowDatevFields = showDatevFields;
@@ -651,6 +675,11 @@ namespace BeWo
BS.Shared.Settings.ApplicationSettings.SupportConceptExpirationLimitInMonths = AppSettings.HilfeplanAuslaufAuswahl;
if (IsInDeveloperMode)
{
applyDeveloperMode();
}
if(MainControl is object)
{
MainControl.UpdateMandator();
@@ -658,6 +687,18 @@ namespace BeWo
}
}
private static void applyDeveloperMode()
{
AppSettings.ModuleAiSettingsEnabled = true;
}
private static bool getUserSetting(string key)
{
var val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, key);
var allowed = val != null && val.Equals("1");
return allowed;
}
internal static Uri SiteOfOrigin
{
get
@@ -905,7 +946,11 @@ namespace BeWo
internal static void ShowError(string message, Exception ex, bool showSupportForm, bool showStacktrace)
{
if (MainControl != null)
if (MainControl?.CurrentAnimatedBeWoWindow is object)
{
MessageBox.Show(message + "\n\n" + ex);
}
else if (MainControl != null)
{
MainControl.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) (() =>
{
@@ -1345,6 +1390,10 @@ namespace BeWo
{
abc.Close();
}
else if (title.IndexOf("Fenster") >= 0)
{
abc.Close();
}
}
MainControl.HideCurrentModalViewWindows();

View File

@@ -1,10 +1,20 @@
<Window x:Class="BeWo.ConfirmDemoDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="240" Width="360" WindowStartupLocation="CenterScreen" WindowStyle="None" ResizeMode="NoResize" >
<Grid Background="{x:Null}" Margin="0,0,0,0">
<Border BorderThickness="1" Padding="5,5,5,5" BorderBrush="Black" Background="{DynamicResource LoginBackgroundColor}">
<Window
x:Class="BeWo.ConfirmDemoDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner"
Width="360"
Height="240"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
WindowStyle="None">
<Grid Margin="0,0,0,0" Background="{x:Null}">
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderBrush="Black"
BorderThickness="1">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -17,27 +27,63 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="45" Margin="7,7,0,0"/>
<Image
Grid.Row="0"
Height="45"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Grid Grid.Row="1" Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap" Margin="3" FontSize="14">WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!</TextBlock>
<Button x:Name="CountButton" Grid.Row="2" Grid.Column="1" Width="120" Margin="3,25,3,3" IsDefault="True" HorizontalAlignment="Right" Click="ButtonBase_OnClick">OK</Button>
<TextBlock
Margin="3"
FontSize="14"
TextWrapping="Wrap">
WICHTIG! Bitte tragen Sie keine echten Daten bei Ihren Tests ein, da es sich um einen öffentlichen Testzugang handelt, auf den jeder Zugriff hat!
</TextBlock>
<Button
x:Name="CountButton"
Grid.Row="2"
Grid.Column="1"
Width="120"
Margin="3,25,3,3"
HorizontalAlignment="Right"
Click="ButtonBase_OnClick"
IsDefault="True">
OK
</Button>
<!--<Button Grid.Row="2" Grid.Column ="2" Width="100" Margin="3" IsCancel="True" IsEnabled="False" HorizontalAlignment="Right">Abbrechen</Button>-->
</Grid>
</Grid>
</Border>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
x:Name="linkLine"
Margin="0,30,0,-30"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="340"
Y2="340" />
</Grid>
</Window>

View File

@@ -0,0 +1,32 @@
using BeWo.View.Navigation.Filter;
using BS.Shared.DataContracts;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using BeWo.ViewModel;
namespace BeWo.Converter.Features
{
public class AiConversationMessageSystemConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (BeWoApp.IsInDeveloperMode)
return value;
var ret = (value as IEnumerable<AiConversationMessageVM>).Where(vm => vm.Role != AiConversationMessageRole.System);
return ret;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace BeWo.Converter
{
public class NewlineConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value?.ToString()?
.Replace("\\r\\n", "\r\n")
.Replace("\\n", "\r\n")
.Replace("\\r", "\r\n");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -63,6 +63,7 @@ using BeWo.View.Detail.Zeiterfassung;
using DevExpress.Xpf.Scheduling;
using CommandBarStyle = DevExpress.Xpf.DocumentViewer.CommandBarStyle;
using ImageSource = System.Windows.Media.ImageSource;
using BS.Shared.Translation;
namespace BeWo.Core
{
@@ -1657,7 +1658,7 @@ namespace BeWo.Core
System.Diagnostics.Process.Start(mailCmd);
}
public static bool ValidateServiceRecordVM(ServiceRecordVM vm, SupportConceptStatisticsDC statistics, FlatSupportConceptTreeNodeDC node, bool withoutClient, CompactEmployeeDC selectedEmployee, List<long> employeeOids, List<long> cb2ScOids)
public static bool ValidateServiceRecordVM(ServiceRecordVM vm, SupportConceptStatisticsDC statistics, FlatSupportConceptTreeNodeDC node, bool withoutClient, CompactEmployeeDC selectedEmployee, List<long> employeeOids, List<long> cb2ScOids, int groupIndex)
{
var lValid = true;
@@ -1666,12 +1667,37 @@ namespace BeWo.Core
MessageBox.Show("Bitte wählen Sie eine Leistung aus. Sollten keine Leistungen für die gewählte Kategorie verfügbar sein, müssen diese zunächst in der Verwaltung angelegt werden.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
return false;
}
if(vm.GoalTree != null && vm.GoalTree.Count > 0 && (cb2ScOids == null || cb2ScOids.Count < 2))
if(vm.GoalTree != null && vm.GoalTree.Count > 0 && groupIndex == 1/* && (cb2ScOids == null || cb2ScOids.Count < 2)*/)
{
if(vm.SelectedGoals.Count == 0 && MessageBox.Show("Es wurde kein Ziel zugeordnet. Sind Sie sicher, dass Sie speichern möchten?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
if (vm.SelectedGoals.Count == 0)
{
return false;
if (BeWoApp.AppSettings.IsServiceRecordGoalMandatory)
{
MessageBox.Show(Translator.Translate("Sie müssen mindestens ein Ziel auswählen, bevor Sie speichern können."), "Speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return false;
}
else if (MessageBox.Show("Es wurde kein Ziel zugeordnet. Sind Sie sicher, dass Sie speichern möchten?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
{
return false;
}
}
else
{
if (BeWoApp.AppSettings.IsServiceRecordRatingMandatory)
{
foreach (var goal in vm.SelectedGoals)
{
if (!goal.RatingTypeOid.HasValue)
{
MessageBox.Show(String.Format("Das Ziel '{0}' wurde nicht bewertet.\nSpeichern nicht möglich.", goal.DisplayName), "Speichern", MessageBoxButton.OK, MessageBoxImage.Exclamation);
return false;
}
}
}
}
}
CompactSupportConceptDC scDc = null;

View File

@@ -293,5 +293,15 @@ namespace BeWo.Core
return null;
}
public static void ScrollToBottom(ListBox listBox)
{
if (VisualTreeHelper.GetChildrenCount(listBox) > 0)
{
Border border = (Border)VisualTreeHelper.GetChild(listBox, 0);
ScrollViewer scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0);
scrollViewer.ScrollToBottom();
}
}
}
}

View File

@@ -11,6 +11,8 @@ namespace BeWo.Core.Config
public class AppSettings
{
private bool mIsServiceRecordNoticeMandatory = true;
private bool mIsServiceRecordGoalMandatory = false;
private bool mIsServiceRecordRatingMandatory = false;
private bool mIsPasswordSecurityActiv = false;
@@ -28,7 +30,7 @@ namespace BeWo.Core.Config
private bool _showExpiredSupportConcepts = true;
private bool _showServiceRecordGridControl = true;
private bool _filterGroupServiceCategories = true;
private bool _filterGroupServiceCategories = false;
private bool mOpenReportInNewWindow = false;
private WindowStateType mWindowStateType = WindowStateType.Default;
@@ -67,6 +69,19 @@ namespace BeWo.Core.Config
set { mIsServiceRecordNoticeMandatory = value; }
}
public bool IsServiceRecordGoalMandatory
{
get { return mIsServiceRecordGoalMandatory; }
set { mIsServiceRecordGoalMandatory = value; }
}
public bool IsServiceRecordRatingMandatory
{
get { return mIsServiceRecordRatingMandatory; }
set { mIsServiceRecordRatingMandatory = value; }
}
public bool IsPasswordSecurityActiv
{
get { return mIsPasswordSecurityActiv; }
@@ -470,6 +485,10 @@ namespace BeWo.Core.Config
public bool ShowAIInternal { get; set; }
public bool AllowGkvAbrechnung { get; set; }
public bool ModuleAiEnabled { get; set; }
public bool ModuleAiSettingsEnabled { get; set; }
public bool ShowWohnhilfe { get; set; }
public bool ShowImportAbschlagszahlungen { get; set; }
@@ -542,6 +561,19 @@ namespace BeWo.Core.Config
set { _filterGroupServiceCategories = value; }
}
private bool _ShowServicesOverviewHalfOrWholeMonth;
public bool ShowServicesOverviewHalfOrWholeMonth
{
get => _ShowServicesOverviewHalfOrWholeMonth;
set
{
if(_ShowServicesOverviewHalfOrWholeMonth != value)
{
_ShowServicesOverviewHalfOrWholeMonth = value;
IsDirty = true;
}
}
}
public bool OpenReportInNewWindow
{
@@ -552,10 +584,9 @@ namespace BeWo.Core.Config
if (mOpenReportInNewWindow != value)
{
mOpenReportInNewWindow = value;
IsDirty = true;
IsDirty = true;
}
}
}
}
}

View File

@@ -10,7 +10,8 @@ namespace BeWo
FeatureCustomerWohnhilfe,
FeatureWohnheimWohneinheit,
FeatureAuswertungenQuittierungsbelege,
FeatureDakota
FeatureDakota,
FeatureAiModule
}
public class DebugConfig
@@ -47,8 +48,8 @@ namespace BeWo
/// - Wohnhilfe: 5
/// </summary>
public int? SelectIndex { get; set; }
public bool EnableAutoRemoteDebugging { get; set; }
public bool EnableAllUserRightsInDebug { get; set; } = false;
public static DebugConfig SimpleAutoLogin => new DebugConfig()
{
@@ -139,6 +140,19 @@ namespace BeWo
EnableAutoRemoteDebugging = true
});
name2config.Add("FeatureAiModule",
new DebugConfig()
{
DebugConfigMode = DebugConfigMode.FeatureAiModule,
AutoLogin = true,
//SelectView = UIContext.AiConversation,
//SelectIndex = 8,
DefaultLoginUsername = "m1",
DefaultLoginPassword = "bewobewo",
DefaultProfilename = "5000000000",
EnableAutoRemoteDebugging = true
});
return name2config;
}
#endif

View File

@@ -1,10 +1,18 @@
<Window x:Class="BeWo.EnterTenantDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="240" Width="320" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow">
<Grid Background="{x:Null}" Margin="0,0,0,0">
<Border BorderThickness="0" Padding="5,5,5,5" Background="{DynamicResource LoginBackgroundColor}">
<Window
x:Class="BeWo.EnterTenantDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner"
Width="320"
Height="240"
WindowStartupLocation="CenterScreen"
WindowStyle="ToolWindow">
<Grid Margin="0,0,0,0" Background="{x:Null}">
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderThickness="0">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -17,7 +25,13 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="45" Margin="7,7,0,0"/>
<Image
Grid.Row="0"
Height="45"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
@@ -25,24 +39,70 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" ></RowDefinition>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.ColumnSpan="3" TextWrapping="Wrap" Margin="3">Bitte geben Sie Ihre 10-stellige Kundennummer ein:</TextBlock>
<TextBox x:Name="txtTenant" Grid.ColumnSpan="3" Grid.Row="1" Margin="3"></TextBox>
<Button Grid.Row="2" Grid.Column ="1" Width="100" Margin="3" IsDefault="True" Click="ButtonBase_OnClick">OK</Button>
<Button Grid.Row="2" Grid.Column ="2" Width="100" Margin="3" IsCancel="True" >Abbrechen</Button>
<CheckBox Grid.ColumnSpan="3" Grid.Row="3" Margin="3" Checked="ToggleButton_OnChecked" Unchecked="ToggleButton_OnUnchecked">Demo Zugang nutzen</CheckBox>
<TextBlock
Grid.ColumnSpan="3"
Margin="3"
TextWrapping="Wrap">
Bitte geben Sie Ihre 10-stellige Kundennummer ein:
</TextBlock>
<TextBox
x:Name="txtTenant"
Grid.Row="1"
Grid.ColumnSpan="3"
Margin="3" />
<Button
Grid.Row="2"
Grid.Column="1"
Width="100"
Margin="3"
Click="ButtonBase_OnClick"
IsDefault="True">
OK
</Button>
<Button
Grid.Row="2"
Grid.Column="2"
Width="100"
Margin="3"
IsCancel="True">
Abbrechen
</Button>
<CheckBox
Grid.Row="3"
Grid.ColumnSpan="3"
Margin="3"
Checked="ToggleButton_OnChecked"
Unchecked="ToggleButton_OnUnchecked">
Demo Zugang nutzen
</CheckBox>
</Grid>
</Grid>
</Border>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
x:Name="linkLine"
Margin="0,30,0,-30"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="340"
Y2="340" />
</Grid>
</Window>

View File

@@ -1,14 +1,22 @@
<Page x:Class="BeWo.LockedPage"
Title="LockedPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d" Width="Auto" Background="{StaticResource LoginBackground}" SnapsToDevicePixels="False" Focusable="True">
<Page
x:Class="BeWo.LockedPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="LockedPage"
Width="Auto"
Background="{StaticResource LoginBackground}"
Focusable="True"
SnapsToDevicePixels="False"
mc:Ignorable="d">
<Page.Resources>
<Storyboard x:Key="OnLoaded1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="GridLogin" Storyboard.TargetProperty="(UIElement.Opacity)">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="GridLogin"
Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0" />
<SplineDoubleKeyFrame KeyTime="00:00:01" Value="1" />
</DoubleAnimationUsingKeyFrames>
@@ -21,7 +29,14 @@
</Page.Triggers>
<Grid>
<StackPanel HorizontalAlignment="Center">
<Grid Background="{x:Null}" Height="400" Width="600" Visibility="Visible" x:Name="GridLogin" RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0">
<Grid
x:Name="GridLogin"
Width="600"
Height="400"
Margin="0,0,0,0"
Background="{x:Null}"
RenderTransformOrigin="0.5,0.5"
Visibility="Visible">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
@@ -30,7 +45,12 @@
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Grid.RenderTransform>
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}">
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderBrush="#FF606060"
BorderThickness="2,2,2,2"
CornerRadius="7,7,7,7">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
@@ -44,31 +64,142 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="45" Margin="7,7,0,0"/>
<Label VerticalAlignment="Top" HorizontalAlignment="Right" Content="Version x.x.x" Foreground="#FF818181" Margin="5,7,3,0" Grid.Row="0" Grid.ColumnSpan="4" Grid.Column="0" FontSize="10" x:Name="LblVersion" />
<StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="0,100,0,0" MaxWidth="330">
<Label x:Name="lblGesperrt" Content="Gesperrt" Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" HorizontalAlignment="Center" />
<TextBlock Text="Bitte melden Sie sich an, um den BeWoPlaner zu entsperren." TextWrapping="Wrap" Foreground="#FF000000" FontSize="12" />
<Image
Grid.Row="0"
Grid.ColumnSpan="4"
Height="45"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Label
x:Name="LblVersion"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="4"
Margin="5,7,3,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Content="Version x.x.x"
FontSize="10"
Foreground="#FF818181" />
<StackPanel
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
MaxWidth="330"
Margin="0,100,0,0">
<Label
x:Name="lblGesperrt"
Margin="0,30,0,0"
HorizontalAlignment="Center"
Content="Gesperrt"
FontSize="12"
FontWeight="Bold"
Foreground="#FF000000" />
<TextBlock
FontSize="12"
Foreground="#FF000000"
Text="Bitte melden Sie sich an, um den BeWoPlaner zu entsperren."
TextWrapping="Wrap" />
</StackPanel>
<Label Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{markup:Translate Benutzername:}" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Content="Passwort:" Foreground="#FF000000" Background="#00000000" />
<TextBox TabIndex="0" SnapsToDevicePixels="True" Grid.Column="2" Grid.Row="1" Margin="10,10,20,10" Height="24" x:Name="TextBoxUsername" HorizontalAlignment="Stretch" Text="" />
<PasswordBox Margin="10,0,20,0" Height="24" Grid.Column="2" Grid.Row="2" x:Name="PasswordBoxPassword" Password="" HorizontalAlignment="Stretch" TabIndex="1" />
<Button Margin="10,30,20,50" Height="30" x:Name="ButtonLogin" Grid.Column="2" Grid.Row="3" HorizontalAlignment="Stretch" Content="Anmelden" IsDefault="True" Foreground="White" TabIndex="2" />
<Label VerticalAlignment="Bottom" HorizontalAlignment="Left" Content="Copyright 2010 | ownSoft GmbH" Foreground="#FF818181" Margin="5,0,0,3" Grid.Row="3" Grid.ColumnSpan="3" Grid.Column="0" FontSize="10" />
<TextBlock Grid.Row="3" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,0,12,10">
<Hyperlink TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de/">www.ownsoft.de</Hyperlink>
<Label
Grid.Row="1"
Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="#00000000"
Content="{markup:Translate Benutzername:}"
Foreground="#FF000000" />
<Label
Grid.Row="2"
Grid.Column="1"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Background="#00000000"
Content="Passwort:"
Foreground="#FF000000" />
<TextBox
x:Name="TextBoxUsername"
Grid.Row="1"
Grid.Column="2"
Height="24"
Margin="10,10,20,10"
HorizontalAlignment="Stretch"
SnapsToDevicePixels="True"
TabIndex="0"
Text="" />
<PasswordBox
x:Name="PasswordBoxPassword"
Grid.Row="2"
Grid.Column="2"
Height="24"
Margin="10,0,20,0"
HorizontalAlignment="Stretch"
Password=""
TabIndex="1" />
<Button
x:Name="ButtonLogin"
Grid.Row="3"
Grid.Column="2"
Height="30"
Margin="10,30,20,50"
HorizontalAlignment="Stretch"
Content="Anmelden"
Foreground="White"
IsDefault="True"
TabIndex="2" />
<Label
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="5,0,0,3"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Content="Copyright 2010 | ownSoft GmbH"
FontSize="10"
Foreground="#FF818181" />
<TextBlock
Grid.Row="3"
Grid.Column="3"
Margin="0,0,12,10"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
FontSize="10">
<Hyperlink
Foreground="#FF818181"
NavigateUri="https://www.ownsoft.de/"
TargetName="newWindow">
www.ownsoft.de
</Hyperlink>
</TextBlock>
</Grid>
</Border>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="370" X2="585" Y2="370" StrokeThickness="1"></Line>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="370"
Y2="370" />
</Grid>
<Rectangle Width="600" Height="400" RenderTransformOrigin="0.5,0.5">
<Rectangle
Width="600"
Height="400"
RenderTransformOrigin="0.5,0.5">
<Rectangle.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0.418">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#4CFFFFFF" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0.418" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#00000000" />
<GradientStop Offset="1" Color="#4CFFFFFF" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>

View File

@@ -1,15 +1,25 @@
<UserControl x:Class="BeWo.LoginControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
mc:Ignorable="d"
Width="Auto" Background="{StaticResource LoginBackground}"
d:DesignHeight="600" d:DesignWidth="800">
<Grid Name="grid_root" >
<UserControl
x:Class="BeWo.LoginControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="Auto"
d:DesignHeight="600"
d:DesignWidth="800"
Background="{StaticResource LoginBackground}"
mc:Ignorable="d">
<Grid Name="grid_root">
<StackPanel HorizontalAlignment="Center">
<Grid Background="{x:Null}" Height="400" Width="600" Visibility="Visible" x:Name="gridLogin" RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0">
<Grid
x:Name="gridLogin"
Width="600"
Height="400"
Margin="0,0,0,0"
Background="{x:Null}"
RenderTransformOrigin="0.5,0.5"
Visibility="Visible">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
@@ -18,7 +28,13 @@
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Grid.RenderTransform>
<Border CornerRadius="7,7,7,7" BorderThickness="2,2,2,2" Padding="5,5,5,5" BorderBrush="#FF606060" Background="{DynamicResource LoginBackgroundColor}" KeyDown="UIElement_OnKeyDown">
<Border
Padding="5,5,5,5"
Background="{DynamicResource LoginBackgroundColor}"
BorderBrush="#FF606060"
BorderThickness="2,2,2,2"
CornerRadius="7,7,7,7"
KeyDown="UIElement_OnKeyDown">
<Grid Opacity="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
@@ -34,152 +50,369 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Source="Ressources\Icons\bewoplaner_logo_small.png" Height="44" Margin="7,7,0,0"/>
<Label VerticalAlignment="Top" HorizontalAlignment="Right" Content="Version x.x.x" Foreground="#FF818181" Margin="5,7,3,0" Grid.Row="0" Grid.ColumnSpan="4"
Grid.Column="0" FontSize="10" x:Name="lblVersion" />
<StackPanel Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="0,80,0,0">
<Label Content="Herzlich willkommen beim BeWoPlaner!" Foreground="#FF000000" FontSize="12" FontWeight="Bold" Margin="0,30,0,0" />
<Label Content="{markup:Translate Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein.}" Foreground="#FF000000" FontSize="12" />
<Image
Grid.Row="0"
Grid.ColumnSpan="4"
Height="44"
Margin="7,7,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Source="Ressources\Icons\bewoplaner_logo_small.png" />
<Label
x:Name="lblVersion"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="4"
Margin="5,7,3,0"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Content="Version x.x.x"
FontSize="10"
Foreground="#FF818181" />
<StackPanel
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
Margin="0,80,0,0">
<Label
Margin="0,30,0,0"
Content="Herzlich willkommen beim BeWoPlaner!"
FontSize="12"
FontWeight="Bold"
Foreground="#FF000000" />
<Label
Content="{markup:Translate Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein.}"
FontSize="12"
Foreground="#FF000000" />
</StackPanel>
<Label x:Name="lblPin" Content="PIN:" Grid.Column="1" Grid.Row="1" Foreground="#FF000000" Background="#00000000" VerticalAlignment="Center" Visibility="Collapsed"/>
<TextBox x:Name="PINTextBox" Grid.Column="2" Grid.Row="1" Margin="10,0,20,0" Height="24" SnapsToDevicePixels="True" HorizontalAlignment="Stretch" Visibility="Collapsed"/>
<Label
x:Name="lblPin"
Grid.Row="1"
Grid.Column="1"
VerticalAlignment="Center"
Background="#00000000"
Content="PIN:"
Foreground="#FF000000"
Visibility="Collapsed" />
<TextBox
x:Name="PINTextBox"
Grid.Row="1"
Grid.Column="2"
Height="24"
Margin="10,0,20,0"
HorizontalAlignment="Stretch"
SnapsToDevicePixels="True"
Visibility="Collapsed" />
<Label Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Right" Content="{markup:Translate Benutzername:}" Foreground="#FF000000" Background="#00000000" />
<Label Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Left" Content="Passwort:" Foreground="#FF000000" Background="#00000000" />
<Label
Grid.Row="2"
Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="#00000000"
Content="{markup:Translate Benutzername:}"
Foreground="#FF000000" />
<Label
Grid.Row="3"
Grid.Column="1"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Background="#00000000"
Content="Passwort:"
Foreground="#FF000000" />
<TextBox TabIndex="0" SnapsToDevicePixels="True" Grid.Column="2" Grid.Row="2" Margin="10,10,20,10" Height="24" x:Name="TextBox_Username" HorizontalAlignment="Stretch" Text="" GotFocus="TextBox_Username_OnGotFocus" />
<TextBox
x:Name="TextBox_Username"
Grid.Row="2"
Grid.Column="2"
Height="24"
Margin="10,10,20,10"
HorizontalAlignment="Stretch"
GotFocus="TextBox_Username_OnGotFocus"
SnapsToDevicePixels="True"
TabIndex="0"
Text="" />
<PasswordBox Margin="10,0,20,0" Height="24" Grid.Column="2" Grid.Row="3" x:Name="PasswordBox_Password" Password="" HorizontalAlignment="Stretch" GotFocus="PasswordBox_Password_OnGotFocus" TabIndex="1"/>
<PasswordBox
x:Name="PasswordBox_Password"
Grid.Row="3"
Grid.Column="2"
Height="24"
Margin="10,0,20,0"
HorizontalAlignment="Stretch"
GotFocus="PasswordBox_Password_OnGotFocus"
Password=""
TabIndex="1" />
<Label x:Name="profileLabel" Grid.Column="1" Grid.Row="5" Content="Profil:" Foreground="#FF000000" FontSize="12" Visibility="Collapsed" VerticalAlignment="Center"/>
<StackPanel x:Name="profileStackPanel" Grid.Row="5" Grid.Column="2" Orientation="Horizontal" Margin="0,10,20,0" Visibility="Collapsed" >
<ComboBox HorizontalAlignment="Left" x:Name="profileSelectionComboBox" Width="175" Height="24" ItemsSource="{Binding Path=ProfileList}" SelectedIndex="0" Margin="10,0,0,0" />
<Button Click="button_addProfile_Click" Content="@" FontFamily="Webdings" FontSize="14" Height="23" Width="23" Margin="3,0,0,0" ToolTip="Profile bearbeiten"/>
<Label
x:Name="profileLabel"
Grid.Row="5"
Grid.Column="1"
VerticalAlignment="Center"
Content="Profil:"
FontSize="12"
Foreground="#FF000000"
Visibility="Collapsed" />
<StackPanel
x:Name="profileStackPanel"
Grid.Row="5"
Grid.Column="2"
Margin="0,10,20,0"
Orientation="Horizontal"
Visibility="Collapsed">
<ComboBox
x:Name="profileSelectionComboBox"
Width="175"
Height="24"
Margin="10,0,0,0"
HorizontalAlignment="Left"
ItemsSource="{Binding Path=ProfileList}"
SelectedIndex="0" />
<Button
Width="23"
Height="23"
Margin="3,0,0,0"
Click="button_addProfile_Click"
Content="@"
FontFamily="Webdings"
FontSize="14"
ToolTip="Profile bearbeiten" />
</StackPanel>
<Label x:Name="proxyLabel" Grid.Column="1" Grid.Row="6" Content="Proxy:" Foreground="#FF000000" FontSize="12" Visibility="Collapsed" VerticalAlignment="Center"/>
<Label
x:Name="proxyLabel"
Grid.Row="6"
Grid.Column="1"
VerticalAlignment="Center"
Content="Proxy:"
FontSize="12"
Foreground="#FF000000"
Visibility="Collapsed" />
<StackPanel x:Name="proxyStackPanel" Grid.Row="6" Grid.Column="2" Orientation="Horizontal" Margin="0,5,20,0" Visibility="Collapsed">
<TextBox HorizontalAlignment="Left" x:Name="proxyTextBox" Width="175" Height="24" Margin="10,0,0,0" IsReadOnly="True"/>
<Button Click="button_configureProxy_Click" Content="@" FontFamily="Webdings" FontSize="14" Height="23" Width="23" Margin="3,0,0,0" ToolTip="Proxy bearbeiten"/>
<StackPanel
x:Name="proxyStackPanel"
Grid.Row="6"
Grid.Column="2"
Margin="0,5,20,0"
Orientation="Horizontal"
Visibility="Collapsed">
<TextBox
x:Name="proxyTextBox"
Width="175"
Height="24"
Margin="10,0,0,0"
HorizontalAlignment="Left"
IsReadOnly="True" />
<Button
Width="23"
Height="23"
Margin="3,0,0,0"
Click="button_configureProxy_Click"
Content="@"
FontFamily="Webdings"
FontSize="14"
ToolTip="Proxy bearbeiten" />
</StackPanel>
<ToggleButton x:Name="showProfileSelectionBtn" Click="ShowProfileStackPanel" HorizontalAlignment="Right" Content="Erweitert" Grid.Row="4" Grid.Column="2" Margin="0,5,20,0" Foreground="#FF818181">
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="18"/>
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="ButtonContent"/>
<Path Grid.Column="1"
x:Name="Down_Arrow"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z" Margin="0,3,0,0"
/>
<Path Grid.Column="1"
x:Name="Down_Arrow2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z" Margin="0,-3,0,0"
/>
<Path Grid.Column="1"
x:Name="Up_Arrow"
Visibility="Collapsed"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z" Margin="0,-3,0,0"
/>
<Path Grid.Column="1"
x:Name="Up_Arrow2"
Visibility="Collapsed"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{TemplateBinding Foreground}"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z" Margin="0,3,0,0"
/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Fill" Value="#FF333333" TargetName="Down_Arrow"/>
<Setter Property="Fill" Value="#FF333333" TargetName="Down_Arrow2"/>
<Setter Property="Fill" Value="#FF333333" TargetName="Up_Arrow"/>
<Setter Property="Fill" Value="#FF333333" TargetName="Up_Arrow2"/>
<Setter Property="TextBlock.Foreground" Value="#FF333333" TargetName="ButtonContent"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Visibility" Value="Collapsed" TargetName="Down_Arrow"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="Down_Arrow2"/>
<Setter Property="Visibility" Value="Visible" TargetName="Up_Arrow"/>
<Setter Property="Visibility" Value="Visible" TargetName="Up_Arrow2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
<ToggleButton.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="gridLogin"
Storyboard.TargetProperty="Height"
From="{Binding HeightFrom, UpdateSourceTrigger=PropertyChanged}" To="{Binding HeightTo, UpdateSourceTrigger=PropertyChanged}" Duration="0:0:0.1"
AutoReverse="False" Completed="AnimationComplete" />
<DoubleAnimation
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y1"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}" To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}" Duration="0:0:0.1"
AutoReverse="False" Completed="Animation2Complete" />
<DoubleAnimation
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y2"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}" To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}" Duration="0:0:0.1"
AutoReverse="False" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
<StackPanel Margin="10,30,20,50" Grid.Column="2" Grid.Row="7" Orientation="Vertical" HorizontalAlignment="Stretch">
<Button Height="30" x:Name="button_login" HorizontalAlignment="Stretch" Content="Anmelden" Click="button_login_Click" IsDefault="True" Foreground="White" Margin="3" />
<TextBlock VerticalAlignment="Center" Visibility="Collapsed" HorizontalAlignment="Center" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" Margin="3">
<Hyperlink RequestNavigate="PasswortVergessenLinkOnRequestNavigate" NavigateUri="#" >
<TextBlock Text="Passwort vergessen" HorizontalAlignment="Center" FontSize="10" VerticalAlignment="Center" />
</Hyperlink>
</TextBlock>
</StackPanel>
<TextBlock x:Name="txtCopyright" Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="3" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="10" Margin="10,5,0,5" Text="Copyright 2022 | ownSoft GmbH" Foreground="#FF818181"/>
<TextBlock Grid.Row="7" Grid.Column="3" HorizontalAlignment="Right" VerticalAlignment="Bottom" FontSize="10" Margin="0,5,12,5">
<Hyperlink x:Name="hyperlink" TargetName="newWindow" Foreground="#FF818181" NavigateUri="https://www.ownsoft.de" RequestNavigate="Hyperlink_OnRequestNavigate">www.ownsoft.de</Hyperlink>
<ToggleButton
x:Name="showProfileSelectionBtn"
Grid.Row="4"
Grid.Column="2"
Margin="0,5,20,0"
HorizontalAlignment="Right"
Click="ShowProfileStackPanel"
Content="Erweitert"
Foreground="#FF818181">
<ToggleButton.Template>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="18" />
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="ButtonContent" />
<Path
x:Name="Down_Arrow"
Grid.Column="1"
Margin="0,3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z"
Fill="{TemplateBinding Foreground}" />
<Path
x:Name="Down_Arrow2"
Grid.Column="1"
Margin="0,-3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 0 L 4 4 L 8 0 L 4 2 Z"
Fill="{TemplateBinding Foreground}" />
<Path
x:Name="Up_Arrow"
Grid.Column="1"
Margin="0,-3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z"
Fill="{TemplateBinding Foreground}"
Visibility="Collapsed" />
<Path
x:Name="Up_Arrow2"
Grid.Column="1"
Margin="0,3,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 4 L 4 0 L 8 4 L 4 2 Z"
Fill="{TemplateBinding Foreground}"
Visibility="Collapsed" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="Down_Arrow" Property="Fill" Value="#FF333333" />
<Setter TargetName="Down_Arrow2" Property="Fill" Value="#FF333333" />
<Setter TargetName="Up_Arrow" Property="Fill" Value="#FF333333" />
<Setter TargetName="Up_Arrow2" Property="Fill" Value="#FF333333" />
<Setter TargetName="ButtonContent" Property="TextBlock.Foreground" Value="#FF333333" />
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter TargetName="Down_Arrow" Property="Visibility" Value="Collapsed" />
<Setter TargetName="Down_Arrow2" Property="Visibility" Value="Collapsed" />
<Setter TargetName="Up_Arrow" Property="Visibility" Value="Visible" />
<Setter TargetName="Up_Arrow2" Property="Visibility" Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
<ToggleButton.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
AutoReverse="False"
Completed="AnimationComplete"
Storyboard.TargetName="gridLogin"
Storyboard.TargetProperty="Height"
From="{Binding HeightFrom, UpdateSourceTrigger=PropertyChanged}"
To="{Binding HeightTo, UpdateSourceTrigger=PropertyChanged}"
Duration="0:0:0.1" />
<DoubleAnimation
AutoReverse="False"
Completed="Animation2Complete"
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y1"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}"
To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}"
Duration="0:0:0.1" />
<DoubleAnimation
AutoReverse="False"
Storyboard.TargetName="linkLine"
Storyboard.TargetProperty="Y2"
From="{Binding LineYCoordFrom, UpdateSourceTrigger=PropertyChanged}"
To="{Binding LineYCoordTo, UpdateSourceTrigger=PropertyChanged}"
Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
<StackPanel
Grid.Row="7"
Grid.Column="2"
Margin="10,30,20,50"
HorizontalAlignment="Stretch"
Orientation="Vertical">
<Button
x:Name="button_login"
Height="30"
Margin="3"
HorizontalAlignment="Stretch"
Click="button_login_Click"
Content="Anmelden"
Foreground="White"
IsDefault="True" />
<TextBlock
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{DynamicResource MainGroupBoxForegroundBrush}"
Visibility="Collapsed">
<Hyperlink NavigateUri="#" RequestNavigate="PasswortVergessenLinkOnRequestNavigate">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="10"
Text="Passwort vergessen" />
</Hyperlink>
</TextBlock>
</StackPanel>
<TextBlock
x:Name="txtCopyright"
Grid.Row="7"
Grid.Column="0"
Grid.ColumnSpan="3"
Margin="10,5,0,5"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
FontSize="10"
Foreground="#FF818181"
Text="Copyright 2022 | ownSoft GmbH" />
<TextBlock
Grid.Row="7"
Grid.Column="3"
Margin="0,5,12,5"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
FontSize="10">
<Hyperlink
x:Name="hyperlink"
Foreground="#FF818181"
NavigateUri="https://www.ownsoft.de"
RequestNavigate="Hyperlink_OnRequestNavigate"
TargetName="newWindow">
www.ownsoft.de
</Hyperlink>
</TextBlock>
</Grid>
</Border>
<Line Grid.ColumnSpan="4" Stroke="#FFADADAD" X1="14" Y1="70" X2="585" Y2="70" StrokeThickness="1"></Line>
<Line x:Name="linkLine" Stroke="#FFADADAD" X1="14" Y1="340" X2="585" Y2="340" StrokeThickness="1" Margin="0,30,0,-30"></Line>
<Line
Grid.ColumnSpan="4"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="70"
Y2="70" />
<Line
x:Name="linkLine"
Margin="0,30,0,-30"
Stroke="#FFADADAD"
StrokeThickness="1"
X1="14"
X2="585"
Y1="340"
Y2="340" />
</Grid>
<Rectangle Width="600" Height="400" RenderTransformOrigin="0.5,0.5">
<Rectangle
Width="600"
Height="400"
RenderTransformOrigin="0.5,0.5">
<Rectangle.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0.418">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#4CFFFFFF" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0.418" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#00000000" />
<GradientStop Offset="1" Color="#4CFFFFFF" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
<Rectangle.RenderTransform>
@@ -195,6 +428,6 @@
</Rectangle.Fill>
</Rectangle>
</StackPanel>
<Border x:Name="profileEditPopUp" />
<Border x:Name="profileEditPopUp" />
</Grid>
</UserControl>

View File

@@ -1,6 +1,20 @@
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="BeWo.LogoPage" x:Name="Page" WindowTitle="Page" FlowDirection="LeftToRight" Width="640" Height="480" WindowWidth="640" WindowHeight="480" xmlns:BeWo="clr-namespace:BeWo">
<Page
x:Class="BeWo.LogoPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:BeWo="clr-namespace:BeWo"
x:Name="Page"
Width="640"
Height="480"
FlowDirection="LeftToRight"
WindowHeight="480"
WindowTitle="Page"
WindowWidth="640">
<Grid x:Name="LayoutRoot" Width="300" Height="300">
<BeWo:BSLogoControl Width="400" Height="400" />
</Grid>
<Grid
x:Name="LayoutRoot"
Width="300"
Height="300">
<BeWo:BSLogoControl Width="400" Height="400" />
</Grid>
</Page>

View File

@@ -8,8 +8,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:r="clr-namespace:BeWo.Security"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
d:DesignHeight="300"
d:DesignWidth="300"
d:DesignHeight="1080"
d:DesignWidth="1920"
Background="{DynamicResource ApplicationBackground}"
RenderTransformOrigin="0.5,0.5"
SnapsToDevicePixels="True"
@@ -830,6 +830,27 @@
</TransformGroup>
</Button.RenderTransform>
</localView:ImageButton>
<localView:ImageButton
x:Name="button_ai_chat"
Width="90"
HorizontalAlignment="Stretch"
Background="{StaticResource ModuleAiChatTabItem}"
Click="button_ai_chat_Click"
Content="{t:Translate AiModuleMenuItem}"
ImageSource="Ressources\Icons\chatbot2.png"
RenderTransformOrigin="0.5,0.5"
Style="{StaticResource NavBarButton}"
Visibility="Collapsed">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Button.RenderTransform>
</localView:ImageButton>
</StackPanel>
</Grid>
</ScrollViewer>

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,16 @@
<Window x:Class="BeWo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner" Height="768" Width="1024" WindowStartupLocation="CenterScreen" WindowState="Maximized"
BorderThickness="1" Closing="MainWindow_OnClosing" SizeChanged="Window_SizeChanged">
<Window
x:Class="BeWo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="BeWoPlaner"
Width="1024"
Height="768"
BorderThickness="1"
Closing="MainWindow_OnClosing"
SizeChanged="Window_SizeChanged"
WindowStartupLocation="CenterScreen"
WindowState="Maximized">
<Grid x:Name="rootGrid">
<ComboBox Width="100"></ComboBox>
<ComboBox Width="100" />
</Grid>
</Window>

View File

@@ -1,13 +1,20 @@
<Window x:Class="BeWo.OpenOrSaveDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OpenOrSaveDialog" Height="150" Width="300"
WindowStartupLocation="CenterOwner"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent" ResizeMode="NoResize" >
<Window
x:Class="BeWo.OpenOrSaveDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OpenOrSaveDialog"
Width="300"
Height="150"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize"
WindowStartupLocation="CenterOwner"
WindowStyle="None">
<Grid>
<GroupBox Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<GroupBox
Header="Download"
MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown"
Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
@@ -18,10 +25,35 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Question}" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center" Foreground="#FF202020"/>
<Button Margin="0,0,0,5" Grid.Row="1" Grid.Column="0" Content="Öffnen" Width="85" Command="Open" />
<Button Margin="0,0,0,5" Grid.Row="1" Grid.Column="1" Content="Speichern" Width="85" Command="Save" />
<Button Margin="0,0,0,5" Grid.Row="1" Grid.Column="2" Content="Abbrechen" Width="85" Command="Close" />
<TextBlock
Grid.ColumnSpan="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="#FF202020"
Text="{Binding Question}"
TextAlignment="Center"
TextWrapping="Wrap" />
<Button
Grid.Row="1"
Grid.Column="0"
Width="85"
Margin="0,0,0,5"
Command="Open"
Content="Öffnen" />
<Button
Grid.Row="1"
Grid.Column="1"
Width="85"
Margin="0,0,0,5"
Command="Save"
Content="Speichern" />
<Button
Grid.Row="1"
Grid.Column="2"
Width="85"
Margin="0,0,0,5"
Command="Close"
Content="Abbrechen" />
</Grid>
</GroupBox>
</Grid>

View File

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

View File

@@ -1,31 +1,71 @@
<Window x:Class="BeWo.PwVergessenView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Title="PwVergessenView" Height="135" Width="322" WindowStartupLocation="CenterScreen" WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize">
<Window
x:Class="BeWo.PwVergessenView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Title="PwVergessenView"
Width="322"
Height="135"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
WindowStyle="None">
<Grid>
<GroupBox Header="Passwort anfordern" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="Red" Margin="3,8,3,3"/>
<Label Grid.Row="1" Grid.Column="0" Margin="3" Content="{markup:Translate Benutzername}" />
<TextBox x:Name="BenutzernamenTextBox" Grid.Row="1" Grid.Column="1" MaxLines="1" Margin="3" />
<StackPanel Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Stretch">
<Button Margin="3" Content="Neues Passwort anfordern" Width="150" Click="AnfordernClick" IsDefault="True" VerticalContentAlignment="Center" />
<Button Margin="3" Content="Abbrechen" Width="150" Command="Close" />
</StackPanel>
</Grid>
</GroupBox>
</Grid>
<GroupBox
Header="Passwort anfordern"
MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown"
Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Height="20"
Margin="3,8,3,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="Red" />
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
Content="{markup:Translate Benutzername}" />
<TextBox
x:Name="BenutzernamenTextBox"
Grid.Row="1"
Grid.Column="1"
Margin="3"
MaxLines="1" />
<StackPanel
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Stretch"
Orientation="Horizontal">
<Button
Width="150"
Margin="3"
VerticalContentAlignment="Center"
Click="AnfordernClick"
Content="Neues Passwort anfordern"
IsDefault="True" />
<Button
Width="150"
Margin="3"
Command="Close"
Content="Abbrechen" />
</StackPanel>
</Grid>
</GroupBox>
</Grid>
</Window>

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -1,171 +1,379 @@
<dx:DXWindow x:Class="BeWo.Scheduler.View.RequestAnswerView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:drawing="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:view="clr-namespace:BeWo.Scheduler.View"
mc:Ignorable="d" ShowIcon="False" MinHeight="300" MinWidth="500"
Height="400" Width="650" dx:ThemeManager.ThemeName="Office2010Black" WindowStartupLocation="CenterScreen" Closing="RequestAnswerView_OnClosing">
<dx:DXWindow.Resources>
<drawing:TimeSpanToDateTimeConverter x:Key="TimeSpanToDateTimeConverter"/>
<view:LVItemConverter x:Key="LvItemConverter" />
<view:OriginatorExtraxtor x:Key="OriginatorExtraxtor" />
<view:Int2VisibilityConverter x:Key="Int2VisibilityConverter" />
<view:SerienterminDauerAnzeigeConverter x:Key="SerienterminDauerAnzeigeConverter" />
<LinearGradientBrush x:Key="NavigationContentBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF04B4D0" Offset="0" />
<GradientStop Color="#FF038195" Offset="1" />
</LinearGradientBrush>
</dx:DXWindow.Resources>
<dx:DXWindow
x:Class="BeWo.Scheduler.View.RequestAnswerView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:drawing="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:view="clr-namespace:BeWo.Scheduler.View"
Width="650"
Height="400"
MinWidth="500"
MinHeight="300"
dx:ThemeManager.ThemeName="Office2010Black"
Closing="RequestAnswerView_OnClosing"
ShowIcon="False"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<dx:DXWindow.Resources>
<drawing:TimeSpanToDateTimeConverter x:Key="TimeSpanToDateTimeConverter" />
<view:LVItemConverter x:Key="LvItemConverter" />
<view:OriginatorExtraxtor x:Key="OriginatorExtraxtor" />
<view:Int2VisibilityConverter x:Key="Int2VisibilityConverter" />
<view:SerienterminDauerAnzeigeConverter x:Key="SerienterminDauerAnzeigeConverter" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FF04B4D0" />
<GradientStop Offset="1" Color="#FF038195" />
</LinearGradientBrush>
</dx:DXWindow.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListView x:Name="OTListView" Grid.Column="0" MinWidth="120" SelectionMode="Single" Margin="3" ItemsSource="{Binding Path=OffeneTermine, UpdateSourceTrigger=PropertyChanged}" MaxWidth="300" SelectionChanged="Selector_OnSelected" Background="{StaticResource NavigationContentBrush}" SelectedIndex="0">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,1,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border CornerRadius="5" MinHeight="20" Background="Transparent" />
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="20" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="20">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<TextBlock VerticalAlignment="Center" Text="{Binding Converter={StaticResource LvItemConverter}, ConverterParameter=LabelId}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
<Grid Grid.Column="1" Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<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="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.ColumnSpan="4" HorizontalAlignment="Center" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=TerminVerstrichen}" Foreground="#9a0000">Dieser Termin liegt in der Vergangenheit</TextBlock>
<Label Grid.Column="0" Grid.Row="1" Content="Betreff" Margin="3" />
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="1" Height="23" Margin="3" Text="{Binding Path=SelektierterTermin.Subject}" IsReadOnly="True" />
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListView
x:Name="OTListView"
Grid.Column="0"
MinWidth="120"
MaxWidth="300"
Margin="3"
Background="{StaticResource NavigationContentBrush}"
ItemsSource="{Binding Path=OffeneTermine, UpdateSourceTrigger=PropertyChanged}"
SelectedIndex="0"
SelectionChanged="Selector_OnSelected"
SelectionMode="Single">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="Margin" Value="0,2,1,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Border
MinHeight="20"
Background="Transparent"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="20"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border
x:Name="ItemContent"
MinHeight="20"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<TextBlock
VerticalAlignment="Center"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Text="{Binding Converter={StaticResource LvItemConverter}, ConverterParameter=LabelId}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
<Grid Grid.Row="0" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<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="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="2" Content="Ort" Margin="3" />
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" Height="23" Margin="3" Text="{Binding Path=SelektierterTermin.Location}" IsReadOnly="True" />
<TextBlock
Grid.ColumnSpan="4"
HorizontalAlignment="Center"
Foreground="#9a0000"
Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=TerminVerstrichen}">
Dieser Termin liegt in der Vergangenheit
</TextBlock>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
Content="Betreff" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
IsReadOnly="True"
Text="{Binding Path=SelektierterTermin.Subject}" />
<Label Grid.Column="0" Grid.Row="3" Content="Organisator" Margin="3" />
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="3" Height="23" Margin="3" Text="{Binding Path=SelektierterTermin, Converter={StaticResource OriginatorExtraxtor}}" IsReadOnly="True" />
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
Content="Ort" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
IsReadOnly="True"
Text="{Binding Path=SelektierterTermin.Location}" />
<Label Grid.Column="0" Grid.Row="4" VerticalAlignment="Center" Content="Start" Margin="3"/>
<dxe:DateEdit Grid.Column="1" Grid.Row="4" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" IsEnabled="True" EditValue="{Binding SelektierterTermin.Start}" IsReadOnly="True" PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit IsEnabled="True" Grid.Column="2" Grid.Row="4" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding SelektierterTermin.StartTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}" IsReadOnly="True"/>
<dxe:CheckEdit IsEnabled="False" Grid.Column="3" Grid.Row="4" Content="Ganztägig" EditValue ="{Binding SelektierterTermin.AllDay}" HorizontalAlignment="Right" Margin="3" IsReadOnly="True" />
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
Content="Organisator" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
IsReadOnly="True"
Text="{Binding Path=SelektierterTermin, Converter={StaticResource OriginatorExtraxtor}}" />
<Label Grid.Column="0" Grid.Row="5" VerticalAlignment="Center" Content="Ende" Margin="3"/>
<dxe:DateEdit IsEnabled="True" Grid.Column="1" Grid.Row="5" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding SelektierterTermin.End}" IsReadOnly="True" PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit IsEnabled="True" Grid.Column="2" Grid.Row="5" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding SelektierterTermin.EndTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}" IsReadOnly="True"/>
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="Start" />
<dxe:DateEdit
Grid.Row="4"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
Background="White"
EditValue="{Binding SelektierterTermin.Start}"
IsEnabled="True"
IsReadOnly="True"
MaskType="DateTimeAdvancingCaret"
PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit
Grid.Row="4"
Grid.Column="2"
Height="23"
Margin="3"
EditValue="{Binding SelektierterTermin.StartTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}"
IsEnabled="True"
IsReadOnly="True"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True" />
<dxe:CheckEdit
Grid.Row="4"
Grid.Column="3"
Margin="3"
HorizontalAlignment="Right"
Content="Ganztägig"
EditValue="{Binding SelektierterTermin.AllDay}"
IsEnabled="False"
IsReadOnly="True" />
<Label Grid.Column="0" Grid.Row="6" VerticalAlignment="Center" Content="Serientermin" Margin="3" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=SerienterminLabel}" />
<TextBlock Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="3" Margin="3" Padding="0" Foreground="Black" VerticalAlignment="Center"
Text="{Binding Path=SelektierterTermin, Converter={StaticResource SerienterminDauerAnzeigeConverter}}"
Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=SerienterminLabel}"
TextWrapping="WrapWithOverflow"/>
<Label Grid.Column="0" Grid.Row="7" Margin="3" Content="Notiz"/>
<TextBox Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="3" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Disabled" Margin="3" TextWrapping="Wrap" Text="{Binding Path=SelektierterTermin.Description}" IsReadOnly="True" />
<Label
Grid.Row="5"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="Ende" />
<dxe:DateEdit
Grid.Row="5"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
Background="White"
EditValue="{Binding SelektierterTermin.End}"
IsEnabled="True"
IsReadOnly="True"
MaskType="DateTimeAdvancingCaret"
PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit
Grid.Row="5"
Grid.Column="2"
Height="23"
Margin="3"
EditValue="{Binding SelektierterTermin.EndTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}"
IsEnabled="True"
IsReadOnly="True"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True" />
<Grid Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4">
<Label
Grid.Row="6"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="Serientermin"
Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=SerienterminLabel}" />
<TextBlock
Grid.Row="6"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="3"
Padding="0"
VerticalAlignment="Center"
Foreground="Black"
Text="{Binding Path=SelektierterTermin, Converter={StaticResource SerienterminDauerAnzeigeConverter}}"
TextWrapping="WrapWithOverflow"
Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=SerienterminLabel}" />
<Label
Grid.Row="7"
Grid.Column="0"
Margin="3"
Content="Notiz" />
<TextBox
Grid.Row="7"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="3"
VerticalAlignment="Stretch"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
IsReadOnly="True"
Text="{Binding Path=SelektierterTermin.Description}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
<Grid
Grid.Row="8"
Grid.Column="0"
Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="AlleBestaetigen" Grid.Column="0" Content="Alle bestätigen" Margin="3" Click="ButtonBase_OnClick" Width="100" />
<StackPanel x:Name="ZusagenStack" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=ZusagenStack}">
<Button
x:Name="AlleBestaetigen"
Grid.Column="0"
Width="100"
Margin="3"
Click="ButtonBase_OnClick"
Content="Alle bestätigen" />
<StackPanel
x:Name="ZusagenStack"
Grid.Column="1"
HorizontalAlignment="Right"
Orientation="Horizontal"
Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=ZusagenStack}">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button Margin="3" Content="Zusagen" Click="Zusagen_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Mit Vorbehalt" Click="MitVorbehalt_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Absagen" Click="Absagen_OnClick" IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button
Margin="3"
Click="Zusagen_OnClick"
Content="Zusagen"
IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button
Margin="3"
Click="MitVorbehalt_OnClick"
Content="Mit Vorbehalt"
IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
<Button
Margin="3"
Click="Absagen_OnClick"
Content="Absagen"
IsEnabled="{Binding SelektierterTermin, Converter={StaticResource ObjectBoolConverter}}" />
</StackPanel>
</StackPanel>
</Grid>
<Button x:Name="OkButton" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="3" Width="100" Content="OK" Click="OK_OnClick" Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=OKBtn}" />
</Grid>
</Grid>
<Button Grid.Row="1" x:Name="CloseBtn" Content="Schließen" HorizontalAlignment="Right" Margin="3" Width="100" Click="CloseButton_Click" />
<Button
x:Name="OkButton"
Grid.Row="8"
Grid.Column="0"
Grid.ColumnSpan="4"
Width="100"
Margin="3"
HorizontalAlignment="Right"
Click="OK_OnClick"
Content="OK"
Visibility="{Binding Path=SelektierterTermin, Converter={StaticResource Int2VisibilityConverter}, ConverterParameter=OKBtn}" />
</Grid>
</Grid>
<Button
x:Name="CloseBtn"
Grid.Row="1"
Width="100"
Margin="3"
HorizontalAlignment="Right"
Click="CloseButton_Click"
Content="Schließen" />
</Grid>
</dx:DXWindow>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +1,26 @@
<dx:DXWindow x:Class="BeWo.Scheduling.View.AppointmentRecurrenceEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
mc:Ignorable="d"
Loaded="AppointmentRecurrenceEditView_OnLoaded"
Background="{StaticResource ObjectEditBackgroundBrush}"
ResizeMode="NoResize"
Closing="AppointmentRecurrenceEditView_OnClosing"
Title="AppointmentRecurrenceEditView" Height="Auto" Width="507" SizeToContent="Height">
<dx:DXWindow
x:Class="BeWo.Scheduling.View.AppointmentRecurrenceEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="AppointmentRecurrenceEditView"
Width="507"
Height="Auto"
Background="{StaticResource ObjectEditBackgroundBrush}"
Closing="AppointmentRecurrenceEditView_OnClosing"
Loaded="AppointmentRecurrenceEditView_OnLoaded"
ResizeMode="NoResize"
SizeToContent="Height"
mc:Ignorable="d">
<Window.Resources>
<Style x:Key="RecurrenceInfoControlStyle" TargetType="dxsch:RecurrenceInfoControlBase">
<Setter Property="RecurrenceInfo" Value="{Binding RecurrenceInfo}"/>
<Setter Property="RecurrenceInfo" Value="{Binding RecurrenceInfo}" />
<Style.Triggers>
<Trigger Property="Visibility" Value="Collapsed">
<Setter Property="RecurrenceInfo" Value="{x:Null}"/>
<Setter Property="RecurrenceInfo" Value="{x:Null}" />
</Trigger>
</Style.Triggers>
</Style>
@@ -39,17 +43,47 @@
<RowDefinition Height="*" />
<RowDefinition Height="6" />
</Grid.RowDefinitions>
<Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3"/>
<Border SnapsToDevicePixels="True" x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2">
<ContentPresenter ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<Border
Grid.Row="1"
Grid.RowSpan="3"
Grid.Column="0"
Grid.ColumnSpan="4"
Background="{TemplateBinding Background}"
BorderBrush="Transparent"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4" />
<Border
x:Name="Header"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="1"
Padding="3,1,3,0"
SnapsToDevicePixels="True">
<ContentPresenter
ContentSource="Header"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ContentPresenter Grid.ColumnSpan="2" Grid.Column="1" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<Border SnapsToDevicePixels="True" Grid.Column="0" BorderBrush="Gray" BorderThickness="{TemplateBinding BorderThickness}" Grid.ColumnSpan="4" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3">
<ContentPresenter
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="2"
Margin="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<Border
Grid.Row="1"
Grid.RowSpan="3"
Grid.Column="0"
Grid.ColumnSpan="4"
BorderBrush="Gray"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4"
SnapsToDevicePixels="True">
<Border.OpacityMask>
<MultiBinding ConverterParameter="7" Converter="{StaticResource BorderGapMaskConverter}">
<Binding ElementName="Header" Path="ActualWidth"/>
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"/>
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"/>
<MultiBinding Converter="{StaticResource BorderGapMaskConverter}" ConverterParameter="7">
<Binding ElementName="Header" Path="ActualWidth" />
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.OpacityMask>
</Border>
@@ -65,35 +99,73 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Header="Serienmuster" Style="{StaticResource GroupBoxStyle}" Margin="5">
<GroupBox
Grid.Row="0"
Margin="5"
Header="Serienmuster"
Style="{StaticResource GroupBoxStyle}">
<DockPanel>
<dxsch:RecurrenceTypeControl DockPanel.Dock="Left" RecurrenceTypes="{Binding AvailableRecurrenceTypes}" RecurrenceType="{Binding RecurrenceInfo.Type, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<dxsch:RecurrenceTypeControl
DockPanel.Dock="Left"
RecurrenceType="{Binding RecurrenceInfo.Type, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
RecurrenceTypes="{Binding AvailableRecurrenceTypes}" />
<StackPanel Orientation="Horizontal">
<Separator />
</StackPanel>
<StackPanel MinHeight="90">
<dxsch:DailyRecurrenceControl Style="{StaticResource RecurrenceInfoControlStyle}" Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Daily}}"/>
<dxsch:WeeklyRecurrenceControl Style="{StaticResource RecurrenceInfoControlStyle}" Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Weekly}}" FirstDayOfWeek="{Binding FirstDayOfWeek}"/>
<dxsch:MonthlyRecurrenceControl Style="{StaticResource RecurrenceInfoControlStyle}" Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Monthly}}"/>
<dxsch:YearlyRecurrenceControl x:Name="YearlyRecurrence" Style="{StaticResource RecurrenceInfoControlStyle}" Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Yearly}}"/>
<dxsch:DailyRecurrenceControl Style="{StaticResource RecurrenceInfoControlStyle}" Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Daily}}" />
<dxsch:WeeklyRecurrenceControl
FirstDayOfWeek="{Binding FirstDayOfWeek}"
Style="{StaticResource RecurrenceInfoControlStyle}"
Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Weekly}}" />
<dxsch:MonthlyRecurrenceControl Style="{StaticResource RecurrenceInfoControlStyle}" Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Monthly}}" />
<dxsch:YearlyRecurrenceControl
x:Name="YearlyRecurrence"
Style="{StaticResource RecurrenceInfoControlStyle}"
Visibility="{Binding RecurrenceInfo.Type, Converter={dxsch:RecurrenceTypeToVisibilityConverter VisibleValue=Yearly}}" />
</StackPanel>
</DockPanel>
</GroupBox>
<GroupBox Grid.Row="1" Header="Serienende" Style="{StaticResource GroupBoxStyle}" Margin="5">
<dxsch:RecurrenceRangeControl RecurrenceInfo="{Binding RecurrenceInfo}"/>
<GroupBox
Grid.Row="1"
Margin="5"
Header="Serienende"
Style="{StaticResource GroupBoxStyle}">
<dxsch:RecurrenceRangeControl RecurrenceInfo="{Binding RecurrenceInfo}" />
</GroupBox>
<Grid Grid.Row="2" VerticalAlignment="Bottom" Margin="0">
<Border Height="40" Margin="0,10,0,0" VerticalAlignment="Bottom" Background="#FF000000">
<Grid
Grid.Row="2"
Margin="0"
VerticalAlignment="Bottom">
<Border
Height="40"
Margin="0,10,0,0"
VerticalAlignment="Bottom"
Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#33FFFFFF" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#33FFFFFF" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel VerticalAlignment="Bottom" Height="40" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="OK" Width="80" Height="25" Margin="3" Click="OkButton_Click" />
<Button Content="Abbrechen" Width="80" Height="25" Margin="3" Click="CloseButton_OnClick" />
<StackPanel
Height="40"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Orientation="Horizontal">
<Button
Width="80"
Height="25"
Margin="3"
Click="OkButton_Click"
Content="OK" />
<Button
Width="80"
Height="25"
Margin="3"
Click="CloseButton_OnClick"
Content="Abbrechen" />
</StackPanel>
</Grid>
</Grid>

View File

@@ -1,24 +1,30 @@
<dx:DXWindow x:Class="BeWo.Scheduling.View.OpenAppointmentsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:drawing="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:converter="clr-namespace:BeWo.Scheduling.Converter"
mc:Ignorable="d" Height="400" Width="650"
ShowIcon="False" MinHeight="300" MinWidth="500"
dx:ThemeManager.ThemeName="Office2010Black"
WindowStartupLocation="CenterScreen" Closing="OpenAppointmentsView_OnClosing">
<dx:DXWindow
x:Class="BeWo.Scheduling.View.OpenAppointmentsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:BeWo.Scheduling.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:drawing="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="650"
Height="400"
MinWidth="500"
MinHeight="300"
dx:ThemeManager.ThemeName="Office2010Black"
Closing="OpenAppointmentsView_OnClosing"
ShowIcon="False"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<dx:DXWindow.Resources>
<drawing:TimeSpanToDateTimeConverter x:Key="TimeSpanToDateTimeConverter"/>
<drawing:TimeSpanToDateTimeConverter x:Key="TimeSpanToDateTimeConverter" />
<converter:RecurringAppointmentDurationConverter x:Key="RecurringAppointmentDurationConverter" />
<converter:RequestVisibilityConverter x:Key="RequestVisibilityConverter" />
<converter:ParticipationRequestListViewConverter x:Key="ParticipationRequestListViewConverter" />
<LinearGradientBrush x:Key="NavigationContentBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF04B4D0" Offset="0" />
<GradientStop Color="#FF038195" Offset="1" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FF04B4D0" />
<GradientStop Offset="1" Color="#FF038195" />
</LinearGradientBrush>
</dx:DXWindow.Resources>
<Grid>
@@ -34,10 +40,17 @@
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListView x:Name="OpenAppointmentsList" Grid.Column="0" MinWidth="120" SelectionMode="Single" Margin="3"
ItemsSource="{Binding OpenAppointments, UpdateSourceTrigger=PropertyChanged}" MaxWidth="300"
SelectedItem="{Binding SelectedAppointment, UpdateSourceTrigger=PropertyChanged}"
Background="{StaticResource NavigationContentBrush}" SelectedIndex="0">
<ListView
x:Name="OpenAppointmentsList"
Grid.Column="0"
MinWidth="120"
MaxWidth="300"
Margin="3"
Background="{StaticResource NavigationContentBrush}"
ItemsSource="{Binding OpenAppointments, UpdateSourceTrigger=PropertyChanged}"
SelectedIndex="0"
SelectedItem="{Binding SelectedAppointment, UpdateSourceTrigger=PropertyChanged}"
SelectionMode="Single">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -47,38 +60,58 @@
<Setter.Value>
<ControlTemplate>
<Grid>
<Border CornerRadius="5" MinHeight="20" Background="Transparent" />
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="20" Background="#FF000000">
<Border
MinHeight="20"
Background="Transparent"
CornerRadius="5" />
<Border
x:Name="ItemBorder"
MinHeight="20"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="20">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<TextBlock VerticalAlignment="Center" Text="{Binding Converter={StaticResource ParticipationRequestListViewConverter}, ConverterParameter=LabelId}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<Border
x:Name="ItemContent"
MinHeight="20"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<TextBlock
VerticalAlignment="Center"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Text="{Binding Converter={StaticResource ParticipationRequestListViewConverter}, ConverterParameter=LabelId}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -88,11 +121,11 @@
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -104,7 +137,7 @@
</Style>
</ListView.ItemContainerStyle>
</ListView>
<Grid Grid.Column="1" Grid.Row="0">
<Grid Grid.Row="0" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
@@ -122,51 +155,221 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.ColumnSpan="4" HorizontalAlignment="Center" Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=TerminVerstrichen}" Foreground="#9a0000">Dieser Termin liegt in der Vergangenheit</TextBlock>
<Label Grid.Column="0" Grid.Row="1" Content="Betreff" Margin="3" />
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="1" Height="23" Margin="3" Text="{Binding Path=SelectedAppointment.Subject, Mode=OneWay}" IsReadOnly="True" />
<TextBlock
Grid.ColumnSpan="4"
HorizontalAlignment="Center"
Foreground="#9a0000"
Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=TerminVerstrichen}">
Dieser Termin liegt in der Vergangenheit
</TextBlock>
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
Content="Betreff" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
IsReadOnly="True"
Text="{Binding Path=SelectedAppointment.Subject, Mode=OneWay}" />
<Label Grid.Column="0" Grid.Row="2" Content="Ort" Margin="3" />
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" Height="23" Margin="3" Text="{Binding Path=SelectedAppointment.Location, Mode=OneWay}" IsReadOnly="True" />
<Label
Grid.Row="2"
Grid.Column="0"
Margin="3"
Content="Ort" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
IsReadOnly="True"
Text="{Binding Path=SelectedAppointment.Location, Mode=OneWay}" />
<Label Grid.Column="0" Grid.Row="3" Content="Organisator" Margin="3" />
<TextBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="3" Height="23" Margin="3" Text="{Binding Path=SelectedAppointment.Originator.FirstNameLastName, Mode=OneWay}" IsReadOnly="True" />
<Label
Grid.Row="3"
Grid.Column="0"
Margin="3"
Content="Organisator" />
<TextBox
Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
IsReadOnly="True"
Text="{Binding Path=SelectedAppointment.Originator.FirstNameLastName, Mode=OneWay}" />
<Label Grid.Column="0" Grid.Row="4" VerticalAlignment="Center" Content="Start" Margin="3"/>
<dxe:DateEdit Grid.Column="1" Grid.Row="4" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" IsEnabled="True" EditValue="{Binding SelectedAppointment.Start, Mode=OneWay}" IsReadOnly="True" PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit IsEnabled="True" Grid.Column="2" Grid.Row="4" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding SelectedAppointment.StartTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}" IsReadOnly="True"/>
<dxe:CheckEdit IsEnabled="False" Grid.Column="3" Grid.Row="4" Content="Ganztägig" EditValue ="{Binding SelectedAppointment.AllDay, Mode=OneWay}" HorizontalAlignment="Right" Margin="3" IsReadOnly="True" />
<Label
Grid.Row="4"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="Start" />
<dxe:DateEdit
Grid.Row="4"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
Background="White"
EditValue="{Binding SelectedAppointment.Start, Mode=OneWay}"
IsEnabled="True"
IsReadOnly="True"
MaskType="DateTimeAdvancingCaret"
PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit
Grid.Row="4"
Grid.Column="2"
Height="23"
Margin="3"
EditValue="{Binding SelectedAppointment.StartTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}"
IsEnabled="True"
IsReadOnly="True"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True" />
<dxe:CheckEdit
Grid.Row="4"
Grid.Column="3"
Margin="3"
HorizontalAlignment="Right"
Content="Ganztägig"
EditValue="{Binding SelectedAppointment.AllDay, Mode=OneWay}"
IsEnabled="False"
IsReadOnly="True" />
<Label Grid.Column="0" Grid.Row="5" VerticalAlignment="Center" Content="Ende" Margin="3"/>
<dxe:DateEdit IsEnabled="True" Grid.Column="1" Grid.Row="5" MaskType="DateTimeAdvancingCaret" Background="White" Height="23" MinWidth="80" Margin="3" EditValue="{Binding SelectedAppointment.End, Mode=OneWay}" IsReadOnly="True" PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit IsEnabled="True" Grid.Column="2" Grid.Row="5" MaskType="DateTime" Mask="t" MaskUseAsDisplayFormat="True" Margin="3" Height="23" EditValue ="{Binding SelectedAppointment.EndTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}" IsReadOnly="True"/>
<Label
Grid.Row="5"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="Ende" />
<dxe:DateEdit
Grid.Row="5"
Grid.Column="1"
Height="23"
MinWidth="80"
Margin="3"
Background="White"
EditValue="{Binding SelectedAppointment.End, Mode=OneWay}"
IsEnabled="True"
IsReadOnly="True"
MaskType="DateTimeAdvancingCaret"
PopupOpening="PopupBaseEdit_OnPopupOpening" />
<dxe:TextEdit
Grid.Row="5"
Grid.Column="2"
Height="23"
Margin="3"
EditValue="{Binding SelectedAppointment.EndTime, Converter={StaticResource TimeSpanToDateTimeConverter}, Mode=OneWay}"
IsEnabled="True"
IsReadOnly="True"
Mask="t"
MaskType="DateTime"
MaskUseAsDisplayFormat="True" />
<Label Grid.Column="0" Grid.Row="6" VerticalAlignment="Center" Content="Serientermin" Margin="3" Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=SerienterminLabel}" />
<TextBlock Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="3" Margin="3" Padding="0" Foreground="Black" VerticalAlignment="Center"
Text="{Binding Path=SelectedAppointment, Converter={StaticResource RecurringAppointmentDurationConverter}}"
Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=SerienterminLabel}"
TextWrapping="WrapWithOverflow"/>
<Label
Grid.Row="6"
Grid.Column="0"
Margin="3"
VerticalAlignment="Center"
Content="Serientermin"
Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=SerienterminLabel}" />
<TextBlock
Grid.Row="6"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="3"
Padding="0"
VerticalAlignment="Center"
Foreground="Black"
Text="{Binding Path=SelectedAppointment, Converter={StaticResource RecurringAppointmentDurationConverter}}"
TextWrapping="WrapWithOverflow"
Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=SerienterminLabel}" />
<Label Grid.Column="0" Grid.Row="7" Margin="3" Content="Notiz"/>
<TextBox Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="3" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Disabled" Margin="3" TextWrapping="Wrap" Text="{Binding Path=SelectedAppointment.Description, Mode=OneWay}" IsReadOnly="True" />
<Label
Grid.Row="7"
Grid.Column="0"
Margin="3"
Content="Notiz" />
<TextBox
Grid.Row="7"
Grid.Column="1"
Grid.ColumnSpan="3"
Margin="3"
VerticalAlignment="Stretch"
AcceptsReturn="True"
HorizontalScrollBarVisibility="Disabled"
IsReadOnly="True"
Text="{Binding Path=SelectedAppointment.Description, Mode=OneWay}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
<Grid Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4">
<Grid
Grid.Row="8"
Grid.Column="0"
Grid.ColumnSpan="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="AlleBestaetigen" Grid.Column="0" Content="Alle bestätigen" Margin="3" Click="ConfirmAllButton_OnClick" Width="100" />
<StackPanel x:Name="ZusagenStack" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal" Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=ZusagenStack}">
<Button
x:Name="AlleBestaetigen"
Grid.Column="0"
Width="100"
Margin="3"
Click="ConfirmAllButton_OnClick"
Content="Alle bestätigen" />
<StackPanel
x:Name="ZusagenStack"
Grid.Column="1"
HorizontalAlignment="Right"
Orientation="Horizontal"
Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=ZusagenStack}">
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal">
<Button Margin="3" Content="Zusagen" Click="ConfirmButton_OnClick" IsEnabled="{Binding SelectedAppointment, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Mit Vorbehalt" Click="ConfirmWithReservationButton_OnClick" IsEnabled="{Binding SelectedAppointment, Converter={StaticResource ObjectBoolConverter}}" />
<Button Margin="3" Content="Absagen" Click="RejectButton_OnClick" IsEnabled="{Binding SelectedAppointment, Converter={StaticResource ObjectBoolConverter}}" />
<Button
Margin="3"
Click="ConfirmButton_OnClick"
Content="Zusagen"
IsEnabled="{Binding SelectedAppointment, Converter={StaticResource ObjectBoolConverter}}" />
<Button
Margin="3"
Click="ConfirmWithReservationButton_OnClick"
Content="Mit Vorbehalt"
IsEnabled="{Binding SelectedAppointment, Converter={StaticResource ObjectBoolConverter}}" />
<Button
Margin="3"
Click="RejectButton_OnClick"
Content="Absagen"
IsEnabled="{Binding SelectedAppointment, Converter={StaticResource ObjectBoolConverter}}" />
</StackPanel>
</StackPanel>
</Grid>
<Button x:Name="OkButton" Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="3" Width="100" Content="OK" Click="OkButton_OnClick" Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=OKBtn}" />
<Button
x:Name="OkButton"
Grid.Row="8"
Grid.Column="0"
Grid.ColumnSpan="4"
Width="100"
Margin="3"
HorizontalAlignment="Right"
Click="OkButton_OnClick"
Content="OK"
Visibility="{Binding Path=SelectedAppointment, Converter={StaticResource RequestVisibilityConverter}, ConverterParameter=OKBtn}" />
</Grid>
</Grid>
<Button Grid.Row="1" x:Name="CloseBtn" Content="Schließen" HorizontalAlignment="Right" Margin="3" Width="100" Click="CloseButton_OnClick" />
<Button
x:Name="CloseBtn"
Grid.Row="1"
Width="100"
Margin="3"
HorizontalAlignment="Right"
Click="CloseButton_OnClick"
Content="Schließen" />
</Grid>
</dx:DXWindow>

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,23 @@
<Window x:Class="BeWo.SchulbegleitenderDienst.KrankheitsZeitraumView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:view="clr-namespace:BeWo.SchulbegleitenderDienst.View"
mc:Ignorable="d"
Background="Transparent" WindowStartupLocation="CenterScreen"
d:DataContext="{d:DesignData Type=AbsenceTimeEditViewModel}"
SizeToContent="WidthAndHeight" WindowStyle="None" AllowsTransparency="True">
<GroupBox Header="Zeitraum auswählen" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Background="Transparent" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
<Window
x:Class="BeWo.SchulbegleitenderDienst.KrankheitsZeitraumView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:view="clr-namespace:BeWo.SchulbegleitenderDienst.View"
d:DataContext="{d:DesignData Type=AbsenceTimeEditViewModel}"
AllowsTransparency="True"
Background="Transparent"
SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterScreen"
WindowStyle="None"
mc:Ignorable="d">
<GroupBox
x:Name="rootGroupBox"
Background="Transparent"
Header="Zeitraum auswählen"
MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown"
Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid>
<view:AbsenceTimeEditView />
</Grid>

View File

@@ -1,298 +1,536 @@
<Window x:Class="BeWo.SchulbegleitenderDienst.VertretenderKlientSearchView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:view="clr-namespace:BeWo.View"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Title="Vertretung auswählen" Height="650" Width="750" WindowStartupLocation="CenterScreen"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent">
<Window
x:Class="BeWo.SchulbegleitenderDienst.VertretenderKlientSearchView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:search="clr-namespace:BeWo.View.Search"
xmlns:view="clr-namespace:BeWo.View"
Title="Vertretung auswählen"
Width="750"
Height="650"
Background="Transparent"
ResizeMode="CanResizeWithGrip"
WindowStartupLocation="CenterScreen"
WindowStyle="None">
<GroupBox Header="{markup:Translate Vertretenden auswählen}" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
<GroupBox
x:Name="rootGroupBox"
Header="{markup:Translate Vertretenden auswählen}"
MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown"
Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid>
<Grid Background="White" x:Name="rootGroupBoxMitarbeiter" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="225"/>
<RowDefinition Height="125"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- ############################### Oberes 1/3 auswahl Kriterien ################################################ -->
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="125"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Header="{markup:Translate Mitarbeiter Wunsch Kriterien}" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<!-- Ready machen für teilweise funktion / Combobox zur auswahl der tokens und TextBox zur anzeige der ausgewählten tokens -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid x:Name="rootGroupBoxMitarbeiter" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="225" />
<RowDefinition Height="125" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- ############################### Oberes 1/3 auswahl Kriterien ################################################ -->
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="125" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="3,3,3,3"
Header="{markup:Translate Mitarbeiter Wunsch Kriterien}"
Style="{StaticResource ObjectEditGroupBox}">
<!-- Ready machen für teilweise funktion / Combobox zur auswahl der tokens und TextBox zur anzeige der ausgewählten tokens -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- <controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="MitarbeiterWunschAuswahl" SelectionChanged="MitarbeiterWunschAuswahl_OnSelectionChanged" Width="200" Height="23" Visibility="Collapsed" /> -->
<TextBox Grid.Row="1" Grid.Column="0" Margin="3" x:Name="MitarbeiterWunschAnzeige" MinHeight="50" TextWrapping="Wrap" Width="200" IsReadOnly="True" />
</Grid>
</GroupBox>
<!-- <controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="MitarbeiterWunschAuswahl" SelectionChanged="MitarbeiterWunschAuswahl_OnSelectionChanged" Width="200" Height="23" Visibility="Collapsed" /> -->
<GroupBox Header="{markup:Translate Mitarbeiter Ausschluss Kriterien}" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<!-- Ready machen für teilweise funktion <ColumnDefinition Width="Auto"/>
<TextBox
x:Name="MitarbeiterWunschAnzeige"
Grid.Row="1"
Grid.Column="0"
Width="200"
MinHeight="50"
Margin="3"
IsReadOnly="True"
TextWrapping="Wrap" />
</Grid>
</GroupBox>
<GroupBox
Grid.Row="0"
Grid.Column="2"
Grid.ColumnSpan="2"
Margin="3,3,3,3"
Header="{markup:Translate Mitarbeiter Ausschluss Kriterien}"
Style="{StaticResource ObjectEditGroupBox}">
<!-- Ready machen für teilweise funktion <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <RowDefinition Height="Auto"/>-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- <controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="MitarbeiterAussschlussAuswahl" SelectionChanged="MitarbeiterAussschlussAuswahl_OnSelectionChanged" Width="200" Height="23" Visibility="Collapsed"/> -->
<!-- <controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="MitarbeiterAussschlussAuswahl" SelectionChanged="MitarbeiterAussschlussAuswahl_OnSelectionChanged" Width="200" Height="23" Visibility="Collapsed"/> -->
<TextBox Grid.Row="1" Margin="3" Grid.Column="0" x:Name="MitarbeiterAussschlussAnzeige" Width="200" MinHeight="50" TextWrapping="Wrap" IsReadOnly="True"/>
<TextBox
x:Name="MitarbeiterAussschlussAnzeige"
Grid.Row="1"
Grid.Column="0"
Width="200"
MinHeight="50"
Margin="3"
IsReadOnly="True"
TextWrapping="Wrap" />
</Grid>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Header="{markup:Translate Klient Wunsch Kriterien}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<GroupBox
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="3,3,3,3"
Header="{markup:Translate Klient Wunsch Kriterien}"
Style="{StaticResource ObjectEditGroupBox}">
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="KlientWunschAuswahl" SelectionChanged="KlientWunschAuswahl_OnSelectionChanged" Width="200" Height="23" />
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox Grid.Row="1" Margin="3" Grid.Column="0" x:Name="KlientWunschAnzeige" Width="200" MinHeight="50" TextWrapping="Wrap" IsReadOnly="True"/>
</Grid>
<controls:NullItemComboBox
x:Name="KlientWunschAuswahl"
Grid.Row="0"
Grid.Column="0"
Width="200"
Height="23"
SelectionChanged="KlientWunschAuswahl_OnSelectionChanged" />
<!-- ############################################################################################################## -->
</GroupBox>
<TextBox
x:Name="KlientWunschAnzeige"
Grid.Row="1"
Grid.Column="0"
Width="200"
MinHeight="50"
Margin="3"
IsReadOnly="True"
TextWrapping="Wrap" />
<GroupBox Header="{markup:Translate Klient Ausschluss Kriterien}" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
</Grid>
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<controls:NullItemComboBox Grid.Row="0" Grid.Column="0" x:Name="KlientAussschlussAuswahl" SelectionChanged="KlientAussschlussAuswahl_OnSelectionChanged" Width="200" Height="23" />
<!-- ############################################################################################################## -->
</GroupBox>
<GroupBox
Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="2"
Margin="3,3,3,3"
Header="{markup:Translate Klient Ausschluss Kriterien}"
Style="{StaticResource ObjectEditGroupBox}">
<!-- ############### wird durch Token Combobox mit devexpress vers. 17 ersetzt ################################## -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<controls:NullItemComboBox
x:Name="KlientAussschlussAuswahl"
Grid.Row="0"
Grid.Column="0"
Width="200"
Height="23"
SelectionChanged="KlientAussschlussAuswahl_OnSelectionChanged" />
<TextBox
x:Name="KlientAussschlussAnzeige"
Grid.Row="1"
Grid.Column="0"
Width="200"
MinHeight="50"
Margin="3"
IsReadOnly="True"
TextWrapping="Wrap" />
</Grid>
<!-- ############################################################################################################## -->
</GroupBox>
<GroupBox
Grid.Row="0"
Grid.Column="4"
Margin="3,3,3,3"
Header="Geschlecht"
Style="{StaticResource ObjectEditGroupBox}">
<WrapPanel Orientation="Horizontal">
<CheckBox
x:Name="RBMaennlich"
Margin="3,3,3,3"
Click="RBMaennlich_OnClick"
Content="männlich"
IsChecked="True" />
<CheckBox
x:Name="RBWeiblich"
Margin="3,3,3,3"
Click="RBWeiblich_OnClick"
Content="weiblich"
IsChecked="True" />
</WrapPanel>
</GroupBox>
<Grid
Grid.Row="1"
Margin="3,3,3,3"
Column="4">
<Grid.RowDefinitions>
<RowDefinition Height="60" />
<RowDefinition Height="60" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="0"
Margin="1"
Header="{markup:Translate Klienten PLZ}"
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<WrapPanel
Grid.Column="0"
Margin="1"
HorizontalAlignment="Left"
Orientation="Horizontal">
<Label Content="Plz:" />
<Label x:Name="LabelPlzMitarbeiter" Width="50" />
</WrapPanel>
<WrapPanel
Grid.Column="1"
Margin="1"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Label Content="Ort:" />
<Label x:Name="LabelOrtMitarbeiter" Width="100" />
</WrapPanel>
</Grid>
</GroupBox>
<GroupBox
Grid.Row="1"
Margin="1"
Header="Suche nach"
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<WrapPanel
Grid.Column="0"
Margin="1"
HorizontalAlignment="Left"
Orientation="Horizontal">
<Label Content="Plz:" />
<dxe:TextEdit
x:Name="PlzMitarbeiter"
Width="50"
Height="23"
VerticalContentAlignment="Center"
EditValueChanged="PlzMitarbeiter_OnEditValueChanged"
Mask="\d{1,5}"
MaskType="RegEx"
ShowError="False" />
</WrapPanel>
<WrapPanel
Grid.Column="1"
Margin="1"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Label Content="Ort:" />
<TextBox
x:Name="OrtMitarbeiter"
Width="100"
Height="23"
VerticalContentAlignment="Center"
TextChanged="OrtMitarbeiter_OnTextChanged" />
</WrapPanel>
</Grid>
</GroupBox>
<TextBox Grid.Row="1" Margin="3" Grid.Column="0" x:Name="KlientAussschlussAnzeige" Width="200" MinHeight="50" TextWrapping="Wrap" IsReadOnly="True"/>
</Grid>
<!-- ############################################################################################################## -->
</GroupBox>
</Grid>
<GroupBox Header="Geschlecht" Grid.Row="0" Grid.Column="4" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3">
<WrapPanel Orientation="Horizontal">
<CheckBox Content="männlich" Margin="3,3,3,3" Click="RBMaennlich_OnClick" x:Name="RBMaennlich" IsChecked="True"/>
<CheckBox Content="weiblich" Margin="3,3,3,3" Click="RBWeiblich_OnClick" x:Name="RBWeiblich" IsChecked="True" />
</WrapPanel>
</GroupBox>
<Grid Column="4" Grid.Row="1" Margin="3,3,3,3">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="{markup:Translate Klienten PLZ}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Left" Grid.Column="0">
<Label Content ="Plz:" />
<Label x:Name="LabelPlzMitarbeiter" Width="50" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" Margin="1" HorizontalAlignment="Right" Grid.Column="1">
<Label Content="Ort:"/>
<Label x:Name="LabelOrtMitarbeiter" Width="100" />
</WrapPanel>
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Margin="1" Style="{StaticResource ObjectEditGroupBox}" Header="Suche nach">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="1" Grid.Column="0">
<Label Content="Plz:" />
<dxe:TextEdit x:Name="PlzMitarbeiter" Height="23" Width="50" VerticalContentAlignment="Center" EditValueChanged="PlzMitarbeiter_OnEditValueChanged" MaskType="RegEx" Mask="\d{1,5}" ShowError="False" />
</WrapPanel>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="1" Grid.Column="1">
<Label Content="Ort:" />
<TextBox x:Name="OrtMitarbeiter" Height="23" Width="100" VerticalContentAlignment="Center" TextChanged="OrtMitarbeiter_OnTextChanged" />
</WrapPanel>
</Grid>
</GroupBox>
</Grid>
</Grid>
<!-- ##################################################################################################################### -->
<!--Bereich einfügen um auszuwählen ob ganzen tag oder nur teilweise -->
<GroupBox Header="Vertretungs Zeitraum" Grid.Row="1" Grid.Column="0" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<CheckBox Grid.Column="2" Grid.Row="0" Grid.ColumnSpan="2" Content="ganztägig" Unchecked="KVCheckBox_OnUnchecked" Checked="KVCheckBox_OnChecked"
HorizontalAlignment="Left" x:Name="KVCheckBox" />
<Label Grid.Row="1" Grid.Column="0" Content="Vertretung ab" />
<Label Grid.Row="2" Grid.Column="0" Content="Vertretung bis" />
<Label Grid.Row="1" Grid.Column="2" Content="Uhrzeit von" x:Name="KVLabelUhrzeitVon" />
<Label Grid.Row="2" Grid.Column="2" Content="Uhrzeit bis" x:Name="KVLabelUhrzeitBis" />
<dxe:DateEdit x:Name="KVDatepickerVon" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Width="125" EditValueChanged="KVDatepickerVon_OnEditValueChanged"/>
<dxe:DateEdit x:Name="KVDatepickerBis" MaskType="DateTimeAdvancingCaret" Grid.Column="1" Grid.Row="2" Margin="3" Height="23" Width="125" EditValueChanged="KVDatepickerBis_OnEditValueChanged" />
<dxe:TextEdit Grid.Column="3" Grid.Row="1" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="KVDatepicker_UhrzeitVon"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor"
Height="23" Grid.ColumnSpan="2" Visibility="Visible" Width="75"
Margin="3,3,3,3"/>
<dxe:TextEdit Grid.Column="3" Grid.Row="2" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True" x:Name="KVDatepicker_UhrzeitBis"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor" Width="75"
Height="23" Grid.ColumnSpan="2" Visibility="Visible"
Margin="3,3,3,3"/>
</Grid>
</GroupBox>
<!--##################################################################-->
<!-- ##################################### unterer 2/3 Mitarbeiter Controll ####################################### -->
<!--<search:EmployeeSearchView Grid.Row="2" Grid.Column="0" x:Name="MitarbeiterVertretungsearchview" Margin="3,3,3,3" ItemSelected="MitarbeiterVertretungsearchview_OnItemSelected" />-->
<!-- Aus der SearchView ein Grid Bauen das mehr Informationen Enthält / zurzeit Name Adresse Arbeitszeit -->
<dxg:GridControl x:Name="GridDataControlKlientVertretungsearchview" Visibility="Visible" Grid.Row="2" Grid.Column="0" AllowDrop="true" Margin="3,3,3,3" VerticalContentAlignment="Center" >
<dxg:GridControl.Columns >
<dxg:GridColumn FieldName="Name" Width="155" ReadOnly="True" Header="Name"/>
<dxg:GridColumn FieldName="Postleitzahl" Width="75" ReadOnly="True" Header="Postleitzahl" />
<dxg:GridColumn FieldName="Strasse" Width="100" ReadOnly="True" Header="Strasse" />
<dxg:GridColumn FieldName="Stadt" Width="105" ReadOnly="True" Header="Stadt" />
<dxg:GridColumn FieldName="Geschlecht" Width="75" ReadOnly="True" Header="Geschlecht" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" />
</dxg:GridControl.View>
</dxg:GridControl>
<!-- ##################################################################################################################### -->
<!-- Bereich einfügen um auszuwählen ob ganzen tag oder nur teilweise -->
<GroupBox
Grid.Row="1"
Grid.Column="0"
Margin="3,3,3,3"
Header="Vertretungs Zeitraum"
Style="{StaticResource ObjectEditGroupBox}">
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox
x:Name="KVCheckBox"
Grid.Row="0"
Grid.Column="2"
Grid.ColumnSpan="2"
HorizontalAlignment="Left"
Checked="KVCheckBox_OnChecked"
Content="ganztägig"
Unchecked="KVCheckBox_OnUnchecked" />
<Label
Grid.Row="1"
Grid.Column="0"
Content="Vertretung ab" />
<Label
Grid.Row="2"
Grid.Column="0"
Content="Vertretung bis" />
<Label
x:Name="KVLabelUhrzeitVon"
Grid.Row="1"
Grid.Column="2"
Content="Uhrzeit von" />
<Label
x:Name="KVLabelUhrzeitBis"
Grid.Row="2"
Grid.Column="2"
Content="Uhrzeit bis" />
<dxe:DateEdit
x:Name="KVDatepickerVon"
Grid.Row="1"
Grid.Column="1"
Width="125"
Height="23"
Margin="3"
EditValueChanged="KVDatepickerVon_OnEditValueChanged"
MaskType="DateTimeAdvancingCaret" />
<dxe:DateEdit
x:Name="KVDatepickerBis"
Grid.Row="2"
Grid.Column="1"
Width="125"
Height="23"
Margin="3"
EditValueChanged="KVDatepickerBis_OnEditValueChanged"
MaskType="DateTimeAdvancingCaret" />
<dxe:TextEdit
x:Name="KVDatepicker_UhrzeitVon"
Grid.Row="1"
Grid.Column="3"
Grid.ColumnSpan="2"
Width="75"
Height="23"
Margin="3,3,3,3"
InvalidValueBehavior="AllowLeaveEditor"
Mask="(0?\d|1\d|2[0-3]):[0-5]\d"
MaskShowPlaceHolders="True"
MaskType="RegEx"
MaskUseAsDisplayFormat="True"
ShowError="False"
Visibility="Visible" />
<dxe:TextEdit
x:Name="KVDatepicker_UhrzeitBis"
Grid.Row="2"
Grid.Column="3"
Grid.ColumnSpan="2"
Width="75"
Height="23"
Margin="3,3,3,3"
InvalidValueBehavior="AllowLeaveEditor"
Mask="(0?\d|1\d|2[0-3]):[0-5]\d"
MaskShowPlaceHolders="True"
MaskType="RegEx"
MaskUseAsDisplayFormat="True"
ShowError="False"
Visibility="Visible" />
</Grid>
</GroupBox>
<!-- ################################################################## -->
<!-- ##################################### unterer 2/3 Mitarbeiter Controll ####################################### -->
<!--<search:EmployeeSearchView Grid.Row="2" Grid.Column="0" x:Name="MitarbeiterVertretungsearchview" Margin="3,3,3,3" ItemSelected="MitarbeiterVertretungsearchview_OnItemSelected" />-->
<!-- Aus der SearchView ein Grid Bauen das mehr Informationen Enthält / zurzeit Name Adresse Arbeitszeit -->
<dxg:GridControl
x:Name="GridDataControlKlientVertretungsearchview"
Grid.Row="2"
Grid.Column="0"
Margin="3,3,3,3"
VerticalContentAlignment="Center"
AllowDrop="true"
Visibility="Visible">
<dxg:GridControl.Columns>
<dxg:GridColumn
Width="155"
FieldName="Name"
Header="Name"
ReadOnly="True" />
<dxg:GridColumn
Width="75"
FieldName="Postleitzahl"
Header="Postleitzahl"
ReadOnly="True" />
<dxg:GridColumn
Width="100"
FieldName="Strasse"
Header="Strasse"
ReadOnly="True" />
<dxg:GridColumn
Width="105"
FieldName="Stadt"
Header="Stadt"
ReadOnly="True" />
<dxg:GridColumn
Width="75"
FieldName="Geschlecht"
Header="Geschlecht"
ReadOnly="True" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView
AllowPerPixelScrolling="True"
AutoWidth="True"
ShowTotalSummary="False" />
</dxg:GridControl.View>
</dxg:GridControl>
<!-- ################################################################################################## Margin="3,3,3,3" -->
<StackPanel Grid.Row="3" Grid.Column="0">
<WrapPanel
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Orientation="Horizontal">
<Button
Width="90"
Margin="3,3,3,3"
Click="ButtonBase_OnClick"
Content="Übernehmen" />
<Button
Width="90"
Margin="3,3,3,3"
Click="ButtonClose_OnClick"
Content="Schließen" />
</WrapPanel>
</StackPanel>
<!-- ####################### Closed="popup_Closed" Opened="popup_Opened"###StaysOpen="False"Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" #################################################################################### -->
</Grid>
<!-- ################################################################################################## Margin="3,3,3,3"-->
<StackPanel Grid.Row="3" Grid.Column="0" >
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" >
<Button Content="Übernehmen" Width="90" Click="ButtonBase_OnClick" Margin="3,3,3,3" />
<Button Content="Schließen" Width="90" Click="ButtonClose_OnClick" Margin="3,3,3,3"/>
</WrapPanel>
</StackPanel>
<!-- ####################### Closed="popup_Closed" Opened="popup_Opened"###StaysOpen="False"Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" #################################################################################### -->
</Grid>
</Grid>
</GroupBox>
</GroupBox>
</Window>

View File

@@ -1,163 +1,420 @@
<Window x:Class="BeWo.SchulbegleitenderDienst.VertretungsSearchView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Title="Vertretung auswählen" SizeToContent="WidthAndHeight" AllowsTransparency="True" WindowStartupLocation="CenterScreen"
ResizeMode="CanResizeWithGrip" WindowStyle="None" Background="Transparent" d:DataContext="{d:DesignData VertretungsSearchView}">
<Window.Resources>
<Window
x:Class="BeWo.SchulbegleitenderDienst.VertretungsSearchView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Vertretung auswählen"
d:DataContext="{d:DesignData VertretungsSearchView}"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="CanResizeWithGrip"
SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterScreen"
WindowStyle="None"
mc:Ignorable="d">
<Window.Resources>
<dxmvvm:NumericToVisibilityConverter x:Key="NumericToVisibilityConverter" Inverse="True" />
<ControlTemplate x:Key="{dxgt:TableViewThemeKey ResourceKey=DataPresenterTemplate, ThemeName=Office2010Black}" TargetType="{x:Type dxg:DataPresenter}">
<Border Background="White">
<Grid>
<ContentPresenter/>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Es wurden keine Datensätze gefunden" Opacity="1"
Visibility="{Binding VisibleRowCount, Converter={StaticResource NumericToVisibilityConverter}, RelativeSource={RelativeSource AncestorType=dxg:GridControl}}" />
<ContentPresenter />
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Opacity="1"
Text="Es wurden keine Datensätze gefunden"
Visibility="{Binding VisibleRowCount, Converter={StaticResource NumericToVisibilityConverter}, RelativeSource={RelativeSource AncestorType=dxg:GridControl}}" />
</Grid>
</Border>
</ControlTemplate>
</Window.Resources>
<GroupBox Header="Vertretung auswählen" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown" >
<Grid>
<Grid Background="White" x:Name="GridMain">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="3,3,3,0" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="{markup:Translate Klient/in:}" Margin="3,2,3,0" FontWeight="Bold"/>
<Label x:Name="lblCustomerName" Grid.Row="1" Grid.Column="0" Grid.RowSpan="2" Margin="3,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="1" Content="Schule:" Margin="15,2,2,0" FontWeight="Bold"/>
<Label x:Name="lblSchoolName" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
<Label Grid.Row="0" Grid.Column="2" Content="Betreuungszeiten:" Margin="15,2,2,0" FontWeight="Bold"/>
<Label x:Name="lblBetreuungszeiten" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" Margin="15,0,3,2" Content="Max Mustermann"/>
<GroupBox
x:Name="rootGroupBox"
Header="Vertretung auswählen"
MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown"
Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid>
<Grid x:Name="GridMain" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid
Grid.Row="0"
Margin="3,3,3,0"
HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3,2,3,0"
Content="{markup:Translate Klient/in:}"
FontWeight="Bold" />
<Label
x:Name="lblCustomerName"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="0"
Margin="3,0,3,2"
Content="Max Mustermann" />
<Label Grid.Row="0" Grid.Column="3" Content="{markup:Translate Klient Wunschkriterien}" Margin="15,2,3,0" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="3" Grid.RowSpan="2" Margin="15,0,3,2" x:Name="TokenBoxWunschAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>
<Label
Grid.Row="0"
Grid.Column="1"
Margin="15,2,2,0"
Content="Schule:"
FontWeight="Bold" />
<Label
x:Name="lblSchoolName"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="1"
Margin="15,0,3,2"
Content="Max Mustermann" />
<Label Grid.Row="0" Grid.Column="4" Content="{markup:Translate Klient Ausschlusskriterien}" Margin="15,2,2,0" FontWeight="Bold"/>
<dxg:LookUpEdit Grid.Row="1" Grid.Column="4" Grid.RowSpan="2" Margin="15,0,2,3" x:Name="TokenBoxAusschlussAnzeige" ValidateOnTextInput="True" ValidateOnEnterKeyPressed="True" TextWrapping="Wrap" IsReadOnly="True"
MinHeight="50" Width="150" PopupHeight="500" PopupWidth="750" PopupMinHeight="100" PopupMinWidth="100" IsPopupAutoWidth="False" >
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True"/>
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>
</Grid>
<GroupBox Header="" Grid.Row="1" Margin="3,0,3,3" Style="{DynamicResource ObjectEditGroupBox}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Vertretung ab" Margin="3"/>
<Label Grid.Row="1" Grid.Column="0" Content="Vertretung bis" Margin="3" />
<dxe:DateEdit x:Name="KVDatepickerVon" EditValue="{Binding Path=SubstitutionStart, UpdateSourceTrigger=PropertyChanged}" MaskType="DateTimeAdvancingCaret" AllowNullInput="False" Grid.Column="1" Grid.Row="0" Margin="3" Height="23" Width="125" />
<dxe:DateEdit x:Name="KVDatepickerBis" EditValue="{Binding Path=SubstitutionEnd, UpdateSourceTrigger=PropertyChanged}" MaskType="DateTimeAdvancingCaret" AllowNullInput="False" Grid.Column="1" Grid.Row="1" Margin="3" Height="23" Width="125" />
<Label Grid.Column="2" Grid.Row="0" Content="Uhrzeit" Margin="3" />
<dxe:TextEdit Grid.Column="3" Grid.Row="0" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True"
MaskUseAsDisplayFormat="True" x:Name="startTime" Height="23" Width="60" Margin="3"/>
<Label Grid.Column="2" Grid.Row="1" Content="Uhrzeit" Margin="3" />
<dxe:TextEdit Grid.Column="3" Grid.Row="1" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" ShowError="False" MaskShowPlaceHolders="True"
MaskUseAsDisplayFormat="True" x:Name="endTime" Height="23" Width="60" Margin="3"/>
<Label
Grid.Row="0"
Grid.Column="2"
Margin="15,2,2,0"
Content="Betreuungszeiten:"
FontWeight="Bold" />
<Label
x:Name="lblBetreuungszeiten"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="2"
Margin="15,0,3,2"
Content="Max Mustermann" />
<Label x:Name="lblZuletztVertreten" Grid.Row="0" Grid.Column="5" Margin="3" Content="Letzte Vertretung" />
<ListBox Grid.Row="0" Grid.Column="6" Width="200" Height="54" Grid.RowSpan="2" Margin="3" x:Name="ListBoxLetzteVertreter" LostFocus="LetzteVertreter_OnLostFocus" SelectionChanged="LetzteVertreter_OnSelectionChanged" />
</Grid>
</GroupBox>
<GroupBox Header="" Grid.Row="2" Grid.Column="0" Style="{StaticResource ObjectEditGroupBox}" Margin="3,3,3,3" >
<Grid >
<Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="3"
Margin="15,2,3,0"
Content="{markup:Translate Klient Wunschkriterien}"
FontWeight="Bold" />
<dxg:LookUpEdit
x:Name="TokenBoxWunschAnzeige"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="3"
Width="150"
MinHeight="50"
Margin="15,0,3,2"
IsPopupAutoWidth="False"
IsReadOnly="True"
PopupHeight="500"
PopupMinHeight="100"
PopupMinWidth="100"
PopupWidth="750"
TextWrapping="Wrap"
ValidateOnEnterKeyPressed="True"
ValidateOnTextInput="True">
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True" />
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>
<Label
Grid.Row="0"
Grid.Column="4"
Margin="15,2,2,0"
Content="{markup:Translate Klient Ausschlusskriterien}"
FontWeight="Bold" />
<dxg:LookUpEdit
x:Name="TokenBoxAusschlussAnzeige"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="4"
Width="150"
MinHeight="50"
Margin="15,0,2,3"
IsPopupAutoWidth="False"
IsReadOnly="True"
PopupHeight="500"
PopupMinHeight="100"
PopupMinWidth="100"
PopupWidth="750"
TextWrapping="Wrap"
ValidateOnEnterKeyPressed="True"
ValidateOnTextInput="True">
<dxg:LookUpEdit.StyleSettings>
<dxg:TokenLookUpEditStyleSettings EnableTokenWrapping="True" />
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>
</Grid>
<GroupBox
Grid.Row="1"
Margin="3,0,3,3"
Header=""
Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<WrapPanel Orientation="Horizontal" Margin="0,3,0,3">
<CheckBox Content="{markup:Translate männlich}" Margin="3,0,3,0" Click="RBMaennlich_OnClick" x:Name="RBMaennlich" IsChecked="True" VerticalAlignment="Center"/>
<CheckBox Content="{markup:Translate weiblich}" Margin="3,0,3,0" Click="RBWeiblich_OnClick" x:Name="RBWeiblich" IsChecked="True" VerticalAlignment="Center"/>
<Label Content="PLZ:" Margin="10,0,3,0"/>
<dxe:TextEdit x:Name="PlzKlient" Margin="3,0,3,0" Height="23" Width="70" VerticalContentAlignment="Center" EditValueChanged="PlzKlient_OnTextChanged" MaskType="RegEx" Mask="\d{1,5}" ShowError="False" />
<Label Content="Ort:" Margin="3,0,3,0"/>
<TextBox x:Name="OrtKlient" Margin="3,0,3,0" Height="23" Width="200" VerticalContentAlignment="Center" TextChanged="OrtKlient_OnTextChanged" />
<CheckBox Content="{markup:Translate Verwende Abstandsmessung}" Margin="3,0,3,0" x:Name="chkEntfernungssuche" IsChecked="False" VerticalAlignment="Center" ToolTip="{markup:Translate Das Aktivieren der Option verwendet die Google Suche um den Abstand zwischen Adressen zu messen. Dieser Vorgang kann etwas mehr Zeit benötigen.}"/>
</WrapPanel>
<Button Grid.Row="1" Content="Suche starten" Width="90" Click="ButtonSuche_OnClick" Margin="3,3,3,3" HorizontalAlignment="Right" />
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
Content="Vertretung ab" />
<Label
Grid.Row="1"
Grid.Column="0"
Margin="3"
Content="Vertretung bis" />
<dxe:DateEdit
x:Name="KVDatepickerVon"
Grid.Row="0"
Grid.Column="1"
Width="125"
Height="23"
Margin="3"
AllowNullInput="False"
EditValue="{Binding Path=SubstitutionStart, UpdateSourceTrigger=PropertyChanged}"
MaskType="DateTimeAdvancingCaret" />
<dxe:DateEdit
x:Name="KVDatepickerBis"
Grid.Row="1"
Grid.Column="1"
Width="125"
Height="23"
Margin="3"
AllowNullInput="False"
EditValue="{Binding Path=SubstitutionEnd, UpdateSourceTrigger=PropertyChanged}"
MaskType="DateTimeAdvancingCaret" />
<Label
Grid.Row="0"
Grid.Column="2"
Margin="3"
Content="Uhrzeit" />
<dxe:TextEdit
x:Name="startTime"
Grid.Row="0"
Grid.Column="3"
Width="60"
Height="23"
Margin="3"
Mask="(0?\d|1\d|2[0-3]):[0-5]\d"
MaskShowPlaceHolders="True"
MaskType="RegEx"
MaskUseAsDisplayFormat="True"
ShowError="False" />
<Label
Grid.Row="1"
Grid.Column="2"
Margin="3"
Content="Uhrzeit" />
<dxe:TextEdit
x:Name="endTime"
Grid.Row="1"
Grid.Column="3"
Width="60"
Height="23"
Margin="3"
Mask="(0?\d|1\d|2[0-3]):[0-5]\d"
MaskShowPlaceHolders="True"
MaskType="RegEx"
MaskUseAsDisplayFormat="True"
ShowError="False" />
<Label
x:Name="lblZuletztVertreten"
Grid.Row="0"
Grid.Column="5"
Margin="3"
Content="Letzte Vertretung" />
<ListBox
x:Name="ListBoxLetzteVertreter"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="6"
Width="200"
Height="54"
Margin="3"
LostFocus="LetzteVertreter_OnLostFocus"
SelectionChanged="LetzteVertreter_OnSelectionChanged" />
</Grid>
</GroupBox>
<dxg:GridControl x:Name="GridControlPossibleVertreter" Grid.Row="3" Grid.Column="0" Margin="3,3,3,3" Visibility="Visible" Height="200">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Nachname" ReadOnly="True" Header="Nachname" SortOrder="Ascending" />
<dxg:GridColumn FieldName="Vorname" ReadOnly="True" Header="Vorname"/>
<dxg:GridColumn FieldName="Arbeitszeit" ReadOnly="True" Header="Betreuungszeiten"/>
<dxg:GridColumn FieldName="Postleitzahl" ReadOnly="True" Header="Postleitzahl" />
<dxg:GridColumn FieldName="Strasse" ReadOnly="True" Header="Strasse" />
<dxg:GridColumn FieldName="Stadt" ReadOnly="True" Header="Stadt" />
<dxg:GridColumn FieldName="Geschlecht" ReadOnly="True" Header="Geschlecht" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" BestFitMode="AllRows" AllowBestFit="True" ShowTotalSummary="False" ShowGroupPanel="False" RowDoubleClick="TableView_OnRowDoubleClick" ShowGridMenu="TableView_OnShowGridMenu"/>
</dxg:GridControl.View>
</dxg:GridControl>
<StackPanel Grid.Row="4" Grid.Column="0" Margin="3" >
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" >
<Button Content="Übernehmen" Width="90" Click="ButtonBase_OnClick" Margin="3,3,3,3" />
<Button Content="Schließen" Width="90" Click="ButtonClose_OnClick" Margin="3,3,3,3"/>
</WrapPanel>
</StackPanel>
</Grid>
</Grid>
</GroupBox>
</GroupBox>
<GroupBox
Grid.Row="2"
Grid.Column="0"
Margin="3,3,3,3"
Header=""
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<WrapPanel Margin="0,3,0,3" Orientation="Horizontal">
<CheckBox
x:Name="RBMaennlich"
Margin="3,0,3,0"
VerticalAlignment="Center"
Click="RBMaennlich_OnClick"
Content="{markup:Translate männlich}"
IsChecked="True" />
<CheckBox
x:Name="RBWeiblich"
Margin="3,0,3,0"
VerticalAlignment="Center"
Click="RBWeiblich_OnClick"
Content="{markup:Translate weiblich}"
IsChecked="True" />
<Label Margin="10,0,3,0" Content="PLZ:" />
<dxe:TextEdit
x:Name="PlzKlient"
Width="70"
Height="23"
Margin="3,0,3,0"
VerticalContentAlignment="Center"
EditValueChanged="PlzKlient_OnTextChanged"
Mask="\d{1,5}"
MaskType="RegEx"
ShowError="False" />
<Label Margin="3,0,3,0" Content="Ort:" />
<TextBox
x:Name="OrtKlient"
Width="200"
Height="23"
Margin="3,0,3,0"
VerticalContentAlignment="Center"
TextChanged="OrtKlient_OnTextChanged" />
<CheckBox
x:Name="chkEntfernungssuche"
Margin="3,0,3,0"
VerticalAlignment="Center"
Content="{markup:Translate Verwende Abstandsmessung}"
IsChecked="False"
ToolTip="{markup:Translate Das Aktivieren der Option verwendet die Google Suche um den Abstand zwischen Adressen zu messen. Dieser Vorgang kann etwas mehr Zeit benötigen.}" />
</WrapPanel>
<Button
Grid.Row="1"
Width="90"
Margin="3,3,3,3"
HorizontalAlignment="Right"
Click="ButtonSuche_OnClick"
Content="Suche starten" />
</Grid>
</GroupBox>
<dxg:GridControl
x:Name="GridControlPossibleVertreter"
Grid.Row="3"
Grid.Column="0"
Height="200"
Margin="3,3,3,3"
Visibility="Visible">
<dxg:GridControl.Columns>
<dxg:GridColumn
FieldName="Nachname"
Header="Nachname"
ReadOnly="True"
SortOrder="Ascending" />
<dxg:GridColumn
FieldName="Vorname"
Header="Vorname"
ReadOnly="True" />
<dxg:GridColumn
FieldName="Arbeitszeit"
Header="Betreuungszeiten"
ReadOnly="True" />
<dxg:GridColumn
FieldName="Postleitzahl"
Header="Postleitzahl"
ReadOnly="True" />
<dxg:GridColumn
FieldName="Strasse"
Header="Strasse"
ReadOnly="True" />
<dxg:GridColumn
FieldName="Stadt"
Header="Stadt"
ReadOnly="True" />
<dxg:GridColumn
FieldName="Geschlecht"
Header="Geschlecht"
ReadOnly="True" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView
AllowBestFit="True"
AllowPerPixelScrolling="True"
BestFitMode="AllRows"
RowDoubleClick="TableView_OnRowDoubleClick"
ShowGridMenu="TableView_OnShowGridMenu"
ShowGroupPanel="False"
ShowTotalSummary="False" />
</dxg:GridControl.View>
</dxg:GridControl>
<StackPanel
Grid.Row="4"
Grid.Column="0"
Margin="3">
<WrapPanel
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Orientation="Horizontal">
<Button
Width="90"
Margin="3,3,3,3"
Click="ButtonBase_OnClick"
Content="Übernehmen" />
<Button
Width="90"
Margin="3,3,3,3"
Click="ButtonClose_OnClick"
Content="Schließen" />
</WrapPanel>
</StackPanel>
</Grid>
</Grid>
</GroupBox>
</Window>

View File

@@ -0,0 +1,33 @@
..\svcutil.exe /noConfig /noLogo /edb /n:*,BeWo.ServiceProxy /out:..\ServiceProxy\GeneratedAiEnhancedService.cs /ct:System.Collections.Generic.List`1 /r:..\..\Shared\bin\Debug\BS.Shared.dll http://localhost:3777/Host/AiEnhancedService.svc?wsdl
@echo off
setlocal EnableDelayedExpansion
set "input=..\ServiceProxy\GeneratedAiEnhancedService.cs"
set "output=temp.txt"
set /a start=12
set /a end=162
set /a line=0
REM Zeilen zählen
set /a total=0
for /f "usebackq delims=" %%A in ("%input%") do (
set /a total+=1
)
REM Nur löschen, wenn genug Zeilen vorhanden
if %total% leq %end% (
echo Datei hat nur %total% Zeilen nichts wird gelöscht.
copy /y "%input%" "%input2%"
goto :eof
)
> "%output%" (
for /f "usebackq delims=" %%A in ("%input%") do (
set /a line+=1
if !line! lss %start% echo(%%A
if !line! gtr %end% echo(%%A
)
)
move /y "%output%" "%input%"

View File

@@ -0,0 +1,23 @@
@echo off
REM Diese Batch-Datei führt eine andere Batch-Datei aus und schreibt das Ergebnis in eine Log-Datei
REM Pfad zur anderen Batch-Datei
set "SCRIPT_PATH=ServiceReferences_AiEnhancedService.bat"
REM Pfad zur Log-Datei
set "LOG_FILE=ServiceReferences_AiEnhancedService_Log.log.txt"
REM Leere die Log-Datei vor dem Start
echo. > %LOG_FILE%
REM Führe die andere Batch-Datei aus und leite die Ausgabe in die Log-Datei um
call %SCRIPT_PATH% >> %LOG_FILE% 2>&1
REM Überprüfe, ob die Ausführung erfolgreich war
if %errorlevel% equ 0 (
echo Die Ausführung von %SCRIPT_PATH% war erfolgreich. >> %LOG_FILE%
) else (
echo Die Ausführung von %SCRIPT_PATH% ist fehlgeschlagen. >> %LOG_FILE%
)
echo Log wurde in %LOG_FILE% geschrieben.

View File

@@ -0,0 +1,33 @@
..\svcutil.exe /noConfig /noLogo /edb /n:*,BeWo.ServiceProxy /out:..\ServiceProxy\GeneratedOperationsEnhancedService.cs /ct:System.Collections.Generic.List`1 /r:..\..\Shared\bin\Debug\BS.Shared.dll http://localhost:3777/Host/OperationsEnhancedService.svc?wsdl
@echo off
setlocal EnableDelayedExpansion
set "input=..\ServiceProxy\GeneratedOperationsEnhancedService.cs"
set "output=temp.txt"
set /a start=12
set /a end=162
set /a line=0
REM Zeilen zählen
set /a total=0
for /f "usebackq delims=" %%A in ("%input%") do (
set /a total+=1
)
REM Nur löschen, wenn genug Zeilen vorhanden
if %total% leq %end% (
echo Datei hat nur %total% Zeilen nichts wird gelöscht.
copy /y "%input%" "%input2%"
goto :eof
)
> "%output%" (
for /f "usebackq delims=" %%A in ("%input%") do (
set /a line+=1
if !line! lss %start% echo(%%A
if !line! gtr %end% echo(%%A
)
)
move /y "%output%" "%input%"

View File

@@ -0,0 +1,23 @@
@echo off
REM Diese Batch-Datei führt eine andere Batch-Datei aus und schreibt das Ergebnis in eine Log-Datei
REM Pfad zur anderen Batch-Datei
set "SCRIPT_PATH=ServiceReferences_OperationsEnhancedService.bat"
REM Pfad zur Log-Datei
set "LOG_FILE=ServiceReferences_OperationsEnhancedService_Log.log.txt"
REM Leere die Log-Datei vor dem Start
echo. > %LOG_FILE%
REM Führe die andere Batch-Datei aus und leite die Ausgabe in die Log-Datei um
call %SCRIPT_PATH% >> %LOG_FILE% 2>&1
REM Überprüfe, ob die Ausführung erfolgreich war
if %errorlevel% equ 0 (
echo Die Ausführung von %SCRIPT_PATH% war erfolgreich. >> %LOG_FILE%
) else (
echo Die Ausführung von %SCRIPT_PATH% ist fehlgeschlagen. >> %LOG_FILE%
)
echo Log wurde in %LOG_FILE% geschrieben.

View File

@@ -0,0 +1,6 @@
<types>
<sharedType>
<name>BeWoFault</name>
<namespace>BeWo.ServiceProxy</namespace>
</sharedType>
</types>

View File

@@ -1916,7 +1916,18 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.BankAccountDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.StatementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureStateType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Zahlungstyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.MessageType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.HomeViewPanelType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Auszahlungsintervall))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.VertretungsStatus))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SchulbegleitenderZugehoerigkeitsTyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldtransaktionshistoryDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldtransaktionshistoryDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.SignatureDC>))]
@@ -1924,12 +1935,12 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AiChatDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AiSettingsDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CheckObjectDeletionResultDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstvertretungDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstEintragDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstEintragDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstvertretungDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.VorlagentabelleDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VorlagentabelleDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DokumentvorlageDC))]
@@ -2042,18 +2053,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.FLSAnalysisDataDetailDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisDataDetailDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTokenDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.StatementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureStateType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Zahlungstyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.MessageType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.HomeViewPanelType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Auszahlungsintervall))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.VertretungsStatus))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SchulbegleitenderZugehoerigkeitsTyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.SignatureType, System.Collections.Generic.List<long>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.Collections.Generic.Dictionary<int, long>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, long>))]
@@ -2067,6 +2066,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.Compact.CompactCustomerDC, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.ServiceRecordDC, System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.BankAccountDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AccountingReportRowDC>))]
@@ -2101,6 +2101,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppResponseDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungViewFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC))]
@@ -2187,6 +2188,11 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/ImportSupportConceptBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.ImportSupportConceptResultDC ImportSupportConcept(BS.Shared.DataContracts.HilfeplanImportDC hidc);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveCustomersForEmployee", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveCustomersForEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveCustomersForEmployeeBeWoFaultFaul" +
"t", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetAllActiveCustomersForEmployee(bool fetchReferenceNumbers);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomer", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC);
@@ -3071,6 +3077,11 @@ namespace BeWo.ServiceProxy
return base.Channel.ImportSupportConcept(hidc);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactCustomerDC> GetAllActiveCustomersForEmployee(bool fetchReferenceNumbers)
{
return base.Channel.GetAllActiveCustomersForEmployee(fetchReferenceNumbers);
}
public long UpdateCustomer(BS.Shared.DataContracts.CustomerDC pCustomerDC)
{
return base.Channel.UpdateCustomer(pCustomerDC);
@@ -5500,6 +5511,13 @@ namespace BeWo.ServiceProxy
public interface IOperationsService
{
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
"iceRecord", ReplyAction="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
"iceRecordResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
"iceRecordBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetDakotaFileFormat", ReplyAction="http://tempuri.org/IOperationsService/GetDakotaFileFormatResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetDakotaFileFormatBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.Nullable<long>>))]
@@ -5812,7 +5830,18 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisEmployeeDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AuslastungAnalysisSupportConceptDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.BankAccountDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.StatementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureStateType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Zahlungstyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.MessageType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.HomeViewPanelType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Auszahlungsintervall))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.VertretungsStatus))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SchulbegleitenderZugehoerigkeitsTyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldtransaktionshistoryDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldtransaktionshistoryDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.SignatureDC>))]
@@ -5820,12 +5849,12 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AiChatDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AiSettingsDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.CheckObjectDeletionResultDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstvertretungDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstEintragDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstEintragDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstvertretungDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ConfirmationReceiptSignatureDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.VorlagentabelleDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.VorlagentabelleDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DokumentvorlageDC))]
@@ -5938,18 +5967,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.FLSAnalysisDataDetailDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.FLSAnalysisDataDetailDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTokenDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.StatementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureStateType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Zahlungstyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SignatureType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ServiceRecordValidationResult))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.MessageType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.HomeViewPanelType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.Auszahlungsintervall))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.VertretungsStatus))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.SchulbegleitenderZugehoerigkeitsTyp))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.UiElementType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.SignatureType, System.Collections.Generic.List<long>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.Collections.Generic.Dictionary<int, long>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, long>))]
@@ -5963,6 +5980,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.Compact.CompactCustomerDC, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, bool>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.ServiceRecordDC, System.Collections.Generic.List<BS.Shared.ServiceRecordValidationResult>>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Invoicing.BankAccountDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AuslastungAnalysisRootDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Reports.AccountingReportDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.Reports.AccountingReportRowDC>))]
@@ -5997,6 +6015,7 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ServiceInvoicePeriodDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.InvoiceNumberDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceNumberDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.AppResponseDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungViewFilterDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC))]
@@ -6101,6 +6120,13 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CheckObjectDeletionAllowedBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.CheckObjectDeletionResultDC CheckObjectDeletionAllowed(long objectoid, BS.Shared.TableID tableId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureByDateAndEmp" +
"loyeeAndCustomer", ReplyAction="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureByDateAndEmp" +
"loyeeAndCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/HasConfirmationReceiptSignatureByDateAndEmp" +
"loyeeAndCustomerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool HasConfirmationReceiptSignatureByDateAndEmployeeAndCustomer(out System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> confirmationReceiptSignatures, long customerOid, long employeeOid, System.DateTime start, System.DateTime end, long costBearer2SupportConceptOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeleteDienstvertretung2", ReplyAction="http://tempuri.org/IOperationsService/DeleteDienstvertretung2Response")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteDienstvertretung2BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool DeleteDienstvertretung2(long empId, long wohnId, int zeile, System.DateTime date, BS.Shared.DataContracts.DienstvertretungDC dienstvertretung, System.Collections.Generic.List<BS.Shared.DataContracts.DienstEintragDC> alleDiensteintraege, System.Collections.Generic.List<BS.Shared.DataContracts.DienstvertretungDC> alleDienstvertretungen, int day, System.DateTime pflichtStart, System.DateTime pflichtEnde);
@@ -6156,6 +6182,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertTemplateBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.DokumentvorlageDC InsertTemplate(BS.Shared.DataContracts.DokumentvorlageDC dc);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/LoadTemplate", ReplyAction="http://tempuri.org/IOperationsService/LoadTemplateResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/LoadTemplateBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.DokumentvorlageDC LoadTemplate(long oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetPlatzhalterForTemplate", ReplyAction="http://tempuri.org/IOperationsService/GetPlatzhalterForTemplateResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetPlatzhalterForTemplateBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.PlatzhalterDC> GetPlatzhalterForTemplate(BS.Shared.DataContracts.VorlagentabelleDC vt);
@@ -6412,13 +6442,6 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteSignatureBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteSignature(long signatureOid, long serviceRecordOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
"iceRecord", ReplyAction="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
"iceRecordResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
"iceRecordBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetMessageFromServer", ReplyAction="http://tempuri.org/IOperationsService/GetMessageFromServerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetMessageFromServerBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
string GetMessageFromServer(BS.Shared.TableID pObjectTid, System.Nullable<long> pObjectOid, BS.Shared.MessageType pMessageType);
@@ -7604,6 +7627,11 @@ namespace BeWo.ServiceProxy
{
}
public bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType)
{
return base.Channel.CheckForConfirmationReceiptSignatureForServiceRecord(serviceRecordOid, signatureType);
}
public string GetDakotaFileFormat(object param)
{
return base.Channel.GetDakotaFileFormat(param);
@@ -7679,6 +7707,11 @@ namespace BeWo.ServiceProxy
return base.Channel.CheckObjectDeletionAllowed(objectoid, tableId);
}
public bool HasConfirmationReceiptSignatureByDateAndEmployeeAndCustomer(out System.Collections.Generic.List<BS.Shared.DataContracts.ConfirmationReceiptSignatureDC> confirmationReceiptSignatures, long customerOid, long employeeOid, System.DateTime start, System.DateTime end, long costBearer2SupportConceptOid)
{
return base.Channel.HasConfirmationReceiptSignatureByDateAndEmployeeAndCustomer(out confirmationReceiptSignatures, customerOid, employeeOid, start, end, costBearer2SupportConceptOid);
}
public bool DeleteDienstvertretung2(long empId, long wohnId, int zeile, System.DateTime date, BS.Shared.DataContracts.DienstvertretungDC dienstvertretung, System.Collections.Generic.List<BS.Shared.DataContracts.DienstEintragDC> alleDiensteintraege, System.Collections.Generic.List<BS.Shared.DataContracts.DienstvertretungDC> alleDienstvertretungen, int day, System.DateTime pflichtStart, System.DateTime pflichtEnde)
{
return base.Channel.DeleteDienstvertretung2(empId, wohnId, zeile, date, dienstvertretung, alleDiensteintraege, alleDienstvertretungen, day, pflichtStart, pflichtEnde);
@@ -7734,6 +7767,11 @@ namespace BeWo.ServiceProxy
return base.Channel.InsertTemplate(dc);
}
public BS.Shared.DataContracts.DokumentvorlageDC LoadTemplate(long oid)
{
return base.Channel.LoadTemplate(oid);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.PlatzhalterDC> GetPlatzhalterForTemplate(BS.Shared.DataContracts.VorlagentabelleDC vt)
{
return base.Channel.GetPlatzhalterForTemplate(vt);
@@ -7994,11 +8032,6 @@ namespace BeWo.ServiceProxy
base.Channel.DeleteSignature(signatureOid, serviceRecordOid);
}
public bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType)
{
return base.Channel.CheckForConfirmationReceiptSignatureForServiceRecord(serviceRecordOid, signatureType);
}
public string GetMessageFromServer(BS.Shared.TableID pObjectTid, System.Nullable<long> pObjectOid, BS.Shared.MessageType pMessageType)
{
return base.Channel.GetMessageFromServer(pObjectTid, pObjectOid, pMessageType);
@@ -9774,6 +9807,42 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/StorniereInvoiceBases", ReplyAction="http://tempuri.org/IAccountingService/StorniereInvoiceBasesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/StorniereInvoiceBasesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void StorniereInvoiceBases(System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> invoices);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/GetGkvAbrechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC GetGkvAbrechnung(long oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetAllGkvAbrechnungen", ReplyAction="http://tempuri.org/IAccountingService/GetAllGkvAbrechnungenResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetAllGkvAbrechnungenBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC> GetAllGkvAbrechnungen();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetFilteredGkvAbrechnungen", ReplyAction="http://tempuri.org/IAccountingService/GetFilteredGkvAbrechnungenResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetFilteredGkvAbrechnungenBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC> GetFilteredGkvAbrechnungen(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetProtokollRawDataString", ReplyAction="http://tempuri.org/IAccountingService/GetProtokollRawDataStringResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetProtokollRawDataStringBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
string GetProtokollRawDataString(long oid, BS.Shared.GkvRawDataType gkvRawData);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC request);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/UpdateGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/UpdateGkvAbrechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/UpdateGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC UpdateGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC abrechnung);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/DeleteGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/DeleteGkvAbrechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/DeleteGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC abrechnung);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/SendNewGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/SendNewGkvAbrechnungResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/SendNewGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendResponseDC SendNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendRequestDC req);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/SendGetIKRequest", ReplyAction="http://tempuri.org/IAccountingService/SendGetIKRequestResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/SendGetIKRequestBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKResponseDC SendGetIKRequest(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKRequestDC req);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
@@ -9969,6 +10038,51 @@ namespace BeWo.ServiceProxy
{
base.Channel.StorniereInvoiceBases(invoices);
}
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC GetGkvAbrechnung(long oid)
{
return base.Channel.GetGkvAbrechnung(oid);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC> GetAllGkvAbrechnungen()
{
return base.Channel.GetAllGkvAbrechnungen();
}
public System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC> GetFilteredGkvAbrechnungen(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter)
{
return base.Channel.GetFilteredGkvAbrechnungen(gkvAbrechnungViewFilter);
}
public string GetProtokollRawDataString(long oid, BS.Shared.GkvRawDataType gkvRawData)
{
return base.Channel.GetProtokollRawDataString(oid, gkvRawData);
}
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungCreateRequestDC request)
{
return base.Channel.CreateNewGkvAbrechnung(request);
}
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC UpdateGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC abrechnung)
{
return base.Channel.UpdateGkvAbrechnung(abrechnung);
}
public void DeleteGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungDC abrechnung)
{
base.Channel.DeleteGkvAbrechnung(abrechnung);
}
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendResponseDC SendNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungSendRequestDC req)
{
return base.Channel.SendNewGkvAbrechnung(req);
}
public BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKResponseDC SendGetIKRequest(BS.Shared.DataContracts.GkvAbrechnung.GkvAbrechnungGetIKRequestDC req)
{
return base.Channel.SendGetIKRequest(req);
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]

View File

@@ -0,0 +1,124 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace BeWo.ServiceProxy
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="BeWo.ServiceProxy.IAiEnhancedService")]
public interface IAiEnhancedService
{
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/GetAiConfig", ReplyAction="http://tempuri.org/IAiEnhancedService/GetAiConfigResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/GetAiConfigBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.Feature.AI.AiConfigDC GetAiConfig();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/UpdateAiConfig", ReplyAction="http://tempuri.org/IAiEnhancedService/UpdateAiConfigResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/UpdateAiConfigBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.Feature.AI.AiConfigDC UpdateAiConfig(BS.Shared.DataContracts.Feature.AI.AiConfigDC toUpdate);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/GetAiModels", ReplyAction="http://tempuri.org/IAiEnhancedService/GetAiModelsResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/GetAiModelsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiModelDC> GetAiModels();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/GetAiConversations", ReplyAction="http://tempuri.org/IAiEnhancedService/GetAiConversationsResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/GetAiConversationsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationDC> GetAiConversations(int uicontext, long? oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/CreateAiConversation", ReplyAction="http://tempuri.org/IAiEnhancedService/CreateAiConversationResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/CreateAiConversationBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.Feature.AI.AiConversationDC CreateAiConversation(BS.Shared.DataContracts.Feature.AI.AiConversationDC conversation, long modell_oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/CloneAiConversation", ReplyAction="http://tempuri.org/IAiEnhancedService/CloneAiConversationResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/CloneAiConversationBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.Feature.AI.AiConversationDC CloneAiConversation(long conversation_oid, System.Nullable<long> message_oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/DeleteAiConversation", ReplyAction="http://tempuri.org/IAiEnhancedService/DeleteAiConversationResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/DeleteAiConversationBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteAiConversation(long conversation_oid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAiEnhancedService/SendNewMessage", ReplyAction="http://tempuri.org/IAiEnhancedService/SendNewMessageResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAiEnhancedService/SendNewMessageBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.AiConversationMessageDC> SendNewMessage(long conversation, string message);
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IAiEnhancedServiceChannel : BeWo.ServiceProxy.IAiEnhancedService, System.ServiceModel.IClientChannel
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class AiEnhancedServiceClient : System.ServiceModel.ClientBase<BeWo.ServiceProxy.IAiEnhancedService>, BeWo.ServiceProxy.IAiEnhancedService
{
public AiEnhancedServiceClient()
{
}
public AiEnhancedServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
public AiEnhancedServiceClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public AiEnhancedServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public AiEnhancedServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
public BS.Shared.DataContracts.Feature.AI.AiConfigDC GetAiConfig()
{
return base.Channel.GetAiConfig();
}
public BS.Shared.DataContracts.Feature.AI.AiConfigDC UpdateAiConfig(BS.Shared.DataContracts.Feature.AI.AiConfigDC toUpdate)
{
return base.Channel.UpdateAiConfig(toUpdate);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiModelDC> GetAiModels()
{
return base.Channel.GetAiModels();
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Feature.AI.AiConversationDC> GetAiConversations(int uicontext, long? oid)
{
return base.Channel.GetAiConversations(uicontext, oid);
}
public BS.Shared.DataContracts.Feature.AI.AiConversationDC CreateAiConversation(BS.Shared.DataContracts.Feature.AI.AiConversationDC conversation, long modell_oid)
{
return base.Channel.CreateAiConversation(conversation, modell_oid);
}
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 void DeleteAiConversation(long conversation_oid)
{
base.Channel.DeleteAiConversation(conversation_oid);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.AiConversationMessageDC> SendNewMessage(long conversation, string message)
{
return base.Channel.SendNewMessage(conversation, message);
}
}
}

View File

@@ -0,0 +1,61 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace BeWo.ServiceProxy
{
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="BeWo.ServiceProxy.IOperationsEnhancedService")]
public interface IOperationsEnhancedService
{
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsEnhancedService/HelloWorld", ReplyAction="http://tempuri.org/IOperationsEnhancedService/HelloWorldResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsEnhancedService/HelloWorldBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void HelloWorld();
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IOperationsEnhancedServiceChannel : BeWo.ServiceProxy.IOperationsEnhancedService, System.ServiceModel.IClientChannel
{
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class OperationsEnhancedServiceClient : System.ServiceModel.ClientBase<BeWo.ServiceProxy.IOperationsEnhancedService>, BeWo.ServiceProxy.IOperationsEnhancedService
{
public OperationsEnhancedServiceClient()
{
}
public OperationsEnhancedServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
public OperationsEnhancedServiceClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public OperationsEnhancedServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress)
{
}
public OperationsEnhancedServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
public void HelloWorld()
{
base.Channel.HelloWorld();
}
}
}

View File

@@ -15,6 +15,7 @@ using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using DevExpress.CodeParser;
using DevExpress.Export.Xl;
namespace BeWo.ServiceProxy
{
@@ -48,22 +49,24 @@ namespace BeWo.ServiceProxy
_ServerName += "/";
_EndpointAddresses = new Dictionary<Type, EndpointAddress>
{
{ typeof(IQueryService), new EndpointAddress(_ServerName + "QueryService.svc") },
{ typeof(IStreamingService), new EndpointAddress(_ServerName + "StreamingService.svc") },
{ typeof(IEmployeeService), new EndpointAddress(_ServerName + "EmployeeService.svc") },
{ typeof(ICustomerService), new EndpointAddress(_ServerName + "CustomerService.svc") },
{ typeof(IUserService), new EndpointAddress(_ServerName + "UserService.svc") },
{ typeof(IValueListService), new EndpointAddress(_ServerName + "ValueListService.svc") },
{ typeof(IDownloadService), new EndpointAddress(_ServerName + "DownloadService.svc") },
{ typeof(IResourceService), new EndpointAddress(_ServerName + "ResourceService.svc") },
{ typeof(IOperationsService), new EndpointAddress(_ServerName + "OperationsService.svc") },
{ typeof(IAnalysisService), new EndpointAddress(_ServerName + "AnalysisService.svc") },
{ typeof(IMailService), new EndpointAddress(_ServerName + "MailService.svc") },
{ typeof(IAccountingService), new EndpointAddress(_ServerName + "AccountingService.svc") },
{ typeof(IGkvAccountingService), new EndpointAddress(_ServerName + "GkvAccountingService.svc") },
{ typeof(IReportService), new EndpointAddress(_ServerName + "ReportService.svc") }
};
{
{ typeof(IQueryService), new EndpointAddress(_ServerName + "QueryService.svc") },
{ typeof(IStreamingService), new EndpointAddress(_ServerName + "StreamingService.svc") },
{ typeof(IEmployeeService), new EndpointAddress(_ServerName + "EmployeeService.svc") },
{ typeof(ICustomerService), new EndpointAddress(_ServerName + "CustomerService.svc") },
{ typeof(IUserService), new EndpointAddress(_ServerName + "UserService.svc") },
{ typeof(IValueListService), new EndpointAddress(_ServerName + "ValueListService.svc") },
{ typeof(IDownloadService), new EndpointAddress(_ServerName + "DownloadService.svc") },
{ typeof(IResourceService), new EndpointAddress(_ServerName + "ResourceService.svc") },
{ typeof(IOperationsService), new EndpointAddress(_ServerName + "OperationsService.svc") },
{ typeof(IOperationsEnhancedService), new EndpointAddress(_ServerName + "OperationsEnhancedService.svc") },
{ typeof(IAnalysisService), new EndpointAddress(_ServerName + "AnalysisService.svc") },
{ typeof(IMailService), new EndpointAddress(_ServerName + "MailService.svc") },
{ typeof(IAccountingService), new EndpointAddress(_ServerName + "AccountingService.svc") },
{ typeof(IGkvAccountingService), new EndpointAddress(_ServerName + "GkvAccountingService.svc") },
{ typeof(IReportService), new EndpointAddress(_ServerName + "ReportService.svc") },
{ typeof(IAiEnhancedService), new EndpointAddress(_ServerName + "AiEnhancedService.svc") }
};
}
@@ -72,6 +75,29 @@ namespace BeWo.ServiceProxy
_ProxyCache = new Dictionary<Type, object>();
}
#region AiEnhancedService
public static void DoAiEnhancedServiceSnyc(Action<IAiEnhancedService> pAction)
=> DoSync<AiEnhancedServiceClient, IAiEnhancedService>(pAction);
public static T DoAiEnhancedServiceSnyc<T>(Func<IAiEnhancedService, T> pFunc)
=> DoSync<AiEnhancedServiceClient, IAiEnhancedService, T>(pFunc);
public static void DoAiEnhancedServiceAsnyc(Action<IAiEnhancedService> pAction, Action pCallback = null, Action<Exception> pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null)
=> DoAsync<AiEnhancedServiceClient, IAiEnhancedService>(pAction, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher);
public static void DoAiEnhancedServiceAsnyc<T>(Func<IAiEnhancedService, T> pFunc, Action<T> pCallback = null, Action<Exception> pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null)
=> DoAsync<AiEnhancedServiceClient, IAiEnhancedService, T>(pFunc, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher);
#endregion
#region OperationsEnhancedService
public static void DoOperationsEnhancedServiceSnyc(Action<IOperationsEnhancedService> pAction)
=> DoSync<OperationsEnhancedServiceClient, IOperationsEnhancedService>(pAction);
public static T DoOperationsEnhancedServiceSnyc<T>(Func<IOperationsEnhancedService, T> pFunc)
=> DoSync<OperationsEnhancedServiceClient, IOperationsEnhancedService, T>(pFunc);
public static void DoOperationsEnhancedServiceAsnyc(Action<IOperationsEnhancedService> pAction, Action pCallback = null, Action<Exception> pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null)
=> DoAsync<OperationsEnhancedServiceClient, IOperationsEnhancedService>(pAction, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher);
public static void DoOperationsEnhancedServiceAsnyc<T>(Func<IOperationsEnhancedService, T> pFunc, Action<T> pCallback = null, Action<Exception> pErrorCallback = null, bool showWaitDialog = true, UserControl caller = null)
=> DoAsync<OperationsEnhancedServiceClient, IOperationsEnhancedService, T>(pFunc, pCallback, pErrorCallback, showWaitDialog, caller?.Dispatcher);
#endregion
public static void DoAccountingServiceAsync<T>(Func<IAccountingService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<AccountingServiceClient, IAccountingService, T>(pFunc, pCallBack, showWaitDialog);
@@ -104,17 +130,17 @@ namespace BeWo.ServiceProxy
public static void DoAnalysisServiceAsync<T>(Func<IAnalysisService, T> pFunc, Action<T> pCallBack)
{
DoAsync<AnalysisServiceClient, IAnalysisService, T>(pFunc, pCallBack, true);
}
public static void DoAnalysisServiceAsync<T>(Func<IAnalysisService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<AnalysisServiceClient, IAnalysisService, T>(pFunc, pCallBack, showWaitDialog);
}
public static void DoAccountingServiceSync(Action<IAccountingService> pAction)
{
pAction.Invoke(GetInstance<AccountingServiceClient, IAccountingService>());
}
}
public static void DoAnalysisServiceAsync<T>(Func<IAnalysisService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<AnalysisServiceClient, IAnalysisService, T>(pFunc, pCallBack, showWaitDialog);
}
public static void DoAccountingServiceSync(Action<IAccountingService> pAction)
{
pAction.Invoke(GetInstance<AccountingServiceClient, IAccountingService>());
}
//
public static void DoAnalysisServiceAsync(Action<IAnalysisService> pAction)
@@ -180,21 +206,21 @@ namespace BeWo.ServiceProxy
}
}
public static T DoDownloadServiceSync<T>(Func<IDownloadService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<DownloadServiceClient, IDownloadService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
public static T DoDownloadServiceSync<T>(Func<IDownloadService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<DownloadServiceClient, IDownloadService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
return default(T);
}
return default(T);
}
public static void DoEmployeeServiceAsync<T>(Func<IEmployeeService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
public static void DoEmployeeServiceAsync<T>(Func<IEmployeeService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<EmployeeServiceClient, IEmployeeService, T>(pFunc, pCallBack, showWaitDialog);
}
@@ -221,57 +247,57 @@ namespace BeWo.ServiceProxy
}
}
public static T DoEmployeeServiceSync<T>(Func<IEmployeeService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<EmployeeServiceClient, IEmployeeService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
public static T DoEmployeeServiceSync<T>(Func<IEmployeeService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<EmployeeServiceClient, IEmployeeService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
return default(T);
}
return default(T);
}
#region Wohnheim
public static void DoWohnheimServiceAsync<T>(Func<ICustomerService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<CustomerServiceClient, ICustomerService, T>(pFunc, pCallBack, showWaitDialog);
}
public static void DoWohnheimServiceAsync<T>(Func<ICustomerService, T> pFunc, Action<T> pCallBack)
{
DoAsync<CustomerServiceClient, ICustomerService, T>(pFunc, pCallBack, true);
}
public static void DoWohnheimServiceAsync(Action<ICustomerService> pAction)
{
DoAsync<CustomerServiceClient,ICustomerService>(pAction, true);
}
public static void DoWohnheimServiceSync(Action<ICustomerService> pAction)
{
try
{
pAction.Invoke(GetInstance<CustomerServiceClient, ICustomerService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
}
public static T DoWohnheimServiceSync<T>(Func<ICustomerService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<CustomerServiceClient, ICustomerService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
{
DoAsync<CustomerServiceClient, ICustomerService, T>(pFunc, pCallBack, showWaitDialog);
}
public static void DoWohnheimServiceAsync<T>(Func<ICustomerService, T> pFunc, Action<T> pCallBack)
{
DoAsync<CustomerServiceClient, ICustomerService, T>(pFunc, pCallBack, true);
}
public static void DoWohnheimServiceAsync(Action<ICustomerService> pAction)
{
DoAsync<CustomerServiceClient, ICustomerService>(pAction, true);
}
public static void DoWohnheimServiceSync(Action<ICustomerService> pAction)
{
try
{
pAction.Invoke(GetInstance<CustomerServiceClient, ICustomerService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
}
public static T DoWohnheimServiceSync<T>(Func<ICustomerService, T> pFunc)
{
try
{
return pFunc.Invoke(GetInstance<CustomerServiceClient, ICustomerService>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
return default(T);
}
return default(T);
}
#endregion
#region GkvAccounting
@@ -285,7 +311,7 @@ namespace BeWo.ServiceProxy
}
public static void DoGkvAccountingServiceAsync(Action<IGkvAccountingService> pAction, Action pCallBack)
{
DoAsync<GkvAccountingServiceClient, IGkvAccountingService>(pAction, pCallBack, true);
DoAsync<GkvAccountingServiceClient, IGkvAccountingService, T>(pFunc, pCallBack, null, true, dispatcher);
}
public static void DoGkvAccountingServiceAsync(Action<IGkvAccountingService> pAction)
{
@@ -341,7 +367,7 @@ namespace BeWo.ServiceProxy
return default(T);
}
public static void DoMultipleAccountingServicesAsync(List<Action<IAccountingService>> pActions, Action pAllDoneCallBack)
{
DoMulitpleAsync<AccountingServiceClient, IAccountingService>(pActions, pAllDoneCallBack, true);
@@ -489,14 +515,16 @@ namespace BeWo.ServiceProxy
DoAsync<ResourceServiceClient, IResourceService>(pAction, true);
}
public static void DoResourceServiceAsync(Action<IResourceService> pAction, Action pCallback)
{
DoAsync<ResourceServiceClient, IResourceService>(pAction, pCallback, true);
}
public static void DoResourceServiceAsync(Action<IResourceService> pAction, Action pCallback)
{
DoAsync<ResourceServiceClient, IResourceService>(pAction, pCallback, true);
}
public static void DoStreamingServiceAsync<T>(Func<IStreamingService, T> pFunc, Action<T> pCallBack, Action pErrorCallBack)
{
DoAsync<StreamingServiceClient, IStreamingService, T>(pFunc, pCallBack, pErrorCallBack, true);
Action<Exception> tErrorCallBack = (e) => pErrorCallBack();
DoAsync<StreamingServiceClient, IStreamingService, T>(pFunc, pCallBack, tErrorCallBack, true);
}
public static void DoStreamingServiceAsync(Action<IStreamingService> pAction)
@@ -509,20 +537,20 @@ namespace BeWo.ServiceProxy
DoAsync<UserServiceClient, IUserService, T>(pFunc, pCallBack, showWaitDialog);
}
public static T DoUserServiceSync<T>(Func<IUserService, T> pFunc)
{
return pFunc.Invoke(GetInstance<UserServiceClient, IUserService>());
}
public static T DoUserServiceSync<T>(Func<IUserService, T> pFunc)
{
return pFunc.Invoke(GetInstance<UserServiceClient, IUserService>());
}
public static void DoUserServiceAsync(Action<IUserService> pAction, bool showWaitDialog)
{
DoAsync<UserServiceClient, IUserService>(pAction, showWaitDialog);
}
public static void DoUserServiceAsync(Action<IUserService> pAction, Action pCallBack, bool showWaitDialog)
{
DoAsync<UserServiceClient, IUserService>(pAction, pCallBack, showWaitDialog);
}
public static void DoUserServiceAsync(Action<IUserService> pAction, Action pCallBack, bool showWaitDialog)
{
DoAsync<UserServiceClient, IUserService>(pAction, pCallBack, showWaitDialog);
}
public static void DoValueListServiceAsync<T>(Func<IValueListService, T> pFunc, Action<T> pCallBack)
{
@@ -558,12 +586,12 @@ namespace BeWo.ServiceProxy
DoAsync<ReportServiceClient, IReportService, T>(pFunc, pCallBack, true);
}
public static void DoReportServiceAsync<T>(Func<IReportService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<ReportServiceClient, IReportService, T>(pFunc, pCallBack, showWaitDialog);
}
public static void DoReportServiceAsync<T>(Func<IReportService, T> pFunc, Action<T> pCallBack, bool showWaitDialog)
{
DoAsync<ReportServiceClient, IReportService, T>(pFunc, pCallBack, showWaitDialog);
}
public static void DoReportServiceSync(Action<IReportService> pAction)
public static void DoReportServiceSync(Action<IReportService> pAction)
{
try
{
@@ -644,14 +672,14 @@ namespace BeWo.ServiceProxy
{
DoUserServiceAsync(s => s.GetAllUsersCompact().Cast<T>().ToList(), r => pCallBack(r), true);
}
else if (typeof (T) == typeof (ResourceDC))
else if (typeof(T) == typeof(ResourceDC))
{
DoResourceServiceAsync(s => s.GetAllResources().Cast<T>().ToList(), pCallBack, true);
}
else if (typeof (T) == typeof (TextModuleDC))
{
DoOperationsServiceAsync(s => s.GetAllTextModules().Cast<T>().ToList(), pCallBack);
}
else if (typeof(T) == typeof(TextModuleDC))
{
DoOperationsServiceAsync(s => s.GetAllTextModules().Cast<T>().ToList(), pCallBack);
}
else
{
throw new NotImplementedException();
@@ -667,7 +695,33 @@ namespace BeWo.ServiceProxy
DoAsync<TClient, TInterface, T>(pFunc, pCallback, null, showWaitDialog);
}
private static void DoAsync<TClient, TInterface, T>(Func<TInterface, T> pFunc, Action<T> pCallback, Action pErrorCallback, bool showWaitDialog)
private static void DoAsync<TClient, TInterface, T>(Func<TInterface, T> pFunc, Action<T> pCallback, Action<Exception> pErrorCallback, bool showWaitDialog, Dispatcher dispatcher)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
if (dispatcher is null)
{
dispatcher = BeWoApp.Current.Dispatcher;
}
Action<T> tCallback = (t) => dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pCallback?.Invoke(t);
});
Action<Exception> tErrorCallback = (t) => dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pErrorCallback?.Invoke(t);
});
DoAsync<TClient, TInterface, T>(pFunc, tCallback, tErrorCallback, showWaitDialog);
}
private static void DoAsync<TClient, TInterface, T>(Func<TInterface, T> pFunc, Action<T> pCallback, Action<Exception> pErrorCallback, bool showWaitDialog)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
@@ -707,9 +761,10 @@ namespace BeWo.ServiceProxy
}
ShowErrorMessage(e);
if (pErrorCallback != null)
{
pErrorCallback();
pErrorCallback(e);
}
}
},
@@ -738,11 +793,44 @@ namespace BeWo.ServiceProxy
DoAsync<TClient, TInterface>(pAction, null, showWaitDialog);
}
private static void DoAsync<TClient, TInterface>(Action<TInterface> pAction, Action pCallback, Action<Exception> pErrorCallback, bool showWaitDialog, Dispatcher dispatcher)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
if (dispatcher is null)
{
dispatcher = BeWoApp.Current.Dispatcher;
}
Action tCallback = () => dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pCallback();
});
Action<Exception> tErrorCallback = (t) => dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pErrorCallback(t);
});
DoAsync<TClient, TInterface>(pAction, tCallback, tErrorCallback, showWaitDialog);
}
// private static void DoAsync<TClient, TInterface>(Action<TInterface> pAction, Action pCallback, bool )
// void with callback
private static void DoAsync<TClient, TInterface>(Action<TInterface> pAction, Action pCallback, bool showWaitDialog)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
DoAsync<TClient, TInterface>(pAction, pCallback, null, showWaitDialog);
}
private static void DoAsync<TClient, TInterface>(Action<TInterface> pAction, Action pCallback, Action<Exception> pErrorCallback, bool showWaitDialog)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
try
{
@@ -780,6 +868,11 @@ namespace BeWo.ServiceProxy
}
ShowErrorMessage(e);
if (pErrorCallback != null)
{
pErrorCallback(e);
}
}
},
null);
@@ -847,6 +940,36 @@ namespace BeWo.ServiceProxy
}
}
private static void DoSync<TClient, TInterface>(Action<TInterface> pAction)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
try
{
pAction.Invoke(GetInstance<TClient, TInterface>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
}
private static T DoSync<TClient, TInterface, T>(Func<TInterface, T> pFunc)
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
{
try
{
return pFunc.Invoke(GetInstance<TClient, TInterface>());
}
catch (Exception e)
{
ShowErrorMessage(e);
}
return default(T);
}
private static TInterface GetInstance<TClient, TInterface>()
where TClient : ClientBase<TInterface>, TInterface, new()
where TInterface : class
@@ -885,17 +1008,17 @@ namespace BeWo.ServiceProxy
{
lClient = new TClient();
if(!_ProxyCache.ContainsKey(lClient.GetType()))
{
_ProxyCache.Add(typeof(TClient), lClient);
}
if (!_ProxyCache.ContainsKey(lClient.GetType()))
{
_ProxyCache.Add(typeof(TClient), lClient);
}
#if DEBUG
if (DebugConfig.CurrentConfig is DebugConfig current && current.EnableAutoRemoteDebugging)
{
if (lClient.Endpoint.Binding is BasicHttpBinding binding)
{
if(_ServerName?.StartsWith("https") ?? true)
if (_ServerName?.StartsWith("https") ?? true)
{
binding.Security.Mode = BasicHttpSecurityMode.Transport;
}
@@ -911,11 +1034,8 @@ namespace BeWo.ServiceProxy
lClient.Endpoint.Behaviors.Add(new MultitenancyEndpointBehavior());
lClient.Endpoint.Address = EndpointAddresses[typeof(TInterface)];
}
return lClient;
}
@@ -929,7 +1049,10 @@ namespace BeWo.ServiceProxy
Monitor.Enter(_Lock);
if ((++_RunningAsyncs) == 1 && BeWoApp.MainControl != null)
{
BeWoApp.MainControl.StartWaiting();
if (BeWoApp.MainControl.CurrentAnimatedBeWoWindow is null)
BeWoApp.MainControl.StartWaiting();
else
BeWoApp.MainControl.CurrentAnimatedBeWoWindow.StartWaiting();
}
Monitor.Exit(_Lock);
@@ -940,6 +1063,7 @@ namespace BeWo.ServiceProxy
Monitor.Enter(_Lock);
if ((--_RunningAsyncs) == 0 && BeWoApp.MainControl != null)
{
BeWoApp.MainControl.CurrentAnimatedBeWoWindow?.EndWaiting();
BeWoApp.MainControl.EndWaiting();
}

View File

@@ -0,0 +1,23 @@
@echo off
REM Diese Batch-Datei führt eine andere Batch-Datei aus und schreibt das Ergebnis in eine Log-Datei
REM Pfad zur anderen Batch-Datei
set "SCRIPT_PATH=ServiceReferences.bat"
REM Pfad zur Log-Datei
set "LOG_FILE=ServiceReferencesWithLog.log.txt"
REM Leere die Log-Datei vor dem Start
echo. > %LOG_FILE%
REM Führe die andere Batch-Datei aus und leite die Ausgabe in die Log-Datei um
call %SCRIPT_PATH% >> %LOG_FILE% 2>&1
REM Überprüfe, ob die Ausführung erfolgreich war
if %errorlevel% equ 0 (
echo Die Ausführung von %SCRIPT_PATH% war erfolgreich. >> %LOG_FILE%
) else (
echo Die Ausführung von %SCRIPT_PATH% ist fehlgeschlagen. >> %LOG_FILE%
)
echo Log wurde in %LOG_FILE% geschrieben.

View File

@@ -0,0 +1,72 @@
using BeWo.View.Detail.AI;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace BeWo.Services
{
internal class BeWoControlFactory : IControlFactory
{
public Control GetAiConversationControl(UIContext uIContext, Dictionary<TableID, long[]> context, long? reference_oid = null)
{
var styleString = getStyleString(uIContext);
var control = styleString is object ? new AiConversationChatView(styleString) : new AiConversationChatView();
control.ViewModel.UIContext = (int)uIContext;
control.ViewModel.ReferenceObjectOid = reference_oid;
control.ViewModel.ContextBeWoObjects = context;
return control;
}
private string getStyleString(UIContext uIContext) {
switch (uIContext)
{
case UIContext.SupportConcept: return "ModuleAiControlSupportConceptStyle";
case UIContext.Customer: return "ModuleAiControlCustomerStyle";
case UIContext.Person: return "ModuleAiControlPersonStyle";
case UIContext.Employee: return "ModuleAiControlEmployeeStyle";
case UIContext.Organisation: return "ModuleAiControlOrganisationStyle";
case UIContext.Team:
break;
case UIContext.Dokumente:
break;
case UIContext.User:
break;
case UIContext.UserGroup:
break;
case UIContext.Report:
break;
case UIContext.Scheduler:
break;
case UIContext.Wohnheim:
break;
case UIContext.Vertretungen:
break;
case UIContext.CustomerTeam:
break;
case UIContext.Scheduling:
break;
case UIContext.Finance:
break;
case UIContext.Administration:
break;
case UIContext.AiConversation:
break;
case UIContext.AiConversationPopup:
break;
case UIContext.ServiceRecord: return "ModuleAiControlZeiterfassungStyle";
case UIContext.CustomerSingle: return "ModuleAiControlCustomerStyle";
case UIContext.PersonSingle: return "ModuleAiControlPersonStyle";
case UIContext.EmployeeSingle: return "ModuleAiControlEmployeeStyle";
}
return null;
}
}
}

View File

@@ -0,0 +1,80 @@
using BeWo.View.Detail.AI;
using BeWo.View.Windows;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace BeWo.Services
{
internal class BeWoWindowFactory : IWindowFactory
{
public Dictionary<UIContext, string> UIContext2Header { get; set; } = new Dictionary<UIContext, string>()
{
{UIContext.ServiceRecord, "Zeiterfassung KI Chat" },
{UIContext.Customer, "Klienten Übersicht KI Chat" },
{UIContext.Person, "Personen Übersicht KI Chat" },
{UIContext.Employee, "Mitarbeiter Übersicht KI Chat" },
{UIContext.Organisation, "Organisation Übersicht KI Chat" },
{UIContext.SupportConcept, "Hilfeplan Übersicht KI Chat" },
{UIContext.CustomerSingle, "Klient KI Chat" },
};
public AnimatedBeWoWindow GetAiConversationWindow(UIContext uIContext, Control control, double height = 600, double width = 1200)
{
UIContext2Header.TryGetValue(uIContext, out string title);
if (string.IsNullOrEmpty(title))
title = "default";
var window = GetAnimatedBeWoWindow(title, control,height, width);
return window;
}
private AnimatedBeWoWindow GetAnimatedBeWoWindow(string title, Control control, double height = 600, double width = 600)
{
var beWoWindow = new AnimatedBeWoWindow();
beWoWindow.Height = height;
beWoWindow.Width = width;
beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
beWoWindow.Title = title + " Fenster";
beWoWindow.rootGroupBox.Header = title;
beWoWindow.GroupBoxContent = control;
return beWoWindow;
}
public Control GetAiModalViewWindow(UIContext uIContext, Control control, double height = 600, double width = 1200)
{
UIContext2Header.TryGetValue(uIContext, out string title);
if (string.IsNullOrEmpty(title))
title = "default";
var popup = GetAiModalViewWindow(title, control, height, width);
return popup;
}
private Control GetAiModalViewWindow(string title, Control control, double height = 600, double width = 600)
{
var popup = new GroupBox();
popup.Style = Application.Current.FindResource("PopUpWindowStyle") as Style;
popup.Header = title;
popup.Content = control;
popup.Height = height;
popup.Width = width;
return popup;
}
}
}

View File

@@ -0,0 +1,69 @@
using BeWo.View.Windows;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace BeWo.Services
{
internal class BeWoWindowService : IWindowService
{
private readonly IWindowFactory _builder;
private readonly IControlFactory _controlFactory;
public BeWoWindowService(IWindowFactory builder, IControlFactory controlFactory)
{
_builder = builder;
_controlFactory = controlFactory;
}
public void ShowAiConversationWindow(UIContext uIContext, Dictionary<TableID, long[]> bewoObjects, long? reference_oid = null)
{
#if !DEBUG
BeWoApp.ShowInfoMessage("Diese Funktion befindet sich in der Testphase.");
return;
#endif
ShowWindowDialog(
cf => cf.GetAiConversationControl(uIContext, bewoObjects, reference_oid),
(wf, ctrl) => wf.GetAiConversationWindow(uIContext, ctrl));
}
public void ShowAiConversationModalViewWindow(UIContext uIContext, Dictionary<TableID, long[]> bewoObjects, long? reference_oid = null)
{
#if !DEBUG
BeWoApp.ShowInfoMessage("Diese Funktion befindet sich in der Testphase.");
return;
#endif
ShowModalViewWindow(cf => cf.GetAiConversationControl(uIContext, bewoObjects, reference_oid),
(wf, ctrl) => wf.GetAiModalViewWindow(uIContext, ctrl));
}
private void ShowWindow(Func<IControlFactory, Control> getControl, Func<IWindowFactory, Control, Window> getWindow)
{
var control = getControl(_controlFactory);
var window = getWindow(_builder, control);
window.Show();
}
private void ShowWindowDialog(Func<IControlFactory, Control> getControl, Func<IWindowFactory, Control, Window> getWindow)
{
var control = getControl(_controlFactory);
var window = getWindow(_builder, control);
window.ShowDialog();
}
private void ShowModalViewWindow(Func<IControlFactory, Control> getControl, Func<IWindowFactory, Control, Control> getPopup)
{
var control = getControl(_controlFactory);
var window = getPopup(_builder, control);
window.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => BeWoApp.MainControl.CloseCurrentPopUp()));
BeWoApp.MainControl.ShowControlAsModalPopup(window);
}
}
}

View File

@@ -0,0 +1,16 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace BeWo.Services
{
internal interface IControlFactory
{
Control GetAiConversationControl(UIContext uIContext, Dictionary<TableID, long[]> context, long? reference_oid = null);
}
}

View File

@@ -0,0 +1,18 @@
using BeWo.View.Windows;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace BeWo.Services
{
internal interface IWindowFactory
{
AnimatedBeWoWindow GetAiConversationWindow(UIContext uIContext, Control control, double height = 600, double width = 1200);
Control GetAiModalViewWindow(UIContext uIContext, Control control, double height = 600, double width = 1200);
}
}

View File

@@ -0,0 +1,17 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace BeWo.Services
{
internal interface IWindowService
{
void ShowAiConversationWindow(UIContext uIContext, Dictionary<TableID, long[]> bewoObjects, long? reference_oid = null);
void ShowAiConversationModalViewWindow(UIContext uIContext, Dictionary<TableID, long[]> bewoObjects, long? reference_oid = null);
}
}

View File

@@ -1,10 +1,135 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="TextBoxBorderBrush" Color="#FF86878F" />
<SolidColorBrush x:Key="ControlBackgroundBrush" Color="#FFFDC784" />
<SolidColorBrush x:Key="ControlSelectedBackgroundBrush" Color="#FFFFD86C" />
<SolidColorBrush x:Key="ControlMouseOverBackgroundBrush" Color="#FFDCA158" />
<SolidColorBrush x:Key="TabItemHotTextBrush" Color="#FFAB4A07" />
<!-- Region Brushes -->
<SolidColorBrush x:Key="TextModuleBrush" Color="#FFA9B8C2" />
<SolidColorBrush x:Key="ZusageMitVorbehaltBrush" Color="#FFB927D9" />
<SolidColorBrush x:Key="ZusageZugesagtBrush" Color="#FF48D44E" />
<SolidColorBrush x:Key="ZusageAbgesagtBrush" Color="#FFAB0030" />
<SolidColorBrush x:Key="GridPrintMenuLightBrush" Color="White" />
<SolidColorBrush x:Key="BSOrangeBrush" Color="#FFFF5A00" />
<SolidColorBrush x:Key="LightOrangeBrush" Color="#FFFB6F0E" />
<SolidColorBrush x:Key="GroupBookingBackgroundBrush" Color="#FFFDC784" />
<SolidColorBrush x:Key="GroupBookingSelectedBackgroundBrush" Color="#FFBE8A49" />
<SolidColorBrush x:Key="GroupBookingMouseOverBackgroundBrush" Color="#FFDCA158" />
<LinearGradientBrush x:Key="ApplicationBackground" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.38" Color="#FFDADADB" />
<GradientStop Offset="0.725" Color="#FFA9B8C2" />
<GradientStop Offset="0.91" Color="#FF4E565A" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="LoginBackground" StartPoint="0.5,0.051" EndPoint="0.5,0.699">
<GradientStop Color="#FF96A4AD" />
<GradientStop Offset="0.888" Color="#FF9FADB6" />
<GradientStop Offset="0.625" Color="#FFA9B8C2" />
<GradientStop Offset="0.504" Color="#FF87929B" />
<GradientStop Offset="0.33" Color="#FF8E9AA3" />
</LinearGradientBrush>
<SolidColorBrush x:Key="ControlBackground" Color="#FFFCFAF2" />
<SolidColorBrush x:Key="MainGroupBoxForegroundBrush" Color="#FFD7D7D7" />
<RadialGradientBrush x:Key="MainGroupBoxComboBackgroundBrush">
<GradientStop Offset="0" Color="#4CD7D7D7" />
<GradientStop Offset="0.995" Color="#00D7D7D7" />
</RadialGradientBrush>
<LinearGradientBrush x:Key="MainGroupBoxSelectedItemBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#24000000" />
<GradientStop Offset="1" Color="#4C000000" />
</LinearGradientBrush>
<SolidColorBrush x:Key="GlyphBrush" Color="#FF0D82C0" />
<LinearGradientBrush x:Key="ButtonNormalBackground" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#F3F3F3" />
<GradientStop Offset="0.5" Color="#EBEBEB" />
<GradientStop Offset="0.5" Color="#DDDDDD" />
<GradientStop Offset="1" Color="#CDCDCD" />
</LinearGradientBrush>
<SolidColorBrush x:Key="ButtonNormalBorder" Color="#FF707070" />
<LinearGradientBrush x:Key="BorderBrush" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,20">
<GradientStop Offset="0.05" Color="#ABADB3" />
<GradientStop Offset="0.07" Color="#E2E3EA" />
<GradientStop Offset="1" Color="#E3E9EF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="DevEx" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#FFFBF9F9" />
<GradientStop Offset="1" Color="#FFDFDFDF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="MouseOverBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#FFF" />
<GradientStop Offset="1.0" Color="#AAA" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#BBB" />
<GradientStop Offset="0.1" Color="#EEE" />
<GradientStop Offset="0.9" Color="#EEE" />
<GradientStop Offset="1.0" Color="#FFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="ToolbarBrushBlack" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FF858585" />
<GradientStop Offset="0.99" Color="#FF2B2B2B" />
<GradientStop Offset="0.415" Color="#FF414141" />
<GradientStop Offset="0.535" Color="#FF000000" />
</LinearGradientBrush>
<SolidColorBrush x:Key="ToolbarTextBrush" Color="#FF000000" />
<LinearGradientBrush x:Key="ToolbarBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.095" Color="#FFF6D7AE" />
<GradientStop Offset="1" Color="#FFF7DE8C" />
<GradientStop Offset="0.29" Color="#FFF9B14C" />
<GradientStop Offset="0.546" Color="#FFFBC15C" />
</LinearGradientBrush>
<SolidColorBrush x:Key="NavigationHeaderBrushTest" Color="#FF474747" />
<LinearGradientBrush x:Key="NavigationContentBrushTest" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FFBEAF00" />
<GradientStop Offset="1" Color="#FF8C7D00" />
</LinearGradientBrush>
<!-- Endregion -->
<!-- Module AI Farben -->
<Color x:Key="ModuleAiControlDefaultNavigationHeaderColor">#ffaaaaaa</Color>
<Color x:Key="ModuleAiControlDefaultNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlDefaultNavigationContentColor2">#FF92A9B3</Color>
<Color x:Key="ModuleAiControlZeiterfassungNavigationHeaderColor">#FFC80000</Color>
<Color x:Key="ModuleAiControlZeiterfassungNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlZeiterfassungNavigationContentColor2">#FF92A9B3</Color>
<Color x:Key="ModuleAiControlSupportConceptNavigationHeaderColor">#FF993B3B</Color>
<Color x:Key="ModuleAiControlSupportConceptNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlSupportConceptNavigationContentColor2">#FF92A9B3</Color>
<Color x:Key="ModuleAiControlCustomerNavigationHeaderColor">#FF19485C</Color>
<Color x:Key="ModuleAiControlCustomerNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlCustomerNavigationContentColor2">#FF92A9B3</Color>
<Color x:Key="ModuleAiControlPersonNavigationHeaderColor">#FF9E3D02</Color>
<Color x:Key="ModuleAiControlPersonNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlPersonNavigationContentColor2">#FF92A9B3</Color>
<Color x:Key="ModuleAiControlEmployeeNavigationHeaderColor">#FF205C19</Color>
<Color x:Key="ModuleAiControlEmployeeNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlEmployeeNavigationContentColor2">#FF92A9B3</Color>
<Color x:Key="ModuleAiControlOrganisationNavigationHeaderColor">#FFC8C000</Color>
<Color x:Key="ModuleAiControlOrganisationNavigationContentColor">#FFD7DADB</Color>
<Color x:Key="ModuleAiControlOrganisationNavigationContentColor2">#FF92A9B3</Color>
<SolidColorBrush x:Key="ModuleAiChatTabItem" Color="#FFFFFFBF" />
<SolidColorBrush x:Key="ModuleAiChatPrimaryColor" Color="#FFCECF7F" />
</ResourceDictionary>

View File

@@ -150,4 +150,168 @@
TargetType="{x:Type Button}">
<Setter Property="Height" Value="21" />
</Style>
<!-- Region Weiße Buttons im ModalPopup -->
<Style
x:Key="PopupToolbarButtonStyle"
BasedOn="{StaticResource HideDisabledButton}"
TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontWeight" Value="Medium" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames
AccelerationRatio="1"
BeginTime="00:00:00"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1.2" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
AccelerationRatio="1"
BeginTime="00:00:00"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1.2" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Storyboard2">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
DecelerationRatio="1"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
DecelerationRatio="1"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<ContentPresenter
x:Name="contentPresenter"
Width="Auto"
Margin="3,0,3,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RenderTransformOrigin="0.5,0.5">
<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>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.ExitActions>
<BeginStoryboard x:Name="Storyboard2_BeginStoryboard" Storyboard="{StaticResource Storyboard2}" />
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard1}" />
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- EndRegion -->
<!-- Region Weiße Buttons im MainNavigationView -->
<Style
x:Key="NavigationToolbarButtonStyle"
BasedOn="{StaticResource HideDisabledButton}"
TargetType="{x:Type Button}">
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames
AccelerationRatio="1"
BeginTime="00:00:00"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1.2" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
AccelerationRatio="1"
BeginTime="00:00:00"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1.2" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Storyboard2">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
DecelerationRatio="1"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
DecelerationRatio="1"
Storyboard.TargetName="contentPresenter"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)"
Duration="00:00:00.2">
<SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<ContentPresenter
x:Name="contentPresenter"
Width="Auto"
Margin="3,0,3,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
RenderTransformOrigin="0.5,0.5">
<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>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.ExitActions>
<BeginStoryboard x:Name="Storyboard2_BeginStoryboard" Storyboard="{StaticResource Storyboard2}" />
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard1}" />
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="#FFFFFFFF" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="16" />
</Style>
<!-- EndRegion -->
</ResourceDictionary>

View File

@@ -1,4 +1,7 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\DataTemplates\ControlTemplates.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="BaseGroupBox" TargetType="{x:Type GroupBox}">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="3" />

View File

@@ -0,0 +1,38 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="WindowBase" TargetType="{x:Type Window}" />
<Style
x:Key="EmptyWindow"
BasedOn="{StaticResource WindowBase}"
TargetType="{x:Type Window}" />
<!-- Eine Ease-Out-Funktion für eine sanfte Bewegung -->
<QuadraticEase x:Key="EaseOut" EasingMode="EaseOut" />
<Storyboard x:Key="WindowLoadedAnimation">
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.5" />
<DoubleAnimation
EasingFunction="{StaticResource EaseOut}"
Storyboard.TargetProperty="RenderTransform.(TranslateTransform.Y)"
From="50"
To="0"
Duration="0:0:0.5" />
</Storyboard>
<Storyboard x:Key="WindowClosingAnimation">
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="1"
To="0"
Duration="0:0:0.5" />
<DoubleAnimation
EasingFunction="{StaticResource EaseOut}"
Storyboard.TargetProperty="RenderTransform.(TranslateTransform.Y)"
From="0"
To="50"
Duration="0:0:0.5" />
</Storyboard>
</ResourceDictionary>

View File

@@ -2,6 +2,11 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\Colors\Colors.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="ComboBoxFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
@@ -89,4 +94,55 @@
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="NavigationGroupTemplate2" TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Border
Grid.Row="0"
Grid.Column="0"
Background="{DynamicResource NavigationHeaderBrush}"
CornerRadius="1,1,1,1">
<Border
x:Name="Header"
Grid.Row="0"
Grid.Column="0"
Margin="8"
Padding="0"
Background="{x:Null}">
<ContentPresenter
Margin="0,0,0,0"
Content="{TemplateBinding Header}"
ContentSource="Header"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
RecognizesAccessKey="True"
RenderTransformOrigin="0,0.5"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
</Border>
<Border
Grid.Row="1"
Grid.Column="0"
Margin="0,2,0,0"
Padding="0,0,0,0"
Background="{DynamicResource NavigationContentBrush}"
CornerRadius="1,1,1,1">
<ContentPresenter
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
</Grid>
</ControlTemplate>
</ResourceDictionary>

View File

@@ -0,0 +1,3 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</ResourceDictionary>

View File

@@ -0,0 +1,314 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxwui="http://schemas.devexpress.com/winfx/2008/xaml/windowsui"
xmlns:templateselectors="clr-namespace:BeWo.View.TemplateSelectors"
xmlns:viewmodel="clr-namespace:BeWo.ViewModel">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\DataTemplates\ControlTemplates.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="MessageTextBoxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Margin" Value="0" />
<Setter Property="Height" Value="auto" />
<Setter Property="Padding" Value="3" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="Text" Value="{Binding Message, Converter={StaticResource NewlineConverter}}" />
</Style>
<Style x:Key="TextBlockStyle" TargetType="{x:Type TextBlock}" />
<Style x:Key="ModuleAiControlDefaultStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlDefaultNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlDefaultNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlDefaultNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<Style x:Key="ModuleAiControlZeiterfassungStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlZeiterfassungNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlZeiterfassungNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlZeiterfassungNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<Style x:Key="ModuleAiControlSupportConceptStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlSupportConceptNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlSupportConceptNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlSupportConceptNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<Style x:Key="ModuleAiControlCustomerStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlCustomerNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlCustomerNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlCustomerNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<Style x:Key="ModuleAiControlPersonStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlPersonNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlPersonNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlPersonNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<Style x:Key="ModuleAiControlEmployeeStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlEmployeeNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlEmployeeNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlEmployeeNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<Style x:Key="ModuleAiControlOrganisationStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="{StaticResource ModuleAiControlOrganisationNavigationHeaderColor}" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="{StaticResource ModuleAiControlOrganisationNavigationContentColor}" />
<GradientStop Offset="1" Color="{StaticResource ModuleAiControlOrganisationNavigationContentColor2}" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<!-- OLD -->
<Style x:Key="ModuleAiNavigationStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="#FFC64605" />
<LinearGradientBrush x:Key="NavigationContentBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FFFFC48A" />
<GradientStop Offset="1" Color="#FFFF7830" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate2}" />
</Style>
<DataTemplate x:Key="ConversationHamburgerMenuItemTemplate" DataType="{x:Type viewmodel:AiConversationVM}">
<dxwui:HamburgerMenuNavigationButton Content="{Binding Displayname}" />
</DataTemplate>
<!-- Conversation Control -->
<DataTemplate x:Key="ConversationTemplate">
<Border
Width="auto"
Margin="0,0,0,0"
HorizontalAlignment="Stretch"
Background="#44000000"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="10, 10, 10, 10">
<Grid Margin="8">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<TextBlock
FontSize="12"
FontWeight="SemiBold"
Text="{Binding Displayname}"
TextTrimming="CharacterEllipsis" />
<TextBlock
Grid.Row="1"
FontSize="10"
FontWeight="Thin"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Created, StringFormat=Erstellt: {0:dd.MM.yyyy HH:mm:ss}}" />
<TextBlock
Grid.Row="2"
FontSize="10"
FontWeight="Thin"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Updated, StringFormat=Aktualisiert: {0:dd.MM.yyyy HH:mm:ss}}" />
<!--<TextBlock
Grid.Row="2"
FontSize="10"
FontWeight="Thin"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Modell.ModelName, StringFormat=Modell: {0}}" />-->
</Grid>
</Border>
</DataTemplate>
<!-- Assistent Message Control -->
<DataTemplate x:Key="AssistentMessageTemplate">
<Grid Margin="0,0,30,0" HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border
Width="auto"
Margin="0,4,0,0"
Padding="4"
VerticalAlignment="Top"
Background="#09000000"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="10, 10, 10, 10">
<Image
Width="24"
Height="24"
Source="..\..\Ressources\Icons\chatbot2.png" />
</Border>
<Border
Grid.Column="1"
Padding="8,4,8,4"
Background="#00000000"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="0, 10, 10, 10">
<Grid Margin="4,0,0,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<TextBlock
Margin="0"
Padding="0"
FontSize="12"
FontWeight="SemiBold"
Style="{StaticResource TextBlockStyle}"
Text="{Binding ModelName}" />
<TextBlock
Grid.Column="1"
Margin="8,0,0,0"
Padding="0"
VerticalAlignment="Bottom"
FontSize="10"
FontWeight="Medium"
Style="{StaticResource TextBlockStyle}"
Text="{Binding Created, StringFormat={}{0:dd.MM.yyyy HH:mm:ss}}" />
<TextBlock
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="0,4,0,4"
Padding="0"
VerticalAlignment="Center"
FontSize="11"
FontWeight="Medium"
Foreground="#888888"
Style="{StaticResource TextBlockStyle}"
Text="{Binding DurationSec, StringFormat=Nachgedacht für {0} Sekunden}" />
<!--<TextBlock
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="0,4,0,0"
Padding="0"
FontSize="11"
FontWeight="Medium"
Foreground="#888888"
Style="{StaticResource TextBlockStyle}"
Text="{Binding DurationSec, StringFormat=Nachgedacht für {0} Sekunden}" />-->
<TextBox
Grid.Row="2"
Grid.ColumnSpan="2"
Margin="0,4,0,0"
Padding="-3"
Style="{StaticResource MessageTextBoxStyle}" />
</Grid>
</Border>
</Grid>
</DataTemplate>
<!-- System Message Control -->
<DataTemplate x:Key="SystemMessageTemplate">
<Border
Width="auto"
Margin="30,0,30,0"
HorizontalAlignment="Center"
Background="#33000000"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="0">
<Grid>
<TextBox Padding="8" Style="{StaticResource MessageTextBoxStyle}" />
</Grid>
</Border>
</DataTemplate>
<!-- User Message Control -->
<DataTemplate x:Key="UserMessageTemplate">
<Border
Width="auto"
Margin="30,0,0,0"
HorizontalAlignment="Right"
Background="#15000000"
BorderBrush="Black"
BorderThickness="0"
CornerRadius="15, 15, 15, 15">
<Grid>
<TextBox Padding="12,8,12,8" Style="{StaticResource MessageTextBoxStyle}" />
</Grid>
</Border>
</DataTemplate>
<DataTemplate x:Key="CheckboxAssistentMessageTemplate">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<CheckBox
Margin="4"
VerticalAlignment="Center"
IsChecked="{Binding IsChecked}" />
<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
x:Key="AiConversationMessageTemplateSelector"
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

@@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:templateselectors="clr-namespace:BeWo.View.TemplateSelectors"
xmlns:uc="clr-namespace:BeWo.View.Controls">
<ResourceDictionary.MergedDictionaries>
@@ -23,6 +24,9 @@
<ResourceDictionary Source="ControlStyles\TextBoxStyles.xaml" />
<ResourceDictionary Source="ControlStyles\TextEditStyles.xaml" />
<ResourceDictionary Source="ControlStyles\ToggleButtonStyles.xaml" />
<ResourceDictionary Source="ControlStyles\WindowStyles.xaml" />
<ResourceDictionary Source="Features\AIChatStyles.xaml" />
<!-- Benötigt TextBoxStyles + ToggleButtonStyles -->
<ResourceDictionary Source="ControlStyles\NullItemComboBoxStyles.xaml" />
@@ -40,4 +44,6 @@
<Style BasedOn="{StaticResource BaseRadioButton}" TargetType="RadioButton" />
<Style BasedOn="{StaticResource TextBoxBase}" TargetType="TextBox" />
<Style BasedOn="{StaticResource BaseTextEdit}" TargetType="dxe:TextEdit" />
<!-- Default Styles -->
</ResourceDictionary>

View File

@@ -14,100 +14,14 @@
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
mc:Ignorable="d">
<!-- Region Brushes -->
<SolidColorBrush x:Key="TextModuleBrush" Color="#FFA9B8C2" />
<SolidColorBrush x:Key="ZusageMitVorbehaltBrush" Color="#FFB927D9" />
<SolidColorBrush x:Key="ZusageZugesagtBrush" Color="#FF48D44E" />
<SolidColorBrush x:Key="ZusageAbgesagtBrush" Color="#FFAB0030" />
<SolidColorBrush x:Key="GridPrintMenuLightBrush" Color="White" />
<SolidColorBrush x:Key="BSOrangeBrush" Color="#FFFF5A00" />
<SolidColorBrush x:Key="LightOrangeBrush" Color="#FFFB6F0E" />
<SolidColorBrush x:Key="GroupBookingBackgroundBrush" Color="#FFFDC784" />
<SolidColorBrush x:Key="GroupBookingSelectedBackgroundBrush" Color="#FFBE8A49" />
<SolidColorBrush x:Key="GroupBookingMouseOverBackgroundBrush" Color="#FFDCA158" />
<LinearGradientBrush x:Key="ApplicationBackground" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.38" Color="#FFDADADB" />
<GradientStop Offset="0.725" Color="#FFA9B8C2" />
<GradientStop Offset="0.91" Color="#FF4E565A" />
</LinearGradientBrush>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Colors\Colors.xaml" />
</ResourceDictionary.MergedDictionaries>
<conv:CustomerDCPrintURLConverter x:Key="CustomerDCPrintURLConverter" />
<conv:InvoiceBaseDCPrintURLConverter x:Key="InvoiceBaseDCPrintURLConverter" />
<LinearGradientBrush x:Key="LoginBackground" StartPoint="0.5,0.051" EndPoint="0.5,0.699">
<GradientStop Color="#FF96A4AD" />
<GradientStop Offset="0.888" Color="#FF9FADB6" />
<GradientStop Offset="0.625" Color="#FFA9B8C2" />
<GradientStop Offset="0.504" Color="#FF87929B" />
<GradientStop Offset="0.33" Color="#FF8E9AA3" />
</LinearGradientBrush>
<SolidColorBrush x:Key="ControlBackground" Color="#FFFCFAF2" />
<SolidColorBrush x:Key="MainGroupBoxForegroundBrush" Color="#FFD7D7D7" />
<RadialGradientBrush x:Key="MainGroupBoxComboBackgroundBrush">
<GradientStop Offset="0" Color="#4CD7D7D7" />
<GradientStop Offset="0.995" Color="#00D7D7D7" />
</RadialGradientBrush>
<LinearGradientBrush x:Key="MainGroupBoxSelectedItemBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#24000000" />
<GradientStop Offset="1" Color="#4C000000" />
</LinearGradientBrush>
<SolidColorBrush x:Key="GlyphBrush" Color="#FF0D82C0" />
<LinearGradientBrush x:Key="ButtonNormalBackground" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#F3F3F3" />
<GradientStop Offset="0.5" Color="#EBEBEB" />
<GradientStop Offset="0.5" Color="#DDDDDD" />
<GradientStop Offset="1" Color="#CDCDCD" />
</LinearGradientBrush>
<SolidColorBrush x:Key="ButtonNormalBorder" Color="#FF707070" />
<LinearGradientBrush x:Key="BorderBrush" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,20">
<GradientStop Offset="0.05" Color="#ABADB3" />
<GradientStop Offset="0.07" Color="#E2E3EA" />
<GradientStop Offset="1" Color="#E3E9EF" />
</LinearGradientBrush>
<SolidColorBrush x:Key="TextBoxBorderBrush" Color="#FF86878F" />
<LinearGradientBrush x:Key="DevEx" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#FFFBF9F9" />
<GradientStop Offset="1" Color="#FFDFDFDF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="MouseOverBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#FFF" />
<GradientStop Offset="1.0" Color="#AAA" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0.0" Color="#BBB" />
<GradientStop Offset="0.1" Color="#EEE" />
<GradientStop Offset="0.9" Color="#EEE" />
<GradientStop Offset="1.0" Color="#FFF" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="ToolbarBrushBlack" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FF858585" />
<GradientStop Offset="0.99" Color="#FF2B2B2B" />
<GradientStop Offset="0.415" Color="#FF414141" />
<GradientStop Offset="0.535" Color="#FF000000" />
</LinearGradientBrush>
<SolidColorBrush x:Key="ToolbarTextBrush" Color="#FF000000" />
<LinearGradientBrush x:Key="ToolbarBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.095" Color="#FFF6D7AE" />
<GradientStop Offset="1" Color="#FFF7DE8C" />
<GradientStop Offset="0.29" Color="#FFF9B14C" />
<GradientStop Offset="0.546" Color="#FFFBC15C" />
</LinearGradientBrush>
<!-- Endregion -->
<!-- Region Controls -->
<Style TargetType="{x:Type TextBox}">

View File

@@ -1,13 +1,20 @@
<Window x:Class="BeWo.UploadDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="UploadDialog" Height="150" Width="300"
WindowStartupLocation="CenterOwner"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent" ResizeMode="NoResize" >
<Window
x:Class="BeWo.UploadDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="UploadDialog"
Width="300"
Height="150"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize"
WindowStartupLocation="CenterOwner"
WindowStyle="None">
<Grid>
<GroupBox Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Download" MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown">
<GroupBox
Header="Download"
MouseLeftButtonDown="UIElement_OnMouseLeftButtonDown"
Style="{StaticResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
@@ -18,9 +25,29 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Margin="3" Text="{Binding Question}" Grid.ColumnSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" TextAlignment="Center" Foreground="#FF202020"/>
<Button Margin="0,0,5,5" Grid.Row="1" Grid.Column="1" Content="Hochladen" Click="btn_Upload_Click" x:Name="Hochladebtn" />
<Button Margin="0,0,5,5" Grid.Row="1" Grid.Column="2" Content="Abbrechen" Command="Close" x:Name="Abbrechbtn" />
<TextBlock
Grid.ColumnSpan="3"
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="#FF202020"
Text="{Binding Question}"
TextAlignment="Center"
TextWrapping="Wrap" />
<Button
x:Name="Hochladebtn"
Grid.Row="1"
Grid.Column="1"
Margin="0,0,5,5"
Click="btn_Upload_Click"
Content="Hochladen" />
<Button
x:Name="Abbrechbtn"
Grid.Row="1"
Grid.Column="2"
Margin="0,0,5,5"
Command="Close"
Content="Abbrechen" />
</Grid>
</GroupBox>
</Grid>

View File

@@ -1,17 +1,22 @@
<view:BeWoView x:Class="BeWo.View.BargeldkassenView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:view="clr-namespace:BeWo.View"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:controls="clr-namespace:BeWo.View.Controls"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
mc:Ignorable="d" VerticalAlignment="Stretch" Focusable="True">
<view:BeWoView
x:Class="BeWo.View.BargeldkassenView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.View.Controls"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:view="clr-namespace:BeWo.View"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True"
mc:Ignorable="d">
<view:BeWoView.Resources>
<Style x:Key="bargeldkassenListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="#00FFFFFF" />
@@ -21,15 +26,20 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
<Border
x:Name="Bd"
Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
@@ -40,7 +50,7 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="HyperlinkStyle" TargetType="{x:Type Hyperlink}">
<Setter Property="Foreground" Value="#FF2B508B" />
<!--<Style.Triggers>
@@ -53,18 +63,29 @@
<GroupBox Header="Bargeldkassen" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<Button Content="Neue Kasse hinzufügen" Margin="3" Click="ButtonOpenAddBargeldkasseClick" IsEnabled="{Binding Path=DarfBargeldTransaktionAnlegen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Button
Margin="3"
Click="ButtonOpenAddBargeldkasseClick"
Content="Neue Kasse hinzufügen"
IsEnabled="{Binding Path=DarfBargeldTransaktionAnlegen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<controls:PopupNonTopmost x:Name="popup_newBargeldkasse">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_newBargeldkasse" Header="Neue Kasse hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<Border
Padding="3"
Background="White"
BorderBrush="Gray"
BorderThickness="1">
<GroupBox
x:Name="groupbox_newBargeldkasse"
Header="Neue Kasse hinzufügen"
Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -76,25 +97,75 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Kassenname" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Height="23" Margin="3,0,3,3" Text="{validation:ValidationBinding Path=NewVM.Kassenname}" />
<Label Grid.Column="0" Grid.Row="1" Content="Auszahlungsintervall" VerticalAlignment="Center" />
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" Height="23" HorizontalAlignment="Left" Width="150" IsTextEditable="False"
Margin="3,0,3,3" IsEnabled="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Auszahlungsintervall}}" EditValue="{validation:ValidationBinding Path=NewVM.Auszahlungsintervall}" />
<Label Grid.Column="0" Grid.Row="2" Content="Anfangsbestand" VerticalAlignment="Center" />
<dxe:TextEdit Grid.Column="1" Grid.Row="2" MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Height="23" Margin="3"
EditValue="{validation:ValidationBinding Path=NewVM.Anfangsbestand}"/>
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="3" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Click="ButtonAddBargeldkasseClick" Content="Hinzufügen" Height="25"
FontWeight="Normal" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Right" />
<Button HorizontalAlignment="Right" VerticalAlignment="Center" Height="25"
Margin="3" Content="Abbrechen" Click="ButtonCancelAddBargeldkasseClick" />
<Label
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Center"
Content="Kassenname" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3,0,3,3"
VerticalAlignment="Center"
Text="{validation:ValidationBinding Path=NewVM.Kassenname}" />
<Label
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center"
Content="Auszahlungsintervall" />
<dxe:ComboBoxEdit
Grid.Row="1"
Grid.Column="1"
Width="150"
Height="23"
Margin="3,0,3,3"
HorizontalAlignment="Left"
VerticalAlignment="Center"
EditValue="{validation:ValidationBinding Path=NewVM.Auszahlungsintervall}"
IsEnabled="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
IsTextEditable="False"
ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Auszahlungsintervall}}" />
<Label
Grid.Row="2"
Grid.Column="0"
VerticalAlignment="Center"
Content="Anfangsbestand" />
<dxe:TextEdit
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
EditValue="{validation:ValidationBinding Path=NewVM.Anfangsbestand}"
Mask="########0.00"
MaskType="Numeric"
MaskUseAsDisplayFormat="True" />
<StackPanel
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button
Height="25"
Margin="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="ButtonAddBargeldkasseClick"
Content="Hinzufügen"
FontWeight="Normal" />
<Button
Height="25"
Margin="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="ButtonCancelAddBargeldkasseClick"
Content="Abbrechen" />
</StackPanel>
</Grid>
</GroupBox>
@@ -102,8 +173,15 @@
</controls:PopupNonTopmost>
<!--<Button Content="Neue Zahlung hinzufügen" Margin="3" Click="ButtonOpenAddBargeldtransaktionClick" IsEnabled="{Binding Path=DarfBargeldTransaktionAnlegen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />-->
<controls:PopupNonTopmost x:Name="popup_newBargeldtransaktion" Placement="MousePoint">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_newBargeldtransaktion" Header="Neue Zahlung zu einer Kasse hinzufügen" Style="{DynamicResource ObjectEditGroupBox}">
<Border
Padding="3"
Background="White"
BorderBrush="Gray"
BorderThickness="1">
<GroupBox
x:Name="groupbox_newBargeldtransaktion"
Header="Neue Zahlung zu einer Kasse hinzufügen"
Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
@@ -117,100 +195,239 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}} -->
<!-- RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}} -->
<!--<Label Grid.Column="0" Grid.Row="0" Content="Kasse" VerticalAlignment="Center" />
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Height="23" Margin="3,0,3,3" ItemsSource="{Binding VMList}" Width="150" x:Name="NewTransaktionKassenCB"
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" Height="23" Margin="3,0,3,3" ItemsSource="{Binding VMList}" Width="150" x:Name="NewTransaktionKassenCB"
EditValue="{validation:ValidationBinding Path=SelectedBargeldkasse, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />-->
<Label Grid.Column="0" Grid.Row="0" Content="Datum" VerticalAlignment="Center" />
<dxe:DateEdit Grid.Column="1" Grid.Row="0" MaskType="DateTimeAdvancingCaret"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Zahlungsdatum, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" Height="23" Margin="3" x:Name="NewTransaktionDatumDateEdit" />
<Label
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Center"
Content="Datum" />
<dxe:DateEdit
x:Name="NewTransaktionDatumDateEdit"
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Zahlungsdatum,
UpdateSourceTrigger=PropertyChanged,
RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
MaskType="DateTimeAdvancingCaret" />
<Label Grid.Column="0" Grid.Row="1" Content="Art" VerticalAlignment="Center" />
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="1" Height="23" IsTextEditable="False" Margin="3,0,3,3"
ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" x:Name="NewTransaktionZahlungstypComboBoxEdit"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Zahlungstyp, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center"
Content="Art" />
<dxe:ComboBoxEdit
x:Name="NewTransaktionZahlungstypComboBoxEdit"
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3,0,3,3"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Zahlungstyp,
UpdateSourceTrigger=PropertyChanged,
RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
IsTextEditable="False"
ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" />
<Label Grid.Column="0" Grid.Row="2" Content="Betrag" VerticalAlignment="Center" />
<dxe:TextEdit Grid.Column="1" Grid.Row="2" MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Height="23" Margin="3" x:Name="NewTransaktionBetragTextEdit"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Betrag, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label Grid.Column="0" Grid.Row="3" Content="{t:Translate Belegnummer}" VerticalAlignment="Center" />
<dxe:TextEdit Grid.Column="1" Grid.Row="3" Height="23" Margin="3" x:Name="NewTransaktionBelegnummerTextEdit"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Belegnummer, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label
Grid.Row="2"
Grid.Column="0"
VerticalAlignment="Center"
Content="Betrag" />
<dxe:TextEdit
x:Name="NewTransaktionBetragTextEdit"
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Betrag,
UpdateSourceTrigger=PropertyChanged,
RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
Mask="########0.00"
MaskType="Numeric"
MaskUseAsDisplayFormat="True" />
<Label
Grid.Row="3"
Grid.Column="0"
VerticalAlignment="Center"
Content="{t:Translate Belegnummer}" />
<dxe:TextEdit
x:Name="NewTransaktionBelegnummerTextEdit"
Grid.Row="3"
Grid.Column="1"
Height="23"
Margin="3"
EditValue="{validation:ValidationBinding Path=NewBargeldtransaktion.Belegnummer,
UpdateSourceTrigger=PropertyChanged,
RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label Grid.Column="0" Grid.Row="4" Content="Notiz" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" Height="60" Margin="3,0,3,3"
ScrollViewer.CanContentScroll="False" VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Hidden" TextWrapping="Wrap" AcceptsReturn="True"
AutoWordSelection="True" Language="de-DE" SpellCheck.IsEnabled="True"
x:Name="NewTransaktionNotizTextBox"
Text="{Binding Path=NewBargeldtransaktion.Notice, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"/>
<Label
Grid.Row="4"
Grid.Column="0"
VerticalAlignment="Center"
Content="Notiz" />
<TextBox
x:Name="NewTransaktionNotizTextBox"
Grid.Row="4"
Grid.Column="1"
Height="60"
Margin="3,0,3,3"
VerticalAlignment="Center"
AcceptsReturn="True"
AutoWordSelection="True"
HorizontalScrollBarVisibility="Hidden"
Language="de-DE"
ScrollViewer.CanContentScroll="False"
SpellCheck.IsEnabled="True"
Text="{Binding Path=NewBargeldtransaktion.Notice, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="5" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Click="ButtonAddBargeldtransaktionClick" Content="Hinzufügen" Height="25"
FontWeight="Normal" Margin="3" VerticalAlignment="Center" HorizontalAlignment="Right" />
<Button HorizontalAlignment="Right" VerticalAlignment="Center" Height="25"
Margin="3" Content="Abbrechen" Click="ButtonCancelAddBargeldtransaktionClick" />
<StackPanel
Grid.Row="5"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button
Height="25"
Margin="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="ButtonAddBargeldtransaktionClick"
Content="Hinzufügen"
FontWeight="Normal" />
<Button
Height="25"
Margin="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Click="ButtonCancelAddBargeldtransaktionClick"
Content="Abbrechen" />
</StackPanel>
</Grid>
</GroupBox>
</Border>
</controls:PopupNonTopmost>
</StackPanel>
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Stretch">
<StackPanel
Grid.Row="0"
Grid.Column="1"
VerticalAlignment="Stretch"
Orientation="Horizontal">
<Label Content="Sortierung" />
<ComboBox Height="23" x:Name="SortComboBox" Margin="3" VerticalAlignment="Top" MinWidth="180" SelectionChanged="SortComboBox_SelectionChanged"/>
<ComboBox
x:Name="SortComboBox"
Height="23"
MinWidth="180"
Margin="3"
VerticalAlignment="Top"
SelectionChanged="SortComboBox_SelectionChanged" />
</StackPanel>
<TabControl Grid.Row="1" Grid.ColumnSpan="2" Margin="5" ItemsSource="{Binding VMList}" x:Name="tabcontrol_bargeldkassen" Visibility="{Binding VMList.Count, Converter={StaticResource CollectionCountToVisibilityConverter}}">
<TabControl
x:Name="tabcontrol_bargeldkassen"
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="5"
ItemsSource="{Binding VMList}"
Visibility="{Binding VMList.Count, Converter={StaticResource CollectionCountToVisibilityConverter}}">
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Kassenname}" />
<Button VerticalAlignment="Center" Height="20"
ToolTip="Bargeldkasse umbenennen"
Margin="3" Content="!" FontFamily="Wingdings"
IsEnabled="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
Click="KassennamenChangeButtonClick">
<Button
Height="20"
Margin="3"
VerticalAlignment="Center"
Click="KassennamenChangeButtonClick"
Content="!"
FontFamily="Wingdings"
IsEnabled="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
ToolTip="Bargeldkasse umbenennen">
<Button.Visibility>
<MultiBinding Converter="{StaticResource BoolVisibilityMultiConverter }">
<MultiBinding Converter="{StaticResource BoolVisibilityMultiConverter}">
<Binding Path="IsSelected" RelativeSource="{RelativeSource AncestorType={x:Type TabItem}}" />
</MultiBinding>
</Button.Visibility>
</Button>
<controls:PopupNonTopmost x:Name="popup_kassennamenEdit">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="Name"/>
<TextBox Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" MinWidth="200" Height="23" Margin="3" Text="{validation:ValidationBinding Path=Kassenname, UpdateSourceTrigger=PropertyChanged}" />
<Label Grid.Row="1" Grid.Column="0" Content="Anfangsbestand"/>
<dxe:TextEdit Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Height="23" Margin="3"
EditValue="{validation:ValidationBinding Path=Anfangsbestand, UpdateSourceTrigger=PropertyChanged}"/>
<Button Grid.Row="2" Grid.Column="2" Content="Speichern" Margin="3" Click="KassennamenChangeSaveButtonClick" />
<Button Grid.Row="2" Grid.Column="3" Content="Abbrechen" Margin="3" Click="KassennamenChangeCancelButtonClick" />
</Grid>
<Border
Padding="3"
Background="White"
BorderBrush="Gray"
BorderThickness="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Content="Name" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
MinWidth="200"
Margin="3"
Text="{validation:ValidationBinding Path=Kassenname,
UpdateSourceTrigger=PropertyChanged}" />
<Label
Grid.Row="1"
Grid.Column="0"
Content="Anfangsbestand" />
<dxe:TextEdit
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
EditValue="{validation:ValidationBinding Path=Anfangsbestand,
UpdateSourceTrigger=PropertyChanged}"
Mask="########0.00"
MaskType="Numeric"
MaskUseAsDisplayFormat="True" />
<Button
Grid.Row="2"
Grid.Column="2"
Margin="3"
Click="KassennamenChangeSaveButtonClick"
Content="Speichern" />
<Button
Grid.Row="2"
Grid.Column="3"
Margin="3"
Click="KassennamenChangeCancelButtonClick"
Content="Abbrechen" />
</Grid>
</Border>
</controls:PopupNonTopmost>
<Button VerticalAlignment="Center" Height="20"
Click="BtnDeleteBargeldkasseClick"
Tag="{Binding}"
ToolTip="Bargeldkasse entfernen"
Style="{DynamicResource CloseButtonStyle}" Margin="3" >
<Button
Height="20"
Margin="3"
VerticalAlignment="Center"
Click="BtnDeleteBargeldkasseClick"
Style="{DynamicResource CloseButtonStyle}"
Tag="{Binding}"
ToolTip="Bargeldkasse entfernen">
<Button.Visibility>
<MultiBinding Converter="{StaticResource BoolVisibilityMultiConverter }">
<MultiBinding Converter="{StaticResource BoolVisibilityMultiConverter}">
<Binding Path="IsSelected" RelativeSource="{RelativeSource AncestorType={x:Type TabItem}}" />
<Binding Path="DarfBargeldTransaktionLoeschen" RelativeSource="{RelativeSource AncestorType={x:Type view:BargeldkassenView}}" />
<Binding Path="DarfBargeldTransaktionLoeschen" RelativeSource="{RelativeSource AncestorType={x:Type view:BargeldkassenView}}" />
</MultiBinding>
</Button.Visibility>
</Button>
@@ -232,17 +449,41 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0" Content="Neue Zahlung hinzufügen" Margin="3" Tag="{Binding}" Click="ButtonOpenAddBargeldtransaktionClick" IsEnabled="{Binding Path=DarfBargeldTransaktionAnlegen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Label Grid.Row="0" Grid.Column="1" Content="Anfangsbestand" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="3"/>
<dxe:TextEdit Grid.Row="0" Grid.Column="2" MaskType="Numeric" Mask="c" MaskUseAsDisplayFormat="True" Height="23" Margin="3" EditMode="InplaceInactive"
EditValue="{Binding Path=Anfangsbestand, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalContentAlignment="Left" FontWeight="Bold" />
<Button
Grid.Row="0"
Grid.Column="0"
Margin="3"
Click="ButtonOpenAddBargeldtransaktionClick"
Content="Neue Zahlung hinzufügen"
IsEnabled="{Binding Path=DarfBargeldTransaktionAnlegen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
Tag="{Binding}" />
<Label
Grid.Row="0"
Grid.Column="1"
Margin="3"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Content="Anfangsbestand" />
<dxe:TextEdit
Grid.Row="0"
Grid.Column="2"
Height="23"
Margin="3"
VerticalAlignment="Center"
HorizontalContentAlignment="Left"
EditMode="InplaceInactive"
EditValue="{Binding Path=Anfangsbestand, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
FontWeight="Bold"
Mask="c"
MaskType="Numeric"
MaskUseAsDisplayFormat="True" />
<!--<Label VerticalAlignment="Center">Auszahlungsintervall</Label>
<dxe:ComboBoxEdit VerticalAlignment="Center" Height="23" HorizontalAlignment="Left" Width="100" IsTextEditable="False" Margin="3,0,3,3"
@@ -252,84 +493,213 @@
EditValueChanged="AuszahlungsIntervallCBEditValueChanged"/>-->
<StackPanel Grid.Row="0" Grid.Column="7" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Left">
<Label Grid.Row="0" Grid.Column="3" Content="Startdatum" VerticalAlignment="Center"/>
<dxe:DateEdit Grid.Row="0" Grid.Column="4" x:Name="KassenBuchStartCB" MaskType="DateTimeAdvancingCaret" Height="23" Margin="3" EditValue="{Binding Path=PreselectedStartDate, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}" AllowNullInput="False" />
<StackPanel
Grid.Row="0"
Grid.Column="7"
Grid.ColumnSpan="2"
HorizontalAlignment="Left"
Orientation="Horizontal">
<Label
Grid.Row="0"
Grid.Column="3"
VerticalAlignment="Center"
Content="Startdatum" />
<dxe:DateEdit
x:Name="KassenBuchStartCB"
Grid.Row="0"
Grid.Column="4"
Height="23"
Margin="3"
AllowNullInput="False"
EditValue="{Binding Path=PreselectedStartDate, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}"
MaskType="DateTimeAdvancingCaret" />
<Label Grid.Row="0" Grid.Column="5" Content="Enddatum" VerticalAlignment="Center"/>
<dxe:DateEdit Grid.Row="0" Grid.Column="6" x:Name="KassenBuchEndCB" MaskType="DateTimeAdvancingCaret" Height="23" Margin="3" EditValue="{Binding Path=PreselectedEndDate, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}" AllowNullInput="False"/>
<Label
Grid.Row="0"
Grid.Column="5"
VerticalAlignment="Center"
Content="Enddatum" />
<dxe:DateEdit
x:Name="KassenBuchEndCB"
Grid.Row="0"
Grid.Column="6"
Height="23"
Margin="3"
AllowNullInput="False"
EditValue="{Binding Path=PreselectedEndDate, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}"
MaskType="DateTimeAdvancingCaret" />
<!--<uc:NullItemComboBox x:Name="KassenbuchMonatsCB" Margin="3" ItemsSource="{Binding Path=MonatsComboBoxSource, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
<!--<uc:NullItemComboBox x:Name="KassenbuchMonatsCB" Margin="3" ItemsSource="{Binding Path=MonatsComboBoxSource, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
SelectedItem="{Binding Path=PreselectedMonth, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}"/>
<uc:NullItemComboBox x:Name="KassenbuchJahresCB" Margin="3" ItemsSource="{Binding Path=JahresComboBoxSource, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
SelectedItem="{Binding Path=PreselectedYear, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}, Mode=OneWay}"/>-->
<TextBlock Grid.Row="0" Margin="3" FontSize="14" VerticalAlignment="Center" PreviewMouseLeftButtonDown="KlassenbuchLinkOnPreviewMouseLeftButtonDown" Tag="{Binding}" IsEnabled="{Binding Path=Bargeldtransaktionen.VMList.Count, Converter={StaticResource CollectionCountToBoolConverter}, UpdateSourceTrigger=PropertyChanged}">
<Hyperlink x:Name="LinkKassenbuchDrucken" TargetName="_NewWindow" Style="{StaticResource HyperlinkStyle}">
<Run Text="Kassenbuch drucken" />
</Hyperlink>
</TextBlock>
<TextBlock
Grid.Row="0"
Margin="3"
VerticalAlignment="Center"
FontSize="14"
IsEnabled="{Binding Path=Bargeldtransaktionen.VMList.Count, Converter={StaticResource CollectionCountToBoolConverter}, UpdateSourceTrigger=PropertyChanged}"
PreviewMouseLeftButtonDown="KlassenbuchLinkOnPreviewMouseLeftButtonDown"
Tag="{Binding}">
<Hyperlink
x:Name="LinkKassenbuchDrucken"
Style="{StaticResource HyperlinkStyle}"
TargetName="_NewWindow">
<Run Text="Kassenbuch drucken" />
</Hyperlink>
</TextBlock>
</StackPanel>
<GroupBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="10" x:Name="BlubbTest" Style="{StaticResource ObjectEditGroupBox}">
<GroupBox
x:Name="BlubbTest"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="10"
Style="{StaticResource ObjectEditGroupBox}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="16" Foreground="{StaticResource TabItemHotTextBrush}" FontFamily="Microsoft Sans Serif" Text="Ein- und Auszahlungen" Margin="3,5,3,3"/>
<Label Content="Saldo" VerticalAlignment="Center" Margin="3,3,3,3"/>
<dxe:TextEdit MaskType="Numeric" Mask="c" MaskUseAsDisplayFormat="True" Height="23" Margin="3,3,3,3" EditMode="InplaceInactive"
EditValue="{Binding Path=Kassenbestand, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" FontWeight="Bold" />
<Label Content="Stichtag" VerticalAlignment="Center" Margin="3,3,3,3"/>
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" Height="23" Width="100" Margin="3" EditValue="{Binding Path=Stichtag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AllowNullInput="True"/>
<TextBlock
Margin="3,5,3,3"
FontFamily="Microsoft Sans Serif"
FontSize="16"
Foreground="{StaticResource TabItemHotTextBrush}"
Text="Ein- und Auszahlungen" />
<Label
Margin="3,3,3,3"
VerticalAlignment="Center"
Content="Saldo" />
<dxe:TextEdit
Height="23"
Margin="3,3,3,3"
VerticalAlignment="Center"
EditMode="InplaceInactive"
EditValue="{Binding Path=Kassenbestand, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
FontWeight="Bold"
Mask="c"
MaskType="Numeric"
MaskUseAsDisplayFormat="True" />
<Label
Margin="3,3,3,3"
VerticalAlignment="Center"
Content="Stichtag" />
<dxe:DateEdit
Width="100"
Height="23"
Margin="3"
AllowNullInput="True"
EditValue="{Binding Path=Stichtag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
MaskType="DateTimeAdvancingCaret" />
</StackPanel>
</GroupBox.Header>
<dxg:GridControl Name="grid_bargeldtransaktionen" Tag="{Binding}" MaxWidth="{Binding ElementName=BlubbTest, Path=ActualWidth}" ItemsSource="{Binding Path=Bargeldtransaktionen.VMList}" CustomColumnSort="GridBargeldtransaktionenOnCustomColumnSort">
<dxg:GridControl
Name="grid_bargeldtransaktionen"
MaxWidth="{Binding ElementName=BlubbTest, Path=ActualWidth}"
CustomColumnSort="GridBargeldtransaktionenOnCustomColumnSort"
ItemsSource="{Binding Path=Bargeldtransaktionen.VMList}"
Tag="{Binding}">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="" FixedWidth="True" Width="24" ReadOnly="True" Visible="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">
<dxg:GridColumn
Width="24"
FixedWidth="True"
Header=""
ReadOnly="True"
Visible="{Binding Path=DarfBargeldtransaktionenBearbeiten, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" Tag="{Binding}" Click="ButtonBargeldtransaktionDeleteClick" FontFamily="Webdings" Width="18" Height="18" VerticalAlignment="Center" IsEnabled="{Binding Path=DarfBargeldTransaktionLoeschen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<Button
Width="18"
Height="18"
VerticalAlignment="Center"
Click="ButtonBargeldtransaktionDeleteClick"
Content="r"
FontFamily="Webdings"
IsEnabled="{Binding Path=DarfBargeldTransaktionLoeschen, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
Tag="{Binding}" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn Header="Datum" FixedWidth="True" SortOrder="Descending" FieldName="Zahlungsdatum" EditSettings="{dxe:DateSettings DisplayFormat=d}" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}" />
<dxg:GridColumn Header="Art" FixedWidth="True" FieldName="Zahlungstyp" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">
<dxg:GridColumn
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
EditSettings="{dxe:DateSettings DisplayFormat=d}"
FieldName="Zahlungsdatum"
FixedWidth="True"
Header="Datum"
SortOrder="Descending" />
<dxg:GridColumn
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
FieldName="Zahlungstyp"
FixedWidth="True"
Header="Art">
<dxg:GridColumn.EditSettings>
<dxe:ComboBoxEditSettings ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" IsTextEditable="False" />
<dxe:ComboBoxEditSettings IsTextEditable="False" ItemsSource="{Binding Path=Values, Source={x:Static core:DisplayEnum.Zahlungstyp}}" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Betrag" FixedWidth="True" FieldName="Betrag" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">
<dxg:GridColumn
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
FieldName="Betrag"
FixedWidth="True"
Header="Betrag">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="Numeric" Mask="c" MaskUseAsDisplayFormat="True" />
<dxe:TextEditSettings
Mask="c"
MaskType="Numeric"
MaskUseAsDisplayFormat="True" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="{t:Translate Belegnummer}" FixedWidth="True" FieldName="Belegnummer" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}">
<dxg:GridColumn
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
FieldName="Belegnummer"
FixedWidth="True"
Header="{t:Translate Belegnummer}">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Angelegt von" FixedWidth="True" FieldName="InsUser" AllowEditing="False">
</dxg:GridColumn>
<dxg:GridColumn Header="Notiz" FieldName="Notice" AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"/>
<dxg:GridColumn FieldName="X" Header="Drucken" ReadOnly="True">
<dxg:GridColumn
AllowEditing="False"
FieldName="InsUser"
FixedWidth="True"
Header="Angelegt von" />
<dxg:GridColumn
AllowEditing="{Binding Path=BargeldtransaktionenBearbeitenAlsDefaultBooelan, RelativeSource={RelativeSource AncestorType={x:Type view:BargeldkassenView}}}"
FieldName="Notice"
Header="Notiz" />
<dxg:GridColumn
FieldName="X"
Header="Drucken"
ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock x:Name="textblock_link_pdfexport" VerticalAlignment="Center" Margin="3,0,0,0">
<Hyperlink x:Name="LinkZahlungsbelegDrucken" Click="LinkZahlungsbelegDruckenClick" TargetName="_NewWindow" Foreground="#FF2B508B">
<Run Text="Zahlungsbeleg drucken" />
</Hyperlink>
<TextBlock
x:Name="textblock_link_pdfexport"
Margin="3,0,0,0"
VerticalAlignment="Center">
<Hyperlink
x:Name="LinkZahlungsbelegDrucken"
Click="LinkZahlungsbelegDruckenClick"
Foreground="#FF2B508B"
TargetName="_NewWindow">
<Run Text="Zahlungsbeleg drucken" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView NavigationStyle="Cell" Margin="2,2,2,2" AutoWidth="True" ShowGroupPanel="False" ShowGroupedColumns="False" ShowTotalSummary="False" />
<dxg:TableView
Margin="2,2,2,2"
AutoWidth="True"
NavigationStyle="Cell"
ShowGroupPanel="False"
ShowGroupedColumns="False"
ShowTotalSummary="False" />
</dxg:GridControl.View>
</dxg:GridControl>
</GroupBox>

View File

@@ -35,6 +35,7 @@ namespace BeWo.View
InitializeComponent();
rootGroupBox.Content = fe;
CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => Close()));
}

View File

@@ -14,7 +14,7 @@
</StackPanel>
<Popup Grid.Row="1" x:Name="TreeViewPopup" AllowsTransparency="True"
IsOpen="False" StaysOpen="False"
Closed="PopUpClosedEvent" PopupAnimation="Slide">
Closed="PopUpClosedEvent" PopupAnimation="Slide" MaxWidth="1200">
<Border BorderBrush="Black" BorderThickness="2" Background="#788991">
<Grid>
<Grid.RowDefinitions>

View File

@@ -1,5 +1,6 @@
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.View.Windows;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.DataContracts.GkvAbrechnung;

View File

@@ -6,7 +6,7 @@ using System.Windows.Interop;
namespace BeWo.View.Controls
{
public class PopupNonTopmost : Popup
public class PopupNonTopmost : System.Windows.Controls.Primitives.Popup
{
public static DependencyProperty TopmostProperty = Window.TopmostProperty.AddOwner(typeof (PopupNonTopmost), new FrameworkPropertyMetadata(false, OnTopmostChanged));

View File

@@ -1,115 +1,198 @@
<UserControl x:Class="BeWo.View.Controls.ServiceRecordPopUp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localViewModel="clr-namespace:BeWo.ViewModel">
<Grid>
<TextBlock Name="tb_nodata" Background="White" Padding="20" Text="Keine Eintragungen vorhanden"
Foreground="Black" FontSize="14" />
<ListBox ItemsSource="{Binding}" ScrollViewer.CanContentScroll="True" x:Name="serviceRecordGrid" Grid.Row="0"
Grid.Column="1" IsSynchronizedWithCurrentItem="True" TabIndex="1" AlternationCount="-1"
Background="{x:Null}" ItemTemplate="{DynamicResource serviceRecordListBoxItemTemplate}"
Style="{DynamicResource ServiceRecordListStyle}" HorizontalContentAlignment="Stretch"
ItemContainerStyle="{DynamicResource serviceRecordListBoxItemStyle}" >
<ListBox.Resources>
<ControlTemplate x:Key="ServiceRecordListBoxTemplate" TargetType="{x:Type ListBox}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}">
<ScrollViewer Focusable="False" Padding="{TemplateBinding Padding}"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
<UserControl
x:Class="BeWo.View.Controls.ServiceRecordPopUp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel">
<Grid>
<TextBlock
Name="tb_nodata"
Padding="20"
Background="White"
FontSize="14"
Foreground="Black"
Text="Keine Eintragungen vorhanden" />
<ListBox
x:Name="serviceRecordGrid"
Grid.Row="0"
Grid.Column="1"
HorizontalContentAlignment="Stretch"
AlternationCount="-1"
Background="{x:Null}"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{DynamicResource serviceRecordListBoxItemStyle}"
ItemTemplate="{DynamicResource serviceRecordListBoxItemTemplate}"
ItemsSource="{Binding}"
ScrollViewer.CanContentScroll="True"
Style="{DynamicResource ServiceRecordListStyle}"
TabIndex="1">
<ListBox.Resources>
<ControlTemplate x:Key="ServiceRecordListBoxTemplate" TargetType="{x:Type ListBox}">
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ScrollViewer
Padding="{TemplateBinding Padding}"
Focusable="False"
HorizontalScrollBarVisibility="Disabled">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
<Style x:Key="ServiceRecordListStyle" TargetType="{x:Type ListBox}">
<Setter Property="Template" Value="{StaticResource ServiceRecordListBoxTemplate}" />
<Setter Property="Padding" Value="2,0,2,2" />
</Style>
<Style x:Key="serviceRecordListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="#00FFFFFF" />
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="2,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border
x:Name="Bd"
Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="serviceRecordListBoxItemTemplate" DataType="{x:Type localViewModel:ServiceRecordVM}">
<Grid
x:Name="template"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Border
x:Name="ItemBorder"
Width="Auto"
Height="Auto"
Margin="0,0,0,3"
Padding="6"
Background="{Binding Path=BackgroundBrush}"
BorderBrush="#FF7E7E7E"
BorderThickness="1,1,1,1"
CornerRadius="4,4,4,4">
<Grid TextBlock.Foreground="{Binding Path=TextBlock.Foreground, RelativeSource={RelativeSource TemplatedParent}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="12" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="12" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="17" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="24" />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="1"
Grid.Column="0"
Text="Minuten (gerundet):" />
<TextBlock
Grid.Row="2"
Grid.Column="0"
Text="Leistungskategorie:" />
<TextBlock
Grid.Row="3"
Grid.Column="0"
Text="Leistung:" />
<TextBlock
Grid.Row="4"
Grid.Column="0"
Text="Angelegt von:" />
<TextBlock
Grid.Row="5"
Grid.Column="0"
Text="Angelegt am:" />
<TextBlock
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="5"
FontSize="13"
FontWeight="Bold"
Foreground="#FF494949"
Text="{Binding Path=LongDateString}" />
<TextBlock
Grid.Row="1"
Grid.Column="2"
Background="{x:Null}"
FontWeight="Bold"
Foreground="#FF4E7BC4"
Text="{Binding Path=DurationAndRoundedDuration}" />
<TextBlock
Grid.Row="2"
Grid.Column="2"
Text="{Binding Path=Category}" />
<TextBlock
Grid.Row="3"
Grid.Column="2"
Text="{Binding Path=ServiceDescription}" />
<TextBlock
Grid.Row="4"
Grid.Column="2"
Text="{Binding Path=EmployeeName}" />
<TextBlock
Grid.Row="5"
Grid.Column="2"
Text="{Binding Path=InsertedOn}" />
<TextBox
Grid.Row="1"
Grid.RowSpan="6"
Grid.Column="4"
MaxHeight="200"
Margin="0,0,0,0"
HorizontalAlignment="Stretch"
AutoWordSelection="True"
Background="{x:Null}"
BorderBrush="{x:Null}"
BorderThickness="0"
Focusable="True"
HorizontalScrollBarVisibility="Hidden"
IsEnabled="True"
IsReadOnly="True"
SnapsToDevicePixels="True"
Tag="{Binding}"
Text="{Binding Path=Notice}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto" />
</Grid>
</Border>
</ControlTemplate>
<Style x:Key="ServiceRecordListStyle" TargetType="{x:Type ListBox}">
<Setter Property="Template" Value="{StaticResource ServiceRecordListBoxTemplate}" />
<Setter Property="Padding" Value="2,0,2,2" />
</Style>
<Style x:Key="serviceRecordListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Background" Value="#00FFFFFF" />
<Setter Property="HorizontalContentAlignment"
Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="VerticalContentAlignment"
Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ItemsControl}}}" />
<Setter Property="Padding" Value="2,0,0,0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Bd" SnapsToDevicePixels="True" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<DataTemplate x:Key="serviceRecordListBoxItemTemplate" DataType="{x:Type localViewModel:ServiceRecordVM}">
<Grid x:Name="template" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Border x:Name="ItemBorder" CornerRadius="4,4,4,4" Width="Auto" Height="Auto" Padding="6"
Margin="0,0,0,3" Background="{Binding Path=BackgroundBrush}" BorderThickness="1,1,1,1"
BorderBrush="#FF7E7E7E">
<Grid TextBlock.Foreground="{Binding Path=TextBlock.Foreground, RelativeSource={RelativeSource TemplatedParent}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="12" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="12" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="17" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="14" />
<RowDefinition Height="24" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="1" Text="Minuten (gerundet):" />
<TextBlock Grid.Column="0" Grid.Row="2" Text="Leistungskategorie:" />
<TextBlock Grid.Column="0" Grid.Row="3" Text="Leistung:" />
<TextBlock Grid.Column="0" Grid.Row="4" Text="Angelegt von:" />
<TextBlock Grid.Column="0" Grid.Row="5" Text="Angelegt am:" />
<TextBlock Grid.Column="0" Grid.Row="0" Text="{Binding Path=LongDateString}"
Grid.ColumnSpan="5" FontWeight="Bold" FontSize="13" Foreground="#FF494949" />
<TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding Path=DurationAndRoundedDuration}"
FontWeight="Bold" Background="{x:Null}" Foreground="#FF4E7BC4" />
<TextBlock Grid.Column="2" Grid.Row="2" Text="{Binding Path=Category}" />
<TextBlock Grid.Column="2" Grid.Row="3" Text="{Binding Path=ServiceDescription}" />
<TextBlock Grid.Column="2" Grid.Row="4" Text="{Binding Path=EmployeeName}" />
<TextBlock Grid.Column="2" Grid.Row="5" Text="{Binding Path=InsertedOn}" />
<TextBox Grid.Column="4" Grid.Row="1" Grid.RowSpan="6" HorizontalAlignment="Stretch"
Text="{Binding Path=Notice}" HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Auto" Margin="0,0,0,0" BorderThickness="0"
BorderBrush="{x:Null}" Background="{x:Null}" SnapsToDevicePixels="True"
MaxHeight="200" TextWrapping="Wrap" AutoWordSelection="True" IsReadOnly="True"
Tag="{Binding}" IsEnabled="True" Focusable="True" />
</Grid>
</Border>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="ItemBorder"
Value="{Binding Path=MouseOverBackgroundBrush}" />
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.Resources>
</ListBox>
</Grid>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="Background" Value="{Binding Path=MouseOverBackgroundBrush}" />
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.Resources>
</ListBox>
</Grid>
</UserControl>

View File

@@ -1,26 +1,39 @@
<UserControl x:Class="BeWo.View.Controls.TextViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BeWo.View.Controls"
mc:Ignorable="d">
<UserControl
x:Class="BeWo.View.Controls.TextViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BeWo.View.Controls"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="3" Background="#eeeeee">
<TextBox x:Name="txt" IsReadOnly="True" Text="test" Foreground="Black" Background="#f1f1f1" BorderThickness="1">
</TextBox>
<ScrollViewer
Margin="3"
Background="#eeeeee"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<TextBox
x:Name="txt"
Background="#f1f1f1"
BorderThickness="1"
Foreground="Black"
IsReadOnly="True"
Text="test" />
</ScrollViewer>
</Grid>
<Button Grid.Row="1" Content="Inhalt in Zwischenablage kopieren" Click="Button_Click" Margin="3"/>
<Button
Grid.Row="1"
Margin="3"
Click="Button_Click"
Content="Inhalt in Zwischenablage kopieren" />
</Grid>
</UserControl>

View File

@@ -0,0 +1,90 @@
<UserControl
x:Class="BeWo.View.Detail.AI.AiConfigView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:listviewmodel="clr-namespace:BeWo.ViewModel.ListViewModel"
xmlns:local="clr-namespace:BeWo.View.Detail.AI"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
d:DataContext="{d:DesignInstance Type=listviewmodel:AiConversationListVM}"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="{x:Type Slider}">
<Setter Property="Margin" Value="3" />
<Setter Property="Height" Value="30" />
<Setter Property="Minimum" Value="0" />
<Setter Property="Maximum" Value="1" />
<Setter Property="SmallChange" Value="0.01" />
<Setter Property="IsMoveToPointEnabled" Value="True" />
</Style>
</ResourceDictionary>
</UserControl.Resources>
<GroupBox Style="{StaticResource ObjectEditGroupBox}">
<GroupBox.Header>
KI Module Einstellungen
</GroupBox.Header>
<Grid Margin="16" HorizontalAlignment="Stretch">
<!--<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="ai1" />
<ColumnDefinition Width="100*" MaxWidth="600" />
<ColumnDefinition Width="*" SharedSizeGroup="ai1" />
</Grid.ColumnDefinitions>-->
<Grid Grid.Column="1" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="100" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label>
Ausgewähltes Modell
</Label>
<ComboBox
Grid.Column="1"
ItemsSource="{Binding Models}"
SelectedItem="{Binding Config.SelectedModel}" />
<Label Grid.Row="1" VerticalAlignment="Center">
Temperatur
</Label>
<Slider
Grid.Row="1"
Grid.Column="1"
IsEnabled="False"
Value="{Binding Config.Temperature}" />
<Label Grid.Row="2" VerticalAlignment="Center">
top__p
</Label>
<Slider
Grid.Row="2"
Grid.Column="1"
IsEnabled="False"
Value="{Binding Config.Top_P}" />
<Label Grid.Row="3">
max__gen__len
</Label>
<dxe:TextEdit
Grid.Row="3"
Grid.Column="1"
EditValue="{Binding Config.Max_Gen_Len}"
IsEnabled="False"
Style="{StaticResource TextEditNumber}" />
</Grid>
</Grid>
</GroupBox>
</UserControl>

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BeWo.View.Detail.AI
{
/// <summary>
/// Interaktionslogik für AiConfigView.xaml
/// </summary>
public partial class AiConfigView : UserControl
{
public AiConfigView()
{
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,54 @@
<localView:BeWoView
x:Class="BeWo.View.Detail.AI.AiConversationChatModalPopup"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ai="clr-namespace:BeWo.View.Detail.AI"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion"
xmlns:dxwui="http://schemas.devexpress.com/winfx/2008/xaml/windowsui"
xmlns:listviewmodel="clr-namespace:BeWo.ViewModel.ListViewModel"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
Width="1200"
Height="800"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True"
mc:Ignorable="d">
<localView:BeWoView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</localView:BeWoView.Resources>
<localView:BeWoView.DataContext>
<listviewmodel:AiConversationListVM />
</localView:BeWoView.DataContext>
<Grid>
<GroupBox Style="{StaticResource PopUpWindowStyle}">
<GroupBox.Header>
<StackPanel
Margin="0"
VerticalAlignment="Center"
Orientation="Horizontal">
<TextBlock
Margin="4,4,0,0"
Padding="0,0,0,0"
VerticalAlignment="Stretch"
Background="{x:Null}"
FontSize="20"
Foreground="#FFFFFFFF"
Text="Zeiterfassung KI Chat" />
</StackPanel>
</GroupBox.Header>
<ai:AiConversationChatView DataContext="{Binding}" />
</GroupBox>
</Grid>
</localView:BeWoView>

View File

@@ -0,0 +1,39 @@
using BeWo.ServiceProxy;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Extensions;
using DevExpress.Mvvm;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BeWo.View.Detail.AI
{
/// <summary>
/// Interaktionslogik für AiConversationChatView.xaml
/// </summary>
public partial class AiConversationChatModalPopup : BeWoView
{
public AiConversationChatModalPopup()
{
InitializeComponent();
}
public AiConversationListVM ViewModel
{
get => DataContext as AiConversationListVM;
}
}
}

View File

@@ -0,0 +1,404 @@
<localView:BeWoView
x:Class="BeWo.View.Detail.AI.AiConversationChatView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ai="clr-namespace:BeWo.View.Detail.AI"
xmlns:conv="clr-namespace:BeWo.Converter.Features"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion"
xmlns:dxwui="http://schemas.devexpress.com/winfx/2008/xaml/windowsui"
xmlns:listviewmodel="clr-namespace:BeWo.ViewModel.ListViewModel"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:shared="clr-namespace:BS.Shared;assembly=BS.Shared"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:viewmodel="clr-namespace:BeWo.ViewModel"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
d:DesignHeight="900"
d:DesignWidth="900"
Focusable="True"
Loaded="BeWoView_Loaded"
mc:Ignorable="d">
<localView:BeWoView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\..\..\Styles\ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
<conv:AiConversationMessageSystemConverter x:Key="AiConversationMessageSystemConverter" />
</ResourceDictionary>
</localView:BeWoView.Resources>
<localView:BeWoView.DataContext>
<listviewmodel:AiConversationListVM />
</localView:BeWoView.DataContext>
<Grid>
<GroupBox x:Name="rootgroupbox" Style="{StaticResource ModuleAiControlDefaultStyle}">
<GroupBox.Header>
<StackPanel
Grid.Row="0"
Margin="0"
Orientation="Horizontal">
<!--<Label
Margin="0,0,0,0"
Padding="2"
Content="Suche"
FontSize="14"
Foreground="#FFFFFFFF" />
<TextBox
x:Name="textbox_search"
Width="300"
Height="20"
MinWidth="90"
Margin="4,0,0,0"
BorderThickness="0,0,0,0"
IsEnabled="False"
TabIndex="0"
Template="{DynamicResource SearchTextBoxTemplate}" />
<Button
x:Name="ReloadButton"
Width="36"
Height="24"
Margin="8,0,0,0"
Command="{Binding ReloadConversationsCommand, RelativeSource={RelativeSource AncestorType={x:Type localView:BeWoView}, Mode=FindAncestor}}"
ToolTip="Liste aktualisieren">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image x:Name="imgDisabled" Source="..\..\Ressources\Icons\SymbolRefresh32Disabled.png" />
<Image
x:Name="imgEnabled"
Opacity="0"
Source="..\..\Ressources\Icons\SymbolRefresh32.png" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="imgEnabled" Property="Opacity" Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>-->
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" MinWidth="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!--<dxwui:HamburgerMenu
Background="Transparent"
ItemTemplate="{StaticResource ConversationHamburgerMenuItemTemplate}"
ItemsSource="{Binding VMList}">
<dxwui:HamburgerMenu.Content>
<dxwui:HamburgerMenuNavigationButton />
</dxwui:HamburgerMenu.Content>
</dxwui:HamburgerMenu>-->
<Grid Background="#33000000">
<ListView
x:Name="listbox_conversations"
Padding="4"
Background="Transparent"
BorderThickness="0"
ItemTemplate="{StaticResource ConversationTemplate}"
ItemsSource="{Binding VMList}"
ScrollViewer.CanContentScroll="False"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
SelectedItem="{Binding SelectedVM, Mode=TwoWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="Padding" Value="2" />
<Setter Property="BorderThickness" Value="0" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
<Grid Grid.Column="1" PreviewKeyDown="Grid_PreviewKeyDown">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="1000000*" MaxWidth="1200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<ListView
x:Name="listbox_messages"
Grid.Column="1"
Padding="3"
Background="Transparent"
BorderThickness="0"
ItemTemplateSelector="{StaticResource AiConversationMessageTemplateSelector}"
ItemsSource="{Binding SelectedVM.Messages.VMList, Converter={StaticResource AiConversationMessageSystemConverter}, 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>
<Grid
Grid.Row="1"
Grid.Column="1"
Margin="4">
<Grid.Visibility>
<MultiBinding Converter="{StaticResource BooleanAndVisibilityMultiConverter}">
<Binding Converter="{StaticResource ObjectBoolConverter}" Path="SelectedVM" />
<Binding Converter="{StaticResource UserPermission2BoolConverter}" ConverterParameter="{x:Static shared:UserRightType.AiModuleChatAdd}" />
</MultiBinding>
</Grid.Visibility>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<!--<TextBox
x:Name="txt_input_context"
Height="100"
MaxHeight="200"
Margin="5"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AcceptsReturn="True"
Visibility="Collapsed"
Text="{Binding Context_Input}" />-->
<TextBox
x:Name="txt_input_message"
Grid.Column="1"
Height="auto"
MaxHeight="200"
Margin="0,0,4,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AcceptsReturn="True"
IsReadOnly="{Binding IsSending}"
Text="{Binding MessageInput, UpdateSourceTrigger=PropertyChanged}" />
<Button
Grid.Column="2"
Height="auto"
MinHeight="25"
MaxHeight="100"
Margin="0"
VerticalAlignment="Stretch"
Command="{Binding SendNewMessageCommand}"
Content="Senden"
Visibility="Visible" />
</Grid>
</Grid>
</Grid>
<Border
Grid.Row="2"
Height="35"
Margin="0,0,0,0"
VerticalAlignment="Stretch">
<Grid>
<Grid.Resources>
<Style BasedOn="{StaticResource PopupToolbarButtonStyle}" TargetType="Button" />
</Grid.Resources>
<Rectangle Fill="#FF000000">
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#99FFFFFF" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
</Rectangle>
<StackPanel
Height="Auto"
Margin="5,5,5,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnNew"
Margin="0,0,0,0"
Command="{Binding RequestNewConversationCommand}"
Content="Neuer Chat" />
<Button
x:Name="btnSettings"
Margin="4,0,0,0"
Command="{Binding OpenSettingCommand}"
Content="Einstellungen" />
<Button
x:Name="btnTest"
Margin="4,0,0,0"
Command="{Binding TestCommand}"
Content="Test Szenario"
Visibility="Collapsed" />
<Button
x:Name="btnClone"
Margin="4,0,0,0"
Command="{Binding OpenCloneCommand}"
Content="Klonen" />
<Button
x:Name="btnDelete"
Margin="4,0,0,0"
Command="{Binding AskDeleteCommand}"
Content="Löschen" />
</StackPanel>
<StackPanel
Height="Auto"
Margin="5,5,5,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnClose"
Height="25"
Margin="0,0,0,0"
Command="ApplicationCommands.Close"
Content="Schließen"
FontWeight="Medium"
Style="{StaticResource NavigationToolbarButtonStyle}"
Visibility="Collapsed" />
</StackPanel>
</Grid>
</Border>
<Popup
x:Name="popup_newview"
Width="200"
Height="200"
StaysOpen="True">
<Grid Margin="5" Background="Orange">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label>Kontext</Label>
<ComboBox Grid.Column="1" />
</Grid>
</Popup>
<Popup
x:Name="popup_settings"
Width="auto"
Height="auto"
IsOpen="{Binding IsSettingsOpen}"
Placement="Center"
StaysOpen="False">
<Border
Padding="5"
Background="{DynamicResource NavigationContentBrush}"
BorderThickness="1"
CornerRadius="5">
<ai:AiConfigView />
</Border>
<!--<Grid Margin="5" Background="Orange">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Label>Modell:</Label>
<ComboBox
Grid.Column="1"
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 SelectedVM.Messages.VMList, Converter={StaticResource AiConversationMessageSystemConverter}, 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>
</Grid>
</GroupBox>
</Grid>
</localView:BeWoView>

View File

@@ -0,0 +1,101 @@
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Extensions;
using DevExpress.Mvvm;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BeWo.View.Detail.AI
{
/// <summary>
/// Interaktionslogik für AiConversationChatView.xaml
/// </summary>
public partial class AiConversationChatView : BeWoView
{
public AiConversationChatView()
{
InitializeComponent();
((INotifyCollectionChanged)listbox_messages.Items).CollectionChanged += listbox_conversations_SelectionChanged;
popup_settings.Closed += (s, e) => ViewModel.UpdateConfig();
ViewModel.SendNewMessageSuccess += (s, e) =>
{
if (txt_input_message.Visibility == Visibility.Visible)
txt_input_message.Focus();
};
}
public AiConversationChatView(string stylestring) : this()
{
rootgroupbox.Style = (Style)FindResource(stylestring);
}
public AiConversationListVM ViewModel
{
get => DataContext as AiConversationListVM;
set => DataContext = value;
}
private void BeWoView_Loaded(object sender, RoutedEventArgs e)
{
if (BeWoApp.IsInDesignMode)
return;
ViewModel.ReloadConfigCommand.Execute(null);
ViewModel.ReloadConversationsCommand.Execute(null);
}
private void listbox_conversations_SelectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
BeWoWpfUtils.ScrollToBottom(listbox_messages);
}
private void popup_conversation_clone_Loaded(object sender, RoutedEventArgs e)
{
BeWoWpfUtils.ScrollToBottom(listbox_messages_clone);
}
private void Grid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
{
// Shift + Enter gedrückt
Console.WriteLine("Shift + Enter erkannt");
}
else
{
// Nur Enter gedrückt
// Console.WriteLine("Enter erkannt");
object p = null;
if(ViewModel.SendNewMessageCommand.CanExecute(p))
ViewModel.SendNewMessageCommand.Execute(p);
e.Handled = true;
}
// Optional: Event als behandelt markieren, wenn du die Standardaktion unterdrücken willst
// e.Handled = true;
}
}
}
}

View File

@@ -1,23 +1,44 @@
<localView:BeWoView x:Class="BeWo.View.Detail.AbsenceReasonView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View"
xmlns:val="clr-namespace:BeWo.Validation" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:xtraEditors="clr-namespace:DevExpress.XtraEditors;assembly=DevExpress.XtraEditors.v23.2"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
<GroupBox Name="root" Header="Aktuell definierte Abwesenheitskategorien" Style="{StaticResource ObjectEditGroupBox}">
<localView:BeWoView
x:Class="BeWo.View.Detail.AbsenceReasonView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:xtraEditors="clr-namespace:DevExpress.XtraEditors;assembly=DevExpress.XtraEditors.v23.2"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True">
<GroupBox
Name="root"
Header="Aktuell definierte Abwesenheitskategorien"
Style="{StaticResource ObjectEditGroupBox}">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.Resources>
<DataTemplate x:Key="DropDownItemTemplate">
<Border Height="20" MinWidth="20" Background="{Binding}" BorderThickness="1" CornerRadius="2" HorizontalAlignment="Stretch" BorderBrush="Black" />
<Border
Height="20"
MinWidth="20"
HorizontalAlignment="Stretch"
Background="{Binding}"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="2" />
</DataTemplate>
<DataTemplate x:Key="SelectedItemTemplate">
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding}" BorderBrush="Black" BorderThickness="1" />
<Border
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{Binding}"
BorderBrush="Black"
BorderThickness="1" />
</DataTemplate>
</Grid.Resources>
<Grid.ColumnDefinitions>
@@ -34,28 +55,72 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0">Bezeichnung</Label>
<TextBox Grid.Column="1" Grid.Row="0" Margin="3" Height="23"
Text="{val:ValidationBinding Path=NewVM.Description, UpdateSourceTrigger=PropertyChanged}" Width="125" />
<Label Grid.Column="2" Grid.Row="0">max. abrechenbare Stunden (pro Woche)</Label>
<dxe:SpinEdit Name="spinedit_hours" AllowNullInput="True" IsFloatValue="False" MinValue="0" Grid.Column="3" Grid.Row="0"
Height="23" Width="50" EditValue="{Binding Path=NewVM.Hours, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}" />
<Label Grid.Column="4" Grid.Row="0">Minuten</Label>
<dxe:SpinEdit Name="spinedit_minutes" AllowNullInput="True" IsFloatValue="False" Grid.Column="5" Grid.Row="0"
Height="23" Width="50" MinValue="0"
MaxValue="59"
EditValue="{Binding Path=NewVM.Minutes, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}" />
<Button Name="button_addReason" Click="button_addReason_Click" Grid.Column="4" Grid.Row="1" Height="25"
Margin="3" IsDefault="True" Grid.ColumnSpan="2" HorizontalAlignment="Right">Hinzufügen</Button>
<Label Grid.Column="0" Grid.Row="1">
<Label Grid.Row="0" Grid.Column="0">Bezeichnung</Label>
<TextBox
Grid.Row="0"
Grid.Column="1"
Width="125"
Height="23"
Margin="3"
Text="{val:ValidationBinding Path=NewVM.Description,
UpdateSourceTrigger=PropertyChanged}" />
<Label Grid.Row="0" Grid.Column="2">max. abrechenbare Stunden (pro Woche)</Label>
<dxe:SpinEdit
Name="spinedit_hours"
Grid.Row="0"
Grid.Column="3"
Width="50"
Height="23"
AllowNullInput="True"
EditValue="{Binding Path=NewVM.Hours, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}"
IsFloatValue="False"
MinValue="0" />
<Label Grid.Row="0" Grid.Column="4">Minuten</Label>
<dxe:SpinEdit
Name="spinedit_minutes"
Grid.Row="0"
Grid.Column="5"
Width="50"
Height="23"
AllowNullInput="True"
EditValue="{Binding Path=NewVM.Minutes, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}"
IsFloatValue="False"
MaxValue="59"
MinValue="0" />
<Button
Name="button_addReason"
Grid.Row="1"
Grid.Column="4"
Grid.ColumnSpan="2"
Height="25"
Margin="3"
HorizontalAlignment="Right"
Click="button_addReason_Click"
IsDefault="True">
Hinzufügen
</Button>
<Label Grid.Row="1" Grid.Column="0">
Farbe im Belegungsplan
</Label>
<ComboBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" SelectedItem="{val:ValidationBinding Path=NewVM.Brush}" Name="combobox_brush" Grid.Column="1" Grid.Row="1" Height="23" Margin="3" ItemsSource="{Binding Path=AllBrushes, Mode=OneWay}" Width="125">
<ComboBox
Name="combobox_brush"
Grid.Row="1"
Grid.Column="1"
Width="125"
Height="23"
Margin="3"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
ItemsSource="{Binding Path=AllBrushes, Mode=OneWay}"
SelectedItem="{val:ValidationBinding Path=NewVM.Brush}">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="12" Rows="12" IsItemsHost="True" />
<UniformGrid
Columns="12"
IsItemsHost="True"
Rows="12" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
<ComboBox.ItemContainerStyle>
@@ -65,57 +130,124 @@
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
<StackPanel Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2" Orientation="Horizontal">
<StackPanel
Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="2"
Orientation="Horizontal">
<Label>Nur auswählbar für</Label>
<ComboBox x:Name="combo_visibilitytype"
Grid.Column="3" Grid.Row="1" VerticalAlignment="Center" Margin="3,1,3,3"
HorizontalAlignment="Stretch"
ItemsSource="{x:Static core:EnumTranslations.AbsenceReasonVisibility2Translations}"
SelectedValue="{Binding NewVM.Sichtbarkeit, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="Key"
DisplayMemberPath="Value"
Height="23" Width="200"/>
<ComboBox
x:Name="combo_visibilitytype"
Grid.Row="1"
Grid.Column="3"
Width="200"
Height="23"
Margin="3,1,3,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
DisplayMemberPath="Value"
ItemsSource="{x:Static core:EnumTranslations.AbsenceReasonVisibility2Translations}"
SelectedValue="{Binding NewVM.Sichtbarkeit, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValuePath="Key" />
</StackPanel>
<dxg:GridControl x:Name="datagrid_absencereasons" Margin="0,10,0,0" Grid.Column="0" Grid.Row="2"
Grid.ColumnSpan="7" DataSource="{Binding VMList}">
<dxg:GridControl
x:Name="datagrid_absencereasons"
Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="7"
Margin="0,10,0,0"
DataSource="{Binding VMList}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="IsDeleteable" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn
Width="24"
FieldName="IsDeleteable"
FixedWidth="True"
Header=""
ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r"
Visibility="{Binding Path=EditValue, Converter={StaticResource BoolVisibilityConverter}}"
FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18"
VerticalAlignment="Center" />
<Button
Width="18"
Height="18"
VerticalAlignment="Center"
Click="DeleteButton_Click"
Content="r"
FontFamily="Webdings"
Visibility="{Binding Path=EditValue, Converter={StaticResource BoolVisibilityConverter}}" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Description" Header="Bezeichnung" Width="180" />
<dxg:GridColumn FieldName="Hours" Header="max. abrechenbare Stunden" Width="180" />
<dxg:GridColumn FieldName="Minutes" Header="Minuten" Width="180" />
<dxg:GridColumn x:Name="column_visibility" FieldName="Sichtbarkeit" Header="Nur auswählbar für" Width="150" />
<dxg:GridColumn x:Name="column_Color" FieldName="Brush" Header="Farbe" Width="70">
<dxg:GridColumn.DisplayTemplate>
<ControlTemplate>
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding Value, diagnostics:PresentationTraceSources.TraceLevel=High }" BorderBrush="Black" BorderThickness="1" />
</ControlTemplate>
</dxg:GridColumn.DisplayTemplate>
<dxg:GridColumn.EditTemplate>
<ControlTemplate>
<Button x:Name="PART_Editor" BorderThickness="0" Style="{x:Null}" Background="{Binding EditValue}" Foreground="{Binding EditValue}" Height="21" HorizontalAlignment="Stretch" Click="button_select_color_Click"></Button>
</ControlTemplate>
</dxg:GridColumn.EditTemplate>
</dxg:GridColumn>
<dxg:GridColumn
Width="180"
FieldName="Description"
Header="Bezeichnung" />
<dxg:GridColumn
Width="180"
FieldName="Hours"
Header="max. abrechenbare Stunden" />
<dxg:GridColumn
Width="180"
FieldName="Minutes"
Header="Minuten" />
<dxg:GridColumn
x:Name="column_visibility"
Width="150"
FieldName="Sichtbarkeit"
Header="Nur auswählbar für" />
<dxg:GridColumn
x:Name="column_Color"
Width="70"
FieldName="Brush"
Header="Farbe">
<dxg:GridColumn.DisplayTemplate>
<ControlTemplate>
<Border
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{Binding Value, diagnostics:PresentationTraceSources.TraceLevel=High}"
BorderBrush="Black"
BorderThickness="1" />
</ControlTemplate>
</dxg:GridColumn.DisplayTemplate>
<dxg:GridColumn.EditTemplate>
<ControlTemplate>
<Button
x:Name="PART_Editor"
Height="21"
HorizontalAlignment="Stretch"
Background="{Binding EditValue}"
BorderThickness="0"
Click="button_select_color_Click"
Foreground="{Binding EditValue}"
Style="{x:Null}" />
</ControlTemplate>
</dxg:GridColumn.EditTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False"
NavigationStyle="Cell" />
<dxg:TableView
AutoWidth="true"
NavigationStyle="Cell"
ShowGroupPanel="False"
ShowGroupedColumns="false"
ShowTotalSummary="False" />
</dxg:GridControl.View>
</dxg:GridControl>
<Popup x:Name="popup_color" StaysOpen="false" Placement="MousePoint">
<ListBox x:Name="listbox_colorpicker" BorderThickness="0" Loaded="colorEditor_Loaded" SelectionChanged="listbox_colorpicker_SelectionChanged">
<Popup
x:Name="popup_color"
Placement="MousePoint"
StaysOpen="false">
<ListBox
x:Name="listbox_colorpicker"
BorderThickness="0"
Loaded="colorEditor_Loaded"
SelectionChanged="listbox_colorpicker_SelectionChanged">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="12" Rows="12" IsItemsHost="True" />
<UniformGrid
Columns="12"
IsItemsHost="True"
Rows="12" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>

View File

@@ -8,7 +8,7 @@ using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DependencyObject = System.Windows.DependencyObject;
namespace BeWo.View.Detail
@@ -47,6 +47,8 @@ namespace BeWo.View.Detail
RemoveAbsenceTimeCommand = new ButtonClickCommand(RemoveAbsenceTime);
}
public bool CheckEnddate { get; set; }
private void AddAbsenceTimes()
{
bool doSave = true;
@@ -57,13 +59,23 @@ namespace BeWo.View.Detail
{
doSave = false;
if (MessageBox.Show(
"Die Abwesenheit überschneidet sich mit mindestens einer bereits vorhandenen Abwesenheit.\nMöchten Sie trotzdem speichern?",
"Die Abwesenheit überschneidet sich mit mindestens einer bereits vorhandenen Abwesenheit.\nMöchten Sie trotzdem fortfahren?",
"BeWo Planer", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{
doSave = true;
}
}
if (CheckEnddate && !WurdeEnddatumEingetragen())
{
doSave = false;
if (MessageBox.Show(Translator.Translate(
"Die Abwesenheit hat kein Enddatum.\nBeachten Sie, dass Abwesenheiten ohne Enddatum unbegrenzt weiterlaufen und es dadurch " +
"zu Fehlberechnungen im Stunden- und Urlaubskonto kommen kann.\nMöchten Sie trotzdem fortfahren?"),
"BeWo Planer", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
doSave = true;
}
}
if (doSave)
{
AbsenceTimes?.NewVM.ValidateDates(() =>
@@ -76,32 +88,39 @@ namespace BeWo.View.Detail
private List<AbsenceTimeVM> PruefeAufUeberschneidungen()
{
var neu = AbsenceTimes.NewVM;
DateTime neuStart = neu.Start ?? DateTime.MinValue;
DateTime neuEnd = neu.End ?? DateTime.MaxValue;
List<AbsenceTimeVM> abwesenheitenMitUeberschneidungen = new List<AbsenceTimeVM>();
foreach (var alt in AbsenceTimes.VMList)
if (AbsenceTimes != null)
{
var neu = AbsenceTimes.NewVM;
DateTime altStart = alt.Start ?? DateTime.MinValue;
DateTime altEnd = alt.End ?? DateTime.MaxValue;
DateTime neuStart = neu.Start ?? DateTime.MinValue;
DateTime neuEnd = neu.End ?? DateTime.MaxValue;
if (neuEnd >= altStart && neuStart <= altEnd)
foreach (var alt in AbsenceTimes.VMList)
{
abwesenheitenMitUeberschneidungen.Add(alt);
DateTime altStart = alt.Start ?? DateTime.MinValue;
DateTime altEnd = alt.End ?? DateTime.MaxValue;
if (neuEnd >= altStart && neuStart <= altEnd)
{
abwesenheitenMitUeberschneidungen.Add(alt);
}
}
}
return abwesenheitenMitUeberschneidungen;
}
private bool WurdeEnddatumEingetragen()
{
var neu = AbsenceTimes.NewVM;
return neu.End.HasValue;
}
private void RemoveAbsenceTime()
{
AbsenceTimes?.VMList.Remove(DataGridAbsenceTimes.GetCurrentValue<AbsenceTimeVM>());

View File

@@ -1,22 +1,47 @@
<localView:BeWoView x:Class="BeWo.View.Detail.Accounting.EquityInvoiceItemEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:proxy="clr-namespace:BeWo.ServiceProxy"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:r="clr-namespace:BeWo.Security" VerticalAlignment="Stretch" Focusable="True" xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic">
<localView:BeWoView
x:Class="BeWo.View.Detail.Accounting.EquityInvoiceItemEditView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewDetail="clr-namespace:BeWo.View.Detail.Accounting"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:proxy="clr-namespace:BeWo.ServiceProxy"
xmlns:r="clr-namespace:BeWo.Security"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:val="clr-namespace:BeWo.Validation"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True">
<GroupBox MinHeight="200" Width="800" Style="{StaticResource PopUpWindowStyle}">
<GroupBox
Width="800"
MinHeight="200"
Style="{StaticResource PopUpWindowStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,0,0">
<Image Source="..\..\Ressources\Icons\CoinsDisabled.png" Height="28" />
<TextBox Text="Rechnung bearbeiten" Margin="10,4,0,0" Background="{x:Null}" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" FontSize="20" BorderBrush="{x:Null}" VerticalAlignment="Stretch" BorderThickness="0,0,0,0" Padding="0,0,0,0" />
<StackPanel
Margin="0,0,0,0"
VerticalAlignment="Center"
Orientation="Horizontal">
<Image Height="28" Source="..\..\Ressources\Icons\CoinsDisabled.png" />
<TextBox
Margin="10,4,0,0"
Padding="0,0,0,0"
VerticalAlignment="Stretch"
Background="{x:Null}"
BorderBrush="{x:Null}"
BorderThickness="0,0,0,0"
FontSize="20"
Foreground="{DynamicResource MainGroupBoxForegroundBrush}"
Text="Rechnung bearbeiten" />
</StackPanel>
</GroupBox.Header>
@@ -28,10 +53,13 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="{DynamicResource AccountingContentBrush}" VerticalAlignment="Top" Height="6" />
<Rectangle
Height="6"
VerticalAlignment="Top"
Fill="{DynamicResource AccountingContentBrush}" />
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<Grid Grid.IsSharedSizeScope="True" Margin="10,10,0,10">
<Grid Margin="10,10,0,10" Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -44,7 +72,11 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Margin="3 6 3 6" Style="{StaticResource ObjectEditGroupBox}" Grid.ColumnSpan="2" Header="Rechnungsdetails">
<GroupBox
Grid.ColumnSpan="2"
Margin="3,6,3,6"
Header="Rechnungsdetails"
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
@@ -68,34 +100,111 @@
</Grid.RowDefinitions>
<Label Content="Rechnungsnummer" />
<TextBox Margin="3" Height="23" Grid.Column="1" Text="{Binding Path=InvoiceNumber}" />
<TextBox
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding Path=InvoiceNumber}" />
<Label Content="{markup:Translate Ersteller Vorname}" Grid.Row="0" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="0" Grid.Column="3" Text="{Binding CreatorFirstName}" Height="23" />
<Label
Grid.Row="0"
Grid.Column="2"
Content="{markup:Translate Ersteller Vorname}" />
<TextBox
Grid.Row="0"
Grid.Column="3"
Height="23"
Margin="3"
Text="{Binding CreatorFirstName}" />
<Label Content="{markup:Translate Ersteller Nachname}" Grid.Row="0" Grid.Column="4" />
<TextBox Margin="3" Height="23" Grid.Row="0" Grid.Column="5" Text="{Binding CreatorLastName}" />
<Label
Grid.Row="0"
Grid.Column="4"
Content="{markup:Translate Ersteller Nachname}" />
<TextBox
Grid.Row="0"
Grid.Column="5"
Height="23"
Margin="3"
Text="{Binding CreatorLastName}" />
<Label Content="Rechnungsdatum" Grid.Row="1" Grid.Column="0" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" BorderThickness="1" Margin="3" Height="23" Grid.Row="1" Grid.Column="1" EditValue="{val:ValidationBinding Path=InvoiceDate, Mode=TwoWay}" />
<Label
Grid.Row="1"
Grid.Column="0"
Content="Rechnungsdatum" />
<dxe:DateEdit
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
BorderThickness="1"
EditValue="{val:ValidationBinding Path=InvoiceDate,
Mode=TwoWay}"
MaskType="DateTimeAdvancingCaret" />
<Label Content="Abrechnungszeitraum von" Grid.Row="1" Grid.Column="2" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" BorderThickness="1" Height="23" Margin="3" Grid.Row="1" Grid.Column="3" EditValue="{val:ValidationBinding Path=AccountingPeriodStart}" />
<Label
Grid.Row="1"
Grid.Column="2"
Content="Abrechnungszeitraum von" />
<dxe:DateEdit
Grid.Row="1"
Grid.Column="3"
Height="23"
Margin="3"
BorderThickness="1"
EditValue="{val:ValidationBinding Path=AccountingPeriodStart}"
MaskType="DateTimeAdvancingCaret" />
<Label Content="Abrechnungszeitraum bis" Grid.Row="1" Grid.Column="4" />
<dxe:DateEdit MaskType="DateTimeAdvancingCaret" BorderThickness="1" Height="23" Margin="3" Grid.Row="1" Grid.Column="5" EditValue="{val:ValidationBinding Path=AccountingPeriodEnd}" />
<Label
Grid.Row="1"
Grid.Column="4"
Content="Abrechnungszeitraum bis" />
<dxe:DateEdit
Grid.Row="1"
Grid.Column="5"
Height="23"
Margin="3"
BorderThickness="1"
EditValue="{val:ValidationBinding Path=AccountingPeriodEnd}"
MaskType="DateTimeAdvancingCaret" />
<Label Grid.Column="0" Grid.Row="2" Content="anz Mahnungen" />
<dxe:SpinEdit MinValue="0" IsFloatValue="False" AllowNullInput="True" EditValue="{Binding Path=DunningLetterCount, Converter={StaticResource Int2DecimalConverter}}" Height="23" Margin="3" Grid.Row="2" Grid.Column="1" />
<Label
Grid.Row="2"
Grid.Column="0"
Content="anz Mahnungen" />
<dxe:SpinEdit
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
AllowNullInput="True"
EditValue="{Binding Path=DunningLetterCount, Converter={StaticResource Int2DecimalConverter}}"
IsFloatValue="False"
MinValue="0" />
<Label Content="Bemerkung" Grid.Row="2" Grid.Column="2" />
<TextBox Grid.Row="2" Grid.Column="3" Grid.ColumnSpan="3" Margin="3" AcceptsReturn="True" TextWrapping="Wrap" Height="23" Text="{Binding Notice}" />
<Label
Grid.Row="2"
Grid.Column="2"
Content="Bemerkung" />
<TextBox
Grid.Row="2"
Grid.Column="3"
Grid.ColumnSpan="3"
Height="23"
Margin="3"
AcceptsReturn="True"
Text="{Binding Notice}"
TextWrapping="Wrap" />
</Grid>
</GroupBox>
<GroupBox Margin="3 6 6 3" Grid.Row="1" Style="{StaticResource ObjectEditGroupBox}" Header="{markup:Translate EmpfängerSingular}">
<GroupBox
Grid.Row="1"
Margin="3,6,6,3"
Header="{markup:Translate EmpfängerSingular}"
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
@@ -113,28 +222,78 @@
</Grid.RowDefinitions>
<Label Content="Vorname" />
<TextBox Margin="3" Grid.Row="0" Grid.Column="1" Text="{val:ValidationBinding Path=RecipientPersonFirstName}" Height="23" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
Text="{val:ValidationBinding Path=RecipientPersonFirstName}" />
<Label Content="Nachname" Grid.Row="0" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="0" Grid.Column="3" Text="{val:ValidationBinding Path=RecipientPersonLastName}" Height="23" />
<Label
Grid.Row="0"
Grid.Column="2"
Content="Nachname" />
<TextBox
Grid.Row="0"
Grid.Column="3"
Height="23"
Margin="3"
Text="{val:ValidationBinding Path=RecipientPersonLastName}" />
<Label Content="Aktenzeichen" Grid.Row="1" Grid.Column="0" />
<TextBox Margin="3" Height="23" Grid.Row="1" Grid.Column="1" Text="{Binding CustomerReferenceNumber}" />
<Label
Grid.Row="1"
Grid.Column="0"
Content="Aktenzeichen" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding CustomerReferenceNumber}" />
<Label Content="Strasse" Grid.Row="1" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="1" Grid.Column="3" Text="{val:ValidationBinding Path=RecipientStreet}" Height="23" />
<Label
Grid.Row="1"
Grid.Column="2"
Content="Strasse" />
<TextBox
Grid.Row="1"
Grid.Column="3"
Height="23"
Margin="3"
Text="{val:ValidationBinding Path=RecipientStreet}" />
<Label Content="Postleitzahl" Grid.Row="2" Grid.Column="0" />
<TextBox Margin="3,3,3,0" Grid.Row="2" Grid.Column="1" Text="{val:ValidationBinding Path=RecipientPostCode}" Height="23" />
<Label
Grid.Row="2"
Grid.Column="0"
Content="Postleitzahl" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3,3,3,0"
Text="{val:ValidationBinding Path=RecipientPostCode}" />
<Label Content="Ort" Grid.Row="2" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="2" Grid.Column="3" Text="{val:ValidationBinding Path=RecipientTown}" Height="23" />
<Label
Grid.Row="2"
Grid.Column="2"
Content="Ort" />
<TextBox
Grid.Row="2"
Grid.Column="3"
Height="23"
Margin="3"
Text="{val:ValidationBinding Path=RecipientTown}" />
</Grid>
</GroupBox>
<GroupBox Margin="6 6 3 3" Style="{StaticResource ObjectEditGroupBox}" Grid.Row="1" Grid.Column="2" Header="{markup:Translate Absender}">
<GroupBox
Grid.Row="1"
Grid.Column="2"
Margin="6,6,3,3"
Header="{markup:Translate Absender}"
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
@@ -151,61 +310,163 @@
</Grid.RowDefinitions>
<Label Content="Vorname" />
<TextBox Margin="3" Grid.Row="0" Grid.Column="1" Text="{Binding SenderFirstName}" Height="23" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding SenderFirstName}" />
<Label Content="Nachname" Grid.Row="0" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="0" Grid.Column="3" Text="{Binding SenderLastName}" Height="23" />
<Label
Grid.Row="0"
Grid.Column="2"
Content="Nachname" />
<TextBox
Grid.Row="0"
Grid.Column="3"
Height="23"
Margin="3"
Text="{Binding SenderLastName}" />
<Label Content="Organisation" Grid.Row="1" />
<TextBox Margin="3" Grid.Row="1" Grid.Column="1" Text="{Binding SenderOrganisation}" Height="23" />
<Label Grid.Row="1" Content="Organisation" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding SenderOrganisation}" />
<Label Content="Abteilung" Grid.Row="1" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="1" Grid.Column="3" Text="{Binding SenderDivision}" Height="23" />
<Label
Grid.Row="1"
Grid.Column="2"
Content="Abteilung" />
<TextBox
Grid.Row="1"
Grid.Column="3"
Height="23"
Margin="3"
Text="{Binding SenderDivision}" />
<Label Content="Fax" Grid.Row="2" Grid.Column="0" />
<TextBox Margin="3" Grid.Row="2" Grid.Column="1" Text="{Binding SenderFax}" Height="23" />
<Label
Grid.Row="2"
Grid.Column="0"
Content="Fax" />
<TextBox
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3"
Text="{Binding SenderFax}" />
<Label Content="Telefon" Grid.Row="2" Grid.Column="2" />
<TextBox Margin="3" Grid.Row="2" Grid.Column="3" Text="{Binding SenderPhone}" Height="23" />
<Label
Grid.Row="2"
Grid.Column="2"
Content="Telefon" />
<TextBox
Grid.Row="2"
Grid.Column="3"
Height="23"
Margin="3"
Text="{Binding SenderPhone}" />
</Grid>
</GroupBox>
<GroupBox Margin="3 6 3 3" Style="{StaticResource ObjectEditGroupBox}" Grid.ColumnSpan="2" Grid.Row="2" Header="Rechnungsposten">
<GroupBox
Grid.Row="2"
Grid.ColumnSpan="2"
Margin="3,6,3,3"
Header="Rechnungsposten"
Style="{StaticResource ObjectEditGroupBox}">
<dxg:GridControl MaxHeight="200" SnapsToDevicePixels="True" Margin="3" x:Name="datagrid_invoiceItems" DataSource="{Binding InvoiceItems.VMList}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<dxg:GridControl
x:Name="datagrid_invoiceItems"
MaxHeight="200"
Margin="3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
DataSource="{Binding InvoiceItems.VMList}"
SnapsToDevicePixels="True">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn
Width="24"
FieldName="Notice"
FixedWidth="True"
Header=""
ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18" VerticalAlignment="Center" />
<Button
Width="18"
Height="18"
VerticalAlignment="Center"
Click="DeleteButton_Click"
Content="r"
FontFamily="Webdings" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn x:Name="colItemPeriodStart" FieldName="ItemPeriodStart" Header="Von" EditSettings="{dxe:DateSettings DisplayFormat=d}" Width="80" />
<dxg:GridColumn x:Name="colItemPeriodEnd" FieldName="ItemPeriodEnd" Header="Bis" EditSettings="{dxe:DateSettings DisplayFormat=d}" Width="80" />
<dxg:GridColumn FieldName="ItemDescription" Header="Posten" Width="150" />
<dxg:GridColumn x:Name="colAmountPerUnit" FieldName="AmountPerUnit" Header="Satz" Width="80">
<dxg:GridColumn
x:Name="colItemPeriodStart"
Width="80"
EditSettings="{dxe:DateSettings DisplayFormat=d}"
FieldName="ItemPeriodStart"
Header="Von" />
<dxg:GridColumn
x:Name="colItemPeriodEnd"
Width="80"
EditSettings="{dxe:DateSettings DisplayFormat=d}"
FieldName="ItemPeriodEnd"
Header="Bis" />
<dxg:GridColumn
Width="150"
FieldName="ItemDescription"
Header="Posten" />
<dxg:GridColumn
x:Name="colAmountPerUnit"
Width="80"
FieldName="AmountPerUnit"
Header="Satz">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="c" Mask="c" MaskType="Numeric"></dxe:TextEditSettings>
<dxe:TextEditSettings
DisplayFormat="c"
Mask="c"
MaskType="Numeric" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn x:Name="colUnitCount" FieldName="UnitCount" Header="Anzahl" Width="80" />
<dxg:GridColumn x:Name="colAmountTotal" FieldName="AmountTotal" Header="Betrag">
<dxg:GridColumn
x:Name="colUnitCount"
Width="80"
FieldName="UnitCount"
Header="Anzahl" />
<dxg:GridColumn
x:Name="colAmountTotal"
FieldName="AmountTotal"
Header="Betrag">
<dxg:GridColumn.CellStyle>
<Style TargetType="dxg:LightweightCellEditor">
<Setter Property="TextBlock.FontWeight" Value="Bold" />
</Style>
</dxg:GridColumn.CellStyle>
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="c" Mask="c" MaskType="Numeric"></dxe:TextEditSettings>
<dxe:TextEditSettings
DisplayFormat="c"
Mask="c"
MaskType="Numeric" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView NewItemRowPosition="Top" Loaded="gridView_Loaded" x:Name="gridView" NavigationStyle="Cell" ShowGroupPanel="False" SnapsToDevicePixels="True" Margin="3" />
<dxg:TableView
x:Name="gridView"
Margin="3"
Loaded="gridView_Loaded"
NavigationStyle="Cell"
NewItemRowPosition="Top"
ShowGroupPanel="False"
SnapsToDevicePixels="True" />
</dxg:GridControl.View>
</dxg:GridControl>
@@ -214,9 +475,26 @@
</Grid>
</ScrollViewer>
<StackPanel Grid.ColumnSpan="2" Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Center" Height="Auto" Margin="5 0 5 5" HorizontalAlignment="Right">
<Button x:Name="btnSave" Content="Speichern und schließen" Margin="5" Command="ApplicationCommands.Save" Height="25" />
<Button x:Name="btnClose" Content="Abbrechen" Margin="5" Command="ApplicationCommands.Close" Height="25" />
<StackPanel
Grid.Row="2"
Grid.ColumnSpan="2"
Height="Auto"
Margin="5,0,5,5"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnSave"
Height="25"
Margin="5"
Command="ApplicationCommands.Save"
Content="Speichern und schließen" />
<Button
x:Name="btnClose"
Height="25"
Margin="5"
Command="ApplicationCommands.Close"
Content="Abbrechen" />
</StackPanel>
</Grid>

View File

@@ -14,6 +14,7 @@ using System.Windows.Threading;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.View.Controls;
using BeWo.View.Windows;
using BeWo.ViewModel;
using BeWo.ViewModel.Light;
using BeWo.ViewModel.ListViewModel;

View File

@@ -1334,7 +1334,7 @@ namespace BeWo.View.Detail
if (lValid)
{
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, ViewModel.StatisticsDC, selectedNode, false, ViewModel.SelectedEmployee, null, null);
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, ViewModel.StatisticsDC, selectedNode, false, ViewModel.SelectedEmployee, null, null, 1);
if (lValid)
{

View File

@@ -1,9 +1,12 @@
<Window x:Class="BeWo.View.Detail.CustomerHistoryDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:detail="clr-namespace:BeWo.View.Detail"
Title="CustomerHistoryDialog" Height="300" Width="300">
<Window
x:Class="BeWo.View.Detail.CustomerHistoryDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:detail="clr-namespace:BeWo.View.Detail"
Title="CustomerHistoryDialog"
Width="300"
Height="300">
<Grid>
<detail:CustomerHistoryView x:Name="CustomerHistoryView"></detail:CustomerHistoryView>
<detail:CustomerHistoryView x:Name="CustomerHistoryView" />
</Grid>
</Window>

View File

@@ -783,7 +783,7 @@
FontSize="22"
Foreground="#FFFFFFFF"
Text="{Binding CustomerAlias}"
TextDecorations="" />
TextDecorations="None" />
<TextBox
Margin="0,0,0,0"
Padding="0,0,0,0"
@@ -804,6 +804,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="10" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Height="6" Fill="{StaticResource CustomerContentBrush}" />
@@ -1490,13 +1491,13 @@
Selector.Selected="tabitem_SchulDienst_Selected" />
<TabItem
Name="tabitem_gemeinnutzigearbeit"
Header="Vermittlung Arbeit"
Header="Vermittlung gemeinnütziger Arbeit"
Visibility="{Binding Path=PermissionGemeinnutzigeArbeitView, Converter={StaticResource BoolVisibilityConverter}}">
<detail:CustomerVermittlungArbeitView />
</TabItem>
<TabItem
Name="tabitem_wohnhilfe"
Header="Wohnhilfe"
Header="Basisdaten BAGW"
Visibility="{Binding Path=PermissionWohnhilfeView, Converter={StaticResource BoolVisibilityConverter}}">
<detail:CustomerWohnhilfeView />
</TabItem>
@@ -2617,7 +2618,7 @@
</TabItem>
<TabItem r:DemandUserRight.VisibleDemands="Customer_ViewAbsenceTimes" Header="Abwesenheiten">
<Grid>
<detail:AbsenceTimesView x:Name="AbsenceTimesView" AbsenceTimes="{Binding ViewModel.AbsenceTimes, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, ElementName=CustomerBeWoView}" />
<detail:AbsenceTimesView x:Name="AbsenceTimesView" CheckEnddate="False" AbsenceTimes="{Binding ViewModel.AbsenceTimes, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, ElementName=CustomerBeWoView}" />
</Grid>
</TabItem>
<TabItem Header="Umfeld" Selector.Selected="TabItemPersons_Selected">
@@ -3786,10 +3787,10 @@
Selector.Selected="tabitem_log_Selected" />
</TabControl>
<Border
Grid.Row="2"
Grid.Row="3"
Grid.ColumnSpan="3"
Height="40"
Margin="0,10,0,0"
Margin="0,0,0,0"
VerticalAlignment="Stretch"
Background="#FF000000">
<Border.OpacityMask>
@@ -3798,12 +3799,40 @@
<GradientStop Offset="1" Color="#33FFFFFF" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel
Grid.Row="2"
Grid.Row="3"
Grid.ColumnSpan="3"
Margin="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Orientation="Horizontal">
<StackPanel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..\..\Styles\ModernOrangeBlack.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</StackPanel.Resources>
<Button
x:Name="btnOpenAi2"
Margin="10,0,0,0"
Command="{Binding Path=OpenAiWindowCommand, RelativeSource={RelativeSource AncestorType={x:Type localView:BeWoView}}}"
Content="AI Chat Window"
Style="{StaticResource NavigationToolbarButtonStyle}" />
<Button
x:Name="btnOpenAi3"
Margin="10,0,0,0"
Command="{Binding Path=OpenAiPopupCommand, RelativeSource={RelativeSource AncestorType={x:Type localView:BeWoView}}}"
Content="AI Chat Popup"
Style="{StaticResource NavigationToolbarButtonStyle}" />
</StackPanel>
<StackPanel
Grid.Row="3"
Grid.ColumnSpan="3"
Height="Auto"
Margin="5,10,0,0"
Margin="5,0,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
@@ -3920,6 +3949,10 @@
StaysOpen="False">
<localSearchView:OrganisationSearchView x:Name="personOrganisationsearchview" />
</Popup>
<Border x:Name="popup_content" Margin="0,10,0,-10" Height="1" Width="1"/>
<Border
x:Name="popup_content"
Width="1"
Height="1"
Margin="0,10,0,-10" />
</Grid>
</localView:BeWoView>

View File

@@ -51,6 +51,9 @@ using Hyperlink = System.Windows.Documents.Hyperlink;
using MessageBox = System.Windows.MessageBox;
using VerticalAlignment = System.Windows.VerticalAlignment;
using BeWo.AI;
using BeWo.View.Navigation;
using DevExpress.Mvvm;
using System.Collections;
namespace BeWo.View.Detail
{
@@ -96,10 +99,12 @@ namespace BeWo.View.Detail
public CustomerView(CustomerVM pCustomerVM)
{
InitializeComponent();
DataContext = ViewModel;
DataContext = ViewModel;
OpenAiWindowCommand = new DelegateCommand(OpenAiWindow, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleView) && !ViewModel.IsNew);
OpenAiPopupCommand = new DelegateCommand(OpenAiPopup, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleView2) && !ViewModel.IsNew);
BehinderungsartenSelection.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => this.Dispatch(() => { PopupBehinderungsarten.IsOpen = false; })));
BehinderungsartenSelection.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => this.Dispatch(() => { PopupBehinderungsarten.IsOpen = false; })));
MerkzeichenSelection.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, (s, e) => this.Dispatch(() => { PopupMerkzeichen.IsOpen = false; })));
_AlleEintragKategorien = pCustomerVM.EintragKategorien;
@@ -289,7 +294,42 @@ namespace BeWo.View.Detail
#endif
}
void Image_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
public DelegateCommand OpenAiWindowCommand { get; }
public DelegateCommand OpenAiPopupCommand { get; }
public Dictionary<TableID, long[]> GetVisibleInformationReferences()
{
var visible = ViewModel;
return GetVisibleInformationReferences(visible);
}
private Dictionary<TableID, long[]> GetVisibleInformationReferences(CustomerVM customer)
{
var dict = new Dictionary<TableID, long[]>() {
{ TableID.Customer, new long[]{customer.DataContract.CustomerOid.Value } }
};
return dict;
}
private void OpenAiWindow()
{
var customer_oid = ViewModel.DataContract.CustomerOid;
var context = GetVisibleInformationReferences();
MainControl.WindowService.ShowAiConversationWindow(UIContext.CustomerSingle, context, customer_oid);
}
private void OpenAiPopup()
{
var customer_oid = ViewModel.DataContract.CustomerOid;
var context = GetVisibleInformationReferences();
MainControl.WindowService.ShowAiConversationModalViewWindow(UIContext.CustomerSingle, context, customer_oid);
}
void Image_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
{
_ViewModel.CustomerImage = Img.EditValue as byte[];
}
@@ -361,7 +401,7 @@ namespace BeWo.View.Detail
//get { return BeWoApp.Tenant == "demo" && BeWoApp.UserName == "demo"; }
}
private void Log(string log)
private void Log(string log)
{
if (ShouldLog)
{

View File

@@ -1,12 +1,15 @@
<Window x:Class="BeWo.View.Detail.DebugMessageLogView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BeWo.View.Detail"
WindowStartupLocation="Manual"
Title="Debug Log" mc:Ignorable="d"
Height="900" Width="1000">
<Window
x:Class="BeWo.View.Detail.DebugMessageLogView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BeWo.View.Detail"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="Debug Log"
Width="1000"
Height="900"
WindowStartupLocation="Manual"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
@@ -16,11 +19,20 @@
<StackPanel Grid.Row="0">
<Button Click="ButtonBase_OnClick">Leeren</Button>
</StackPanel>
<ListView x:Name="DebugListView" ItemsSource="{Binding DebugMessageList}" Background="GhostWhite" Grid.Row="1">
<ListView
x:Name="DebugListView"
Grid.Row="1"
Background="GhostWhite"
ItemsSource="{Binding DebugMessageList}">
<ListView.ItemTemplate>
<DataTemplate DataType="local:DebugWindowMessage">
<Grid>
<TextBlock FontSize="16" FontWeight="Bold" FontFamily="Consolas" Text="{Binding MessageText}" Foreground="{Binding TextColor}"></TextBlock>
<TextBlock
FontFamily="Consolas"
FontSize="16"
FontWeight="Bold"
Foreground="{Binding TextColor}"
Text="{Binding MessageText}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +1,30 @@
<localView:BeWoView x:Class="BeWo.View.Detail.GroupOfPeopleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
Height="Auto"
Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView
x:Class="BeWo.View.Detail.GroupOfPeopleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:val="clr-namespace:BeWo.Validation"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True">
<Grid>
<GroupBox Style="{StaticResource PopUpWindowStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0">
<Image Source="..\..\Ressources\Icons\UserGroupBusinessDisabled.png" RenderTransformOrigin="0.5,0.5" Width="Auto" Height="28" Margin="0,0,0,0">
<StackPanel
Margin="0"
VerticalAlignment="Center"
Orientation="Horizontal">
<Image
Width="Auto"
Height="28"
Margin="0,0,0,0"
RenderTransformOrigin="0.5,0.5"
Source="..\..\Ressources\Icons\UserGroupBusinessDisabled.png">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
@@ -22,7 +34,14 @@
</TransformGroup>
</Image.RenderTransform>
</Image>
<TextBlock Text="Gruppe bearbeiten" Margin="10,4,0,0" Background="{x:Null}" Foreground="#FFFFFFFF" FontSize="20" VerticalAlignment="Stretch" Padding="0,0,0,0" />
<TextBlock
Margin="10,4,0,0"
Padding="0,0,0,0"
VerticalAlignment="Stretch"
Background="{x:Null}"
FontSize="20"
Foreground="#FFFFFFFF"
Text="Gruppe bearbeiten" />
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,0,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
@@ -31,8 +50,11 @@
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="{DynamicResource TeamContentBrush}" Height="6" />
<Grid Grid.Row="1" Name="grid_root" Margin="10,10,10,0">
<Rectangle Height="6" Fill="{DynamicResource TeamContentBrush}" />
<Grid
Name="grid_root"
Grid.Row="1"
Margin="10,10,10,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
@@ -41,8 +63,11 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox Width="180" Header="Alle Gruppen" Style="{StaticResource ObjectEditGroupBox}">
<Grid >
<GroupBox
Width="180"
Header="Alle Gruppen"
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
@@ -51,41 +76,106 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<Button x:Name="btnAddGroup" HorizontalAlignment="Right" Click="btnAddGroup_Click" Height="21" Margin="0,0,0,3" ToolTip="Neue Gruppe hinzufügen">
<Button
x:Name="btnAddGroup"
Height="21"
Margin="0,0,0,3"
HorizontalAlignment="Right"
Click="btnAddGroup_Click"
ToolTip="Neue Gruppe hinzufügen">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Width="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,-2,0,0">
<Line X1="4" X2="12" Y1="8" Y2="8" Fill="{x:Null}" Stroke="#FFFFFFFF" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16" />
<Line X1="8" X2="8" Y1="4" Y2="12" Fill="{x:Null}" Stroke="#FFFFFFFF" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16" />
<Grid
Width="18"
Margin="0,-2,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="4"
X2="12"
Y1="8"
Y2="8" />
<Line
Width="16"
Height="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="{x:Null}"
Stroke="#FFFFFFFF"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="2"
X1="8"
X2="8"
Y1="4"
Y2="12" />
</Grid>
<TextBlock Grid.Column="1" Text="Neue Gruppe"></TextBlock>
<TextBlock Grid.Column="1" Text="Neue Gruppe" />
</Grid>
</Button>
</StackPanel>
<ListBox Grid.Row="1" ItemsSource="{Binding VMList}" SelectedItem="{Binding EditVM}">
<ListBox
Grid.Row="1"
ItemsSource="{Binding VMList}"
SelectedItem="{Binding EditVM}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Style="{StaticResource {x:Type Button}}" HorizontalAlignment="Center" VerticalAlignment="Center" Height="18" Padding="0" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}" Margin="3 0 0 0" Click="button_removegroup_Click" Tag="{Binding}" ToolTip="Entfernen">
<Button
Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"
Height="18"
Margin="3,0,0,0"
Padding="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Click="button_removegroup_Click"
Style="{StaticResource {x:Type Button}}"
Tag="{Binding}"
ToolTip="Entfernen">
<Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Path Stroke="White" StrokeThickness="1.5" Data="M -3,-3 L 3, 3" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
<Path Stroke="White" StrokeThickness="1.5" Data="M 3,-3 L -3, 3" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
<Path
Data="M -3,-3 L 3, 3"
Stroke="White"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="1.5" />
<Path
Data="M 3,-3 L -3, 3"
Stroke="White"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="1.5" />
</Canvas>
</Button>
<Label Margin="3 0 0 3" Padding="0" Content="{Binding Path=Name}" />
<Label
Margin="3,0,0,3"
Padding="0"
Content="{Binding Path=Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</GroupBox>
<Grid Margin="10,0,0,0" Grid.Column="1" DataContext="{Binding EditVM}" >
<Grid
Grid.Column="1"
Margin="10,0,0,0"
DataContext="{Binding EditVM}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="250" />
@@ -100,11 +190,22 @@
<RowDefinition Height="0" />
</Grid.RowDefinitions>
<Label IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" >Name der Gruppe</Label>
<Label IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}">Name der Gruppe</Label>
<TextBox Grid.Column="1" Height="23" Margin="3,0,3,0" Text="{val:ValidationBinding Path=Name, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" />
<TextBox
Grid.Column="1"
Height="23"
Margin="3,0,3,0"
IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}"
Text="{val:ValidationBinding Path=Name,
UpdateSourceTrigger=PropertyChanged}" />
<GroupBox Grid.Row="3" Grid.ColumnSpan="4" Header="Mitglieder hinzufügen" Margin="3,15,0,0" Style="{DynamicResource ObjectEditGroupBox}" >
<GroupBox
Grid.Row="3"
Grid.ColumnSpan="4"
Margin="3,15,0,0"
Header="Mitglieder hinzufügen"
Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="220" />
@@ -116,32 +217,97 @@
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label VerticalAlignment="Bottom" IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" Content="{markup:Translate Zugeordnete Hilfepläne}" />
<Label
VerticalAlignment="Bottom"
Content="{markup:Translate Zugeordnete Hilfepläne}"
IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" />
<ListBox Name="listbox_teamMember" Grid.Row="1" ItemsSource="{Binding Path=SupportConceptList}" IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" >
<ListBox
Name="listbox_teamMember"
Grid.Row="1"
IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}"
ItemsSource="{Binding Path=SupportConceptList}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Style="{StaticResource {x:Type Button}}" HorizontalAlignment="Center" VerticalAlignment="Center" Height="18" Padding="0" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}" Margin="3 0 0 0" Click="button_remove_Click" Tag="{Binding}" ToolTip="Entfernen">
<Button
Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"
Height="18"
Margin="3,0,0,0"
Padding="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Click="button_remove_Click"
Style="{StaticResource {x:Type Button}}"
Tag="{Binding}"
ToolTip="Entfernen">
<Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Path Stroke="White" StrokeThickness="1.5" Data="M -3,-3 L 3, 3" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
<Path Stroke="White" StrokeThickness="1.5" Data="M 3,-3 L -3, 3" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
<Path
Data="M -3,-3 L 3, 3"
Stroke="White"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="1.5" />
<Path
Data="M 3,-3 L -3, 3"
Stroke="White"
StrokeEndLineCap="Round"
StrokeStartLineCap="Round"
StrokeThickness="1.5" />
</Canvas>
</Button>
<Label Margin="3 0 0 3" Padding="0" Content="{Binding Path=LastName}" />
<Label Margin="0" Padding="0" Content=", " />
<Label Margin="0" Padding="0" Content="{Binding Path=FirstName}" />
<Label Margin="0" Padding="0" Content=", " />
<Label Margin="0" Padding="0" Content="{Binding Path=FirstCostBearerDetailString}" />
<Label
Margin="3,0,0,3"
Padding="0"
Content="{Binding Path=LastName}" />
<Label
Margin="0"
Padding="0"
Content=", " />
<Label
Margin="0"
Padding="0"
Content="{Binding Path=FirstName}" />
<Label
Margin="0"
Padding="0"
Content=", " />
<Label
Margin="0"
Padding="0"
Content="{Binding Path=FirstCostBearerDetailString}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button Name="button_add" Grid.Row="2" Content="&lt;" FontWeight="Bold" Width="25" Grid.Column="1" VerticalAlignment="Center" Height="25" MinWidth="30" Margin="3" ToolTip="Neues Gruppenmitglied hinzufügen" Click="button_add_Click" IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" />
<Button
Name="button_add"
Grid.Row="2"
Grid.Column="1"
Width="25"
Height="25"
MinWidth="30"
Margin="3"
VerticalAlignment="Center"
Click="button_add_Click"
Content="&lt;"
FontWeight="Bold"
IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}"
ToolTip="Neues Gruppenmitglied hinzufügen" />
<Label VerticalAlignment="Bottom" Grid.Column="2" IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" Content="{markup:Translate Verfügbare Hilfepläne}"/>
<localSearchView:SupportConceptSearchView x:Name="SupportConceptSearchView" IsMultiSelect="True" Grid.Column="2" Grid.Row="1" SearchMode="ActiveCostbearer2SupportConcepts" ShowFilterPanel="True"/>
<Label
Grid.Column="2"
VerticalAlignment="Bottom"
Content="{markup:Translate Verfügbare Hilfepläne}"
IsEnabled="{Binding Converter={StaticResource ObjectBoolConverter}}" />
<localSearchView:SupportConceptSearchView
x:Name="SupportConceptSearchView"
Grid.Row="1"
Grid.Column="2"
IsMultiSelect="True"
SearchMode="ActiveCostbearer2SupportConcepts"
ShowFilterPanel="True" />
</Grid>
</GroupBox>
@@ -149,18 +315,41 @@
</Grid>
</Grid>
<Border Grid.Row="2" Grid.ColumnSpan="3" Height="40" Margin="0,10,0,0" VerticalAlignment="Stretch" Background="#FF000000">
<Border
Grid.Row="2"
Grid.ColumnSpan="3"
Height="40"
Margin="0,10,0,0"
VerticalAlignment="Stretch"
Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#33FFFFFF" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#33FFFFFF" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel Grid.ColumnSpan="3" Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Center" Height="Auto" Margin="5,10,0,0" HorizontalAlignment="Right">
<Button x:Name="btnSave" Content="Speichern und schließen" Margin="0,0,2,0" Command="ApplicationCommands.Save" Height="25" />
<Button x:Name="btnClose" Content="Schließen" Margin="0,0,3,0" Command="ApplicationCommands.Close" Height="25" />
<StackPanel
Grid.Row="2"
Grid.ColumnSpan="3"
Height="Auto"
Margin="5,10,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnSave"
Height="25"
Margin="0,0,2,0"
Command="ApplicationCommands.Save"
Content="Speichern und schließen" />
<Button
x:Name="btnClose"
Height="25"
Margin="0,0,3,0"
Command="ApplicationCommands.Close"
Content="Schließen" />
</StackPanel>
</Grid>
</GroupBox>

View File

@@ -1,15 +1,21 @@
<Window x:Class="BeWo.View.Detail.MailMergeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:detail="clr-namespace:BeWo.View.Detail"
xmlns:conv="clr-namespace:BeWo.Converter"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
Title="MailMergeWindow" Height="530" Width="750" ResizeMode="NoResize" WindowStartupLocation="CenterOwner" x:Name="SerienbriefFenster">
<Window
x:Class="BeWo.View.Detail.MailMergeWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:conv="clr-namespace:BeWo.Converter"
xmlns:detail="clr-namespace:BeWo.View.Detail"
x:Name="SerienbriefFenster"
Title="MailMergeWindow"
Width="750"
Height="530"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize"
WindowStartupLocation="CenterOwner"
WindowStyle="None">
<Window.Resources>
<!-- Region HilfeplanTemplate -->
<!-- Region HilfeplanTemplate -->
<Style x:Key="SupportConceptMailMergeDetailStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -18,16 +24,28 @@
<Setter.Value>
<ControlTemplate>
<Grid x:Name="PART_DeinGridIstNichtMeinGridIstMeinUngrid">
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border
x:Name="ItemBorder"
MinHeight="30"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Border
x:Name="ItemContent"
MinHeight="30"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" MinWidth="250" />
@@ -38,20 +56,56 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<CheckBox x:Name="cb1" Grid.RowSpan="2" Margin="3" Tag="{Binding}" Checked="CheckBoxChecked" Unchecked="CheckBoxUnChecked" VerticalAlignment="Center" HorizontalAlignment="Center" Height="21" Width="21">
<CheckBox
x:Name="cb1"
Grid.RowSpan="2"
Width="21"
Height="21"
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Checked="CheckBoxChecked"
Tag="{Binding}"
Unchecked="CheckBoxUnChecked">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CollectionContainsTag2BoolConverter}">
<Binding ElementName="cb1" Path="Tag"/>
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window} }"/>
<Binding ElementName="cb1" Path="Tag" />
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<TextBlock x:Name="txtDetail1" Grid.Column="1" Grid.Row="0" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFA0A0A0" FontFamily="Microsoft Sans Serif" />
<ListBox x:Name="listBoxDetail3" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding Path=CostBearerDetailStrings}" FontSize="12" Foreground="{Binding ForegroundBrush}" FontFamily="Microsoft Sans Serif" Background="Transparent" BorderThickness="0" IsHitTestVisible="False" Margin="6,0,0,0">
<TextBlock
x:Name="txtDetail1"
Grid.Row="0"
Grid.Column="1"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=DetailDescription}" />
<TextBlock
x:Name="txtDetail2"
Grid.Row="1"
Grid.Column="1"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFA0A0A0"
Text="{Binding Path=AddressString}" />
<ListBox
x:Name="listBoxDetail3"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="2"
Margin="6,0,0,0"
Background="Transparent"
BorderThickness="0"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="{Binding ForegroundBrush}"
IsHitTestVisible="False"
ItemsSource="{Binding Path=CostBearerDetailStrings}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}"/>
<TextBlock Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type ListBox}, Mode=FindAncestor}}" Text="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
@@ -60,26 +114,26 @@
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="listBoxDetail3" Value="#FF808080" />
<Setter TargetName="txtDetail1" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail2" Property="Foreground" Value="#FF808080" />
<Setter TargetName="listBoxDetail3" Property="Foreground" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -89,11 +143,11 @@
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -103,10 +157,10 @@
</Setter.Value>
</Setter>
</Style>
<!-- EndRegion HilfeplanTemplate -->
<!-- EndRegion HilfeplanTemplate -->
<!-- Region KlientenTemplate -->
<!-- Region KlientenTemplate -->
<Style x:Key="CustomerDetailStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -115,16 +169,28 @@
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border
x:Name="ItemBorder"
MinHeight="30"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Border
x:Name="ItemContent"
MinHeight="30"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" SharedSizeGroup="CustomerDetailColumn" />
@@ -135,50 +201,98 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox x:Name="cb2" Grid.RowSpan="2" Margin="3" Tag="{Binding}" Checked="CheckBoxChecked" Unchecked="CheckBoxUnChecked" VerticalAlignment="Center" HorizontalAlignment="Center" Height="21" Width="21">
<CheckBox
x:Name="cb2"
Grid.RowSpan="2"
Width="21"
Height="21"
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Checked="CheckBoxChecked"
Tag="{Binding}"
Unchecked="CheckBoxUnChecked">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CollectionContainsTag2BoolConverter}">
<Binding ElementName="cb2" Path="Tag"/>
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window} }"/>
<Binding ElementName="cb2" Path="Tag" />
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal">
<TextBlock x:Name="txtDetail1" Text="{Binding Path=SimpleDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Text="{Binding Path=DateOfBirthString}" Margin="6,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<StackPanel
Grid.Row="0"
Grid.Column="1"
Orientation="Horizontal">
<TextBlock
x:Name="txtDetail1"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=SimpleDescription}" />
<TextBlock
x:Name="txtDetail2"
Margin="6,0,0,0"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=DateOfBirthString}" />
</StackPanel>
<StackPanel Grid.Column="1" Grid.Row="1" Orientation="Horizontal">
<TextBlock x:Name="txtDetail3" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFA0A0A0" FontFamily="Microsoft Sans Serif" />
<StackPanel
Grid.Row="1"
Grid.Column="1"
Orientation="Horizontal">
<TextBlock
x:Name="txtDetail3"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFA0A0A0"
Text="{Binding Path=AddressString}" />
</StackPanel>
<TextBlock Grid.Row="0" Grid.Column="2" x:Name="txtDetail4" Text="{Binding Path=CurrentEmployeeRole}" Margin="16,0,0,0" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock Grid.Column="2" Grid.Row="1" x:Name="txtDetail5" Text="{Binding Path=MainAttendant}" Margin="16,0,0,0" FontSize="14" Foreground="#FFA0A0A0" FontFamily="Microsoft Sans Serif" />
<TextBlock
x:Name="txtDetail4"
Grid.Row="0"
Grid.Column="2"
Margin="16,0,0,0"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=CurrentEmployeeRole}" />
<TextBlock
x:Name="txtDetail5"
Grid.Row="1"
Grid.Column="2"
Margin="16,0,0,0"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFA0A0A0"
Text="{Binding Path=MainAttendant}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail4" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail5" Value="#FF808080" />
<Setter TargetName="txtDetail1" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail2" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail3" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail4" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail5" Property="Foreground" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -188,11 +302,11 @@
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -202,10 +316,10 @@
</Setter.Value>
</Setter>
</Style>
<!-- EndRegion KlientenTemplate -->
<!-- EndRegion KlientenTemplate -->
<!-- Region PersonenTemplate -->
<!-- Region PersonenTemplate -->
<Style x:Key="PersonDetailStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -214,92 +328,165 @@
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border
x:Name="ItemBorder"
MinHeight="30"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True" >
<Border
x:Name="ItemContent"
MinHeight="30"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="personDetailColumn1"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="personDetailColumn2"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="personDetailColumn3"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="personDetailColumn1" />
<ColumnDefinition Width="Auto" SharedSizeGroup="personDetailColumn2" />
<ColumnDefinition Width="Auto" SharedSizeGroup="personDetailColumn3" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox x:Name="cb3" Grid.RowSpan="2" Margin="3" Tag="{Binding}" Checked="CheckBoxChecked" Unchecked="CheckBoxUnChecked" VerticalAlignment="Center" HorizontalAlignment="Center" Height="21" Width="21">
<CheckBox
x:Name="cb3"
Grid.RowSpan="2"
Width="21"
Height="21"
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Checked="CheckBoxChecked"
Tag="{Binding}"
Unchecked="CheckBoxUnChecked">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CollectionContainsTag2BoolConverter}">
<Binding ElementName="cb3" Path="Tag"/>
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window} }"/>
<Binding ElementName="cb3" Path="Tag" />
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<TextBlock x:Name="txtDetail1" Grid.Row="0" Grid.Column="1" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFA0A0A0" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail3" Grid.Row="0" Grid.Column="2" Text="{Binding Path=Function}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" Margin="10,0,10,0"/>
<TextBlock Visibility="Collapsed" x:Name="txtDetail4" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2" Text="{Binding Path=ContactSummaryInfo}" FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<StackPanel Orientation="Vertical" Grid.Column="3" Grid.Row="0" Grid.RowSpan="2">
<TextBlock FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<TextBlock
x:Name="txtDetail1"
Grid.Row="0"
Grid.Column="1"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=DetailDescription}" />
<TextBlock
x:Name="txtDetail2"
Grid.Row="1"
Grid.Column="1"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFA0A0A0"
Text="{Binding Path=AddressString}" />
<TextBlock
x:Name="txtDetail3"
Grid.Row="0"
Grid.Column="2"
Margin="10,0,10,0"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=Function}" />
<TextBlock
x:Name="txtDetail4"
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="3"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="{Binding Path=ContactSummaryInfo}"
Visibility="Collapsed" />
<StackPanel
Grid.Row="0"
Grid.RowSpan="2"
Grid.Column="3"
Orientation="Vertical">
<TextBlock
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2">
<TextBlock.Visibility>
<Binding Path="Communication1">
<Binding.Converter>
<conv:ObjectVisibilityConverter/>
<conv:ObjectVisibilityConverter />
</Binding.Converter>
</Binding>
</TextBlock.Visibility>
<TextBlock.Text>
<MultiBinding StringFormat="{}Tel.: {0}">
<Binding Path="Communication1"/>
<Binding Path="Communication1" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<TextBlock
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2">
<TextBlock.Visibility>
<Binding Path="Communication2">
<Binding.Converter>
<conv:ObjectVisibilityConverter/>
<conv:ObjectVisibilityConverter />
</Binding.Converter>
</Binding>
</TextBlock.Visibility>
<TextBlock.Text>
<MultiBinding StringFormat="{}Mobil: {0}">
<Binding Path="Communication2"/>
<Binding Path="Communication2" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock Text="EMail: " FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<TextBlock
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2"
Text="EMail: ">
<TextBlock.Visibility>
<Binding Path="Communication3">
<Binding.Converter>
<conv:ObjectVisibilityConverter/>
<conv:ObjectVisibilityConverter />
</Binding.Converter>
</Binding>
</TextBlock.Visibility>
<TextBlock FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<TextBlock
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2">
<TextBlock.Text>
<Binding Path="Communication3"/>
<Binding Path="Communication3" />
</TextBlock.Text>
</TextBlock>
</TextBlock>
</TextBlock>
<TextBlock FontSize="14" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<TextBlock
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFD2D2D2">
<TextBlock.Visibility>
<Binding Path="Communication4">
<Binding.Converter>
<conv:ObjectVisibilityConverter/>
<conv:ObjectVisibilityConverter />
</Binding.Converter>
</Binding>
</TextBlock.Visibility>
<TextBlock.Text>
<MultiBinding StringFormat="{}Fax: {0}">
<Binding Path="Communication4"/>
<Binding Path="Communication4" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
@@ -309,28 +496,28 @@
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail3" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail4" Value="#FF808080" />
<Setter TargetName="txtDetail1" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail2" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail3" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail4" Property="Foreground" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -340,11 +527,11 @@
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -354,10 +541,10 @@
</Setter.Value>
</Setter>
</Style>
<!-- EndRegion PersonenTemplate -->
<!-- EndRegion PersonenTemplate -->
<!-- Region OrganisationenTemplate -->
<!-- Region OrganisationenTemplate -->
<Style x:Key="OrganisationDetailStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
<Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type ItemsControl}, Mode=FindAncestor}}" />
@@ -366,16 +553,28 @@
<Setter.Value>
<ControlTemplate>
<Grid>
<Border x:Name="ItemBorder" CornerRadius="5" MinHeight="30" Background="#FF000000">
<Border
x:Name="ItemBorder"
MinHeight="30"
Background="#FF000000"
CornerRadius="5">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#26000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#26000000" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="30">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Border
x:Name="ItemContent"
MinHeight="30"
CornerRadius="5">
<Grid
Margin="5,3,5,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
OpacityMask="{x:Null}"
SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
@@ -384,40 +583,64 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox x:Name="cb4" Checked="CheckBoxChecked" Unchecked="CheckBoxUnChecked" Grid.RowSpan="2" Margin="3" Tag="{Binding}" VerticalAlignment="Center" HorizontalAlignment="Center" Height="21" Width="21">
<CheckBox
x:Name="cb4"
Grid.RowSpan="2"
Width="21"
Height="21"
Margin="3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Checked="CheckBoxChecked"
Tag="{Binding}"
Unchecked="CheckBoxUnChecked">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CollectionContainsTag2BoolConverter}">
<Binding ElementName="cb4" Path="Tag"/>
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window} }"/>
<Binding ElementName="cb4" Path="Tag" />
<Binding Path="DataContext.SelectedForPrinting" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Window}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<TextBlock x:Name="txtDetail1" Grid.Row="0" Grid.Column="1" Text="{Binding Path=DetailDescription}" FontSize="14" Foreground="#FFFFFFFF" FontFamily="Microsoft Sans Serif" />
<TextBlock x:Name="txtDetail2" Grid.Column="1" Grid.Row="1" Text="{Binding Path=AddressString}" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif" />
<TextBlock
x:Name="txtDetail1"
Grid.Row="0"
Grid.Column="1"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="#FFFFFFFF"
Text="{Binding Path=DetailDescription}" />
<TextBlock
x:Name="txtDetail2"
Grid.Row="1"
Grid.Column="1"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="#FFD2D2D2"
Text="{Binding Path=AddressString}" />
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsArchived}" Value="True">
<Setter Property="Foreground" TargetName="txtDetail1" Value="#FF808080" />
<Setter Property="Foreground" TargetName="txtDetail2" Value="#FF808080" />
<Setter TargetName="txtDetail1" Property="Foreground" Value="#FF808080" />
<Setter TargetName="txtDetail2" Property="Foreground" Value="#FF808080" />
</DataTrigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#33000000" Offset="0" />
<GradientStop Color="#66000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#33000000" />
<GradientStop Offset="1" Color="#66000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="ListBoxItem.IsSelected" Value="True">
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#CC000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#CC000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -427,11 +650,11 @@
<Condition Property="ListBoxItem.IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="OpacityMask" TargetName="ItemBorder">
<Setter TargetName="ItemBorder" Property="OpacityMask">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99000000" Offset="0" />
<GradientStop Color="#B2000000" Offset="1" />
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#99000000" />
<GradientStop Offset="1" Color="#B2000000" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
@@ -441,16 +664,17 @@
</Setter.Value>
</Setter>
</Style>
<!-- EndRegion OrganisationenTemplate -->
<!-- EndRegion OrganisationenTemplate -->
<detail:ListBoxItemStyleSelector x:Key="StyleSelector"
SupportConceptStyle="{StaticResource SupportConceptMailMergeDetailStyle}"
PersonStyle="{StaticResource PersonDetailStyle}"
CustomerStyle="{StaticResource CustomerDetailStyle}"
OrganisationStyle="{StaticResource OrganisationDetailStyle}" />
<detail:ListBoxItemStyleSelector
x:Key="StyleSelector"
CustomerStyle="{StaticResource CustomerDetailStyle}"
OrganisationStyle="{StaticResource OrganisationDetailStyle}"
PersonStyle="{StaticResource PersonDetailStyle}"
SupportConceptStyle="{StaticResource SupportConceptMailMergeDetailStyle}" />
</Window.Resources>
<GroupBox Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" Header="Serienbrief drucken...">
<GroupBox Header="Serienbrief drucken..." Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}">
<Grid Margin="0,3,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -464,29 +688,107 @@
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<Grid
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Margin="3" Content="Vorlage" />
<controls:NullItemComboBox x:Name="VorlagenComboBox" Grid.Row="0" Grid.Column="1" Margin="3" DisplayMemberPath="FileName" ItemsSource="{Binding Path=WordTemplates, UpdateSourceTrigger=PropertyChanged}" SelectedIndex="0"/>
<Label
Grid.Row="0"
Grid.Column="0"
Margin="3"
Content="Vorlage" />
<controls:NullItemComboBox
x:Name="VorlagenComboBox"
Grid.Row="0"
Grid.Column="1"
Margin="3"
DisplayMemberPath="FileName"
ItemsSource="{Binding Path=WordTemplates, UpdateSourceTrigger=PropertyChanged}"
SelectedIndex="0" />
</Grid>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Margin="3" Grid.ColumnSpan="2">
<Label Content="Suche" FontSize="14" Margin="0,-5,0,0" />
<TextBox Foreground="Black" Height="20" x:Name="TextboxSearch" MinWidth="90" Margin="3,-5,0,0" Width="300" TabIndex="0" Template="{DynamicResource SearchTextBoxTemplate}" BorderThickness="0,0,0,0" />
<TextBlock Margin="3,0,0,0" Foreground="Black" Text="{Binding Path=Items.Count, Converter={StaticResource StringFormatConverter}, ConverterParameter=Suchergebnisse: \{0\}, ElementName=ObjectListBox}" FontFamily="Microsoft Sans Serif" FontSize="14" />
<StackPanel
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="3"
Orientation="Horizontal">
<Label
Margin="0,-5,0,0"
Content="Suche"
FontSize="14" />
<TextBox
x:Name="TextboxSearch"
Width="300"
Height="20"
MinWidth="90"
Margin="3,-5,0,0"
BorderThickness="0,0,0,0"
Foreground="Black"
TabIndex="0"
Template="{DynamicResource SearchTextBoxTemplate}" />
<TextBlock
Margin="3,0,0,0"
FontFamily="Microsoft Sans Serif"
FontSize="14"
Foreground="Black"
Text="{Binding Path=Items.Count, Converter={StaticResource StringFormatConverter}, ConverterParameter=Suchergebnisse: \{0\}, ElementName=ObjectListBox}" />
</StackPanel>
<StackPanel Orientation="Horizontal" x:Name="SortPanel" Margin="3" Grid.Row="2" Grid.Column="0">
<TextBlock Foreground="Black" HorizontalAlignment="Left" Text="Sortiert nach" FontFamily="Microsoft Sans Serif" FontSize="12" Margin="6,2,0,0" />
<controls:NullItemComboBox x:Name="SortCombo" HorizontalAlignment="Left" FontFamily="Microsoft Sans Serif" FontSize="12" Margin="10,0,0,0" MinWidth="100" DisplayMemberPath="DisplayName" SelectionChanged="SortCombo_SelectionChanged" Style="{DynamicResource SortComboBox}" />
<ToggleButton Style="{DynamicResource SortDirectionToggleButtonStyle}" x:Name="SortDirectionToggleButton" Click="SortDirectionToggleButton_Click" />
<StackPanel
x:Name="SortPanel"
Grid.Row="2"
Grid.Column="0"
Margin="3"
Orientation="Horizontal">
<TextBlock
Margin="6,2,0,0"
HorizontalAlignment="Left"
FontFamily="Microsoft Sans Serif"
FontSize="12"
Foreground="Black"
Text="Sortiert nach" />
<controls:NullItemComboBox
x:Name="SortCombo"
MinWidth="100"
Margin="10,0,0,0"
HorizontalAlignment="Left"
DisplayMemberPath="DisplayName"
FontFamily="Microsoft Sans Serif"
FontSize="12"
SelectionChanged="SortCombo_SelectionChanged"
Style="{DynamicResource SortComboBox}" />
<ToggleButton
x:Name="SortDirectionToggleButton"
Click="SortDirectionToggleButton_Click"
Style="{DynamicResource SortDirectionToggleButtonStyle}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Right">
<CheckBox x:Name="ChkShowArchived" Margin="3" VerticalAlignment="Center" Unchecked="ChkShowArchived_OnUnchecked" />
<CheckBox x:Name="ChkShowOnlyMyObjects" Click="ChkShowOnlyMyObjects_OnClick" Margin="3" VerticalAlignment="Center" Unchecked="ChkShowArchived_OnUnchecked" />
<StackPanel
Grid.Row="2"
Grid.Column="1"
HorizontalAlignment="Right"
Orientation="Horizontal">
<CheckBox
x:Name="ChkShowArchived"
Margin="3"
VerticalAlignment="Center"
Unchecked="ChkShowArchived_OnUnchecked" />
<CheckBox
x:Name="ChkShowOnlyMyObjects"
Margin="3"
VerticalAlignment="Center"
Click="ChkShowOnlyMyObjects_OnClick"
Unchecked="ChkShowArchived_OnUnchecked" />
</StackPanel>
<ListBox x:Name="ObjectListBox" Grid.Row="3" Grid.Column="0" Margin="3" Grid.ColumnSpan="2" ItemContainerStyleSelector="{StaticResource StyleSelector}">
<ListBox
x:Name="ObjectListBox"
Grid.Row="3"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="3"
ItemContainerStyleSelector="{StaticResource StyleSelector}">
<ListBox.ItemsSource>
<MultiBinding Converter="{StaticResource FilterDCConverter}">
<Binding />
@@ -494,19 +796,47 @@
<Binding ElementName="ChkShowArchived" Path="IsChecked" />
<Binding Path="CustomFilter">
<Binding.RelativeSource>
<RelativeSource Mode="FindAncestor" AncestorType="{x:Type detail:MailMergeWindow}" />
<RelativeSource AncestorType="{x:Type detail:MailMergeWindow}" Mode="FindAncestor" />
</Binding.RelativeSource>
</Binding>
</MultiBinding>
</ListBox.ItemsSource>
</ListBox>
<CheckBox x:Name="AlleWaehlenCheckBox" Content="Alle auswählen" Grid.Row="4" Grid.Column="0" Margin="3" Checked="AlleWaehlenCheckBox_OnChecked" Unchecked="AlleWehlenCheckBox_OnUnchecked" />
<StackPanel Orientation="Horizontal" Grid.Row="5" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center">
<Button Margin="3" Click="PreviewBtnClick" Content="Vorschau" IsEnabled="{Binding SelectedForPrinting.Count, Converter={StaticResource CollectionCountToBoolConverter}}" />
<Button Margin="3" Content="Drucken" Click="PrintBtnClick" IsEnabled="{Binding SelectedForPrinting.Count, Converter={StaticResource CollectionCountToBoolConverter}}" />
<CheckBox
x:Name="AlleWaehlenCheckBox"
Grid.Row="4"
Grid.Column="0"
Margin="3"
Checked="AlleWaehlenCheckBox_OnChecked"
Content="Alle auswählen"
Unchecked="AlleWehlenCheckBox_OnUnchecked" />
<StackPanel
Grid.Row="5"
Grid.Column="0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
Margin="3"
Click="PreviewBtnClick"
Content="Vorschau"
IsEnabled="{Binding SelectedForPrinting.Count, Converter={StaticResource CollectionCountToBoolConverter}}" />
<Button
Margin="3"
Click="PrintBtnClick"
Content="Drucken"
IsEnabled="{Binding SelectedForPrinting.Count, Converter={StaticResource CollectionCountToBoolConverter}}" />
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="5" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center">
<Button Margin="3" Content="Abbrechen" Command="Close" />
<StackPanel
Grid.Row="5"
Grid.Column="1"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
Margin="3"
Command="Close"
Content="Abbrechen" />
</StackPanel>
</Grid>
</GroupBox>

View File

@@ -346,6 +346,9 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="430" />
@@ -358,9 +361,26 @@
Margin="3,5,3,5"
Content="{markup:Translate Dokumentationstext in der Zeiterfassung Pflichtfeld}"
IsChecked="{Binding Path=IsServiceRecordNoticeMandatory}" />
<TextBlock
<CheckBox
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Ziele in der Zeiterfassung Pflichtfeld (falls Ziele vorhanden sind)}"
IsChecked="{Binding Path=IsServiceRecordGoalMandatory}" />
<CheckBox
Grid.Row="2"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Bewertung von Zielen in der Zeiterfassung Pflichtfeld (falls vorhanden)}"
IsChecked="{Binding Path=IsServiceRecordRatingMandatory}" />
<CheckBox
Grid.Row="3"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Bei Gruppenbuchungen nur Schnittmenge aller Leistungen anbieten}"
IsChecked="{Binding Path=FilterGroupServiceCategories}" />
<TextBlock
Grid.Row="4"
Grid.Column="0"
Margin="3,5,3,5"
VerticalAlignment="Center"
@@ -368,7 +388,7 @@
Text="{markup:Translate Anzahl Tage des Folgemonats\, nach denen die Zeiterfassungseinträge des vergangenen Monats nicht mehr verändert werden oder neue Zeiterfassungseinträge angelegt werden dürfen (0 für unbegrenzt).}"
TextWrapping="Wrap" />
<dxe:SpinEdit
Grid.Row="1"
Grid.Row="4"
Grid.Column="1"
Height="23"
Margin="3,5,3,5"
@@ -378,7 +398,7 @@
<TextBlock
Grid.Row="2"
Grid.Row="5"
Grid.Column="0"
Margin="3,5,3,5"
VerticalAlignment="Center"
@@ -386,7 +406,7 @@
Text="{markup:Translate Anzahl Tage\, in der die Zeiterfassung erfolgen muss (0 für unbegrenzt)}"
TextWrapping="Wrap" />
<TextBlock
Grid.Row="3"
Grid.Row="6"
Grid.Column="0"
Margin="3,5,3,5"
VerticalAlignment="Center"
@@ -396,7 +416,7 @@
<dxe:SpinEdit
x:Name="AnzTageZeiterfassErfolgt"
Grid.Row="2"
Grid.Row="5"
Grid.Column="1"
Height="23"
Margin="3,5,3,5"
@@ -407,7 +427,7 @@
<dxe:SpinEdit
x:Name="ZeiterfassungsSchwellwert"
Grid.Row="3"
Grid.Row="6"
Grid.Column="1"
Height="23"
Margin="3,5,3,5"
@@ -419,7 +439,7 @@
<TextBlock
Grid.Row="4"
Grid.Row="7"
Grid.Column="0"
Margin="3,5,3,5"
VerticalAlignment="Center"
@@ -428,7 +448,7 @@
TextWrapping="Wrap" />
<ComboBox
x:Name="ComboZeiteinheit"
Grid.Row="4"
Grid.Row="7"
Grid.Column="0"
Grid.ColumnSpan="2"
Height="23"
@@ -438,7 +458,7 @@
<CheckBox
Grid.Row="6"
Grid.Row="8"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Enddatum anzeigen}"
@@ -446,7 +466,7 @@
<CheckBox
x:Name="EnableArbeitszeiterfassung"
Grid.Row="7"
Grid.Row="9"
Grid.ColumnSpan="2"
Margin="3,20,3,5"
Checked="EnableArbeitszeiterfassung_Checked"
@@ -455,14 +475,14 @@
Unchecked="EnableArbeitszeiterfassung_Checked" />
<CheckBox
x:Name="EnableAutomaticPauses"
Grid.Row="8"
Grid.Row="10"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Automatischer Pausenabzug}"
IsChecked="{Binding Path=EnableAutomaticPauses}" />
<CheckBox
x:Name="EnableRestTimeWarning"
Grid.Row="9"
Grid.Row="11"
Grid.ColumnSpan="2"
Margin="3,5,3,5"
Content="{markup:Translate Warnung bei nicht einhalten der Ruhezeit}"
@@ -470,7 +490,7 @@
<TextBlock
x:Name="TextBlockShowWarning"
Grid.Row="10"
Grid.Row="12"
Grid.Column="0"
Margin="3,5,3,5"
VerticalAlignment="Center"
@@ -479,7 +499,7 @@
TextWrapping="Wrap" />
<dxe:SpinEdit
x:Name="SpinEditShowWarning"
Grid.Row="10"
Grid.Row="12"
Grid.Column="1"
Height="23"
Margin="3,5,3,5"

View File

@@ -1,12 +1,15 @@
<Window x:Class="BeWo.View.Detail.ModalViewWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
WindowStartupLocation="CenterOwner"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="CanResizeWithGrip">
<Grid x:Name="rootGrid">
</Grid>
<Window
x:Class="BeWo.View.Detail.ModalViewWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="CanResizeWithGrip"
WindowStartupLocation="CenterOwner"
WindowStyle="None">
<Grid x:Name="rootGrid" />
</Window>

View File

@@ -236,7 +236,7 @@ namespace BeWo.View.Detail.Report
}
else if (BeWoApp.LoggedOnUser.HasRight(UserRightType.TeamView_ViewAll))
{
//Wenn man das Recht hat alle Team zu sehen muss man auch das Recht haben alle Klienten zu sehen.
//Wenn man das Recht hat alle Teams zu sehen, muss man auch das Recht haben alle Klienten zu sehen.
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
{
filterList.Add(new QBFilterItem(QBFilterEnum.TeamAuswahl));

View File

@@ -37,6 +37,7 @@ using DevExpress.Xpf.Editors;
using System.Windows.Navigation;
using System.Windows.Documents;
using System.Collections.ObjectModel;
using BeWo.View.Windows;
namespace BeWo.View.Detail
{

View File

@@ -194,7 +194,7 @@ namespace BeWo.View.Detail
var newName = pName;
var counter = 1;
while(ViewModel.VMList.Any(a => a.Name.Equals(newName)))
while(ViewModel.VMList.Any(a => a.Name != null && a.Name.Equals(newName)))
{
newName = pName + " " + counter;
counter++;

View File

@@ -1,250 +1,545 @@
<localView:BeWoView x:Class="BeWo.View.Detail.UserView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:localView="clr-namespace:BeWo.View" xmlns:localSearchView="clr-namespace:BeWo.View.Search" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<Grid>
<uc:ShadowChrome>
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom">
<Image Source="..\..\Ressources\Icons\UserBusinessMaleDisabled.png" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" Width="32">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="5" />
</TransformGroup>
</Image.RenderTransform>
</Image>
<TextBox Text="{Binding Path=Employee, Mode=OneWay}" Margin="10,0,0,0" Background="{x:Null}" Foreground="#FFFFFFFF" FontSize="22" BorderBrush="{x:Null}" VerticalAlignment="Bottom" Padding="0,0,0,0" />
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,3,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Fill="{DynamicResource UserContentBrush}" Height="6" />
<TabControl x:Name="root" Grid.Row="1" Style="{StaticResource ObjectEditTabControl}" BorderThickness="0,0,0,0" Padding="4,4,4,4">
<TabItem Header="Details" IsSelected="True">
<localView:BeWoView
x:Class="BeWo.View.Detail.UserView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
Width="Auto"
Height="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Focusable="True">
<Grid>
<uc:ShadowChrome>
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox.Header>
<StackPanel VerticalAlignment="Bottom" Orientation="Horizontal">
<Image
Width="32"
RenderTransformOrigin="0.5,0.5"
Source="..\..\Ressources\Icons\UserBusinessMaleDisabled.png"
Stretch="Uniform">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="5" />
</TransformGroup>
</Image.RenderTransform>
</Image>
<TextBox
Margin="10,0,0,0"
Padding="0,0,0,0"
VerticalAlignment="Bottom"
Background="{x:Null}"
BorderBrush="{x:Null}"
FontSize="22"
Foreground="#FFFFFFFF"
Text="{Binding Path=Employee, Mode=OneWay}" />
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,3,0,0" Background="{DynamicResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle Height="6" Fill="{DynamicResource UserContentBrush}" />
<TabControl
x:Name="root"
Grid.Row="1"
Padding="4,4,4,4"
BorderThickness="0,0,0,0"
Style="{StaticResource ObjectEditTabControl}">
<TabItem Header="Details" IsSelected="True">
<Grid Name="grid_root" Grid.IsSharedSizeScope="True" Width="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="450" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid
Name="grid_root"
Width="Auto"
Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="450" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="{t:Translate MitarbeiterSingular}" Grid.Row="0" />
<uc:PopUpEdit IsReadOnly="True" Grid.Row="0" Grid.Column="1"
DeleteButtonVisibility="Visible" Name="popupedit_employee"
PopUpClick="popupedit_employee_PopUpClick" DeleteClick="popupedit_employee_DeleteClick"
Text="{Binding Path=EmployeeString, Mode=OneWay}" Height="23" Margin="3" Cursor="Arrow"
HorizontalAlignment="Stretch" Width="Auto"
PreviewMouseDoubleClick="Popupedit_employee_OnPreviewMouseDoubleClick"/>
<Label Grid.Row="0" Content="{t:Translate MitarbeiterSingular}" />
<uc:PopUpEdit
Name="popupedit_employee"
Grid.Row="0"
Grid.Column="1"
Width="Auto"
Height="23"
Margin="3"
HorizontalAlignment="Stretch"
Cursor="Arrow"
DeleteButtonVisibility="Visible"
DeleteClick="popupedit_employee_DeleteClick"
IsReadOnly="True"
PopUpClick="popupedit_employee_PopUpClick"
PreviewMouseDoubleClick="Popupedit_employee_OnPreviewMouseDoubleClick"
Text="{Binding Path=EmployeeString, Mode=OneWay}" />
<Label x:Name="label_LicenseTypes" Content="{t:Translate Lizenztyp}" Grid.Row="1" />
<ComboBox x:Name="comboBox_LicenseTypes" Grid.Row="1" Grid.Column="1" Margin="3" Width="200" Height="23" HorizontalAlignment="Left" ItemsSource="{Binding Path=AllLicenseTypes}" SelectedValue="{Binding Path=LicenseType, Mode=TwoWay}" />
<Label
x:Name="label_LicenseTypes"
Grid.Row="1"
Content="{t:Translate Lizenztyp}" />
<ComboBox
x:Name="comboBox_LicenseTypes"
Grid.Row="1"
Grid.Column="1"
Width="200"
Height="23"
Margin="3"
HorizontalAlignment="Left"
ItemsSource="{Binding Path=AllLicenseTypes}"
SelectedValue="{Binding Path=LicenseType, Mode=TwoWay}" />
</Grid>
<GroupBox Grid.Row="1" Header="Zugangsdaten" Padding="5" Width="Auto" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,15,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="1"
Width="Auto"
Margin="0,15,0,0"
Padding="5"
Header="Zugangsdaten"
Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Content="Login Name" />
<TextBox VerticalAlignment="Top" Grid.Column="1" Height="23" Margin="3" Text="{Binding Path=LoginName, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Content="Login Name" />
<TextBox
Grid.Column="1"
Height="23"
Margin="3"
VerticalAlignment="Top"
Text="{Binding Path=LoginName, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
<Grid Name="grid_passworNewUser" Grid.Column="1" Visibility="{Binding Path=IsNew, Converter={StaticResource BoolVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="Passwort" />
<PasswordBox Name="passwordbox_password" Grid.Column="1" Height="23" Margin="3" />
<Label Grid.Row="1" Content="Passwort wiederholen" />
<PasswordBox Name="passwordbox_passwordRepeat" Grid.Column="1" Grid.Row="1" Height="23" Margin="3" />
</Grid>
<Grid
Name="grid_passworNewUser"
Grid.Column="1"
Visibility="{Binding Path=IsNew, Converter={StaticResource BoolVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Content="Passwort" />
<PasswordBox
Name="passwordbox_password"
Grid.Column="1"
Height="23"
Margin="3" />
<Label Grid.Row="1" Content="Passwort wiederholen" />
<PasswordBox
Name="passwordbox_passwordRepeat"
Grid.Row="1"
Grid.Column="1"
Height="23"
Margin="3" />
</Grid>
<Grid Grid.Column="1" Name="grid_passwordExistingUser" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Content="Passwort" IsEnabled="False" />
<PasswordBox Grid.Column="1" Height="23" Margin="3" IsEnabled="False" Password="xxxxxxxxxx" />
<Button Name="button_changePassword" Grid.Column="2" Height="23" HorizontalAlignment="Right" Margin="3" Content="Passwort ändern" Click="button_changePassword_Click" />
</Grid>
<Grid
Name="grid_passwordExistingUser"
Grid.Column="1"
Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Content="Passwort" IsEnabled="False" />
<PasswordBox
Grid.Column="1"
Height="23"
Margin="3"
IsEnabled="False"
Password="xxxxxxxxxx" />
<Button
Name="button_changePassword"
Grid.Column="2"
Height="23"
Margin="3"
HorizontalAlignment="Right"
Click="button_changePassword_Click"
Content="Passwort ändern" />
</Grid>
</Grid>
</GroupBox>
</Grid>
</GroupBox>
<GroupBox Grid.Row="2" Grid.ColumnSpan="2" Header="{markup:Translate Benutzergruppen}" Padding="5" Style="{DynamicResource ObjectEditGroupBox}" Margin="0,15,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label HorizontalAlignment="Center" Content="gewählte Gruppen" />
<Label HorizontalAlignment="Center" Grid.Column="3" Content="mögliche Gruppen" />
<ListBox Name="listbox_groups" Grid.RowSpan="2" Grid.Row="1" ItemsSource="{Binding Path=UserGroups}" IsSynchronizedWithCurrentItem="True" MinHeight="100">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" Margin="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label VerticalAlignment="Center" Margin="3 0" Padding="0" IsHitTestVisible="False" Content="{Binding Path=Name}" />
<ToggleButton Grid.Column="1" HorizontalAlignment="Right" Width="14" Height="14" Background="White" Template="{StaticResource ExpanderToggleButton}" IsChecked="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Mode=OneWayToSource}" VerticalAlignment="Center" Visibility="{Binding Path=Description, Converter={StaticResource ObjectVisibilityConverter} }" />
<TextBox HorizontalAlignment="Left" Visibility="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Converter={StaticResource BoolVisibilityConverter}}" Grid.Row="1" Grid.ColumnSpan="2" IsHitTestVisible="False" IsReadOnly="True" Cursor="Arrow" TextWrapping="WrapWithOverflow" Margin="10 3" Text="{Binding Path=Description}" BorderThickness="0" Background="Transparent" FontSize="10" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
<Button Name="button_addGroup" Grid.Column="1" VerticalAlignment="Bottom" Content="&lt;" FontWeight="Bold" Width="25" Grid.Row="1" Margin="3" Click="button_addGroup_Click" IsEnabled="{Binding Path=SelectedIndex, ElementName=listbox_possibleGroups, Converter={StaticResource IndexBoolConverter}}" Height="25" />
<Button Name="button_removeGroup" Grid.Column="1" Grid.Row="2" VerticalAlignment="Top" Content="&gt;" FontWeight="Bold" Width="25" Margin="3" Click="button_removeGroup_Click" IsEnabled="{Binding Path=SelectedIndex, ElementName=listbox_groups, Converter={StaticResource IndexBoolConverter}}" Height="25" />
<ListBox Name="listbox_possibleGroups" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding Path=PossibleGroups}" IsSynchronizedWithCurrentItem="True" MinHeight="100">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" Margin="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label VerticalAlignment="Center" Margin="3 0" Padding="0" IsHitTestVisible="False" Content="{Binding Path=Name}" />
<ToggleButton Grid.Column="1" HorizontalAlignment="Right" Width="14" Height="14" Background="White" Template="{StaticResource ExpanderToggleButton}" IsChecked="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Mode=OneWayToSource}" VerticalAlignment="Center" Visibility="{Binding Path=Description, Converter={StaticResource ObjectVisibilityConverter} }" />
<TextBox HorizontalAlignment="Left" Visibility="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Converter={StaticResource BoolVisibilityConverter}}" Grid.Row="1" Grid.ColumnSpan="2" IsHitTestVisible="False" IsReadOnly="True" Cursor="Arrow" TextWrapping="WrapWithOverflow" Margin="10 3" Text="{Binding Path=Description}" BorderThickness="0" Background="Transparent" FontSize="10" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</Grid>
</GroupBox>
<GroupBox
Grid.Row="2"
Grid.ColumnSpan="2"
Margin="0,15,0,0"
Padding="5"
Header="{markup:Translate Benutzergruppen}"
Style="{DynamicResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label HorizontalAlignment="Center" Content="gewählte Gruppen" />
<Label
Grid.Column="3"
HorizontalAlignment="Center"
Content="mögliche Gruppen" />
<ListBox
Name="listbox_groups"
Grid.Row="1"
Grid.RowSpan="2"
MinHeight="100"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=UserGroups}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="3" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label
Margin="3,0"
Padding="0"
VerticalAlignment="Center"
Content="{Binding Path=Name}"
IsHitTestVisible="False" />
<ToggleButton
Grid.Column="1"
Width="14"
Height="14"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="White"
IsChecked="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Mode=OneWayToSource}"
Template="{StaticResource ExpanderToggleButton}"
Visibility="{Binding Path=Description, Converter={StaticResource ObjectVisibilityConverter}}" />
<TextBox
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="10,3"
HorizontalAlignment="Left"
Background="Transparent"
BorderThickness="0"
Cursor="Arrow"
FontSize="10"
IsHitTestVisible="False"
IsReadOnly="True"
Text="{Binding Path=Description}"
TextWrapping="WrapWithOverflow"
Visibility="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Converter={StaticResource BoolVisibilityConverter}}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
<Button
Name="button_addGroup"
Grid.Row="1"
Grid.Column="1"
Width="25"
Height="25"
Margin="3"
VerticalAlignment="Bottom"
Click="button_addGroup_Click"
Content="&lt;"
FontWeight="Bold"
IsEnabled="{Binding Path=SelectedIndex, ElementName=listbox_possibleGroups, Converter={StaticResource IndexBoolConverter}}" />
<Button
Name="button_removeGroup"
Grid.Row="2"
Grid.Column="1"
Width="25"
Height="25"
Margin="3"
VerticalAlignment="Top"
Click="button_removeGroup_Click"
Content="&gt;"
FontWeight="Bold"
IsEnabled="{Binding Path=SelectedIndex, ElementName=listbox_groups, Converter={StaticResource IndexBoolConverter}}" />
<ListBox
Name="listbox_possibleGroups"
Grid.Row="1"
Grid.RowSpan="2"
Grid.Column="2"
MinHeight="100"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=PossibleGroups}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="3" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label
Margin="3,0"
Padding="0"
VerticalAlignment="Center"
Content="{Binding Path=Name}"
IsHitTestVisible="False" />
<ToggleButton
Grid.Column="1"
Width="14"
Height="14"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="White"
IsChecked="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Mode=OneWayToSource}"
Template="{StaticResource ExpanderToggleButton}"
Visibility="{Binding Path=Description, Converter={StaticResource ObjectVisibilityConverter}}" />
<TextBox
Grid.Row="1"
Grid.ColumnSpan="2"
Margin="10,3"
HorizontalAlignment="Left"
Background="Transparent"
BorderThickness="0"
Cursor="Arrow"
FontSize="10"
IsHitTestVisible="False"
IsReadOnly="True"
Text="{Binding Path=Description}"
TextWrapping="WrapWithOverflow"
Visibility="{Binding Path=Tag, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}, Converter={StaticResource BoolVisibilityConverter}}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="Control.HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</Grid>
</GroupBox>
<Popup FocusManager.IsFocusScope="True" Grid.Row="3" Margin="10" Grid.ColumnSpan="2" Name="popup_employee" StaysOpen="False" Placement="MousePoint" Width="370" Height="250" Closed="popup_Closed" Opened="popup_Opened">
<localSearchView:EmployeeSearchView ItemSelected="EmployeeSearchView_EmployeeSelected" x:Name="employeeSearchView" />
</Popup>
<Popup
Name="popup_employee"
Grid.Row="3"
Grid.ColumnSpan="2"
Width="370"
Height="250"
Margin="10"
Closed="popup_Closed"
FocusManager.IsFocusScope="True"
Opened="popup_Opened"
Placement="MousePoint"
StaysOpen="False">
<localSearchView:EmployeeSearchView x:Name="employeeSearchView" ItemSelected="EmployeeSearchView_EmployeeSelected" />
</Popup>
<Popup FocusManager.IsFocusScope="True" Grid.Row="3" Margin="10" Grid.ColumnSpan="2" Name="popup_changePassword" StaysOpen="False" Placement="MousePoint" Closed="popup_Closed" Opened="popup_Opened">
<Border Background="{StaticResource ObjectEditBackgroundBrush}" BorderBrush="Black" BorderThickness="1">
<Grid Name="grid_passworEditExistingUser" Grid.Column="1" Margin="20 3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Popup
Name="popup_changePassword"
Grid.Row="3"
Grid.ColumnSpan="2"
Margin="10"
Closed="popup_Closed"
FocusManager.IsFocusScope="True"
Opened="popup_Opened"
Placement="MousePoint"
StaysOpen="False">
<Border
Background="{StaticResource ObjectEditBackgroundBrush}"
BorderBrush="Black"
BorderThickness="1">
<Grid
Name="grid_passworEditExistingUser"
Grid.Column="1"
Margin="20,3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Name="textblock_editFailures" Grid.ColumnSpan="2" Foreground="Red" FontSize="12" TextWrapping="Wrap" Margin="3 3 3 10" />
<TextBlock
Name="textblock_editFailures"
Grid.ColumnSpan="2"
Margin="3,3,3,10"
FontSize="12"
Foreground="Red"
TextWrapping="Wrap" />
<Label Name="lblOldPassword" Content="Altes Passwort" Grid.Row="1" />
<PasswordBox Name="passwordbox_editOldPassword" Grid.Column="1" Grid.Row="1" Height="23" Margin="3" MinWidth="180" />
<Label
Name="lblOldPassword"
Grid.Row="1"
Content="Altes Passwort" />
<PasswordBox
Name="passwordbox_editOldPassword"
Grid.Row="1"
Grid.Column="1"
Height="23"
MinWidth="180"
Margin="3" />
<Label Content="Neues Passwort" Grid.Row="2" Margin="0 10 0 0" />
<PasswordBox Name="passwordbox_editPassword" Grid.Column="1" Grid.Row="2" Height="23" Margin="3 10 3 3" PasswordChanged="Passwordbox_editPassword_OnPasswordChanged"/>
<Label Grid.Row="3" Content="Passwort wiederholen" />
<PasswordBox Name="passwordbox_editPasswordRepeat" Grid.Column="1" Grid.Row="3" Height="23" Margin="3" />
<!-- Hier Anzeige Für passwortStärke -->
<Label Name="passwordbox_StaerkeAnzeige" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Left" Visibility="Hidden"/>
<Grid Grid.IsSharedSizeScope="True" Grid.ColumnSpan="2" Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="but" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="but" />
</Grid.ColumnDefinitions>
<Button Name="button_saveEditPassword" Margin="3 20 3 10" Height="23" HorizontalAlignment="Stretch" Click="button_saveEditPassword_Click" Content="Änderung speichern" Padding="3 0" />
<Button Name="button_cancelEditPassword" Margin="3 20 3 10" Height="23" Grid.Column="2" HorizontalAlignment="Stretch" Click="button_cancelEditPassword_Click" Content="Abbrechen" Padding="3 0" />
</Grid>
</Grid>
</Border>
</Popup>
<Label
Grid.Row="2"
Margin="0,10,0,0"
Content="Neues Passwort" />
<PasswordBox
Name="passwordbox_editPassword"
Grid.Row="2"
Grid.Column="1"
Height="23"
Margin="3,10,3,3"
PasswordChanged="Passwordbox_editPassword_OnPasswordChanged" />
<Label Grid.Row="3" Content="Passwort wiederholen" />
<PasswordBox
Name="passwordbox_editPasswordRepeat"
Grid.Row="3"
Grid.Column="1"
Height="23"
Margin="3" />
</Grid>
</TabItem>
<TabItem Header="Dokumente" Name="tabitem_documents" Selector.Selected="tabitem_documents_Selected" />
<!-- Hier Anzeige Für passwortStärke -->
<Label
Name="passwordbox_StaerkeAnzeige"
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="2"
HorizontalAlignment="Left"
Visibility="Hidden" />
</TabControl>
<Border Grid.Row="2" Grid.ColumnSpan="3" Height="40" Margin="0,10,0,0" VerticalAlignment="Stretch" Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#19000000" Offset="0" />
<GradientStop Color="#33FFFFFF" Offset="1" />
</LinearGradientBrush>
</Border.OpacityMask>
<Grid
Grid.Row="5"
Grid.ColumnSpan="2"
Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="but" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="but" />
</Grid.ColumnDefinitions>
<Button
Name="button_saveEditPassword"
Height="23"
Margin="3,20,3,10"
Padding="3,0"
HorizontalAlignment="Stretch"
Click="button_saveEditPassword_Click"
Content="Änderung speichern" />
<Button
Name="button_cancelEditPassword"
Grid.Column="2"
Height="23"
Margin="3,20,3,10"
Padding="3,0"
HorizontalAlignment="Stretch"
Click="button_cancelEditPassword_Click"
Content="Abbrechen" />
</Grid>
</Grid>
</Border>
</Popup>
</Border>
<StackPanel Grid.ColumnSpan="3" Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Center" Height="Auto" Margin="5,10,0,0" HorizontalAlignment="Right">
<Button x:Name="btnSave" Content="Speichern" Margin="0,0,2,0" Command="ApplicationCommands.Save" Height="25" />
<Button x:Name="btnClose" Content="Schließen" Margin="0,0,3,0" Command="ApplicationCommands.Close" Height="25" />
</StackPanel>
</Grid>
</GroupBox>
</uc:ShadowChrome>
</Grid>
</Grid>
</TabItem>
<TabItem
Name="tabitem_documents"
Header="Dokumente"
Selector.Selected="tabitem_documents_Selected" />
</TabControl>
<Border
Grid.Row="2"
Grid.ColumnSpan="3"
Height="40"
Margin="0,10,0,0"
VerticalAlignment="Stretch"
Background="#FF000000">
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#19000000" />
<GradientStop Offset="1" Color="#33FFFFFF" />
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
<StackPanel
Grid.Row="2"
Grid.ColumnSpan="3"
Height="Auto"
Margin="5,10,0,0"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button
x:Name="btnSave"
Height="25"
Margin="0,0,2,0"
Command="ApplicationCommands.Save"
Content="Speichern" />
<Button
x:Name="btnClose"
Height="25"
Margin="0,0,3,0"
Command="ApplicationCommands.Close"
Content="Schließen" />
</StackPanel>
</Grid>
</GroupBox>
</uc:ShadowChrome>
</Grid>
</localView:BeWoView>

View File

@@ -215,12 +215,11 @@ namespace BeWo.View.Detail.Zeiterfassung
if(!pSCViewModel.EditAllowed)
{
GridOben.IsEnabled = false;
TextboxNotice.IsEnabled = false;
TextboxNotice2.IsEnabled = false;
TextboxNotice3.IsEnabled = false;
TextboxNotice4.IsEnabled = false;
TextboxNotice5.IsEnabled = false;
TextboxNotice.IsReadOnly = true;
TextboxNotice2.IsReadOnly = true;
TextboxNotice3.IsReadOnly = true;
TextboxNotice4.IsReadOnly = true;
TextboxNotice5.IsReadOnly = true;
btnSave.Visibility = Visibility.Hidden;
}
@@ -427,7 +426,7 @@ namespace BeWo.View.Detail.Zeiterfassung
{
var copyVm = _ServiceRecordVM.Clone();
copyVm.DataContract.ServiceRecordOid = _ServiceRecordVM.DataContract.ServiceRecordOid;
lValid = BeWoUtils.ValidateServiceRecordVM(copyVm, ViewModel.StatisticsDC, _ServiceRecordVM.ChoosenNode, false, _ServiceRecordVM.Employee, null, null);
lValid = BeWoUtils.ValidateServiceRecordVM(copyVm, ViewModel.StatisticsDC, _ServiceRecordVM.ChoosenNode, false, _ServiceRecordVM.Employee, null, null, 1);
if(lValid)
{

View File

@@ -217,11 +217,11 @@ namespace BeWo.View.Detail.Zeiterfassung
btnSave.Visibility = Visibility.Hidden;
TextboxNotice.IsEnabled = false;
TextboxNotice2.IsEnabled = false;
TextboxNotice3.IsEnabled = false;
TextboxNotice4.IsEnabled = false;
TextboxNotice5.IsEnabled = false;
TextboxNotice.IsReadOnly = true;
TextboxNotice2.IsReadOnly = true;
TextboxNotice3.IsReadOnly = true;
TextboxNotice4.IsReadOnly = true;
TextboxNotice5.IsReadOnly = true;
}
@@ -285,7 +285,7 @@ namespace BeWo.View.Detail.Zeiterfassung
var employeeOids = multiEmployeeControl.SelectedEmployees.Select(compactEmployeeDc => compactEmployeeDc.EmployeeOid).ToList();
var cb2scOids = (from scDc in multiSupportConceptControl.SelectedSupportConcepts where scDc.CostBearerRelOids != null && scDc.CostBearerRelOids.Count > 0 select scDc.CostBearerRelOids[0]).ToList();
int index = 1;
foreach (var sc in multiSupportConceptControl.SelectedSupportConcepts)
{
if (lValid)
@@ -293,7 +293,7 @@ namespace BeWo.View.Detail.Zeiterfassung
var vm = SupportConceptService.CreateFlatSupportConceptItem(sc, null);
var copyVm = _ServiceRecordVM.Clone();
copyVm.DataContract.ServiceRecordOid = _ServiceRecordVM.DataContract.ServiceRecordOid;
lValid = BeWoUtils.ValidateServiceRecordVM(copyVm, null, vm, false, _ViewModel.SelectedEmployee, employeeOids, cb2scOids);
lValid = BeWoUtils.ValidateServiceRecordVM(copyVm, null, vm, false, _ViewModel.SelectedEmployee, employeeOids, cb2scOids, index++);
}
}

View File

@@ -125,7 +125,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<dxg:GridControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" x:Name="datagrid_ServiceRecordHistory">
<dxg:GridControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" x:Name="DataGrid_ServiceRecordHistory">
<dxg:GridControl.Columns>
<dxg:GridColumn AllowEditing="False" FieldName="TimeStamp" Header="Änderungsdatum" ReadOnly="True" EditSettings="{dxe:DateSettings DisplayFormat=dd.MM.yyyy HH:mm}" x:Name="AenderungsdatumColumn" />
<dxg:GridColumn AllowEditing="False" FieldName="InsUser" Header="Geändert von" ReadOnly="True" />

View File

@@ -1,9 +1,11 @@
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using BS.Shared.DataContracts;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Grid;
namespace BeWo.View.Detail.Zeiterfassung
{
@@ -19,7 +21,7 @@ namespace BeWo.View.Detail.Zeiterfassung
AenderungsdatumColumn.Visible = !BeWoApp.AppSettings.HideServiceRecordInsertedByAndInsertedOn;
InitializeComponent();
datagrid_ServiceRecordHistory.ItemsSource = historyList;
DataGrid_ServiceRecordHistory.ItemsSource = historyList;
Focus();

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -52,6 +52,8 @@ using VerticalAlignment = System.Windows.VerticalAlignment;
using DependencyObject = System.Windows.DependencyObject;
using BeWo.AI.View;
using BeWo.AI;
using BeWo.View.Detail.AI;
using BeWo.View.Windows;
namespace BeWo.View.Detail.Zeiterfassung
{
@@ -1564,9 +1566,10 @@ namespace BeWo.View.Detail.Zeiterfassung
var cb2scOids = (from scDc in multiSupportConceptControl.SelectedSupportConcepts where scDc.CostBearerRelOids != null && scDc.CostBearerRelOids.Count > 0 select scDc.CostBearerRelOids[0]).ToList();
int index = 1;
foreach(var node in from dc in multiSupportConceptControl.SelectedSupportConcepts where lValid select SupportConceptService.CreateFlatSupportConceptItem(dc, null))
{
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, null, node, WithoutClient, ViewModel.SelectedEmployee, employeeOids, cb2scOids);
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, null, node, WithoutClient, ViewModel.SelectedEmployee, employeeOids, cb2scOids, index++);
}
if(lValid)
@@ -1791,12 +1794,13 @@ namespace BeWo.View.Detail.Zeiterfassung
}
}
int index = 1;
foreach(var selectedSupportConcept in multiSupportConceptControl.SelectedSupportConcepts)
{
if(lValid)
{
FlatSupportConceptTreeNodeDC node = SupportConceptService.CreateFlatSupportConceptItem(selectedSupportConcept, null);
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, null, node, true, ViewModel.SelectedEmployee, employeeOids, cb2scOids);
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, null, node, true, ViewModel.SelectedEmployee, employeeOids, cb2scOids, index++);
}
}
//lValid = ValidateServiceRecordVMClientX(ViewModel.PrototypeVM, node, true);
@@ -1901,7 +1905,7 @@ namespace BeWo.View.Detail.Zeiterfassung
if (lValid)
{
lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, ViewModel.StatisticsDC, selectedNode,
WithoutClient, ViewModel.SelectedEmployee, null, null);
WithoutClient, ViewModel.SelectedEmployee, null, null, 1);
if (lValid)
{
@@ -2365,8 +2369,8 @@ namespace BeWo.View.Detail.Zeiterfassung
ButtonZeiterfassungErstellen.Visibility = Visibility.Collapsed;
multiSupportConceptControl.Visibility = Visibility.Visible;
multiEmployeeControl.Visibility = Visibility.Visible;
panelGoalLabel.Visibility = Visibility.Collapsed;
panelGoalTree.Visibility = Visibility.Collapsed;
//panelGoalLabel.Visibility = Visibility.Collapsed;
//panelGoalTree.Visibility = Visibility.Collapsed;
SetEmployeeComboVisibility();
SetRebookingButtonVisibility();
@@ -2403,8 +2407,8 @@ namespace BeWo.View.Detail.Zeiterfassung
ButtonZeiterfassungErstellen.Visibility = BeWoApp.AppSettings.ShowKlientenBetreuungszeiten ? Visibility.Visible : Visibility.Collapsed;
multiSupportConceptControl.Visibility = Visibility.Collapsed;
multiEmployeeControl.Visibility = Visibility.Collapsed;
panelGoalLabel.Visibility = Visibility.Visible;
panelGoalTree.Visibility = Visibility.Visible;
//panelGoalLabel.Visibility = Visibility.Visible;
//panelGoalTree.Visibility = Visibility.Visible;
SetEmployeeComboVisibility();
SetRebookingButtonVisibility();
@@ -3870,7 +3874,24 @@ namespace BeWo.View.Detail.Zeiterfassung
}
else
{
text = Translator.Translate("Sind Sie sicher, dass Sie {0} Einträge umbuchen möchten?", records.Count);
int realCount = 0;
//Prüfen, ob es Gruppen gibt, die von mehreren MAs betreut werden. Denn diese werden mehrfach gezählt, was zu Verwirrung geführt hat.
Dictionary<long, bool> groupDict = new Dictionary<long, bool>();
foreach (var item in records)
{
if (!item.GroupOid.HasValue || !groupDict.ContainsKey(item.GroupOid.Value))
{
realCount++;
if (item.GroupOid.HasValue && !groupDict.ContainsKey(item.GroupOid.Value))
{
groupDict.Add(item.GroupOid.Value, true);
}
}
}
text = Translator.Translate("Sind Sie sicher, dass Sie {0} Einträge umbuchen möchten?", realCount);
}
if (MessageBox.Show(text, Translator.Translate("Umbuchen"), MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.OK)
{
@@ -5036,7 +5057,6 @@ namespace BeWo.View.Detail.Zeiterfassung
private void OpenAiChat(object sender, MouseButtonEventArgs e)
{
var node = ViewModel.SelectedCustomerNode;
long c2sOid = 0;
@@ -5071,7 +5091,48 @@ namespace BeWo.View.Detail.Zeiterfassung
ComboBoxTreeViewControl.TreeViewSourceList = ViewModel.PrototypeVM.GoalTree;
}
}
private void Ai_Button_Click(object sender, RoutedEventArgs e)
{
var records = GetVisibleRecordVMs();
var context = ViewModel.GetVisibleInformationReferences(records);
MainControl.WindowService.ShowAiConversationWindow(UIContext.ServiceRecord, context);
}
private void Ai_Button2_Click(object sender, RoutedEventArgs e)
{
var records = GetVisibleRecordVMs();
var context = ViewModel.GetVisibleInformationReferences(records);
MainControl.WindowService.ShowAiConversationModalViewWindow(UIContext.ServiceRecord, context);
}
private IEnumerable<ServiceRecordVM> GetVisibleRecordVMs()
{
var list = new List<ServiceRecordVM>();
var items = srListBox.ItemsSource as IList<ServiceRecordVM>;
if (items != null)
{
for (int i = 0; i < items.Count; i++)
{
var vm = srListBox.Items[i] as ServiceRecordVM;
//if (srListBox.IsRowVisible(i))
//{
// var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
if (vm != null)
{
list.Add(vm);
}
//}
}
}
return list;
}
}
//public class RowBackgroundHelper
//{

View File

@@ -1,6 +1,9 @@
using BeWo.ServiceProxy;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.View.Windows;
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Translation;
using DevExpress.Utils;
@@ -10,6 +13,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;
namespace BeWo.View.Document
@@ -35,8 +39,9 @@ namespace BeWo.View.Document
view.ButtonCancelClicked += () => beWoWindow.Close();
view.ButtonCreateForSelectionClicked += () =>
{
PrintTemplate(view.SelectedTemplate, objectTid, objectOid);
beWoWindow.Close();
};
beWoWindow.ShowDialog();
@@ -116,7 +121,7 @@ namespace BeWo.View.Document
foreach (TreeListNode node in nodes)
{
var docVm = node.Content as DocumentTreeItemVM;
if (docVm != null && docVm.DocTreeItemOid.HasValue && docVm.DocTreeItemOid == template.Parent)
if (docVm != null && docVm.DataContract.Dokumentvorlage == null && docVm.DocTreeItemOid.HasValue && docVm.DocTreeItemOid == template.Parent)
{
return node;
}
@@ -261,6 +266,40 @@ namespace BeWo.View.Document
}
private static void PrintTemplate(DokumentvorlageDC vorlage, TableID objectTid, long objectOid)
{
string url = GenerateURL(vorlage.DokumentvorlageOid.Value, objectTid, new List<long> { objectOid });
BeWoUtils.NavigateToReportUri(url, vorlage.Name);
}
public static string GenerateURL(long vorlage, TableID objectTid, List<long> objectOids)
{
string url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?";
url += "&vorlage=" + vorlage;
url += "&obj=";
foreach (var oid in objectOids)
{
if (objectOids.IndexOf(oid) == objectOids.Count - 1)
url += oid;
else
url += oid + ",";
}
url += "&table=" + (int)objectTid;
url += "&type=" + Utils.EnumName(ReportTypes.VorlagenReport);
url = BeWoWpfUtils.GetHTMLEncodedURL(url);
return url;
}
private static BitmapImage LoadImage(string imageName)
{
if (String.IsNullOrEmpty(imageName))

View File

@@ -5,6 +5,7 @@
xmlns:controls="clr-namespace:BeWo.View.Controls"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol"
@@ -419,7 +420,7 @@
<DataTemplate>
<Button
Width="20"
Height="20"
Height="23"
VerticalAlignment="Center"
Click="EditButton_Click"
Content="!"
@@ -515,12 +516,19 @@
dx:ThemeManager.ThemeName="Office2010Black"
DefaultSorting="Name">
<dxg:TreeListControl.Columns>
<dxg:TreeListColumn AllowSorting="True" FieldName="Name" />
<dxg:TreeListColumn AllowSorting="True" FieldName="Name" AllowEditing="False">
<dxg:TreeListColumn.CellTemplate>
<DataTemplate>
<dxe:TextEdit x:Name="PART_Editor" EditMode="InplaceActive" Text="{Binding Path=DataContext.RowData.Row.Name, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}, UpdateSourceTrigger=PropertyChanged}"
AcceptsReturn="False" AcceptsTab="False" TextTrimming="WordEllipsis" TextWrapping="NoWrap" SelectAllOnGotFocus="True" SelectAllOnMouseUp="True" />
</DataTemplate>
</dxg:TreeListColumn.CellTemplate>
</dxg:TreeListColumn>
</dxg:TreeListControl.Columns>
<dxg:TreeListControl.View>
<dxg:TreeListView
x:Name="TemplateTreeView"
AllowEditing="False"
AllowEditing="True"
AutoWidth="True"
ContextMenu="{StaticResource templatecm}"
FocusedRowChanged="TemplateTreeView_FocusedRowChanged"
@@ -529,7 +537,8 @@
LostFocus="TemplateTreeView_LostFocus"
NodeExpanding="templateTreeListView_NodeExpanding"
ParentFieldName="Binding DocumentTreeItemVM.ParentOid"
PreviewMouseLeftButtonDown="TemplateTreeView_PreviewMouseLeftButtonDown"
PreviewMouseLeftButtonDown="TemplateTreeView_PreviewMouseButtonDown"
PreviewMouseRightButtonDown="TemplateTreeView_PreviewMouseButtonDown"
PrintNodeImages="True"
ShowColumnHeaders="False"
ShowHorizontalLines="False"
@@ -538,7 +547,8 @@
ShowVerticalLines="False"
VerticalScrollbarVisibility="Auto"
AutoExpandOnDrag="True"
NavigationStyle="Cell"/>
NavigationStyle="Cell"
ShownEditor="TemplateTreeView_ShownEditor" />
</dxg:TreeListControl.View>
</dxg:TreeListControl>
<!--
@@ -608,21 +618,36 @@
</Grid>
</dxlc:LayoutGroup>
<dxlc:LayoutGroup dxlc:LayoutControl.AllowHorizontalSizing="True">
<dxg:GridControl
<GroupBox
x:Name="GroupBoxTemplateList"
Grid.ColumnSpan="2"
Padding="5"
Header=""
Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<dxg:GridControl
x:Name="datagrid_templates"
Grid.Row="0"
Grid.Column="1"
Margin="2,3,5,5">
<dxg:GridControl.Columns>
<dxg:GridColumn
<dxg:GridControl.Columns>
<dxg:GridColumn
Width="24"
FieldName="FileName"
FixedWidth="True"
Header=""
ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button
Width="20"
Height="20"
Margin="1"
@@ -630,64 +655,67 @@
Click="TemplateDeleteButton_Click"
Content="r"
FontFamily="Webdings" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn
Width="*"
AllowEditing="False"
FieldName="Name"
Header="Name" />
<dxg:GridColumn
<dxg:GridColumn
Width="*"
AllowEditing="False"
FieldName="Beschreibung"
Header="Beschreibung" />
<dxg:GridColumn
<dxg:GridColumn
Width="80"
FieldName="FileEdit"
FixedWidth="True"
Header=""
ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button
Width="75"
Height="20"
Height="23"
VerticalAlignment="Center"
Click="EditTemplate_Click"
Content="Bearbeiten" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<!--<dxg:GridColumn
Width="80"
FieldName="PrintFile"
FixedWidth="True"
Header=""
ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button
Width="75"
Height="20"
Height="23"
VerticalAlignment="Center"
Click="PrintTemplate_Click"
Content="Drucken" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>-->
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView
x:Name="TemplateTableView"
AutoWidth="false"
NavigationStyle="Row"
ShowGroupPanel="False"
ShowGroupedColumns="false"
ShowTotalSummary="False" />
</dxg:GridControl.View>
</dxg:GridControl>
ShowTotalSummary="False"
RowDoubleClick="TemplateTableView_RowDoubleClick"/>
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</GroupBox>
</dxlc:LayoutGroup>
</dxlc:LayoutControl>
</TabItem>

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