Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo

# Conflicts:
#	.gitignore
This commit is contained in:
Christian
2021-03-11 12:12:25 +01:00
60 changed files with 9450 additions and 4118 deletions

3
.gitignore vendored
View File

@@ -493,3 +493,6 @@
/ReportImp/MobiloAmbulant/obj/Release
/ReportImp/EmpathieFachassistenz/obj/Debug
/ReportImp/EmpathieFachassistenz/obj/Release
/ReportImp/LebenUndWohnenChristianWilke/obj/Debug
/ReportImp/CaritasverbandDuerenJuelichEV/obj/Debug
/ReportImp/KoelnerBeWoSelbstbestimmtLeben/obj/Debug

View File

@@ -445,6 +445,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkmLeverkusen", "ReportImp\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmpathieFachassistenz", "ReportImp\EmpathieFachassistenz\EmpathieFachassistenz.csproj", "{F618F17B-5905-4D09-A976-733011945A9B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LebenUndWohnenChristianWilke", "ReportImp\LebenUndWohnenChristianWilke\LebenUndWohnenChristianWilke.csproj", "{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CaritasverbandDuerenJuelichEV", "ReportImp\CaritasverbandDuerenJuelichEV\CaritasverbandDuerenJuelichEV.csproj", "{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KoelnerBeWoSelbstbestimmtLeben", "ReportImp\KoelnerBeWoSelbstbestimmtLeben\KoelnerBeWoSelbstbestimmtLeben.csproj", "{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -3392,6 +3398,54 @@ Global
{F618F17B-5905-4D09-A976-733011945A9B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{F618F17B-5905-4D09-A976-733011945A9B}.Release|x86.ActiveCfg = Release|Any CPU
{F618F17B-5905-4D09-A976-733011945A9B}.Release|x86.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|.NET.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|.NET.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|x86.ActiveCfg = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Debug|x86.Build.0 = Debug|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|.NET.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|.NET.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Any CPU.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|x86.ActiveCfg = Release|Any CPU
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}.Release|x86.Build.0 = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|.NET.ActiveCfg = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|.NET.Build.0 = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|x86.ActiveCfg = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Debug|x86.Build.0 = Debug|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|.NET.ActiveCfg = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|.NET.Build.0 = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|Any CPU.Build.0 = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|x86.ActiveCfg = Release|Any CPU
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}.Release|x86.Build.0 = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|.NET.ActiveCfg = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|.NET.Build.0 = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|x86.ActiveCfg = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Debug|x86.Build.0 = Debug|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|.NET.ActiveCfg = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|.NET.Build.0 = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|Any CPU.Build.0 = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|x86.ActiveCfg = Release|Any CPU
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3610,6 +3664,9 @@ Global
{56602D65-47F7-4175-A065-A044FE7F6C81} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{E30D35E8-9B15-4345-B8B7-422415A659DA} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{F618F17B-5905-4D09-A976-733011945A9B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{48324B9E-4EC0-47B9-BBA7-6FD61384D25A} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{FE240F9F-CC85-4F7D-9080-BEEBE76B0735} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}

View File

@@ -986,6 +986,7 @@
<Compile Include="View\Controls\DPCtrlDienstTooltip.xaml.cs">
<DependentUpon>DPCtrlDienstTooltip.xaml</DependentUpon>
</Compile>
<Compile Include="View\Controls\DPCtrlMonth.cs" />
<Compile Include="View\Controls\MonthPicker.xaml.cs">
<DependentUpon>MonthPicker.xaml</DependentUpon>
</Compile>

View File

@@ -15,13 +15,6 @@
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ResourceDictionary>
<ContextMenu x:Name="contextMenu_employee" x:Key="cm_employee" MenuItem.Click="contextMenu_Click" Opened="contextMenu_Opened">
<MenuItem Header="Neu" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Search.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
<dxschint:ToolTipVisibilityToVisibilityConverter x:Key="ToolTipVisibilityConverter" />
<dx:BooleanToVisibilityConverter x:Key="boolToVisibilityConverter" />
@@ -680,35 +673,19 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="{Binding Path=DetailDescription}" PreviewMouseRightButtonDown="CheckBox_PreviewMouseRightButtonDown" PreviewMouseLeftButtonDown="MitarbeiterListe_OnClick" Checked="ListItemCheckedEvent" Unchecked="ListItemCheckedEvent" VerticalAlignment="Center" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox Content="{Binding Path=DetailDescription}" PreviewMouseLeftButtonDown="MitarbeiterListe_OnClick" Checked="ListItemCheckedEvent" Unchecked="ListItemCheckedEvent" VerticalAlignment="Center" FontSize="11" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CheckBoxConverter}" ConverterParameter="Mitarbeiter">
<Binding Path="EmployeeOid" Mode="OneWay" />
<Binding Path="SelectedEmployees" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type view:NewSchedulerView}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<!-- <controls:PopupNonTopmost Grid.Row="0" Topmost="False" x:Name="popup_infos_employee" Width="350" StaysOpen="True" Placement="MousePoint">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_employee_infos" Header="Infos" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label VerticalAlignment="Center" Content="Infos anzeigen" />
<Button Grid.Row="1" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Bottom" Height="25"
Margin="3" Content="Speichern" x:Name="popup_button_infos_employee" Click="popup_button_infos_employee_Click" />
</Grid>
</GroupBox>
</Border>
</controls:PopupNonTopmost> -->
<Border Width="15" Height="15" Grid.Column="1" Background="{Binding Path=FilterableBrush}" CornerRadius="3" />
<Button x:Name="btn_showEmployeeInformation" Width="15" Height="15" Grid.Column="2" Margin="5 0 5 0" Click="btn_showEmployeeInformation_Click" FontFamily="Microsoft Sans Serif" Content="i"/>
</Grid>
</Border>
</Grid>
@@ -805,6 +782,10 @@
</Border>
<Border x:Name="ItemContent" CornerRadius="5" MinHeight="25">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,3,5,3" OpacityMask="{x:Null}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Content="{Binding Path=DetailDescription}" PreviewMouseDown="KlientenListe_OnClick" Checked="ListItemCheckedEvent" Unchecked="ListItemCheckedEvent" VerticalAlignment="Center" FontSize="12" Foreground="#FFD2D2D2" FontFamily="Microsoft Sans Serif">
<CheckBox.IsChecked>
<MultiBinding Converter="{StaticResource CheckBoxConverter}" ConverterParameter="Klienten">
@@ -813,6 +794,8 @@
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
<Button x:Name="btn_showCustomerInformation" Width="15" Height="15" Grid.Column="1" Margin="5 0 5 0" Click="btn_showCustomerInformation_Click" FontFamily="Microsoft Sans Serif" Content="i"/>
</Grid>
</Border>
</Grid>

View File

@@ -2447,37 +2447,27 @@ namespace BeWo.Scheduler.View
}
private void contextMenu_Click(object sender, RoutedEventArgs e)
{
}
private void contextMenu_Opened(object sender, RoutedEventArgs e)
{
}
private void ListView_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
var datacontext = (ListView)sender;
var selected = datacontext.SelectedItem;
}
private void CheckBox_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
private void btn_showEmployeeInformation_Click(object sender, RoutedEventArgs e)
{
var cb = (CheckBox)sender;
var cb = (Button)sender;
var datacontext = cb.DataContext;
CompactEmployeeDC emp = (CompactEmployeeDC)datacontext;
//popup_infos_employee.IsOpen = true; //Wird nicht gefunden
var control = new InformationView();
control.InitView(emp);
control.SetXaml(ServiceFacade.DoOperationsServiceSync(s => s.GetXAMLInformationStringForEmployee(emp.EmployeeOid)));
var beWoWindow = new BeWoWindow();
control.ButtonCloseClicked += () => beWoWindow.Close();
beWoWindow.Height = 200;
beWoWindow.Width = 500;
beWoWindow.Width = 400;
beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
beWoWindow.GroupBoxContent = control;
beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
@@ -2485,10 +2475,27 @@ namespace BeWo.Scheduler.View
beWoWindow.ShowDialog();
}
//private void popup_button_infos_employee_Click(object sender, RoutedEventArgs e)
//{
private void btn_showCustomerInformation_Click(object sender, RoutedEventArgs e)
{
var cb = (Button)sender;
var datacontext = cb.DataContext;
CompactCustomerDC customer = (CompactCustomerDC)datacontext;
//}
var control = new InformationView();
control.SetXaml(ServiceFacade.DoOperationsServiceSync(s => s.GetXAMLInformationStringForCustomer(customer.CustomerOid)));
var beWoWindow = new BeWoWindow();
control.ButtonCloseClicked += () => beWoWindow.Close();
beWoWindow.Height = 200;
beWoWindow.Width = 500;
beWoWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
beWoWindow.GroupBoxContent = control;
beWoWindow.Owner = BeWoApp.CurrentBeWo.MainWindow;
beWoWindow.rootGroupBox.Header = "Infos zu " + customer.FirstName + " " + customer.LastName;
beWoWindow.ShowDialog();
}
}
#region Converter

File diff suppressed because it is too large Load Diff

View File

@@ -101,6 +101,8 @@ namespace BeWo.View.Controls
public DPCtrlDay()
{
InitializeComponent();
//MouseLeftButtonDown += DienstplanerControl_LeftMouseDown;
//MouseRightButtonDown += DienstplanerControl_RightMouseDown;
MouseDown += DienstplanerControl_MouseDown;
}
@@ -123,6 +125,24 @@ namespace BeWo.View.Controls
set { SetValue(DPCtrlDayInformationProperty, value); }
}
/*private void DienstplanerControl_LeftMouseDown(object sender, MouseButtonEventArgs e)
{
DienstplanerView entryView = null;
DependencyObject parent = VisualTreeHelper.GetParent(this);
while (parent != null && entryView == null)
{
entryView = parent as DienstplanerView;
var fe = parent as FrameworkElement;
parent = fe != null ? VisualTreeHelper.GetParent(fe) : null;
}
if (entryView != null)
{
entryView.DienstplanerControl_LeftMouseDown(sender, e);
}
}*/
private void DienstplanerControl_MouseDown(object sender, MouseButtonEventArgs e)
{
DienstplanerView entryView = null;

View File

@@ -11,11 +11,14 @@
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Dienst:"/>
<TextBlock Grid.Row="2" Grid.Column="0" Text="Start:"/>
<TextBlock Grid.Row="4" Grid.Column="0" Text="Pausendauer:"/>
<TextBlock Grid.Row="3" Grid.Column="0" Text="Ende:"/>
<!-- <TextBlock Grid.Row="6" Grid.Column="0" Text="Bemerkung:"/> -->
<Separator Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"/>
@@ -23,5 +26,11 @@
<TextBlock Grid.Row="2" Grid.Column="2" x:Name="TxtStart"/>
<TextBlock Grid.Row="4" Grid.Column="2" x:Name="TxtPausendauer"/>
<TextBlock Grid.Row="3" Grid.Column="2" x:Name="TxtEnde"/>
<!--<TextBlock Grid.Row="6" Grid.Column="2" x:Name="TxtBemerkung"/>
<Separator Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="3"/> -->
</Grid>
</UserControl>

View File

@@ -24,6 +24,7 @@ namespace BeWo.View.Controls
TxtEnde.Text = dienst.Ende.ToString("HH:mm");
TxtPausendauer.Text = dienst.Pause.ToString();
TxtStart.Text = dienst.Start.ToString("HH:mm");
//TxtBemerkung.Text = dienst.Notice;
}
}
}

View File

@@ -107,14 +107,14 @@ namespace BeWo.View.Controls
sb.Append('(');
if (contract.EntryDate.HasValue)
sb.Append(contract.EntryDate.Value.ToString("dd.MM"));
sb.Append(contract.EntryDate.Value.ToString("dd.MM.yy"));
else
sb.Append("k.A.");
sb.Append('-');
if (contract.ContractEndDate.HasValue)
sb.Append(contract.ContractEndDate.Value.ToString("dd.MM"));
sb.Append(contract.ContractEndDate.Value.ToString("dd.MM.yy"));
else
sb.Append("unbefr.");

View File

@@ -0,0 +1,74 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace BeWo.View.Controls
{
public class DPCtrlMonth : DienstplanerControl
{
public static readonly DependencyProperty DienstInfoDCListProperty = DependencyProperty.Register(
"DienstInfoDCList",
typeof(List<DienstInfoDC>),
typeof(DPCtrlMonth),
new UIPropertyMetadata(
(s, e) =>
{
var dc = (List<DienstInfoDC>)e.NewValue;
var c = (DPCtrlMonth)s;
if (c != null)
{
if (dc != null)
{
dc.RemoveAll(x => x == null);
c.BorderBlack.BorderThickness = new Thickness(1, 0, 1, 1);
double res = 0.0;
if (dc.Count != 0)
{
foreach (var x in dc)
{
res += x.DurationHours;
}
c.Text = res.ToString("0.##");
}
else
{
c.BorderBlack.BorderThickness = new Thickness(1, 0, 1, 1);
c.Text = "";
}
}
else
{
c.BorderBlack.BorderThickness = new Thickness(1, 0, 1, 1);
c.Text = "";
}
}
}));
public DPCtrlMonth()
{
InitializeComponent();
BorderBlack.BorderThickness = new Thickness(1, 0, 1, 0);
txt.TextAlignment = TextAlignment.Left;
txt.HorizontalAlignment = HorizontalAlignment.Left;
}
public List<DienstInfoDC> DienstInfoDCList
{
get { return (List<DienstInfoDC>)GetValue(DienstInfoDCListProperty); }
set { SetValue(DienstInfoDCListProperty, value); }
}
}
}

View File

@@ -41,7 +41,7 @@ namespace BeWo.View.Controls
else
{
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 2);
c.BorderBlack.BorderThickness = new Thickness(0, 0, 1, 1);
c.Text = "";
}
}

View File

@@ -5,22 +5,19 @@
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<Grid Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid Background="{StaticResource ObjectEditBackgroundBrush}" x:Name="rootGrid">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Background="Transparent"
BorderThickness="0" IsReadOnly="True"
x:Name="informationText" TextWrapping="Wrap" Margin="5" FontSize="14">Informationstext</TextBox>
<dxg:GridControl Grid.Row="0" Margin="2,3,5,5" x:Name="datagrid_employee_infos" SelectionMode="Row" >
<dxg:GridControl.Columns>
<dxg:GridColumn AllowEditing="False" FieldName="Key" Name="Key" />
<dxg:GridColumn AllowEditing="False" FieldName="Value" Name="Value" Width="345"/>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="false" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell"
ShowHorizontalLines="False" ShowVerticalLines="False" ShowColumnHeaders="False" x:Name="tableview_employee_infos"/>
</dxg:GridControl.View>
</dxg:GridControl>
<Button x:Name="button_close" Grid.Row="1" VerticalAlignment="Bottom" HorizontalAlignment="Right" Content="Schließen" Click="button_close_Click"
Margin="0 0 5 5"/>
</Grid>

View File

@@ -27,6 +27,7 @@ using System.Linq;
using DevExpress.Xpf.Grid;
using System.Windows.Media.Imaging;
using DevExpress.Utils;
using System.Windows.Markup;
namespace BeWo.View.Detail
{
@@ -42,14 +43,31 @@ namespace BeWo.View.Detail
InitializeComponent();
}
public void InitView(CompactEmployeeDC employee)
public void SetXaml(string xamlCode)
{
dict = ServiceFacade.DoOperationsServiceSync(s => s.GetAdditionalEmployeeInformationForScheduler(employee.EmployeeOid));
var list = dict.ToList();
list = list.OrderBy(l => l.Key).ToList();
datagrid_employee_infos.ItemsSource = list;
try
{
if (XamlReader.Parse(xamlCode) is UIElement element)
{
informationText.Visibility = Visibility.Collapsed;
rootGrid.Children.Add(element);
}
}
catch (Exception e)
{
//ignore
}
}
/*
//public void InitView(CompactEmployeeDC employee)
//{
// dict = ServiceFacade.DoOperationsServiceSync(s => s.GetAdditionalEmployeeInformationForScheduler(employee.EmployeeOid));
// var list = dict.ToList();
// list = list.OrderBy(l => l.Key).ToList();
// datagrid_employee_infos.ItemsSource = list;
//}
*/
private void button_close_Click(object sender, RoutedEventArgs e)
{
ButtonCloseClicked?.Invoke();

View File

@@ -21,6 +21,9 @@
<ControlTemplate x:Key="ctrlWeek">
<controls:DPCtrlWeek Margin="0" Focusable="True" DienstInfoDCList="{Binding Value}"/>
</ControlTemplate>
<ControlTemplate x:Key="ctrlMonth">
<controls:DPCtrlMonth Margin="0" Focusable="True" DienstInfoDCList="{Binding Value}"/>
</ControlTemplate>
<ControlTemplate x:Key="ctrlEmp">
<controls:DPCtrlEmployee Margin="0" Focusable="True" EmployeeInformation="{Binding Value}"/>
</ControlTemplate>
@@ -65,7 +68,34 @@
<!--<dxe:DateEdit x:Name="_DatumPicker" Grid.Column="3" Margin="0,3,3,3" Mask="MM.yyyy" Loaded="DatumPicker_Loaded" MaskUseAsDisplayFormat="True" AllowNullInput="False" />-->
<Button x:Name="_BtnAnzeigen" Grid.Column="5" Content="Anzeigen" MinWidth="100" Margin="10,3,3,3" Click="BtnAnzeigen_Click"/>
<Button x:Name="_BtnRemoveAllDiensteForMonth" Grid.Column="7" HorizontalAlignment="Right" Content="Alle Schichten entfernen" Click="_BtnRemoveAllDiensteForMonth_Click"></Button>
<WrapPanel Grid.Column="7" HorizontalAlignment="Right" Margin="10,3,3,3">
<Button x:Name="button_neuerMitarbeiter" Content="Neuen Mitarbeiter einfügen" Margin=" 0 0 5 0" Click="button_neuerMitarbeiter_Click" Visibility="Collapsed"/>
<Button x:Name="_BtnRemoveAllDiensteForMonth" Content="Alle Schichten entfernen" Click="_BtnRemoveAllDiensteForMonth_Click" Visibility="Collapsed"/>
</WrapPanel>
<controls:PopupNonTopmost Topmost="False" x:Name="popUp_neuerMitarbeiterFuerWohnheim" Width="350" StaysOpen="False" Placement="MousePoint">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_popUp_neuerMitarbeiterFuerWohnheim" Header="Mitarbeiter hinzufügen" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Mitarbeiter" />
<ComboBox x:Name="combobox_mitarbeiter" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="10 0 0 0"/>
<Button x:Name="button_add_employee" Grid.Column="2" Grid.Row="1" Content="Hinzufügen" Click="button_add_employee_Click" Margin="0 7 0 0"/>
</Grid>
</GroupBox>
</Border>
</controls:PopupNonTopmost>
</Grid>
<!--Zweite Zeile-->
@@ -87,11 +117,6 @@
</Grid>
<!--Dritte Zeile ______________________________________________________________________________________________________ -->
<dxg:GridControl Grid.Row="3" Visibility="Hidden" x:Name="_GridControl" CustomUnboundColumnData="GridControl_CustomUnboundColumnData" SelectionMode="Cell">
<!--<dxg:GridControl.Resources>
<ControlTemplate x:Key="display_dpc">
<controls:DienstplanerControl Margin="3" Cursor="Hand" Focusable="True" DienstplanerValue="{Binding Value}"/>
</ControlTemplate>
</dxg:GridControl.Resources>-->
<dxg:GridControl.View >
<dxg:TableView x:Name="view" ShowVerticalLines="False" ShowHorizontalLines="False" ShowGroupPanel="False"/>
</dxg:GridControl.View>
@@ -106,37 +131,47 @@
</StackPanel>
<!--Ende-->
<Popup x:Name="_PopupPicker" StaysOpen="True" Placement="MousePoint">
<ListBox x:Name="listbox_valuepicker" HorizontalContentAlignment="Stretch" BorderThickness="1" BorderBrush="#ffd0d0d0" Background="#ffe0e0e0">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid MouseLeftButtonDown="Popup_MouseDown" Tag="{Binding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Grid.ColumnSpan="2" BorderThickness="0" BorderBrush="#ffb0b0b0" Background="#ffe0e0e0">
<!--<Border.Background>
<LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#777F7F7F" Offset="1" />
</LinearGradientBrush>
</Border.Background>-->
</Border>
<controls:DPCtrlIcon IsHitTestVisible="False" Margin="3" Width="25" Height="25" Cursor="Hand" DienstValue="{Binding}" />
<!--<TextBlock Margin="3 3 6 3" Cursor="Hand" Grid.Column="1" VerticalAlignment="Center" Text="{Binding DienstName}" />-->
<TextBlock Margin="3 3 6 3" Cursor="Hand" Grid.Column="1" VerticalAlignment="Center" Text="{Binding DarstellungInPopUp}" />
<!--<TextBlock Margin="3 3 6 3" Cursor="Hand" Grid.Column="2" VerticalAlignment="Center" Text="{Binding Start.TimeOfDay}" />
<TextBlock Margin="3 3 6 3" Cursor="Hand" Grid.Column="3" VerticalAlignment="Center" Text=" - " />
<TextBlock Margin="3 3 6 3" Cursor="Hand" Grid.Column="4" VerticalAlignment="Center" Text="{Binding Ende.TimeOfDay}" />-->
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Popup>
<controls:PopupNonTopmost Grid.Row="0" Topmost="False" x:Name="popUp_RightClick" Width="350" StaysOpen="True" Placement="MousePoint">
<Border Background="White" Padding="3" BorderThickness="1" BorderBrush="Gray">
<GroupBox x:Name="groupbox_popUp_RightClick" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="7" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<ListBox x:Name="combobox_dienste" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" MaxHeight="250">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Tag="{Binding}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<controls:DPCtrlIcon IsHitTestVisible="False" Margin="3" Width="25" Height="25" Cursor="Hand" DienstValue="{Binding}" />
<TextBlock Margin="3 3 6 3" Cursor="Hand" Grid.Column="1" VerticalAlignment="Center" Text="{Binding DarstellungInPopUp}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Label Grid.Column="0" Grid.Row="2" Content="Bemerkung" Margin="-4 4 0 0" />
<TextBox x:Name="textbox_bemerkung" Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Margin="0 0 0 3" Height="50"
TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Auto"/>
<Button x:Name="button_save_bemerkung" Grid.Column="2" Grid.Row="4" Content="Speichern" Click="button_save_Click" Margin="0 7 0 0"></Button>
</Grid>
</GroupBox>
</Border>
</controls:PopupNonTopmost>
</Grid>
</GroupBox>
</localView:BeWoView>

View File

@@ -44,8 +44,8 @@ namespace BeWo.View.Detail.Report
private Dictionary<long, List<AbsenceTimeDC>> _AbsenceTimesDict;
private GridColumn _ColumnEmp;
//private List<GridColumn> _ColumnStatus;
private List<GridColumn> _ColumnDays;
private GridColumn _ColumnMonth;
private List<GridColumn> _ColumnWeek;
private CompactWohnheimDC _AuswahlWohnheim;
@@ -183,26 +183,6 @@ namespace BeWo.View.Detail.Report
}
bool andereBerechnungNoetig = (dienst.Start < dienst.Ende) ? false : true; //Start ist früher als Ende, wenn eine Schicht über 0 Uhr hinausgeht => Stunden müssen anders berechnet werden
//if (i == diensteFuerTag.Count - 1) //Wenn letzte Schicht bearbeitet wird, müssen manche nachfolgende Fälle im Code nicht mehr beachtet werden
//{
// if (!andereBerechnungNötig)
// stundenOhneUeberschneidungen += Math.Round((dienst.Ende.TimeOfDay - dienst.Start.TimeOfDay).TotalHours - (vorherigeSchicht.Ende.Hour - dienst.Start.Hour), 2);
// else
// {
// var ende = dienst.Ende.AddDays(1);
// stundenOhneUeberschneidungen += Math.Round((ende - dienst.Start).TotalHours - (vorherigeSchicht.Ende - dienst.Start).TotalHours, 2);
// }
// if (dienst.Ende >= diensteFuerTag[0].Start && stundenOhneUeberschneidungen >= 24 || stundenOhneUeberschneidungen >= 24)
// break;
// else
// {
// tagAusgefuellt = false;
// break;
// }
//}
bool schichtInnerhalbAndererSchicht = false;
if (dienst.Start < vorherigeSchicht.Ende) //Wenn eine Überschneidung existiert
@@ -293,7 +273,7 @@ namespace BeWo.View.Detail.Report
if (currentDay.DayOfWeek != DayOfWeek.Sunday)
continue;
var week = _ColumnWeek[weekCounter];
week.Header = "Wo.\nIst"; //$"{new CultureInfo("de-DE").Calendar.GetWeekOfYear(currentDay, CalendarWeekRule.FirstDay, DayOfWeek.Monday)}. Wo\nIst";
@@ -304,6 +284,12 @@ namespace BeWo.View.Detail.Report
weekCounter++;
}
var lastColumnForMOnth = _ColumnMonth;
lastColumnForMOnth.Header = "Monat \nIst";
lastColumnForMOnth.FieldName = dayCounter + "M";
lastColumnForMOnth.Visible = true;
lastColumnForMOnth.VisibleIndex = dayCounter + weekCounter + fixedColumns;
for (int i = dayCounter; i < _ColumnDays.Count; i++)
{
var day = _ColumnDays[i];
@@ -323,15 +309,18 @@ namespace BeWo.View.Detail.Report
{
var dayControlTemplate = (ControlTemplate)FindResource("ctrlDay");
var weekControlTemplate = (ControlTemplate)FindResource("ctrlWeek");
var monthControlTemplate = (ControlTemplate)FindResource("ctrlMonth");
var empControlTemplate = (ControlTemplate)FindResource("ctrlEmp");
_ColumnEmp = NewGridColumnUnbound("Mitarbeiter", "emp", "EM:", 200, 200, DevExpress.Data.UnboundColumnType.Object, empControlTemplate, DevExpress.Utils.DefaultBoolean.True); //NewGridColumn("Mitarbeiter", "Header", double.NaN, 100);
_ColumnEmp.Fixed = FixedStyle.Left;
_ColumnMonth = NewGridColumnUnbound("Monatsstunden", "month", "MO:", 60, 40, DevExpress.Data.UnboundColumnType.Object, monthControlTemplate, DevExpress.Utils.DefaultBoolean.True);
_ColumnDays = new List<GridColumn>();
_ColumnWeek = new List<GridColumn>();
for (int i = 1; i <= 31; i++)
{ //Date
_ColumnDays.Add(NewGridColumnUnbound(string.Empty, i.ToString(), $"DA:", 28, 28, DevExpress.Data.UnboundColumnType.Object, dayControlTemplate, DevExpress.Utils.DefaultBoolean.False));
@@ -344,6 +333,7 @@ namespace BeWo.View.Detail.Report
//Hinzufügen der Spalten Mitarbeiter, einzelne Wochentage und Woche
_GridControl.Columns.Add(_ColumnEmp);
_GridControl.Columns.Add(_ColumnMonth);
_GridControl.Columns.AddRange(_ColumnDays);
_GridControl.Columns.AddRange(_ColumnWeek);
}
@@ -367,7 +357,8 @@ namespace BeWo.View.Detail.Report
{
if (!_IsControlClick)
{
_PopupPicker.IsOpen = false;
//_PopupPicker.IsOpen = false;
popUp_RightClick.IsOpen = false;
}
_IsControlClick = false;
@@ -381,7 +372,7 @@ namespace BeWo.View.Detail.Report
// Button Click
private void BtnAnzeigen_Click(object sender, RoutedEventArgs e)
{
_PopupPicker.IsOpen = false;
//_PopupPicker.IsOpen = false;
if (_WohnheimPicker.SelectedItem == null)
return;
@@ -390,12 +381,80 @@ namespace BeWo.View.Detail.Report
AuswahlWohnheim = _WohnheimPicker.SelectedItem as CompactWohnheimDC;
InitGridControl();
button_neuerMitarbeiter.Visibility = Visibility.Visible;
_BtnRemoveAllDiensteForMonth.Visibility = Visibility.Visible;
}
private void button_neuerMitarbeiter_Click(object sender, RoutedEventArgs e)
{
popUp_neuerMitarbeiterFuerWohnheim.IsOpen = true;
var alleMitarbeiter = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllActiveEmployees());
List<EmployeeDC> mitarbeiterMitVertrag = new List<EmployeeDC>();
foreach (var emp in alleMitarbeiter)
{
if (CheckForContracts(emp))
mitarbeiterMitVertrag.Add(emp);
}
foreach (var entry in _DienstDCListe)
{
for (int i = mitarbeiterMitVertrag.Count - 1; i >= 0; i--)
{
var currentEmp = mitarbeiterMitVertrag[i];
if (entry.Employee.EmployeeOid == currentEmp.EmployeeOid)
{
mitarbeiterMitVertrag.Remove(mitarbeiterMitVertrag[i]);
break;
}
}
}
combobox_mitarbeiter.ItemsSource = mitarbeiterMitVertrag.OrderBy(m => m.LastName);
}
private bool CheckForContracts(EmployeeDC emp)
{
var start = _AuswahlMonat;
var end = _AuswahlMonat.AddMonths(1).AddTicks(-1);
var contracts = emp.Contracts.Where(x => (!x.EntryDate.HasValue || x.EntryDate.Value <= end) &&
(!x.ContractEndDate.HasValue || x.ContractEndDate.Value >= start))
.OrderBy(x => x.EntryDate)
.ToList();
return contracts.Any() ? true : false;
}
private void button_add_employee_Click(object sender, RoutedEventArgs e)
{
if (combobox_mitarbeiter.SelectedItem == null)
return;
var emp = combobox_mitarbeiter.SelectedItem as EmployeeDC;
DienstBlockDC newDC = new DienstBlockDC()
{
Contracts = emp.Contracts,
DienstDictArray = new Dictionary<int, long>[3],
Employee = emp,
Wohnheim = _AuswahlWohnheim
};
_DienstEintragListe.AddRange(Init(newDC, _AlleDienste, RefreshGrid, _AuswahlMonat));
RefreshGrid();
popUp_neuerMitarbeiterFuerWohnheim.IsOpen = false;
}
// Grid Click
public void DienstplanerControl_MouseDown(object sender, MouseEventArgs e)
{
_PopupPicker.IsOpen = false;
_IsControlClick = true;
//_PopupPicker.IsOpen = false;
popUp_RightClick.IsOpen = false;
textbox_bemerkung.Text = "";
_AuswahlDienstZeileDC = _GridControl.GetRow(_GridControl.View.GetRowHandleByMouseEventArgs(e)) as DienstZeileDC;
@@ -404,72 +463,131 @@ namespace BeWo.View.Detail.Report
_AuswahlTag = int.Parse(_GridControl.View.GetColumnByMouseEventArgs(e).FieldName);
listbox_valuepicker.ItemsSource = _AlleDienste;
popUp_RightClick.IsOpen = true;
combobox_dienste.ItemsSource = _AlleDienste;
_IsControlClick = true;
_PopupPicker.IsOpen = true;
}
// Popup Click
private void Popup_MouseDown(object sender, MouseButtonEventArgs e)
{
var oldDienst = TryGetDienst(_AuswahlDienstZeileDC, _AuswahlTag); //abc
var newDienst = (DienstInfoDC)((Grid)sender).Tag;
_PopupPicker.IsOpen = false;
if (oldDienst == null)
if (_AuswahlWohnheim.EmployeeOids.Contains(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value))
{
if (!newDienst.IsPlatzhalter)
{
_AuswahlDienstZeileDC.AddDienst(_AuswahlTag, newDienst); //abc
var eintrag = ServiceFacade.DoOperationsServiceSync(s => s.GetDienstEintrag(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
_AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
ServiceFacade.DoOperationsServiceAsync(x => x.InsertNewDienstEintrag(
new DienstEintragDC
{
Datum = Pointer,
DienstOid = newDienst.Oid.Value,
EmployeeOid = _AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
Oid = null,
WohnheimOid = AuswahlWohnheim.WohnheimOid,
Zeile = _AuswahlDienstZeileDC.Zeile
}));
}
}
else
{
if (newDienst.IsPlatzhalter)
if (eintrag == null)
{
_AuswahlDienstZeileDC.RemoveDienst(_AuswahlTag); //abc
ServiceFacade.DoOperationsServiceAsync(x => x.DeleteDienstEintrag(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value, AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
groupbox_popUp_RightClick.Header = "Neuen Dienst hinzufügen";
combobox_dienste.SelectedIndex = 0;
}
else
{
if (oldDienst.Equals(newDienst))
return;
_AuswahlDienstZeileDC.RemoveDienst(_AuswahlTag); //abc
ServiceFacade.DoOperationsServiceAsync(x => x.DeleteDienstEintrag(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value, AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
_AuswahlDienstZeileDC.AddDienst(_AuswahlTag, newDienst); //abc
ServiceFacade.DoOperationsServiceAsync(x => x.InsertNewDienstEintrag(
new DienstEintragDC
groupbox_popUp_RightClick.Header = "Dienst bearbeiten";
foreach (var info in _AlleDienste)
{
if (eintrag.DienstOid == info.Oid)
{
Datum = Pointer,
DienstOid = newDienst.Oid.Value,
EmployeeOid = _AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
Oid = null,
WohnheimOid = AuswahlWohnheim.WohnheimOid,
Zeile = _AuswahlDienstZeileDC.Zeile
}));
//_AuswahlDienstZeileDC.UpdateDienst(_AuswahlTag, newDienst);
combobox_dienste.SelectedItem = info;
break;
}
}
}
}
}
textbox_bemerkung.Text = eintrag != null ? eintrag.Notice : "";
}
else
{
var vertretung = ServiceFacade.DoOperationsServiceSync(s => s.GetDienstvertretung(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
_AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
if (vertretung == null)
{
groupbox_popUp_RightClick.Header = "Neuen Vertretungsdienst hinzufügen";
combobox_dienste.SelectedIndex = 0;
}
else
{
groupbox_popUp_RightClick.Header = "Vertretungsdienst bearbeiten";
foreach (var info in _AlleDienste)
{
if (vertretung.DienstOid == info.Oid)
{
combobox_dienste.SelectedItem = info;
break;
}
}
}
textbox_bemerkung.Text = vertretung != null ? vertretung.Notice : "";
}
}
private void button_save_Click(object sender, RoutedEventArgs e)
{
if (_AuswahlWohnheim.EmployeeOids.Contains(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value))
{
var eintrag = ServiceFacade.DoOperationsServiceSync(s => s.GetDienstEintrag(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
_AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
if (eintrag != null)
{
var oldDienst = TryGetDienst(_AuswahlDienstZeileDC, _AuswahlTag); //abc
ServiceFacade.DoOperationsServiceSync(x => x.DeleteDienstEintrag(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value, AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
_AuswahlDienstZeileDC.RemoveDienst(_AuswahlTag);
}
if ((long)((DienstInfoDC)combobox_dienste.SelectedItem).Oid == -1)
{
textbox_bemerkung.Text = "";
popUp_RightClick.IsOpen = false;
return;
}
ServiceFacade.DoOperationsServiceSync(x => x.InsertNewDienstEintrag(
new DienstEintragDC
{
Datum = Pointer,
DienstOid = (long)((DienstInfoDC)combobox_dienste.SelectedItem).Oid,
EmployeeOid = _AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
Oid = null,
WohnheimOid = AuswahlWohnheim.WohnheimOid,
Zeile = _AuswahlDienstZeileDC.Zeile,
Notice = textbox_bemerkung.Text
}));
}
else
{
var vertretung = ServiceFacade.DoOperationsServiceSync(s => s.GetDienstvertretung(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
_AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
if (vertretung != null)
{
var oldDienst = TryGetDienst(_AuswahlDienstZeileDC, _AuswahlTag); //abc
ServiceFacade.DoOperationsServiceSync(x => x.DeleteDienstvertretung(_AuswahlDienstZeileDC.Employee.EmployeeOid.Value, AuswahlWohnheim.WohnheimOid, _AuswahlDienstZeileDC.Zeile, Pointer));
_AuswahlDienstZeileDC.RemoveDienst(_AuswahlTag);
}
if ((long)((DienstInfoDC)combobox_dienste.SelectedItem).Oid == -1)
{
textbox_bemerkung.Text = "";
popUp_RightClick.IsOpen = false;
return;
}
ServiceFacade.DoOperationsServiceSync(x => x.InsertNewDienstvertretung(
new DienstvertretungDC
{
Datum = Pointer,
DienstOid = (long)((DienstInfoDC)combobox_dienste.SelectedItem).Oid,
EmployeeOid = _AuswahlDienstZeileDC.Employee.EmployeeOid.Value,
Oid = null,
WohnheimOid = AuswahlWohnheim.WohnheimOid,
Zeile = _AuswahlDienstZeileDC.Zeile,
Notice = textbox_bemerkung.Text
}));
}
_AuswahlDienstZeileDC.AddDienst(_AuswahlTag, combobox_dienste.SelectedItem as DienstInfoDC);
textbox_bemerkung.Text = "";
popUp_RightClick.IsOpen = false;
}
// Daten füllen
// Für jede Zeile so oft aufgerufen, wie es Tage im Monat gibt
@@ -560,6 +678,18 @@ namespace BeWo.View.Detail.Report
Row = selZeile.Zeile
};
return;
case "MO":
pos = int.Parse(e.Column.FieldName.Remove(e.Column.FieldName.Length - 1)); //31 im März
e.Value = selZeile.Zeile == 2 ? _DienstEintragListe.FindAll(x => x.Employee == selZeile.Employee).SelectMany(y => y.GetDienstMonat()).ToList() : null;
if (selZeile.Zeile == 0 && selZeile.StatusListe != null)
{
e.Value = new List<DienstInfoDC>();
var month = new DPCtrlMonth();
month.DienstInfoDCList = e.Value as List<DienstInfoDC>;
}
return;
}
}
@@ -574,6 +704,9 @@ namespace BeWo.View.Detail.Report
private void RefreshDienste()
{
_DienstDCListe = ServiceFacade.DoOperationsServiceSync(x => x.GetDienstEintraege(AuswahlWohnheim.WohnheimOid, AuswahlMonat.Year, AuswahlMonat.Month)); //Dem Wohnheim zugeordnete Mitarbeiter mit ihren Diensten
var vertretungen = ServiceFacade.DoOperationsServiceSync(x => x.GetDienstvertretungen(AuswahlWohnheim.WohnheimOid, AuswahlMonat.Year, AuswahlMonat.Month));
_DienstDCListe.AddRange(vertretungen);
_DienstDCListe = _DienstDCListe.OrderBy(d => d.Employee.LastName).ToList();
_AlleDienste = ServiceFacade.DoOperationsServiceSync(x => x.GetAllDienste()); //Verschiedene Schichten zum Zuordnen an Mitarbeiter
@@ -730,6 +863,13 @@ namespace BeWo.View.Detail.Report
#endregion
/// <summary>

View File

@@ -145,6 +145,7 @@
<Compile Include="DefaultHibernateSessionManager.cs" />
<Compile Include="Entities\AddressHistory.cs" />
<Compile Include="Entities\ConfirmationReceiptSignature.cs" />
<Compile Include="Entities\Dienstvertretung.cs" />
<Compile Include="Entities\Dokumentvorlage.cs" />
<Compile Include="Entities\GoalRating.cs" />
<Compile Include="Entities\Quittierungsbelegsstatus.cs" />
@@ -645,6 +646,7 @@
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Mappings\Quittierungsbelegsstatus.hbm.xml" />
<EmbeddedResource Include="Mappings\Dienstvertretung.hbm.xml" />
<Content Include="Mappings\Timesheet2Mail.hbm.xml" />
<EmbeddedResource Include="Mappings\ContactHistory.hbm.xml">
<SubType>Designer</SubType>

View File

@@ -0,0 +1,98 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Entities
{
public class Dienstvertretung : BeWoEntityBase
{
private long _EmployeeOid;
private long _WohnheimOid;
private long _DienstOid;
private int _Zeile;
private DateTime _Datum;
public Dienstvertretung()
{
_Tid = TableID.Dienstvertretung;
}
public virtual long EmployeeOid
{
get
{
return _EmployeeOid;
}
set
{
if (AreDifferent(_EmployeeOid, value))
{
_EmployeeOid = value;
}
}
}
public virtual long WohnheimOid
{
get
{
return _WohnheimOid;
}
set
{
if (AreDifferent(_WohnheimOid, value))
{
_WohnheimOid = value;
}
}
}
public virtual long DienstOid
{
get
{
return _DienstOid;
}
set
{
if (AreDifferent(_DienstOid, value))
{
_DienstOid = value;
}
}
}
public virtual int Zeile
{
get
{
return _Zeile;
}
set
{
if (AreDifferent(_Zeile, value))
{
_Zeile = value;
}
}
}
public virtual DateTime Datum
{
get
{
return _Datum;
}
set
{
if (AreDifferent(_Datum, value))
{
_Datum = value;
}
}
}
}
}

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="BeWo.Data.Entities.Dienstvertretung,BeWo.Data" table="dienstvertretung">
<id name="Oid" column="Oid" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<version column="Version" type="Int64" name="Version" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="Notice" type="String" name="Notice" length="1024" />
<property column="InsTs" type="DateTime" name="InsTs" />
<property column="InsUser" type="String" name="InsUser" length="256" />
<property column="UdpUser" type="String" name="UdpUser" length="256" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="EmployeeOid" type="Int64" name="EmployeeOid" />
<property column="WohnheimOid" type="Int64" name="WohnheimOid" />
<property column="DienstOid" type="Int64" name="DienstOid" />
<property column="Datum" type="DateTime" name="Datum" />
<property column="Zeile" type="Int32" name="Zeile" />
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,17 @@
CREATE TABLE `dienstvertretung` (
`Oid` bigint NOT NULL AUTO_INCREMENT,
`Tid` int DEFAULT NULL,
`IsActive` tinyint DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`SystemEntryID` int DEFAULT NULL,
`EmployeeOid` bigint DEFAULT NULL,
`WohnheimOid` bigint DEFAULT NULL,
`DienstOid` bigint DEFAULT NULL,
`Zeile` int DEFAULT NULL,
`Datum` datetime DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;

View File

@@ -0,0 +1,21 @@
CREATE TABLE `dokumentvorlage` (
`Oid` bigint NOT NULL AUTO_INCREMENT,
`Tid` int NOT NULL,
`ObjectOid` bigint DEFAULT NULL,
`ObjectTid` int DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`IsActive` tinyint DEFAULT NULL,
`SystemEntryID` int DEFAULT NULL,
`Tabellenzugehoerigkeit` bigint DEFAULT NULL,
`Name` varchar(1024) DEFAULT NULL,
`Beschreibung` varchar(1024) DEFAULT NULL,
`Data` mediumblob,
`Text` mediumtext,
`RTFText` mediumtext,
`Parent` bigint DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@@ -0,0 +1,15 @@
CREATE TABLE `vorlagentabelle` (
`Oid` bigint NOT NULL AUTO_INCREMENT,
`Tid` int NOT NULL,
`ObjectOid` bigint DEFAULT NULL,
`ObjectTid` int DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`IsActive` tinyint DEFAULT NULL,
`SystemEntryID` int DEFAULT NULL,
`Tabellenname` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@@ -86,9 +86,15 @@
<Compile Include="ServicesOverviewReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ServicesOverviewReport.designer.cs">
<Compile Include="ServicesOverviewReport.Designer.cs">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</Compile>
<Compile Include="ServicesOverviewReport2.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ServicesOverviewReport2.designer.cs">
<DependentUpon>ServicesOverviewReport2.cs</DependentUpon>
</Compile>
<Compile Include="SupportConceptReport.cs">
<SubType>Component</SubType>
</Compile>
@@ -110,6 +116,9 @@
<EmbeddedResource Include="ServicesOverviewReport.resx">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ServicesOverviewReport2.resx">
<DependentUpon>ServicesOverviewReport2.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SupportConceptReport.resx">
<DependentUpon>SupportConceptReport.cs</DependentUpon>
</EmbeddedResource>

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,11 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
namespace BeWo.CaritasFrankfurtReports
namespace BeWo.CaritasFrankfurt2Reports
{
public partial class Stundenzettel : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<ServicesOverviewRO>
{
@@ -17,22 +16,6 @@ namespace BeWo.CaritasFrankfurtReports
public void SetReportDataSource(ServicesOverviewRO pRO)
{
if (pRO.AllEmployees != null)
{
foreach (var employee in pRO.AllEmployees)
{
if (employee.Employee != null && employee.Employee.IsQualified.HasValue &&
employee.Employee.IsQualified.Value)
{
employee.EmployeeName += " FK";
}
else
{
roterPunkt.Visible = true;
}
}
}
this.bindingSource1.DataSource = pRO;
}
}

View File

@@ -117,203 +117,11 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="xrLabel23.Text" xml:space="preserve">
<value>Für die einheitliche Dokumentation der Leistungen und Maßnahmen nach § 5 Abs. 2 Zusatzvereinbarung stellt der Leistungserbringer im Betreuten Wohnen den Nachweis (vgl. § 10 Zusatzvereinbarung) in dieser inhaltlichen Form dem LWV Hessen zur Verfügung.
Die Summen zur Dauer der Leistungserbringung fließen in der Addition für alle leistungsberechtigen Personen im Zeitraum 01.01. bis 31.12. in den jährlichen Bericht (Anlage 1 zu § 10 Zusatzvereinbarung) unter Frage 3.2 bzw. 3.3 ein.</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>21, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="xrPictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAbsAAADsCAMAAADaS/jXAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAA
BAQECQkJDQ0NERERFRUVGhoaHh4eIiIiJiYmKysrLy8vMzMzNzc3PDw8QEBARERESEhITU1NUVFRVVVV
WVlZXl5eYmJiZmZmampqb29vc3Nzd3d3e3t7gICAhISEiIiIjIyMkZGRlZWVmZmZnZ2doqKipqamqqqq
rq6us7Ozt7e3u7u7v7+/xMTEyMjIzMzM0NDQ1dXV2dnZ3d3d4eHh5ubm6urq7u7u8vLy9/f3+/v7////
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfc1a+gAAAAlwSFlzAAAu
IgAALiIBquLdkgAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAACkSSURBVHhe7V2J
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
FfP5/wDp16gC+xtujgAAAABJRU5ErkJggg==
</value>
</data>
</root>

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
namespace BeWo.CaritasFrankfurtReports
{
public partial class Stundenzettel : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<ServicesOverviewRO>
{
public Stundenzettel()
{
InitializeComponent();
}
public void SetReportDataSource(ServicesOverviewRO pRO)
{
if (pRO.AllEmployees != null)
{
foreach (var employee in pRO.AllEmployees)
{
if (employee.Employee != null && employee.Employee.IsQualified.HasValue &&
employee.Employee.IsQualified.Value)
{
employee.EmployeeName += " FK";
}
else
{
roterPunkt.Visible = true;
}
}
}
this.bindingSource1.DataSource = pRO;
}
}
}

View File

@@ -0,0 +1,966 @@
using BeWo.Report.ReportObjects;
namespace BeWo.CaritasFrankfurtReports
{
partial class Stundenzettel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Stundenzettel));
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.xrTableServiceRecords2 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableServiceRecords1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow6 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell24 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell25 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.DetailReport1 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail2 = new DevExpress.XtraReports.UI.DetailBand();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport2 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail3 = new DevExpress.XtraReports.UI.DetailBand();
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.formattingRuleUnterschrift = new DevExpress.XtraReports.UI.FormattingRule();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.formattingRuleServiceDesc = new DevExpress.XtraReports.UI.FormattingRule();
this.formattingRuleCostBearer = new DevExpress.XtraReports.UI.FormattingRule();
this.formattingRuleEmployeeName = new DevExpress.XtraReports.UI.FormattingRule();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.roterPunkt = new DevExpress.XtraReports.UI.XRShape();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.fieldCustomerCount = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldCustomerCount2 = new DevExpress.XtraReports.UI.CalculatedField();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableServiceRecords2,
this.xrTableServiceRecords1});
this.Detail.HeightF = 20F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrTableServiceRecords2
//
this.xrTableServiceRecords2.BackColor = System.Drawing.Color.WhiteSmoke;
this.xrTableServiceRecords2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableServiceRecords2.LocationFloat = new DevExpress.Utils.PointFloat(513.9999F, 0F);
this.xrTableServiceRecords2.Name = "xrTableServiceRecords2";
this.xrTableServiceRecords2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableServiceRecords2.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow3});
this.xrTableServiceRecords2.SizeF = new System.Drawing.SizeF(505F, 20F);
this.xrTableServiceRecords2.StylePriority.UseBorderWidth = false;
this.xrTableServiceRecords2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrTableRow3
//
this.xrTableRow3.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell6,
this.xrTableCell7,
this.xrTableCell8,
this.xrTableCell23,
this.xrTableCell10,
this.xrTableCell18});
this.xrTableRow3.Name = "xrTableRow3";
this.xrTableRow3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableRow3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableRow3.Weight = 1D;
//
// xrTableCell6
//
this.xrTableCell6.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell6.Text = "Tag";
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell6.Weight = 0.15363128491620115D;
//
// xrTableCell7
//
this.xrTableCell7.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell7.Text = "FLM";
this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell7.Weight = 0.13966480446927376D;
//
// xrTableCell8
//
this.xrTableCell8.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell8.Text = "Art";
this.xrTableCell8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell8.Weight = 0.15363128491620109D;
//
// xrTableCell23
//
this.xrTableCell23.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell23.Name = "xrTableCell23";
this.xrTableCell23.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell23.StylePriority.UseFont = false;
this.xrTableCell23.StylePriority.UsePadding = false;
this.xrTableCell23.StylePriority.UseTextAlignment = false;
this.xrTableCell23.Text = "Gruppe";
this.xrTableCell23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell23.Weight = 0.16759776536312848D;
//
// xrTableCell10
//
this.xrTableCell10.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell10.Text = "KT";
this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell10.Weight = 0.29329608938547469D;
//
// xrTableCell18
//
this.xrTableCell18.BackColor = System.Drawing.Color.WhiteSmoke;
this.xrTableCell18.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell18.Name = "xrTableCell18";
this.xrTableCell18.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell18.Text = "Mitarbeiter/in";
this.xrTableCell18.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell18.Weight = 0.50279329608938528D;
//
// xrTableServiceRecords1
//
this.xrTableServiceRecords1.BackColor = System.Drawing.Color.WhiteSmoke;
this.xrTableServiceRecords1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableServiceRecords1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableServiceRecords1.Name = "xrTableServiceRecords1";
this.xrTableServiceRecords1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableServiceRecords1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow2});
this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(505F, 20F);
this.xrTableServiceRecords1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrTableRow2
//
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell3,
this.xrTableCell4,
this.xrTableCell11,
this.xrTableCell22,
this.xrTableCell9,
this.xrTableCell12});
this.xrTableRow2.Name = "xrTableRow2";
this.xrTableRow2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableRow2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableRow2.Weight = 1D;
//
// xrTableCell3
//
this.xrTableCell3.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell3.Name = "xrTableCell3";
this.xrTableCell3.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell3.Text = "Tag";
this.xrTableCell3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell3.Weight = 0.15363128491620112D;
//
// xrTableCell4
//
this.xrTableCell4.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell4.Name = "xrTableCell4";
this.xrTableCell4.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell4.Text = "FLM";
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell4.Weight = 0.13966480446927376D;
//
// xrTableCell11
//
this.xrTableCell11.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell11.Text = "Art";
this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell11.Weight = 0.15363128491620112D;
//
// xrTableCell22
//
this.xrTableCell22.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell22.StylePriority.UseFont = false;
this.xrTableCell22.StylePriority.UsePadding = false;
this.xrTableCell22.StylePriority.UseTextAlignment = false;
this.xrTableCell22.Text = "Gruppe";
this.xrTableCell22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell22.Weight = 0.16759776536312851D;
//
// xrTableCell9
//
this.xrTableCell9.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell9.Text = "KT";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell9.Weight = 0.29329608938547486D;
//
// xrTableCell12
//
this.xrTableCell12.BackColor = System.Drawing.Color.WhiteSmoke;
this.xrTableCell12.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell12.Name = "xrTableCell12";
this.xrTableCell12.Padding = new DevExpress.XtraPrinting.PaddingInfo(5, 2, 0, 0, 100F);
this.xrTableCell12.Text = "Mitarbeiter/in";
this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell12.Weight = 0.50279329608938561D;
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1});
this.DetailReport.DataMember = "ServicesDouble";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
this.DetailReport.Name = "DetailReport";
this.DetailReport.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.DetailReport.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// Detail1
//
this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable3});
this.Detail1.HeightF = 20F;
this.Detail1.Name = "Detail1";
this.Detail1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrTable3
//
this.xrTable3.BorderColor = System.Drawing.Color.Black;
this.xrTable3.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable3.Name = "xrTable3";
this.xrTable3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow6});
this.xrTable3.SizeF = new System.Drawing.SizeF(1019F, 20F);
this.xrTable3.StylePriority.UseBorderWidth = false;
this.xrTable3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrTableRow6
//
this.xrTableRow6.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell13,
this.xrTableCell14,
this.xrTableCell15,
this.xrTableCell24,
this.xrTableCell16,
this.xrTableCell17,
this.xrTableCell1,
this.xrTableCell2,
this.xrTableCell21,
this.xrTableCell20,
this.xrTableCell25,
this.xrTableCell5,
this.xrTableCell19});
this.xrTableRow6.Name = "xrTableRow6";
this.xrTableRow6.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableRow6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrTableRow6.Weight = 1D;
//
// xrTableCell13
//
this.xrTableCell13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.StartDate", "{0:dd.MMM}")});
this.xrTableCell13.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell13.Name = "xrTableCell13";
this.xrTableCell13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell13.StylePriority.UseFont = false;
this.xrTableCell13.StylePriority.UseTextAlignment = false;
this.xrTableCell13.Text = "xrTableCell13";
this.xrTableCell13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell13.Weight = 0.069444443746877027D;
//
// xrTableCell14
//
this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.Minutes", "{0:0.##}")});
this.xrTableCell14.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell14.Name = "xrTableCell14";
this.xrTableCell14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell14.StylePriority.UseFont = false;
this.xrTableCell14.StylePriority.UseTextAlignment = false;
this.xrTableCell14.Text = "xrTableCell14";
this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell14.Weight = 0.0631313124337457D;
//
// xrTableCell15
//
this.xrTableCell15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.ServiceCategoryAbbr")});
this.xrTableCell15.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell15.Name = "xrTableCell15";
this.xrTableCell15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell15.StylePriority.UseFont = false;
this.xrTableCell15.Text = "xrTableCell15";
this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell15.Weight = 0.069444444776619416D;
//
// xrTableCell24
//
this.xrTableCell24.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.fieldCustomerCount")});
this.xrTableCell24.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell24.Name = "xrTableCell24";
this.xrTableCell24.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell24.StylePriority.UseFont = false;
this.xrTableCell24.StylePriority.UsePadding = false;
this.xrTableCell24.StylePriority.UseTextAlignment = false;
this.xrTableCell24.Text = "xrTableCell24";
this.xrTableCell24.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell24.Weight = 0.075757576089750728D;
//
// xrTableCell16
//
this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.CostBearer")});
this.xrTableCell16.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell16.StylePriority.UseFont = false;
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell16.Weight = 0.13257575824010751D;
//
// xrTableCell17
//
this.xrTableCell17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.EmployeeName")});
this.xrTableCell17.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell17.Name = "xrTableCell17";
this.xrTableCell17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell17.StylePriority.UseFont = false;
this.xrTableCell17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell17.Weight = 0.22727272880073213D;
//
// xrTableCell1
//
this.xrTableCell1.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrTableCell1.Name = "xrTableCell1";
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell1.StylePriority.UseBorders = false;
this.xrTableCell1.Weight = 0.011363554206802972D;
//
// xrTableCell2
//
this.xrTableCell2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.StartDate2", "{0:dd.MMM}")});
this.xrTableCell2.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell2.FormattingRules.Add(this.formattingRuleStartDate);
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell2.StylePriority.UseFont = false;
this.xrTableCell2.StylePriority.UseTextAlignment = false;
this.xrTableCell2.Text = "xrTableCell2";
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell2.Weight = 0.069444446706555946D;
//
// formattingRuleStartDate
//
this.formattingRuleStartDate.Condition = "[StartDate2] < [StartDate]";
this.formattingRuleStartDate.DataMember = "ServicesDouble";
//
//
//
this.formattingRuleStartDate.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.formattingRuleStartDate.Name = "formattingRuleStartDate";
//
// xrTableCell21
//
this.xrTableCell21.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.Minutes2", "{0:0.##}")});
this.xrTableCell21.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell21.FormattingRules.Add(this.formattingRuleStartDate);
this.xrTableCell21.Name = "xrTableCell21";
this.xrTableCell21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell21.StylePriority.UseFont = false;
this.xrTableCell21.StylePriority.UseTextAlignment = false;
this.xrTableCell21.Text = "xrTableCell21";
this.xrTableCell21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell21.Weight = 0.06313131298515616D;
//
// xrTableCell20
//
this.xrTableCell20.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.ServiceCategoryAbbr2")});
this.xrTableCell20.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell20.FormattingRules.Add(this.formattingRuleStartDate);
this.xrTableCell20.Name = "xrTableCell20";
this.xrTableCell20.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell20.StylePriority.UseFont = false;
this.xrTableCell20.StylePriority.UseTextAlignment = false;
this.xrTableCell20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell20.Weight = 0.069444443746877D;
//
// xrTableCell25
//
this.xrTableCell25.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.fieldCustomerCount2")});
this.xrTableCell25.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell25.FormattingRules.Add(this.formattingRuleStartDate);
this.xrTableCell25.Name = "xrTableCell25";
this.xrTableCell25.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell25.StylePriority.UseFont = false;
this.xrTableCell25.StylePriority.UsePadding = false;
this.xrTableCell25.StylePriority.UseTextAlignment = false;
this.xrTableCell25.Text = "xrTableCell25";
this.xrTableCell25.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell25.Weight = 0.075757575060008339D;
//
// xrTableCell5
//
this.xrTableCell5.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.CostBearer2")});
this.xrTableCell5.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell5.FormattingRules.Add(this.formattingRuleStartDate);
this.xrTableCell5.Name = "xrTableCell5";
this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell5.StylePriority.UseFont = false;
this.xrTableCell5.StylePriority.UseTextAlignment = false;
this.xrTableCell5.Text = "xrTableCell5";
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell5.Weight = 0.13257575618062273D;
//
// xrTableCell19
//
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServicesDouble.EmployeeName2")});
this.xrTableCell19.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell19.FormattingRules.Add(this.formattingRuleStartDate);
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell19.StylePriority.UseFont = false;
this.xrTableCell19.StylePriority.UseTextAlignment = false;
this.xrTableCell19.Text = "xrTableCell19";
this.xrTableCell19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell19.Weight = 0.22727273157771483D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServicesOverviewRO);
//
// DetailReport1
//
this.DetailReport1.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail2});
this.DetailReport1.Level = 1;
this.DetailReport1.Name = "DetailReport1";
this.DetailReport1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.DetailReport1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// Detail2
//
this.Detail2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.Detail2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel4});
this.Detail2.HeightF = 54.87499F;
this.Detail2.Name = "Detail2";
this.Detail2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel4
//
this.xrLabel4.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 29.87499F);
this.xrLabel4.Name = "xrLabel4";
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel4.SizeF = new System.Drawing.SizeF(349.6667F, 25F);
this.xrLabel4.StylePriority.UseFont = false;
this.xrLabel4.StylePriority.UseTextAlignment = false;
this.xrLabel4.Text = "Ich versichere die Richtigkeit der o.g. Angaben:";
this.xrLabel4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// DetailReport2
//
this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail3,
this.GroupFooter1});
this.DetailReport2.DataMember = "AllEmployees";
this.DetailReport2.DataSource = this.bindingSource1;
this.DetailReport2.Level = 2;
this.DetailReport2.Name = "DetailReport2";
this.DetailReport2.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.DetailReport2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// Detail3
//
this.Detail3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel14,
this.xrLabel13,
this.xrLabel10,
this.xrLabel7,
this.xrLabel6,
this.xrLabel8});
this.Detail3.HeightF = 42.00001F;
this.Detail3.Name = "Detail3";
this.Detail3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel14
//
this.xrLabel14.Font = new System.Drawing.Font("Arial", 9.75F);
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(501.0417F, 17.00001F);
this.xrLabel14.Name = "xrLabel14";
this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel14.SizeF = new System.Drawing.SizeF(51.04169F, 25F);
this.xrLabel14.StylePriority.UseFont = false;
this.xrLabel14.StylePriority.UseTextAlignment = false;
this.xrLabel14.Text = "FLS";
this.xrLabel14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel13
//
this.xrLabel13.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AllEmployees.TotalFLS", "{0:0.##}")});
this.xrLabel13.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(443.0417F, 17.00001F);
this.xrLabel13.Name = "xrLabel13";
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(58F, 25F);
this.xrLabel13.StylePriority.UseFont = false;
this.xrLabel13.StylePriority.UseTextAlignment = false;
this.xrLabel13.Text = "xrLabel7";
this.xrLabel13.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
//
// xrLabel10
//
this.xrLabel10.Font = new System.Drawing.Font("Arial", 9.75F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(392.0001F, 17.00001F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(51.04169F, 25F);
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.StylePriority.UseTextAlignment = false;
this.xrLabel10.Text = "FLM = ";
this.xrLabel10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel7
//
this.xrLabel7.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AllEmployees.TotalFLM", "{0:0.##}")});
this.xrLabel7.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(325F, 17F);
this.xrLabel7.Name = "xrLabel7";
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel7.SizeF = new System.Drawing.SizeF(58F, 25F);
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.StylePriority.UseTextAlignment = false;
this.xrLabel7.Text = "xrLabel7";
this.xrLabel7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
//
// xrLabel6
//
this.xrLabel6.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AllEmployees.EmployeeName")});
this.xrLabel6.Font = new System.Drawing.Font("Arial", 9.75F);
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 17.00001F);
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(148.9583F, 25F);
this.xrLabel6.StylePriority.UseFont = false;
this.xrLabel6.StylePriority.UseTextAlignment = false;
this.xrLabel6.Text = "xrLabel6";
this.xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel8
//
this.xrLabel8.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrLabel8.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrLabel8.FormattingRules.Add(this.formattingRuleUnterschrift);
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(148.9583F, 12.00002F);
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(176.0417F, 25F);
this.xrLabel8.StylePriority.UseBorders = false;
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// formattingRuleUnterschrift
//
this.formattingRuleUnterschrift.Condition = "[Employee.IsQualified] == true";
this.formattingRuleUnterschrift.DataMember = "AllEmployees";
//
//
//
this.formattingRuleUnterschrift.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.formattingRuleUnterschrift.Name = "formattingRuleUnterschrift";
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel15,
this.xrLabel11});
this.GroupFooter1.HeightF = 75F;
this.GroupFooter1.Name = "GroupFooter1";
//
// xrLabel15
//
this.xrLabel15.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLSPerCostBearer")});
this.xrLabel15.Font = new System.Drawing.Font("Arial", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 50F);
this.xrLabel15.Multiline = true;
this.xrLabel15.Name = "xrLabel15";
this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel15.SizeF = new System.Drawing.SizeF(783F, 25F);
this.xrLabel15.StylePriority.UseBorderWidth = false;
this.xrLabel15.StylePriority.UseFont = false;
this.xrLabel15.Text = "xrLabel11";
//
// xrLabel11
//
this.xrLabel11.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMPerCostBearer")});
this.xrLabel11.Font = new System.Drawing.Font("Arial", 10F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F);
this.xrLabel11.Multiline = true;
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel11.SizeF = new System.Drawing.SizeF(783F, 25F);
this.xrLabel11.StylePriority.UseBorderWidth = false;
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.Text = "xrLabel11";
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel3,
this.xrPictureBox1,
this.xrLabel12,
this.xrLabel2,
this.xrLabel1,
this.xrLabel9});
this.ReportHeader.HeightF = 168.9167F;
this.ReportHeader.Name = "ReportHeader";
//
// xrLabel3
//
this.xrLabel3.Font = new System.Drawing.Font("Arial", 11F);
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 124.125F);
this.xrLabel3.Multiline = true;
this.xrLabel3.Name = "xrLabel3";
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 24F);
this.xrLabel3.StylePriority.UseFont = false;
this.xrLabel3.StylePriority.UseTextAlignment = false;
this.xrLabel3.Text = "Bezugsbetreuer : [MainAttendant]";
this.xrLabel3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrPictureBox1
//
this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(871.0833F, 0F);
this.xrPictureBox1.Name = "xrPictureBox1";
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(147.9167F, 79.16666F);
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.AutoSize;
this.xrPictureBox1.StylePriority.UseBorderWidth = false;
//
// xrLabel12
//
this.xrLabel12.Font = new System.Drawing.Font("Arial", 11F);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(0F, 100.125F);
this.xrLabel12.Multiline = true;
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(650F, 24F);
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.StylePriority.UseTextAlignment = false;
this.xrLabel12.Text = "Leistungsberechtigter: [CustomerName] Zeitraum: [Month] [Year]";
this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel2
//
this.xrLabel2.Font = new System.Drawing.Font("Arial", 11F);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 76.12498F);
this.xrLabel2.Multiline = true;
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(650F, 24F);
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.StylePriority.UseTextAlignment = false;
this.xrLabel2.Text = "Kostenzusage: [ApprovedStartDate] - [ApprovedEndDate]";
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel1
//
this.xrLabel1.Font = new System.Drawing.Font("Arial", 14F);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 28.125F);
this.xrLabel1.Multiline = true;
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(650F, 24F);
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.StylePriority.UseTextAlignment = false;
this.xrLabel1.Text = "Betreuungsnachweis Betreutes Wohnen\r\n";
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrLabel9
//
this.xrLabel9.Font = new System.Drawing.Font("Arial", 11F);
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 52.12498F);
this.xrLabel9.Multiline = true;
this.xrLabel9.Name = "xrLabel9";
this.xrLabel9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel9.SizeF = new System.Drawing.SizeF(650F, 24F);
this.xrLabel9.StylePriority.UseFont = false;
this.xrLabel9.StylePriority.UseTextAlignment = false;
this.xrLabel9.Text = "Leistungserbringer: Caritasverband Frankfurt Konrad-von-Preysing Haus ";
this.xrLabel9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// 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";
//
// topMarginBand1
//
this.topMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.roterPunkt});
this.topMarginBand1.HeightF = 30F;
this.topMarginBand1.Name = "topMarginBand1";
//
// roterPunkt
//
this.roterPunkt.FillColor = System.Drawing.Color.Red;
this.roterPunkt.ForeColor = System.Drawing.Color.Transparent;
this.roterPunkt.LocationFloat = new DevExpress.Utils.PointFloat(1052F, 18F);
this.roterPunkt.Name = "roterPunkt";
this.roterPunkt.SizeF = new System.Drawing.SizeF(12F, 12F);
this.roterPunkt.StylePriority.UseBackColor = false;
this.roterPunkt.StylePriority.UseBorderWidth = false;
this.roterPunkt.StylePriority.UseForeColor = false;
this.roterPunkt.Visible = false;
//
// bottomMarginBand1
//
this.bottomMarginBand1.HeightF = 30F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// fieldCustomerCount
//
this.fieldCustomerCount.DataMember = "ServicesDouble";
this.fieldCustomerCount.Expression = "Iif([CustomerCount] > 1, [CustomerCount] , \'\')";
this.fieldCustomerCount.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.fieldCustomerCount.Name = "fieldCustomerCount";
//
// fieldCustomerCount2
//
this.fieldCustomerCount2.DataMember = "ServicesDouble";
this.fieldCustomerCount2.Expression = "Iif([CustomerCount2] > 1, [CustomerCount2] , \'\')";
this.fieldCustomerCount2.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.fieldCustomerCount2.Name = "fieldCustomerCount2";
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.DetailReport,
this.DetailReport1,
this.DetailReport2,
this.ReportHeader,
this.topMarginBand1,
this.bottomMarginBand1});
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.fieldCustomerCount,
this.fieldCustomerCount2});
this.DataSource = this.bindingSource1;
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.formattingRuleStartDate,
this.formattingRuleServiceDesc,
this.formattingRuleCostBearer,
this.formattingRuleEmployeeName,
this.formattingRuleUnterschrift});
this.Landscape = true;
this.Margins = new System.Drawing.Printing.Margins(75, 20, 30, 30);
this.PageHeight = 827;
this.PageWidth = 1169;
this.PaperKind = System.Drawing.Printing.PaperKind.A4;
this.Version = "12.1";
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
#endregion
private DevExpress.XtraReports.UI.DetailBand Detail;
private System.Windows.Forms.BindingSource bindingSource1;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport;
private DevExpress.XtraReports.UI.DetailBand Detail1;
private DevExpress.XtraReports.UI.XRTable xrTable3;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow6;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell14;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell15;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport1;
private DevExpress.XtraReports.UI.DetailBand Detail2;
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport2;
private DevExpress.XtraReports.UI.DetailBand Detail3;
private DevExpress.XtraReports.UI.XRLabel xrLabel8;
private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRTable xrTableServiceRecords1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
private DevExpress.XtraReports.UI.XRTable xrTableServiceRecords2;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow3;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell18;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell20;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell19;
private DevExpress.XtraReports.UI.FormattingRule formattingRuleStartDate;
private DevExpress.XtraReports.UI.FormattingRule formattingRuleServiceDesc;
private DevExpress.XtraReports.UI.FormattingRule formattingRuleCostBearer;
private DevExpress.XtraReports.UI.FormattingRule formattingRuleEmployeeName;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
private DevExpress.XtraReports.UI.XRLabel xrLabel14;
private DevExpress.XtraReports.UI.XRLabel xrLabel13;
private DevExpress.XtraReports.UI.XRLabel xrLabel15;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell23;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell22;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell24;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell25;
private DevExpress.XtraReports.UI.CalculatedField fieldCustomerCount;
private DevExpress.XtraReports.UI.CalculatedField fieldCustomerCount2;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
private DevExpress.XtraReports.UI.FormattingRule formattingRuleUnterschrift;
private DevExpress.XtraReports.UI.XRShape roterPunkt;
}
}

View File

@@ -0,0 +1,319 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<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>21, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="xrPictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAbsAAADsCAMAAADaS/jXAAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAA
BAQECQkJDQ0NERERFRUVGhoaHh4eIiIiJiYmKysrLy8vMzMzNzc3PDw8QEBARERESEhITU1NUVFRVVVV
WVlZXl5eYmJiZmZmampqb29vc3Nzd3d3e3t7gICAhISEiIiIjIyMkZGRlZWVmZmZnZ2doqKipqamqqqq
rq6us7Ozt7e3u7u7v7+/xMTEyMjIzMzM0NDQ1dXV2dnZ3d3d4eHh5ubm6urq7u7u8vLy9/f3+/v7////
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfc1a+gAAAAlwSFlzAAAu
IgAALiIBquLdkgAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuND6NzHYAACkSSURBVHhe7V2J
QuO6Di0MOwzbzABtodCytmyle5v+/3c9SXZs2bETp6RA38159w2Jm8XxsWRJ3irzEquKkrvVRcnd6qLk
bnVRcre6KLlbXZTcrS5K7lYXJXeri5K71UXJ3eqi5G51UXIXggf592eh5C4A3dqrPPpRKLnLRtSo1afy
+Ceh5C4bz7Va7Uke/ySU3GViUgfuqmN59oNQcpeJB6CuVruVZz8IJXdZGBB1teqHPP85KLnLQlNwV7uW
5z8HJXcZeEfeLvGfH+cnlNylI7oC1upj/PdyJtN+Ckru0hCRf1B7nr/hn0eZ+lNQcpeKKfoHjWg+v0Hy
fpif8B/mDhjJxD1S1oWDPh7cBt3zZfjPchfEwhAZa9LhHRxVe3T4U1DqTAcUr+QfDOlwjIc3pdz9EPQ6
fpCEdZGvuP+nA8fVH+UnWNxF8L9x8+/Bt+FvkwyCL6nfZEN60IE8RA04qE/k1TN08sBPWChrS/kegzt8
Q3SzXvlWrF1/lWJK4+45/h0PBMhLRz9hofxBFSj6u2ydOTuWRfiNOJ4uqaJayJC7WewfxCA/IRbDvLgv
3rO3ufsjy+9b8UdmZslA7uq3SaByBHGbIFXv8lpEDxP68iQXoCmqv8nj4mBxdy9L75uRNj4kp0SmXI7c
NeQxRwvSkbsq/DXEbGHu5vOPJXQiWdztyML7ZuzI7LgxrubCg48+tBzTuEOqiuLuoVaLim4HTO5eZdl9
O15khpygQg2HV4i/UO4i0MNc/RYCk7trWXTfDn9nGVTenNx5Q8hZ3MGfaiHcRRRSu5NnhcHk7koWXW7s
tJ3Ylj/nxqXMkBNFyV2AziyGOzFuoo46s0i9aXJ3KYsuN/blAyzsy59zI507VGYfgxBgFDK33N1CerE6
E1WmiGkXiZXkDgvCKFQvHuHKhdo78O+Sr8GEhbijXojCuyFWVu7CuENd9f3tnRxqRkqzQKyq3JmF6gXK
nTeMldXeJaoIJuTijl4LjjmpTFKa//n2Dsvhs3IHhbiQ3A3gb14CKBIKKHio2X9A7u6xsIc9E33gIIA7
d3s36cunZKAvSaZAKAKJLw4LcLcl/3IEc/e3eyGPUlFUexfrTDioQ4Oj/6sCaQu3dyRH5vOc/1UnRB7F
QZ/wn2JdvNzcHXQne/KQIZC7TZyS8REgjUXJndKZSKKBq0+0d7EOzAJmEthDR6U+paEvhY5Wysnd+g1c
NU4Wfhh3v0ciObuLsCi583OXIXfSR3C3d6HciUyO8OhJjI0vdDpRPu5+CytrciLPFYK4u1BdWP3fMsmH
omwVpTOFlc6Qwl3sm+NlCe7yyt18TtoSBA5bvXqRvXi5uLtSBlZdpsQI4Q60lEKUEX3LlLtFdCYdIHAc
SobcZbd3IskLEjO6+wZaPmzoaHxukdZKDu42eXC/syFTBQK4k/1XMf03MtmNIuWO4irqAIFlH8Bdensn
krwYxHdHeDGGw+gAy1BJwCeRg7sDQ96HxuCIbO7MQhplWJup3OFwu0C5U+JmyF0gd/Anpb0TSV6g3NHd
Q/grqsA1JKk8FIA8OtPKLrc4Mrn7K1ME7lBqd1KGxhQld6gzSdyU8kSE60zzNZgQKncYwiTuXuBAfA42
fPi+r5a7KrZw4OVy9DU1WdztqDKAjI//YtL5ZF6l31zIbO8CuTPkLq/OhD+Lt3cUfsa70TcQfh02eNUC
jZVA7q7m0WGlsobjZVit0RZHFndyTCrd20f/cIPqgddiydSZObj7pvYOr8G7UVO2KYmcBby/IIRxhybi
aAtKvIulz9h72RQXZHBXl+eIPnbI7shP8JGXqTOLaO/QN3eFGJG7TP+uKpK8iHXmDG8SPXcRBlugUrDy
+xSCuBPWfXetUtmybdyR8NTSudthq5MQdb9VfMFDXlHcudu7DLkL8+9EkhexziTpxc8FxnB6g8rE5xHC
XVyQD3C8Zcv87B9eks4dVGKBaD7GkWh/mdJ3k7cUufvS9i62M4lDWXdlBfpCubuQPwqfbKOL7+avR3M/
lbt/8gyArWblzMi801tI5y6frZJs7wLtzE+1d7HOJO5kGmaiwGGa2dz9toRkIxGTO03nbktGMRForR4a
ptbUDtEQUrnLaasoubN1Zlp755W7UP8u1pmSO6qu6CR8KXfbfCkt0nCXltDPdlK5Y1y34XTHiKV7hpJl
6sxA7lR7Z8hduM40X4MJeXQm3o3XxqYavvDmS3UmNxJFKOugZ77+JI27c3kMmICpus7XmJn5PLyltHdK
7r4inhnrTFlPCK9wzKO6n0QWd1dgXBoDetvoFaxf4jcpAtO424s1JFx9BreKGcACY4qs7L4+4R8DRbZ3
9avGVQPM89xy9+n2Lpa7+CV4XH8A3Ov/jRYXwwzuqqgld4wGakQdQJu8CziFO+5UoMY8lseAaEyduNg5
kRC/ouQOdWYdixxht3dp3GX334kkL2I7ExvVpuTnA+/DWiSAR/XrxVd3TOcOHLMpNEiWH0qiVznWJkgK
d9pInY/RuReTtwHRfIo2p+icmO7iExmKlDuFUJ1ZmH9H3AFDLZaWQNOQjDxI5w61ZQf+xi+XmJBdv6Vm
lAVxF+HUPvagCKOa27L16+IDGYq0VRQWsFWScpdXZ7bhT2xb0rIRCSxseaZyJ0oQnO915V1LvKGLvUY2
E6iDbO7gogbc8VvoDvg3IqtnW2lU55s9QLkL1JmDbvdd/q/7rl4WyN2n2rvYzkTJj2P400cbpEBBH4hy
yYk07raEKh6D1ly7s54u3DLJTCZ3cDPOylzHD5d4WweFqdcrQdXMUJTcuYFlD47dQnKXx7/Du5E7EHgP
OTSErAovWwRp3MWOWR972/R4B4lnbPVOZ5gcoDM72NmHA5Ukpii4vCPetDVTucvhm7uB7R3Y6gHcma/B
hLw603BOkkC3AafmebhNRQp3RzIR7COk6XhkPX+EtsYxtrTZ3BF1h+KYgJYloxJgjBzMlLtAnelGoM5M
vAYSculMvFtGB7zcYHsonpobKdyxntYBFuwm6WWWiYgimeNM7qJ5G6nbZLGxFzjXKwLgM02RXz53ATrz
U+0d15kpchebU8r+zoEU7rC5i5manmPKX1H6mj4Mke1NMuXuAalb1y5+hBpzy4iNmdRl2yqfbu+k3LnC
HMjdp/27WGciNanc0esWMjbT2jsje20cyr7RsmQfyTueZXCHFmZlnTfI+B5jSrlF3ZLbOyz7y04HC80V
iy7Ev+N2pnJOnIiwZ93ywoKQxp3ud0MIy/IAHDLOH95xfJTG3YQ6+AzqPiCBR0kjm7ov0JkywOGTu0+3
d7HOzJY7DL3UC+du09TCPQo/xh2JAhExk8LdB4VMNjl10T7rSscWlHonDCxfZ0qk9QF9ur2L5S6DO9Td
hXNXObCCbR30wnbBK9OiN6NBD17udrCpU+ETAfTKcfBR/BDHgjyZclcUd7ntzLzxTGlnpmE53FX+WAu6
TFFE0ODUQNfdzx3hhJslUX/N5Oad6DWRKXef0pkf19cN+B/+x7s1YjDuzCqCCYXbmUvjrnJutG6ALjrV
Rm39gLJP427d1EtTSNxl8deZHYdGLFfuMlBYe4eZDGvvCrczCWe4YiSXvim2cGeYKBPmd6ncoXWjEM1n
4G2sy9Uq6BnJxg6w3PYuA4W0d7HOzLYzlyZ3etKcBpb2mTwmpNiZG9ZqmOTP84yi1CaRKXef0pkZQO6+
0L8j7ly6WwGK0CxFgWzuKltQB01gQIsNZQiJZxJAztDH592BFNdMIltnGp59sUDunvp9jHqacocJL/1+
D5VcEHfdXh+dxQCd2fRPYe/3hy7mgrgDIbNFD7vimGcUyp2g7oTnxDNg5dt1Jr4C/yS4Uz/JNB+IO4kM
nUlVAQEep+O/qk+hBnFX+XU5NqR2gvYFNa+UGsQdXDnF7tYTNYAFUqCpdOLbdaaE+RrJmoBM84HiKhKP
hsGQgOLOByhp1/1h3IFfYEbDsFtoXS1aHsId3D5GV5A6HmSC0z0g/BTukjpTQab5wOUuoL1LxafkDnFg
bOyAArMRd0SH6cwuOoJa6uD/fddyH4Rv15kxCuEuTWdCOSyfOzntKsYppOxNhSwHcXeLMsZnIswHZl85
R7atskTuVgU5uIMSHQqMhqPROyacj/BsdOzn7h9eAejTfMlTuBjuJoxIDj1I4S6KdSZVm/8ycnHnh5e7
BfGtOnNVsIrcTW9vb1tWlPy/CBd3u43c8ITj7uTPOSCim6ncSZQ6U/4VENydyrNvgVgyKYS7/zxc3J3I
s28B2q8ld0Eo5W518ePkruQuGCV3wTjYimFsy8Q6Mr/Yfiq5C0Q016GE159h5JbcBUNzx4eWchINEVw+
Su6CYcgdwx+pSbe2Cl2VNhsld8Fwyx2O+IhhrZW3bJTcBcMndzgdSqDkDlHKXQBK7oLhk7uSuxg/l7uW
jJY3GgPDnix1Zoyfy50PpdzFWD3uSrmLsSLcMaVZyl2MfNxBEVIwQ/+TAKXhP/JH8Sd1wCT8Jm6Q16p/
nAiSu9n73dXZ6eHh4Z+zy9aLmA1uPFJkKJoPn64v/sF1J2eXd+84MssfrFlh7qL59Kl+vP2rUvm1fVx7
EIPc3d8ZzV5u/v3egksrG1u//1530kZMxI/4uDrarKwfJKZjcOC1XO7g3C5rOJ/eHq/JSyT2G0PrMsJH
1Rz1uP7nyXFVjBXm7uWPWSBHzk3osTSfz+wxvGvHUCjm5TQrnkDDTl9jcYoHoc51sYJ/R/d6hpca82yi
+eQK60wC/xIzKnri201s+wfmrix3H1pVKWw7A4qvjj3fALumh21yN9MrISvukv6dTjFgcDd/9g0g/mUu
9BXdWrIZ449PSawkd1DpPbvoJ78zcq5pTMClEbXsce6mB/IQ4OAuZj2Eu1uZ6AIjL5o3ZWISvz1jUV3c
HY1yYjjyNAr0Uz6IjWYy5I7WAHRid8T4gINIjH9xwxjdxrgTc+glPiN3kbXUloVfY80JLi7qg2cQiou7
BfCl4zPjAUlO7JqS51vUmLCGk1hjaO6GxtLxn5K7obOpU9CTGmaeZwm427yV5C41m4bGf5aJAhvb2+bW
b3wCqOYO94HQ+FR7h6ssS6z9ffwYDvrtGrObNoTcwb/snTs3r4Ph8K3J9PY2XWYjmLuLtgE0jDcf5Mlv
P3cn8hKc3noqjxFP7vmuMdK4i3AxMo29o6N9o5XnlZSZKTt3pNgnDyxtXessxp25eEGK3P3eRmguoG4g
9LI/Y/kDQA9yGbJPlxPvxWxUgROlONjaJZZdJRDKnbkfRVSDpEPVyAXMA8KpJ5vcKhYrlPmQyh379rVr
eubsVu5LhGCV9E0mAQ5VkfDWTJUd586EWh8oKXcCKXEVNjWUjU9idU/VM60P2FQ5vb+jsVZ+jEDuzP0o
aL9XNgHtNJs7WmCAbVAC6LDytpHGHTPI9OKpcl8igtj1CqHXkPjF6g1b4Lijq2SCu/1qo9GonqoampQ7
gZS4ilj0CcHWOOdExXdM5DlApiAiJdK/ZYqBMO7M/ShwRcZ1c532PXlkgc+/w080VzMY60+z4ecuirS/
xNfBHemaoKuIFgljqmOy7AAmd2vVxKqIC8idbu+N6Y9JtgfyHMBXZlAVclMmGAjiztiPgqY8Gnu/huhM
KFwscy0ShI7Pb02RO6ZxjK3etThuyRRe3MaLtdL1cbdl0kPwyV0Kd5dn5+fiP6MEtRXi4G5XNbBZCOLO
WGC2CxV8k7UTgMA5y2BR2IuGTy/taJVACne6ndwx2mCmdpSWeHi4lzAc0Ey5+2UUtYRP7lJ0phs9bVrF
d8zkOeLXVeBCqCHcGbp6AKKyaX1aGHdkB6/Zs7163A9WSOFO60ZzzWJWmzOWX2YWhIc75wTvBeTOCVrj
XkLdwRwCwMFVJ2BuaAB3vFWZD1FhmlI3BVfWyx1faFjEh+pWuSYXzwT4uevLKwDBysXA5JJ5FG7u3O6U
T+7ycDd+vjZYUnckY3y7Z02znBMI4I4v5YaBvnWz2tH2rV7uKsecKiKPbWgiQEsSm/Bz9yiv4M1aKCbd
x8sjwxd0c+damNEvd36dqT89+ni6qZ7sJaIs6g53XOXXn1vDSjSRzR1fc48aG5ZDyBwttZ/CXaXByaNF
vxOLXD0nyPNzp32eHFPNJi+t2smuo2l1c+dq7RaXu+i5ZgYPGMQdWEJdd8NfWftDb+OFGCObO55RbClM
N/FOvDKFO7OW9kjZ2yvbJMjzc6cDlFm75cb4uHR3AiGc3K3LFAs+uUvnbtpIcWP5HR9OyUOcemyXTO54
KQ7AQDO9RHJ+/x2mcqeW0CFMyE7cMatuIoru505HCN2azYbqQ3XCyd2BTLHgk7tUnen1ggTEHUKoZg1f
4HrTKi2JLO5+s7B8BDVM2R7wvoiuX2+m2ZkYG0TPnsm82Marasb7tSokFMRdRMG7BJI2OkBz51HGi8id
GdYWWK8l/TuBactT0UwHO0YGd3uqqYTCb0GC0TONUrf5nh4TQ1L4lrEAEU/ZRkteU2r0uxQmd47OorXT
jlNSNHdmv7fCAu0di6cSto6rrZco7Y7R/blrHV9n+aZzt8fVHWpM7uqRcb+NDoRX7vYqF9RNemSSJzZb
ML2FmWE7h3DHXUcPTGlePzi7fkS721l2ObgLtjOZJ1fZa7zFqiZNUgHTzpVpDQOsgBQhlTu9hTwANabh
6qEY7pEKTfXNZ2gp2OQJ0du3q4aCnzsdXjZCBk6MmQn0q66l5bPchcoda8W3eOH72VaYPl8YrZ8rT2nc
1eICJ/lA34ypqQi7NXEzIEB6XIUWcj+COgeP0ZL2hFRtYM+ITBuHcac7tTbwlIluV0wWAIAap+GOrMfh
lFu2zvZmYbnzc6fDdxvGIoiOO9h3xIhajD1XsD+Fu78ykRBhEG4/fgM0VAOwOLal4ZIRE6P1+vZsQ3eI
wbC1jsq1MSbIzx3rwLEacP2AuI7r+q1yTtAsLMZdqJ2pWy6zbU68PxrEMFzxvnYvXKGeFO7WeF0ZQz64
tRNBjjdjDZrBnSBvs21VLrIBgTyBvuHi+bmb6+us/WC0FxePW9WSbA740PV5Me5C5U5n1Yhusah5fIe6
0mwIdOQ1J3fsOdEMh2/xCC2qIxUeyeJOrpR5blQqAKrhePVbMT4sRgp3utNvE5f/V9ACKb8ziuQ5wHAx
cTsiicW4C23vZDLAeD8byxDfoSTUDPTp/q683FUe0YiH4olojW7e6z2EKq31QCZ38xEJBW6sbcgexlM2
SHp1mJKQwh3uHSwhQjyUQU5+3M/KOsWMsmNfuRh3PjvT7n6QyQA94gFyqntk1fv1mEUjXqjdQ77vY4xU
7mJHHPej0JvM4/tPwAjVLGRzN5+KwTTHVquH5O1OI97rTUjhjhve+KEyGywQHyso1inGV7PhRlGxcidj
Tqpg9Ivi+B3+pF+k369H4KpNrgCRNqpcBZLKnRS1IdasbV7qoIfXWWsYwB34WuSy2K0e6g8oK3v0Qwp3
RqwiXit+xsZh6r1OdXuDdpd8b8S1cxFyp7mr/OtCBR+oktFdk2tKnMwur3vKFNRdeQ7Yg9tFVmV9J/DK
FyOdO/q2R6w+m4YrBlLCSjfaD+Fu3hVKvWq6evjKJ9YbKpDGHdc5lb3Wx2DwfMnFVksF69ZVvRldfnch
cqd1poS6X/uiQGt7NI8m7w39FITqidbuBFS0hz5c+sY/aldeZiCDu43+hFTxFrfHsROP7/gJWQzhbj67
JiVyANUgLkk4ggLesDRmGndw54evR4XAXBtedtv1x5eXp2smJIgi5I4XO0Hd35MJfiibIWMAtTVURCCD
u8oeRa/0HvII1E/6o6PUfbg4d2CyUNRy01AAzg2BUuXONmwMbDMnfCjT/GDDJhaWu4TS0PczpeeG7sdK
m4/gyVEWdwQeGxMTVvQeyfMZKiEvd1ugKeQJgQZrrLPq7n5pOnc8YGJB+ZyE1NkICNYZubDcTW2R0ffb
JpiE1uVsAH7Tr03+GkWoEMJd3WihsIJsE5niifTNXu6YeSoun1J58nEUVvcPIYU7esyD50MpNK7h3Fuv
sqYtctbds7DcMSNRgN3/5lCFaw3tYAp3TpSMGIHgQM1NXQh3fMIFUAcqjgdYRF+9n7vKH3iz8fJ7vONS
JTlnOWXIHTQlhskR4489umrkIG/njfZ2IDCXN5/cGV9kdRLy+/tG9wji4H0+0zWP17VJzVUjj62aohHA
3RpXETTghMXESWOmclc5t6vNO1awC/Cn8Yc3V3OXzd08utNlKbHv6Cgh15Tj1+V0Huky0p7O4nIHpcI7
e8z7owdefdb+kNXxd0fMOtneMccpjm+sKrl54XIOJEJ0phrTFwnq9BBLtUVyGnfmRjKIHhaDiH50maPM
kM0dvLx9xm7evPDUz48LrYvWDm9JMq/laOXzc92X3JZpZ+dGa6xRj8c4n5mKmfB2ebItasTWnjVudN5v
nR/tbe8dnTWe7ZJIYtq+Pj863N7eP/pbv3N2lysE2SobMXk0soiPJI9HN6VyV9m3PxYdRAolv7upC+IO
8fF4DUV6ddM2DGEbH/eNi/Na4051fn4atir5FgRxJ8mjqdvrsqZC7iOxDx4inbvKRosu1/hAzm6E9nQh
lLv/NMK4q2x05tEYB38YTnqkBiBkcFepHFmiR+6MEQ4xUHIXgEDuKut3r+ilGzuVM+M4kzuwjE1dz2Me
SZTcBSCUO8I6a4VBA75qEzGbO7DN32UqAWNhfpTcBSAPd4emQYCTuWKEcIcDw3SzN0mEcDlK7gKQh7sd
1XOP5d/n/lUYd5UD7Egiv+7d8IgSKLkLQC6duXYjhQbApS6YuzioHd04PXKNkrsA5OIOzMVYbVKnnkYo
d5UtfEDfHJziQMldAHJyV/l1MwOdN7WH+QdzV9kdz248DjlDyV0A8nJXqey9znuJAGs4d5V9/4wqjZK7
AOTnDhRnUm5ycBeEkrsALMKdAyV334CV5A6tXbJ4ZT/SFwBek/0mkafAiz+PlZW7qN9+aLUeHjPW4ygE
vWaz1XIu8JzA+O3xvnn30LY7gZeBFeUueruqEerOpVAKxju+ydFpl8DkDrfNh1zVUvukCsKKcvdERYSw
19pZBoi7ADZGl5QlRAjTn8VqckeFiajXzOXlloMwuYuiBuWJUIjc3T/cP7z6286CuCsaGbYKKcybt+Fk
8NH1f1thCOEOMvGKl10+9caj/ps95Wkh4PP8S+yvJnc9/ChjEb/lIrC9u4Gr6kU2dNh4Anf/V3JHrd1X
WHISYdzN8KoHeVIIMh64kty14Jv46NxlI4y7Pl6lusmKAD7w/01nXsM3fYWNEiOMu0DNmgOoM//f5A7t
uUKVUwZycFeoJscH/j9yl6JLCkc4d/Yid58Dvvb/iDuyuZjc0Xn8T0QTz+lY/AXQoRwnk4x+0rn6R/wq
7qBDCR93dJ262JA7+xEc+IP6kQ7o6mTe8YH/p3KnvtGAO1WBikmCDjxnHNlyhwWuuVNPcj3N+QYJ9Zs4
wAcCd747lsHd8empd9BsIDzcya/QOpN/rDoe9/p8LOis9/zQajZbzYfOR9qg9qjXuWu1mq2HlwGr+4h0
7uJLu3CRqTONh5jgP8GxOjXyjq/9YrkbpW62FAQPdxPioIlhw6smHrZo3scdHMkJPdMXdCBYQX/c4blE
tXarZuIL4K00j3/agRpRR8uuXqtePhkk+7gb32Ie7qbPkKdmC63f+g1mqtnC3OCjzVmWEk9wsZrD4sz7
EBKbLTq7osOmy6xeEneuHRTzwMcdfo2ACNjXaMI2yiEO3I1m7Tocwk/w/chQNGyKc41qS6xsJhGr3+4V
3qlR53OnPNz1KTTXGM0f8AY8Vq/C3GjtYAE5Ud0fzryTq6hA6eJqA8vk7qGdOok6DT7uGA11+iZalyr+
/iEeEKigo3nXJETgEmONMXt4B6iljviJocq2m3FxBw+nXoMmVIVHvB5P1OuQefnoJJzcGXkfyEMGcbWB
ZXDXHYodCIFDOl8AHu7G8kM0uNwNNFOioLEFAjRf+hPA8P1J9NHwmRF46+P8GZOvnj5GcFmvLbsGsUQF
nHL3Sm+7w2eh3JnA8Ip4tAPIneq6cubdlDuCvJxjGdzFKJ67OXIwmWDhPohDsg3E9w/F5zceX7vvUxSs
MSU0WXQ4eqEktvguFTAW1eWrkrPoBS+q6Wn2Lu7aJGjiSTPKCXUjDOhwgrfio0Plzsz7PBJPwaR7cejy
G1eMOwEqcHmMoO+P0Fao3TOmqK0XKwcpkDaqa0uEChjuvDE6baijoqZWvDK4gxQwQ4UFZJgidBUrYzuX
CknuknknYKLzCQIryR1+Ka/R9P0dqLoNLhxD/PSEfUbq8U1wAsBbQYyvDbtStn9qLaSE3E3RBKrV9WR1
hIu7QLlL5F0AH+h8gsD/jdxh84N2gwb1FCUKZIbaSff94a3SfOGIqGWMU225G5GYXFligldx/87OpUKC
u2TeBeCnz8jdbu35vdt9bZkzCA4bnW73/f3hLPbBN/b3cWLPye1b97Cys7+/vr6/jwsSw7/78pqT5jPc
83b3l43MhaeLNHtqSX7uoDgt4cECdrhFWHK6A0lwl3TD2pgcWyuW3AnfQOx4yeCSuzDuknkXwAcuLHc7
ulUf6vWVTrWumDZEqZ/iLORt8olOcAmPfTaAhdahOtfLAE7i1YY29ZepNIls7mydWa/WzcKkrlDHqh3k
jMljyZ1e7EWBWrz4bsUdxVuE49FixqqAi7swnZnIuwQ+cFG5O8GcRL33HuUzXgiKXKpp771L7xNLkZ4A
d3Kpv1MXd/QNk+77B32beBLN55rBc6jKmaty5Zc7YVowUHOn7XwFkih5LG91rcuC6fekIS25eyEv7iFJ
9+Jyl8i7BP6yoNydAGXDKqq4jQtou+QUcfzujlChBxiRontQ7jrAzt3ZySZxt3F6gnPTT+DPttgr9E5M
Uj5E4STX/RXFjRToIeosYxGb/HJXu7QEYfIMsBcYB5AzJo/lrbZ9h0C9GBcw4y4Sowtd6+rhVXZ7FyZ3
ibxL4E+LcYfLLKo1rnCVjghnum6ClOh5/tBw0GJ5IHegSO9FU4bc4V9lq+AC8ZoayA3u13EMD1RTgm6g
rHmbt4DcMactFTgiyOIuKUPiB5u7aD67I4XpXGzoE3LnyTv+tBh38EBaBkVgA5jAdR2qkEmRQoAqi/JE
69HFyz4kuAOzjq1vjUt0w3OBdpYIJaNXaFuIO5fwMAA/RNEHXmtyZ69DRMACjoMfSu6mTaIuVp8mXNwF
yp0n7/iTk30BP3e70DDz+fx/57TVOqg3vkAwfB6WOXI3iAUnwR1kjT8JHgG/w1VsD6ALczm8BXSmS3hi
xL9F484lxkN0ZBdvdQ6t5gUcczeiF/kGFOFVi/kIvrzjTwvJHdRGcwN/oOKAeODbgjUEA8id2lsiwR0o
RHEgAL9Dgwf/smUw957afC3G/HKXNm4MdN2o/9Z5aF3FsWz5g7g1UzgkdwMZ6NSOnwGX3IVx58s7PnAh
7qD9MlfgPjgBO8QGPDrmTlGa4M4CVFvgDuih3WacyC93qjBsDN4eNWcx5G+BBSy4Y50STZeguLjLrBap
eccHLqIzcTd03dr5cAyWi+ROb6Kbwd0/+HDgDncIHJLB6UB+uXPPKek/QIHrMgfckaEof84oYKO9u6fH
3Iq+CTQubP7wqiCdeQs/GNy587643B1KC9KHvZPzxjOwo7jTCtbL3f6f6s0zfR1yRjGPQfPItVxHfu4S
dRea695NVRNXrV3fdboTEaqU16QUcELuCMCZcBIc5spy5G4R7oANbk9ybF20+6zSSe50P6uLu93aMzem
SN6k5pm9N63V04vRmdFTrCnrzafXXtxGJbnLLGDFHfoGEcWhcQVV8aNCsNwtnbtzH3dbdyrT09cr8M4D
uGOxtcnzBdiZQlfu3cWfOr4xm9IM7kCYsrmTPaLXRqVxcZep2CR3l+JBIxJle3sceVWI3GGgdancnXq4
o90KJ89XF6dHuHimtjNTuDvBqNeofXlxcogUwe+qnftdb4vYh9iHIUYBOlMU+E1i6deFdaYKPovTxDK5
Lu6cjzay68y7BD5wEe6ADbaFvwJuETS+0Osth3CHO6QPmM3KuUNsnlE4L59vbsud3d6LOXqOsOOiOpNG
Nwjc43nNjrfhVdk6EzKEN6sODlfeY+CFi3C3B69xLBsOrsiYL+MWwh18QI+rRJs7AG4sy02jz8tdDxs7
rd41knamV+4MO5NZJzO8q3ZjBSFdcucqeRp0s1S5q4CeM0u4OhrdoNdnrEcFn5fJHTzJGK9J7d36vrHA
0Q6UMrNYPs8ddRc4QtFzGq0gj/0FnJQ7blmKcVwW5y7uXMuGk5exXO5Aj7F4I+AdNzmGuka8xIDELO5A
gtluZgD4Ptq5y/BBgFDWk5BfZ9rfj7aG8ymkS+WxuNUpdwlbxfAKcDRStWa2pXiVrTMdfb/ChlJqcinc
nYEdyaNf+9F8tomXc48du+myuINrMBCqgBuzgdyBoPGla6Gq4IMkPi93XOdpRPNhMp7p1Zl+7uZiwMqE
62Rb7vASa1tThBhOobK7FO5+QTbYHo+4FdQjhTOZJqUNSrK4Q5bY/g5bqMjgGSBobEuSdTDi2LiKz8sd
lr2rg0B4DvIk+SiFDO6mgoE07siiQQvbhAjMGLZK4dzRHlE6tg/lgLvrQB3tKhNmm7ql07gjGe3ynbN2
yUkC7nCvMy1p8C1jFmDJL3e2jGHZs52aYsgRx/Is+SgFLrcO7tgwwBh4FdeZNCIt0eUQUf+hqTOT+kEA
Lwzmzlw8HTiYvwkD4hC9GewowCjkuzAydq+n8wgyj/F/J3fUQAJw065HEXY+AMtvCt+DTRs+siW08i4W
H98k26FrGFzc2XWXzMkP7j/jYBNhIQru6Cc8X0TuxED2Wm2gX2DLHQ1uhjrJZTMSC3mw7LryHgMvDObO
3JtMbHQ57LRFZEIQSxLRa7dfUPWNT4GXWWewT2ONYsTcQXWKXtqv97QJTfTRbr+idzvYA3GYPA/lVjW9
TrtDY5d49x3fl84Bu8Bd308lSSMsWdnhuEpSdioVb3XKXbqtghAD/Wbq8bbciYYNvk1nAJrbOvAJyUE6
E3/DQpSnNkzu2O7RhLrOinKuq0qFR49blQ0yw/edcie3T4Mf1ChVKL2NyjalVyobzP0aqG0yCB++/BJC
YmI0DtNYhCWaD6C4L0nZERH4Di93mXInh8xrL8CWO+GmmEM/h2DlXuOFhs70cYe1w9zAzoDJHXauGtg4
e+5P55P+0z/dGG1WX0dRNHypkxrcuWl3GhvbFxfahDm+kNsn7b9M5sNnjJdsX7+N5rNBR/yw3+w8kZe4
e/M2nkej99tTszOBjTJzwS5w5/dT/KTWhEZXIBqRmdKf4r/XvbEw8PHWxXQmtCeYrMdYm9xB4pTIvdSe
BE2HqI/QWgmSO3JF773kWdy9ysL7ZiRihSbsAnd+f9y03XdH82j88YxkUBSSVBn5CVC+tggrZOtMaUmq
oZVwVZ3rzJjc6nWnN45AAGiCUb1HjwuSO3pvtd68v2vSfCcLFnempfldcNiHBvB7Qe6UXnV//1gNUaiq
bnOsFKTKAHSRfFQSttxVRSeCAVE94hELVNIGd+pVOgsohXihym4adyKOUKWZhjKFw+buJ5CX7iAA7ALH
c1WRNSbkQDNckezMhJWekzuX3EmP40lUImLY5G4u5owJIHstNA8S3DnyLjCUOgIgUzgM7igPz+k7hiwd
O9xncuPh9vYWXHsFPHcOcexy9q7inQOj93t1g/0ohTb8AEYXFUkPjm+tTYcFXvGXW2iz4bjfgkPbFx+L
PgeBZpcegRei/0Xw5p0w6ZA1C8TLBI6E3AFeri7UHoxf/N/FlbMgF8fk9en25vrm9uHFofO+BNOP9n2r
cX37SB5SfswmA5yQKc84XNyVWA2U3K0uSu5WFyV3q4uSu9VFyd3qouRudVFyt7oouVtdlNytLkruVhcl
d6uLkrvVRcnd6qLkbnVRcre6KLlbXZTcrS5K7lYXJXeri5K71UXJ3eqi5G51UXK3uii5W12U3K0uSu5W
FfP5/wDp16gC+xtujgAAAABJRU5ErkJggg==
</value>
</data>
</root>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{86E14AC3-CD3F-4E63-8154-26DFA2E6ABEB}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KundeXyz</RootNamespace>
<AssemblyName>8281327384_Reports</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Export\CustomDataExporter.cs" />
<Compile Include="Export\DiamantExporter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\Report\Report.csproj">
<Project>{40d8b312-ea64-49e3-a31a-5e57ed4d5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using BeWo.Service.Core;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using Utils = BS.Shared.Core.Utils;
namespace CaritasverbandDuerenJuelichEV.Export
{
public class SkmDataExporter : DataExporter
{
public override string CreateExportString(string pFileID, string[] pHeaderCaption, string[][] pContent)
{
if (pHeaderCaption != null && pHeaderCaption.Length > 0 && pHeaderCaption[0].Contains("Diamant"))
{
return DiamantExporter.CreateExportString(pHeaderCaption, pContent);
}
return base.CreateExportString(pFileID, pHeaderCaption, pContent);
}
public override QueryDC CreateQuery(QueryDC query)
{
var q = DiamantExporter.CreateQuery(query);
CreateBuchungsExportProtokollEintrag(q);
return q;
}
}
}

View File

@@ -0,0 +1,753 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
using BS.Shared.DataContracts;
namespace CaritasverbandDuerenJuelichEV.Export
{
public class DiamantExporter
{
public static QueryDC CreateQuery(QueryDC query)
{
DateTime dt = DateTime.Now;
DateTime.TryParse(query.Parameter[0].Value.ToString(), out dt);
if (query.Title == "Diamant Export Stammdaten")
{
query.FileName = String.Format("005S{0:yyMM}.er2", dt);
query.QueryResult = GetDebitorenString(dt);
}
else
{
long? customerOid = null;
if (query.Parameter.Count > 1)
{
if (query.Parameter[1].Value != null)
{
long oid = 0;
if (Int64.TryParse(query.Parameter[1].Value.ToString(), out oid))
{
customerOid = oid;
}
}
}
if (query.Title == "Diamant Korrektur")
{
query.FileName = String.Format("005F{0:yyMM}.er2", dt);
query.QueryResult = GetKorrekturString(dt, customerOid);
}
else
{
query.FileName = String.Format("005F{0:yyyyMM}.er2", dt);
query.QueryResult = GetAbrechnungenString(dt, customerOid);
}
}
return query;
}
public static string CreateExportString(string[] pHeaderCaption, string[][] pContent)
{
if (pHeaderCaption != null && pHeaderCaption.Length > 1 && pHeaderCaption[0].Contains("Diamant"))
{
DateTime dt = DateTime.Now;
DateTime.TryParse(pHeaderCaption[1], out dt);
return GetAbrechnungenString(dt, null);
}
return null;
}
private static string GetKorrekturString(DateTime dt, long? customerOid)
{
var exports = DAOFactory.GenericDAO.GetAllActive<BuchungsExport>();
foreach (var exp in exports)
{
if (exp.Name == "Diamant Export Buchungssätze")
{
if (exp.Parameter.Contains(String.Format("Monat={0:dd.MM.yyyy}", dt)))
{
return GetKorrekturString(exp, customerOid);
}
}
}
return "";
}
private static string GetKorrekturString(BuchungsExport exp, long? customerOid)
{
StringBuilder sb = new StringBuilder();
var lines = exp.Export.Split(new string[] {"F,0,005,,,AR,"}, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (!customerOid.HasValue)
{
sb.Append("F,0,005,,,AG,");
sb.Append(line);
}
else
{
var cust = DAOFactory.GenericDAO.LoadByID<Customer>(customerOid.Value);
String name = String.Format("{0}, {1}", cust.Person.LastName, cust.Person.FirstName);
String contains = String.Format("\"{0}\"", name);
if (line.Contains(contains))
{
sb.Append("F,0,005,,,AG,");
sb.Append(line);
}
}
}
return sb.ToString();
}
public static String GetDebitorenString(DateTime date)
{
var dt = ExecuteQuery(GetDebitorenSql(date), date);
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
for (int i = 0; i < row.ItemArray.Length; i++)
{
if (i > 0)
{
sb.Append(",");
}
var item = row[i];
bool quote = i == 4 || i == 5 || i == 6 || i > 24;
if (quote)
{
sb.Append('"');
sb.Append(item);
sb.Append('"');
}
else
{
sb.Append(item);
}
}
}
//Debitorenstamm
//S,0, D,200001,,"Bezeichnung1","Bezeichnung2",,,1200,,,,,,,,,,,,,,,,,"Name1","Name2", "Name3","Straße","PLZ","Ort"
return sb.ToString();
}
public static String GetAbrechnungenString(DateTime date, long? customerOid)
{
StringBuilder sb = new StringBuilder();
var s = GetMonatlicheAbrechnungLvrString(date, customerOid);
if (!String.IsNullOrWhiteSpace(s))
{
sb.Append(s);
}
if (sb.Length > 0)
sb.AppendLine();
//s = GetAbschlagszahlungenString(date);
//if (!String.IsNullOrWhiteSpace(s))
//{
// sb.Append(s);
//}
//if (sb.Length > 0)
// sb.AppendLine();
//s = GetSelbstzahlerString(date);
//if (!String.IsNullOrWhiteSpace(s))
//{
// sb.Append(s);
//}
return sb.ToString();
}
public static String GetMonatlicheAbrechnungLvrString(DateTime date, long? customerOid)
{
var dt = ExecuteQuery(GetMonatlicheAbrechnungLvrSql(date, customerOid), date);
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
for (int i = 0; i < row.ItemArray.Length - 1; i++)
{
if (i > 0)
{
sb.Append(",");
}
//if (i == 32)
//{
// sb.AppendLine();
//}
var item = row[i];
bool quote = i == 15 || i == 35;
if (quote)
{
sb.Append('"');
sb.Append(item);
sb.Append('"');
}
else
{
sb.Append(item);
}
}
ErstelleKostenstellenZeilen(row, sb);
}
//F,0,050,,BEWO,DA,01012016,012016,iBelegNr1,Belegnr1,220001,,,,999.99, "Name AZ Abrechnung 01/2016 LVR",,,EUR,,,,,,,,,,,R,,,
//G,0,1695,,,-999.99,"Name AZ Abrechnung 01/2016 LVR",
return sb.ToString();
}
private static void ErstelleKostenstellenZeilen(DataRow row, StringBuilder sb)
{
if (row.ItemArray.Length > 15)
{
var betragObj = row[14];
decimal gesamtbetrag = 0;
if (betragObj != null)
{
Decimal.TryParse(betragObj.ToString().Replace(".", ","), out gesamtbetrag);
}
var kstItem = row[row.ItemArray.Length - 1];
String kst = "";
if (kstItem != null)
kst = kstItem.ToString();
sb.AppendLine();
sb.Append(String.Format("K,0,{0},,v,,,,", kst));
sb.Append(String.Format("{0:0.00}", gesamtbetrag).Replace(",", "."));
sb.Append(",,4419,,,,,,");
}
}
public static String GetAbschlagszahlungenString(DateTime date)
{
var dt = ExecuteQuery(GetAbschlagszahlungenSql(date), date);
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
for (int i = 0; i < row.ItemArray.Length; i++)
{
if (i > 0)
{
sb.Append(",");
}
//if (i == 32)
//{
// sb.AppendLine();
//}
var item = row[i];
bool quote = i == 15 || i == 38;
if (quote)
{
sb.Append('"');
sb.Append(item);
sb.Append('"');
}
else
{
sb.Append(item);
}
}
}
//F,0,050,,BEWO,DA,02012016,012016,iBelegNr2,Belegnr2,220001,,,,-888.88, "Name AZ Abschlagszahlung LVR 01/2016",,,EUR,,,,,,,,,,,R,,,
//G,0,4473,,,888.88,"Name AZ Abschlagszahlung LVR 05/2016",
return sb.ToString();
}
public static String GetSelbstzahlerString(DateTime date)
{
var dt = ExecuteQuery(GetSelbstzahlerSql(date), date);
StringBuilder sb = new StringBuilder();
foreach (DataRow row in dt.Rows)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
for (int i = 0; i < row.ItemArray.Length; i++)
{
if (i > 0)
{
sb.Append(",");
}
//if (i == 32)
//{
// sb.AppendLine();
//}
var item = row[i];
bool quote = i == 15 || i == 38;
if (quote)
{
sb.Append('"');
sb.Append(item);
sb.Append('"');
}
else
{
sb.Append(item);
}
}
}
return sb.ToString();
}
private static String GetDebitorenSql(DateTime date)
{
String sql = @"
SELECT
distinct
'S',
'0',
'D',
c.DebitorNumber,
CONCAT(p.`LastName`, ' ', p.`FirstName`),
CONCAT(p.`LastName`, ' ', p.`FirstName`),
cb2sc.CustomerRefenrenceNumber,
null,
null,
null,
null,
null,
null,
null,
'D',
'30 Tage netto',
null,
null,
null,
null,
null,
null,
null,
null,
null,
p.`FirstName`,
p.`LastName`,
'',
'',
a.Street,
a.PostalCode,
a.Town
FROM `customer` c
INNER JOIN `person` p ON p.`Oid` = c.`PersonOid`
INNER JOIN supportconcept sc on sc.CustomerOID = c.Oid
INNER JOIN costbearer2supportconcept cb2sc on cb2sc.SupportConceptOID = sc.Oid
LEFT JOIN Address a on p.addressOid = a.oid
WHERE c.isactive=1
order by p.`LastName`, p.FirstName
";
return sql;
}
private static String GetMonatlicheAbrechnungLvrSql(DateTime date, long? customerOid)
{
//REPLACE(Round(IF(crpRateFactor.`CostRateValue` is null, ROUND((sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 )),
//ROUND(ROUND((sr.`GeleisteteFLM` / 60), 2) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND(crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999, 365), crp.`EndDate`) LIMIT 1 ) *((100 + crpRateFactor.`CostRateValue`)/ 100), 2)) -IF(etbl.eigenanteil is null, 0, etbl.eigenanteil), 2), ',', '.') AS 'Betrag',
String sql = @"
(SELECT
'F',
'0',
'005',
null,
null,
'AR',
':Abrechnungsmonat',
':Periode',
null,
null,
c.DebitorNumber,
'4419',
null,
'0%',
REPLACE(
Round(
Round(
IF (crpRateFactor.`CostRateValue` is null, ROUND((sr.`GeleisteteFLM` / 60), 2) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF (crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1),
ROUND(ROUND((sr.`GeleisteteFLM` / 60), 2) * ((100 + crpRateFactor.`CostRateValue`)/100), 2)
* (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 ))
, 2)
- IF(etbl.eigenanteil is null, 0, etbl.eigenanteil)
, 2)
, ',', '.') AS 'Betrag',
CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung',
null,
null,
'EUR',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
'R',
null,
null,
null,
null,
null,
CONCAT(p.`LastName`, ', ', p.`FirstName`) as 'Verwendung2',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
c.CostCenter
FROM `supportconcept` sc
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
LEFT JOIN
(SELECT crp.`ObjectOid`, crp.`CostRateValue` FROM `costrateperiod` crp
WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 2 AND (crp.`EndDate` is null or crp.`EndDate` > NOW()))
AS crpRateFactor ON crpRateFactor.`ObjectOid` = cb.`Oid`
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
LEFT JOIN
(SELECT sr2.`CostBearer2SupportConceptOid`, SUM(sr2.`roundedduration` / IF(sr2.`GroupEmployeeCount` is null, 1, sr2.`GroupEmployeeCount`)) AS GeleisteteFLM FROM `servicerecord` sr2
INNER JOIN `servicedescription` sd ON sr2.`ServiceDescriptionOid` = sd.`Oid`
INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid`
WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 GROUP BY sr2.`CostBearer2SupportConceptOid`)
AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid`
LEFT JOIN
(select ib.supportconceptoid, sum(ii.Amounttotal) as eigenanteil
from invoicebase ib
inner join invoiceitem ii on ii.invoicebaseoid = ib.oid
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodStart` < ':Monat_End'
and ib.type = 0 and ib.isactive = 1 GROUP BY ib.supportconceptoid) as etbl on etbl.supportconceptoid = sc.oid
WHERE c.`IsActive` <> 0 AND sc.`IsActive` <> 0
and (sr.`GeleisteteFLM` is not null)#ReplaceCustomerOid#)
UNION
(SELECT
'F',
'0',
'005',
null,
null,
'AR',
':Abrechnungsmonat',
':Periode',
null,
null,
(select SUBSTRING(vv.`SerializedValue`, 50, LENGTH(vv.`SerializedValue`) - 58) from `varfieldvalue` vv where vv.`VarFieldDefOid` = 1 and vv.`ObjectOid` = c.`Oid` and vv.`ObjectTid` = 8),
'4419',
null,
'0%',
REPLACE(Round(IF(etbl.eigenanteil is null, 0, etbl.eigenanteil), 2), ',', '.') AS 'Betrag',
CONCAT(p.`LastName`, ', ', p.`FirstName`, ', Eigenanteil') as 'Verwendung',
null,
null,
'EUR',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
'R',
null,
null,
null,
null,
null,
CONCAT(p.`LastName`, ', ', p.`FirstName`, ', Eigenanteil') as 'Verwendung2',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
c.CostCenter
FROM `supportconcept` sc
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
LEFT JOIN
(SELECT crp.`ObjectOid`, crp.`CostRateValue` FROM `costrateperiod` crp
WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 2 AND (crp.`EndDate` is null or crp.`EndDate` > NOW()))
AS crpRateFactor ON crpRateFactor.`ObjectOid` = cb.`Oid`
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
LEFT JOIN
(SELECT sr2.`CostBearer2SupportConceptOid`, SUM(sr2.`roundedduration` / IF(sr2.`GroupEmployeeCount` is null, 1, sr2.`GroupEmployeeCount`)) AS GeleisteteFLM FROM `servicerecord` sr2
INNER JOIN `servicedescription` sd ON sr2.`ServiceDescriptionOid` = sd.`Oid`
INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid`
WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 GROUP BY sr2.`CostBearer2SupportConceptOid`)
AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid`
INNER JOIN
(select ib.supportconceptoid, sum(ii.Amounttotal) as eigenanteil
from invoicebase ib
inner join invoiceitem ii on ii.invoicebaseoid = ib.oid
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodStart` < ':Monat_End'
and ib.type = 0 and ib.isactive = 1 GROUP BY ib.supportconceptoid) as etbl on etbl.supportconceptoid = sc.oid
WHERE c.`IsActive` <> 0 AND sc.`IsActive` <> 0
and (sr.`GeleisteteFLM` is not null)#ReplaceCustomerOid#) ORDER BY Verwendung";
if (customerOid.HasValue)
{
sql = sql.Replace("#ReplaceCustomerOid#", String.Format(" and c.Oid = {0}", customerOid));
}
else
{
sql = sql.Replace("#ReplaceCustomerOid#", "");
}
//ORDER BY p.`LastName`, p.`FirstName`, cb2sc.`ApprovedStartDate`
return sql;
}
private static String GetAbschlagszahlungenSql(DateTime date)
{
String sql = @"
SELECT
'F',
'0',
'005',
null,
'BEWO',
'DA',
':Abrechnungsmonat',
':Periode',
null,
null,
c.DebitorNumber,
null,
null,
null,
REPLACE(-1 * ROUND(at.`GesamtBetrag`, 2), ',', '.') as 'Abschlagszahlungen',
CONCAT(p.`LastName`, ', ', p.`FirstName`, ' ', IF(cb2sc.CustomerRefenrenceNumber is null, '', cb2sc.CustomerRefenrenceNumber), ' Abschlagszahlung :PeriodeSlash ', org.Name) as 'Verwendung',
null,
null,
'EUR',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
'R',
null,
null,
'G',
'0',
'xxxx',
null,
null,
REPLACE(ROUND(at.`GesamtBetrag`, 2), ',', '.') as 'Abschlagszahlungen2',
CONCAT(p.`LastName`, ', ', p.`FirstName`, ' ', IF(cb2sc.CustomerRefenrenceNumber is null, '', cb2sc.CustomerRefenrenceNumber), ' Abschlagszahlung :PeriodeSlash ', org.Name) as 'Verwendung2',
null
FROM `supportconcept` sc
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
LEFT JOIN
(SELECT crp.`ObjectOid`, crp.`CostRateValue` FROM `costrateperiod` crp
WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 2 AND (crp.`EndDate` is null or crp.`EndDate` > NOW()))
AS crpRateFactor ON crpRateFactor.`ObjectOid` = cb.`Oid`
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
LEFT JOIN
(SELECT at2.`CostBearer2SupportConceptOid`, SUM(at2.`Amount`) AS GesamtBetrag FROM `accountingtransaction` at2
WHERE at2.`BookingDate` >= ':Monat_Start' AND at2.`BookingDate` < ':Monat_End' GROUP BY at2.`CostBearer2SupportConceptOid`)
AS at ON at.`CostBearer2SupportConceptOid` = cb2sc.`Oid`
WHERE c.`IsActive` = 1 AND sc.`IsActive` = 1
and (at.`GesamtBetrag` is not null)
ORDER BY p.`LastName`, p.`FirstName`, cb2sc.`ApprovedStartDate`
";
return sql;
}
private static String GetSelbstzahlerSql(DateTime date)
{
String sql = @"
SELECT
'F',
'0',
'005',
null,
'BEWO',
'DA',
':Abrechnungsmonat',
':Periode',
GetNextBelegnr(0),
GetNextBelegnr(1),
c.DebitorNumber,
null,
null,
null,
IF(crpRateFactor.`CostRateValue` is null, ROUND((sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 )),
ROUND(ROUND((sr.`GeleisteteFLM` / 60), 2) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 ) * ((100 + crpRateFactor.`CostRateValue`)/100), 2)) AS 'Betrag',
CONCAT(p.`LastName`, ', ', p.`FirstName`, ' ', IF(cb2sc.CustomerRefenrenceNumber is null, '', cb2sc.CustomerRefenrenceNumber), ' Abrechnung :PeriodeSlash ', org.Name) as 'Verwendung',
null,
null,
'EUR',
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
'R',
null,
null,
'G',
'0',
'xxxx',
null,
null,
-1 * IF(crpRateFactor.`CostRateValue` is null, ROUND((sr.`GeleisteteFLM` / 60) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 )),
ROUND(ROUND((sr.`GeleisteteFLM` / 60), 2) * (SELECT crp.`CostRateValue` FROM `costrateperiod` crp WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 0 AND crp.`ObjectOid` = cb2sc.`CostBearerOid` AND (crp.`EndDate` is null or crp.`EndDate` > ':Monat_Start') order by IF(crp.`EndDate` is null, MAKEDATE(9999,365),crp.`EndDate`) LIMIT 1 ) * ((100 + crpRateFactor.`CostRateValue`)/100), 2)) AS 'Betrag2',
CONCAT(p.`LastName`, ', ', p.`FirstName`, ' ', IF(cb2sc.CustomerRefenrenceNumber is null, '', cb2sc.CustomerRefenrenceNumber), ' Abrechnung :PeriodeSlash ', org.Name) as 'Verwendung2',
null
FROM `supportconcept` sc
INNER JOIN `costbearer2supportconcept` cb2sc ON sc.`Oid` = cb2sc.`SupportConceptOid`
INNER JOIN `costbearer` cb ON cb2sc.`CostBearerOid` = cb.`Oid`
LEFT JOIN
(SELECT crp.`ObjectOid`, crp.`CostRateValue` FROM `costrateperiod` crp
WHERE crp.`ObjectTid` = 22 AND crp.`CostRateType` = 2 AND (crp.`EndDate` is null or crp.`EndDate` > NOW()))
AS crpRateFactor ON crpRateFactor.`ObjectOid` = cb.`Oid`
INNER JOIN `organisation` org ON org.`CostBearerOid` = cb.`Oid`
INNER JOIN `customer` c ON sc.`CustomerOid` = c.`Oid`
INNER JOIN `person` p on c.`PersonOid` = p.`Oid`
LEFT JOIN
(SELECT sr2.`CostBearer2SupportConceptOid`, SUM(sr2.`roundedduration` / IF(sr2.`GroupEmployeeCount` is null, 1, sr2.`GroupEmployeeCount`)) AS GeleisteteFLM FROM `servicerecord` sr2
INNER JOIN `servicedescription` sd ON sr2.`ServiceDescriptionOid` = sd.`Oid`
INNER JOIN `servicecategory` sc ON sd.`ServiceCategoryOid` = sc.`Oid`
WHERE sr2.`StartDate` >= ':Monat_Start' AND sr2.`StartDate` < ':Monat_End' AND sc.`Billable` = 1 GROUP BY sr2.`CostBearer2SupportConceptOid`)
AS sr ON sr.`CostBearer2SupportConceptOid` = cb2sc.`Oid`
WHERE c.`IsActive` = 1 AND sc.`IsActive` = 1
and (sr.`GeleisteteFLM` is not null)
ORDER BY p.`LastName`, p.`FirstName`, cb2sc.`ApprovedStartDate`
";
return sql;
}
public static DataTable ExecuteQuery(String sql, DateTime dt)
{
var newsql = sql;
newsql = newsql.Replace(":PeriodeSlash", String.Format("{0:MM/yyyy}", dt));
newsql = newsql.Replace(":Periode", String.Format("{0:MMyyyy}", dt));
newsql = newsql.Replace(":Abrechnungsmonat", String.Format("{0:ddMMyyyy}", dt));
newsql = newsql.Replace(":Monat_Start", String.Format("{0:yyyy-MM}-01", dt));
dt = dt.AddMonths(1);
newsql = newsql.Replace(":Monat_End", String.Format("{0:yyyy-MM}-01", dt));
return DAOFactory.AdoDAO.ExecuteQuery(newsql).Tables[0];
}
//Buchung Abrechnung Stundenzettel
//F,0,050,, BEWO, DA,01012016,012016, iBelegNr1, Belegnr1,220001,,,,999.99, "Name AZ Abrechnung 01/2016 LVR",,, EUR,,,,,,,,,,, R,,,
//G,0,1695,,,-999.99,"Name AZ Abrechnung 01/2016 LVR",
//Buchung Abschlagszahlung
//F,0,050,, BEWO, DA,02012016,012016, iBelegNr2, Belegnr2,220001,,,,-888.88, "Name AZ Abschlagszahlung LVR 01/2016",,, EUR,,,,,,,,,,, R,,,
//G,0,4473,,,888.88,"Name AZ Abschlagszahlung LVR 05/2016",
//Buchung Abrechnung LVR / Selbstzahler
//F,0,050,, BEWO, DA,01022016,022016, iBelegNr3, Belegnr3,220001,,,,900.00, "Name AZ Abrechnung LVR + SZ 02/2016",,, EUR,,,,,,,,,,, R,,,
//G,0,1695,,,-800.00,"Name AZ Abrechnung 05/2016 LVR",
//G,0,1695,,,-100.00,"Name AZ Abrechnung 05/2016 SZ",
//schwarz = konstant
//rot = variabel
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("KundeXyz")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KundeXyz")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FE240F9F-CC85-4F7D-9080-BEEBE76B0735}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>KundeXyz</RootNamespace>
<AssemblyName>6023735102_Reports</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Quittierungsbeleg.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Quittierungsbeleg.Designer.cs">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\Report\Report.csproj">
<Project>{40d8b312-ea64-49e3-a31a-5e57ed4d5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Quittierungsbeleg.resx">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("KundeXyz")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KundeXyz")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1 @@
DevExpress.XtraReports.UI.XtraReport, DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,145 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
namespace KoelnerBeWoSelbstbestimmtLeben
{
public partial class Quittierungsbeleg : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<ServicesOverviewRO>
{
public Quittierungsbeleg()
{
InitializeComponent();
}
public void SetReportDataSource(ServicesOverviewRO pRO)
{
StackTrace stackTrace = new StackTrace();
// Get calling method name
Debug.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);
bool hatGruppen = false;
//if (pRO == null)
// return;
if (pRO.Services != null)
{
List<ServicesOverviewRO.ServiceDetail> servicesBillable = new List<ServicesOverviewRO.ServiceDetail>();
foreach (var sd in pRO.Services)
{
if (sd.IsBillable)
{
ServicesOverviewRO.CreateSignatureString(sd);
if (sd.IsGroup)
{
//sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
hatGruppen = true;
}
servicesBillable.Add(sd);
}
}
pRO.Services = servicesBillable;
}
if (String.IsNullOrWhiteSpace(pRO.AbsenceTimes))
{
lblHatAbwesenheiten.Text = "X";
}
if (!hatGruppen)
{
lblHatGruppen.Text = "X";
}
ErstelleAbwesenheitenTabelle(pRO);
//double flsInStunden =
//xrTableCell_FLSHours.Text =
bindingSource1.DataSource = pRO;
}
private void ErstelleAbwesenheitenTabelle(ServicesOverviewRO pRo)
{
if (pRo.Abwesenheiten != null)
{
int newRows = 0;
int index = 1;
foreach (var at in pRo.Abwesenheiten)
{
DevExpress.XtraReports.UI.XRTableRow row = null;
if (index < xrTableAbwesenheiten.Rows.Count)
{
row = xrTableAbwesenheiten.Rows[index];
}
else
{
row = xrTableAbwesenheiten.InsertRowBelow(xrTableAbwesenheiten.Rows[xrTableAbwesenheiten.Rows.Count - 1]);
newRows++;
}
row.Cells[0].Text = String.Format("{0:dd.MM.yyyy}", at.Start);
int? days = null;
if (at.End.HasValue)
{
row.Cells[1].Text = String.Format("{0:dd.MM.yyyy}", at.End);
days = (int)at.End.Value.Subtract(at.Start.Value).TotalDays + 1;
}
else
{
row.Cells[1].Text = "unbekannt";
}
row.Cells[2].Text = String.Format("{0:0}", days);
index++;
}
if (newRows > 0)
{
lblUnterschriftKlient.Top += newRows * 20;
lblUnterschriftMitarbeiter.Top += newRows * 20;
}
}
}
private void picSignature_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
XRPictureBox xrBox = sender as XRPictureBox;
//var test = this.GetCurrent
string base64String = xrBox.Tag as string;
if (!String.IsNullOrWhiteSpace(base64String))
{
var base64Data = Regex.Match(base64String, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
var binData = Convert.FromBase64String(base64Data);
Image img = ByteArrayToImage(binData);
xrBox.Image = Utils.CropImage(img);
}
else
{
xrBox.Image = null;
}
}
public Image ByteArrayToImage(byte[] byteArrayIn)
{
Image returnImage = null;
MemoryStream ms = new System.IO.MemoryStream(byteArrayIn);
returnImage = Image.FromStream(ms);
return returnImage;
}
}
}

View File

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<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>21, 17</value>
</metadata>
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAGwAYQBuAGcAMQAwADMAMQBcAGwAYQBuAGcAZgBlADEAMAAzADEAXAB1AGwAXABmADIAXABmAHMAMgAwAFwAYwBmADEAIABLAHIAYQBuAGsAZQBuAGgAYQB1AHMAYQB1AGYAZQBuAHQAaABhAGwAdABlAH0AXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxAFwAcABhAHIAXABwAGEAcgBkAFwAcABsAGEAaQBuAFwAcQBsAHsAXABsAGEAbgBnADEAMAAzADEAXABsAGEAbgBnAGYAZQAxADAAMwAxAFwAdQBsAFwAZgAyAFwAZgBzADIAMABcAGMAZgAxACAAYgBlAGsAYQBuAG4AdAAgAG8AZABlAHIAIAB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQBcAHAAYQByAFwAcABhAHIAZABcAHAAbABhAGkAbgBcAHEAbAB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAGEAYgByAGUAYwBoAG4AdQBuAGcAcwByAGUAbABlAHYAYQBuAHQAfQB7AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAbABhAG4AZwAxADAAMwAxAFwAbABhAG4AZwBmAGUAMQAwADMAMQBcAGYAMQBcAGYAcwAyADQAXABjAGYAMQBcAHAAYQByAH0A</value>
</data>
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMAAgAEMAYQBsAGkAYgByAGkAOwB9AHsAXABmADEAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AewBcAGYAMgAgAEEAcgBpAGEAbAA7AH0AfQB7AFwAYwBvAGwAbwByAHQAYgBsACAAOwBcAHIAZQBkADAAXABnAHIAZQBlAG4AMABcAGIAbAB1AGUAMAAgADsAXAByAGUAZAAwAFwAZwByAGUAZQBuADAAXABiAGwAdQBlADIANQA1ACAAOwB9AHsAXAAqAFwAZABlAGYAYwBoAHAAIABcAGYAMQBcAGYAcwAyADQAfQB7AFwAcwB0AHkAbABlAHMAaABlAGUAdAAgAHsAXABxAGwAXABmADEAXABmAHMAMgA0ACAATgBvAHIAbQBhAGwAOwB9AHsAXAAqAFwAYwBzADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABEAGUAZgBhAHUAbAB0ACAAUABhAHIAYQBnAHIAYQBwAGgAIABGAG8AbgB0ADsAfQB7AFwAKgBcAGMAcwAyAFwAcwBiAGEAcwBlAGQAbwBuADEAXABmADEAXABmAHMAMgA0AFwAYwBmADEAIABMAGkAbgBlACAATgB1AG0AYgBlAHIAOwB9AHsAXAAqAFwAYwBzADMAXAB1AGwAXABmADEAXABmAHMAMgA0AFwAYwBmADIAIABIAHkAcABlAHIAbABpAG4AawA7AH0AewBcACoAXAB0AHMANABcAHQAcwByAG8AdwBkAFwAZgAxAFwAZgBzADIANABcAHEAbABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgBsADMAXAB0AHMAYwBlAGwAbABwAGEAZABkAGwAMQAwADgAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAYgAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwBjAGUAbABsAHAAYQBkAGQAZgB0ADMAXAB0AHMAdgBlAHIAdABhAGwAdABcAGMAbAB0AHgAbAByAHQAYgAgAE4AbwByAG0AYQBsACAAVABhAGIAbABlADsAfQB7AFwAKgBcAHQAcwA1AFwAdABzAHIAbwB3AGQAXABzAGIAYQBzAGUAZABvAG4ANABcAGYAMQBcAGYAcwAyADQAXABxAGwAXAB0AHIAYgByAGQAcgB0AFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGwAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAYgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHIAYgByAGQAcgByAFwAYgByAGQAcgBzAFwAYgByAGQAcgB3ADEAMABcAHQAcgBiAHIAZAByAGgAXABiAHIAZAByAHMAXABiAHIAZAByAHcAMQAwAFwAdAByAGIAcgBkAHIAdgBcAGIAcgBkAHIAcwBcAGIAcgBkAHIAdwAxADAAXAB0AHMAYwBlAGwAbABwAGEAZABkAGYAbAAzAFwAdABzAGMAZQBsAGwAcABhAGQAZABsADEAMAA4AFwAdABzAGMAZQBsAGwAcABhAGQAZABmAHIAMwBcAHQAcwBjAGUAbABsAHAAYQBkAGQAcgAxADAAOABcAHQAcwB2AGUAcgB0AGEAbAB0AFwAYwBsAHQAeABsAHIAdABiACAAVABhAGIAbABlACAAUwBpAG0AcABsAGUAIAAxADsAfQB9AHsAXAAqAFwAbABpAHMAdABvAHYAZQByAHIAaQBkAGUAdABhAGIAbABlAH0AXABuAG8AdQBpAGMAbwBtAHAAYQB0AFwAcwBwAGwAeQB0AHcAbgBpAG4AZQBcAGgAdABtAGEAdQB0AHMAcABcAHAAYQByAGQAXABwAGwAYQBpAG4AXABxAGwAewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEsAZQBpAG4AZQAgAH0AewBcAHUAbABcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgAEcAcgB1AHAAcABlAG4AYQBuAGcAZQBiAG8AdABlAH0AewBcAGYAMgBcAGYAcwAyADAAXABjAGYAMQAgACAAaQBtACAAQQBiAHIAZQBjAGgAbgB1AG4AZwBzAHoAZQBpAHQAcgBhAHUAbQB9AFwAZgAxAFwAZgBzADIANABcAGMAZgAxAFwAcABhAHIAfQA=</value>
</data>
</root>

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using BeWo.Service.Core;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using Utils = BS.Shared.Core.Utils;
namespace LebenUndWohnenChristianWilke.Export
{
public class CustomDataExporter : DataExporter
{
public override QueryDC CreateQuery(QueryDC query)
{
return DatevExporter.CreateQuery(query);
}
}
}

View File

@@ -0,0 +1,153 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace LebenUndWohnenChristianWilke.Export
{
public class DatevExporter
{
public static QueryDC CreateQuery(QueryDC query)
{
DateTime dt = DateTime.Now;
DateTime.TryParse(query.Parameter[0].Value.ToString(), out dt);
query.FileName = String.Format("DatevExport {0:MMMM} {0:yyyy}.csv", dt);
query.QueryResult = GetAbrechnungenString(dt);
return query;
}
public static String GetAbrechnungenString(DateTime date)
{
//Bereiche:
//queryDc.Parameter[1].CustomValues.Add("Ambulant betreutes Wohnen");
//queryDc.Parameter[1].CustomValues.Add("Begleitende Elternschaft");
//queryDc.Parameter[1].CustomValues.Add("Einzelfallhilfe");
//queryDc.Parameter[1].CustomValues.Add("Familien entlastender Dienst");
//queryDc.Parameter[1].CustomValues.Add("Tagesstruktur");
//queryDc.Parameter[1].CustomValues.Add("Wohnstätte");
StringBuilder sb = new StringBuilder();
sb.AppendLine("Debitor;Rechnungsnummer;Belegdatum;Umsatz;Konto;Kostenstelle;Buchungstext");
//sb.AppendLine("Betrag;Gegenkonto;Rechnungsnummer;Belegfeld 2;Belegdatum;Konto;Kostenstelle;Buchungstext");
var s = GetRechnungenString(date);
if (!String.IsNullOrWhiteSpace(s))
{
sb.AppendLine(s);
}
return sb.ToString();
}
private static String GetRechnungenString(DateTime date)
{
StringBuilder sb = new StringBuilder();
var sql = GetRechnungenSql(date);
var dt = ExecuteQuery(sql, date);
foreach (DataRow row in dt.Rows)
{
if (sb.Length > 0)
{
sb.AppendLine();
}
String debitor = "";
var row1 = row[1].ToString();
long? oid = ToNullableLong(row1);
if (oid.HasValue)
{
var org = DAOFactory.GenericDAO.LoadByID<Organisation>(oid.Value);
debitor = org.DebitorNumber;
}
sb.Append(debitor); // Gegenkonto
sb.Append(";");
sb.Append(String.Format("{0}", row[3])); // Rechnungsnummer
sb.Append(";");
DateTime lastDate = new DateTime(date.Year, date.Month, 1);
lastDate = lastDate.AddMonths(1).AddDays(-1);
sb.Append(String.Format("{0:dd.MM.yyyy}", lastDate));
sb.Append(";"); // Datum (Monatsletzter des Auswertedatums) (Belegdatum)
sb.Append(String.Format("{0:0.00}", row[0])); // Betrag (Umsatz)
sb.Append(";");
sb.Append(""); // Konto
sb.Append(";");
sb.Append(row[4].ToString()); //Kostenstelle
sb.Append(";");
sb.Append(row[7].ToString()); //Verwendungszweck
sb.Append(";");
}
return sb.ToString();
}
private static long? ToNullableLong(string s)
{
long l;
if (long.TryParse(s, out l))
return l;
return null;
}
private static String GetRechnungenSql(DateTime date)
{
String sql = @"
select
sip.Claim,
c.DebitorNumber,
ib.InvoiceDate,
ib.invoicenumber,
c.CostCenter,
c2s.Oid,
ib.InvoiceId,
p.LastName
from
person p
inner join customer c on c.personoid = p.oid
inner join supportconcept sc on sc.customeroid = c.oid
inner join costbearer2supportconcept c2s on c2s.supportconceptoid = sc.oid
inner join invoicebase ib on ib.costbearer2supportconceptoid = c2s.oid
inner join serviceinvoice si on si.invoicebaseoid = ib.oid
inner join serviceinvoiceperiod sip on sip.serviceinvoiceoid = si.oid
WHERE ib.`AccountingPeriodEnd` >= ':Monat_Start' AND ib.`AccountingPeriodEnd` <= ':Monat_End' and ib.IsActive = 1
order by ib.invoicenumber
";
return sql;
}
public static DataTable ExecuteQuery(String sql, DateTime dt)
{
var newsql = sql;
newsql = newsql.Replace(":Abrechnungsmonat", String.Format("{0:dd.MM.yyyy}", dt));
newsql = newsql.Replace(":Belegnr", String.Format("{0:yyMM}", dt));
newsql = newsql.Replace(":Monat_MM", String.Format("{0:MM}", dt));
newsql = newsql.Replace(":Monat_Start", String.Format("{0:yyyy-MM}-01", dt));
dt = dt.AddMonths(1);
newsql = newsql.Replace(":Monat_End", String.Format("{0:yyyy-MM}-01", dt));
return DAOFactory.AdoDAO.ExecuteQuery(newsql).Tables[0];
}
}
}

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{48324B9E-4EC0-47B9-BBA7-6FD61384D25A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>LebenUndWohnenChristianWilke</RootNamespace>
<AssemblyName>6919016656_Reports</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Export\CustomDataExporter.cs" />
<Compile Include="Export\DatevExporter.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
<Project>{B0D73E3D-4AE7-4024-93A6-DB1F46D7CCEE}</Project>
<Name>Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\Report\Report.csproj">
<Project>{40d8b312-ea64-49e3-a31a-5e57ed4d5654}</Project>
<Name>Report</Name>
</ProjectReference>
<ProjectReference Include="..\..\Service\Service.csproj">
<Project>{094331c3-ecee-4c89-bbfd-4c9ded89f0ef}</Project>
<Name>Service</Name>
</ProjectReference>
<ProjectReference Include="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
// die einer Assembly zugeordnet sind.
[assembly: AssemblyTitle("KundeXyz")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KundeXyz")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("c1fed668-adb9-47e0-b589-1389618e1b6e")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
// Hauptversion
// Nebenversion
// Buildnummer
// Revision
//
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// indem Sie "*" wie unten gezeigt eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -204,6 +204,7 @@ namespace LebenshilfeFrankfurtOder.Export
public static String GetMonatlicheRechnungenString(DateTime date, String rechnungId, String buchungstext, String konto, DateTime? minInsts)
{
StringBuilder sb = new StringBuilder();
var sql = GetMonatlicheRechnungenSql(date, rechnungId, minInsts);

View File

@@ -0,0 +1,49 @@
using BeWo.Data.Entities;
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.DCEntityMapper
{
public class DienstvertretungDC_Dienstvertretung : AbstractIDCEntityMapper<Dienstvertretung, DienstvertretungDC>
{
public override DienstvertretungDC MergeWithDC(Dienstvertretung bEntity, DienstvertretungDC bDataContract)
{
bDataContract.Oid = bEntity.Oid;
bDataContract.Notice = bEntity.Notice;
bDataContract.Version = bEntity.Version;
bDataContract.Datum = bEntity.Datum;
bDataContract.DienstOid = bEntity.DienstOid;
bDataContract.EmployeeOid = bEntity.EmployeeOid;
bDataContract.WohnheimOid = bEntity.WohnheimOid;
bDataContract.Zeile = bEntity.Zeile;
return bDataContract;
}
public override Dienstvertretung MergeWithEntity(DienstvertretungDC bDataContract, Dienstvertretung bEntity)
{
this.ConcurrencyCheck(bDataContract.Version, bEntity);
bEntity.Oid = bDataContract.Oid;
bEntity.Notice = bDataContract.Notice;
bEntity.Datum = bDataContract.Datum;
bEntity.DienstOid = bDataContract.DienstOid;
bEntity.EmployeeOid = bDataContract.EmployeeOid;
bEntity.WohnheimOid = bDataContract.WohnheimOid;
bEntity.Zeile = bDataContract.Zeile;
return bEntity;
}
protected override bool AreDCAndEntityEqual(DienstvertretungDC bDC, Dienstvertretung bEntity)
{
return bDC.Oid != null && bDC.Oid == bEntity.Oid;
}
}
}

View File

@@ -264,6 +264,8 @@ namespace BeWo.Service.DCEntityMapper
private static DienstEintragDC_DienstEintrag _DienstEintragDC_DienstEintrag;
private static DienstvertretungDC_Dienstvertretung _DienstvertretungDC_Dienstvertretung;
private static RatingDC_Rating _RatingDC_Rating;
private static RatingTypeDC_RatingType _RatingTypeDC_RatingType;
@@ -690,6 +692,9 @@ namespace BeWo.Service.DCEntityMapper
public static DienstEintragDC_DienstEintrag DienstEintragDC_DienstEintrag =>
_DienstEintragDC_DienstEintrag ?? (_DienstEintragDC_DienstEintrag = new DienstEintragDC_DienstEintrag());
public static DienstvertretungDC_Dienstvertretung DienstvertretungDC_Dienstvertretung =>
_DienstvertretungDC_Dienstvertretung ?? (_DienstvertretungDC_Dienstvertretung = new DienstvertretungDC_Dienstvertretung());
public static QuittierungsbelegsstatusDC_Quittierungsbelegsstatus QuittierungsbelegsstatusDC_Quittierungsbelegsstatus =>
_QuittierungsbelegsstatusDC_Quittierungsbelegsstatus ?? (_QuittierungsbelegsstatusDC_Quittierungsbelegsstatus = new QuittierungsbelegsstatusDC_Quittierungsbelegsstatus());

View File

@@ -94,7 +94,7 @@ namespace BeWo.Service.Dienstplanung
for (int i = 0; i < zeile.DienstDictArray.Length; i++)
{
var empDienste = dienstEintraegeDC
.Where(x => x.EmployeeOid == emp.EmployeeOid && x.Zeile == i); //i + 1 wegen der Statuszeile, die jetzt die vorherige erste Zeile mach unten geschoben hat
.Where(x => x.EmployeeOid == emp.EmployeeOid && x.Zeile == i);
zeile.DienstDictArray[i] = empDienste
.ToDictionary(x => x.Datum.Day, x => x.DienstOid);
@@ -106,10 +106,89 @@ namespace BeWo.Service.Dienstplanung
return res;
}
public static List<DienstBlockDC> GetDienstvertretungen(long wOid, int year, int month)
{
var res = new List<DienstBlockDC>();
var date = new DateTime(year, month, 1);
var date2 = date.AddMonths(1).AddTicks(-1);
var dienstvertretung = DAOFactory.GenericDAO.GetAllActive<Dienstvertretung>().Where(x =>
x.WohnheimOid == wOid &&
x.Datum.Month == month &&
x.Datum.Year == year);
var dienstvertretungenDC = MapperFactory.DienstvertretungDC_Dienstvertretung.MapToNewDCs(dienstvertretung);
var wh = DAOFactory.GenericDAO.GetByID<Wohnheim>(wOid);
var whDC = MapperFactory.CompactWohnheimDC_Wohnheim.MapToNewDC(wh);
List<long> empOids = new List<long>();
foreach (var vertretung in dienstvertretungenDC)
{
if (vertretung.WohnheimOid == wOid)
{
if (empOids.Count == 0)
empOids.Add(vertretung.EmployeeOid);
else
{
if (!empOids.Contains(vertretung.EmployeeOid))
empOids.Add(vertretung.EmployeeOid);
}
}
}
List<EmployeeDC> empsDC = new List<EmployeeDC>();
foreach (var oid in empOids)
{
empsDC.Add(MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.GetByID<Employee>(oid)));
}
//var emps = wh.Employee2WohnheimList.Select(x => x.Employee);
//var empsDC = MapperFactory.EmployeeDC_Employee.MapToNewDCs(emps).Distinct();
foreach (var emp in empsDC)
{
var contracts = emp.Contracts.Where(x => (!x.EntryDate.HasValue || x.EntryDate.Value <= date2) &&
(!x.ContractEndDate.HasValue || x.ContractEndDate.Value >= date))
.OrderBy(x => x.EntryDate)
.ToList();
if (!contracts.Any())
continue;
var zeile = new DienstBlockDC
{
Employee = emp,
Contracts = contracts,
Wohnheim = whDC,
DienstDictArray = new Dictionary<int, long>[3]
};
for (int i = 0; i < zeile.DienstDictArray.Length; i++)
{
var empDienste = dienstvertretungenDC
.Where(x => x.EmployeeOid == emp.EmployeeOid && x.Zeile == i);
zeile.DienstDictArray[i] = empDienste
.ToDictionary(x => x.Datum.Day, x => x.DienstOid);
}
res.Add(zeile);
}
return res;
}
public static void InsertNewDienstEintrag(DienstEintragDC dienstEintrag)
{
DAOFactory.GenericDAO.Insert(MapperFactory.DienstEintragDC_DienstEintrag.MapToNewEntity(dienstEintrag));
}
public static void InsertNewDienstvertretung(DienstvertretungDC dienstvertretung)
{
DAOFactory.GenericDAO.Insert(MapperFactory.DienstvertretungDC_Dienstvertretung.MapToNewEntity(dienstvertretung));
}
public static void DeleteDienstEintrag(long empId, long wohnId, int zeile, DateTime date)
{
var toDel = DAOFactory.GenericDAO.GetAll<DienstEintrag>()
@@ -122,6 +201,18 @@ namespace BeWo.Service.Dienstplanung
if (toDel != null)
DAOFactory.GenericDAO.Delete(toDel);
}
public static void DeleteDienstvertretung(long empId, long wohnId, int zeile, DateTime date)
{
var toDel = DAOFactory.GenericDAO.GetAll<Dienstvertretung>()
.FirstOrDefault(x =>
x.EmployeeOid == empId &&
x.WohnheimOid == wohnId &&
x.Zeile == zeile &&
x.Datum == date);
if (toDel != null)
DAOFactory.GenericDAO.Delete(toDel);
}
public static void DeleteCertainDienstEintragOutOfTable(long dienstEintragOid)
{
var toDelete = DAOFactory.GenericDAO.GetAll<DienstEintrag>();
@@ -141,6 +232,47 @@ namespace BeWo.Service.Dienstplanung
}
}
public static string GetBemerkungForDienstEintrag(long empId, long wohnId, int zeile, DateTime date)
{
var res = DAOFactory.GenericDAO.GetAll<DienstEintrag>()
.FirstOrDefault(x =>
x.EmployeeOid == empId &&
x.WohnheimOid == wohnId &&
x.Zeile == zeile &&
x.Datum == date);
if (res != null)
return res.Notice;
else
return "";
}
public static DienstEintragDC GetDienstEintrag(long empId, long wohnId, int zeile, DateTime date)
{
var eintrag = DAOFactory.GenericDAO.GetAll<DienstEintrag>()
.FirstOrDefault(x =>
x.EmployeeOid == empId &&
x.WohnheimOid == wohnId &&
x.Zeile == zeile &&
x.Datum == date);
return (eintrag != null) ? MapperFactory.DienstEintragDC_DienstEintrag.MapToNewDC(eintrag) : null;
}
public static DienstvertretungDC GetDienstvertretung(long empId, long wohnId, int zeile, DateTime date)
{
var eintrag = DAOFactory.GenericDAO.GetAll<Dienstvertretung>()
.FirstOrDefault(x =>
x.EmployeeOid == empId &&
x.WohnheimOid == wohnId &&
x.Zeile == zeile &&
x.Datum == date);
return (eintrag != null) ? MapperFactory.DienstvertretungDC_Dienstvertretung.MapToNewDC(eintrag) : null;
}
public static void UpdateDienstEintrag(DienstEintragDC dienstEintrag)
{
var entity = MapperFactory.DienstEintragDC_DienstEintrag.MapToNewEntity(dienstEintrag);
DAOFactory.GenericDAO.Update(entity);
}
public static string GetColorForStatus(bool status)
{
return (status) ? "#FF228B22" : "#FFCD5C5C";

View File

@@ -53,10 +53,10 @@ namespace BeWo.Service.Plugins
//t = "1441747891"; // BeWo Mobil Köln
//t = "5120047701"; // Trialog
//t = "3629696651"; // Soziale Dienste Niederrhein
//t = "9893557471"; // Caritas Frankfurt
//t = "2918696314"; // Caritas Frankfurt 2
//t = "6923790936"; // Integra e.V.
//t = "2392153512"; // Christopherus Haus
//t = "2918696314"; // Caritas Frankfurt 2
//t = "9495336024"; // VKM Aachen
//t = "5237724939"; // Indro ABW
//t = "7635986435"; // Köln Ring
@@ -262,6 +262,9 @@ namespace BeWo.Service.Plugins
//t = "2535794597"; // Mobilo Ambulant
//t = "7114701269"; // Die Brücke Hilfe und Halt
//t = "6447060239"; // Empathie Fachassistenz
//t = "6919016656"; // Leben und Wohnen Christian Wilke
//t = "8281327384"; // Caritasverband Düren-Jülich e.V. (Eingliederungshilfe)
//t = "6023735102"; // Kölner BeWo (Selbstbestimmt Leben)
return t;
#else

View File

@@ -167,6 +167,7 @@
<Compile Include="Core\SettingsLogic.cs" />
<Compile Include="Core\Utils.cs" />
<Compile Include="DCEntityMapper\ConfirmationReceiptSignatureDC_ConfirmationReceiptSignature.cs" />
<Compile Include="DCEntityMapper\DienstvertretungDC_Dienstvertretung.cs" />
<Compile Include="DCEntityMapper\DokumentvorlageDC_Dokumentvorlage.cs" />
<Compile Include="DCEntityMapper\QuittierungsbelegsstatusDC_Quittierungsbelegsstatus.cs" />
<Compile Include="DCEntityMapper\RatingTypeDC_RatingType.cs" />
@@ -415,6 +416,7 @@
<Compile Include="UnitOfWork\HibernateSessionBehaviorExtension.cs" />
<Compile Include="UnitOfWork\HibernateSessionContextInitializer.cs" />
<Compile Include="Vorlagen\VorlagenManager.cs" />
<Compile Include="XAMLInformation\InfoViaXAMLManager.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Data\Data.csproj">

View File

@@ -873,6 +873,18 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
List<DienstInfoDC> GetAllDienste();
[FaultContract(typeof(BeWoFault))]
[OperationContract]
string GetBemerkungForDienstEintrag(long empId, long wohnId, int zeile, DateTime date);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
DienstEintragDC GetDienstEintrag(long empId, long wohnId, int zeile, DateTime date);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
DienstvertretungDC GetDienstvertretung(long empId, long wohnId, int zeile, DateTime date);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void InsertNewDienst(List<DienstInfoDC> dienst);
@@ -937,10 +949,18 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
List<DienstBlockDC> GetDienstEintraege(long wOid, int year, int month);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<DienstBlockDC> GetDienstvertretungen(long wOid, int year, int month);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void InsertNewDienstEintrag(DienstEintragDC dienstEintrag);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void InsertNewDienstvertretung(DienstvertretungDC dienstvertretung);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void UpdateDienstEintrag(DienstEintragDC dienstEintrag);
@@ -949,6 +969,10 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
void DeleteDienstEintrag(long empId, long wohnId, int Zeile, DateTime date);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void DeleteDienstvertretung(long empId, long wohnId, int zeile, DateTime date);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void DeleteCertainDienstEintragOutOfTable(long dienstEintragOid);
@@ -1065,6 +1089,14 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
Dictionary<string, string> GetAdditionalEmployeeInformationForScheduler(long empOid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
string GetXAMLInformationStringForEmployee(long empOid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
string GetXAMLInformationStringForCustomer(long customerOid);
}
}

View File

@@ -6056,6 +6056,17 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
public List<DienstBlockDC> GetDienstvertretungen(long wOid, int year, int month)
{
try
{
return DienstplanungsManager.GetDienstvertretungen(wOid, year, month);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public void InsertNewDienstEintrag(DienstEintragDC dienstEintrag)
@@ -6070,11 +6081,23 @@ namespace BeWo.Service.ServiceImplementations
}
}
public void InsertNewDienstvertretung(DienstvertretungDC dienstvertretung)
{
try
{
DienstplanungsManager.InsertNewDienstvertretung(dienstvertretung);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public void UpdateDienstEintrag(DienstEintragDC dienstEintrag)
{
try
{
throw new NotImplementedException();
DienstplanungsManager.UpdateDienstEintrag(dienstEintrag);
}
catch (Exception e)
{
@@ -6093,6 +6116,17 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
public void DeleteDienstvertretung(long empId, long wohnId, int zeile, DateTime date)
{
try
{
DienstplanungsManager.DeleteDienstvertretung(empId, wohnId, zeile, date);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public void DeleteCertainDienstEintragOutOfTable(long dienstEintragOid)
{
try
@@ -6104,7 +6138,39 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(ex);
}
}
public string GetBemerkungForDienstEintrag(long empId, long wohnId, int zeile, DateTime date)
{
try
{
return DienstplanungsManager.GetBemerkungForDienstEintrag(empId, wohnId, zeile, date);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public DienstEintragDC GetDienstEintrag(long empId, long wohnId, int zeile, DateTime date)
{
try
{
return DienstplanungsManager.GetDienstEintrag(empId, wohnId, zeile, date);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public DienstvertretungDC GetDienstvertretung(long empId, long wohnId, int zeile, DateTime date)
{
try
{
return DienstplanungsManager.GetDienstvertretung(empId, wohnId, zeile, date);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public virtual List<FeiertagDC> ErstelleDefaultFeiertage(int year)
{
try
@@ -6614,7 +6680,29 @@ namespace BeWo.Service.ServiceImplementations
return dict;
}
public string GetXAMLInformationStringForEmployee(long empOid)
{
try
{
return XAMLInformation.InfoViaXAMLManager.GetXAMLInformationStringForEmployee(empOid, null);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public string GetXAMLInformationStringForCustomer(long customerOid)
{
try
{
return XAMLInformation.InfoViaXAMLManager.GetXAMLInformationStringForCustomer(customerOid, null);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
}
}

View File

@@ -0,0 +1,227 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.XAMLInformation
{
internal class InfoViaXAMLManager
{
public static string GetXAMLInformationStringForEmployee(long empOid, DateTime? datum)
{
var employee = DAOFactory.GenericDAO.GetByID<Employee>(empOid);
string xamlstring = "";
#region Variablen setzen
//Geburtstag
var birthdayTimeAndDate = employee.Person.DateOfBirth.ToString().Split(' ');
//Qualifiziert
string qualifiziert = "nicht angegeben";
if (employee.IsQualified != null)
qualifiziert = ((bool)employee.IsQualified) ? "Ja" : "Nein";
//Wöchentl. FLS
string FLSWoche = "kein Vetrag angegeben";
if(employee.LastContract!= null)
{
double d = (employee.LastContract.WeeklyFLS != null) ? Convert.ToDouble(employee.LastContract.WeeklyFLS.Value) : 0;
FLSWoche = Math.Round(d, 2).ToString();
}
//Wöchentl. Stunden
string stundenWoche = "kein Vetrag angegeben";
if (employee.LastContract != null)
{
double d = (employee.LastContract.WeeklyTotalHours != null) ? Convert.ToDouble(employee.LastContract.WeeklyTotalHours.Value) : 0;
stundenWoche = Math.Round(d, 2).ToString();
}
//Monatl. FLS
string FLSMonat = "kein Vetrag angegeben";
if (employee.LastContract != null)
{
double d = (employee.LastContract.MonthlyFLS != null) ? Convert.ToDouble(employee.LastContract.MonthlyFLS.Value) : 0;
FLSMonat = Math.Round(d, 2).ToString();
}
//Monatl. Stunden
string stundenMonat = "kein Vetrag angegeben";
if (employee.LastContract != null)
{
double d = (employee.LastContract.MonthlyTotalHours != null) ? Convert.ToDouble(employee.LastContract.MonthlyTotalHours.Value) : 0;
stundenMonat = Math.Round(d, 2).ToString();
}
//Vetragsart
string vertragsart = "kein Vetrag angegeben";
if (employee.LastContract != null)
{
if (employee.LastContract.EmploymentType != null)
{
vertragsart = employee.LastContract.EmploymentType.Name;
}
else
vertragsart = "keine Vertragsart angegeben";
}
#endregion
xamlstring =
"<ScrollViewer xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' VerticalScrollBarVisibility='Auto' HorizontalScrollBarVisibility='auto'>" +
"<Grid xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>" +
"<Grid.RowDefinitions>" +
"<RowDefinition Height=\"auto\"/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"</Grid.RowDefinitions>" +
"<Grid.ColumnDefinitions>" +
"<ColumnDefinition Width='auto'/>" +
"<ColumnDefinition Width='*'/>" +
"</Grid.ColumnDefinitions>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='0' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Vollständiger Name</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='0' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + employee.Person.FirstNameLastName + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='1' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Geburtstag</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='1' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + birthdayTimeAndDate[0] + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='2' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Qualifiziert</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='2' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + qualifiziert + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='3' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Mitarbeiternummer</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='3' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + employee.PersonnelNumber + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='4' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Vertragsart</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='4' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + vertragsart + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='5' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>FLS pro Woche</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='5' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + FLSWoche + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='6' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Stunden pro Woche</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='6' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + stundenWoche + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='7' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>FLS pro Monat</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='7' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + FLSMonat + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='8' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Stunden pro Monat</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='8' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + stundenMonat + "</Label>" +
"</Grid>" +
"</ScrollViewer>";
return xamlstring;
}
public static string GetXAMLInformationStringForCustomer(long customerOid, DateTime? datum)
{
var customer = DAOFactory.GenericDAO.GetByID<Customer>(customerOid);
string xamlstring = "";
#region Variablen setzen
string ort = "";
if (customer.Person.Address != null)
{
if (customer.Person.Address.PostalCode != null)
ort += customer.Person.Address.PostalCode;
if (customer.Person.Address.Town != null)
ort += ort.Equals("") ? customer.Person.Address.Town : " " + customer.Person.Address.Town;
}
else
ort += "keine Angabe";
#endregion
xamlstring =
"<ScrollViewer xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' VerticalScrollBarVisibility='Auto' HorizontalScrollBarVisibility='auto'>" +
"<Grid xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>" +
"<Grid.RowDefinitions>" +
"<RowDefinition Height=\"auto\"/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"<RowDefinition Height='auto'/>" +
"</Grid.RowDefinitions>" +
"<Grid.ColumnDefinitions>" +
"<ColumnDefinition Width='auto'/>" +
"<ColumnDefinition Width='*'/>" +
"</Grid.ColumnDefinitions>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='0' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Ansprechpartner</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='0' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ((customer.Ansprechpartner != null) ? customer.Ansprechpartner.FirstNameLastName : "keine Angabe") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='1' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Ausweis Aktenzeichen</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='1' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ((customer.AusweisAktenzeichen != null) ? customer.AusweisAktenzeichen : "keine Angabe") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='2' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Grad der Behinderung</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='2' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ((customer.GradDerBehinderung != null) ? customer.GradDerBehinderung : "keine Angabe") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='3' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Hygienebelehrung</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='3' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ((customer.Hygienebelehrung) ? "Ja" : "Nein") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='4' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Ort</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='4' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ort + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='5' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Medikation</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='5' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ((customer.Medication != null) ? customer.Medication : "keine Angabe") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='6' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Schutzstufe</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='6' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + ((customer.Schutzstufe != null) ? customer.Schutzstufe : "keine") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='7' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Vertretung dringend erforderlich</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='7' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + (customer.VertretungDringendErforderlich ? "Ja" : "Nein") + "</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='8' Grid.Column='0' Background='Transparent' " +
"Margin='5' FontSize='14'>Vertretung gewünscht</Label>" +
"<Label xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' Grid.Row='8' Grid.Column='1' Background='Transparent' " +
"Margin='5' FontSize='14'>" + (customer.VertretungGewuenscht ? "Ja" : "Nein") + "</Label>" +
"</Grid>" +
"</ScrollViewer>";
return xamlstring;
}
}
}

View File

@@ -155,7 +155,8 @@ namespace BS.Shared
ConfirmationReceiptSignature = 148,
Quittierungsbelegsstatus = 149,
Dokumentvorlage = 150,
Vorlagentabelle = 151
Vorlagentabelle = 151,
Dienstvertretung = 152
}
public enum SystemEntryID

View File

@@ -41,7 +41,13 @@ namespace BS.Shared.DataContracts
public override string ToString()
{
return string.IsNullOrEmpty(Kurz) ? "-" : Kurz;
string vonStunden = Start.TimeOfDay.Hours < 10 ? "0" + Start.TimeOfDay.Hours : Start.TimeOfDay.Hours.ToString();
string vonMinuten = Start.TimeOfDay.Minutes < 10 ? "0" + Start.TimeOfDay.Minutes : Start.TimeOfDay.Minutes.ToString();
string bisStunden = Ende.TimeOfDay.Hours < 10 ? "0" + Ende.TimeOfDay.Hours : Ende.TimeOfDay.Hours.ToString();
string bisMinuten = Ende.TimeOfDay.Minutes < 10 ? "0" + Ende.TimeOfDay.Minutes : Ende.TimeOfDay.Minutes.ToString();
string vonbis = vonStunden + ":" + vonMinuten + " Uhr - " + bisStunden + ":" + bisMinuten + " Uhr";
return string.IsNullOrEmpty(Kurz) ? "" : vonbis + " (" + DienstName + ")";
//return $"ID:{Oid}|N:{DienstName}|K:{Kurz}";
}
@@ -70,15 +76,16 @@ namespace BS.Shared.DataContracts
{
get
{
var startHour = Start.Hour < 10 ? "0" + Start.Hour.ToString() : Start.Hour.ToString();
var startMinute = Start.Minute < 10 ? "0" + Start.Minute.ToString() : Start.Minute.ToString();
var endeHour = Ende.Hour < 10 ? "0" + Ende.Hour.ToString() : Ende.Hour.ToString();
var endeMinute = Ende.Minute < 10 ? "0" + Ende.Minute.ToString() : Ende.Minute.ToString();
return ToString();
//var startHour = Start.Hour < 10 ? "0" + Start.Hour.ToString() : Start.Hour.ToString();
//var startMinute = Start.Minute < 10 ? "0" + Start.Minute.ToString() : Start.Minute.ToString();
//var endeHour = Ende.Hour < 10 ? "0" + Ende.Hour.ToString() : Ende.Hour.ToString();
//var endeMinute = Ende.Minute < 10 ? "0" + Ende.Minute.ToString() : Ende.Minute.ToString();
if (DienstName == null)
return "";
else
return DienstName + " | " + startHour + ":" + startMinute + " - " + endeHour + ":" + endeMinute;
//if (DienstName == null)
// return "";
//else
// return DienstName + " | " + startHour + ":" + startMinute + " - " + endeHour + ":" + endeMinute;
}
}
}

View File

@@ -33,9 +33,21 @@ namespace BS.Shared.DataContracts
Zeile = zeile;
Date = date;
DienstDict = dienste ?? new Dictionary<int, DienstInfoDC>();
}
} //Tag
public List<DienstInfoDC> GetDienstWoche(int sonntag) => DienstDict.Where(x => x.Key <= sonntag && sonntag - x.Key < 7).Select(x => x.Value).ToList();
//public List<DienstInfoDC> GetDienstMonat(int letzterMonatstag) => DienstDict.Where(x => x.Key <= letzterMonatstag && letzterMonatstag - x.Key < 7).Select(x => x.Value).ToList();
public List<DienstInfoDC> GetDienstMonat()
{
var result = new List<DienstInfoDC>();
foreach (var dienst in DienstDict)
{
result.Add(dienst.Value);
}
return result;
}
public void AddDienst(int tag, DienstInfoDC dienst)
{

View File

@@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts
{
public class DienstvertretungDC
{
[DataMember]
public long? Oid { get; set; }
[DataMember]
public string Notice { get; set; }
[DataMember]
public long? Version { get; set; }
[DataMember]
public long EmployeeOid { get; set; }
[DataMember]
public long WohnheimOid { get; set; }
[DataMember]
public long DienstOid { get; set; }
[DataMember]
public int Zeile { get; set; }
[DataMember]
public DateTime Datum { get; set; }
public override string ToString()
{
return $"ID:{Oid}|E:{EmployeeOid}|W:{WohnheimOid}|D:{DienstOid}";
}
public override bool Equals(object obj)
{
return obj is DienstEintragDC d && DienstOid == d.Oid;
}
public override int GetHashCode()
{
return GetType().Name.GetHashCode() ^ DienstOid.GetHashCode();
}
}
}

View File

@@ -138,6 +138,12 @@ namespace BS.Shared.DataContracts
return new SolidColorBrush((Color) ColorConverter.ConvertFromString(EmployeeColor));
}
public override string ToString()
{
return LastName + ", " + FirstName;
}
public virtual string LastNameFirstName
{
get => LastName + ", " + FirstName;

View File

@@ -159,6 +159,7 @@
<Compile Include="DataContracts\DienstEintragDC.cs" />
<Compile Include="DataContracts\DienstInfoDC.cs" />
<Compile Include="DataContracts\ClientPartials\VertretungsItemDC.cs" />
<Compile Include="DataContracts\DienstvertretungDC.cs" />
<Compile Include="DataContracts\DienstZeileDC.cs" />
<Compile Include="DataContracts\DocumentTreeItemDC.cs" />
<Compile Include="DataContracts\DokumentvorlageDC.cs" />