Sortierung nach Klienten->Teams, Sortierung von Bargeldkassen, Statistik im ServiceRecordEditView

This commit is contained in:
Christian
2024-04-25 02:15:41 +02:00
parent 045a656cf4
commit e895acf4e0
25 changed files with 732 additions and 162 deletions

View File

@@ -813,6 +813,7 @@ namespace BeWo
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.ZeigeNurMeineTermine, _AppSettings.ZeigeNurMeineTermine ? "1" : "0", _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, _AppSettings.LastSelectedServiceRecordTimeIntervalDays.ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, _AppSettings.LastSelectedServiceRecordMonth.ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastKassenSortOrder, _AppSettings.LastKassenSortOrder.ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LetzteZeiterfassungsDauer, ((int)_AppSettings.LetzteZeiterfassungsDauer).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerViewType, ((int) _AppSettings.SchedulerViewType).ToString(), _LoggedOnUser.Settings);
UserSettingsUtils.SetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.SchedulerTimelineViewDayCount, (_AppSettings.SchedulerTimelineViewDayCount).ToString(), _LoggedOnUser.Settings);
@@ -1015,7 +1016,12 @@ namespace BeWo
{
_AppSettings.LastSelectedServiceRecordMonth = Convert.ToDateTime(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastSelectedServiceRecordMonth, settings));
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastKassenSortOrder, settings);
if (val != null)
{
_AppSettings.LastKassenSortOrder = Convert.ToInt32(UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LastKassenSortOrder, settings));
}
val = UserSettingsUtils.GetSettingValue(SettingsType.ApplicationSettings, SettingsKeys.LetzteZeiterfassungsDauer, settings);
if(val != null)

View File

@@ -38,6 +38,8 @@ namespace BeWo.Core.Config
private DateTime mLastSelectedServiceRecordMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
private int mLastKassenSortOrder = 1;
private ZeiterfassungsDauer mLetzteZeiterfassungsDauer = ZeiterfassungsDauer.Minuten;
public enum WindowStateType
@@ -335,6 +337,22 @@ namespace BeWo.Core.Config
}
}
public int LastKassenSortOrder
{
get { return mLastKassenSortOrder; }
set
{
if (mLastKassenSortOrder != value)
{
mLastKassenSortOrder = value;
IsDirty = true;
}
}
}
public int ServiceRecordAllowChangeHours

View File

@@ -52,6 +52,10 @@
</view:BeWoView.Resources>
<GroupBox Header="Bargeldkassen" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
@@ -153,7 +157,11 @@
</Border>
</controls:PopupNonTopmost>
</StackPanel>
<TabControl Grid.Row="1" Margin="5" ItemsSource="{Binding VMList}" x:Name="tabcontrol_bargeldkassen" Visibility="{Binding VMList.Count, Converter={StaticResource CollectionCountToVisibilityConverter}}">
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Stretch">
<Label Content="Sortierung" />
<ComboBox Height="23" x:Name="SortComboBox" Margin="3" VerticalAlignment="Top" MinWidth="180" 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.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">

View File

@@ -17,7 +17,7 @@ using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DevExpress.Utils;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
@@ -103,6 +103,66 @@ namespace BeWo.View
}
}
private void SortiereKassen()
{
if (ViewModel != null && tabcontrol_bargeldkassen != null)
{
var alterIndex = tabcontrol_bargeldkassen.SelectedIndex;
tabcontrol_bargeldkassen.ItemsSource = null;
//var sorted =
if (SortComboBox.SelectedIndex == 0)
{
ViewModel.VMList.Sort((a, b) => Comparer<String>.Default.Compare(a.Kassenname, b.Kassenname));
//sorted = r.OrderBy(k => k.Kassenname).ToList();
}
else if (SortComboBox.SelectedIndex == 1)
{
ViewModel.VMList.Sort((a, b) => Comparer<long?>.Default.Compare(a.DataContract.BargeldkassenOid, b.DataContract.BargeldkassenOid));
//sorted = r.OrderBy(k => k.BargeldkassenOid).ToList();
}
else
{
ViewModel.VMList.Sort((a, b) => Comparer<long?>.Default.Compare(a.DataContract.BargeldkassenOid, b.DataContract.BargeldkassenOid) * -1);
//sorted = r.OrderByDescending(k => k.BargeldkassenOid).ToList();
}
tabcontrol_bargeldkassen.ItemsSource = ViewModel.VMList;
if (alterIndex == -1)
{
alterIndex = 0;
}
else
{
while (alterIndex > ViewModel.VMList.Count)
{
alterIndex--;
}
}
tabcontrol_bargeldkassen.SelectedIndex = alterIndex;
}
}
private void SelektiereKasse(String kassenname)
{
if (!String.IsNullOrEmpty(kassenname))
{
var index = tabcontrol_bargeldkassen.SelectedIndex;
int idx = 0;
foreach (var item in tabcontrol_bargeldkassen.Items)
{
var vm = item as BargeldkassenVM;
if (vm?.Kassenname == kassenname)
{
index = idx;
}
idx++;
}
tabcontrol_bargeldkassen.SelectedIndex = index;
}
}
private readonly TableID currentObjectTid;
private readonly long currentObjectOid;
@@ -117,7 +177,8 @@ namespace BeWo.View
public BargeldkassenView(TableID objectTid, long objectOid)
{
InitializeComponent();
InitSortCombos();
_JahresComboBoxSource = new List<int>();
for (var i = 9; i >= 0; i--)
{
@@ -133,7 +194,7 @@ namespace BeWo.View
InitRights();
ReloadViewModel();
ReloadViewModel(true, null);
if (tabcontrol_bargeldkassen != null && tabcontrol_bargeldkassen.SelectedIndex == -1)
@@ -142,6 +203,26 @@ namespace BeWo.View
}
}
private void InitSortCombos()
{
var list = new List<KassenSortOrderItem>();
list.Add(new KassenSortOrderItem(KassenSortOrderEnum.NachName));
list.Add(new KassenSortOrderItem(KassenSortOrderEnum.NachDatumAufsteigend));
list.Add(new KassenSortOrderItem(KassenSortOrderEnum.NachDatumAbsteigend));
SortComboBox.DisplayMemberPath = "Name";
SortComboBox.ItemsSource = list;
if (BeWoApp.AppSettings.LastKassenSortOrder < list.Count)
{
SortComboBox.SelectedIndex = BeWoApp.AppSettings.LastKassenSortOrder;
}
}
private void InitRights()
@@ -175,7 +256,17 @@ namespace BeWo.View
}
private void ReloadViewModel()
private void ReloadViewModelMitSortierung()
{
ReloadViewModel(true, null);
}
private void ReloadViewModelOhneSortierung()
{
ReloadViewModel(false, null);
}
private void ReloadViewModel(bool sortiereKassen, String selectedKassenname)
{
var previouslySelectedTab = tabcontrol_bargeldkassen.SelectedIndex;
@@ -184,30 +275,15 @@ namespace BeWo.View
{
if (r.Any())
{
int? alteAnzahl = null;
if (ViewModel != null)
{
alteAnzahl = ViewModel.VMList.Count;
}
ViewModel = new BargeldkassenListVM(r);
var neueAnzahl = ViewModel.VMList.Count;
//if (sortiereKassen)
//{
SortiereKassen();
//}
if (alteAnzahl != null && neueAnzahl > alteAnzahl)
{
tabcontrol_bargeldkassen.SelectedIndex = neueAnzahl - 1;
}
else if (previouslySelectedTab > -1)
{
tabcontrol_bargeldkassen.SelectedIndex = previouslySelectedTab;
}
else
{
tabcontrol_bargeldkassen.SelectedIndex = 0;
}
SelektiereKasse(selectedKassenname);
ViewModel.VMList.DoForEach(d => d.Bargeldtransaktionen.VMList.ListChanged += (sender, args) =>
{
@@ -231,7 +307,8 @@ namespace BeWo.View
{
bargeldkasse.RecalculateTransaktionsbestaende();
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(bargeldkasse.CommitToDataContract()), r2 => this.Dispatch(ReloadViewModel));
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(bargeldkasse.CommitToDataContract()), r2 => this.Dispatch(ReloadViewModelOhneSortierung));
}
}
});
@@ -299,7 +376,7 @@ namespace BeWo.View
selectedBargeldkasse.RecalculateTransaktionsbestaende();
var kb = selectedBargeldkasse.Kassenbestand;
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(selectedBargeldkasse.CommitToDataContract()), r => this.Dispatch(ReloadViewModel));
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(selectedBargeldkasse.CommitToDataContract()), r => this.Dispatch(ReloadViewModelOhneSortierung));
}
private void LinkZahlungsbelegDruckenClick(object sender, RoutedEventArgs e)
@@ -324,6 +401,7 @@ namespace BeWo.View
var neu = ViewModel.NewVM;
neu.ObjectOid = currentObjectOid;
neu.ObjectTid = currentObjectTid;
String name = neu.Kassenname;
ServiceFacade.DoOperationsServiceAsync(s => s.InsertNewBargeldkasse(neu.CommitToDataContract()), r => this.Dispatch(delegate
{
@@ -331,7 +409,7 @@ namespace BeWo.View
ViewModel.NewVM = new BargeldkassenVM(new BargeldkassenDC());
ReloadViewModel();
ReloadViewModel(true, name);
}));
}
@@ -401,7 +479,7 @@ namespace BeWo.View
OnPropertyChanged("NewBargeldtransaktion");
OnPropertyChanged("SelectedBargeldkasse");
ReloadViewModel();
ReloadViewModel(false, null);
}));
}
@@ -444,7 +522,7 @@ namespace BeWo.View
ViewModel.VMList.Remove(selectedBargeldkasse);
ServiceFacade.DoOperationsServiceAsync(s => s.DeactivateBargeldkasse(selectedBargeldkasse.DataContract.BargeldkassenOid.Value, selectedBargeldkasse.DataContract.BargeldkassenVersion.Value), () => this.Dispatch(ReloadViewModel));
ServiceFacade.DoOperationsServiceAsync(s => s.DeactivateBargeldkasse(selectedBargeldkasse.DataContract.BargeldkassenOid.Value, selectedBargeldkasse.DataContract.BargeldkassenVersion.Value), () => this.Dispatch(ReloadViewModelOhneSortierung));
}
private void AuszahlungsIntervallCBEditValueChanged(object sender, EditValueChangedEventArgs e)
@@ -461,7 +539,7 @@ namespace BeWo.View
return;
}
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(bargeldkasse.CommitToDataContract()), r => this.Dispatch(ReloadViewModel));
ServiceFacade.DoOperationsServiceAsync(s => s.UpdateBargeldkasse(bargeldkasse.CommitToDataContract()), r => this.Dispatch(ReloadViewModelOhneSortierung));
}
public event PropertyChangedEventHandler PropertyChanged;
@@ -506,8 +584,52 @@ namespace BeWo.View
{
popup.IsOpen = false;
ReloadViewModel();
ReloadViewModel(false, null);
}));
}
private void SortComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
BargeldkassenVM selectedVM = tabcontrol_bargeldkassen.SelectedItem as BargeldkassenVM;
String lastName = null;
if (selectedVM != null)
{
lastName = selectedVM.Kassenname;
}
SortiereKassen();
SelektiereKasse(lastName);
BeWoApp.AppSettings.LastKassenSortOrder = SortComboBox.SelectedIndex;
BeWoApp.SaveAppSettings();
}
}
public class KassenSortOrderItem
{
public KassenSortOrderItem(KassenSortOrderEnum e)
{
SortOrderEnum = e;
}
public KassenSortOrderEnum SortOrderEnum { get; set; }
public String Name
{
get
{
switch (SortOrderEnum)
{
case KassenSortOrderEnum.NachName:
return Translator.Translate("Nach Name");
case KassenSortOrderEnum.NachDatumAufsteigend:
return Translator.Translate("Nach Datum (aufsteigend)");
case KassenSortOrderEnum.NachDatumAbsteigend:
return Translator.Translate("Nach Datum (absteigend)");
}
return "";
}
}
}
}

View File

@@ -469,10 +469,10 @@
<uc:NullItemComboBox x:Name="comboBox_HourlyRate" DisplayMemberPath="UnitName" ItemsSource="{Binding Path=AllHourlyRateCostRatePeriods}" Visibility="{Binding IsHourlyRateComboVisible, Converter={StaticResource BoolVisibilityConverter}}"
Grid.Column="1" Grid.Row="4" Margin="3" Height="23" SelectedValue="{Binding Path=HourlyRateCostRatePeriod, Mode=TwoWay}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.000" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="5" Margin="3" Height="23" EditValue="{Binding Path=WeeklyFLS, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.000" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="6" Margin="3" Height="23" EditValue="{Binding Path=MonthlyFLS, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.00#" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="7" Margin="3" Height="23" EditValue="{Binding Path=WeeklyTotalHours, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.00#" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="8" Margin="3" Height="23" EditValue="{Binding Path=MonthlyTotalHours, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.000" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="5" Margin="3" Height="23" AllowNullInput="True" EditValue="{Binding Path=WeeklyFLS, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.000" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="6" Margin="3" Height="23" AllowNullInput="True" EditValue="{Binding Path=MonthlyFLS, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.00#" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="7" Margin="3" Height="23" AllowNullInput="True" EditValue="{Binding Path=WeeklyTotalHours, UpdateSourceTrigger=PropertyChanged}" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.00#" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="8" Margin="3" Height="23" AllowNullInput="True" EditValue="{Binding Path=MonthlyTotalHours, UpdateSourceTrigger=PropertyChanged}" />
<dxe:SpinEdit MinValue="0" MaxValue="7" IsFloatValue="False" Grid.Column="1" Grid.Row="9" Margin="3" Height="23" EditValue="{Binding Path=WeeklyDays, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}"/>
<dxe:TextEdit MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="10" Margin="3" Height="23" EditValue="{Binding Path=EmploymentType.LeaveDays, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding EmploymentTypeLeaveDaysVisibility, UpdateSourceTrigger=PropertyChanged}" IsEnabled="False" />
<dxe:TextEdit MaskType="Numeric" Mask="########0.00" MaskUseAsDisplayFormat="True" Grid.Column="1" Grid.Row="10" Margin="3" Height="23" EditValue="{Binding Path=LeaveDays, UpdateSourceTrigger=PropertyChanged}" Visibility="{Binding LeaveDaysVisibility, UpdateSourceTrigger=PropertyChanged}" IsEnabled="True" />

View File

@@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:localViewControls="clr-namespace:BeWo.View.Controls"
xmlns:localViewModel="clr-namespace:BeWo.ViewModel"
xmlns:t="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:localSearchView="clr-namespace:BeWo.View.Search"
xmlns:val="clr-namespace:BeWo.Validation"
@@ -61,58 +62,190 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!--<ComboBox x:Name="customerComboBox" IsSynchronizedWithCurrentItem="True" AlternationCount="-1" ItemTemplate="{DynamicResource CustomerComboBoxItemTemplate}" SelectionChanged="customerComboBox_SelectionChanged" Height="62" ItemsPanel="{DynamicResource CustomerComboBoxItemsPanelTemplate}" Background="{DynamicResource SupportConceptListBrush}" HorizontalContentAlignment="Stretch" Style="{DynamicResource ObjectComboBoxStyle}" />-->
<localViewControls:SingleSupportConceptSelectionControl x:Name="supportConceptSelectionControl"
ItemSelected="SupportConceptSelectionControl_ItemSelected" Height="62" VerticalAlignment="Top"
HorizontalContentAlignment="Stretch" />
<!--Grid Grid.Row="1" Margin="0,0,0,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock TextWrapping="Wrap" VerticalAlignment="Stretch" Text="{Binding Path=Information}" Foreground="#FF000000" Margin="0,35,0,0" />
</Grid-->
<Grid Grid.Column="1" Grid.RowSpan="2" VerticalAlignment="Top" Margin="5,0,0,0" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="195" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" MinHeight="24" />
<RowDefinition Height="Auto" MinHeight="24" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<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>
</ScrollViewer>
</Grid>
<Grid Grid.Row="0" VerticalAlignment="Top" Margin="10,3,0,0" Grid.Column="3" Visibility="{Binding HasStatistics, Converter={StaticResource BoolVisibilityConverter}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Margin ="3,-2,0,0" Grid.Column="0" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<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" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Bewilligungszeitraum:" Height="14" />
<TextBlock x:Name="lblStatisticInfo1" Grid.Column="0" Grid.Row="1" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Geleistet diese Woche/Gesamt:" Height="14" />
<TextBlock x:Name="lblStatisticInfo2" Grid.Column="0" Grid.Row="2" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Bewilligt pro Woche/Gesamt:" Height="14" />
<TextBlock x:Name="lblStatisticInfo3" Grid.Column="0" Grid.Row="3" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Frei pro Woche(Ø)/Gesamt:" Height="14" />
<TextBlock x:Name="lblStatisticInfo4" Grid.Column="0" Grid.Row="4" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Geleistet/bewilligt pro Monat:" Visibility="Collapsed" Height="14"/>
<TextBlock x:Name="lblStatisticInfo5" Grid.Column="0" Grid.Row="5" Foreground="{DynamicResource BigInfoTextBrush}"
Text="Übertrag Monat:" Visibility="Collapsed" Height="14"/>
</Grid>
<ListBox Margin="3,-3,0,0" Grid.Column="1"
ItemsSource="{Binding Statistics}"
BorderThickness="0"
ScrollViewer.CanContentScroll="False"
Background="{x:Null}"
IsTabStop="False"
VerticalAlignment="Top"
x:Name="serviceRecordListBox">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type localViewModel:SupportConceptPeriodStatisticsVM}">
<Border x:Name="ItemBorder" BorderThickness="0,0,1,0" Margin="0,0,4,0" Padding="0,0,4,0" BorderBrush="#FF888888">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="12" />
<ColumnDefinition Width="Auto" />
<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" />
</Grid.RowDefinitions>
<TextBlock x:Name="txtStatisticInfoHeader" Grid.Column="0" Grid.Row="0"
Text="{Binding Path=Header}" Grid.ColumnSpan="4"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
<TextBlock x:Name="txtStatisticInfo1Left" Grid.Column="0" Grid.Row="1"
Text="{Binding Path=StatisticInfo1Left}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
<StackPanel x:Name="panelStatisticInfo1Error" Grid.Column="2" Grid.Row="1" Orientation="Horizontal" >
<TextBlock x:Name="txtStatisticInfo1Right"
Text="{Binding Path=StatisticInfo1Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
<TextBlock x:Name="txtStatisticInfo1Error"
Text="{Binding Path=StatisticInfo1Error}" ToolTip="Diese Stunden liegen außerhalb des Bewilligungszeitraums!"
FontWeight="Bold" FontSize="12" Foreground="Red" Height="14"/>
</StackPanel>
<TextBlock x:Name="txtStatisticInfo2Left" Grid.Column="0" Grid.Row="2"
Text="{Binding Path=StatisticInfo2Left}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo2Left, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo2Right" Grid.Column="2" Grid.Row="2"
Text="{Binding Path=StatisticInfo2Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo2Right, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo3Left" Grid.Column="0" Grid.Row="3"
Text="{Binding Path=StatisticInfo3Left}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo3Left, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo3Right" Grid.Column="2" Grid.Row="3"
Text="{Binding Path=StatisticInfo3Right}"
FontWeight="Bold" FontSize="12" Foreground="{Binding Path=StatisticInfo3ForegroundColor}" Height="14" Visibility="{Binding StatisticInfo3Right, Converter={StaticResource ObjectVisibilityConverter}}" ToolTip="{Binding Path=StatisticInfo3Tooltip}"/>
<TextBlock x:Name="txtStatisticInfo4Left" Grid.Column="0" Grid.Row="4"
Text="{Binding Path=StatisticInfo4Left}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo4Left, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo4Right" Grid.Column="2" Grid.Row="4"
Text="{Binding Path=StatisticInfo4Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo4Right, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo5Left" Grid.Column="0" Grid.Row="5"
Text="{Binding Path=StatisticInfo5Left}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo5Left, Converter={StaticResource ObjectVisibilityConverter}}"/>
<TextBlock x:Name="txtStatisticInfo5Right" Grid.Column="2" Grid.Row="5"
Text="{Binding Path=StatisticInfo5Right}"
FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14" Visibility="{Binding StatisticInfo5Right, Converter={StaticResource ObjectVisibilityConverter}}"/>
</Grid>
</Border>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True" />
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}, Mode=FindAncestor}}" Value="True" />
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
<Grid Grid.Column="0" Grid.Row="1" VerticalAlignment="Top" Margin="0,8,0,0" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="184" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" MinHeight="24" />
<RowDefinition Height="Auto" MinHeight="24" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label x:Name="lblEmployee" Grid.Column="0" Grid.Row="0" Content="{t:Translate MitarbeiterSingular}" />
<uc:PopUpEdit IsReadOnly="True" x:Name="popupedit_employee"
<Label x:Name="lblEmployee" Grid.Column="0" Grid.Row="0" Content="{t:Translate MitarbeiterSingular}" />
<uc:PopUpEdit IsReadOnly="True" x:Name="popupedit_employee"
DeleteButtonVisibility="Collapsed" PopUpClick="PopupEdit_Employee_PopUpClick"
HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Height="23"
Grid.Column="1" Grid.ColumnSpan="1" Grid.Row="0" Margin="3,0,3,3"
PreviewMouseDoubleClick="Popupedit_employee_OnPreviewMouseDoubleClick"
Cursor="Arrow" />
<Label Grid.Column="0" Grid.Row="1" Content="Ziele" Visibility="{Binding Path=IsGoalTreeVisible, Converter={StaticResource BoolVisibilityConverter}}" />
<Label Grid.Column="0" Grid.Row="1" Content="Ziele" Visibility="{Binding Path=IsGoalTreeVisible, Converter={StaticResource BoolVisibilityConverter}}" />
<localViewControls:ComboBoxTreeViewControl Grid.RowSpan="1" Grid.Column="1" Grid.Row="1" Margin="0"
x:Name="ComboBoxTreeViewControl"
TreeViewSourceList="{Binding Path=GoalTree, Mode=TwoWay}"
Visibility="{Binding Path=IsGoalTreeVisible, Converter={StaticResource BoolVisibilityConverter}}" SelectOnlyLeafs="False" ShowRatingPanel="True"/>
<Label Grid.Column="0" Grid.Row="2" Content="Kategorie" />
<ComboBox Grid.Column="1" Grid.Row="2" SelectedItem="{val:ValidationBinding Path=Category, Mode=TwoWay}" ItemsSource="{Binding Path=SortedCategories}" SelectedIndex="0" x:Name="combobox_category" Margin="3,0,3,3" Height="23" />
<Label Grid.Column="0" Grid.Row="3" Content="Leistung" />
<ComboBox Grid.Column="1" Grid.Row="3" SelectedItem="{val:ValidationBinding Path=ServiceDescription, Mode=TwoWay}" ItemsSource="{Binding Path=PossibleServiceDescriptions}" SelectedIndex="0" x:Name="combobox_services" Margin="3,0,3,3" Height="23" />
<Border Grid.Row="4" Grid.ColumnSpan="2" BorderThickness="0,0,0,1" Margin="3,3,3,3" BorderBrush="#FF86878F" Padding="0,0,0,3">
<CheckBox Content="Freie/Inhaltliche Doku"
<Label Grid.Column="0" Grid.Row="2" Content="Kategorie" />
<ComboBox Grid.Column="1" Grid.Row="2" SelectedItem="{val:ValidationBinding Path=Category, Mode=TwoWay}" ItemsSource="{Binding Path=SortedCategories}" SelectedIndex="0" x:Name="combobox_category" Margin="3,0,3,3" Height="23" />
<Label Grid.Column="0" Grid.Row="3" Content="Leistung" />
<ComboBox Grid.Column="1" Grid.Row="3" SelectedItem="{val:ValidationBinding Path=ServiceDescription, Mode=TwoWay}" ItemsSource="{Binding Path=PossibleServiceDescriptions}" SelectedIndex="0" x:Name="combobox_services" Margin="3,0,3,3" Height="23" />
<Border Grid.Row="4" Grid.ColumnSpan="2" BorderThickness="0,0,0,0" Margin="3,3,3,3" BorderBrush="#FF86878F" Padding="0,0,0,3">
<CheckBox Content="Freie/Inhaltliche Doku"
x:Name="chkServiceRecordTypeContent" IsChecked="{Binding Path=IsServiceRecordTypeContent}"
Visibility="Visible" />
</Border>
</Border>
</Grid>
<Grid Grid.Column="1" Grid.Row="1" VerticalAlignment="Top" Margin="8,8,0,0" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!--################################################################ Start Der Grid Für Die Zeiterfassungsarten ################################################################-->
<!--################################################################ Start Der Grid Für Die Zeiterfassungsarten ################################################################-->
<!--########################################## Grid Bereich für Original #####################-->
<Grid Grid.Column="0" Grid.Row="5" ColumnSpan="2" x:Name="GridOhneEnddatum" Visibility="Collapsed">
<Grid Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" x:Name="GridOhneEnddatum" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"/>
<ColumnDefinition Width="62" />
@@ -170,7 +303,7 @@
<!--########################################## Grid Bereich für Mit EndDatum #####################-->
<Grid Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="2" x:Name="GridMitEnddatum" Visibility="Visible">
<Grid Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" x:Name="GridMitEnddatum" Visibility="Visible" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="88" />
@@ -276,7 +409,7 @@
<!--########################## Gefahrene Kilometer 52 ##########################################################-->
<Grid Grid.Column="0" Grid.Row="6" ColumnSpan="2" x:Name="DauerGrid" Visibility="Visible">
<Grid Grid.Column="0" Grid.Row="1" ColumnSpan="2" x:Name="DauerGrid" Visibility="Visible">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="62" />
@@ -295,7 +428,7 @@
</Grid>
<Grid Grid.Column="0" Grid.Row="7" ColumnSpan="2" Visibility="Visible">
<Grid Grid.Column="0" Grid.Row="2" ColumnSpan="2" Visibility="Visible">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="62" />

View File

@@ -25,6 +25,7 @@ using BS.Shared.Translation;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.RichEdit;
using SupportConceptService = BeWo.Core.Service.SupportConceptService;
using System.Windows.Media;
namespace BeWo.View.Detail.Zeiterfassung
{
@@ -157,8 +158,9 @@ namespace BeWo.View.Detail.Zeiterfassung
_OldServiceDescription = _ServiceRecordVM.ServiceDescription;
//_SelectedEmployee = clone.Employee;
DataContext = _ServiceRecordVM;
_ServiceRecordVM.Statistics = pListViewModel.Statistics;
DataContext = _ServiceRecordVM;
if(_ServiceRecordVM.Employee != null)
{
@@ -187,6 +189,7 @@ namespace BeWo.View.Detail.Zeiterfassung
}
ViewModel = pListViewModel;
CreateCustomStatistic();
Focus();
TextboxNotice.Focus();
@@ -1040,5 +1043,124 @@ namespace BeWo.View.Detail.Zeiterfassung
}
}
private void CreateCustomStatistic()
{
if (ViewModel.RecordStatisticsDC != null)
{
var info = ViewModel.RecordStatisticsDC;
StatisticInfoGrid.Children.Clear();
StatisticInfoGrid.ColumnDefinitions.Clear();
StatisticInfoGrid.RowDefinitions.Clear();
if (info.Header != null)
{
StatisticInfoGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Auto)
});
foreach (var header in info.Header)
{
StatisticInfoGrid.RowDefinitions.Add(new RowDefinition());
}
int rowIndex = 0;
foreach (var header in info.Header)
{
var txt = new TextBlock();
txt.SetValue(Grid.ColumnProperty, 0);
txt.SetValue(Grid.RowProperty, rowIndex);
txt.Foreground =
new SolidColorBrush(
(Color)ColorConverter.ConvertFromString(info.ForegroundColor[rowIndex]));
txt.Height = 14;
txt.Text = header;
StatisticInfoGrid.Children.Add(txt);
rowIndex++;
}
if (info.PeriodStatisticInfos != null)
{
foreach (var periodInfo in info.PeriodStatisticInfos)
{
StatisticInfoGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Auto)
});
StatisticInfoGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Auto)
});
}
int colIndex = 1;
foreach (var periodInfo in info.PeriodStatisticInfos)
{
rowIndex = 0;
foreach (var lv in periodInfo.LeftValues)
{
if (!String.IsNullOrEmpty(lv))
{
var txt = new TextBlock();
txt.SetValue(Grid.ColumnProperty, colIndex);
txt.SetValue(Grid.RowProperty, rowIndex);
txt.Foreground = new SolidColorBrush(
(Color)ColorConverter.ConvertFromString(periodInfo.LeftValueColors[rowIndex]));
txt.Height = 12;
txt.FontWeight = FontWeights.Bold;
txt.Text = lv;
txt.HorizontalAlignment = HorizontalAlignment.Right;
txt.Margin = new Thickness(10, 0, 0, 0);
txt.Padding = new Thickness(1, 0, 1, 0);
if (String.IsNullOrEmpty(periodInfo.RightValues[rowIndex]))
{
txt.SetValue(Grid.ColumnSpanProperty, 2);
}
StatisticInfoGrid.Children.Add(txt);
//<TextBlock x:Name="txtStatisticInfoHeader" Grid.Column="0" Grid.Row="0"
// Text="{Binding Path=Header}" Grid.ColumnSpan="4"
// FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
}
if (!String.IsNullOrEmpty(periodInfo.RightValues[rowIndex]))
{
var txt = new TextBlock();
txt.SetValue(Grid.ColumnProperty, colIndex + 1);
txt.SetValue(Grid.RowProperty, rowIndex);
txt.Foreground =
new SolidColorBrush(
(Color)ColorConverter.ConvertFromString(
periodInfo.RightValueColors[rowIndex]));
txt.Height = 12;
txt.FontWeight = FontWeights.Bold;
txt.Text = periodInfo.RightValues[rowIndex];
txt.HorizontalAlignment = HorizontalAlignment.Right;
txt.Margin = new Thickness(10, 0, 0, 0);
txt.Padding = new Thickness(1, 0, 1, 0);
StatisticInfoGrid.Children.Add(txt);
//<TextBlock x:Name="txtStatisticInfoHeader" Grid.Column="0" Grid.Row="0"
// Text="{Binding Path=Header}" Grid.ColumnSpan="4"
// FontWeight="Bold" FontSize="12" Foreground="{DynamicResource BigInfoTextBrush}" Height="14"/>
}
rowIndex++;
}
colIndex += 2;
}
}
}
}
}
}
}

View File

@@ -1188,7 +1188,7 @@ namespace BeWo.View.Detail.Zeiterfassung
double height = MainControl.ActualHeight * 0.8;
double width = 710;
double width = 810;
if (BeWoApp.AppSettings.ShowRtfTextfield)
{

View File

@@ -11,12 +11,13 @@ namespace BeWo.View.Navigation.Sorter
get
{
List<SortItem> list = new List<SortItem>();
list.Add(new SortItem("Nachname", "LastName"));
list.Add(new SortItem("Nachname", "LastNameFirstName"));
list.Add(new SortItem("Vorname", "FirstName"));
list.Add(new SortItem("Geburtsdatum", "DateOfBirth"));
list.Add(new SortItem("Strasse", "Street"));
list.Add(new SortItem("PLZ", "PostalCode"));
list.Add(new SortItem("Ort", "Town"));
list.Add(new SortItem("Team", "Teams"));
return list;
}

View File

@@ -211,6 +211,18 @@ namespace BeWo.ViewModel.ListViewModel
public static List<DarreichungsformDC> AllDosageForms { get; private set; }
internal void FetchStatistics(long costBearer2SupportConceptOid)
{
DateTime stichtag = DateTime.Now;
var recordStats = ServiceFacade.DoOperationsServiceSync(s => s.GetServiceRecordStatisticInfo(costBearer2SupportConceptOid, stichtag));
var scStats = ServiceFacade.DoOperationsServiceSync(s => s.CreateSupportConceptStatistics(costBearer2SupportConceptOid, stichtag));
RecordStatisticsDC = recordStats;
StatisticsDC = scStats;
Statistics = CreateStatisticVMList(scStats);
}
//CB EINKOMMENTIEREN
//public WohnheimbuchungsVM SelectedWohnheimbuchung
//{
@@ -1169,6 +1181,8 @@ namespace BeWo.ViewModel.ListViewModel
r => DispatcherObject.Dispatch(delegate
{
StatisticsDC = r;
RecordStatisticsDC = stinf;
if (stinf != null && StatisticInfosLoaded != null)
{
StatisticInfosLoaded(stinf, new EventArgs());
@@ -1631,6 +1645,7 @@ namespace BeWo.ViewModel.ListViewModel
return 0;
}
public ServiceRecordStatisticsInfoDC RecordStatisticsDC { get; set; }
public SupportConceptStatisticsDC StatisticsDC { get; set; }
internal static GroupDurationDC CalculateGroupDuration(int personCount, int employeeCount, decimal totalDuration, List<long> costBearer2SupportConceptList)

View File

@@ -216,6 +216,7 @@ namespace BeWo.ViewModel
private string _EndTimeString;
private List<SupportConceptPeriodStatisticsVM> _Statistics;
private string[] _MonateBinden =
{
@@ -2034,9 +2035,25 @@ namespace BeWo.ViewModel
}
}
}
#endregion
public List<SupportConceptPeriodStatisticsVM> Statistics
{
get { return _Statistics; }
set
{
_Statistics = value;
FirePropertyChanged("Statistics");
FirePropertyChanged("HasStatistics");
}
}
public bool HasStatistics
{
get { return _Statistics != null && _Statistics.Count > 0; }
}
#region Public Methods
public void ChangeGoalTree(List<ValueListEntryDC> goalCats, List<ValueListEntryDC> goals) //, List<ValueListEntryDC> goalsAndCats)

View File

@@ -204,6 +204,12 @@ namespace BeWo.ownChat
_ServiceRecord.SetInsertedOn(DateTime.Now);
var hideCustomerCombo = _ServiceRecord.SupportConcept == null;
if (cb2ScOid.HasValue)
{
vm.FetchStatistics(cb2ScOid.Value);
}
serviceRecordEditView.InitView(vm, _ServiceRecord, hideCustomerCombo);
serviceRecordEditView.SetSearchText(customerCompact != null ? customerCompact.LastName : "");

View File

@@ -8,7 +8,7 @@
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<ProjectView>ShowAllFiles</ProjectView>
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>

View File

@@ -150,5 +150,24 @@ namespace BeWo.Data.Entities
}
return false;
}
public virtual decimal BerechneStunden()
{
DateTime dt = DateTime.Now;
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", dt, UhrzeitVon);
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", dt, UhrzeitBis);
DateTime date1;
DateTime date2;
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
{
return (decimal)date2.Subtract(date1).TotalHours;
}
return 0;
}
}
}

View File

@@ -268,7 +268,7 @@ namespace BeWo.Report.DefaultReports
// xrTableCell22
//
this.xrTableCell22.ExpressionBindings.AddRange(new DevExpress.XtraReports.UI.ExpressionBinding[] {
new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[ServiceRecordNotice]")});
new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[ServiceRecordNotice2]")});
this.xrTableCell22.Multiline = true;
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Text = "Angabe zum Inhalt der Kontaktzeit";
@@ -482,28 +482,24 @@ namespace BeWo.Report.DefaultReports
//
// formattingRuleStartDate
//
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
this.formattingRuleStartDate.DataMember = "ServicesDouble";
this.formattingRuleStartDate.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.formattingRuleStartDate.Name = "formattingRuleStartDate";
//
// formattingRuleServiceDesc
//
this.formattingRuleServiceDesc.Condition = "[StartDate2] < [StartDate]";
this.formattingRuleServiceDesc.DataMember = "ServicesDouble";
this.formattingRuleServiceDesc.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.formattingRuleServiceDesc.Name = "formattingRuleServiceDesc";
//
// formattingRuleCostBearer
//
this.formattingRuleCostBearer.Condition = "[StartDate2] < [StartDate]";
this.formattingRuleCostBearer.DataMember = "ServicesDouble";
this.formattingRuleCostBearer.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.formattingRuleCostBearer.Name = "formattingRuleCostBearer";
//
// formattingRuleEmployeeName
//
this.formattingRuleEmployeeName.Condition = "[StartDate2] < [StartDate]";
this.formattingRuleEmployeeName.DataMember = "ServicesDouble";
this.formattingRuleEmployeeName.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.formattingRuleEmployeeName.Name = "formattingRuleEmployeeName";
@@ -525,7 +521,7 @@ namespace BeWo.Report.DefaultReports
this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.fieldKontaktArt.Name = "fieldKontaktArt";
//
// LwlPruefprotokoll
// LwlPruefliste
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,

View File

@@ -15,7 +15,7 @@ namespace BeWo.Report.ReportObjects
public DateTime ReportEndDate { get; set; }
public IList<LwlPruefEintrag> ServiceRecords { get; set; }
public static LwlPrueflisteRO Create(DateTime startDate, DateTime endDate, String zadNummer, String kostentraeger = "LWL")
public static LwlPrueflisteRO Create(DateTime startDate, DateTime endDate, String zadNummer, long? customerOid, String kostentraeger = "LWL")
{
var ro = new LwlPrueflisteRO();
ro.ServiceRecords = new List<LwlPruefEintrag>();
@@ -30,6 +30,12 @@ namespace BeWo.Report.ReportObjects
}
endDate = endDate.Date.AddDays(1);
String customerFilter = "";
if (customerOid.HasValue && customerOid.Value > 0)
{
customerFilter = String.Format("and c.Oid = {0}", customerOid);
}
String sql = String.Format(@"
SELECT
sr.Oid,
@@ -57,8 +63,9 @@ JOIN costbearer cb on cb.oid = c2s.costbeareroid
JOIN organisation o on o.costbeareroid = cb.oid
where (o.Name = '{2}')
and sr.startdate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{1:yyyy-MM-dd}'
order by p.Firstname, p.lastname, sr.startdate
", startDate, endDate, kostentraeger);
{3}
order by p.lastname, p.Firstname, sr.startdate
", startDate, endDate, kostentraeger, customerFilter);
var sqlresult = DAOFactory.SearchDAO.GetSqlResult(sql);
//
//update customer set debitornumber = '5' + debitornumber where debitornumber is not null

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace HPHBersenbrueck.Translation
{
public class CustomTranslationDictionary : TranslationDictionary
{
public override Dictionary<String, String> GetTranslationDictionary()
{
var dict = base.GetTranslationDictionary();
AddOrReplaceTranslation(dict, "Probezeit (Monate)", "tats. Mindestarbeitszeit");
return dict;
}
}
}

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report.ReportObjects;
using BS.Shared;
@@ -10,13 +11,24 @@ namespace SHKServiceSBD
{
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
{
private Dictionary<string, decimal> _SollStundenProTagDict = new Dictionary<string, decimal>(); //Speicher die Sollstunden aus den Betreuungszeiten des Kindes pro EmployeeOid und Tag (Key = {oid}_{datum])
private Organisation _Martinsschule = null;
protected override void StarteBerechnung(DateTime berichtsAnfang, DateTime berichtsEnde, MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
{
SucheMartinsschule();
SetzeBundesland(empDetail);
BerechneKindGesamtSollZeit(empDetail, berichtsAnfang, berichtsEnde);
BerechneBewilligteSollZeitProWoche(empDetail, berichtsAnfang);
BerechneAlleSollZeiten(empDetail, berichtsAnfang, berichtsEnde);
BerechneSollZeiten(empDetail, berichtsAnfang, berichtsEnde);
}
private void SucheMartinsschule()
{
if (_Martinsschule == null)
{
_Martinsschule = DAOFactory.SearchDAO.FindOrganisation("Martinsschule", false).FirstOrDefault();
}
}
private void SetzeBundesland(MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
@@ -52,74 +64,120 @@ namespace SHKServiceSBD
this.vacationService.Bundesland = bundesland;
}
private void BerechneSollZeiten(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime berichtsAnfang, DateTime berichtsEnde)
private bool IstTeamMartinsschule(MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
{
return empDetail.Teams != null && empDetail.Teams.Any(t => t.Name == "Martinsschule");
}
private IList<Arbeitszeit> GetSollArbeitszeiten(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, Customer customer)
{
//Prüfe ob Mitarbeiter zu Team Martinsschule gehört, dann nehme die Betreuungszeiten (Stundenplan) der Schule, sonst den des betreuten Klienten
if (IstTeamMartinsschule(empDetail) && _Martinsschule != null)
{
return _Martinsschule.Arbeitszeiten;
}
else
{
return customer.Arbeitszeiten;
}
}
private void BerechneAlleSollZeiten(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime berichtsAnfang, DateTime berichtsEnde)
{
//Ermittle hier folgendes und speicher es in Custom2:
//Abesenheit "MA krank in der Schulzeit":
//Wenn ein Kind zugeordnet ist, dann wird die Zeit von dem entsprechenden Tag aus der Betreuungszeit genommen und bei Krank eingetragen
//Wenn ein die Ma der Martinschule zugeordnet sind, dann wird die Zeit genommen, die in der Organisation Martinschule hinterlegt ist und bei Krank eingetragen
//Wenn kein Kind zugeordnet ist, dann Vertragliche Arbeitszeit, und bei Krank eingetragen
//Prüfe Team Martinsschule
bool istTeamMartinsschule = empDetail.Teams != null && empDetail.Teams.Any(t => t.Name == "Martinsschule");
if (istTeamMartinsschule && _Martinsschule != null)
{
BerechneSollZeitenDictionary(_Martinsschule.Arbeitszeiten, empDetail, berichtsAnfang, berichtsEnde);
}
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
{
var kind = e2c.Customer;
BerechneKindSollZeit(empDetail, kind, berichtsAnfang, berichtsEnde);
BerechneSollZeitenDictionary(kind.Arbeitszeiten, empDetail, berichtsAnfang, berichtsEnde);
}
}
private void BerechneKindGesamtSollZeit(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime berichtsAnfang, DateTime berichtsEnde)
private void BerechneBewilligteSollZeitProWoche(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime datum)
{
decimal sollProWoche = 0;
if (IstTeamMartinsschule(empDetail) && _Martinsschule != null)
{
sollProWoche = BerechneSollZeitFuerWoche(empDetail.Employee, _Martinsschule.Arbeitszeiten, datum);
}
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
{
var kind = e2c.Customer;
BerechneKindSollZeit(empDetail, kind, berichtsAnfang, berichtsEnde);
sollProWoche += BerechneSollZeitFuerWoche(empDetail.Employee, kind.Arbeitszeiten, datum);
}
empDetail.Custom1 = sollProWoche;
}
private void BerechneKindSollZeit(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, Customer kind, DateTime start, DateTime ende)
private decimal BerechneSollZeitFuerWoche(Employee e, IList<Arbeitszeit> arbeitszeiten, DateTime datum)
{
decimal soll = 0;
if (kind.Arbeitszeiten != null && kind.Arbeitszeiten.Count > 0)
{
foreach (var az in kind.Arbeitszeiten)
if (arbeitszeiten != null)
{
foreach (var az in arbeitszeiten)
{
if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= ende) &&
(!az.GueltigBis.HasValue || az.GueltigBis.Value >= start))
if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= datum) && (!az.GueltigBis.HasValue || az.GueltigBis.Value >= datum))
{
foreach (var ae in az.ArbeitszeitEintraege)
{
if (ae.Employee == null || ae.Employee.Oid == empDetail.Employee.Oid)
if (ae.Employee == null || ae.Employee.Oid == e.Oid)
{
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, ae.UhrzeitVon);
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, ae.UhrzeitBis);
DateTime date1;
DateTime date2;
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
{
soll += (decimal)date2.Subtract(date1).TotalHours;
}
soll += ae.BerechneStunden();
}
}
}
}
}
return soll;
}
private void BerechneSollZeitenDictionary(IList<Arbeitszeit> arbeitszeiten, MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime start, DateTime ende)
{
DateTime dt = start;
while (dt <= ende)
{
String key = String.Format("{0}_{1:yyyyMMdd}", empDetail.Employee.Oid, dt);
if (!_SollStundenProTagDict.ContainsKey(key))
{
decimal soll = 0;
foreach (var az in arbeitszeiten)
{
if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= dt) && (!az.GueltigBis.HasValue || az.GueltigBis.Value >= dt))
{
foreach (var ae in az.ArbeitszeitEintraege)
{
if (ae.Employee == null || ae.Employee.Oid == empDetail.Employee.Oid)
{
if (ae.IstAmGleichenWochentag(dt))
{
soll += ae.BerechneStunden();
}
}
}
}
}
_SollStundenProTagDict[key] = soll;
}
}
empDetail.Custom1 += soll;
}
@@ -288,6 +346,7 @@ namespace SHKServiceSBD
at.AbsenceReason.Description.ToLower().Contains("ohne lohnfortzahlung") ||
at.AbsenceReason.Description.ToLower().Contains("elternzeit") ||
at.AbsenceReason.Description.ToLower().Contains("mutterschutz") ||
at.AbsenceReason.Description.ToLower().Contains("krankengeld") ||
at.AbsenceReason.Description.ToLower().Contains("unbezahlter urlaub"))
{
dd.Custom1 = "x"; // String.Format("{0:0.00}", ed.SollProTag * 60);
@@ -387,7 +446,7 @@ namespace SHKServiceSBD
public override decimal? GetSollStundenForAbsenceTime(MitarbeiterstundenkontoRO.EmployeeDetail ed, AbsenceTime at, DateTime datum)
{
if (at.AbsenceReason.Description.Contains("krank in der Schulzeit") || at.AbsenceReason.Description.Contains("eigenes Kind krank"))
if (at.AbsenceReason.Description.Contains("krank in der Schulzeit") || at.AbsenceReason.Description.Contains("eigenes Kind krank") || at.AbsenceReason.Description.Contains("Beschäftigungsverbot"))
{
return BerechneSollStundenFuerTag(ed, datum);
}

View File

@@ -31,7 +31,7 @@ namespace SHKServiceSBD
var c = ed.Employee.GetValidContractForDate(pRO.ReportStartDate);
if (c != null)
{
if (c.MonthlyTotalHours.HasValue)
if (c.MonthlyTotalHours.HasValue && c.MonthlyTotalHours.Value > 0)
{
ed.Regelarbeitszeit = String.Format("{0:0.00} Stunden im Monat", c.MonthlyTotalHours);
}

View File

@@ -108,6 +108,7 @@ namespace SHKServiceSBD
this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.Title = new DevExpress.XtraReports.UI.XRControlStyle();
this.FieldCaption = new DevExpress.XtraReports.UI.XRControlStyle();
this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle();
@@ -128,7 +129,6 @@ namespace SHKServiceSBD
this.fieldUeberstundenGesamt = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldPause = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldSummeUrlaubKrankArbeitszeit = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
@@ -146,7 +146,8 @@ namespace SHKServiceSBD
//
// Detail1
//
this.Detail1.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Detail1.Font = new DevExpress.Drawing.DXFont("Arial", 9.75F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
this.Detail1.HeightF = 0F;
this.Detail1.Name = "Detail1";
this.Detail1.StylePriority.UseFont = false;
@@ -155,7 +156,8 @@ namespace SHKServiceSBD
//
this.xrTableDetail.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableDetail.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableDetail.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Regular, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
this.xrTableDetail.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableDetail.Name = "xrTableDetail";
this.xrTableDetail.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
@@ -248,7 +250,7 @@ namespace SHKServiceSBD
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.Custom1")});
this.xrTableCell30.Name = "xrTableCell30";
this.xrTableCell30.StylePriority.UseTextAlignment = false;
this.xrTableCell30.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell30.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell30.Weight = 0.067628480462697108D;
//
// ruleIstFeiertagOderWE
@@ -284,7 +286,7 @@ namespace SHKServiceSBD
//
this.Detail2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableDetail});
this.Detail2.Font = new System.Drawing.Font("Arial", 8F);
this.Detail2.Font = new DevExpress.Drawing.DXFont("Arial", 8F);
this.Detail2.HeightF = 22F;
this.Detail2.Name = "Detail2";
this.Detail2.StylePriority.UseFont = false;
@@ -293,7 +295,7 @@ namespace SHKServiceSBD
//
this.GroupHeader2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableHeader});
this.GroupHeader2.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.GroupHeader2.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.GroupHeader2.HeightF = 30F;
this.GroupHeader2.Name = "GroupHeader2";
this.GroupHeader2.StylePriority.UseFont = false;
@@ -393,7 +395,7 @@ namespace SHKServiceSBD
this.GroupHeader3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.lblMonat,
this.xrTable2});
this.GroupHeader3.Font = new System.Drawing.Font("Arial", 10F);
this.GroupHeader3.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
this.GroupHeader3.HeightF = 128.3334F;
this.GroupHeader3.Level = 1;
this.GroupHeader3.Name = "GroupHeader3";
@@ -404,7 +406,7 @@ namespace SHKServiceSBD
//
this.lblMonat.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ReportStartDate", "Stundenkonto {0:MMMM yy}")});
this.lblMonat.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold);
this.lblMonat.Font = new DevExpress.Drawing.DXFont("Arial", 14F, DevExpress.Drawing.DXFontStyle.Bold);
this.lblMonat.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.lblMonat.Multiline = true;
this.lblMonat.Name = "lblMonat";
@@ -442,7 +444,7 @@ namespace SHKServiceSBD
//
// xrTableCell1
//
this.xrTableCell1.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell1.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell1.Name = "xrTableCell1";
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell1.StylePriority.UseFont = false;
@@ -456,7 +458,7 @@ namespace SHKServiceSBD
//
this.xrTableCell25.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.FullName")});
this.xrTableCell25.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell25.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell25.Multiline = true;
this.xrTableCell25.Name = "xrTableCell25";
this.xrTableCell25.StylePriority.UseFont = false;
@@ -466,7 +468,7 @@ namespace SHKServiceSBD
//
// xrTableCell11
//
this.xrTableCell11.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell11.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.StylePriority.UseFont = false;
this.xrTableCell11.StylePriority.UseTextAlignment = false;
@@ -478,7 +480,7 @@ namespace SHKServiceSBD
//
this.xrTableCell12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.FirstName")});
this.xrTableCell12.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell12.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell12.Name = "xrTableCell12";
this.xrTableCell12.StylePriority.UseFont = false;
this.xrTableCell12.StylePriority.UseTextAlignment = false;
@@ -498,7 +500,7 @@ namespace SHKServiceSBD
//
// xrTableCell6
//
this.xrTableCell6.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell6.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell6.StylePriority.UseFont = false;
@@ -521,7 +523,7 @@ namespace SHKServiceSBD
//
// xrTableCell13
//
this.xrTableCell13.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell13.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell13.Name = "xrTableCell13";
this.xrTableCell13.StylePriority.UseFont = false;
this.xrTableCell13.StylePriority.UseTextAlignment = false;
@@ -550,7 +552,7 @@ namespace SHKServiceSBD
//
// xrTableCell21
//
this.xrTableCell21.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell21.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell21.Name = "xrTableCell21";
this.xrTableCell21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell21.StylePriority.UseFont = false;
@@ -571,7 +573,7 @@ namespace SHKServiceSBD
//
// xrTableCell28
//
this.xrTableCell28.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell28.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableCell28.Name = "xrTableCell28";
this.xrTableCell28.StylePriority.UseFont = false;
this.xrTableCell28.StylePriority.UseTextAlignment = false;
@@ -594,7 +596,7 @@ namespace SHKServiceSBD
this.GroupFooter2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable4,
this.xrTable1});
this.GroupFooter2.Font = new System.Drawing.Font("Arial", 10F);
this.GroupFooter2.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
this.GroupFooter2.HeightF = 116.6667F;
this.GroupFooter2.KeepTogether = true;
this.GroupFooter2.Name = "GroupFooter2";
@@ -629,7 +631,8 @@ namespace SHKServiceSBD
//
// xrTableCell64
//
this.xrTableCell64.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell64.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold, DevExpress.Drawing.DXGraphicsUnit.Point, new DevExpress.Drawing.DXFontAdditionalProperty[] {
new DevExpress.Drawing.DXFontAdditionalProperty("GdiCharSet", ((byte)(0)))});
this.xrTableCell64.Name = "xrTableCell64";
this.xrTableCell64.StylePriority.UseFont = false;
this.xrTableCell64.StylePriority.UseTextAlignment = false;
@@ -902,7 +905,7 @@ namespace SHKServiceSBD
this.xrTableCell57,
this.xrTableCell58,
this.xrTableCell26});
this.xrTableRow6.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrTableRow6.Font = new DevExpress.Drawing.DXFont("Arial", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.xrTableRow6.Name = "xrTableRow6";
this.xrTableRow6.StylePriority.UseFont = false;
this.xrTableRow6.Weight = 0.8D;
@@ -910,7 +913,7 @@ namespace SHKServiceSBD
// xrTableCell48
//
this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell48.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell48.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
this.xrTableCell48.Name = "xrTableCell48";
this.xrTableCell48.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 8, 0, 0, 100F);
this.xrTableCell48.StylePriority.UseBorders = false;
@@ -926,7 +929,7 @@ namespace SHKServiceSBD
this.xrTableCell57.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrTableCell57.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Days.fieldSummeUrlaubKrankArbeitszeit", "{0:0.00}")});
this.xrTableCell57.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell57.Font = new DevExpress.Drawing.DXFont("Arial", 10F);
this.xrTableCell57.Name = "xrTableCell57";
this.xrTableCell57.StylePriority.UseBorders = false;
this.xrTableCell57.StylePriority.UseFont = false;
@@ -959,13 +962,17 @@ namespace SHKServiceSBD
this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell26.Weight = 0.11143081848591821D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
//
// Title
//
this.Title.BackColor = System.Drawing.Color.White;
this.Title.BorderColor = System.Drawing.SystemColors.ControlText;
this.Title.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.Title.BorderWidth = 1F;
this.Title.Font = new System.Drawing.Font("Times New Roman", 24F);
this.Title.Font = new DevExpress.Drawing.DXFont("Times New Roman", 24F);
this.Title.ForeColor = System.Drawing.Color.Black;
this.Title.Name = "Title";
//
@@ -975,7 +982,7 @@ namespace SHKServiceSBD
this.FieldCaption.BorderColor = System.Drawing.SystemColors.ControlText;
this.FieldCaption.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.FieldCaption.BorderWidth = 1F;
this.FieldCaption.Font = new System.Drawing.Font("Times New Roman", 10F, System.Drawing.FontStyle.Bold);
this.FieldCaption.Font = new DevExpress.Drawing.DXFont("Times New Roman", 10F, DevExpress.Drawing.DXFontStyle.Bold);
this.FieldCaption.ForeColor = System.Drawing.Color.Black;
this.FieldCaption.Name = "FieldCaption";
//
@@ -985,7 +992,7 @@ namespace SHKServiceSBD
this.PageInfo.BorderColor = System.Drawing.SystemColors.ControlText;
this.PageInfo.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.PageInfo.BorderWidth = 1F;
this.PageInfo.Font = new System.Drawing.Font("Times New Roman", 8F);
this.PageInfo.Font = new DevExpress.Drawing.DXFont("Times New Roman", 8F);
this.PageInfo.ForeColor = System.Drawing.Color.Black;
this.PageInfo.Name = "PageInfo";
//
@@ -995,7 +1002,7 @@ namespace SHKServiceSBD
this.DataField.BorderColor = System.Drawing.SystemColors.ControlText;
this.DataField.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.DataField.BorderWidth = 1F;
this.DataField.Font = new System.Drawing.Font("Times New Roman", 8F);
this.DataField.Font = new DevExpress.Drawing.DXFont("Times New Roman", 8F);
this.DataField.ForeColor = System.Drawing.SystemColors.ControlText;
this.DataField.Name = "DataField";
//
@@ -1013,8 +1020,7 @@ namespace SHKServiceSBD
//
// xrPageInfo1
//
this.xrPageInfo1.Font = new System.Drawing.Font("Arial", 8F);
this.xrPageInfo1.Format = "erstellt am {0:dd.MM.yyyy HH:mm}";
this.xrPageInfo1.Font = new DevExpress.Drawing.DXFont("Arial", 8F);
this.xrPageInfo1.LocationFloat = new DevExpress.Utils.PointFloat(474.9999F, 6.999974F);
this.xrPageInfo1.Name = "xrPageInfo1";
this.xrPageInfo1.PageInfo = DevExpress.XtraPrinting.PageInfo.DateTime;
@@ -1023,6 +1029,7 @@ namespace SHKServiceSBD
this.xrPageInfo1.StylePriority.UseFont = false;
this.xrPageInfo1.StylePriority.UseTextAlignment = false;
this.xrPageInfo1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrPageInfo1.TextFormatString = "erstellt am {0:dd.MM.yyyy HH:mm}";
//
// fieldSumSpecial
//
@@ -1117,10 +1124,6 @@ namespace SHKServiceSBD
this.fieldSummeUrlaubKrankArbeitszeit.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldSummeUrlaubKrankArbeitszeit.Name = "fieldSummeUrlaubKrankArbeitszeit";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
//
// Mitarbeiterarbeitszeitkonto
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1144,10 +1147,10 @@ namespace SHKServiceSBD
this.fieldSummeUrlaubKrankArbeitszeit});
this.DataSource = this.bindingSource1;
this.DisplayName = "Mitarbeiterstundenkonto";
this.Font = new System.Drawing.Font("Arial", 8F);
this.Font = new DevExpress.Drawing.DXFont("Arial", 8F);
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.ruleIstFeiertagOderWE});
this.Margins = new System.Drawing.Printing.Margins(40, 40, 50, 50);
this.Margins = new DevExpress.Drawing.DXMargins(40F, 40F, 50F, 50F);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = DevExpress.Drawing.Printing.DXPaperKind.A4;
@@ -1156,7 +1159,7 @@ namespace SHKServiceSBD
this.FieldCaption,
this.PageInfo,
this.DataField});
this.Version = "17.1";
this.Version = "23.2";
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();

View File

@@ -117,7 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -41,8 +41,15 @@ namespace SynpraxReports
{
DateTime.TryParse(queryRo.Rows[0].Field2.ToString(), out end);
}
var ro = LwlPrueflisteRO.Create(start, end, "6033/0113/40 N23");
long? customerOid = null;
if (queryRo.Rows[0].Field3 != null)
{
if (Int64.TryParse(queryRo.Rows[0].Field3.ToString(), out var oidOut))
{
customerOid = oidOut;
}
}
var ro = LwlPrueflisteRO.Create(start, end, "6033/0113/40 N23", customerOid);
liste.SetReportDataSource(ro);
}

View File

@@ -100,7 +100,7 @@ namespace BeWo.Service.Plugins
//t = "3830114427"; // FiZ Familie im Zentrum Hof
//t = "7138297573"; // Tagwerk betreutes wohnen
//t = "1008896531"; // BeWo Auxilio
t = "9383760246"; // Die Kette
//t = "9383760246"; // Die Kette
//t = "5915565037"; // Lebenshilfe Remscheid
//t = "3350425974"; // BeWo Rückenwind
//t = "9447917179"; // LH Rodenkirchen

View File

@@ -1141,6 +1141,13 @@ namespace BS.Shared
NachTeam
}
public enum KassenSortOrderEnum
{
NachName,
NachDatumAufsteigend,
NachDatumAbsteigend
}
public enum Platzhaltergruppen
{
Anschrift,

View File

@@ -28,6 +28,8 @@
public static string LastSelectedServiceRecordTimeIntervalDays => "LastSelectedServiceRecordTimeIntervalDays";
public static string LastSelectedServiceRecordMonth => "LastSelectedServiceRecordMonth";
public static string LastKassenSortOrder => "LastKassenSortOrder";
public static string ServiceRecordAllowChangeHours => "ServiceRecordAllowChangeHours";
public static string LetzteZeiterfassungsDauer => "LetzteZeiterfassungsDauer";