cb neue version

This commit is contained in:
Christian
2022-06-20 14:13:28 +02:00
parent 402689a076
commit 52cb81a22d
33 changed files with 411 additions and 201 deletions

View File

@@ -43,12 +43,12 @@
<TargetCulture>de-DE</TargetCulture> <TargetCulture>de-DE</TargetCulture>
<ProductName>BeWoPlaner</ProductName> <ProductName>BeWoPlaner</ProductName>
<PublisherName>beyondSoft GmbH</PublisherName> <PublisherName>beyondSoft GmbH</PublisherName>
<MinimumRequiredVersion>2.0.1.214</MinimumRequiredVersion> <MinimumRequiredVersion>2.0.1.216</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish> <CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.htm</WebPage> <WebPage>publish.htm</WebPage>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish> <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<TrustUrlParameters>true</TrustUrlParameters> <TrustUrlParameters>true</TrustUrlParameters>
<ApplicationRevision>215</ApplicationRevision> <ApplicationRevision>217</ApplicationRevision>
<ApplicationVersion>2.0.1.%2a</ApplicationVersion> <ApplicationVersion>2.0.1.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut> <CreateDesktopShortcut>true</CreateDesktopShortcut>

View File

@@ -48,8 +48,8 @@ namespace BeWo
public static LoginControl LoginControl; public static LoginControl LoginControl;
public static MainControl MainControl; public static MainControl MainControl;
public static string ShortVersion = "3.8"; public static string ShortVersion = "3.9";
public static string Version = "Version 3.8"; public static string Version = "Version 3.9";
public static int RenderTier = 0; public static int RenderTier = 0;
@@ -459,7 +459,10 @@ namespace BeWo
} }
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowStorno); val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowStorno);
AppSettings.AllowStorno = val != null && val.Equals("1"); AppSettings.AllowStorno = val != null && val.Equals("1");
val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowHilfeplanStatistikReport);
AppSettings.ShowHilfeplanStatistikReport = val != null && val.Equals("1");
switch (_Mandator.BeWoClientType) switch (_Mandator.BeWoClientType)
{ {
case 1: case 1:

View File

@@ -391,11 +391,13 @@ namespace BeWo.Core.Config
public bool ShowInfoButtonInCalender{ get; set; } public bool ShowInfoButtonInCalender{ get; set; }
public bool AllowStorno { get; set; } public bool AllowStorno { get; set; }
public bool ShowEmployeeSignature { get; set; } public bool ShowEmployeeSignature { get; set; }
public bool SetStartTimeToEndTimeAfterSave { get; set; } public bool SetStartTimeToEndTimeAfterSave { get; set; }
public bool ShowHilfeplanStatistikReport { get; set; }
private SchedulerViewType _SchedulerViewType; private SchedulerViewType _SchedulerViewType;
public SchedulerViewType SchedulerViewType public SchedulerViewType SchedulerViewType
{ {

View File

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

View File

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

View File

@@ -480,10 +480,10 @@
<TextBox Grid.Column="3" Grid.Row="1" Grid.RowSpan="13" Margin="3" Text="{Binding Path=Notice, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" <TextBox Grid.Column="3" Grid.Row="1" Grid.RowSpan="13" Margin="3" Text="{Binding Path=Notice, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Left" ScrollViewer.CanContentScroll="False" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" TextWrapping="Wrap" AcceptsReturn="True" AutoWordSelection="True" /> HorizontalContentAlignment="Left" ScrollViewer.CanContentScroll="False" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" TextWrapping="Wrap" AcceptsReturn="True" AutoWordSelection="True" />
<TextBlock Margin="3,15,3,3" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="14" FontSize="14" VerticalAlignment="Center" PreviewMouseLeftButtonDown="PrintContract" Tag="{Binding}"> <TextBlock Margin="3,15,3,3" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="14" FontSize="14" VerticalAlignment="Center" PreviewMouseLeftButtonDown="PrintContract" Tag="{Binding}" Visibility="Collapsed">
<Hyperlink TargetName="_NewWindow"> <Hyperlink TargetName="_NewWindow">
<Run Text="Drucken" /> <Run Text="Drucken" />
</Hyperlink> </Hyperlink>
</TextBlock> </TextBlock>
</Grid> </Grid>
</GroupBox> </GroupBox>

View File

@@ -87,12 +87,12 @@
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}" ToolTipService.ShowDuration="100000"> FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}" ToolTipService.ShowDuration="100000">
<TextBox.ToolTip> <TextBox.ToolTip>
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Vertical">
<Label FontWeight="Bold" Content="{Binding Path=GoalEntryDC.TypeDescription, Mode=OneWay}"/> <Label FontWeight="Bold" Content="{Binding Path=GoalEntryVM.DisplayName, Mode=OneWay}"/>
<TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0" <TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0"
TextWrapping="Wrap" TextWrapping="Wrap"
AcceptsReturn="True" AcceptsReturn="True"
MaxWidth="500" MaxWidth="500"
IsReadOnly="True" Text="{Binding Path=GoalEntryDC.Notice}" /> IsReadOnly="True" Text="{Binding Path=GoalEntryVM.Notice}" />
</StackPanel> </StackPanel>
</TextBox.ToolTip> </TextBox.ToolTip>
</TextBox> </TextBox>

View File

@@ -971,8 +971,8 @@
FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}" FontWeight="{Binding Path=IsGoal, Converter={StaticResource ValueListEntryTypeToFontWeightConverter}}"
Foreground="{Binding Path=GoalType, Converter={StaticResource ValueListEntryTypeToColorConverter}}" ToolTipService.ShowDuration="100000" > Foreground="{Binding Path=GoalType, Converter={StaticResource ValueListEntryTypeToColorConverter}}" ToolTipService.ShowDuration="100000" >
<TextBox.ToolTip> <TextBox.ToolTip>
<ToolTip HorizontalOffset="400" > <ToolTip>
<StackPanel Orientation="Vertical" MinWidth="400"> <StackPanel Orientation="Vertical" MinWidth="400">
<Label FontWeight="Bold" Content="{Binding Path=GoalEntryDC.TypeDescription, Mode=OneWay}"/> <Label FontWeight="Bold" Content="{Binding Path=GoalEntryDC.TypeDescription, Mode=OneWay}"/>
<TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0" <TextBox Background="Transparent" Padding="3,1,0,0" VerticalAlignment="Center" BorderThickness="0"
TextWrapping="Wrap" MaxWidth="500" TextWrapping="Wrap" MaxWidth="500"

View File

@@ -331,6 +331,7 @@
<RowDefinition Height="*" /> <RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="0,0,0,0" Grid.ColumnSpan="2"> <StackPanel Orientation="Horizontal" Margin="0,0,0,0" Grid.ColumnSpan="2">
<CheckBox Content="{markup:Translate Zeiterfassung für ausgewählten Klienten}" IsChecked="True" Margin="0,3,0,2" <CheckBox Content="{markup:Translate Zeiterfassung für ausgewählten Klienten}" IsChecked="True" Margin="0,3,0,2"
x:Name="chkWithClient" Checked="ChkWithClient_Checked" x:Name="chkWithClient" Checked="ChkWithClient_Checked"
Unchecked="ChkWithClient_Unchecked" /> Unchecked="ChkWithClient_Unchecked" />
@@ -347,7 +348,7 @@
<!--<CheckBox Content="Bedarfsmedikation" Margin="10,3,0,2" IsChecked="False" <!--<CheckBox Content="Bedarfsmedikation" Margin="10,3,0,2" IsChecked="False"
x:Name="chkBedarfsmedikation" Checked="ChkBedarfsmedikationChecked" x:Name="chkBedarfsmedikation" Checked="ChkBedarfsmedikationChecked"
Unchecked="ChkBedarfsmedikationUnchecked" security:DemandUserRight.VisibleDemands="ViewAll, MedRecordsAnsehen" />--> Unchecked="ChkBedarfsmedikationUnchecked" security:DemandUserRight.VisibleDemands="ViewAll, MedRecordsAnsehen" />-->
<StackPanel Orientation="Horizontal" Visibility="{Binding Path=IsCustomerWarningActive, Converter={StaticResource BoolVisibilityConverter}}" <StackPanel Orientation="Horizontal" Visibility="{Binding Path=IsCustomerWarningActive, Converter={StaticResource BoolVisibilityConverter}}"
Margin="15,0,0,0"> Margin="15,0,0,0">
<Button Content="I" HorizontalAlignment="Right" Style="{DynamicResource WarningButton}" > <Button Content="I" HorizontalAlignment="Right" Style="{DynamicResource WarningButton}" >
@@ -368,6 +369,7 @@
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="250" /> <ColumnDefinition Width="250" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition /> <ColumnDefinition />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<localViewControls:SingleSupportConceptSelectionControl x:Name="supportConceptSelectionControl" <localViewControls:SingleSupportConceptSelectionControl x:Name="supportConceptSelectionControl"
@@ -380,13 +382,24 @@
x:Name="multiEmployeeControl" Width="250" MinHeight="100" MaxHeight="200" VerticalAlignment="Top" x:Name="multiEmployeeControl" Width="250" MinHeight="100" MaxHeight="200" VerticalAlignment="Top"
Visibility="Collapsed" /> Visibility="Collapsed" />
<Button x:Name="ButtonZeiterfassungErstellen" Margin="0,65,0,0" Height="22" Content="{markup:Translate Zeiterfassung erstellen}" Click="ButtonZeiterfassungErstellen_Click" HorizontalAlignment="Left" VerticalAlignment="Bottom" Visibility="Visible" ToolTip="{markup:Translate Zeiterfassung wird gemäß der hinterlegten Betreuungszeiten erstellt\, falls noch nicht vorhanden}"></Button> <Button x:Name="ButtonZeiterfassungErstellen" Margin="0,65,0,0" Height="22" Content="{markup:Translate Zeiterfassung erstellen}" Click="ButtonZeiterfassungErstellen_Click" HorizontalAlignment="Left" VerticalAlignment="Bottom" Visibility="Visible" ToolTip="{markup:Translate Zeiterfassung wird gemäß der hinterlegten Betreuungszeiten erstellt\, falls noch nicht vorhanden}"></Button>
<Grid Grid.Row="0" VerticalAlignment="Top" Margin="13,1,0,0" Grid.Column="2" Visibility="{Binding HasStatistics, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter='false'}"> <TextBlock x:Name="ButtonStatistics" HorizontalAlignment="Center" Width="Auto" Margin="5,2,0,0" Grid.Column="2" Visibility="{Binding StatisticsButtonVisible, Converter={StaticResource BoolVisibilityConverter}}" PreviewMouseLeftButtonDown="PrintStatistics" ToolTip="{markup:Translate Statistik anzeigen}">
<ScrollViewer VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto"> <Hyperlink NavigateUri="https://www.bewoplaner.de" TargetName="newWindow" Foreground="Transparent" >
<Image HorizontalAlignment="Left" Source="..\..\..\Ressources\Icons\ChartBarDisabled.png"
Style="{StaticResource toolbarImageStyle}" x:Name="image">
</Image>
</Hyperlink>
</TextBlock>
<Grid Grid.Row="0" VerticalAlignment="Top" Margin="13,1,0,0" Grid.Column="3" Visibility="{Binding HasStatistics, Converter={StaticResource BoolVisibilityConverter}, ConverterParameter='false'}">
<ScrollViewer VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto">
<Grid x:Name="StatisticInfoGrid"> <Grid x:Name="StatisticInfoGrid">
</Grid> </Grid>
</ScrollViewer> </ScrollViewer>
</Grid> </Grid>
<Grid Grid.Row="0" VerticalAlignment="Top" Margin="10,3,0,0" Grid.Column="2" Visibility="{Binding HasStatistics, Converter={StaticResource BoolVisibilityConverter}}"> <Grid Grid.Row="0" VerticalAlignment="Top" Margin="10,3,0,0" Grid.Column="3" Visibility="{Binding HasStatistics, Converter={StaticResource BoolVisibilityConverter}}">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
@@ -394,6 +407,7 @@
<Grid Margin ="3,-2,0,0" Grid.Column="0" VerticalAlignment="Top"> <Grid Margin ="3,-2,0,0" Grid.Column="0" VerticalAlignment="Top">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
@@ -403,6 +417,7 @@
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Foreground="{DynamicResource BigInfoTextBrush}" <TextBlock Grid.Column="0" Grid.Row="0" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Bewilligungszeitraum:" Height="14" /> Text="Bewilligungszeitraum:" Height="14" />
<TextBlock x:Name="lblStatisticInfo1" Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource BigInfoTextBrush}" <TextBlock x:Name="lblStatisticInfo1" Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource BigInfoTextBrush}"

View File

@@ -4895,6 +4895,22 @@ namespace BeWo.View.Detail.Zeiterfassung
//var data = srGridControl.rowhan //var data = srGridControl.rowhan
} }
private void PrintStatistics(object sender, MouseButtonEventArgs e)
{
var textBlock = (TextBlock)sender;
var node = ViewModel.SelectedCustomerNode;
long c2sOid = 0;
if (node != null && node.SupportConceptTreeNodeDC != null && node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC != null)
{
c2sOid = node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC.CostBearer2SupportConceptOid.Value;
}
var url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?c2sOid=" + c2sOid + "&type=" + Utils.EnumName(ReportTypes.HilfeplanStatistik);
BeWoUtils.NavigateToReportUri(url, "Druckvorschau");
}
} }
//public class RowBackgroundHelper //public class RowBackgroundHelper

View File

@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls" xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:localView="clr-namespace:BeWo.View" xmlns:localView="clr-namespace:BeWo.View"
xmlns:master="clr-namespace:BeWo.View.Master"
xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion" xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
@@ -66,6 +66,8 @@
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
</ContextMenu> </ContextMenu>
<master:DeleteButtonVisibilityConverter x:Key="DeleteButtonVisibilityConverter" />
<master:EditButtonVisibilityConverter x:Key="EditButtonVisibilityConverter" />
</localView:BeWoView.Resources> </localView:BeWoView.Resources>
@@ -236,17 +238,17 @@
</GroupBox> </GroupBox>
<dxg:GridControl Grid.Row="1" Margin="2,3,5,5" DataSource="{Binding SelectedItem.Files, ElementName=treeview}" x:Name="datagrid_documents" Grid.Column="1"> <dxg:GridControl Grid.Row="1" Margin="2,3,5,5" DataSource="{Binding SelectedItem.Files, ElementName=treeview}" x:Name="datagrid_documents" Grid.Column="1">
<dxg:GridControl.Columns> <dxg:GridControl.Columns>
<dxg:GridColumn FieldName="FileName" Header="" FixedWidth="True" Width="24" ReadOnly="True"> <dxg:GridColumn FieldName="FileName" Header="" FixedWidth="True" Width="24" ReadOnly="True" Visible="{Binding Converter={StaticResource DeleteButtonVisibilityConverter}}">
<dxg:GridColumn.CellTemplate> <dxg:GridColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<Button Content="r" FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18" VerticalAlignment="Center" ToolTip="Löschen"/> <Button Content="r" FontFamily="Webdings" Click="DeleteButton_Click" Width="20" Height="20" VerticalAlignment="Center" ToolTip="Löschen" />
</DataTemplate> </DataTemplate>
</dxg:GridColumn.CellTemplate> </dxg:GridColumn.CellTemplate>
</dxg:GridColumn> </dxg:GridColumn>
<dxg:GridColumn Header="" FixedWidth="True" Width="24" ReadOnly="True"> <dxg:GridColumn Header="" FixedWidth="True" Width="24" ReadOnly="True" Visible="{Binding Converter={StaticResource EditButtonVisibilityConverter}}">
<dxg:GridColumn.CellTemplate> <dxg:GridColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<Button Content="N" FontFamily="Webdings" Click="EditButton_Click" Width="18" Height="18" VerticalAlignment="Center" ToolTip="Bearbeiten"/> <Button Content="!" FontFamily="Wingdings" Click="EditButton_Click" Width="20" Height="20" VerticalAlignment="Center" ToolTip="Bearbeiten"/>
</DataTemplate> </DataTemplate>
</dxg:GridColumn.CellTemplate> </dxg:GridColumn.CellTemplate>
</dxg:GridColumn> </dxg:GridColumn>

View File

@@ -38,6 +38,8 @@ using BS.Shared.DataContracts.Compact;
using BeWo.View.Detail; using BeWo.View.Detail;
using System.Text; using System.Text;
using BS.Shared.Translation; using BS.Shared.Translation;
using System.Windows.Data;
using System.Globalization;
namespace BeWo.View.Master namespace BeWo.View.Master
{ {
@@ -58,6 +60,18 @@ namespace BeWo.View.Master
progressbar_upload.Visibility = Visibility.Collapsed; progressbar_upload.Visibility = Visibility.Collapsed;
text_progress.Visibility = Visibility.Collapsed; text_progress.Visibility = Visibility.Collapsed;
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsUploadAll))
{
button_uploadDocument.Visibility = Visibility.Collapsed;
}
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsDownloadAll))
{
ColumnDownload.Visible = false;
ColumnDownload.ShowInColumnChooser = false;
}
} }
public void InitDocumentMenuItems() public void InitDocumentMenuItems()
@@ -668,7 +682,7 @@ namespace BeWo.View.Master
{ {
MenuItem menuitem = item as MenuItem; MenuItem menuitem = item as MenuItem;
if (treeviewitem.DataContract.BeWoFolderDC != null) if (treeviewitem.DataContract.BeWoFolderDC != null && BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{ {
if (treeviewitem.Name.Equals("Alle Ordner")) if (treeviewitem.Name.Equals("Alle Ordner"))
{ {
@@ -691,6 +705,10 @@ namespace BeWo.View.Master
private void ContextMenu_Click(object sender, RoutedEventArgs e) private void ContextMenu_Click(object sender, RoutedEventArgs e)
{ {
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{
return;
}
if (e.OriginalSource is MenuItem) if (e.OriginalSource is MenuItem)
{ {
var row = DocumentsTreeView.SelectedRows[0] as DocumentTreeItemVM; var row = DocumentsTreeView.SelectedRows[0] as DocumentTreeItemVM;
@@ -1330,7 +1348,7 @@ namespace BeWo.View.Master
{ {
MenuItem menuitem = item as MenuItem; MenuItem menuitem = item as MenuItem;
if (treeviewitem?.DataContract?.BeWoFolderDC != null) if (treeviewitem?.DataContract?.BeWoFolderDC != null && BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsEditFolders))
{ {
if (treeviewitem.Name.Equals("Alle Ordner")) if (treeviewitem.Name.Equals("Alle Ordner"))
{ {
@@ -1346,6 +1364,8 @@ namespace BeWo.View.Master
} }
else else
menuitem.IsEnabled = false; menuitem.IsEnabled = false;
} }
} }
} }
@@ -2002,4 +2022,40 @@ namespace BeWo.View.Master
public UserRightType DocumentRightNeeded { get; set; } public UserRightType DocumentRightNeeded { get; set; }
public IList<UserRightType> ListOfViewRightsNeeded { get; set; } public IList<UserRightType> ListOfViewRightsNeeded { get; set; }
} }
public class DeleteButtonVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsDeleteAll))
{
return true;
}
else
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class EditButtonVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.DocumentsUploadAll))
{
return true;
}
else
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
} }

View File

@@ -606,12 +606,13 @@ namespace BeWo.View.Report.FLSReport
else else
{ {
var contentVorher = (int)item.RoundedDuration + " min."; var contentVorher = (int)item.RoundedDuration + " min.";
lbl.Content = item.TimeRange; //lbl.Content = item.TimeRange;
if (contentVorher != item.TimeRange) lbl.Content = contentVorher;
{ //if (contentVorher != item.TimeRange)
int test = 0; //{
} // int test = 0;
lbl.Content = string.Format("TEST DURATIONXXX 6"); //}
//lbl.Content = string.Format("TEST DURATIONXXX 6");
} }
} }

View File

@@ -551,16 +551,17 @@ namespace BeWo.View.Report.MitarbeiterKoelnRing
if (sr.Start != null && sr.Start.Value.Second == 0) if (sr.Start != null && sr.Start.Value.Second == 0)
{ {
content.Add(sr.Start.Value.ToShortTimeString()); content.Add(sr.Start.Value.ToShortTimeString());
content.Add(sr.End.Value.ToShortTimeString());
//content.Add(sr.Start.Value.AddMinutes((double)sr.RoundedDuration).ToShortTimeString()); //content.Add(sr.Start.Value.AddMinutes((double)sr.RoundedDuration).ToShortTimeString());
content.Add(string.Format("TEST DURATIONXXX 9")); //content.Add(string.Format("TEST DURATIONXXX 9"));
} }
else else
{ {
content.Add(""); content.Add("");
content.Add(""); content.Add("");
} }
//content.Add(String.Format("{0}", (int)sr.RoundedDuration)); content.Add(String.Format("{0}", (int)sr.RoundedDuration));
content.Add(string.Format("TEST DURATIONXXX 10")); //content.Add(string.Format("TEST DURATIONXXX 10"));
if (_FLSOverview.FLSOverviewConfig.ShowOnlyTotalRows) if (_FLSOverview.FLSOverviewConfig.ShowOnlyTotalRows)
{ {

View File

@@ -277,6 +277,7 @@ namespace BeWo.ViewModel.ListViewModel
_Statistics = value; _Statistics = value;
FirePropertyChanged(PropertyName_Statistics); FirePropertyChanged(PropertyName_Statistics);
FirePropertyChanged("HasStatistics"); FirePropertyChanged("HasStatistics");
FirePropertyChanged("StatisticsButtonVisible");
} }
} }
@@ -285,6 +286,11 @@ namespace BeWo.ViewModel.ListViewModel
get { return _Statistics != null && _Statistics.Count > 0; } get { return _Statistics != null && _Statistics.Count > 0; }
} }
public bool StatisticsButtonVisible
{
get { return BeWoApp.AppSettings.ShowHilfeplanStatistikReport && SelectedCustomerNode != null && SelectedCustomerNode.SupportConceptTreeNodeDC != null; }
}
public ServiceRecordTimeInterval ServiceRecordTimeInterval public ServiceRecordTimeInterval ServiceRecordTimeInterval
{ {
get { return _ServiceRecordTimeInterval; } get { return _ServiceRecordTimeInterval; }

View File

@@ -168,6 +168,9 @@ namespace Host
case ReportTypes.MitarbeiterKlientenReport: case ReportTypes.MitarbeiterKlientenReport:
report = CreateEmployeeCustomerListReport(); report = CreateEmployeeCustomerListReport();
break; break;
case ReportTypes.HilfeplanStatistik:
report = new XtraReport();
break;
default: default:
report = CreateQueryReport(); report = CreateQueryReport();
break; break;

View File

@@ -1,3 +1,3 @@
ALTER TABLE `bewodemo`.`wohnheim` ALTER TABLE `wohnheim`
ADD COLUMN `Sortierungsart` INT NULL DEFAULT NULL AFTER `StandardZeilenanzahl`, ADD COLUMN `Sortierungsart` INT NULL DEFAULT NULL AFTER `StandardZeilenanzahl`,
ADD COLUMN `AbsteigendeSortierung` INT NULL DEFAULT NULL AFTER `Sortierungsart`; ADD COLUMN `AbsteigendeSortierung` INT NULL DEFAULT NULL AFTER `Sortierungsart`;

View File

@@ -9,36 +9,35 @@ namespace AutismusLeben
{ {
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
{ {
public override bool ShouldCreateDayDetails() //public override bool ShouldCreateDayDetails()
{ //{
return true; // return true;
} //}
public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed) //public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
{ //{
var dd = base.CreateDayDetail(date, ed); // var dd = base.CreateDayDetail(date, ed);
dd.BreakMinutes2 = 15; // dd.BreakMinutes2 = 15;
dd.MaxHoursUntilBreak2 = 9; // dd.MaxHoursUntilBreak2 = 9;
return dd; // return dd;
} //}
public override bool AddServiceRecordToDuration(ServiceRecord item) //public override bool AddServiceRecordToDuration(ServiceRecord item)
{ //{
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null) // if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null)
{ // {
if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit") // if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
{ // {
return true; // return true;
} // }
} // }
return false; // return false;
} //}
protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList<ServiceRecord> groupFilteredRecords, DateTime berichtsAnfang, DateTime berichtsEnde) protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList<ServiceRecord> groupFilteredRecords, DateTime berichtsAnfang, DateTime berichtsEnde)
{ {
decimal flsGesamt = 0; decimal flsGesamt = 0;
decimal arbeitszeit = 0;
var sum = new ServiceRecordSummary(); var sum = new ServiceRecordSummary();
sum.RecordsImBerichtszeitraum = new List<ServiceRecord>(); sum.RecordsImBerichtszeitraum = new List<ServiceRecord>();
@@ -46,43 +45,33 @@ namespace AutismusLeben
foreach (var item in groupFilteredRecords) foreach (var item in groupFilteredRecords)
{ {
if (!IsServiceRecordFehlzeit(item)) if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde)
{ {
if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde) decimal duration = 0;
if (item.GroupRoundedDuration.HasValue)
{ {
//if (AddServiceRecordToDuration(item)) duration = item.GroupRoundedDuration.Value;
//{
decimal duration = 0;
if (item.GroupRoundedDuration.HasValue)
{
duration = item.GroupRoundedDuration.Value;
}
else
{
duration = item.RoundedDuration;
}
if (item.ServiceDescription != null &&
item.ServiceDescription.ServiceCategory != null)
{
if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
{
arbeitszeit += duration;
}
else if (item.ServiceDescription.ServiceCategory.IsBillable)
{
flsGesamt += duration;
}
}
sum.RecordsImBerichtszeitraum.Add(item);
} }
else
{
duration = item.RoundedDuration;
}
if (item.ServiceDescription != null &&
item.ServiceDescription.ServiceCategory != null)
{
if (item.ServiceDescription.ServiceCategory.IsBillable)
{
flsGesamt += duration;
}
}
sum.RecordsImBerichtszeitraum.Add(item);
} }
} }
sum.IstAbrechenbar = flsGesamt; sum.IstAbrechenbar = flsGesamt * 100m;
sum.IstNichtAbrechenbar = arbeitszeit - flsGesamt;
return sum; return sum;
} }

View File

@@ -33,7 +33,13 @@ namespace FizHof.Export
public static String GetAbrechnungenString(DateTime date) public static String GetAbrechnungenString(DateTime date)
{ {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
//sb.AppendLine("Betrag;Konto;Gegenkonto;Belegdatum;Rechnungsnummer;Buchungstext;Kostenstelle");
/*
*
INSERT INTO `query` (`Oid`,`Tid`,`Type`,`Title`,`Sql`,`Notice`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`,`UserGroupOids`,`ReportTypeName`,`FileName`,`ExportTitle`) VALUES (100,24,0,'Datev Export','select \':Monat_Start\'','direct',NULL,NULL,NULL,1,1,NULL,'1',NULL,NULL,'Datei erstellen');
INSERT INTO `parameter` (`Oid`,`QueryOid`,`Tid`,`Name`,`Type`,`DbType`,`InsTs`,`InsUser`,`UdpUser`,`Version`,`IsActive`,`SystemEntryID`) VALUES(1, 100, 25, 'Monat', 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
*/
sb.AppendLine("Datum;Konto;Gegenkonto;Buchungstext;Belegfeld1;Umsatz Soll;Kostenstelle"); sb.AppendLine("Datum;Konto;Gegenkonto;Buchungstext;Belegfeld1;Umsatz Soll;Kostenstelle");

View File

@@ -54,25 +54,26 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
} }
} }
} }
ServiceInvoice pflegekassenRechnung = null; IList<ServiceInvoice> pflegekassenRechnungen = null;
if (pflegekasse != null) if (pflegekasse != null)
{ {
pflegekassenRechnung = CreatePflegekassenRechnung(invoiceCounter, pflegekasse, customer, invoicePeriod, sc, serviceRecords); pflegekassenRechnungen = CreatePflegekassenRechnungen(invoiceCounter, pflegekasse, customer, invoicePeriod, sc, serviceRecords);
if (pflegekassenRechnung != null && pflegekassenRechnung.GetTotalClaim() > 0) if (pflegekassenRechnungen != null && pflegekassenRechnungen.Count > 0)
{ {
invoiceList.Add(pflegekassenRechnung); invoiceList.AddRange(pflegekassenRechnungen);
invoiceCounter++; invoiceCounter++;
} }
} }
if (selbszahler != null) if (selbszahler != null)
{ {
var selbstzahlerRechnung = CreateSelbstzahlerRechnung(invoiceCounter, customer, invoicePeriod, sc, serviceRecords); var selbstzahlerRechnung = CreateSelbstzahlerRechnung(invoiceCounter, customer, invoicePeriod, sc, serviceRecords);
if (selbstzahlerRechnung != null && selbstzahlerRechnung.GetTotalClaim() > 0) if (selbstzahlerRechnung != null && selbstzahlerRechnung.GetTotalClaim() > 0)
{ {
SetzeInvoiceItemDescription(selbstzahlerRechnung, pflegekassenRechnung); SetzeInvoiceItemDescription(selbstzahlerRechnung, pflegekassenRechnungen);
invoiceList.Add(selbstzahlerRechnung); invoiceList.Add(selbstzahlerRechnung);
@@ -113,17 +114,17 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
return result; return result;
} }
private void SetzeInvoiceItemDescription(ServiceInvoice selbstzahlerRechnung, ServiceInvoice pflegekassenRechnung) private void SetzeInvoiceItemDescription(ServiceInvoice selbstzahlerRechnung, IList<ServiceInvoice> pflegekassenRechnungen)
{ {
if (pflegekassenRechnung != null) if (pflegekassenRechnungen != null && pflegekassenRechnungen.Count > 0)
{ {
foreach (var ssip in selbstzahlerRechnung.ServiceInvoicePeriodList) foreach (var ssip in selbstzahlerRechnung.ServiceInvoicePeriodList)
{ {
foreach (var sii in ssip.InvoiceItemList) foreach (var sii in ssip.InvoiceItemList)
{ {
if (sii.ItemDescription == "Selbstzahler") if (sii.ItemDescription == "Selbstzahler")
{ {
foreach (var psip in pflegekassenRechnung.ServiceInvoicePeriodList) foreach (var psip in pflegekassenRechnungen[0].ServiceInvoicePeriodList)
{ {
foreach (var pii in psip.InvoiceItemList) foreach (var pii in psip.InvoiceItemList)
{ {
@@ -142,11 +143,21 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
var invoice = base.CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, sc, new List<ServiceRecordDC>()); var invoice = base.CreateSingleInvoice(invoiceCounter, costBearer, invoicePeriod, sc, new List<ServiceRecordDC>());
invoice.InvoiceBase.InvoiceId = "RechnungSelbstzahler"; invoice.InvoiceBase.InvoiceId = "RechnungSelbstzahler";
invoice.InvoiceBase.RecipientPersonFirstName = customer.Person.FirstName;
invoice.InvoiceBase.RecipientPersonLastName = customer.Person.LastName;
if (customer.Person.InvoiceAddress != null) if (customer.Person.InvoiceAddress != null)
{ {
invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew(); invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew();
if (customer.Person.InvoiceAddress != null && customer.Person.InvoiceAddress.AddressLine1 != null)
{
invoice.InvoiceBase.RecipientPersonFirstName = customer.Person.InvoiceAddress.AddressLine1;
invoice.InvoiceBase.RecipientPersonLastName = "";
}
invoice.InvoiceBase.RecipientOrganisation = ""; invoice.InvoiceBase.RecipientOrganisation = "";
} }
@@ -157,10 +168,8 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
} }
invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid; invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid;
invoice.InvoiceBase.RecipientPersonFirstName = customer.Person.FirstName;
invoice.InvoiceBase.RecipientPersonLastName = customer.Person.LastName;
Dictionary<String, AbrechnungsInfos> key2Info = new Dictionary<String, AbrechnungsInfos>(); Dictionary<String, AbrechnungsInfos> key2Info = new Dictionary<String, AbrechnungsInfos>();
@@ -170,16 +179,26 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
{ {
var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value); var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value);
String key = String.Format("{0}_{1:0.00}_{2:yyyyMM}", sr.ServiceDescription.Category.Name, preis, sr.Start);
String key = String.Format("{0}_{1:0.00}", sr.ServiceDescription.Category.Name, preis);
if (!key2Info.ContainsKey(key)) if (!key2Info.ContainsKey(key))
{ {
key2Info.Add(key, new AbrechnungsInfos()); key2Info.Add(key, new AbrechnungsInfos());
key2Info[key].Start = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1);
key2Info[key].Ende = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1).AddMonths(1).AddDays(-1);
} }
key2Info[key].Minuten += sr.RoundedDuration; key2Info[key].Minuten += sr.RoundedDuration;
key2Info[key].Stundensatz = preis; key2Info[key].Stundensatz = preis;
key2Info[key].Category = sr.ServiceDescription.Category.Name; key2Info[key].Category = sr.ServiceDescription.Category.Name;
if (sr.Start.Value < key2Info[key].Start)
{
key2Info[key].Start = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1);
}
if (sr.Start.Value > key2Info[key].Ende)
{
key2Info[key].Ende = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1).AddMonths(1).AddDays(-1);
}
} }
} }
@@ -203,8 +222,8 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
ii.AmountPerUnit = info.Stundensatz; ii.AmountPerUnit = info.Stundensatz;
ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero); ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero);
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount; ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.ItemPeriodStart = invoicePeriod.StartDateTime; ii.ItemPeriodStart = info.Start;
ii.ItemPeriodEnd = invoicePeriod.EndDateTime; ii.ItemPeriodEnd = info.Ende;
ii.RateFactor = null; ii.RateFactor = null;
ii.GrossAmountTotal = ii.AmountTotal; ii.GrossAmountTotal = ii.AmountTotal;
ii.UnitDescription = String.Format("{0}", customer.Oid); ii.UnitDescription = String.Format("{0}", customer.Oid);
@@ -240,78 +259,103 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
return category; return category;
} }
private ServiceInvoice CreatePflegekassenRechnung(int invoiceCounter, Organisation pflegekasse, Customer customer, DateTimeSpan invoicePeriod, CompactSupportConceptDC sc, List<ServiceRecordDC> serviceRecords) private IList<ServiceInvoice> CreatePflegekassenRechnungen(int invoiceCounter, Organisation pflegekasse, Customer customer, DateTimeSpan invoicePeriod, CompactSupportConceptDC sc, List<ServiceRecordDC> serviceRecords)
{ {
var invoiceList = new List<ServiceInvoice>();
var invoice = base.CreateSingleInvoice(invoiceCounter, pflegekasse.CostBearer, invoicePeriod, sc, new List<ServiceRecordDC>()); Dictionary<String, String> categories = new Dictionary<string, string>();
invoice.InvoiceBase.InvoiceId = "RechnungPflegekasse";
invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid;
//if (customer.Person.InvoiceAddress != null)
//{
// invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew();
// invoice.InvoiceBase.RecipientOrganisation = "";
// invoice.InvoiceBase.RecipientCostBearerOid = null;
//}
//else if (customer.Person.Address != null)
//{
// invoice.InvoiceBase.RecipientAddress = customer.Person.Address.CopyToNew();
// invoice.InvoiceBase.RecipientOrganisation = "";
// invoice.InvoiceBase.RecipientCostBearerOid = null;
//}
Dictionary<String, AbrechnungsInfos> key2Info = new Dictionary<String, AbrechnungsInfos>(); foreach (var item in serviceRecords)
foreach (var sr in serviceRecords) {
{ if (item.ServiceDescription.Category.Name != "Selbstzahler")
if (sr.ServiceDescription.Category.Name != "Selbstzahler")
{ {
var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value); if (!categories.ContainsKey(item.ServiceDescription.Category.Name))
{
String key = String.Format("{0}_{1:0.00}", sr.ServiceDescription.Category.Name, preis); categories.Add(item.ServiceDescription.Category.Name, item.ServiceDescription.Category.Name);
if (!key2Info.ContainsKey(key)) }
}
}
foreach (var category in categories.Values)
{
var invoice = base.CreateSingleInvoice(invoiceCounter, pflegekasse.CostBearer, invoicePeriod, sc, new List<ServiceRecordDC>());
invoice.InvoiceBase.InvoiceId = "RechnungPflegekasse";
invoice.InvoiceBase.RecipientCostBearerOid = sc.CostBearerList[0].CostBearerOid;
//if (customer.Person.InvoiceAddress != null)
//{
// invoice.InvoiceBase.RecipientAddress = customer.Person.InvoiceAddress.CopyToNew();
// invoice.InvoiceBase.RecipientOrganisation = "";
// invoice.InvoiceBase.RecipientCostBearerOid = null;
//}
//else if (customer.Person.Address != null)
//{
// invoice.InvoiceBase.RecipientAddress = customer.Person.Address.CopyToNew();
// invoice.InvoiceBase.RecipientOrganisation = "";
// invoice.InvoiceBase.RecipientCostBearerOid = null;
//}
Dictionary<String, AbrechnungsInfos> key2Info = new Dictionary<String, AbrechnungsInfos>();
foreach (var sr in serviceRecords)
{
if (sr.ServiceDescription.Category.Name == category)
{ {
key2Info.Add(key, new AbrechnungsInfos()); var preis = GetPreisVonServiceDescription(sr.ServiceDescription, sr.Start.Value);
String key = String.Format("{0}_{1:0.00}_{2:yyyyMM}", sr.ServiceDescription.Category.Name, preis, sr.Start);
if (!key2Info.ContainsKey(key))
{
key2Info.Add(key, new AbrechnungsInfos());
}
key2Info[key].Minuten += sr.RoundedDuration;
key2Info[key].Stundensatz = preis;
key2Info[key].Category = sr.ServiceDescription.Category.Name;
key2Info[key].Start = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1);
key2Info[key].Ende = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, 1).AddMonths(1).AddDays(-1);
} }
key2Info[key].Minuten += sr.RoundedDuration;
key2Info[key].Stundensatz = preis;
key2Info[key].Category = sr.ServiceDescription.Category.Name;
} }
}
invoice.ServiceInvoicePeriodList = new List<ServiceInvoicePeriod>(); invoice.ServiceInvoicePeriodList = new List<ServiceInvoicePeriod>();
var sip = new ServiceInvoicePeriod var sip = new ServiceInvoicePeriod
{
Start = invoicePeriod.StartDateTime,
End = invoicePeriod.EndDateTime
};
sip.Notice = customer.Person.LastNameFirstName;
foreach (var info in key2Info.Values)
{
if (info.Stundensatz > 0 && info.Minuten > 0)
{ {
var ii = new InvoiceItem(); Start = invoicePeriod.StartDateTime,
End = invoicePeriod.EndDateTime
};
ii.AmountPerUnit = info.Stundensatz; sip.Notice = customer.Person.LastNameFirstName;
ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero);
ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount; foreach (var info in key2Info.Values)
ii.ItemPeriodStart = invoicePeriod.StartDateTime; {
ii.ItemPeriodEnd = invoicePeriod.EndDateTime; if (info.Stundensatz > 0 && info.Minuten > 0)
ii.RateFactor = null; {
ii.GrossAmountTotal = ii.AmountTotal; var ii = new InvoiceItem();
ii.UnitDescription = String.Format("{0}", customer.Oid);
ii.ItemDescription = GetArtikelbezeichnung(info.Category); ii.AmountPerUnit = info.Stundensatz;
ii.Notice = customer.Person.FirstNameLastName; ii.UnitCount = Math.Round(info.Minuten / 60, 2, MidpointRounding.AwayFromZero);
sip.InvoiceItemList.Add(ii); ii.AmountTotal = ii.AmountPerUnit * ii.UnitCount;
ii.ItemPeriodStart = info.Start;
ii.ItemPeriodEnd = info.Ende;
ii.RateFactor = null;
ii.GrossAmountTotal = ii.AmountTotal;
ii.UnitDescription = String.Format("{0}", customer.Oid);
ii.ItemDescription = GetArtikelbezeichnung(info.Category);
ii.Notice = customer.Person.FirstNameLastName;
sip.InvoiceItemList.Add(ii);
}
} }
invoice.ServiceInvoicePeriodList.Add(sip);
SetServiceInvoicePeriodAmounts(invoice);
if (invoice.GetTotalClaim() > 0)
{
invoiceList.Add(invoice);
}
} }
invoice.ServiceInvoicePeriodList.Add(sip); return invoiceList;
SetServiceInvoicePeriodAmounts(invoice);
return invoice;
} }
public override void SetServiceInvoicePeriods(ServiceInvoice invoice, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List<ServiceRecordDC> serviceRecords) public override void SetServiceInvoicePeriods(ServiceInvoice invoice, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List<ServiceRecordDC> serviceRecords)
@@ -340,11 +384,12 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
return 0; return 0;
} }
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth) public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
{ {
return String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemP eriodStart, iitem.ItemDescription); return String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
} }
} }
public class AbrechnungsInfos public class AbrechnungsInfos
@@ -354,5 +399,9 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
public decimal Minuten { get; set; } public decimal Minuten { get; set; }
public String Category { get; set; } public String Category { get; set; }
public DateTime Start { get; set; }
public DateTime Ende { get; set; }
} }
} }

View File

@@ -100,6 +100,8 @@
<DependentUpon>CustomerDataReport.cs</DependentUpon> <DependentUpon>CustomerDataReport.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="CustomReportCreator.cs" /> <Compile Include="CustomReportCreator.cs" />
<Compile Include="Export\CustomDataExporter.cs" />
<Compile Include="Export\MicosExporter.cs" />
<Compile Include="FLSGroupReport.cs"> <Compile Include="FLSGroupReport.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
@@ -143,9 +145,9 @@
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="Rechnung.Designer.cs"> <Compile Include="Rechnung.Designer.cs">
<DependentUpon>Rechnung.cs</DependentUpon> <DependentUpon>Rechnung.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="ServiceRecordListReport.cs"> <Compile Include="ServiceRecordListReport.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="ServiceRecordListReport.Designer.cs"> <Compile Include="ServiceRecordListReport.Designer.cs">
@@ -218,7 +220,7 @@
<DependentUpon>AbrechnungsbogenReisen.cs</DependentUpon> <DependentUpon>AbrechnungsbogenReisen.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Rechnung.resx"> <EmbeddedResource Include="Rechnung.resx">
<DependentUpon>Rechnung.cs</DependentUpon> <DependentUpon>Rechnung.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="ServiceRecordListReport.resx"> <EmbeddedResource Include="ServiceRecordListReport.resx">
<DependentUpon>ServiceRecordListReport.cs</DependentUpon> <DependentUpon>ServiceRecordListReport.cs</DependentUpon>

View File

@@ -689,14 +689,12 @@ namespace HphBersenbrueckFreizeitUndReisen
// xrTableCell9 // xrTableCell9
// //
this.xrTableCell9.Borders = DevExpress.XtraPrinting.BorderSide.Bottom; this.xrTableCell9.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrTableCell9.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AccountingPeriod")});
this.xrTableCell9.Name = "xrTableCell9"; this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F); this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 0, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorders = false; this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UsePadding = false; this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false; this.xrTableCell9.StylePriority.UseTextAlignment = false;
this.xrTableCell9.Text = "Fachleistungsstunden"; this.xrTableCell9.Text = "[AccountingPeriodStart!dd.MM.yyyy] - [AccountingPeriodEnd!dd.MM.yyyy]";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft; this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell9.Weight = 1.7351844793555995D; this.xrTableCell9.Weight = 1.7351844793555995D;
// //

View File

@@ -23,7 +23,10 @@ namespace KetteReports.Export
public override QueryDC CreateQuery(QueryDC query) public override QueryDC CreateQuery(QueryDC query)
{ {
return DatevExporter.CreateQuery(query); var q = DatevExporter.CreateQuery(query);
CreateBuchungsExportProtokollEintrag(q);
return q;
} }
} }
} }

View File

@@ -19,16 +19,16 @@ namespace PflegedienstWessel.Service
{ {
public class CustomStundenuebersichtAuswertung : StundenuebersichtAuswertung public class CustomStundenuebersichtAuswertung : StundenuebersichtAuswertung
{ {
//protected override ServiceRecordFLSOverviewDC CreateServiceRecordFLSOverviewDC(ServiceRecord sr, bool useGroupInfo, bool useRoundedDuration, bool showGroupMinutes) protected override ServiceRecordFLSOverviewDC CreateServiceRecordFLSOverviewDC(ServiceRecord sr, bool useGroupInfo, bool useRoundedDuration, bool showGroupMinutes)
//{ {
// var dc = base.CreateServiceRecordFLSOverviewDC(sr, useGroupInfo, useRoundedDuration, showGroupMinutes); var dc = base.CreateServiceRecordFLSOverviewDC(sr, useGroupInfo, useRoundedDuration, showGroupMinutes);
if (dc.ServiceDescription.Category.Percentage < 100)
{
dc.RoundedDuration *= dc.ServiceDescription.Category.Percentage / 100;
}
return dc;
}
// if (dc.ServiceDescription.Category.Percentage < 100)
// {
// dc.RoundedDuration *= dc.ServiceDescription.Category.Percentage / 100;
// }
// return dc;
//}
} }
} }

View File

@@ -270,7 +270,7 @@ namespace PraxisPusteblume
{ {
preisTeam = 11.63m; preisTeam = 11.63m;
} }
if (pRO.AccountingPeriodStart >= new DateTime(2022, 5, 1)) if (pRO.AccountingPeriodStart >= new DateTime(2022, 4, 1))
{ {
preisTeam = 11.77m; preisTeam = 11.77m;
preisGruppe = 35.22m; preisGruppe = 35.22m;

View File

@@ -163,7 +163,7 @@ namespace PraxisPusteblume.Invoicing
{ {
betrag = 11.63m; betrag = 11.63m;
} }
if (invoicePeriod.StartDateTime >= new DateTime(2022, 5, 1)) if (invoicePeriod.StartDateTime >= new DateTime(2022, 4, 1))
{ {
betrag = 11.77m; betrag = 11.77m;
} }

View File

@@ -89,7 +89,7 @@ namespace BeWo.Service.Configuration
bool sortServiceDescriptionAlphabetically = false; bool sortServiceDescriptionAlphabetically = false;
settings.ShowAdvisedAttendedFlag = false; settings.ShowAdvisedAttendedFlag = false;
settings.DienstplanungStandardZeilenAnzahl = 1; settings.DienstplanungStandardZeilenAnzahl = 1;
bool printerSettingsUseLandscape = false; bool printerSettingsUseLandscape = false;
bool printerSettingsUseMargins = false; bool printerSettingsUseMargins = false;

View File

@@ -133,7 +133,7 @@ namespace BeWo.Service.Plugins
//t = "3227700467"; // Psychosozialer Trägerverein //t = "3227700467"; // Psychosozialer Trägerverein
//t = "4378753169"; // Die Wohnhelfer Köln //t = "4378753169"; // Die Wohnhelfer Köln
//t = "2214258555"; // Betreuungsbüro Baak //t = "2214258555"; // Betreuungsbüro Baak
t = "4525013596"; // Hph Bersenbrück Freizeit und Reisen //t = "4525013596"; // Hph Bersenbrück Freizeit und Reisen
//t = "1609455614"; // Hph Bersenbrück Aph //t = "1609455614"; // Hph Bersenbrück Aph
//t = "7852961459"; // B&B Betreutes Wohnen //t = "7852961459"; // B&B Betreutes Wohnen
//t = "8719930557"; // Lebenshilfe Rhein-Sieg //t = "8719930557"; // Lebenshilfe Rhein-Sieg
@@ -325,12 +325,12 @@ namespace BeWo.Service.Plugins
//t = "9518001524"; // Sozialpädagogische Praxis Astrid Schnödewind //t = "9518001524"; // Sozialpädagogische Praxis Astrid Schnödewind
//t = "1048483934"; // Frauenhaus e.V. EWFRA - Wohnprojekt für Frauen //t = "1048483934"; // Frauenhaus e.V. EWFRA - Wohnprojekt für Frauen
//t = "4293131072"; // ASB Rhein-Erft/Düren e.V. Schulbegleitung //t = "4293131072"; // ASB Rhein-Erft/Düren e.V. Schulbegleitung
//t = "2221228727"; // Autismus Leben gGmbH t = "2221228727"; // Autismus Leben gGmbH
//t = "5065709552"; // Biotop e.V. //t = "5065709552"; // Biotop e.V.
//t = "9094672461"; // Toprak GmbH //t = "9094672461"; // Toprak GmbH
//t = "9008813932"; // Aids Hilfe Giessen //t = "9008813932"; // Aids Hilfe Giessen
//t = "4052216789"; // Perspektiven e.V. //t = "4052216789"; // Perspektiven e.V.
t = "3341456098"; // Hilfe Daheim (Hand in Hand) //t = "3341456098"; // Hilfe Daheim (Hand in Hand)
return t; return t;
#else #else

View File

@@ -825,8 +825,8 @@ namespace BeWo.Service.ServiceImplementations
{ {
try try
{ {
//var urlneu = ConfigurationManager.AppSettings.Get("RssFeedUrl"); var urlneu = ConfigurationManager.AppSettings.Get("RssFeedUrl");
var urlneu = "http://bsnewsmaster.beyondsoft.de/news_rss.php?ClientOID=236180486&CategoryOID=2002858128"; //var urlneu = "http://bsnewsmaster.beyondsoft.de/news_rss.php?ClientOID=236180486&CategoryOID=2002858128";
if (string.IsNullOrEmpty(urlneu)) if (string.IsNullOrEmpty(urlneu))

View File

@@ -485,6 +485,9 @@ namespace BS.Shared
ServiceRecordAllowEditAfterMindays = 22002, ServiceRecordAllowEditAfterMindays = 22002,
DocumentsAllowViewAll = 22010, DocumentsAllowViewAll = 22010,
DocumentsDownloadAll = 22011, DocumentsDownloadAll = 22011,
DocumentsEditFolders = 22012,
DocumentsUploadAll = 22013,
DocumentsDeleteAll = 22014,
Customer_ViewMedication = 22100, Customer_ViewMedication = 22100,
Customer_ViewDiagnosis = 22101, Customer_ViewDiagnosis = 22101,
@@ -606,8 +609,8 @@ namespace BS.Shared
ResourceCategory = 6, ResourceCategory = 6,
EnvironmentPersonType = 7, EnvironmentPersonType = 7,
CustomerCareType = 8, CustomerCareType = 8,
SupportConceptGoalCategoryType = 9, SupportConceptGoalCategoryType = 9, // Ziele im allg. Verwaltungs Katalog
SupportConceptGoalType = 10, SupportConceptGoalType = 10, // Maßnahmen im allg. Verwaltungs Katalog
TitleType = 11, TitleType = 11,
FunctionType = 12, FunctionType = 12,
PlacementObjectiveType = 13, PlacementObjectiveType = 13,

View File

@@ -571,6 +571,15 @@ namespace BS.Shared.Core
{ {
UserRightType.DocumentsDownloadAll, Translator.Translate("Dokumente herunterladen") UserRightType.DocumentsDownloadAll, Translator.Translate("Dokumente herunterladen")
}, },
{
UserRightType.DocumentsUploadAll, Translator.Translate("Dokumente hochladen")
},
{
UserRightType.DocumentsDeleteAll, Translator.Translate("Dokumente löschen")
},
{
UserRightType.DocumentsEditFolders, Translator.Translate("Dokumente Ordner bearbeiten")
},
{ {
UserRightType.ServiceRecordAllowEditAfterMindays, Translator.Translate("Zeiterfassung Einträge nach Ablauf der Eingabefrist bearbeiten") UserRightType.ServiceRecordAllowEditAfterMindays, Translator.Translate("Zeiterfassung Einträge nach Ablauf der Eingabefrist bearbeiten")
}, },

View File

@@ -70,7 +70,11 @@
public static string ShowKlientenBetreuungszeiten => "ShowKlientenBetreuungszeiten"; public static string ShowKlientenBetreuungszeiten => "ShowKlientenBetreuungszeiten";
public static string ShowInfoButtonInCalender => "ShowInfoButtonInCalender"; public static string ShowInfoButtonInCalender => "ShowInfoButtonInCalender";
public static string ShowHilfeplanStatistikReport => "ShowHilfeplanStatistikReport";
} }
} }

View File

@@ -34,6 +34,7 @@
Stundenzettel, Stundenzettel,
VorlagenReport, VorlagenReport,
AbwesenheitsPrintReport, AbwesenheitsPrintReport,
MitarbeiterKlientenReport MitarbeiterKlientenReport,
HilfeplanStatistik,
} }
} }