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

# Conflicts:
#	BeWo/BeWoApp.xaml
#	BeWo/Scheduler/View/SchedulerAppointmentEditForm.xaml
This commit is contained in:
Lyndon
2017-10-11 14:59:17 +02:00
87 changed files with 11855 additions and 4995 deletions

View File

@@ -1975,7 +1975,7 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Chat\ChatController\ChatController.csproj">
<ProjectReference Include="..\..\..\Chat\ChatController\ChatController.csproj">
<Project>{8a83c4dc-a0b1-4a51-ae1d-366d7a05b298}</Project>
<Name>ChatController</Name>
</ProjectReference>

View File

@@ -313,7 +313,6 @@
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithoutMaximizeBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
@@ -375,7 +374,6 @@
<Setter Property="FontSize" Value="11" />
</Style>
<!--#################### Neuer Style #############################################-->
<Style x:Key="MainContentGroupBoxWithMinimizeBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
@@ -437,7 +435,79 @@
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<Style x:Key="MainContentGroupBoxWithMinMaxCloseBtnStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupBox}">
<Grid SnapsToDevicePixels="True" x:Name="frameGrid" Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="15" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="20" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Background="#FF202020" Grid.RowSpan="3" CornerRadius="3,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Border Background="#FF202020" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" CornerRadius="0,1,0,3" MouseLeftButtonDown="FrameLeftMouseDown" />
<Path StrokeThickness="0" Fill="#FF202020" Data="M 0,0 L 20,20 H 0 Z" Grid.Column="1" />
<Border Margin="0,0,0,0" x:Name="Header" Grid.Column="0" Grid.Row="0" Background="{x:Null}" Padding="10,0,3,0" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalAlignment="Center">
<ContentPresenter TextElement.FontSize="22" Margin="5,-3,0,0" RenderTransformOrigin="0,0.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Header}" ContentSource="Header" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentTemplate="{TemplateBinding HeaderTemplate}" RecognizesAccessKey="True" VerticalAlignment="Stretch">
<ContentPresenter.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</ContentPresenter.RenderTransform>
</ContentPresenter>
</Border>
<Border Grid.Column="0" Grid.Row="2" Padding="5,5,5,5" Grid.ColumnSpan="2" Grid.RowSpan="1">
<ContentPresenter Margin="0,0,0,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" ContentTemplate="{TemplateBinding ContentTemplate}" />
</Border>
<Path x:Name="isDirtyShape" Grid.Column="0" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Right" StrokeThickness="0" Data="M8.0969173,7.7938912 L7.3260856,1.6313261E-55 10.960733,0.056791361 9.8816968,7.8372078 17.130865,4.505709 18.209901,7.969982 10.336028,9.4841573 16.015164,15.065028 13.005222,17.336183 9.0298264,10.44961 4.7503484,17.141891 1.9107803,14.614571 7.6195467,9.5947088 4.3790577E-47,7.8281079 1.0589099,4.5910004 z" Margin="0,0,41.007,3" Width="18.21" Height="17.336" RenderTransformOrigin="0.5,0.5">
<Path.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFB6F0E" Offset="0" />
<GradientStop Color="#FF8C400A" Offset="1" />
</LinearGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Path.RenderTransform>
</Path>
<StackPanel Orientation="Horizontal" Margin="3,3,3,3" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Center" HorizontalAlignment="Right" >
<Button Margin="3,3,3,3" x:Name="button_Minimize"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MinimizeFullyButtonStyle }" Click="togglebuttonChat_Minimize_Checked" />
<ToggleButton Margin="3,3,3,3" x:Name="button_Maximize"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource MaximizeButtonStyle}" Checked="togglebuttonChat_maximise_Checked" Unchecked="togglebuttonChat_maximise_Unchecked" />
<Button Margin="3,3,3,3" x:Name="button_close"
Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Right"
Style="{DynamicResource CloseButtonStyle}" Command="ApplicationCommands.Close" />
</StackPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="{DynamicResource MainGroupBoxForegroundBrush}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontFamily" Value="Microsoft Sans Serif" />
<Setter Property="FontSize" Value="11" />
</Style>
<!--#################### Neuer Style #############################################-->
<Style x:Key="PopUpWindowStyle" TargetType="{x:Type GroupBox}">
<Setter Property="Template">
<Setter.Value>

View File

@@ -243,7 +243,7 @@ namespace BeWo
{
isOnlyYearMonthVisible = true;
}
isOnlyYearMonthVisible = true;
val = GetSettingValue(_Mandator.Settings, "IsZeiterfassungInStdMin");
if (val != null && val.Equals("1"))
{
@@ -891,7 +891,26 @@ namespace BeWo
MainControl.Minimize();
}
private void FrameLeftMouseDown(object sender, MouseButtonEventArgs e)
private void togglebuttonChat_maximise_Unchecked(object sender, RoutedEventArgs e)
{
if (MainControl.HomeView.ServiceChatView != null)
MainControl.HomeView.ServiceChatView.Normal();
}
private void togglebuttonChat_maximise_Checked(object sender, RoutedEventArgs e)
{
if (MainControl.HomeView.ServiceChatView != null)
MainControl.HomeView.ServiceChatView.Maximize();
}
private void togglebuttonChat_Minimize_Checked(object sender, RoutedEventArgs e)
{
if (MainControl.HomeView.ServiceChatView != null)
MainControl.HomeView.ServiceChatView.Minimize();
}
private void FrameLeftMouseDown(object sender, MouseButtonEventArgs e)
{
var border = (Border) sender;
var borderParent = (Grid) border.Parent;

View File

@@ -358,7 +358,7 @@
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" ShowGridMenu="DataViewBase_OnShowGridMenu" CellValueChanged="GridViewBase_OnRowUpdated" />
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" ShowGridMenu="DataViewBase_OnShowGridMenu" CellValueChanged="GridViewBase_OnRowUpdated" ShowGroupPanel="False" />
</dxg:GridControl.View>
</dxg:GridControl>
@@ -566,7 +566,7 @@
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="False" ShowGridMenu="DataViewBase_OnShowGridMenu" />
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="False" ShowGridMenu="DataViewBase_OnShowGridMenu" ShowGroupPanel="False"/>
</dxg:GridControl.View>
</dxg:GridControl>
@@ -626,7 +626,7 @@
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.Row.isCustomerKrank}" Value="True">
<DataTrigger Binding="{Binding RowData.Row.VertretungMo}" Value= " ">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
@@ -660,7 +660,7 @@
<DataTrigger Binding="{Binding RowData.Row.VertretungDi}" Value="">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.Row.isCustomerKrank}" Value="True">
<DataTrigger Binding="{Binding RowData.Row.VertretungDi}" Value=" ">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
@@ -694,7 +694,7 @@
<DataTrigger Binding="{Binding RowData.Row.VertretungMi}" Value="">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.Row.isCustomerKrank}" Value="True">
<DataTrigger Binding="{Binding RowData.Row.VertretungMi}" Value=" ">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
@@ -727,7 +727,7 @@
<DataTrigger Binding="{Binding RowData.Row.VertretungDo}" Value="">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.Row.isCustomerKrank}" Value="True">
<DataTrigger Binding="{Binding RowData.Row.VertretungDo}" Value=" ">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
@@ -760,7 +760,7 @@
<DataTrigger Binding="{Binding RowData.Row.VertretungFr}" Value="">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.Row.isCustomerKrank}" Value="True">
<DataTrigger Binding="{Binding RowData.Row.VertretungFr}" Value=" ">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
@@ -793,7 +793,7 @@
<DataTrigger Binding="{Binding RowData.Row.VertretungSa}" Value="">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding RowData.Row.isCustomerKrank}" Value="True">
<DataTrigger Binding="{Binding RowData.Row.VertretungSa}" Value=" ">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
@@ -803,7 +803,7 @@
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="False" ShowGridMenu="DataViewBase_OnShowGridMenu" AllowBestFit="True" />
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="False" ShowGridMenu="DataViewBase_OnShowGridMenu" AllowBestFit="True" ShowGroupPanel="False" />
</dxg:GridControl.View>
</dxg:GridControl>

View File

@@ -240,6 +240,9 @@ namespace BeWo.SchulbegleitenderDienst
{
xyc.IsMitarbeiterKrank = true;
xyc.IsKunde = 2;
// hier den Tag merken um auch für WOCHEN bereich die spalte orange zu machen
}
if (item.isCustomerKrank)
@@ -299,7 +302,8 @@ namespace BeWo.SchulbegleitenderDienst
}
private void AddMitarbeiterItemsToGrid(VertretungsListeMitarbeiterItemsDC item, DateTime time)
#region Mitarbeiter Wochenansicht Verarbeitung
private void AddMitarbeiterItemsToGrid(VertretungsListeMitarbeiterItemsDC item, DateTime time)
{
var compactEmployee = ServiceFacade.DoEmployeeServiceSync(r => r.GetActiveCompactEmployeeWithOid(item.EmployeeOid.Value));
@@ -463,6 +467,8 @@ namespace BeWo.SchulbegleitenderDienst
return wwk;
}
#endregion
private Dictionary<string, Dictionary<DateTime, SchulbegleitenderDienst>> a;
private Dictionary<String, Dictionary<DateTime, SchulbegleitenderDienst>> klientb;
@@ -659,7 +665,7 @@ namespace BeWo.SchulbegleitenderDienst
case 0:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungMo = " ";
wwk.VertretungMo = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -672,7 +678,7 @@ namespace BeWo.SchulbegleitenderDienst
case 1:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungDi = " ";
wwk.VertretungDi = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -685,7 +691,7 @@ namespace BeWo.SchulbegleitenderDienst
case 2:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungMi = " ";
wwk.VertretungMi = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -700,7 +706,7 @@ namespace BeWo.SchulbegleitenderDienst
case 3:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungDo = " ";
wwk.VertretungDo = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -713,7 +719,7 @@ namespace BeWo.SchulbegleitenderDienst
case 4:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungFr = " ";
wwk.VertretungFr = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -726,7 +732,7 @@ namespace BeWo.SchulbegleitenderDienst
case 5:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungSa = " ";
wwk.VertretungSa = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -752,7 +758,7 @@ namespace BeWo.SchulbegleitenderDienst
case 0:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungMo = " ";
wwk.VertretungMo = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
@@ -766,9 +772,10 @@ namespace BeWo.SchulbegleitenderDienst
case 1:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungDi = " ";
wwk.VertretungDi = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
else
{
@@ -780,9 +787,10 @@ namespace BeWo.SchulbegleitenderDienst
case 2:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungMi = " ";
wwk.VertretungMi = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
else
{
@@ -794,9 +802,10 @@ namespace BeWo.SchulbegleitenderDienst
case 3:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungDo = " ";
wwk.VertretungDo = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
else
{
@@ -808,9 +817,10 @@ namespace BeWo.SchulbegleitenderDienst
case 4:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungFr = " ";
wwk.VertretungFr = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
else
{
@@ -822,9 +832,10 @@ namespace BeWo.SchulbegleitenderDienst
case 5:
if (item.IsMitarbeiterKrank)
{
wwk.VertretungSa = " ";
wwk.VertretungSa = " ";
//wwk.isCustomerKrank = true;
wwk.IsMitarbeiterKrank = true;
}
else
{

File diff suppressed because it is too large Load Diff

View File

@@ -3463,8 +3463,91 @@
</Setter>
</Style>
<Style x:Key="MinimizeFullyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="0" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="Width" Value="Auto" />
<Setter Property="Height" Value="Auto" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<ControlTemplate.Resources>
<Storyboard x:Key="Timeline1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="glow" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="1" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)" To="1.3" Duration="0:0:0.2" />
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" To="1.3" Duration="0:0:0.2" />
</Storyboard>
<Storyboard x:Key="Timeline2">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="glow" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)" Duration="0:0:0.2" />
<DoubleAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" Duration="0:0:0.2" />
</Storyboard>
</ControlTemplate.Resources>
<Grid SnapsToDevicePixels="true" x:Name="grid" MinWidth="20" MinHeight="20">
<Border x:Name="border" BorderBrush="#FF000000" BorderThickness="1,1,1,1" CornerRadius="3,3,3,3" Padding="0,0,0,0" Margin="0,0,0,0">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF000000" Offset="0" />
<GradientStop Color="#FF262626" Offset="1" />
</LinearGradientBrush>
</Border.Background>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.5*" />
<RowDefinition Height="0.5*" />
</Grid.RowDefinitions>
<Border Opacity="0" HorizontalAlignment="Stretch" x:Name="glow" Width="Auto" Grid.RowSpan="2" CornerRadius="3,3,3,3">
<Border.Background>
<RadialGradientBrush>
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.702" ScaleY="2.243" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="-0.368" Y="-0.152" />
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Color="#B28DBDFF" Offset="0" />
<GradientStop Color="#008DBDFF" Offset="1" />
</RadialGradientBrush>
</Border.Background>
</Border>
<Border Grid.Row="0" HorizontalAlignment="Stretch" Margin="0,0,0,0" x:Name="shine" Width="Auto" CornerRadius="3,3,0,0">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#99FFFFFF" Offset="0" />
<GradientStop Color="#33FFFFFF" Offset="1" />
</LinearGradientBrush>
</Border.Background>
</Border>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="Webdings" FontSize="16" Foreground="#FFFFFFFF" TextWrapping="Wrap"
Grid.Row="0" Grid.RowSpan="2">
<Run Text="0" />
</TextBlock>
</Grid>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Timeline1}" />
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard x:Name="Timeline2_BeginStoryboard" Storyboard="{StaticResource Timeline2}" />
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--#################################################### MinimizeButton Style #####################################################-->
<Style x:Key="CloseButtonStyle" TargetType="{x:Type Button}">

View File

@@ -34,13 +34,15 @@ namespace BeWo.View
private CustomerVM _ViewModel;
// TableID tableid;
long? customerOid;
private long? customerOid;
private long? personOid;
public ChatServiceCustomer(TableID pObjectTid, long? oid)
public ChatServiceCustomer(TableID pObjectTid, long? oid,long? cusUserOid)
{
InitializeComponent();
customerOid = oid;
personOid = cusUserOid;
// tableid = pObjectTid;
LaodInfostoView();
@@ -122,31 +124,68 @@ namespace BeWo.View
private void GenerateCodeClick(object sender, RoutedEventArgs e)
{
if (!GeneratetTexfield.Text.Equals(""))
//#if DEBUG
// //Am ende des Tages Wegnehmen
// if (true)
// {
// if (MessageBox.Show("Wollen sie wirklich ihren Code ändern?", "Achtung", MessageBoxButton.YesNo,
// MessageBoxImage.Question) == MessageBoxResult.Yes)
// {
// var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewCustomerAPPCodeDC(customerOid.Value, "5473568546", "123", personOid.Value));
// if (result != null)
// {
// GeneratetTexfield.Text = result.CustomerCode;
// }
// else
// {
// //erstmal
// MessageBox.Show("Beim erstellen eines neuen Chatcodes ist ein fehler aufgetreten. ");
// }
// }
// }
//#else
//Abfrage mit null catchen
if (!GeneratetTexfield.Text.Equals("") && BeWoApp.Tenant != null && BeWoApp.Mandator.Apikey != null)
{
if (MessageBox.Show("Wollen sie wirklich ihren Code ändern?", "Achtung", MessageBoxButton.YesNo,
MessageBoxImage.Question) == MessageBoxResult.Yes)
{
var result =
ServiceFacade.DoOperationsServiceSync(s => s.CreateNewCustomerAPPCodeDC(customerOid.Value));
ServiceFacade.DoOperationsServiceSync(s => s.CreateNewCustomerAPPCodeDC(customerOid.Value, BeWoApp.Tenant, BeWoApp.Mandator.Apikey,personOid.Value)); // die useroid muss noch rausgeholt werden
GeneratetTexfield.Text = result.CustomerCode;
if(result != null){
GeneratetTexfield.Text = result.CustomerCode;
}else{
MessageBox.Show("Beim erstellen eines neuen Chatcodes ist ein fehler aufgetreten. ");
}
//GeneratetTexfield.Text = result.CustomerCode;
}
}
else if (BeWoApp.Tenant != null && BeWoApp.Mandator.Apikey != null)
{
var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewCustomerAPPCodeDC(customerOid.Value, BeWoApp.Tenant, BeWoApp.Mandator.Apikey, personOid.Value));// die useroid muss noch rausgeholt werden
if(result != null){
GeneratetTexfield.Text = result.CustomerCode;
}else{
MessageBox.Show("Beim erstellen eines neuen Chatcodes ist ein fehler aufgetreten. ");
}
//GeneratetTexfield.Text = result.CustomerCode;
}
else
{
var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewCustomerAPPCodeDC(customerOid.Value));
GeneratetTexfield.Text = result.CustomerCode;
MessageBox.Show("Sie besitzen derzeit keinen API-Key. Bitte wenden sie sich an den Suppoert. ","Info",MessageBoxButton.OK);
}
//#endif
}
private void VerarbeiteBenuUndPass()
{
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
@@ -193,7 +232,7 @@ namespace BeWo.View
//######### Erstmal vorrübergehend #####################################################################################
#region Passwort
#region Passwort
private void TXTPasswort_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter) {
@@ -208,9 +247,9 @@ namespace BeWo.View
var passwort = TXTPasswort.Text;
ServiceFacade.DoCustomerServiceSync(s => s.SetBenutzerPasswortChatAppCode(customerOid.Value, "", passwort));
}
#endregion
#endregion
#region BenutzerName
#region BenutzerName
private void TXTBenutzerName_OnKeyDown(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter) {
@@ -225,7 +264,7 @@ namespace BeWo.View
var benutzerName = TXTBenutzerName.Text;
ServiceFacade.DoCustomerServiceSync(s => s.SetBenutzerPasswortChatAppCode(customerOid.Value, benutzerName, ""));
}
#endregion
#endregion
}

View File

@@ -29,13 +29,15 @@ namespace BeWo.View
private CustomerVM _ViewModel;
long? employeeOid;
private long? employeeOid;
private long? personOid;
public ChatServiceEmployee(TableID pObjectTid, long? oid)
public ChatServiceEmployee(TableID pObjectTid, long? oid, long? empUserOid)
{
InitializeComponent();
employeeOid = oid;
personOid = empUserOid;
LaodInfostoView();
}
@@ -70,22 +72,68 @@ namespace BeWo.View
private void GenerateCodeClick(object sender, RoutedEventArgs e)
{
if (!GeneratetTexfield.Text.Equals(""))
//#if DEBUG
// //TODO Sobald erledigt wegnehmen
// if (true)
// {
// if (MessageBox.Show("Wollen sie wirklich ihren Code ändern?", "Achtung", MessageBoxButton.YesNo,
// MessageBoxImage.Question) == MessageBoxResult.Yes)
// {
// var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewEmployeeAPPCodeDC(employeeOid.Value, "5473568546", "123", personOid.Value));
// if (result != null)
// {
// GeneratetTexfield.Text = result.EmployeeCode;
// }
// else
// {
// //erstmal
// MessageBox.Show("Beim erstellen eines neuen Chatcodes ist ein fehler aufgetreten. ");
// }
// }
// }
//#else
if (!GeneratetTexfield.Text.Equals("") && BeWoApp.Tenant != null && BeWoApp.Mandator.Apikey != null)
{
if (MessageBox.Show("Wollen sie wirklich ihren Code ändern?", "Achtung", MessageBoxButton.YesNo,
MessageBoxImage.Question) == MessageBoxResult.Yes)
{
var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewEmployeeAPPCodeDC(employeeOid.Value));
var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewEmployeeAPPCodeDC(employeeOid.Value, BeWoApp.Tenant, BeWoApp.Mandator.Apikey, personOid.Value));
GeneratetTexfield.Text = result.EmployeeCode;
if(result != null){
GeneratetTexfield.Text = result.EmployeeCode;
}else{
MessageBox.Show("Beim erstellen eines neuen Chatcodes ist ein fehler aufgetreten. ");
}
}
}
else
{
var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewEmployeeAPPCodeDC(employeeOid.Value));
if (BeWoApp.Tenant != null && BeWoApp.Mandator.Apikey != null)
{
var result =
ServiceFacade.DoOperationsServiceSync(
s =>
s.CreateNewEmployeeAPPCodeDC(employeeOid.Value, BeWoApp.Tenant, BeWoApp.Mandator.Apikey,
personOid.Value));
GeneratetTexfield.Text = result.EmployeeCode;
//GeneratetTexfield.Text = result.EmployeeCode;
if(result != null){
GeneratetTexfield.Text = result.EmployeeCode;
}else{
MessageBox.Show("Beim erstellen eines neuen Chatcodes ist ein fehler aufgetreten. ");
}
}
else
{
MessageBox.Show("Sie besitzen derzeit keinen API-Key. Bitte wenden sie sich an den Suppoert. ","Info",MessageBoxButton.OK);
}
}
//#endif
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)

View File

@@ -6,15 +6,13 @@
xmlns:local="clr-namespace:BeWo.View"
xmlns:cc="clr-namespace:ChatController;assembly=ChatController"
mc:Ignorable="d" x:Name="ServiceChat"
Title="ChatService" Height="700" Width="900"
Title="ChatService" Height="700" Width="900" ResizeMode="CanResizeWithGrip"
WindowStartupLocation="CenterScreen" WindowStyle="None"
AllowsTransparency="True" Background="Transparent" >
<Grid>
<GroupBox Header="Bewoplaner Chat" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithoutMaximizeBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
<cc:ChatMainControl x:Name="ChatMainControl" OnEmojii="ChatMainControl_OnOnEmoji" ></cc:ChatMainControl>
<GroupBox Header="Bewoplaner Chat" x:Name="rootGroupBox" Style="{DynamicResource MainContentGroupBoxWithMinMaxCloseBtnStyle}" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown">
<cc:ChatMainControl x:Name="ChatMainControl" OnEmojii="ChatMainControl_OnOnEmoji" OnClose="ChatMainControl_OnOnClose" ></cc:ChatMainControl>
</GroupBox>
</Grid>
</Window>

View File

@@ -2,19 +2,26 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using BeWo.Core.Config;
using BeWo.ServiceProxy;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using ChatController.ChatKlassen;
using ChatController.Klassen;
using DevExpress.Xpf.Core;
using Button = System.Windows.Controls.Button;
using MessageBox = System.Windows.MessageBox;
namespace BeWo.View
{
@@ -33,6 +40,13 @@ namespace BeWo.View
ChatMainControl.InitMitChatdaten(chatDaten);
ChatMainControl.AddContextMenu("In Dokumentation übernehmen", ChatMainControl_OnClickContextMenuItem);
//in einem thread auslagern
Thread newThread = new Thread(ChatMainControl.SynchronisationVeranlassen);
newThread.IsBackground = true;
newThread.Start();
}
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
@@ -137,5 +151,38 @@ namespace BeWo.View
MessageBox.Show("Dokumentiert werden kann nur im Chat der Klienten");
}
}
#region Fenster Größen verstellung
internal void Normal()
{
this.WindowState = (WindowState) FormWindowState.Normal;
}
internal void Maximize()
{
this.WindowState = (WindowState)FormWindowState.Maximized;
}
internal void Minimize()
{
this.WindowState = (WindowState)FormWindowState.Minimized;
}
#endregion
#region Close chat
private void ChatMainControl_OnOnClose()
{
_emojiView = null;
this.Dispatch(delegate
{
BeWoApp.MainControl.HomeView.ServiceChatView.Close();
BeWoApp.MainControl.HomeView.ServiceChatView = null;
});
}
#endregion
}
}

View File

@@ -9,7 +9,7 @@
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" Height="Auto" Width="Auto"
HorizontalAlignment="Stretch" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:r="clr-namespace:BeWo.Security"
VerticalAlignment="Stretch" Focusable="True"
VerticalAlignment="Stretch" Focusable="True" KeyUp="AccountingTransactionBookingView_OnKeyUp"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Classic">
<localView:BeWoView.Resources>
<ControlTemplate x:Key="AccountingTransactionListBoxTemplate" TargetType="{x:Type ListBox}">

View File

@@ -604,5 +604,24 @@ namespace BeWo.View.Detail
ViewModel.PrototypeVM.Amount = Math.Round(amount, 2, MidpointRounding.AwayFromZero);
}
}
private void AccountingTransactionBookingView_OnKeyUp(object sender, KeyEventArgs e)
{
if ((e.Key == Key.S) && (Keyboard.IsKeyDown(Key.LeftCtrl)))
{
var lValid = ValidationTrigger.Validate(rootGrid);
if (lValid)
{
var atvm = ViewModel.CreateFromPrototype();
ViewModel.AccountingTransactionVMList.Add(atvm);
Save();
ViewModel.RefreshAccountingTransactionsForSelectedTreeNode();
}
}
}
}
}

View File

@@ -250,7 +250,7 @@
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" RowDoubleClick="TableView_OnRowDoubleClick" />
</dxg:GridControl.View>
</dxg:GridControl>
<dxg:GridControl VerticalAlignment="Stretch" ItemsSource="{Binding Path=EnvironmentPersonsWithFamily.VMList}" HorizontalAlignment="Stretch" x:Key="grid_FamilyRelations">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Notice" Header="" FixedWidth="True" Width="24" ReadOnly="True">

View File

@@ -677,8 +677,19 @@ namespace BeWo.View.Detail
private void button_addEmployeeRelation_Click(object sender, RoutedEventArgs e)
{
bool isEmployeeRolleVorhanden = false;
if (ValidationTrigger.Validate(groupbox_newEmployeeRel))
foreach (var liste in ViewModel.EmployeeRelations.VMList)
{
if (ViewModel.EmployeeRelations.NewVM.Employee.EmployeeOid == liste.Employee.EmployeeOid && ViewModel.EmployeeRelations.NewVM.Role.Equals(liste.Role))
{
isEmployeeRolleVorhanden = true;
MessageBox.Show("Die zuweisung einer schon vorhandenen Rolle ist nicht zulässig.", "Info", MessageBoxButton.OK);
}
}
if (ValidationTrigger.Validate(groupbox_newEmployeeRel) && !isEmployeeRolleVorhanden)
{
popup_newEmployeeRel.IsOpen = false;
ViewModel.EmployeeRelations.AddNewVMToList();
@@ -1001,7 +1012,7 @@ namespace BeWo.View.Detail
{
if (tabitem_chatservice.Content == null)
{
tabitem_chatservice.Content = new ChatServiceCustomer(TableID.Customer, ViewModel.DataContract.CustomerOid.Value);
tabitem_chatservice.Content = new ChatServiceCustomer(TableID.Customer, ViewModel.DataContract.CustomerOid.Value,ViewModel.DataContract.PersonOid);
}
}

View File

@@ -460,7 +460,7 @@ namespace BeWo.View.Detail
{
if (tabitem_chatservice.Content == null)
{
tabitem_chatservice.Content = new ChatServiceEmployee(TableID.Employee, ViewModel.DataContract.EmployeeOid.Value);
tabitem_chatservice.Content = new ChatServiceEmployee(TableID.Employee, ViewModel.DataContract.EmployeeOid.Value,ViewModel.DataContract.PersonOid);
}
}

View File

@@ -318,6 +318,30 @@
</TabItem>
<TabItem Header="Dokumente" Name="tabitem_documents" Selector.Selected="tabitem_documents_Selected" />
<TabItem Header="Umfeld" Name="tabitem_umfeld" Selector.Selected="Tabitem_umfeld_OnSelected" >
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid x:Name="groupbox_Umfeld">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GroupBox x:Name="groupbox_KlientenListe" Grid.Row="0" Header="Zugehörige Klienten" Style="{DynamicResource ObjectEditGroupBox}" >
<dxg:GridControl VerticalAlignment="Stretch" HorizontalAlignment="Stretch" x:Name="KlientGridControl">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Name" Header="Klient" Width="150" AllowEditing="False" />
<dxg:GridColumn FieldName="Rolle" Header="Rolle" Width="150" AllowEditing="False" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" RowDoubleClick="TableViewUmfeldKlient_OnRowDoubleClick"/>
</dxg:GridControl.View>
</dxg:GridControl>
</GroupBox>
</Grid>
</ScrollViewer>
</TabItem>
</TabControl>
<Border Grid.Row="2" Grid.ColumnSpan="3" Height="40" Margin="0,10,0,0" VerticalAlignment="Stretch" Background="#FF000000">
<Border.OpacityMask>

View File

@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using BeWo.Controls;
@@ -299,5 +301,79 @@ namespace BeWo.View.Detail
{
BeWoUtils.OpenMailClient(ViewModel.PrivateEMail);
}
private void Tabitem_umfeld_OnSelected(object sender, RoutedEventArgs e)
{
KlientGridControl.ItemsSource = null;
var employee =
ServiceFacade.DoEmployeeServiceSync(r => r.GetEmployeebyFullName(ViewModel.DataContract.FirstName+" "+ViewModel.DataContract.LastName));
if (employee != null)
{
List<KlientenUmfeldGridControl> a = new List<KlientenUmfeldGridControl>();
foreach (var cus in employee.RelatedCustomers)
{
KlientenUmfeldGridControl defvk = new KlientenUmfeldGridControl(cus.Customer.FullName,
cus.RelationRole.TypeDescription, cus.Customer.Oid);
a.Add(defvk);
}
KlientGridControl.ItemsSource = a;
}
}
private void TableViewUmfeldKlient_OnRowDoubleClick(object sender, RowDoubleClickEventArgs e)
{
var tableView = (TableView)sender;
var selectedVM = tableView.Grid.GetRow(e.HitInfo.RowHandle) as KlientenUmfeldGridControl;
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.OrganisationView_View) || selectedVM == null)
{
return;
}
List<long> custOid = new List<long>();
custOid.Add(selectedVM.KlientOid.Value);
var sgf = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomersById(custOid));
var selectedCustomer = sgf[0];
VMFactory.CreateCustomerVMAsync(selectedCustomer.CustomerOid,
cb => this.Dispatch(
() =>
BeWoUtils.OpenModalViewWindow<CustomerVM, CustomerDC, BeWoView>(cb, null, () => this.Dispatch(
delegate
{
var updatedCustomer = new CompactCustomerDC();
ServiceFacade.DoCustomerServiceSync(
s => updatedCustomer = s.GetCompactCustomerDC(selectedCustomer.CustomerOid));
selectedCustomer = new CompactCustomerDC();
selectedCustomer = updatedCustomer;
// UpdateControls();
// customerText.Text = updatedCustomer.ToString();
BeWoUtils.UpdateAllViews(selectedCustomer);
}))
));
}
}
public class KlientenUmfeldGridControl
{
public string Name { get; set; }
public string Rolle { get; set; }
public long? KlientOid { get; set; }
public KlientenUmfeldGridControl(string name, string rolle,long? oid)
{
Name = name;
Rolle = rolle;
KlientOid = oid;
}
}
}

View File

@@ -16,7 +16,7 @@
xmlns:core="clr-namespace:BS.Shared.Core;assembly=BS.Shared"
xmlns:security="clr-namespace:BeWo.Security"
xmlns:dxr="http://schemas.devexpress.com/winfx/2008/xaml/ribbon"
Height="Auto" Width="Auto" VerticalAlignment="Stretch" Focusable="True" HorizontalAlignment="Stretch">
Height="Auto" Width="Auto" VerticalAlignment="Stretch" Focusable="True" HorizontalAlignment="Stretch" KeyUp="ServiceRecordView2_OnKeyUp">
<localView:BeWoView.Resources>
<dxre:RichEditUICommand x:Key="commands" />
<Style TargetType="{x:Type Button}" x:Key="DockPanelMaximizeButtonStyle">
@@ -239,7 +239,7 @@
</localView:BeWoView.Resources>
<Grid x:Name="rootGrid">
<uc:ShadowChrome>
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0,11,0,0">
<Image Source="..\..\Ressources\Icons\HistoryDisabled.png" RenderTransformOrigin="0.5,0.5" Width="32">
@@ -736,38 +736,50 @@
</Grid>
<Grid Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="2" x:Name="GridMitJahrMonat" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="88" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- ####################################Converter={StaticResource Int2DecimalConverter},##########################################################################################################-->
<!-- ########################## Grid mit nur Jahr / Monat und fester Dauer SharedSizeGroup="Label1"#####################################-->
<Grid Grid.Column="0" Grid.Row="6" Grid.ColumnSpan="2" x:Name="GridMitJahrMonat" Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Label1" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Jahr" />
<dxe:ComboBoxEdit Grid.Column="3" Grid.Row="0" Margin="3,0,3,3" x:Name="OnlyJahrData"
EditValue="{Binding Path=PrototypeVM.OnlyYear, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=PrototypeVM.JahreBinden}"
IsTextEditable="False" Height="23"/>
<Label Grid.Column="0" Grid.Row="1" Content="Monat" x:Name="EndDateLabel3"/>
<dxe:ComboBoxEdit Grid.Column="3" Grid.Row="1" Margin="3,0,3,3" x:Name="OnlyMonatData"
EditValue="{Binding Path=PrototypeVM.OnlyMonth, UpdateSourceTrigger=PropertyChanged}"
IsTextEditable="False" Height="23"
ItemsSource="{Binding Path=PrototypeVM.MonateBinden}" />
<Label Content="Stunden" Grid.Column="0" Grid.Row="2"/>
<dxe:SpinEdit MinValue="0" Increment="5" IsFloatValue="True" AllowNullInput="False" x:Name="numeric_duration3" Mask="########0.##" MaskUseAsDisplayFormat="True"
EditValue="{Binding Path=PrototypeVM.DurationMonthYearGes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="3" Grid.Row="2"
Height="23" Margin="3,0,3,3"/>
</Grid>
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="0" Margin="3,0,3,3" x:Name="OnlyJahrData"
EditValue="{Binding Path=PrototypeVM.OnlyYear, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Path=PrototypeVM.JahreBinden}"
IsTextEditable="False" Height="23"/>
<Label Grid.Column="0" Grid.Row="1" Content="Monat" x:Name="EndDateLabel3"/>
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="1" Margin="3,0,3,3" x:Name="OnlyMonatData"
EditValue="{Binding Path=PrototypeVM.OnlyMonth, UpdateSourceTrigger=PropertyChanged}"
IsTextEditable="False" Height="23"
ItemsSource="{Binding Path=PrototypeVM.MonateBinden}" />
<Label Content="Stunden" Grid.Column="0" Grid.Row="2"/>
<dxe:SpinEdit MinValue="0" Increment="5" IsFloatValue="True" AllowNullInput="False" x:Name="numeric_duration3" Mask="########0.00" MaskUseAsDisplayFormat="True"
EditValue="{Binding Path=PrototypeVM.DurationMonthYearGes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" Grid.Row="2"
Height="23" Margin="3,0,3,3"/>
</Grid>
<!-- ############################################################################ConverterCulture='de-DE' ,##MaskType="Numeric" Mask="N2" MaskUseAsDisplayFormat="True"#############################################################-->
<!-- ########################## Gefahrene Kilometer ############### -->
<Grid Grid.Column="0" Grid.Row="9" ColumnSpan="2" x:Name="DauerGrid" Visibility="Visible">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />

View File

@@ -269,11 +269,12 @@ namespace BeWo.View.Detail
ConfigureEndDate();
UnterschriftenHeader.Visible = BeWoApp.AppSettings.ShowSignatures;
//richEdit.HorizontalRulerVisibility = Visibility.Collapsed;
//richEdit.VerticalRulerVisibility = Visibility.Collapsed;
//richEdit.ActiveViewType = RichEditViewType.Simple;
}
private void SetRTFFontSizeFromApp()
@@ -4175,5 +4176,13 @@ namespace BeWo.View.Detail
AddTextModuleToRichEditControl(e.Data.Text, richEditControl5);
}
}
private void ServiceRecordView2_OnKeyUp(object sender, KeyEventArgs e)
{
if ((e.Key == Key.S) && (Keyboard.IsKeyDown(Key.LeftCtrl)))
{
SaveServiceRecord();
}
}
}
}

View File

@@ -1353,14 +1353,14 @@ namespace BeWo.View.Detail
SelectedApprovalPeriodVM.SupportConceptApprovalEmployeeRelations.NewVM.IsAbsolut = true;
var cbRelVM = this.tabcontrol_costbearers.SelectedItem as SupportConceptCostBearerRelVM;
var actual = cbRelVM.ApprovalPeriodList.VMList.OrderByDescending(i => i.StartDate).FirstOrDefault();
//var cbRelVM = this.tabcontrol_costbearers.SelectedItem as SupportConceptCostBearerRelVM;
//var actual = cbRelVM.ApprovalPeriodList.VMList.OrderByDescending(i => i.StartDate).FirstOrDefault();
decimal max = 0;
if (actual.ApprovedBEPerInterval.HasValue)
{
max = actual.ApprovedBEPerInterval.Value * 60;
editAbsolut.MaxValue = max;
if (SelectedApprovalPeriodVM.ApprovedBEPerInterval.HasValue)
{
max = SelectedApprovalPeriodVM.ApprovedBEPerInterval.Value * 60;
editAbsolut.MaxValue = max;
}
@@ -1521,7 +1521,13 @@ namespace BeWo.View.Detail
private void ToggledAbsol_OnChecked(object sender, RoutedEventArgs e)
{
var cbRelVM = this.tabcontrol_costbearers.SelectedItem as SupportConceptCostBearerRelVM;
var actual = cbRelVM.ApprovalPeriodList.VMList.OrderByDescending(i => i.StartDate).FirstOrDefault();
var actual = SelectedApprovalPeriodVM;
if (actual == null)
{
actual = cbRelVM.ApprovalPeriodList.VMList.OrderByDescending(i => i.StartDate).FirstOrDefault();
}
if (actual.ApprovedBEPerInterval.HasValue)
{

View File

@@ -1305,36 +1305,34 @@ namespace BeWo.View
{
if (ServiceChatView == null)
{
//Tu hier anmeldung starten
//Cursor = Cursors.Wait;
var empAppCodes = ServiceFacade.DoEmployeeServiceSync(r=>r.GetAllEmployeeAppCodes(BeWoApp.LoggedOnUser.Employee.EmployeeOid));
var xxx = empAppCodes.Last();
//Hier die Anmelde Infos Vom User
string _kundennummer = BeWoApp.Tenant;
string _ChatCode = ""; //EmployeeAppCode Holen
string _ChatCode = xxx.EmployeeCode;
string _benutzername = BeWoApp.UserName;
string _passwort = "";
string _passwort = "12345678"; // welches passwort wird hier benutzt
string _apikey;
#if DEBUG
Login _login = null; //
#else
Login _login = new Login(_kundennummer, _ChatCode, _benutzername, _passwort);
#endif
if (_login != null)
{
var x = _login.AnmeldevorgangDurchFuehren();
if (BeWoApp.Mandator.Apikey != null)
_apikey = BeWoApp.Mandator.Apikey;
else
_apikey = "0000"; //erstmal zu default zwecken damit nichts abstürzt
if (x != null)
{
ServiceChatView = new ChatView(x);
ServiceChatView.Show();
}
Login _login = new Login(_kundennummer, _ChatCode, _benutzername, _passwort, _apikey);
var x = _login.AnmeldevorgangDurchFuehren();
if (x != null)
{
ServiceChatView = new ChatView(x);
ServiceChatView.Show();
}
else
{
MessageBox.Show("Du bist erstmal nicht berechtigt das zu nutzen");
//fehlermeldungen weiter Spezifizieren
MessageBox.Show("Es konnte keine Verbindung hergestellt werden.\nBitte versuchen sie es später erneut");
}
}

View File

@@ -1490,7 +1490,7 @@ namespace BeWo.ViewModel.ListViewModel
sr.StartDate.Value.Date != end)
.Sum(sr => sr.RoundedDuration);
decimal lNewFLMInAbsenceWeek = CalculateDurationSum(iCustomerNode);
//decimal lNewFLMInAbsenceWeek = CalculateDurationSum(iCustomerNode);
//if (lExisitingFLMInAbsenceWeek + lNewFLMInAbsenceWeek > lAbsenceWeek.Value)
//{
@@ -1499,15 +1499,15 @@ namespace BeWo.ViewModel.ListViewModel
CustomerWarning +=
"\nAbrechenbar in dieser Woche: " +
maxBillableMinutes +
" Minuten\n\nBereits geleistet: " +
BeWoWpfUtils.GetDecimalValueWithMaxDecimal(lExisitingFLMInAbsenceWeek, 2);
" Minuten\nBereits geleistet: " +
BeWoWpfUtils.GetDecimalValueWithMaxDecimal(lExisitingFLMInAbsenceWeek, 2) +
" Minuten";
//" Minuten\nNeue Buchung(en) in der Maske: " + BeWoWpfUtils.GetDecimalValueWithMaxDecimal(lNewFLMInAbsenceWeek, 2) + " Minuten" +
decimal notBillableMinutes =
BeWoWpfUtils.GetDecimalValueWithMaxDecimal(
-(maxBillableMinutes -
(lExisitingFLMInAbsenceWeek + lNewFLMInAbsenceWeek)), 2) ?? 0;
(lExisitingFLMInAbsenceWeek)), 2) ?? 0;
if (notBillableMinutes > 0)
{
CustomerWarning += "\nEs werden " + notBillableMinutes +

View File

@@ -118,7 +118,8 @@
<add key="PreserveLoginUrl" value="true"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
<add key="MultitenancyPath" value="F:\Projects\BeWo\Host\Multitenancy\"/>
<!--<add key="MultitenancyPath" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\Multitenancy\"/>-->
<add key="MultitenancyPath" value="D:\Projects\beyondSoft\BeWoPlaner\BeWo\Host\Multitenancy\"/>
<!--<add key="MultitenancyPath" value="C:\Projekte\BeWo\Host\Multitenancy\"/>-->
<!--<add key="MultitenancyPath" value="..\Host\Multitenancy"/>-->
</appSettings>

View File

@@ -1786,7 +1786,7 @@ namespace BeWo.Data.Access
return c.List<EmployeeAPPCode>();
}
public IEnumerable<CustomerAPPCode> FindAllCustomerAppCodes(long oid)
{
var c = CreateCriteriaIsActive<CustomerAPPCode>()

View File

@@ -12,6 +12,7 @@ using NHibernate;
using NHibernate.Criterion;
using NHibernate.SqlCommand;
using System.Threading;
using BeWo.Data.Security;
namespace BeWo.Data.Access
{
@@ -32,14 +33,30 @@ namespace BeWo.Data.Access
return true;
#endif
MD5CryptoServiceProvider lMD5 = new MD5CryptoServiceProvider();
string lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(pPassword)));
bool valid = lHash == user.HashedPassword || pPassword == user.HashedPassword;
if (!valid)
bool valid = false;
if (String.IsNullOrWhiteSpace(user.BCryptPassword))
{
lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(String.Format("{0}_{1}_{2}", user.Salt, pPassword, "o238rRndguK4Fh8dsfkhwon54H8n3qo4itv8nz3o4LvnzQs0npmwEp"))));
lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(lHash)));
valid = lHash == user.HashedPassword;
MD5CryptoServiceProvider lMD5 = new MD5CryptoServiceProvider();
string lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(pPassword)));
valid = lHash == user.HashedPassword || pPassword == user.HashedPassword;
if (!valid)
{
lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(String.Format("{0}_{1}_{2}",
user.Salt, pPassword, "o238rRndguK4Fh8dsfkhwon54H8n3qo4itv8nz3o4LvnzQs0npmwEp"))));
lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(lHash)));
valid = lHash == user.HashedPassword;
}
if (valid)
{
string salt = BCrypt.GenerateSalt();
user.BCryptPassword = BCrypt.HashPassword(pPassword, salt);
this.Session.Update(user);
}
}
else
{
valid = pPassword == user.BCryptPassword || BCrypt.CheckPassword(pPassword, user.BCryptPassword);
}
return valid;
}

View File

@@ -259,6 +259,7 @@
<Compile Include="ICD10\ICD10DAO.cs" />
<Compile Include="LoggedInUserOperationContextExt.cs" />
<Compile Include="MultitenancyOperationContextExt.cs" />
<Compile Include="Security\BCrypt.cs" />
<Compile Include="SessionFacade.cs" />
<Compile Include="SessionOperationContextExt.cs" />
<Compile Include="Entities\BeWoEntityBase.cs" />
@@ -684,6 +685,7 @@
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using BeWo.Data.Security;
using BS.Shared;
namespace BeWo.Data.Entities
@@ -25,7 +26,9 @@ namespace BeWo.Data.Entities
public static string PropertyName_Zeitstempel = "TimeStamp";
private readonly byte[] _Rc2IV = {35, 138, 177, 253, 227, 63, 2, 27};
public static string PropertyName_BCryptPassword = "BCryptPassword";
private readonly byte[] _Rc2IV = {35, 138, 177, 253, 227, 63, 2, 27};
private readonly byte[] _Rc2Key = {174, 130, 219, 185, 185, 221, 96, 50, 37, 212, 81, 121, 71, 206, 130, 153};
@@ -33,7 +36,9 @@ namespace BeWo.Data.Entities
private string _HashedPassword;
private string _LoginName;
private string _BCryptPassword;
private string _LoginName;
private IList<ResetPasswordInfo> _ResetPasswordInfos;
private string _Salt;
@@ -76,7 +81,20 @@ namespace BeWo.Data.Entities
}
}
public virtual string LoginName
public virtual string BCryptPassword
{
get { return _BCryptPassword; }
set
{
if (AreDifferent(_BCryptPassword, value))
{
_BCryptPassword = value;
}
}
}
public virtual string LoginName
{
get { return _LoginName; }
@@ -177,7 +195,11 @@ namespace BeWo.Data.Entities
string lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(String.Format("{0}_{1}_{2}", Salt, pPassword, "o238rRndguK4Fh8dsfkhwon54H8n3qo4itv8nz3o4LvnzQs0npmwEp"))));
lHash = BitConverter.ToString(lMD5.ComputeHash(Encoding.UTF8.GetBytes(lHash)));
HashedPassword = lHash;
}
//BCrypt
string salt = BCrypt.GenerateSalt();
BCryptPassword = BCrypt.HashPassword(pPassword, salt);
}
public virtual bool CheckRC2Password(string pRC2Hash)
{

View File

@@ -17,6 +17,7 @@
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="CreationDate" type="DateTime" name="Zeitstempel" />
<property column="PasswordHash" type="String" name="BCryptPassword" />
<many-to-one name="Employee" column="EmployeeOid" class="BeWo.Data.Entities.Employee,BeWo.Data" cascade="none" />
<bag name="UserGroups" table="InGroup" generic="true" cascade="none" batch-size="250">

812
Data/Security/BCrypt.cs Normal file
View File

@@ -0,0 +1,812 @@
// Copyright (c) 2006 Damien Miller <djm@mindrot.org>
// Copyright (c) 2007 Derek Slager
//
// Permission to use, copy, modify, and distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
namespace BeWo.Data.Security
{
/// <summary>BCrypt implements OpenBSD-style Blowfish password hashing
/// using the scheme described in "A Future-Adaptable Password Scheme"
/// by Niels Provos and David Mazieres.</summary>
/// <remarks>
/// <para>This password hashing system tries to thwart offline
/// password cracking using a computationally-intensive hashing
/// algorithm, based on Bruce Schneier's Blowfish cipher. The work
/// factor of the algorithm is parametized, so it can be increased as
/// computers get faster.</para>
/// <para>To hash a password for the first time, call the
/// <c>HashPassword</c> method with a random salt, like this:</para>
/// <code>
/// string hashed = BCrypt.HashPassword(plainPassword, BCrypt.GenerateSalt());
/// </code>
/// <para>To check whether a plaintext password matches one that has
/// been hashed previously, use the <c>CheckPassword</c> method:</para>
/// <code>
/// if (BCrypt.CheckPassword(candidatePassword, storedHash)) {
/// Console.WriteLine("It matches");
/// } else {
/// Console.WriteLine("It does not match");
/// }
/// </code>
/// <para>The <c>GenerateSalt</c> method takes an optional parameter
/// (logRounds) that determines the computational complexity of the
/// hashing:</para>
/// <code>
/// string strongSalt = BCrypt.GenerateSalt(10);
/// string strongerSalt = BCrypt.GenerateSalt(12);
/// </code>
/// <para>
/// The amount of work increases exponentially (2**log_rounds), so
/// each increment is twice as much work. The default log_rounds is
/// 10, and the valid range is 4 to 31.
/// </para>
/// </remarks>
public class BCrypt
{
private const int GENSALT_DEFAULT_LOG2_ROUNDS = 10;
private const int BCRYPT_SALT_LEN = 16;
// Blowfish parameters.
private const int BLOWFISH_NUM_ROUNDS = 16;
// Initial contents of key schedule.
private static readonly uint[] p_orig =
{
0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
0x9216d5d9, 0x8979fb1b
};
private static readonly uint[] s_orig =
{
0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a,
0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7,
0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0,
0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
};
// bcrypt IV: "OrpheanBeholderScryDoubt".
private static readonly uint[] bf_crypt_ciphertext =
{
0x4f727068, 0x65616e42, 0x65686f6c,
0x64657253, 0x63727944, 0x6f756274
};
// Table for Base64 encoding.
private static readonly char[] base64_code =
{
'.', '/', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9'
};
// Table for Base64 decoding.
private static readonly int[] index_64 =
{
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 0, 1, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, -1, -1,
-1, -1, -1, -1, -1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
-1, -1, -1, -1, -1, -1, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, -1, -1, -1, -1, -1
};
// Expanded Blowfish key.
private uint[] p;
private uint[] s;
/// <summary>Encode a byte array using bcrypt's slightly-modified
/// Base64 encoding scheme. Note that this is _not_ compatible
/// with the standard MIME-Base64 encoding.</summary>
/// <param name="d">The byte array to encode</param>
/// <param name="length">The number of bytes to encode</param>
/// <returns>A Base64-encoded string</returns>
private static string EncodeBase64(byte[] d, int length)
{
if (length <= 0 || length > d.Length)
{
throw new ArgumentOutOfRangeException("length", length, null);
}
StringBuilder rs = new StringBuilder(length * 2);
for (int offset = 0, c1, c2; offset < length;)
{
c1 = d[offset++] & 0xff;
rs.Append(base64_code[(c1 >> 2) & 0x3f]);
c1 = (c1 & 0x03) << 4;
if (offset >= length)
{
rs.Append(base64_code[c1 & 0x3f]);
break;
}
c2 = d[offset++] & 0xff;
c1 |= (c2 >> 4) & 0x0f;
rs.Append(base64_code[c1 & 0x3f]);
c1 = (c2 & 0x0f) << 2;
if (offset >= length)
{
rs.Append(base64_code[c1 & 0x3f]);
break;
}
c2 = d[offset++] & 0xff;
c1 |= (c2 >> 6) & 0x03;
rs.Append(base64_code[c1 & 0x3f]);
rs.Append(base64_code[c2 & 0x3f]);
}
return rs.ToString();
}
/// <summary>Look up the 3 bits base64-encoded by the specified
/// character, range-checking against the conversion
/// table.</summary>
/// <param name="c">The Base64-encoded value</param>
/// <returns>The decoded value of <c>x</c></returns>
private static int Char64(char c)
{
int i = (int) c;
return (i < 0 || i > index_64.Length) ? -1 : index_64[i];
}
/// <summary>Decode a string encoded using BCrypt's Base64 scheme to a
/// byte array. Note that this is _not_ compatible with the standard
/// MIME-Base64 encoding.</summary>
/// <param name="s">The string to decode</param>
/// <param name="maximumLength">The maximum number of bytes to decode</param>
/// <returns>An array containing the decoded bytes</returns>
private static byte[] DecodeBase64(string s, int maximumLength)
{
List<byte> bytes = new List<byte>(Math.Min(maximumLength, s.Length));
if (maximumLength <= 0)
{
throw new ArgumentOutOfRangeException("maximumLength", maximumLength, null);
}
for (int offset = 0, slen = s.Length, length = 0; offset < slen - 1 && length < maximumLength;)
{
int c1 = Char64(s[offset++]);
int c2 = Char64(s[offset++]);
if (c1 == -1 || c2 == -1)
{
break;
}
bytes.Add((byte) ((c1 << 2) | ((c2 & 0x30) >> 4)));
if (++length >= maximumLength || offset >= s.Length)
{
break;
}
int c3 = Char64(s[offset++]);
if (c3 == -1)
{
break;
}
bytes.Add((byte) (((c2 & 0x0f) << 4) | ((c3 & 0x3c) >> 2)));
if (++length >= maximumLength || offset >= s.Length)
{
break;
}
int c4 = Char64(s[offset++]);
bytes.Add((byte) (((c3 & 0x03) << 6) | c4));
++length;
}
return bytes.ToArray();
}
/// <summary>
/// Blowfish encipher a single 64-bit block encoded as two 32-bit
/// halves.
/// </summary>
/// <param name="block">An array containing the two 32-bit half
/// blocks.</param>
/// <param name="offset">The position in the array of the
/// blocks.</param>
private void Encipher(uint[] block, int offset)
{
uint i, n, l = block[offset], r = block[offset + 1];
l ^= this.p[0];
for (i = 0; i <= BLOWFISH_NUM_ROUNDS - 2;)
{
// Feistel substitution on left word
n = this.s[(l >> 24) & 0xff];
n += this.s[0x100 | ((l >> 16) & 0xff)];
n ^= this.s[0x200 | ((l >> 8) & 0xff)];
n += this.s[0x300 | (l & 0xff)];
r ^= n ^ this.p[++i];
// Feistel substitution on right word
n = this.s[(r >> 24) & 0xff];
n += this.s[0x100 | ((r >> 16) & 0xff)];
n ^= this.s[0x200 | ((r >> 8) & 0xff)];
n += this.s[0x300 | (r & 0xff)];
l ^= n ^ this.p[++i];
}
block[offset] = r ^ this.p[BLOWFISH_NUM_ROUNDS + 1];
block[offset + 1] = l;
}
/// <summary>
/// Cycically extract a word of key material.
/// </summary>
/// <param name="data">The string to extract the data
/// from.</param>
/// <param name="offset">The current offset into data.</param>
/// <returns>The next work of material from data.</returns>
private static uint StreamToWord(byte[] data, ref int offset)
{
uint word = 0;
for (int i = 0; i < 4; i++)
{
word = (word << 8) | data[offset];
offset = (offset + 1) % data.Length;
}
return word;
}
/// <summary>
/// Initialize the Blowfish key schedule.
/// </summary>
private void InitKey()
{
this.p = new uint[p_orig.Length];
p_orig.CopyTo(this.p, 0);
this.s = new uint[s_orig.Length];
s_orig.CopyTo(this.s, 0);
}
/// <summary>
/// Key the Blowfish cipher.
/// </summary>
/// <param name="key">An array containing the key.</param>
private void Key(byte[] key)
{
uint[] lr = {0, 0};
int plen = this.p.Length, slen = this.s.Length;
int offset = 0;
for (int i = 0; i < plen; i++)
{
this.p[i] = this.p[i] ^ StreamToWord(key, ref offset);
}
for (int i = 0; i < plen; i += 2)
{
Encipher(lr, 0);
this.p[i] = lr[0];
this.p[i + 1] = lr[1];
}
for (int i = 0; i < slen; i += 2)
{
Encipher(lr, 0);
this.s[i] = lr[0];
this.s[i + 1] = lr[1];
}
}
/// <summary>
/// Perform the "enhanced key schedule" step described by Provos
/// and Mazieres in "A Future-Adaptable Password Scheme"
/// (http://www.openbsd.org/papers/bcrypt-paper.ps).
/// </summary>
/// <param name="data">Salt information.</param>
/// <param name="key">Password information.</param>
private void EksKey(byte[] data, byte[] key)
{
uint[] lr = {0, 0};
int plen = this.p.Length, slen = this.s.Length;
int keyOffset = 0;
for (int i = 0; i < plen; i++)
{
this.p[i] = this.p[i] ^ StreamToWord(key, ref keyOffset);
}
int dataOffset = 0;
for (int i = 0; i < plen; i += 2)
{
lr[0] ^= StreamToWord(data, ref dataOffset);
lr[1] ^= StreamToWord(data, ref dataOffset);
Encipher(lr, 0);
this.p[i] = lr[0];
this.p[i + 1] = lr[1];
}
for (int i = 0; i < slen; i += 2)
{
lr[0] ^= StreamToWord(data, ref dataOffset);
lr[1] ^= StreamToWord(data, ref dataOffset);
Encipher(lr, 0);
this.s[i] = lr[0];
this.s[i + 1] = lr[1];
}
}
/// <summary>
/// Perform the central password hashing step in the bcrypt
/// scheme.
/// </summary>
/// <param name="password">The password to hash.</param>
/// <param name="salt">The binary salt to hash with the
/// password.</param>
/// <param name="logRounds">The binary logarithm of the number of
/// rounds of hashing to apply.</param>
/// <returns>An array containing the binary hashed password.</returns>
private byte[] CryptRaw(byte[] password, byte[] salt, int logRounds)
{
uint[] cdata = new uint[bf_crypt_ciphertext.Length];
bf_crypt_ciphertext.CopyTo(cdata, 0);
int clen = cdata.Length;
byte[] ret;
if (logRounds < 4 || logRounds > 31)
{
throw new ArgumentOutOfRangeException("logRounds", logRounds, null);
}
int rounds = 1 << logRounds;
if (salt.Length != BCRYPT_SALT_LEN)
{
throw new ArgumentException("Invalid salt length.", "salt");
}
InitKey();
EksKey(salt, password);
for (int i = 0; i < rounds; i++)
{
Key(password);
Key(salt);
}
for (int i = 0; i < 64; i++)
{
for (int j = 0; j < (clen >> 1); j++)
{
Encipher(cdata, j << 1);
}
}
ret = new byte[clen * 4];
for (int i = 0, j = 0; i < clen; i++)
{
ret[j++] = (byte) ((cdata[i] >> 24) & 0xff);
ret[j++] = (byte) ((cdata[i] >> 16) & 0xff);
ret[j++] = (byte) ((cdata[i] >> 8) & 0xff);
ret[j++] = (byte) (cdata[i] & 0xff);
}
return ret;
}
/// <summary>
/// Hash a password using the OpenBSD bcrypt scheme.
/// </summary>
/// <param name="password">The password to hash.</param>
/// <param name="salt">The salt to hash with (perhaps generated
/// using <c>BCrypt.GenerateSalt</c>).</param>
/// <returns>The hashed password.</returns>
public static string HashPassword(string password, string salt)
{
if (password == null)
{
throw new ArgumentNullException("password");
}
if (salt == null)
{
throw new ArgumentNullException("salt");
}
char minor = (char) 0;
if (salt[0] != '$' || salt[1] != '2')
{
throw new ArgumentException("Invalid salt version");
}
int offset;
if (salt[1] != '$')
{
minor = salt[2];
if (minor != 'a' || salt[3] != '$')
{
throw new ArgumentException("Invalid salt revision");
}
offset = 4;
}
else
{
offset = 3;
}
// Extract number of rounds
if (salt[offset + 2] > '$')
{
throw new ArgumentException("Missing salt rounds");
}
int rounds = Int32.Parse(salt.Substring(offset, 2), NumberFormatInfo.InvariantInfo);
byte[] passwordBytes = Encoding.UTF8.GetBytes(password + (minor >= 'a' ? "\0" : String.Empty));
byte[] saltBytes = DecodeBase64(salt.Substring(offset + 3, 22),
BCRYPT_SALT_LEN);
BCrypt bcrypt = new BCrypt();
byte[] hashed = bcrypt.CryptRaw(passwordBytes, saltBytes, rounds);
StringBuilder rs = new StringBuilder();
rs.Append("$2");
if (minor >= 'a')
{
rs.Append(minor);
}
rs.Append('$');
if (rounds < 10)
{
rs.Append('0');
}
rs.Append(rounds);
rs.Append('$');
rs.Append(EncodeBase64(saltBytes, saltBytes.Length));
rs.Append(EncodeBase64(hashed,
(bf_crypt_ciphertext.Length * 4) - 1));
return rs.ToString();
}
/// <summary>
/// Generate a salt for use with the BCrypt.HashPassword() method.
/// </summary>
/// <param name="logRounds">The log2 of the number of rounds of
/// hashing to apply. The work factor therefore increases as (2 **
/// logRounds).</param>
/// <returns>An encoded salt value.</returns>
public static string GenerateSalt(int logRounds)
{
byte[] randomBytes = new byte[BCRYPT_SALT_LEN];
RandomNumberGenerator.Create().GetBytes(randomBytes);
StringBuilder rs = new StringBuilder((randomBytes.Length * 2) + 8);
rs.Append("$2a$");
if (logRounds < 10)
{
rs.Append('0');
}
rs.Append(logRounds);
rs.Append('$');
rs.Append(EncodeBase64(randomBytes, randomBytes.Length));
return rs.ToString();
}
/// <summary>
/// Generate a salt for use with the <c>BCrypt.HashPassword()</c>
/// method, selecting a reasonable default for the number of hashing
/// rounds to apply.
/// </summary>
/// <returns>An encoded salt value.</returns>
public static string GenerateSalt()
{
return GenerateSalt(GENSALT_DEFAULT_LOG2_ROUNDS);
}
/// <summary>
/// Check that a plaintext password matches a previously hashed
/// one.
/// </summary>
/// <param name="plaintext">The plaintext password to verify.</param>
/// <param name="hashed">The previously hashed password.</param>
/// <returns><c>true</c> if the passwords, <c>false</c>
/// otherwise.</returns>
public static bool CheckPassword(string plaintext, string hashed)
{
return StringComparer.Ordinal.Compare(hashed, HashPassword(plaintext, hashed)) == 0;
}
}
}

View File

@@ -15,13 +15,13 @@
NHibernate.Driver.MySqlDataDriver
</property>
<property name="connection.connection_string">
<!-- <property name="connection.connection_string">
Server=localhost;Password=root;User ID=root;Initial Catalog=bewodemo
</property>
</property>-->
<!--<property name="connection.connection_string">
<property name="connection.connection_string">
Server=localhost;Password=root;User ID=root;Initial Catalog=1234567890
</property>-->
</property>
<property name="dialect">
NHibernate.Dialect.MySQLDialect

View File

@@ -1,23 +1,14 @@
ALTER TABLE `customer`
ADD COLUMN `VertretungGewuenscht` TINYINT(4) NULL DEFAULT 1 COMMENT '' AFTER `AufenthaltsStatusValueListEntryOid`,
ADD COLUMN `VertretungGewuenscht` TINYINT(4) NULL DEFAULT 1 COMMENT '',
ADD COLUMN `AbWelchemKrankheitsTag` INT(10) NULL DEFAULT 0 COMMENT '' AFTER `VertretungGewuenscht`,
ADD COLUMN `VertretungDringendErforderlich` TINYINT(4) NULL DEFAULT 1 COMMENT '' AFTER `AbWelchenKrankheitsTag`;
ADD COLUMN `VertretungDringendErforderlich` TINYINT(4) NULL DEFAULT 1 COMMENT '' AFTER `AbWelchemKrankheitsTag`;
ALTER TABLE `arbeitszeiteintrag`
ADD COLUMN `CustomerOid` BIGINT(19) NULL DEFAULT NULL COMMENT '' AFTER `UhrzeitBis`;
ALTER TABLE `customerappcode`
ADD COLUMN `BenutzerName` VARCHAR(1024) NULL DEFAULT NULL COMMENT '' AFTER `IsChatActive`,
ADD COLUMN `Passwort` VARCHAR(1024) NULL DEFAULT NULL COMMENT '' AFTER `BenutzerName`;

View File

@@ -0,0 +1,2 @@
ALTER TABLE `applicationuser`
ADD COLUMN `PasswordHash` VARCHAR(1024) NULL DEFAULT NULL COMMENT '';

View File

@@ -0,0 +1,131 @@
ALTER TABLE `mandator`
ADD COLUMN `ApiKey` VARCHAR(256) NULL DEFAULT NULL COMMENT '' AFTER `IsMedicationAllowed`;
CREATE TABLE customerteam (
`Oid` bigint(19) NOT NULL AUTO_INCREMENT,
`Tid` int(10) DEFAULT NULL,
`Name` varchar(256) DEFAULT NULL,
`IsActive` tinyint(4) DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`Version` bigint(19) DEFAULT NULL,
`SystemEntryID` int(10) DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `token` (
`Oid` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '',
`Tid` INT(10) NULL COMMENT '',
`Notice` VARCHAR(1024) NULL COMMENT '',
`InsTs` DATETIME NULL COMMENT '',
`InsUser` VARCHAR(1024) NULL COMMENT '',
`Version` BIGINT(19) NULL COMMENT '',
`UdpUser` VARCHAR(256) NULL COMMENT '',
`isActive` TINYINT(4) NULL COMMENT '',
`SystemEntryID` INT(10) NULL COMMENT '',
`Beschreibung` VARCHAR(1024) NULL COMMENT '',
`Typ` TINYINT(4) NULL COMMENT '',
PRIMARY KEY (`Oid`) COMMENT '');
CREATE TABLE `customer2token` (
`Oid` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '',
`CustomerOid` BIGINT(19) NULL COMMENT '',
`TokenOid` BIGINT(19) NULL COMMENT '',
`Tid` INT(10) NULL COMMENT '',
`Notice` VARCHAR(1024) NULL COMMENT '',
`InsTs` DATETIME NULL COMMENT '',
`InsUser` VARCHAR(1024) NULL COMMENT '',
`Version` BIGINT(19) NULL COMMENT '',
`UdpUser` VARCHAR(256) NULL COMMENT '',
`isActive` TINYINT(4) NULL COMMENT '',
`SystemEntryID` INT(10) NULL COMMENT '',
PRIMARY KEY (`Oid`) COMMENT '');
CREATE TABLE `employee2token` (
`Oid` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '',
`EmployeeOid` BIGINT(19) NULL COMMENT '',
`TokenOid` BIGINT(19) NULL COMMENT '',
`Tid` INT(10) NULL COMMENT '',
`Notice` VARCHAR(1024) NULL COMMENT '',
`InsTs` DATETIME NULL COMMENT '',
`InsUser` VARCHAR(1024) NULL COMMENT '',
`Version` BIGINT(19) NULL COMMENT '',
`UdpUser` VARCHAR(256) NULL COMMENT '',
`isActive` TINYINT(4) NULL COMMENT '',
`SystemEntryID` INT(10) NULL COMMENT '',
PRIMARY KEY (`Oid`) COMMENT '');
ALTER TABLE `servicerecord`
ADD COLUMN `RTFNotice1` MEDIUMTEXT NULL DEFAULT NULL COMMENT '' AFTER `ServiceRecordFormat`,
ADD COLUMN `RTFNotice2` MEDIUMTEXT NULL DEFAULT NULL COMMENT '' AFTER `RTFNotice1`,
ADD COLUMN `RTFNotice3` MEDIUMTEXT NULL DEFAULT NULL COMMENT '' AFTER `RTFNotice2`,
ADD COLUMN `RTFNotice4` MEDIUMTEXT NULL DEFAULT NULL COMMENT '' AFTER `RTFNotice3`,
ADD COLUMN `RTFNotice5` MEDIUMTEXT NULL DEFAULT NULL COMMENT '' AFTER `RTFNotice4`;
CREATE TABLE `quittierungscheck` (
`Oid` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '',
`EmployeeOid` BIGINT(19) NULL COMMENT '',
`CustomerOid` BIGINT(19) NULL COMMENT '',
`Tid` INT(10) NULL COMMENT '',
`Notice` VARCHAR(1024) NULL COMMENT '',
`InsTs` DATETIME NULL COMMENT '',
`InsUser` VARCHAR(1024) NULL COMMENT '',
`Version` BIGINT(19) NULL COMMENT '',
`UdpUser` VARCHAR(256) NULL COMMENT '',
`isActive` TINYINT(4) NULL COMMENT '',
`SystemEntryID` INT(10) NULL COMMENT '',
`Monat` DATETIME NULL COMMENT '',
`QuittierungsbelegGedruckt` TINYINT(4) NULL COMMENT '',
`QuittierungsbelegUnterschrieben` TINYINT(4) NULL COMMENT '',
PRIMARY KEY (`Oid`) COMMENT '');
ALTER TABLE `quittierungscheck`
ADD COLUMN `QuittierungsbelegGedrucktAm` DATETIME NULL DEFAULT NULL COMMENT '' AFTER `QuittierungsbelegUnterschrieben`;
ALTER TABLE `quittierungscheck`
DROP COLUMN `EmployeeOid`,
ADD COLUMN `QuittierungsbelegUnterschriebenVon`
BIGINT(19) NULL DEFAULT NULL COMMENT '' AFTER `QuittierungsbelegGedrucktAm`,
ADD COLUMN `QuittierungsbelegGedrucktVon`
BIGINT(19) NULL DEFAULT NULL COMMENT '' AFTER `QuittierungsbelegUnterschriebenVon`;

View File

@@ -8,180 +8,242 @@ using BeWo.Service.Plugins;
using BeWo.Service.ServiceImplementations;
using BS.Shared.Core;
using BS.Shared;
using BS.Shared.Extensions;
using BS.Shared.Services;
namespace BeWo.Report.ReportObjects
{
public class AuslastungBerechnung
{
public class AuslastungBerechnung
{
private Dictionary<String, MitarbeiterauslastungRO.SupportConceptDetail> betreuungDict;
public AuslastungBerechnung()
{
{
betreuungDict = new Dictionary<String, MitarbeiterauslastungRO.SupportConceptDetail>();
}
}
public virtual void CreateReport(MitarbeiterauslastungRO ro)
{
CreateEmployeeDetails(ro);
public virtual void CreateReport(MitarbeiterauslastungRO ro)
{
CreateEmployeeDetails(ro);
CreateEmployeeTotals(ro);
CreateEmployeeTotals(ro);
CreateTeamDetails(ro);
CreateTeamDetails(ro);
CreateTotals(ro);
}
CreateTotals(ro);
private void CreateEmployeeTotals(MitarbeiterauslastungRO ro)
{
foreach (var empDetail in ro.EmployeeDetailList)
{
foreach (var scd in empDetail.SupportConceptDetailList)
{
scd.DirectIst /= 60;
scd.MittelbarIst /= 60;
empDetail.DirectIst += scd.DirectIst;
empDetail.MittelbarIst += scd.MittelbarIst;
empDetail.ApprovedHoursPerWeek += scd.ApprovedHoursPerWeek;
empDetail.ApprovedHoursPerWeekWithRateFactor += scd.ApprovedHoursPerWeekWithRateFactor;
}
}
}
public virtual void CreateTotals(MitarbeiterauslastungRO ro)
{
foreach (var empDetail in ro.EmployeeDetailList)
{
ro.DirectIst += empDetail.DirectIst;
ro.MittelbarIst += empDetail.MittelbarIst;
ro.ApprovedHoursPerWeek += empDetail.ApprovedHoursPerWeek;
ro.ApprovedHoursPerWeekWithRateFactor += empDetail.ApprovedHoursPerWeekWithRateFactor;
}
}
if (ro.ApprovedHoursPerWeek != 0)
ro.RelationIstSoll = (ro.DirectIst / ro.ApprovedHoursPerWeek) * 100m;
if (ro.DirectIst + ro.MittelbarIst != 0)
ro.RelationDirectToMittelbar = (ro.DirectIst / (ro.DirectIst + ro.MittelbarIst)) * 100;
}
public virtual void CreateTeamDetails(MitarbeiterauslastungRO ro)
{
foreach (var teamDetail in ro.TeamDetailList)
{
foreach (var empDetail in teamDetail.EmployeeDetailList)
{
teamDetail.DirectIst += empDetail.DirectIst;
teamDetail.MittelbarIst += empDetail.MittelbarIst;
teamDetail.ApprovedHoursPerWeek += empDetail.ApprovedHoursPerWeek;
teamDetail.ApprovedHoursPerWeekWithRateFactor += empDetail.ApprovedHoursPerWeekWithRateFactor;
foreach (var scd in empDetail.SupportConceptDetailList)
{
teamDetail.SupportConceptDetailList.Add(scd);
}
}
if (teamDetail.ApprovedHoursPerWeek != 0)
teamDetail.RelationIstSoll = (teamDetail.DirectIst / teamDetail.ApprovedHoursPerWeek) * 100m;
if (teamDetail.DirectIst + teamDetail.MittelbarIst != 0)
teamDetail.RelationDirectToMittelbar = (teamDetail.DirectIst / (teamDetail.DirectIst + teamDetail.MittelbarIst)) * 100;
teamDetail.SupportConceptDetailList.Sort((a, b) => (a.Customer.Person.LastName + ", " + a.Customer.Person.FirstName).CompareTo(b.Customer.Person.LastName + ", " + b.Customer.Person.FirstName));
}
}
public virtual void CreateEmployeeDetails(MitarbeiterauslastungRO ro)
{
foreach (var empDetail in ro.EmployeeDetailList)
{
var emp = empDetail.Employee;
Contract contract = emp.GetValidContractForDate(ro.ReportStartDate);
if (contract != null && contract.WeeklyFLS.HasValue)
{
empDetail.WeeklyTotalHoursByContract = contract.WeeklyTotalHours ?? 0;
empDetail.FLSTotalHoursByContract = contract.WeeklyFLS ?? 0;
}
var span = new DateTimeSpan();
span.StartDateTime = ro.ReportStartDate;
span.EndDateTime = ro.ReportEndDate;
//supportconcepts by SupportConceptApprovalPeriodOid
Dictionary<long, MitarbeiterauslastungRO.SupportConceptDetail> supportConceptByScapDict = new Dictionary<long, MitarbeiterauslastungRO.SupportConceptDetail>();
var anteile = CreateAuslastungAnteilig(emp);
foreach (var anteil in anteile)
private void CreateEmployeeTotals(MitarbeiterauslastungRO ro)
{
foreach (var empDetail in ro.EmployeeDetailList)
{
foreach (var scd in empDetail.SupportConceptDetailList)
{
var scap = anteil.SupportConceptApprovalPeriod;
var cb2sc = anteil.CostBearer2SupportConcept;
var sc = cb2sc.SupportConcept;
if (sc.IsActive != ActivationTypeId.Deleted && !supportConceptByScapDict.ContainsKey(scap.Oid.Value))
{
MitarbeiterauslastungRO.SupportConceptDetail scDc = GetOrCreateSupportConceptDetail(emp, sc.Customer, scap, cb2sc, ro.ReportStartDate, ro.ReportEndDate, anteil, false);
if (scDc != null)
{
supportConceptByScapDict.Add(scap.Oid.Value, scDc);
empDetail.SupportConceptDetailList.Add(scDc);
}
}
scd.DirectIst /= 60;
scd.MittelbarIst /= 60;
empDetail.DirectIst += scd.DirectIst;
empDetail.MittelbarIst += scd.MittelbarIst;
empDetail.ApprovedHoursPerWeek += scd.ApprovedHoursPerWeek;
empDetail.ApprovedHoursPerWeekWithRateFactor += scd.ApprovedHoursPerWeekWithRateFactor;
}
}
}
if (emp.Employee2CustomerList != null)
public virtual void CreateTotals(MitarbeiterauslastungRO ro)
{
foreach (var empDetail in ro.EmployeeDetailList)
{
ro.DirectIst += empDetail.DirectIst;
ro.MittelbarIst += empDetail.MittelbarIst;
ro.ApprovedHoursPerWeek += empDetail.ApprovedHoursPerWeek;
ro.ApprovedHoursPerWeekWithRateFactor += empDetail.ApprovedHoursPerWeekWithRateFactor;
}
if (ro.ApprovedHoursPerWeek != 0)
ro.RelationIstSoll = (ro.DirectIst / ro.ApprovedHoursPerWeek) * 100m;
if (ro.DirectIst + ro.MittelbarIst != 0)
ro.RelationDirectToMittelbar = (ro.DirectIst / (ro.DirectIst + ro.MittelbarIst)) * 100;
}
public virtual void CreateTeamDetails(MitarbeiterauslastungRO ro)
{
foreach (var teamDetail in ro.TeamDetailList)
{
foreach (var empDetail in teamDetail.EmployeeDetailList)
{
foreach (Employee2Customer e2c in emp.Employee2CustomerList)
teamDetail.DirectIst += empDetail.DirectIst;
teamDetail.MittelbarIst += empDetail.MittelbarIst;
teamDetail.ApprovedHoursPerWeek += empDetail.ApprovedHoursPerWeek;
teamDetail.ApprovedHoursPerWeekWithRateFactor += empDetail.ApprovedHoursPerWeekWithRateFactor;
foreach (var scd in empDetail.SupportConceptDetailList)
{
bool isMainAttendant = false;
if (e2c.ValueList.Count > 0)
teamDetail.SupportConceptDetailList.Add(scd);
}
}
if (teamDetail.ApprovedHoursPerWeek != 0)
teamDetail.RelationIstSoll = (teamDetail.DirectIst / teamDetail.ApprovedHoursPerWeek) * 100m;
if (teamDetail.DirectIst + teamDetail.MittelbarIst != 0)
teamDetail.RelationDirectToMittelbar = (teamDetail.DirectIst / (teamDetail.DirectIst + teamDetail.MittelbarIst)) * 100;
teamDetail.SupportConceptDetailList.Sort((a, b) => (a.Customer.Person.LastName + ", " + a.Customer.Person.FirstName).CompareTo(b.Customer.Person.LastName + ", " + b.Customer.Person.FirstName));
}
}
public virtual void CreateEmployeeDetails(MitarbeiterauslastungRO ro)
{
foreach (var empDetail in ro.EmployeeDetailList)
{
if (empDetail.Employee != null)
{
CreateSupportConceptsForEmployee(ro, empDetail);
}
else if (empDetail.Customer != null)
{
CreateSupportConceptsForCustomer(ro, empDetail);
}
CreateServiceRecordDetails(ro, empDetail);
empDetail.SupportConceptDetailList.Sort((a, b) => (a.Customer.Person.LastName + ", " + a.Customer.Person.FirstName).CompareTo(b.Customer.Person.LastName + ", " + b.Customer.Person.FirstName));
}
}
private void CreateSupportConceptsForCustomer(MitarbeiterauslastungRO ro, MitarbeiterauslastungRO.EmployeeDetail empDetail)
{
var span = new DateTimeSpan();
span.StartDateTime = ro.ReportStartDate;
span.EndDateTime = ro.ReportEndDate;
//supportconcepts by SupportConceptApprovalPeriodOid
Dictionary<long, MitarbeiterauslastungRO.SupportConceptDetail> supportConceptByScapDict = new Dictionary<long, MitarbeiterauslastungRO.SupportConceptDetail>();
foreach (var sc in empDetail.Customer.SupportConcepts)
{
if (sc.IsActive != ActivationTypeId.Deleted && sc.CostBearer2SupportConceptList != null)
{
foreach (CostBearer2SupportConcept c2s in sc.CostBearer2SupportConceptList)
{
foreach (var scap in c2s.ApprovalPeriodList)
{
SystemEntryID? id = e2c.ValueList[0].Entry.SystemEntryID;
if (id.HasValue && id.Value == SystemEntryID.EmployeeRoleMainAttendant)
isMainAttendant = true;
}
if (isMainAttendant && e2c.Customer != null)
{
if (e2c.Customer.IsActive != ActivationTypeId.Deleted && e2c.Customer.SupportConcepts != null)
//scDC.ApprovedHoursPerWeek -= stundenVerbraucht;
//scDC.ApprovedHoursPerWeekWithRateFactor -= stundenVerbraucht;
if (!supportConceptByScapDict.ContainsKey(scap.Oid.Value))
{
foreach (SupportConcept sc in e2c.Customer.SupportConcepts)
MitarbeiterauslastungRO.SupportConceptDetail scDc =
GetOrCreateSupportConceptDetail(null, sc.Customer, scap, c2s,
ro.ReportStartDate, ro.ReportEndDate, null, false);
if (scDc != null &&
(scDc.ApprovedHoursPerWeek > 0 ||
scDc.ApprovedHoursPerWeekWithRateFactor > 0))
{
if (sc.IsActive != ActivationTypeId.Deleted && sc.CostBearer2SupportConceptList != null)
empDetail.SupportConceptDetailList.Add(scDc);
}
}
}
}
}
}
}
private void CreateSupportConceptsForEmployee(MitarbeiterauslastungRO ro, MitarbeiterauslastungRO.EmployeeDetail empDetail)
{
var emp = empDetail.Employee;
Contract contract = emp.GetValidContractForDate(ro.ReportStartDate);
if (contract != null && contract.WeeklyFLS.HasValue)
{
empDetail.WeeklyTotalHoursByContract = contract.WeeklyTotalHours ?? 0;
empDetail.FLSTotalHoursByContract = contract.WeeklyFLS ?? 0;
}
var span = new DateTimeSpan();
span.StartDateTime = ro.ReportStartDate;
span.EndDateTime = ro.ReportEndDate;
//supportconcepts by SupportConceptApprovalPeriodOid
Dictionary<long, MitarbeiterauslastungRO.SupportConceptDetail> supportConceptByScapDict = new Dictionary<long, MitarbeiterauslastungRO.SupportConceptDetail>();
var anteile = CreateAuslastungAnteilig(emp);
foreach (var anteil in anteile)
{
var scap = anteil.SupportConceptApprovalPeriod;
var cb2sc = anteil.CostBearer2SupportConcept;
var sc = cb2sc.SupportConcept;
if (sc.IsActive != ActivationTypeId.Deleted && !supportConceptByScapDict.ContainsKey(scap.Oid.Value))
{
MitarbeiterauslastungRO.SupportConceptDetail scDc = GetOrCreateSupportConceptDetail(emp, sc.Customer, scap, cb2sc, ro.ReportStartDate, ro.ReportEndDate, anteil, false);
if (scDc != null)
{
supportConceptByScapDict.Add(scap.Oid.Value, scDc);
empDetail.SupportConceptDetailList.Add(scDc);
}
}
}
if (emp.Employee2CustomerList != null)
{
foreach (Employee2Customer e2c in emp.Employee2CustomerList)
{
bool isMainAttendant = false;
if (e2c.ValueList.Count > 0)
{
SystemEntryID? id = e2c.ValueList[0].Entry.SystemEntryID;
if (id.HasValue && id.Value == SystemEntryID.EmployeeRoleMainAttendant)
isMainAttendant = true;
}
if (isMainAttendant && e2c.Customer != null)
{
if (e2c.Customer.IsActive != ActivationTypeId.Deleted && e2c.Customer.SupportConcepts != null)
{
foreach (SupportConcept sc in e2c.Customer.SupportConcepts)
{
if (sc.IsActive != ActivationTypeId.Deleted && sc.CostBearer2SupportConceptList != null)
{
foreach (CostBearer2SupportConcept c2s in sc.CostBearer2SupportConceptList)
{
foreach (CostBearer2SupportConcept c2s in sc.CostBearer2SupportConceptList)
foreach (var scap in c2s.ApprovalPeriodList)
{
foreach (var scap in c2s.ApprovalPeriodList)
//scDC.ApprovedHoursPerWeek -= stundenVerbraucht;
//scDC.ApprovedHoursPerWeekWithRateFactor -= stundenVerbraucht;
if (!supportConceptByScapDict.ContainsKey(scap.Oid.Value))
{
//scDC.ApprovedHoursPerWeek -= stundenVerbraucht;
//scDC.ApprovedHoursPerWeekWithRateFactor -= stundenVerbraucht;
if (!supportConceptByScapDict.ContainsKey(scap.Oid.Value))
MitarbeiterauslastungRO.SupportConceptDetail scDc = GetOrCreateSupportConceptDetail(emp, e2c.Customer, scap, c2s, ro.ReportStartDate, ro.ReportEndDate, null, true);
if (scDc != null && (scDc.ApprovedHoursPerWeek > 0 || scDc.ApprovedHoursPerWeekWithRateFactor > 0))
{
MitarbeiterauslastungRO.SupportConceptDetail scDc = GetOrCreateSupportConceptDetail(emp, e2c.Customer, scap, c2s, ro.ReportStartDate, ro.ReportEndDate, null, true);
if (scDc != null && (scDc.ApprovedHoursPerWeek > 0 || scDc.ApprovedHoursPerWeekWithRateFactor > 0))
{
empDetail.SupportConceptDetailList.Add(scDc);
}
empDetail.SupportConceptDetailList.Add(scDc);
}
}
}
@@ -191,90 +253,104 @@ namespace BeWo.Report.ReportObjects
}
}
}
CreateServiceRecordDetails(ro, empDetail);
}
empDetail.SupportConceptDetailList.Sort((a, b) => (a.Customer.Person.LastName + ", " + a.Customer.Person.FirstName).CompareTo(b.Customer.Person.LastName + ", " + b.Customer.Person.FirstName));
}
}
}
private MitarbeiterauslastungRO.SupportConceptDetail GetOrCreateSupportConceptDetail(Employee emp, Customer customer, SupportConceptApprovalPeriod scap, CostBearer2SupportConcept cb2sc, DateTime start, DateTime ende, AuslastungBerechnungHelper anteil, bool ausHauptbetreuung)
{
bool inTimeRange = true;
var realEnd = scap.EndDate;
private MitarbeiterauslastungRO.SupportConceptDetail GetOrCreateSupportConceptDetail(Employee emp, Customer customer, SupportConceptApprovalPeriod scap, CostBearer2SupportConcept cb2sc, DateTime start, DateTime ende, AuslastungBerechnungHelper anteil, bool ausHauptbetreuung)
{
bool inTimeRange = true;
var realEnd = scap.EndDate;
//Prüfe ob vorher abgemeldet
if (customer.TerminationDate.HasValue &&
customer.TerminationDate.Value < realEnd)
{
realEnd = customer.TerminationDate.Value;
//Prüfe ob vorher abgemeldet
if (customer.TerminationDate.HasValue &&
customer.TerminationDate.Value < realEnd)
{
realEnd = customer.TerminationDate.Value;
}
}
if (scap.StartDate.HasValue && realEnd.HasValue)
{
if (scap.StartDate >= ende || realEnd < start)
{
inTimeRange = false;
}
}
if (scap.StartDate.HasValue && realEnd.HasValue)
{
if (scap.StartDate >= ende || realEnd < start)
{
inTimeRange = false;
}
}
if (inTimeRange)
{
String key = "";
if (inTimeRange)
{
String key = String.Format("{0}_{1}", emp.Oid.Value, scap.Oid.Value);
if (betreuungDict.ContainsKey(key))
{
return betreuungDict[key];
}
var scDC = new MitarbeiterauslastungRO.SupportConceptDetail();
if (emp != null)
{
key = String.Format("e{0}_{1}", emp.Oid.Value, scap.Oid.Value);
}
else
{
if (customer.Oid.Value == 277)
{
int test = 0;
}
key = String.Format("c{0}_{1}", customer.Oid.Value, scap.Oid.Value);
}
if (betreuungDict.ContainsKey(key))
{
return betreuungDict[key];
}
var scDC = new MitarbeiterauslastungRO.SupportConceptDetail();
scDC.Customer = customer;
scDC.SupportConceptApprovalPeriod = scap;
scDC.CostBearer2SupportConcept = cb2sc;
scDC.Customer = customer;
scDC.SupportConceptApprovalPeriod = scap;
scDC.CostBearer2SupportConcept = cb2sc;
DateTime end = ende;
if (realEnd.HasValue && realEnd.Value < end)
{
end = realEnd.Value;
}
CalculateSoll(scDC, end);
DateTime end = ende;
if (realEnd.HasValue && realEnd.Value < end)
{
end = realEnd.Value;
}
CalculateSoll(scDC, end);
if (ausHauptbetreuung)
{
var anteileAndererEmps = CreateAuslastungAnteilig(scap);
if (ausHauptbetreuung)
{
var anteileAndererEmps = CreateAuslastungAnteilig(scap);
foreach (var ant in anteileAndererEmps)
{
var scDcAnteil =
GetOrCreateSupportConceptDetail(ant.Employee, customer, scap, cb2sc, start, ende, ant, false);
foreach (var ant in anteileAndererEmps)
{
var scDcAnteil =
GetOrCreateSupportConceptDetail(ant.Employee, customer, scap, cb2sc, start, ende, ant, false);
if (scDcAnteil != null)
{
scDC.ApprovedHoursPerWeek -= scDcAnteil.ApprovedHoursPerWeek;
scDC.ApprovedHoursPerWeekWithRateFactor -= scDcAnteil.ApprovedHoursPerWeekWithRateFactor;
if (scDcAnteil != null)
{
scDC.ApprovedHoursPerWeek -= scDcAnteil.ApprovedHoursPerWeek;
scDC.ApprovedHoursPerWeekWithRateFactor -= scDcAnteil.ApprovedHoursPerWeekWithRateFactor;
}
}
}
}
else
{
ApplyBetreuungsschluessel(scDC, anteil);
{
ApplyBetreuungsschluessel(scDC, anteil);
}
betreuungDict.Add(key, scDC);
if (betreuungDict.ContainsKey(key))
{
int test = 0;
}
else
{
betreuungDict.Add(key, scDC);
}
return scDC;
}
}
return null;
}
return null;
}
public virtual void ApplyBetreuungsschluessel(MitarbeiterauslastungRO.SupportConceptDetail scDc, AuslastungBerechnungHelper anteil)
public virtual void ApplyBetreuungsschluessel(MitarbeiterauslastungRO.SupportConceptDetail scDc, AuslastungBerechnungHelper anteil)
{
if (anteil != null)
{
@@ -300,112 +376,112 @@ namespace BeWo.Report.ReportObjects
}
}
public virtual IList<AuslastungBerechnungHelper> CreateAuslastungAnteilig(Employee emp)
{
var anteile = new List<AuslastungBerechnungHelper>();
public virtual IList<AuslastungBerechnungHelper> CreateAuslastungAnteilig(Employee emp)
{
var anteile = new List<AuslastungBerechnungHelper>();
var sp2eList = DAOFactory.SearchDAO.FindSupportConceptApprovalPeriod2Employees(emp);
foreach (var sp2e in sp2eList)
{
var helper = new AuslastungBerechnungHelper();
foreach (var sp2e in sp2eList)
{
var helper = new AuslastungBerechnungHelper();
helper.SupportConceptApprovalPeriod = DAOFactory.GenericDAO.Unproxy(sp2e.SupportConceptApprovalPeriod);
helper.CostBearer2SupportConcept = DAOFactory.GenericDAO.Unproxy(helper.SupportConceptApprovalPeriod.CostBearer2SupportConcept);
helper.AnteilAnBetreuung = sp2e.Betreuungsschluessel;
helper.CostBearer2SupportConcept = DAOFactory.GenericDAO.Unproxy(helper.SupportConceptApprovalPeriod.CostBearer2SupportConcept);
helper.AnteilAnBetreuung = sp2e.Betreuungsschluessel;
helper.IsBetreuungsschluesselAbsolut = sp2e.IsAbsolut;
anteile.Add(helper);
}
}
return anteile;
}
return anteile;
}
public virtual IList<AuslastungBerechnungHelper> CreateAuslastungAnteilig(SupportConceptApprovalPeriod scap)
{
var anteile = new List<AuslastungBerechnungHelper>();
public virtual IList<AuslastungBerechnungHelper> CreateAuslastungAnteilig(SupportConceptApprovalPeriod scap)
{
var anteile = new List<AuslastungBerechnungHelper>();
var sp2eList = DAOFactory.SearchDAO.FindSupportConceptApprovalPeriod2Employees(scap);
var sp2eList = DAOFactory.SearchDAO.FindSupportConceptApprovalPeriod2Employees(scap);
foreach (var sp2e in sp2eList)
{
var helper = new AuslastungBerechnungHelper();
foreach (var sp2e in sp2eList)
{
var helper = new AuslastungBerechnungHelper();
helper.Employee = DAOFactory.GenericDAO.Unproxy(sp2e.Employee);
helper.SupportConceptApprovalPeriod = DAOFactory.GenericDAO.Unproxy(sp2e.SupportConceptApprovalPeriod);
helper.CostBearer2SupportConcept = DAOFactory.GenericDAO.Unproxy(helper.SupportConceptApprovalPeriod.CostBearer2SupportConcept);
helper.AnteilAnBetreuung = sp2e.Betreuungsschluessel;
helper.IsBetreuungsschluesselAbsolut = sp2e.IsAbsolut;
helper.Employee = DAOFactory.GenericDAO.Unproxy(sp2e.Employee);
helper.SupportConceptApprovalPeriod = DAOFactory.GenericDAO.Unproxy(sp2e.SupportConceptApprovalPeriod);
helper.CostBearer2SupportConcept = DAOFactory.GenericDAO.Unproxy(helper.SupportConceptApprovalPeriod.CostBearer2SupportConcept);
helper.AnteilAnBetreuung = sp2e.Betreuungsschluessel;
helper.IsBetreuungsschluesselAbsolut = sp2e.IsAbsolut;
anteile.Add(helper);
}
}
return anteile;
}
return anteile;
}
private void CreateServiceRecordDetails(MitarbeiterauslastungRO ro, MitarbeiterauslastungRO.EmployeeDetail empDetail)
{
foreach (var scd in empDetail.SupportConceptDetailList)
{
if (scd.CostBearer2SupportConcept != null)
{
//var records = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDays(scd.CostBearer2SupportConcept.Oid.Value, null);
//Dictionary<long, bool> serviceRecordsProcessed = new Dictionary<long, bool>();
{
foreach (var scd in empDetail.SupportConceptDetailList)
{
if (scd.CostBearer2SupportConcept != null)
{
//var records = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDays(scd.CostBearer2SupportConcept.Oid.Value, null);
//Dictionary<long, bool> serviceRecordsProcessed = new Dictionary<long, bool>();
////Dictionary<long, ServiceRecord> groupBookingDict = new Dictionary<long, ServiceRecord>();
//foreach (ServiceRecord sr in records)
//{
// if (!serviceRecordsProcessed.ContainsKey(sr.Oid.Value) && sr.Start.Value < ro.ReportEndDate)
// {
// //if (sr.GroupOid != null)
// //{
// // groupBookingDict.Add(sr.GroupOid.Value, sr);
// //}
// AddServiceRecord(scd, sr);
// serviceRecordsProcessed.Add(sr.Oid.Value, true);
// }
//}
}
}
////Dictionary<long, ServiceRecord> groupBookingDict = new Dictionary<long, ServiceRecord>();
//foreach (ServiceRecord sr in records)
//{
// if (!serviceRecordsProcessed.ContainsKey(sr.Oid.Value) && sr.Start.Value < ro.ReportEndDate)
// {
//var emprecords = DAOFactory.SearchDAO.FindEmployeeServiceRecordsWithoutCustomer(empDetail.Employee.Oid.Value);
//foreach (var sr in emprecords)
//{
// empDetail.MinutesOfOtherActivities += sr.RoundedDuration;
//}
}
// //if (sr.GroupOid != null)
// //{
// // groupBookingDict.Add(sr.GroupOid.Value, sr);
// //}
// AddServiceRecord(scd, sr);
public virtual void AddServiceRecord(MitarbeiterauslastungRO.SupportConceptDetail scDC, ServiceRecord sr)
{
var minutes = GetBillableDurationInMinutes(sr);
// serviceRecordsProcessed.Add(sr.Oid.Value, true);
// }
//}
}
}
if (sr.ServiceDescription != null &&
sr.ServiceDescription.ServiceCategory != null &&
sr.ServiceDescription.ServiceCategory.IsBillable)
scDC.DirectIst += minutes;
else
scDC.MittelbarIst += minutes;
//var emprecords = DAOFactory.SearchDAO.FindEmployeeServiceRecordsWithoutCustomer(empDetail.Employee.Oid.Value);
//foreach (var sr in emprecords)
//{
// empDetail.MinutesOfOtherActivities += sr.RoundedDuration;
//}
}
}
public virtual void AddServiceRecord(MitarbeiterauslastungRO.SupportConceptDetail scDC, ServiceRecord sr)
{
var minutes = GetBillableDurationInMinutes(sr);
public virtual decimal GetBillableDurationInMinutes(ServiceRecord record)
{
decimal rdMinutes = record.RoundedDuration;
if (record.ServiceDescription.ServiceCategory.Percentage != 100)
{
rdMinutes = (rdMinutes * record.ServiceDescription.ServiceCategory.Percentage) / 100;
}
if (record.GroupEmployeeCount.HasValue)
rdMinutes /= record.GroupEmployeeCount.Value;
if (sr.ServiceDescription != null &&
sr.ServiceDescription.ServiceCategory != null &&
sr.ServiceDescription.ServiceCategory.IsBillable)
scDC.DirectIst += minutes;
else
scDC.MittelbarIst += minutes;
return rdMinutes;
}
}
public virtual void CalculateSoll(MitarbeiterauslastungRO.SupportConceptDetail scDC, DateTime date)
{
public virtual decimal GetBillableDurationInMinutes(ServiceRecord record)
{
decimal rdMinutes = record.RoundedDuration;
if (record.ServiceDescription.ServiceCategory.Percentage != 100)
{
rdMinutes = (rdMinutes * record.ServiceDescription.ServiceCategory.Percentage) / 100;
}
if (record.GroupEmployeeCount.HasValue)
rdMinutes /= record.GroupEmployeeCount.Value;
return rdMinutes;
}
public virtual void CalculateSoll(MitarbeiterauslastungRO.SupportConceptDetail scDC, DateTime date)
{
if (scDC.CostBearer2SupportConcept != null && scDC.SupportConceptApprovalPeriod != null)
{
var calc = PluginLoader.FindClass<Calculations>(scDC.CostBearer2SupportConcept.CostBearer.ID) ?? Calculations.GetInstance(scDC.CostBearer2SupportConcept.CostBearer.ID);
@@ -424,50 +500,50 @@ namespace BeWo.Report.ReportObjects
}
else if (scDC.CostBearer2SupportConcept != null && scDC.SupportConceptApprovalPeriod == null)
{
var calc = PluginLoader.FindClass<Calculations>(scDC.CostBearer2SupportConcept.CostBearer.ID) ?? Calculations.GetInstance(scDC.CostBearer2SupportConcept.CostBearer.ID);
var cb2scDc =
MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(scDC.CostBearer2SupportConcept);
scDC.ApprovedHoursPerWeek = calc.GetApprovedHoursPerWeek(cb2scDc, date) ?? 0m;
scDC.ApprovedHoursPerWeekWithRateFactor = calc.GetApprovedHoursPerWeek(cb2scDc, date, false) ?? 0m;
{
var calc = PluginLoader.FindClass<Calculations>(scDC.CostBearer2SupportConcept.CostBearer.ID) ?? Calculations.GetInstance(scDC.CostBearer2SupportConcept.CostBearer.ID);
var cb2scDc =
MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(scDC.CostBearer2SupportConcept);
scDC.StartDate = scDC.CostBearer2SupportConcept.StartDate;
scDC.EndDate = scDC.CostBearer2SupportConcept.EndDate;
scDC.WeekCountUntilNow = calc.GetDurationInWeeksTillNow(cb2scDc, date) ?? 0;
}
scDC.ApprovedHoursPerWeek = calc.GetApprovedHoursPerWeek(cb2scDc, date) ?? 0m;
scDC.ApprovedHoursPerWeekWithRateFactor = calc.GetApprovedHoursPerWeek(cb2scDc, date, false) ?? 0m;
}
scDC.StartDate = scDC.CostBearer2SupportConcept.StartDate;
scDC.EndDate = scDC.CostBearer2SupportConcept.EndDate;
scDC.WeekCountUntilNow = calc.GetDurationInWeeksTillNow(cb2scDc, date) ?? 0;
}
}
public Contract GetNextValidContractForDate(DateTime dt, Employee emp)
{
Contract contractNextToStartDate = emp.GetValidContractForDate(dt);
public Contract GetNextValidContractForDate(DateTime dt, Employee emp)
{
Contract contractNextToStartDate = emp.GetValidContractForDate(dt);
if (contractNextToStartDate == null)
{
DateTime minDate = DateTime.MinValue;
DateTime maxDate = DateTime.MaxValue;
if (contractNextToStartDate == null)
{
DateTime minDate = DateTime.MinValue;
DateTime maxDate = DateTime.MaxValue;
foreach (var item in emp.Contracts)
{
if (item.EntryDate.HasValue && item.EntryDate.Value >= dt)
{
if (contractNextToStartDate == null || item.EntryDate.Value < contractNextToStartDate.EntryDate.Value)
{
contractNextToStartDate = item;
}
}
foreach (var item in emp.Contracts)
{
if (item.EntryDate.HasValue && item.EntryDate.Value >= dt)
{
if (contractNextToStartDate == null || item.EntryDate.Value < contractNextToStartDate.EntryDate.Value)
{
contractNextToStartDate = item;
}
}
}
}
return contractNextToStartDate;
}
}
}
return contractNextToStartDate;
}
}
}
public class AuslastungBerechnungHelper
{
@@ -476,6 +552,6 @@ namespace BeWo.Report.ReportObjects
public CostBearer2SupportConcept CostBearer2SupportConcept { get; set; }
public decimal AnteilAnBetreuung { get; set; }
public bool IsBetreuungsschluesselAbsolut { get; set; }
}
}

View File

@@ -6,78 +6,76 @@ using BS.Shared.Extensions;
namespace BeWo.Report.ReportObjects
{
public class MitarbeiterauslastungRO : AbstractBeWoReportObject<MitarbeiterauslastungRO>
{
private List<EmployeeDetail> employeeDetailList = new List<EmployeeDetail>();
private List<TeamDetail> teamDetailList = new List<TeamDetail>();
public class MitarbeiterauslastungRO : AbstractBeWoReportObject<MitarbeiterauslastungRO>
{
private List<EmployeeDetail> employeeDetailList = new List<EmployeeDetail>();
private List<TeamDetail> teamDetailList = new List<TeamDetail>();
public DateTime ReportStartDate { get; set; }
public DateTime ReportEndDate { get; set; }
public DateTime ReportStartDate { get; set; }
public DateTime ReportEndDate { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal DirectIst { get; set; }
public decimal DirectIst { get; set; }
public decimal MittelbarIst { get; set; }
public decimal MittelbarIst { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal RelationIstSoll { get; set; }
public decimal RelationIstSoll { get; set; }
public List<EmployeeDetail> EmployeeDetailList
{
get { return employeeDetailList; }
public List<EmployeeDetail> EmployeeDetailList
{
get { return employeeDetailList; }
set { employeeDetailList = value; }
}
set { employeeDetailList = value; }
}
public List<TeamDetail> TeamDetailList
{
get { return teamDetailList; }
public List<TeamDetail> TeamDetailList
{
get { return teamDetailList; }
set { teamDetailList = value; }
}
public static MitarbeiterauslastungRO Create(long? employeeOid, IList<long> teamOids, DateTime startDate, DateTime endDate)
{
Team team = null;
var ro = new MitarbeiterauslastungRO();
ro.ReportStartDate = startDate;
ro.ReportEndDate = endDate;
var teamOid2Details = new Dictionary<long, TeamDetail>();
set { teamDetailList = value; }
}
public static MitarbeiterauslastungRO Create(long? employeeOid, IList<long> teamOids, DateTime startDate, DateTime endDate)
{
var ro = new MitarbeiterauslastungRO();
ro.ReportStartDate = startDate;
ro.ReportEndDate = endDate;
var teamOid2Details = new Dictionary<long, TeamDetail>();
//Dictionary<String, bool> teamEmployeeDict = new Dictionary<string, bool>();
IList<Employee> employees = null;
if (employeeOid.HasValue)
{
var emp = DAOFactory.GenericDAO.GetByID<Employee>(employeeOid.Value);
employees = new List<Employee> {emp};
}
if (employeeOid.HasValue)
{
var emp = DAOFactory.GenericDAO.GetByID<Employee>(employeeOid.Value);
employees = new List<Employee> { emp };
}
else if (teamOids != null)
{
foreach (var teamOid in teamOids)
{
team = DAOFactory.GenericDAO.GetByID<Team>(teamOid);
var teamTemp = DAOFactory.GenericDAO.GetByID<Team>(teamOid);
var customers = DAOFactory.SearchDAO.FindCustomerOfTeam(teamOid);
if (customers.Count > 0)
{
TeamDetail td = null;
if (!teamOid2Details.ContainsKey(team.Oid.Value))
if (!teamOid2Details.ContainsKey(teamTemp.Oid.Value))
{
td = new TeamDetail();
td.TeamName = team.Name;
td.TeamLeader = team.Leader;
td.TeamName = teamTemp.Name;
td.TeamLeader = teamTemp.Leader;
ro.TeamDetailList.Add(td);
teamOid2Details.Add(team.Oid.Value, td);
teamOid2Details.Add(teamTemp.Oid.Value, td);
}
else
{
td = teamOid2Details[team.Oid.Value];
td = teamOid2Details[teamTemp.Oid.Value];
}
foreach (var c in customers)
@@ -86,122 +84,126 @@ namespace BeWo.Report.ReportObjects
ro.EmployeeDetailList.Add(empDetail);
td.EmployeeDetailList.Add(empDetail);
empDetail.Teams = new List<Team> { team };
empDetail.Teams = new List<Team> { teamTemp };
empDetail.Employee = null;
empDetail.LastName = null;
empDetail.FirstName = null;
empDetail.FullName = null;
empDetail.Customer = c;
empDetail.LastName = c.Person.LastName;
empDetail.FirstName = c.Person.FirstName;
empDetail.FullName = String.Format("{0}, {1}", empDetail.LastName, empDetail.FirstName);
}
}
else
{
if (employees == null)
{
employees = team.MemberList;
employees = teamTemp.MemberList;
}
else
{
employees.AddRange(team.MemberList);
team = null;
employees.AddRange(teamTemp.MemberList);
}
}
}
}
else
{
employees = DAOFactory.GenericDAO.GetAllActive<Employee>();
}
{
employees = DAOFactory.GenericDAO.GetAllActive<Employee>();
}
if (employees != null)
{
foreach (Employee emp in employees)
{
var empDetail = new EmployeeDetail();
ro.EmployeeDetailList.Add(empDetail);
if (employees != null)
{
foreach (Employee emp in employees)
{
var empDetail = new EmployeeDetail();
ro.EmployeeDetailList.Add(empDetail);
empDetail.Teams = team == null
? DAOFactory.SearchDAO.FindTeamsOfEmployee(emp.Oid.Value)
: new List<Team> { team };
empDetail.Employee = emp;
empDetail.LastName = emp.Person.LastName;
empDetail.FirstName = emp.Person.FirstName;
empDetail.FullName = String.Format("{0}, {1}", empDetail.LastName, empDetail.FirstName);
}
empDetail.Teams = DAOFactory.SearchDAO.FindTeamsOfEmployee(emp.Oid.Value);
empDetail.Employee = emp;
empDetail.LastName = emp.Person.LastName;
empDetail.FirstName = emp.Person.FirstName;
empDetail.FullName = String.Format("{0}, {1}", empDetail.LastName, empDetail.FirstName);
}
foreach (EmployeeDetail employee in ro.EmployeeDetailList)
{
if (employee.Teams.Count > 0)
{
foreach (Team t in employee.Teams)
{
TeamDetail td = null;
if (!teamOid2Details.ContainsKey(t.Oid.Value))
{
td = new TeamDetail();
td.TeamName = t.Name;
td.TeamLeader = t.Leader;
ro.TeamDetailList.Add(td);
teamOid2Details.Add(t.Oid.Value, td);
}
else
{
td = teamOid2Details[t.Oid.Value];
}
td.EmployeeDetailList.Add(employee);
}
}
}
}
foreach (EmployeeDetail employee in ro.EmployeeDetailList)
{
if (employee.Employee != null && employee.Teams.Count > 0)
{
foreach (Team t in employee.Teams)
{
TeamDetail td = null;
if (!teamOid2Details.ContainsKey(t.Oid.Value))
{
td = new TeamDetail();
td.TeamName = t.Name;
td.TeamLeader = t.Leader;
ro.TeamDetailList.Add(td);
teamOid2Details.Add(t.Oid.Value, td);
}
else
{
td = teamOid2Details[t.Oid.Value];
}
td.EmployeeDetailList.Add(employee);
}
}
}
}
ro.TeamDetailList.Sort((t1, t2) => t1.TeamName.CompareTo(t2.TeamName));
ro.EmployeeDetailList.Sort((e1, e2) => e1.FullName.CompareTo(e2.FullName));
return ro;
}
ro.EmployeeDetailList.Sort((e1, e2) => e1.FullName.CompareTo(e2.FullName));
return ro;
}
public class EmployeeDetail
{
private List<SupportConceptDetail> scDetailList = new List<SupportConceptDetail>();
public class EmployeeDetail
{
private List<SupportConceptDetail> scDetailList = new List<SupportConceptDetail>();
public IList<Team> Teams { get; set; }
public IList<Team> Teams { get; set; }
public Employee Employee { get; set; }
public Employee Employee { get; set; }
public string FirstName { get; set; }
public Customer Customer { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public string FullName { get; set; }
public string LastName { get; set; }
public bool HasContract { get; set; }
public string FullName { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public bool HasContract { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public decimal DirectIst { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal MittelbarIst { get; set; }
public decimal DirectIst { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal MittelbarIst { get; set; }
public decimal RelationIstSoll { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal MinutesOfOtherActivities { get; set; }
public decimal RelationIstSoll { get; set; }
public decimal WeeklyTotalHoursByContract { get; set; }
public decimal MinutesOfOtherActivities { get; set; }
public decimal FLSTotalHoursByContract { get; set; }
public decimal WeeklyTotalHoursByContract { get; set; }
public List<SupportConceptDetail> SupportConceptDetailList
{
get { return scDetailList; }
set { scDetailList = value; }
}
}
public decimal FLSTotalHoursByContract { get; set; }
public class SupportConceptDetail
{
public Customer Customer { get; set; }
public List<SupportConceptDetail> SupportConceptDetailList
{
get { return scDetailList; }
set { scDetailList = value; }
}
}
public class SupportConceptDetail
{
public Customer Customer { get; set; }
public String OrganisationName
{
@@ -217,78 +219,78 @@ namespace BeWo.Report.ReportObjects
}
public String CustomerFullName
{
get
{
if (Customer != null)
return String.Format("{0}, {1}", Customer.Person.LastName, Customer.Person.FirstName);
return null;
}
}
{
get
{
if (Customer != null)
return String.Format("{0}, {1}", Customer.Person.LastName, Customer.Person.FirstName);
return null;
}
}
public CostBearer2SupportConcept CostBearer2SupportConcept { get; set; }
public CostBearer2SupportConcept CostBearer2SupportConcept { get; set; }
public SupportConceptApprovalPeriod SupportConceptApprovalPeriod { get; set; }
public String TimeRangeString
{
get { return String.Format("{0:dd.MM.yyyy}-{1:dd.MM.yyyy}", StartDate, EndDate); }
}
{
get { return String.Format("{0:dd.MM.yyyy}-{1:dd.MM.yyyy}", StartDate, EndDate); }
}
public decimal ApprovedHoursPerWeek { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public DateTime? EndDate { get; set; }
public decimal DirectIst { get; set; }
public decimal DirectIst { get; set; }
public decimal MinutesSoll { get; set; }
public decimal MinutesSoll { get; set; }
public decimal MittelbarIst { get; set; }
public decimal MittelbarIst { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal RelationIstSoll { get; set; }
public decimal RelationIstSoll { get; set; }
public decimal WeekCountUntilNow { get; set; }
}
public decimal WeekCountUntilNow { get; set; }
}
public class TeamDetail
{
private List<EmployeeDetail> employeeDetailList = new List<EmployeeDetail>();
private List<SupportConceptDetail> scDetailList = new List<SupportConceptDetail>();
public class TeamDetail
{
private List<EmployeeDetail> employeeDetailList = new List<EmployeeDetail>();
private List<SupportConceptDetail> scDetailList = new List<SupportConceptDetail>();
public string TeamName { get; set; }
public string TeamName { get; set; }
public Employee TeamLeader { get; set; }
public Employee TeamLeader { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public decimal ApprovedHoursPerWeek { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal ApprovedHoursPerWeekWithRateFactor { get; set; }
public decimal DirectIst { get; set; }
public decimal DirectIst { get; set; }
public decimal MittelbarIst { get; set; }
public decimal MittelbarIst { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal RelationDirectToMittelbar { get; set; }
public decimal RelationIstSoll { get; set; }
public decimal RelationIstSoll { get; set; }
public List<EmployeeDetail> EmployeeDetailList
{
get { return employeeDetailList; }
set { employeeDetailList = value; }
}
public List<EmployeeDetail> EmployeeDetailList
{
get { return employeeDetailList; }
set { employeeDetailList = value; }
}
public List<SupportConceptDetail> SupportConceptDetailList
{
get { return scDetailList; }
set { scDetailList = value; }
}
}
}
public List<SupportConceptDetail> SupportConceptDetailList
{
get { return scDetailList; }
set { scDetailList = value; }
}
}
}
}

View File

@@ -69,6 +69,12 @@
<Compile Include="ServicesOverviewReport.Designer.cs">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</Compile>
<Compile Include="SettlementReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SettlementReport.Designer.cs">
<DependentUpon>SettlementReport.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\licenses.licx" />
@@ -76,12 +82,24 @@
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="SettlementReport.resx">
<DependentUpon>SettlementReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</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="..\..\Shared\Shared.csproj">
<Project>{2f50b83d-a3f0-4ec4-979a-3f9b7e3d8ed4}</Project>
<Name>Shared</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

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

View File

@@ -0,0 +1,987 @@
namespace BeWoGuen.Alt
{
partial class Spitzabrechnung
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <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(Spitzabrechnung));
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow9 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow10 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow11 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
this.rowErbrachteLeistung = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell22 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.RecipientPostCodeAndTown = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel_RecipientStreet = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel_RecipientDivision = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel_RecipientContactPerson = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow20 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow21 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell18 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow22 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell29 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow23 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow24 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.lblNotice = new DevExpress.XtraReports.UI.XRLabel();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.xrTable5 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow15 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable4 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow30 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell48 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow31 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell49 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell50 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow32 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell51 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow33 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell52 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell53 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow34 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell54 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell55 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow35 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell56 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow36 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.HeightF = 0F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel7});
this.ReportHeader.Font = new System.Drawing.Font("Verdana", 10F);
this.ReportHeader.HeightF = 200F;
this.ReportHeader.Name = "ReportHeader";
this.ReportHeader.StylePriority.UseFont = false;
//
// xrLabel8
//
this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate")});
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(367.0001F, 169F);
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(283F, 23F);
this.xrLabel8.StylePriority.UseTextAlignment = false;
this.xrLabel8.Text = "xrLabel8";
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
//
// xrTable1
//
this.xrTable1.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 375.3333F);
this.xrTable1.Name = "xrTable1";
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow9,
this.xrTableRow10,
this.xrTableRow11,
this.rowErbrachteLeistung});
this.xrTable1.SizeF = new System.Drawing.SizeF(650F, 68F);
this.xrTable1.StylePriority.UseBorderColor = false;
//
// xrTableRow9
//
this.xrTableRow9.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell19,
this.xrTableCell6});
this.xrTableRow9.Name = "xrTableRow9";
this.xrTableRow9.Weight = 0.085D;
//
// xrTableCell19
//
this.xrTableCell19.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell19.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell19.StylePriority.UseBorderColor = false;
this.xrTableCell19.StylePriority.UseBorders = false;
this.xrTableCell19.StylePriority.UseFont = false;
this.xrTableCell19.Text = "Bewilligte Fachleistungsstunden (FLS) gesamt:";
this.xrTableCell19.Weight = 0.78314100999098568D;
//
// xrTableCell6
//
this.xrTableCell6.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell6.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell6.StylePriority.UseBorderColor = false;
this.xrTableCell6.StylePriority.UseBorders = false;
this.xrTableCell6.StylePriority.UseFont = false;
this.xrTableCell6.StylePriority.UseTextAlignment = false;
this.xrTableCell6.Text = "[ApprovedFLS]";
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell6.Weight = 0.21685899000901443D;
//
// xrTableRow10
//
this.xrTableRow10.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell20,
this.xrTableCell7});
this.xrTableRow10.FormattingRules.Add(this.ruleRateFactorNull);
this.xrTableRow10.Name = "xrTableRow10";
this.xrTableRow10.Weight = 0.085D;
//
// xrTableCell20
//
this.xrTableCell20.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell20.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell20.FormattingRules.Add(this.ruleRateFactorNull);
this.xrTableCell20.Name = "xrTableCell20";
this.xrTableCell20.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell20.StylePriority.UseBorderColor = false;
this.xrTableCell20.StylePriority.UseBorders = false;
this.xrTableCell20.StylePriority.UseFont = false;
this.xrTableCell20.Text = "- zzgl. Faktor [RateFactorText2]:";
this.xrTableCell20.Weight = 0.78314100999098568D;
//
// ruleRateFactorNull
//
this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?";
//
//
//
this.ruleRateFactorNull.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.ruleRateFactorNull.Name = "ruleRateFactorNull";
//
// xrTableCell7
//
this.xrTableCell7.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell7.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell7.FormattingRules.Add(this.ruleRateFactorNull);
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell7.StylePriority.UseBorderColor = false;
this.xrTableCell7.StylePriority.UseBorders = false;
this.xrTableCell7.StylePriority.UseFont = false;
this.xrTableCell7.StylePriority.UseTextAlignment = false;
this.xrTableCell7.Text = "[ApprovedFLSWithFactor]";
this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell7.Weight = 0.21685899000901443D;
//
// xrTableRow11
//
this.xrTableRow11.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell21});
this.xrTableRow11.Name = "xrTableRow11";
this.xrTableRow11.Weight = 0.085D;
//
// xrTableCell21
//
this.xrTableCell21.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell21.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell21.Name = "xrTableCell21";
this.xrTableCell21.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell21.StylePriority.UseBorderColor = false;
this.xrTableCell21.StylePriority.UseBorders = false;
this.xrTableCell21.Weight = 1D;
//
// rowErbrachteLeistung
//
this.rowErbrachteLeistung.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell22});
this.rowErbrachteLeistung.Name = "rowErbrachteLeistung";
this.rowErbrachteLeistung.Weight = 0.085D;
//
// xrTableCell22
//
this.xrTableCell22.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell22.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell22.StylePriority.UseBorderColor = false;
this.xrTableCell22.StylePriority.UseBorders = false;
this.xrTableCell22.StylePriority.UseFont = false;
this.xrTableCell22.Text = "Erbrachte Leistungen:";
this.xrTableCell22.Weight = 1D;
//
// xrLabel6
//
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 300.3333F);
this.xrLabel6.Multiline = true;
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(642F, 67F);
this.xrLabel6.StylePriority.UseFont = false;
this.xrLabel6.Text = resources.GetString("xrLabel6.Text");
//
// xrLabel5
//
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 267.3333F);
this.xrLabel5.Name = "xrLabel5";
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel5.SizeF = new System.Drawing.SizeF(317F, 17F);
this.xrLabel5.StylePriority.UseFont = false;
this.xrLabel5.Text = "Sehr geehrte Damen und Herren,";
//
// xrLabel4
//
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
this.xrLabel4.CanShrink = true;
this.xrLabel4.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 225F);
this.xrLabel4.Multiline = true;
this.xrLabel4.Name = "xrLabel4";
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel4.SizeF = new System.Drawing.SizeF(650F, 17F);
this.xrLabel4.StylePriority.UseBackColor = false;
this.xrLabel4.StylePriority.UseFont = false;
this.xrLabel4.Text = "[CustomerReferenceNumberAndDate]";
this.xrLabel4.WordWrap = false;
//
// xrLabel3
//
this.xrLabel3.BackColor = System.Drawing.Color.Transparent;
this.xrLabel3.CanShrink = true;
this.xrLabel3.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 209F);
this.xrLabel3.Name = "xrLabel3";
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel3.SizeF = new System.Drawing.SizeF(650F, 16F);
this.xrLabel3.StylePriority.UseBackColor = false;
this.xrLabel3.StylePriority.UseFont = false;
this.xrLabel3.Text = "Abrechnung Betreuungsleistungen für [Salutation2] [CustomerName]";
this.xrLabel3.WordWrap = false;
//
// xrLabel2
//
this.xrLabel2.BackColor = System.Drawing.Color.Transparent;
this.xrLabel2.CanShrink = true;
this.xrLabel2.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 192F);
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(650F, 17F);
this.xrLabel2.StylePriority.UseBackColor = false;
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.Text = "Rechnung Nr. [InvoiceNumber]";
this.xrLabel2.WordWrap = false;
//
// RecipientPostCodeAndTown
//
this.RecipientPostCodeAndTown.CanShrink = true;
this.RecipientPostCodeAndTown.LocationFloat = new DevExpress.Utils.PointFloat(0F, 68.00003F);
this.RecipientPostCodeAndTown.Name = "RecipientPostCodeAndTown";
this.RecipientPostCodeAndTown.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.RecipientPostCodeAndTown.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
this.RecipientPostCodeAndTown.SizeF = new System.Drawing.SizeF(292F, 17F);
this.RecipientPostCodeAndTown.StylePriority.UseFont = false;
this.RecipientPostCodeAndTown.Text = "[RecipientPostCodeAndTown]";
//
// xrLabel_RecipientStreet
//
this.xrLabel_RecipientStreet.CanShrink = true;
this.xrLabel_RecipientStreet.LocationFloat = new DevExpress.Utils.PointFloat(0F, 51.00002F);
this.xrLabel_RecipientStreet.Name = "xrLabel_RecipientStreet";
this.xrLabel_RecipientStreet.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel_RecipientStreet.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
this.xrLabel_RecipientStreet.SizeF = new System.Drawing.SizeF(292F, 17F);
this.xrLabel_RecipientStreet.StylePriority.UseFont = false;
this.xrLabel_RecipientStreet.Text = "[RecipientStreet]";
//
// xrLabel_RecipientDivision
//
this.xrLabel_RecipientDivision.CanShrink = true;
this.xrLabel_RecipientDivision.LocationFloat = new DevExpress.Utils.PointFloat(0F, 34.00002F);
this.xrLabel_RecipientDivision.Name = "xrLabel_RecipientDivision";
this.xrLabel_RecipientDivision.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel_RecipientDivision.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
this.xrLabel_RecipientDivision.SizeF = new System.Drawing.SizeF(292F, 17F);
this.xrLabel_RecipientDivision.StylePriority.UseFont = false;
this.xrLabel_RecipientDivision.Text = "[RecipientDivision]";
//
// xrLabel_RecipientContactPerson
//
this.xrLabel_RecipientContactPerson.CanShrink = true;
this.xrLabel_RecipientContactPerson.LocationFloat = new DevExpress.Utils.PointFloat(0F, 17.00001F);
this.xrLabel_RecipientContactPerson.Name = "xrLabel_RecipientContactPerson";
this.xrLabel_RecipientContactPerson.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel_RecipientContactPerson.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
this.xrLabel_RecipientContactPerson.SizeF = new System.Drawing.SizeF(292F, 17F);
this.xrLabel_RecipientContactPerson.StylePriority.UseFont = false;
this.xrLabel_RecipientContactPerson.Text = "[RecipientContactPerson]";
//
// xrLabel1
//
this.xrLabel1.CanShrink = true;
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel1.ProcessNullValues = DevExpress.XtraReports.UI.ValueSuppressType.SuppressAndShrink;
this.xrLabel1.SizeF = new System.Drawing.SizeF(292F, 17F);
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.Text = "[RecipientOrganisation]";
//
// ReportFooter
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel10,
this.xrTable3,
this.xrLabel12,
this.xrLabel11,
this.lblNotice});
this.ReportFooter.Font = new System.Drawing.Font("Verdana", 10F);
this.ReportFooter.HeightF = 209.0001F;
this.ReportFooter.KeepTogether = true;
this.ReportFooter.Name = "ReportFooter";
this.ReportFooter.StylePriority.UseFont = false;
//
// xrLabel10
//
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(0F, 117F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(175F, 17F);
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.Text = "Mit freundlichen Grüßen";
//
// xrTable3
//
this.xrTable3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 33F);
this.xrTable3.Name = "xrTable3";
this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow20,
this.xrTableRow21,
this.xrTableRow22,
this.xrTableRow23,
this.xrTableRow24});
this.xrTable3.SizeF = new System.Drawing.SizeF(650F, 68F);
this.xrTable3.StylePriority.UseFont = false;
//
// xrTableRow20
//
this.xrTableRow20.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell16});
this.xrTableRow20.Name = "xrTableRow20";
this.xrTableRow20.Weight = 0.38095238095238093D;
//
// xrTableCell16
//
this.xrTableCell16.CanShrink = true;
this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Notice")});
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell16.StylePriority.UsePadding = false;
this.xrTableCell16.Text = "xrTableCell1";
this.xrTableCell16.Weight = 3D;
//
// xrTableRow21
//
this.xrTableRow21.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell18});
this.xrTableRow21.Name = "xrTableRow21";
this.xrTableRow21.Weight = 0.23809523809523808D;
//
// xrTableCell18
//
this.xrTableCell18.Name = "xrTableCell18";
this.xrTableCell18.Weight = 3D;
//
// xrTableRow22
//
this.xrTableRow22.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell29});
this.xrTableRow22.Name = "xrTableRow22";
this.xrTableRow22.Weight = 0.38095238095238088D;
//
// xrTableCell29
//
this.xrTableCell29.CanShrink = true;
this.xrTableCell29.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AbsenceTimes")});
this.xrTableCell29.Name = "xrTableCell29";
this.xrTableCell29.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell29.StylePriority.UsePadding = false;
this.xrTableCell29.Text = "xrTableCell4";
this.xrTableCell29.Weight = 3D;
//
// xrTableRow23
//
this.xrTableRow23.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell30});
this.xrTableRow23.Name = "xrTableRow23";
this.xrTableRow23.Weight = 0.23809523809523803D;
//
// xrTableCell30
//
this.xrTableCell30.Name = "xrTableCell30";
this.xrTableCell30.Weight = 3D;
//
// xrTableRow24
//
this.xrTableRow24.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell31});
this.xrTableRow24.Name = "xrTableRow24";
this.xrTableRow24.Weight = 0.38095238095238093D;
//
// xrTableCell31
//
this.xrTableCell31.CanShrink = true;
this.xrTableCell31.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "FinalSentence")});
this.xrTableCell31.Name = "xrTableCell31";
this.xrTableCell31.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell31.StylePriority.UsePadding = false;
this.xrTableCell31.Text = "xrTableCell8";
this.xrTableCell31.Weight = 3D;
//
// xrLabel12
//
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(0F, 192F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(225F, 17F);
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.Text = "[CreatorName]";
//
// xrLabel11
//
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(321.5415F, 192.0001F);
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel11.SizeF = new System.Drawing.SizeF(328.4583F, 16.99998F);
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.StylePriority.UseTextAlignment = false;
this.xrLabel11.Text = "Anlage: Quittierungsbelege";
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
//
// lblNotice
//
this.lblNotice.CanShrink = true;
this.lblNotice.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Italic);
this.lblNotice.LocationFloat = new DevExpress.Utils.PointFloat(0F, 7.999992F);
this.lblNotice.Name = "lblNotice";
this.lblNotice.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblNotice.SizeF = new System.Drawing.SizeF(250F, 25F);
this.lblNotice.StylePriority.UseFont = false;
this.lblNotice.Text = "Abschließende Bemerkungen:";
//
// topMarginBand1
//
this.topMarginBand1.HeightF = 50F;
this.topMarginBand1.Name = "topMarginBand1";
//
// bottomMarginBand1
//
this.bottomMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel9});
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// GroupHeader1
//
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel1,
this.xrLabel_RecipientContactPerson,
this.xrLabel_RecipientDivision,
this.xrLabel_RecipientStreet,
this.RecipientPostCodeAndTown,
this.xrLabel2,
this.xrLabel3,
this.xrLabel4,
this.xrLabel5,
this.xrLabel6,
this.xrTable1,
this.xrLabel8});
this.GroupHeader1.Font = new System.Drawing.Font("Verdana", 10F);
this.GroupHeader1.HeightF = 443.3333F;
this.GroupHeader1.Name = "GroupHeader1";
this.GroupHeader1.StylePriority.UseFont = false;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.SettlementRO);
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1});
this.DetailReport.DataMember = "InvoiceItems";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
this.DetailReport.Name = "DetailReport";
//
// Detail1
//
this.Detail1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable5});
this.Detail1.Font = new System.Drawing.Font("Verdana", 10F);
this.Detail1.HeightF = 17F;
this.Detail1.Name = "Detail1";
this.Detail1.StylePriority.UseFont = false;
//
// xrTable5
//
this.xrTable5.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTable5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable5.Name = "xrTable5";
this.xrTable5.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow15});
this.xrTable5.SizeF = new System.Drawing.SizeF(650F, 17F);
this.xrTable5.StylePriority.UseBorderColor = false;
//
// xrTableRow15
//
this.xrTableRow15.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell17,
this.xrTableCell23});
this.xrTableRow15.Name = "xrTableRow15";
this.xrTableRow15.Weight = 0.085D;
//
// xrTableCell17
//
this.xrTableCell17.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell17.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell17.CanShrink = true;
this.xrTableCell17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.ItemDescription")});
this.xrTableCell17.Name = "xrTableCell17";
this.xrTableCell17.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell17.StylePriority.UseBorderColor = false;
this.xrTableCell17.StylePriority.UseBorders = false;
this.xrTableCell17.StylePriority.UseFont = false;
this.xrTableCell17.StylePriority.UsePadding = false;
this.xrTableCell17.Weight = 0.78314100999098546D;
//
// xrTableCell23
//
this.xrTableCell23.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell23.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell23.CanShrink = true;
this.xrTableCell23.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal", "{0:c}")});
this.xrTableCell23.Name = "xrTableCell23";
this.xrTableCell23.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell23.StylePriority.UseBorderColor = false;
this.xrTableCell23.StylePriority.UseBorders = false;
this.xrTableCell23.StylePriority.UseFont = false;
this.xrTableCell23.StylePriority.UsePadding = false;
this.xrTableCell23.StylePriority.UseTextAlignment = false;
this.xrTableCell23.Text = "xrTableCell23";
this.xrTableCell23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell23.Weight = 0.21685899000901443D;
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable4});
this.GroupFooter1.Font = new System.Drawing.Font("Verdana", 10F);
this.GroupFooter1.HeightF = 132F;
this.GroupFooter1.Name = "GroupFooter1";
this.GroupFooter1.StylePriority.UseFont = false;
//
// xrTable4
//
this.xrTable4.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTable4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable4.Name = "xrTable4";
this.xrTable4.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow30,
this.xrTableRow31,
this.xrTableRow32,
this.xrTableRow33,
this.xrTableRow34,
this.xrTableRow35,
this.xrTableRow36});
this.xrTable4.SizeF = new System.Drawing.SizeF(650F, 132F);
this.xrTable4.StylePriority.UseBorderColor = false;
//
// xrTableRow30
//
this.xrTableRow30.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell48});
this.xrTableRow30.Name = "xrTableRow30";
this.xrTableRow30.Weight = 0.085D;
//
// xrTableCell48
//
this.xrTableCell48.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell48.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell48.Name = "xrTableCell48";
this.xrTableCell48.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell48.StylePriority.UseBorderColor = false;
this.xrTableCell48.StylePriority.UseBorders = false;
this.xrTableCell48.Weight = 1D;
//
// xrTableRow31
//
this.xrTableRow31.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell49,
this.xrTableCell50});
this.xrTableRow31.Name = "xrTableRow31";
this.xrTableRow31.Weight = 0.085D;
//
// xrTableCell49
//
this.xrTableCell49.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell49.Name = "xrTableCell49";
this.xrTableCell49.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell49.StylePriority.UseBorders = false;
this.xrTableCell49.StylePriority.UseFont = false;
this.xrTableCell49.StylePriority.UsePadding = false;
this.xrTableCell49.Text = "Gesamtforderung:";
this.xrTableCell49.Weight = 0.78314100999098546D;
//
// xrTableCell50
//
this.xrTableCell50.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "AmountRecordedFLSString")});
this.xrTableCell50.Name = "xrTableCell50";
this.xrTableCell50.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell50.StylePriority.UseBorders = false;
this.xrTableCell50.StylePriority.UseFont = false;
this.xrTableCell50.StylePriority.UsePadding = false;
this.xrTableCell50.StylePriority.UseTextAlignment = false;
this.xrTableCell50.Text = "[AmountRecordedFLSString]";
this.xrTableCell50.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell50.Weight = 0.21685899000901443D;
//
// xrTableRow32
//
this.xrTableRow32.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell51});
this.xrTableRow32.Name = "xrTableRow32";
this.xrTableRow32.Weight = 0.085D;
//
// xrTableCell51
//
this.xrTableCell51.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell51.Name = "xrTableCell51";
this.xrTableCell51.StylePriority.UseBorders = false;
this.xrTableCell51.Weight = 1D;
//
// xrTableRow33
//
this.xrTableRow33.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell52,
this.xrTableCell53});
this.xrTableRow33.Name = "xrTableRow33";
this.xrTableRow33.Weight = 0.085D;
//
// xrTableCell52
//
this.xrTableCell52.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell52.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell52.Name = "xrTableCell52";
this.xrTableCell52.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell52.StylePriority.UseBorderColor = false;
this.xrTableCell52.StylePriority.UseBorders = false;
this.xrTableCell52.StylePriority.UseFont = false;
this.xrTableCell52.Text = "abzüglich der geleisteten Abschlagszahlung:";
this.xrTableCell52.Weight = 0.78314100999098568D;
//
// xrTableCell53
//
this.xrTableCell53.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell53.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell53.Name = "xrTableCell53";
this.xrTableCell53.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell53.StylePriority.UseBorderColor = false;
this.xrTableCell53.StylePriority.UseBorders = false;
this.xrTableCell53.StylePriority.UseFont = false;
this.xrTableCell53.StylePriority.UseTextAlignment = false;
this.xrTableCell53.Text = "[AmountAdvancedPayments]";
this.xrTableCell53.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell53.Weight = 0.21685899000901443D;
//
// xrTableRow34
//
this.xrTableRow34.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell54,
this.xrTableCell55});
this.xrTableRow34.Name = "xrTableRow34";
this.xrTableRow34.Weight = 0.085D;
//
// xrTableCell54
//
this.xrTableCell54.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell54.Name = "xrTableCell54";
this.xrTableCell54.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell54.StylePriority.UseBorders = false;
this.xrTableCell54.StylePriority.UsePadding = false;
this.xrTableCell54.Text = "abzüglich Eigenanteil:";
this.xrTableCell54.Weight = 0.78314100999098568D;
//
// xrTableCell55
//
this.xrTableCell55.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell55.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Eigenbeteiligung", "{0:c}")});
this.xrTableCell55.Name = "xrTableCell55";
this.xrTableCell55.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell55.StylePriority.UseBorders = false;
this.xrTableCell55.StylePriority.UsePadding = false;
this.xrTableCell55.StylePriority.UseTextAlignment = false;
this.xrTableCell55.Text = "xrTableCell15";
this.xrTableCell55.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell55.Weight = 0.21685899000901443D;
//
// xrTableRow35
//
this.xrTableRow35.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell56});
this.xrTableRow35.Name = "xrTableRow35";
this.xrTableRow35.Weight = 0.085D;
//
// xrTableCell56
//
this.xrTableCell56.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell56.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell56.Name = "xrTableCell56";
this.xrTableCell56.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell56.StylePriority.UseBorderColor = false;
this.xrTableCell56.StylePriority.UseBorders = false;
this.xrTableCell56.Weight = 1D;
//
// xrTableRow36
//
this.xrTableRow36.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell57,
this.xrTableCell58});
this.xrTableRow36.Name = "xrTableRow36";
this.xrTableRow36.Weight = 0.15D;
//
// xrTableCell57
//
this.xrTableCell57.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell57.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell57.Name = "xrTableCell57";
this.xrTableCell57.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell57.StylePriority.UseBorderColor = false;
this.xrTableCell57.StylePriority.UseBorders = false;
this.xrTableCell57.StylePriority.UseFont = false;
this.xrTableCell57.Text = "Restforderung:";
this.xrTableCell57.Weight = 0.78314100999098568D;
//
// xrTableCell58
//
this.xrTableCell58.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell58.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell58.Font = new System.Drawing.Font("Verdana", 10F, System.Drawing.FontStyle.Bold);
this.xrTableCell58.Name = "xrTableCell58";
this.xrTableCell58.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell58.StylePriority.UseBorderColor = false;
this.xrTableCell58.StylePriority.UseBorders = false;
this.xrTableCell58.StylePriority.UseFont = false;
this.xrTableCell58.StylePriority.UseTextAlignment = false;
this.xrTableCell58.Text = "[Claim]";
this.xrTableCell58.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell58.Weight = 0.21685899000901443D;
//
// xrLabel7
//
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel7.Multiline = true;
this.xrLabel7.Name = "xrLabel7";
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel7.SizeF = new System.Drawing.SizeF(317F, 180F);
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.Text = "BeWo-Gün\r\nAmbulant Betreutes Wohnen\r\nDipl. Sozialpädagogin Semra Gün\r\nNeusser Str" +
". 420\r\n50733 Köln\r\nTel:0221 / 22201970\r\nFax:0221 / 22201971\r\nMobil:01525/ 547914" +
"1\r\nbewo.guen@gmail.com";
//
// xrLabel9
//
this.xrLabel9.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
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(317F, 90F);
this.xrLabel9.StylePriority.UseFont = false;
this.xrLabel9.Text = "Semra Gün\r\nSparkasse Köln Bonn\r\nIBAN: DE77 3705 0198 1933 4784 95\r\nBIC: COLSDE33X" +
"XX";
//
// Spitzabrechnung
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.ReportHeader,
this.ReportFooter,
this.topMarginBand1,
this.bottomMarginBand1,
this.GroupHeader1,
this.DetailReport,
this.GroupFooter1});
this.DataSource = this.bindingSource1;
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
this.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.ruleRateFactorNull});
this.Margins = new System.Drawing.Printing.Margins(75, 74, 50, 100);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = System.Drawing.Printing.PaperKind.A4;
this.Version = "13.2";
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable5)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
#endregion
private DevExpress.XtraReports.UI.DetailBand Detail;
private System.Windows.Forms.BindingSource bindingSource1;
private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
private DevExpress.XtraReports.UI.XRLabel xrLabel5;
private DevExpress.XtraReports.UI.XRLabel xrLabel4;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRLabel RecipientPostCodeAndTown;
private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientStreet;
private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientDivision;
private DevExpress.XtraReports.UI.XRLabel xrLabel_RecipientContactPerson;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.ReportFooterBand ReportFooter;
private DevExpress.XtraReports.UI.XRLabel lblNotice;
private DevExpress.XtraReports.UI.XRLabel xrLabel12;
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
private DevExpress.XtraReports.UI.XRTable xrTable1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell19;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow10;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell20;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
private DevExpress.XtraReports.UI.XRTableRow rowErbrachteLeistung;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell22;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
private DevExpress.XtraReports.UI.XRTable xrTable3;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow20;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell16;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow21;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell18;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow22;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell29;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow23;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell30;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow24;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell31;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.FormattingRule ruleRateFactorNull;
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.XRLabel xrLabel8;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.DetailReportBand DetailReport;
private DevExpress.XtraReports.UI.DetailBand Detail1;
private DevExpress.XtraReports.UI.XRTable xrTable5;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow15;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell17;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell23;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.XRTable xrTable4;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow30;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell48;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow31;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell49;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell50;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow32;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell51;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow33;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell52;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell53;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow34;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell54;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell55;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow35;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell56;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow36;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell57;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell58;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
}
}

View File

@@ -0,0 +1,222 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BS.Shared.DataContracts;
namespace BeWoGuen.Alt
{
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<SettlementRO>
{
public Spitzabrechnung()
{
InitializeComponent();
}
public void SetReportDataSource(SettlementRO pRO)
{
bool isDefaultSpitzabrechnung = false;
if (String.IsNullOrEmpty(pRO.Notice))
{
lblNotice.Visible = false;
}
if (pRO.InvoiceItems != null && pRO.InvoiceItems.Count == 1)
{
var ii = pRO.InvoiceItems[0];
if ((ii.ItemDescription == "Spitzabrechung" || ii.ItemDescription == "Spitzabrechnung") && ii.GrossAmountTotal == null && ii.RateFactor == null)
{
isDefaultSpitzabrechnung = true;
}
}
if (!isDefaultSpitzabrechnung)
{
if (pRO.DifferentHourlyRateCount > 0 && pRO.HourlyRateNew.HasValue)
{
isDefaultSpitzabrechnung = true;
}
}
if (isDefaultSpitzabrechnung)
{
//UpdateAbrechnungsFelder(pRO);
pRO.InvoiceItems = CreateDefaultSpitzabrechnungInvoiceItems(pRO);
}
else
{
var id = GetCustomerId(pRO);
if (id == "LWLNEU")
{
pRO.RateFactorText = null;
pRO.RateFactorText2 = null;
if (pRO.InvoiceItems != null)
{
foreach (var ii in pRO.InvoiceItems)
{
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} FLS x {3:c}",
ii.ItemPeriodStart, ii.ItemPeriodEnd, ii.UnitCount, ii.AmountPerUnit);
}
}
}
else
{
if (pRO.InvoiceItems != null)
{
foreach (var ii in pRO.InvoiceItems)
{
ii.ItemDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} FLS {3}x {4:c}",
ii.ItemPeriodStart, ii.ItemPeriodEnd,
ii.UnitCount, ii.RateFactor == 0 ? "" : "x " + pRO.RateFactorText2 + " ",
ii.AmountPerUnit);
}
}
}
}
this.bindingSource1.DataSource = pRO;
}
private String GetCustomerId(SettlementRO pRO)
{
var cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(pRO.CostBearer2SupportConceptOid);
return cb2sc.CostBearer.ID;
}
private IList<InvoiceItemDC> CreateDefaultSpitzabrechnungInvoiceItems(SettlementRO pRO)
{
IList<InvoiceItemDC> itemList = new List<InvoiceItemDC>();
if (pRO.DifferentHourlyRateCount == 3)
{
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString,
pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatz3 * pRO.RateFactor * pRO.HourlyRate3
});
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString,
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * pRO.RateFactor * pRO.HourlyRateOld
});
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString,
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
});
}
else if (pRO.DifferentHourlyRateCount == 2)
{
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString,
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld
});
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString,
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
});
}
else
{
itemList.Add(new InvoiceItemDC
{
ItemDescription = String.Format("{0} bis {1}: {2:0.##} FLS {3}x {4:c}",
pRO.AccountingStartDateString, pRO.AccountingEndDateString,
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew),
GrossAmountTotal = pRO.GeleisteteFLSMitStundensatzAktuell * pRO.RateFactor * pRO.HourlyRateNew
});
}
return itemList;
}
private void UpdateAbrechnungsFelder(SettlementRO pRO)
{
if (pRO.DifferentHourlyRateCount == 3)
{
//Erbrachte Leistungen (FLS) - bis [HourlyRateOldEndDateString] à [HourlyRateOldString] €
pRO.Abrechnungstext1 = String.Format("{0} bis {1}",
pRO.AccountingStartDateString, pRO.HourlyRate3EndDateString);
pRO.Abrechnungstext1 += String.Format(": {0:0.##} FLS {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatz3, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRate3);
//[AccountingStartDateString] - [HourlyRate3EndDateString] sind [RecordedFLSWithHourlyRate3String] Std. x [HourlyRate3String] € =";
pRO.Betrag1 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatz3 * (decimal)pRO.RateFactor * pRO.HourlyRate3);
pRO.Abrechnungstext2 = String.Format("{0} bis {1}",
pRO.HourlyRateOldStartDateString, pRO.HourlyRateOldEndDateString);
pRO.Abrechnungstext2 += String.Format(": {0:0.##} FLS {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);
pRO.Betrag2 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld);
pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
}
else if (pRO.DifferentHourlyRateCount == 2)
{
pRO.Abrechnungstext2 = String.Format("{0} bis {1}",
pRO.AccountingStartDateString, pRO.HourlyRateOldEndDateString);
pRO.Abrechnungstext2 += String.Format(": {0:0.##} FLS {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAlt, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateOld);
pRO.Betrag2 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAlt * (decimal)pRO.RateFactor * pRO.HourlyRateOld);
pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
pRO.HourlyRateNewStartDateString, pRO.AccountingEndDateString);
pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
}
else
{
pRO.Abrechnungstext3 = String.Format("{0} bis {1}",
pRO.AccountingStartDateString, pRO.AccountingEndDateString);
pRO.Abrechnungstext3 += String.Format(": {0:0.##} FLS {1}x {2:c}",
pRO.GeleisteteFLSMitStundensatzAktuell, pRO.RateFactor == 1 ? "" : "x " + pRO.RateFactorText2 + " ", pRO.HourlyRateNew);
pRO.Betrag3 = String.Format("{0:c}", pRO.GeleisteteFLSMitStundensatzAktuell * (decimal)pRO.RateFactor * pRO.HourlyRateNew);
}
}
}
}

View File

@@ -0,0 +1,127 @@
<?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>
<data name="xrLabel6.Text" xml:space="preserve">
<value>anbei sende ich Ihnen die unterschriebenen Nachweise über die im Rahmen des Betreuten Wohnens für [Salutation2] [CustomerName] erbrachten Leistungen zu. Nach unserer Berechnung ergeben sich für den Betreuungszeitraum [AccountingPeriod] hieraus:
</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

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

View File

@@ -61,19 +61,18 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel22 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel23 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = 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.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
@@ -84,7 +83,6 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.customerCountField = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldBillableFLS = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldAbrechenbareFLS = new DevExpress.XtraReports.UI.CalculatedField();
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -447,19 +445,6 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.Text = "Name Klient/in:";
//
// xrLabel1
//
this.xrLabel1.Font = new System.Drawing.Font("Arial", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))));
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(87.27765F, 102.4722F);
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(466.8057F, 25F);
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.StylePriority.UseTextAlignment = false;
this.xrLabel1.Text = "Quittierungsbeleg über direkte Betreuungsleistungen";
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
//
// xrLabel22
//
this.xrLabel22.Font = new System.Drawing.Font("Arial", 10F);
@@ -490,6 +475,19 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.Text = "Bewilligte Fachleistungsstunden wöchentlich:";
//
// xrLabel1
//
this.xrLabel1.Font = new System.Drawing.Font("Arial", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))));
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(87.27765F, 102.4722F);
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(466.8057F, 25F);
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.StylePriority.UseTextAlignment = false;
this.xrLabel1.Text = "Quittierungsbeleg über direkte Betreuungsleistungen";
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
//
// formattingRuleServiceDesc
//
this.formattingRuleServiceDesc.Condition = "[StartDate2] < [StartDate]";
@@ -530,6 +528,14 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.topMarginBand1.Name = "topMarginBand1";
this.topMarginBand1.StylePriority.UseFont = false;
//
// xrPictureBox1
//
this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(554.0834F, 30.61112F);
this.xrPictureBox1.Name = "xrPictureBox1";
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(122.9167F, 117.6944F);
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// bottomMarginBand1
//
this.bottomMarginBand1.HeightF = 36.41669F;
@@ -539,21 +545,19 @@ namespace BeWo.BetreutesWohnenAmRheinReports
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel7,
this.xrLabel8,
this.xrLabel2,
this.xrLabel6,
this.xrLabel3,
this.xrLabel4,
this.xrLabel5});
this.ReportFooter.Font = new System.Drawing.Font("Arial", 8F);
this.ReportFooter.HeightF = 195.1667F;
this.ReportFooter.HeightF = 148F;
this.ReportFooter.Name = "ReportFooter";
this.ReportFooter.StylePriority.UseFont = false;
//
// xrLabel7
//
this.xrLabel7.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(435.1247F, 177.1667F);
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(435.1248F, 130F);
this.xrLabel7.Name = "xrLabel7";
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel7.SizeF = new System.Drawing.SizeF(197F, 17.99997F);
@@ -561,41 +565,10 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.Text = "Unterschrift Klient/in";
//
// xrLabel8
//
this.xrLabel8.Font = new System.Drawing.Font("Arial", 9F);
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(37.99998F, 48.20836F);
this.xrLabel8.Multiline = true;
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(226F, 48.20835F);
this.xrLabel8.StylePriority.UseFont = false;
this.xrLabel8.Text = "2. Summe der abzurechnenden Leistungen (= 1 x 1,2)\r\n";
//
// xrLabel2
//
this.xrLabel2.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel2.BorderWidth = 2F;
this.xrLabel2.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(264F, 48.21002F);
this.xrLabel2.Multiline = true;
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(136F, 48.20835F);
this.xrLabel2.StylePriority.UseBorders = false;
this.xrLabel2.StylePriority.UseBorderWidth = false;
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.StylePriority.UsePadding = false;
this.xrLabel2.StylePriority.UseTextAlignment = false;
this.xrLabel2.Text = "[fieldBillableFLS!0.##] x 1,2 = [fieldAbrechenbareFLS!0.##] Std.";
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel6
//
this.xrLabel6.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(183.1248F, 177.1667F);
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(183.1249F, 130F);
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(216.8751F, 17.99997F);
@@ -637,7 +610,7 @@ namespace BeWo.BetreutesWohnenAmRheinReports
// xrLabel5
//
this.xrLabel5.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(12.12489F, 177.1667F);
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(12.12489F, 130F);
this.xrLabel5.Name = "xrLabel5";
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel5.SizeF = new System.Drawing.SizeF(117F, 17.99997F);
@@ -683,14 +656,6 @@ namespace BeWo.BetreutesWohnenAmRheinReports
this.fieldAbrechenbareFLS.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldAbrechenbareFLS.Name = "fieldAbrechenbareFLS";
//
// xrPictureBox1
//
this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(554.0834F, 30.61112F);
this.xrPictureBox1.Name = "xrPictureBox1";
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(122.9167F, 117.6944F);
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -774,8 +739,6 @@ namespace BeWo.BetreutesWohnenAmRheinReports
private DevExpress.XtraReports.UI.XRLabel xrLabel23;
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRLabel xrLabel8;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
private DevExpress.XtraReports.UI.XRLabel xrLabel4;

View File

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

View File

@@ -28,89 +28,124 @@ namespace BeWo.BrueckeABW
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServiceInvoiceReport));
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAbrechnungszeitraum = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.DetailReport2 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail3 = new DevExpress.XtraReports.UI.DetailBand();
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLine1 = new DevExpress.XtraReports.UI.XRLine();
this.xrRichText4 = new DevExpress.XtraReports.UI.XRRichText();
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrRichText2 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLine2 = new DevExpress.XtraReports.UI.XRLine();
this.xrRichText3 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.HeightF = 0F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ServiceInvoiceReport));
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLine1 = new DevExpress.XtraReports.UI.XRLine();
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
this.ruleRateFactorNull = new DevExpress.XtraReports.UI.FormattingRule();
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.xrLine2 = new DevExpress.XtraReports.UI.XRLine();
this.xrRichText3 = new DevExpress.XtraReports.UI.XRRichText();
this.Page1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrRichText2 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel4 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel5 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAbrechnungszeitraum = new DevExpress.XtraReports.UI.XRLabel();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.DetailReport2 = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail3 = new DevExpress.XtraReports.UI.DetailBand();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrLabel3 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.HeightF = 0F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel3,
this.xrRichText1,
this.xrLine1,
this.xrRichText4,
this.xrPictureBox1});
this.ReportHeader.Font = new System.Drawing.Font("Verdana", 10F);
this.ReportHeader.HeightF = 200F;
this.ReportHeader.Name = "ReportHeader";
this.ReportHeader.StylePriority.UseFont = false;
//
// ruleRateFactorNull
//
this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?";
//
//
//
this.ruleRateFactorNull.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.ruleRateFactorNull.Name = "ruleRateFactorNull";
//
// topMarginBand1
//
this.topMarginBand1.HeightF = 0F;
this.topMarginBand1.Name = "topMarginBand1";
//
// bottomMarginBand1
//
this.bottomMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.ReportHeader.Font = new System.Drawing.Font("Verdana", 10F);
this.ReportHeader.HeightF = 200F;
this.ReportHeader.Name = "ReportHeader";
this.ReportHeader.StylePriority.UseFont = false;
//
// xrRichText1
//
this.xrRichText1.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 67.62F);
this.xrRichText1.Name = "xrRichText1";
this.xrRichText1.SerializableRtfString = resources.GetString("xrRichText1.SerializableRtfString");
this.xrRichText1.SizeF = new System.Drawing.SizeF(431.1666F, 61.54167F);
//
// xrLine1
//
this.xrLine1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 129.1617F);
this.xrLine1.Name = "xrLine1";
this.xrLine1.SizeF = new System.Drawing.SizeF(431.1666F, 10.41667F);
//
// xrPictureBox1
//
this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(442.62F, 0F);
this.xrPictureBox1.Name = "xrPictureBox1";
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(276.375F, 139.5833F);
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// ruleRateFactorNull
//
this.ruleRateFactorNull.Condition = "[RateFactorText2] == ?";
//
//
//
this.ruleRateFactorNull.Formatting.Visible = DevExpress.Utils.DefaultBoolean.False;
this.ruleRateFactorNull.Name = "ruleRateFactorNull";
//
// topMarginBand1
//
this.topMarginBand1.HeightF = 0F;
this.topMarginBand1.Name = "topMarginBand1";
//
// bottomMarginBand1
//
this.bottomMarginBand1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLine2,
this.xrRichText3});
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// Page1
//
this.Page1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// xrLine2
//
this.xrLine2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLine2.Name = "xrLine2";
this.xrLine2.SizeF = new System.Drawing.SizeF(689.4999F, 10.41667F);
//
// xrRichText3
//
this.xrRichText3.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 10.42F);
this.xrRichText3.Name = "xrRichText3";
this.xrRichText3.SerializableRtfString = resources.GetString("xrRichText3.SerializableRtfString");
this.xrRichText3.SizeF = new System.Drawing.SizeF(689.4999F, 61.54167F);
//
// Page1
//
this.Page1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrRichText2,
this.xrLabel6,
this.xrLabel10,
@@ -121,247 +156,213 @@ namespace BeWo.BrueckeABW
this.xrLabel5,
this.xrLabel8,
this.lblAbrechnungszeitraum});
this.Page1.Font = new System.Drawing.Font("Arial", 10F);
this.Page1.HeightF = 353.0417F;
this.Page1.Name = "Page1";
this.Page1.StylePriority.UseFont = false;
//
// xrLabel7
//
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel7.Multiline = true;
this.xrLabel7.Name = "xrLabel7";
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel7.SizeF = new System.Drawing.SizeF(317F, 111.5F);
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.Text = "[RecipientOrganisation]\r\n[RecipientStreet]\r\n[RecipientPostCodeAndTown]";
//
// xrLabel4
//
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
this.xrLabel4.CanShrink = true;
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 231.58F);
this.xrLabel4.Multiline = true;
this.xrLabel4.Name = "xrLabel4";
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel4.SizeF = new System.Drawing.SizeF(250F, 20F);
this.xrLabel4.StylePriority.UseBackColor = false;
this.xrLabel4.StylePriority.UseFont = false;
this.xrLabel4.Text = "[CustomerReferenceNumber]";
this.xrLabel4.WordWrap = false;
//
// xrLabel5
//
this.xrLabel5.Font = new System.Drawing.Font("Arial", 11F);
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 285F);
this.xrLabel5.Name = "xrLabel5";
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel5.SizeF = new System.Drawing.SizeF(317F, 25F);
this.xrLabel5.StylePriority.UseFont = false;
this.xrLabel5.Text = "Sehr geehrte Damen und Herren,";
//
// xrLabel8
//
this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
this.Page1.Font = new System.Drawing.Font("Arial", 10F);
this.Page1.HeightF = 353.0417F;
this.Page1.Name = "Page1";
this.Page1.StylePriority.UseFont = false;
//
// xrRichText2
//
this.xrRichText2.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(504.0001F, 0F);
this.xrRichText2.Name = "xrRichText2";
this.xrRichText2.SerializableRtfString = resources.GetString("xrRichText2.SerializableRtfString");
this.xrRichText2.SizeF = new System.Drawing.SizeF(209.9583F, 187.5833F);
//
// xrLabel6
//
this.xrLabel6.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 214.58F);
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(133.6666F, 17F);
this.xrLabel6.StylePriority.UseFont = false;
this.xrLabel6.Text = "Ihr Zeichen, Ihre Nachricht vom";
//
// xrLabel10
//
this.xrLabel10.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(208.33F, 214.58F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(176.375F, 17F);
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.Text = "Unser Zeichen, unsere Nachricht vom";
//
// xrLabel11
//
this.xrLabel11.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(416.58F, 214.58F);
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel11.SizeF = new System.Drawing.SizeF(155.9585F, 17F);
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.Text = "Telefon, Name";
//
// xrLabel12
//
this.xrLabel12.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(572.54F, 214.58F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(136.4582F, 17F);
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.Text = "Datum";
//
// xrLabel7
//
this.xrLabel7.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel7.Multiline = true;
this.xrLabel7.Name = "xrLabel7";
this.xrLabel7.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel7.SizeF = new System.Drawing.SizeF(317F, 111.5F);
this.xrLabel7.StylePriority.UseFont = false;
this.xrLabel7.Text = "[RecipientOrganisation]\r\n[RecipientStreet]\r\n[RecipientPostCodeAndTown]";
//
// xrLabel4
//
this.xrLabel4.BackColor = System.Drawing.Color.Transparent;
this.xrLabel4.CanShrink = true;
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 231.58F);
this.xrLabel4.Multiline = true;
this.xrLabel4.Name = "xrLabel4";
this.xrLabel4.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel4.SizeF = new System.Drawing.SizeF(250F, 20F);
this.xrLabel4.StylePriority.UseBackColor = false;
this.xrLabel4.StylePriority.UseFont = false;
this.xrLabel4.Text = "[CustomerReferenceNumber]";
this.xrLabel4.WordWrap = false;
//
// xrLabel5
//
this.xrLabel5.Font = new System.Drawing.Font("Arial", 11F);
this.xrLabel5.LocationFloat = new DevExpress.Utils.PointFloat(0F, 285F);
this.xrLabel5.Name = "xrLabel5";
this.xrLabel5.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel5.SizeF = new System.Drawing.SizeF(317F, 25F);
this.xrLabel5.StylePriority.UseFont = false;
this.xrLabel5.Text = "Sehr geehrte Damen und Herren,";
//
// xrLabel8
//
this.xrLabel8.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceDate")});
this.xrLabel8.Font = new System.Drawing.Font("Arial", 8F);
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(572.54F, 231.58F);
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(146.455F, 23F);
this.xrLabel8.StylePriority.UseFont = false;
this.xrLabel8.StylePriority.UseTextAlignment = false;
this.xrLabel8.Text = "xrLabel8";
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// lblAbrechnungszeitraum
//
this.lblAbrechnungszeitraum.Font = new System.Drawing.Font("Arial", 11F);
this.lblAbrechnungszeitraum.LocationFloat = new DevExpress.Utils.PointFloat(0F, 312F);
this.lblAbrechnungszeitraum.Multiline = true;
this.lblAbrechnungszeitraum.Name = "lblAbrechnungszeitraum";
this.lblAbrechnungszeitraum.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblAbrechnungszeitraum.SizeF = new System.Drawing.SizeF(642F, 41.04163F);
this.lblAbrechnungszeitraum.StylePriority.UseFont = false;
this.lblAbrechnungszeitraum.Text = "hiermit berechnen wir für den ... folgende erbrachte Tätigkeiten:";
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.xrLabel8.Font = new System.Drawing.Font("Arial", 8F);
this.xrLabel8.LocationFloat = new DevExpress.Utils.PointFloat(572.54F, 231.58F);
this.xrLabel8.Name = "xrLabel8";
this.xrLabel8.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel8.SizeF = new System.Drawing.SizeF(146.455F, 23F);
this.xrLabel8.StylePriority.UseFont = false;
this.xrLabel8.StylePriority.UseTextAlignment = false;
this.xrLabel8.Text = "xrLabel8";
this.xrLabel8.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// lblAbrechnungszeitraum
//
this.lblAbrechnungszeitraum.Font = new System.Drawing.Font("Arial", 11F);
this.lblAbrechnungszeitraum.LocationFloat = new DevExpress.Utils.PointFloat(0F, 312F);
this.lblAbrechnungszeitraum.Multiline = true;
this.lblAbrechnungszeitraum.Name = "lblAbrechnungszeitraum";
this.lblAbrechnungszeitraum.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblAbrechnungszeitraum.SizeF = new System.Drawing.SizeF(642F, 41.04163F);
this.lblAbrechnungszeitraum.StylePriority.UseFont = false;
this.lblAbrechnungszeitraum.Text = "hiermit berechnen wir für den ... folgende erbrachte Tätigkeiten:";
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1,
this.DetailReport2});
this.DetailReport.DataMember = "ServiceInvoicePeriods";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
this.DetailReport.Name = "DetailReport";
//
// Detail1
//
this.Detail1.HeightF = 0F;
this.Detail1.Name = "Detail1";
//
// DetailReport2
//
this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.DetailReport.DataMember = "ServiceInvoicePeriods";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
this.DetailReport.Name = "DetailReport";
//
// Detail1
//
this.Detail1.HeightF = 0F;
this.Detail1.Name = "Detail1";
//
// DetailReport2
//
this.DetailReport2.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail3});
this.DetailReport2.DataMember = "ServiceInvoicePeriods.ServiceInvoiceItems";
this.DetailReport2.DataSource = this.bindingSource1;
this.DetailReport2.Level = 0;
this.DetailReport2.Name = "DetailReport2";
this.DetailReport2.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBand;
//
// Detail3
//
this.Detail3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.DetailReport2.DataMember = "ServiceInvoicePeriods.ServiceInvoiceItems";
this.DetailReport2.DataSource = this.bindingSource1;
this.DetailReport2.Level = 0;
this.DetailReport2.Name = "DetailReport2";
this.DetailReport2.PageBreak = DevExpress.XtraReports.UI.PageBreak.AfterBand;
//
// Detail3
//
this.Detail3.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel2,
this.xrLabel1});
this.Detail3.Font = new System.Drawing.Font("Arial", 11F);
this.Detail3.HeightF = 25F;
this.Detail3.Name = "Detail3";
this.Detail3.StylePriority.UseFont = false;
//
// xrRichText1
//
this.xrRichText1.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 67.62F);
this.xrRichText1.Name = "xrRichText1";
this.xrRichText1.SerializableRtfString = resources.GetString("xrRichText1.SerializableRtfString");
this.xrRichText1.SizeF = new System.Drawing.SizeF(431.1666F, 61.54167F);
//
// xrLine1
//
this.xrLine1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 129.1617F);
this.xrLine1.Name = "xrLine1";
this.xrLine1.SizeF = new System.Drawing.SizeF(431.1666F, 10.41667F);
//
// xrRichText4
//
this.xrRichText4.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText4.LocationFloat = new DevExpress.Utils.PointFloat(0F, 172.4118F);
this.xrRichText4.Name = "xrRichText4";
this.xrRichText4.SerializableRtfString = resources.GetString("xrRichText4.SerializableRtfString");
this.xrRichText4.SizeF = new System.Drawing.SizeF(431.1666F, 27.58334F);
//
// xrPictureBox1
//
this.xrPictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("xrPictureBox1.Image")));
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(442.62F, 0F);
this.xrPictureBox1.Name = "xrPictureBox1";
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(276.375F, 139.5833F);
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// xrRichText2
//
this.xrRichText2.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(504.0001F, 0F);
this.xrRichText2.Name = "xrRichText2";
this.xrRichText2.SerializableRtfString = resources.GetString("xrRichText2.SerializableRtfString");
this.xrRichText2.SizeF = new System.Drawing.SizeF(209.9583F, 187.5833F);
//
// xrLabel6
//
this.xrLabel6.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 214.58F);
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(133.6666F, 17F);
this.xrLabel6.StylePriority.UseFont = false;
this.xrLabel6.Text = "Ihr Zeichen, Ihre Nachricht vom";
//
// xrLabel10
//
this.xrLabel10.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(208.33F, 214.58F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(176.375F, 17F);
this.xrLabel10.StylePriority.UseFont = false;
this.xrLabel10.Text = "Unser Zeichen, unsere Nachricht vom";
//
// xrLabel11
//
this.xrLabel11.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(416.58F, 214.58F);
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel11.SizeF = new System.Drawing.SizeF(155.9585F, 17F);
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.Text = "Telefon, Name";
//
// xrLabel12
//
this.xrLabel12.Font = new System.Drawing.Font("Arial", 6F);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(572.54F, 214.58F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(136.4582F, 17F);
this.xrLabel12.StylePriority.UseFont = false;
this.xrLabel12.Text = "Datum";
//
// ReportFooter
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel13});
this.ReportFooter.Font = new System.Drawing.Font("Arial", 11F);
this.ReportFooter.HeightF = 199.7916F;
this.ReportFooter.Name = "ReportFooter";
this.ReportFooter.StylePriority.UseFont = false;
//
// xrLabel13
//
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(0F, 29.79164F);
this.xrLabel13.Multiline = true;
this.xrLabel13.Name = "xrLabel13";
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(407.2917F, 170F);
this.xrLabel13.StylePriority.UseFont = false;
this.xrLabel13.Text = "Mit freundlichen Grüßen\r\n\r\n\r\nBRÜCKE\r\nAmbulant Betreutes Wohnen\r\n\r\n\r\n\r\ni. A. Geral" +
"d Peters";
//
// xrLine2
//
this.xrLine2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLine2.Name = "xrLine2";
this.xrLine2.SizeF = new System.Drawing.SizeF(689.4999F, 10.41667F);
//
// xrRichText3
//
this.xrRichText3.Font = new System.Drawing.Font("Verdana", 10F);
this.xrRichText3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 10.42F);
this.xrRichText3.Name = "xrRichText3";
this.xrRichText3.SerializableRtfString = resources.GetString("xrRichText3.SerializableRtfString");
this.xrRichText3.SizeF = new System.Drawing.SizeF(689.4999F, 61.54167F);
//
// xrLabel1
//
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.ServiceDescription")});
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(250F, 25F);
this.xrLabel1.Text = "xrLabel1";
//
// xrLabel2
//
this.xrLabel2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
this.Detail3.Font = new System.Drawing.Font("Arial", 11F);
this.Detail3.HeightF = 25F;
this.Detail3.Name = "Detail3";
this.Detail3.StylePriority.UseFont = false;
//
// xrLabel2
//
this.xrLabel2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.GrossAmount")});
this.xrLabel2.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(250F, 0F);
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(209.375F, 25F);
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.Text = "xrLabel2";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO);
//
// ServiceInvoiceReport
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.xrLabel2.Font = new System.Drawing.Font("Arial", 11F, System.Drawing.FontStyle.Bold);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(250F, 0F);
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(209.375F, 25F);
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.Text = "xrLabel2";
//
// xrLabel1
//
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ServiceInvoicePeriods.ServiceInvoiceItems.ServiceDescription")});
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(250F, 25F);
this.xrLabel1.Text = "xrLabel1";
//
// ReportFooter
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel13});
this.ReportFooter.Font = new System.Drawing.Font("Arial", 11F);
this.ReportFooter.HeightF = 199.7916F;
this.ReportFooter.Name = "ReportFooter";
this.ReportFooter.StylePriority.UseFont = false;
//
// xrLabel13
//
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(0F, 29.79164F);
this.xrLabel13.Multiline = true;
this.xrLabel13.Name = "xrLabel13";
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(407.2917F, 170F);
this.xrLabel13.StylePriority.UseFont = false;
this.xrLabel13.Text = "Mit freundlichen Grüßen\r\n\r\n\r\nBRÜCKE\r\nAmbulant Betreutes Wohnen\r\n\r\n\r\n\r\ni. A. Geral" +
"d Peters";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.ServiceInvoiceRO);
//
// xrLabel3
//
this.xrLabel3.Font = new System.Drawing.Font("Arial", 7F, System.Drawing.FontStyle.Underline);
this.xrLabel3.LocationFloat = new DevExpress.Utils.PointFloat(0F, 173.4535F);
this.xrLabel3.Name = "xrLabel3";
this.xrLabel3.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel3.SizeF = new System.Drawing.SizeF(359.7083F, 26.54654F);
this.xrLabel3.StylePriority.UseFont = false;
this.xrLabel3.Text = "Brücke - ABW · Wilhelmstraße 37 · 52249 Eschweiler";
//
// ServiceInvoiceReport
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.ReportHeader,
this.topMarginBand1,
@@ -369,22 +370,21 @@ namespace BeWo.BrueckeABW
this.Page1,
this.DetailReport,
this.ReportFooter});
this.DataSource = this.bindingSource1;
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
this.Font = new System.Drawing.Font("Verdana", 10F);
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.DataSource = this.bindingSource1;
this.ExportOptions.PrintPreview.DefaultFileName = "Spitzabrechnung";
this.Font = new System.Drawing.Font("Verdana", 10F);
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
this.ruleRateFactorNull});
this.Margins = new System.Drawing.Printing.Margins(85, 10, 0, 100);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = System.Drawing.Printing.PaperKind.A4;
this.Version = "13.1";
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
this.Margins = new System.Drawing.Printing.Margins(85, 10, 0, 100);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = System.Drawing.Printing.PaperKind.A4;
this.Version = "13.2";
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -407,7 +407,6 @@ namespace BeWo.BrueckeABW
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
private DevExpress.XtraReports.UI.XRRichText xrRichText1;
private DevExpress.XtraReports.UI.XRLine xrLine1;
private DevExpress.XtraReports.UI.XRRichText xrRichText4;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
private DevExpress.XtraReports.UI.XRRichText xrRichText2;
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
@@ -420,5 +419,6 @@ namespace BeWo.BrueckeABW
private DevExpress.XtraReports.UI.XRRichText xrRichText3;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
}
}

View File

@@ -120,9 +120,6 @@
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABxAGoAXAB0AHEAYwBcAHQAeAA0ADUAMwA2AFwAdABxAHIAXAB0AHgAOQAwADcAMgBcAGwAYQBuAGcAMQAwADMAMQBcAGIAXABmADAAXABmAHMAMgAyACAASQBuAGQAaQB2AGkAZAB1AGUAbABsAGUAIABBAGwAbAB0AGEAZwBzAGgAaQBsAGYAZQBuACAAZgBcACcAZgBjAHIAIABNAGUAbgBzAGMAaABlAG4AIABtAGkAdAAgAFwAcABhAHIADQAKAFwAcABhAHIAZAAgAGsAXAAnAGYANgByAHAAZQByAGwAaQBjAGgAZQByACwAIABnAGUAaQBzAHQAaQBnAGUAcgAgAHUAbgBkAC8AbwBkAGUAcgAgAHMAZQBlAGwAaQBzAGMAaABlAHIAXABwAGEAcgANAAoAQgBlAGgAaQBuAGQAZQByAHUAbgBnAFwAYgAwAFwAZgAxAFwAZgBzADIANABcAHAAYQByAA0ACgB9AA0ACgA=</value>
</data>
<data name="xrRichText4.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABmAGIAaQBkAGkAcwBcAGEAbgBzAGkAXABhAG4AcwBpAGMAcABnADEAMgA1ADIAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMABcAGYAcwB3AGkAcwBzAFwAZgBwAHIAcQAyAFwAZgBjAGgAYQByAHMAZQB0ADAAIABBAHIAaQBhAGwAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABsAHQAcgBwAGEAcgBcAGwAYQBuAGcAMQAwADIANABcAHUAbABcAGYAMABcAGYAcwAxADQAIABCAHIAXAAnAGYAYwBjAGsAZQAgAC0AIABBAEIAVwAgAFwAJwBiADcAIABCAGkAcwBtAGEAcgBjAGsAcwB0AHIALgAgADEAOAAgAFwAJwBiADcAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByAFwAbABhAG4AZwAxADAAMwAxAFwAdQBsAG4AbwBuAGUAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<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>
@@ -3102,10 +3099,10 @@
</value>
</data>
<data name="xrRichText3.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABmAGIAaQBkAGkAcwBcAGEAbgBzAGkAXABhAG4AcwBpAGMAcABnADEAMgA1ADIAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMABcAGYAcwB3AGkAcwBzAFwAZgBwAHIAcQAyAFwAZgBjAGgAYQByAHMAZQB0ADAAIABUAHIAZQBiAHUAYwBoAGUAdAAgAE0AUwA7AH0AewBcAGYAMQBcAGYAbgBpAGwAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AfQANAAoAXAB2AGkAZQB3AGsAaQBuAGQANABcAHUAYwAxAFwAcABhAHIAZABcAGwAdAByAHAAYQByAFwAcQBjAFwAdABxAGMAXAB0AHgANAA1ADMANgBcAHQAcQByAFwAdAB4ADkAMAA3ADIAXABsAGEAbgBnADEAMAAzADEAXABmADAAXABmAHMAMQA2ACAAQgByAFwAJwBmAGMAYwBrAGUAIAAtACAAQQBtAGIAdQBsAGEAbgB0ACAAQgBlAHQAcgBlAHUAdABlAHMAIABXAG8AaABuAGUAbgAgAFwAJwBiADcAIABCAGkAcwBtAGEAcgBjAGsAcwB0AHIALgAgADEAOAAgAFwAJwBiADcAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByACAAXAAnAGIANwAgAEQAZQB1AHQAcwBjAGgAbABhAG4AZAAgAFwAJwBiADcAIABEAGkAcABsAC4AIABTAG8AegAuACAAUABcACcAZQA0AGQALgAgAE0AYQByAGkAYQAgAEgAYQB1AHAAdABzAC0AUABlAHQAZQByAHMAXABsAGkAbgBlACAAVQBTAHQALQBJAGQATgByAC4AOgAgAEQARQAgADIAMwA2ADcAMAA4ADcANgA3ACAAXAAnAGIANwAgAEIAYQBuAGsAdgBlAHIAYgBpAG4AZAB1AG4AZwA6ACAASwBvAG4AdABvAG4AdQBtAG0AZQByACAANwAzADMAMAAwADkAMQAwADIAMwAgAFwAJwBiADcAIABCAEwAWgAgADMAOQAxADYAMgA5ADgAMAAgAFwAJwBiADcAIABWAFIAIABCAGEAbgBrACAAXABwAGEAcgANAAoAVABlAGwAZQBmAG8AbgA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMQAgAFwAJwBiADcAIABUAGUAbABlAGYAYQB4ADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAyAFwAcABhAHIADQAKAEUAbQBhAGkAbAA6ACAAaQBuAGYAbwBAAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQAgAFwAJwBiADcAIABJAG4AdABlAHIAbgBlAHQAOgB3AHcAdwAuAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGYAMQBcAGYAcwAyADQAXABwAGEAcgANAAoAfQANAAoA</value>
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABxAGMAXAB0AHEAYwBcAHQAeAA0ADUAMwA2AFwAdABxAHIAXAB0AHgAOQAwADcAMgBcAGwAYQBuAGcAMQAwADMAMQBcAGYAMABcAGYAcwAxADYAIABCAHIAXAAnAGYAYwBjAGsAZQAgAC0AIABBAG0AYgB1AGwAYQBuAHQAIABCAGUAdAByAGUAdQB0AGUAcwAgAFcAbwBoAG4AZQBuACAAXAAnAGIANwAgAFcAaQBsAGgAZQBsAG0AcwB0AHIAYQBcACcAZABmAGUAIAAzADcAIABcACcAYgA3ACAANQAyADIANAA5ACAARQBzAGMAaAB3AGUAaQBsAGUAcgAgAFwAJwBiADcAIABEAGUAdQB0AHMAYwBoAGwAYQBuAGQAIABcACcAYgA3ACAARABpAHAAbAAuACAAUwBvAHoALgAgAFAAXAAnAGUANABkAC4AIABNAGEAcgBpAGEAIABIAGEAdQBwAHQAcwAtAFAAZQB0AGUAcgBzAFwAbABpAG4AZQAgAFUAUwB0AC0ASQBkAE4AcgAuADoAIABEAEUAIAAyADMANgA3ADAAOAA3ADYANwAgAFwAJwBiADcAIABCAGEAbgBrAHYAZQByAGIAaQBuAGQAdQBuAGcAOgAgAEsAbwBuAHQAbwBuAHUAbQBtAGUAcgAgADcAMwAzADAAMAA5ADEAMAAyADMAIABcACcAYgA3ACAAQgBMAFoAIAAzADkAMQA2ADIAOQA4ADAAIABcACcAYgA3ACAAVgBSACAAQgBhAG4AawAgAFwAcABhAHIADQAKAFQAZQBsAGUAZgBvAG4AOgAgACsANAA5ACAAKAAwACkAIAAyADQAMAAzACAAOAAzACAANwA4ACAAMAAyADEAIABcACcAYgA3ACAAVABlAGwAZQBmAGEAeAA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMgBcAHAAYQByAA0ACgBFAG0AYQBpAGwAOgAgAGkAbgBmAG8AQABiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAIABcACcAYgA3ACAASQBuAHQAZQByAG4AZQB0ADoAdwB3AHcALgBiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAHsAXABjAG8AbABvAHIAdABiAGwAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQA7AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABzAGEAMgAwADAAXABzAGwAMgA3ADYAXABzAGwAbQB1AGwAdAAxAFwAbABhAG4AZwAxADAAMwAxAFwAZgAwAFwAZgBzADEANgAgAEIAcgBcACcAZgBjAGMAawBlAFwAbABpAG4AZQAgAEEAbQBiAHUAbABhAG4AdAAgAEIAZQB0AHIAZQB1AHQAZQBzACAAVwBvAGgAbgBlAG4AXABsAGkAbgBlACAAQgBpAHMAbQBhAHIAYwBrAHMAdAByAC4AIAAxADgAXABsAGkAbgBlACAANQAyADIANAA5ACAARQBzAGMAaAB3AGUAaQBsAGUAcgBcAGwAaQBuAGUAIABEAGUAdQB0AHMAYwBoAGwAYQBuAGQAXABwAGEAcgANAAoAVABlAGwAZQBmAG8AbgA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMQBcAGwAaQBuAGUAIABUAGUAbABlAGYAYQB4ADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAyAFwAcABhAHIADQAKAFwAcABhAHIAZAAgAEUAbQBhAGkAbAA6ACAAXABjAGYAMQBcAHUAbAAgAGkAbgBmAG8AQABiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABjAGYAMABcAHUAbABuAG8AbgBlAFwAbABpAG4AZQAgAEkAbgB0AGUAcgBuAGUAdAA6ACAAdwB3AHcALgBiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABwAGEAcgANAAoAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAHsAXABjAG8AbABvAHIAdABiAGwAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQA7AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABzAGEAMgAwADAAXABzAGwAMgA3ADYAXABzAGwAbQB1AGwAdAAxAFwAbABhAG4AZwAxADAAMwAxAFwAZgAwAFwAZgBzADEANgAgAEIAcgBcACcAZgBjAGMAawBlAFwAbABpAG4AZQAgAEEAbQBiAHUAbABhAG4AdAAgAEIAZQB0AHIAZQB1AHQAZQBzACAAVwBvAGgAbgBlAG4AXABsAGkAbgBlACAAVwBpAGwAaABlAGwAbQBzAHQAcgBhAFwAJwBkAGYAZQAgADMANwBcAGwAaQBuAGUAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByAFwAbABpAG4AZQAgAEQAZQB1AHQAcwBjAGgAbABhAG4AZABcAHAAYQByAA0ACgBUAGUAbABlAGYAbwBuADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAxAFwAbABpAG4AZQAgAFQAZQBsAGUAZgBhAHgAOgAgACsANAA5ACAAKAAwACkAIAAyADQAMAAzACAAOAAzACAANwA4ACAAMAAyADIAXABwAGEAcgANAAoAXABwAGEAcgBkACAARQBtAGEAaQBsADoAIABcAGMAZgAxAFwAdQBsACAAaQBuAGYAbwBAAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGMAZgAwAFwAdQBsAG4AbwBuAGUAXABsAGkAbgBlACAASQBuAHQAZQByAG4AZQB0ADoAIAB3AHcAdwAuAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGYAMQBcAGYAcwAyADQAXABwAGEAcgANAAoAfQANAAoA</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>

File diff suppressed because it is too large Load Diff

View File

@@ -117,9 +117,6 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="xrRichText4.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABmAGIAaQBkAGkAcwBcAGEAbgBzAGkAXABhAG4AcwBpAGMAcABnADEAMgA1ADIAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMABcAGYAcwB3AGkAcwBzAFwAZgBwAHIAcQAyAFwAZgBjAGgAYQByAHMAZQB0ADAAIABBAHIAaQBhAGwAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABsAHQAcgBwAGEAcgBcAGwAYQBuAGcAMQAwADIANABcAHUAbABcAGYAMABcAGYAcwAxADQAIABCAHIAXAAnAGYAYwBjAGsAZQAgAC0AIABBAEIAVwAgAFwAJwBiADcAIABCAGkAcwBtAGEAcgBjAGsAcwB0AHIALgAgADEAOAAgAFwAJwBiADcAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByAFwAbABhAG4AZwAxADAAMwAxAFwAdQBsAG4AbwBuAGUAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABxAGoAXAB0AHEAYwBcAHQAeAA0ADUAMwA2AFwAdABxAHIAXAB0AHgAOQAwADcAMgBcAGwAYQBuAGcAMQAwADMAMQBcAGIAXABmADAAXABmAHMAMgAyACAASQBuAGQAaQB2AGkAZAB1AGUAbABsAGUAIABBAGwAbAB0AGEAZwBzAGgAaQBsAGYAZQBuACAAZgBcACcAZgBjAHIAIABNAGUAbgBzAGMAaABlAG4AIABtAGkAdAAgAFwAcABhAHIADQAKAFwAcABhAHIAZAAgAGsAXAAnAGYANgByAHAAZQByAGwAaQBjAGgAZQByACwAIABnAGUAaQBzAHQAaQBnAGUAcgAgAHUAbgBkAC8AbwBkAGUAcgAgAHMAZQBlAGwAaQBzAGMAaABlAHIAXABwAGEAcgANAAoAQgBlAGgAaQBuAGQAZQByAHUAbgBnAFwAYgAwAFwAZgAxAFwAZgBzADIANABcAHAAYQByAA0ACgB9AA0ACgA=</value>
</data>
@@ -3102,10 +3099,10 @@
</value>
</data>
<data name="xrRichText3.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABmAGIAaQBkAGkAcwBcAGEAbgBzAGkAXABhAG4AcwBpAGMAcABnADEAMgA1ADIAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMABcAGYAcwB3AGkAcwBzAFwAZgBwAHIAcQAyAFwAZgBjAGgAYQByAHMAZQB0ADAAIABUAHIAZQBiAHUAYwBoAGUAdAAgAE0AUwA7AH0AewBcAGYAMQBcAGYAbgBpAGwAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AfQANAAoAXAB2AGkAZQB3AGsAaQBuAGQANABcAHUAYwAxAFwAcABhAHIAZABcAGwAdAByAHAAYQByAFwAcQBjAFwAdABxAGMAXAB0AHgANAA1ADMANgBcAHQAcQByAFwAdAB4ADkAMAA3ADIAXABsAGEAbgBnADEAMAAzADEAXABmADAAXABmAHMAMQA2ACAAQgByAFwAJwBmAGMAYwBrAGUAIAAtACAAQQBtAGIAdQBsAGEAbgB0ACAAQgBlAHQAcgBlAHUAdABlAHMAIABXAG8AaABuAGUAbgAgAFwAJwBiADcAIABCAGkAcwBtAGEAcgBjAGsAcwB0AHIALgAgADEAOAAgAFwAJwBiADcAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByACAAXAAnAGIANwAgAEQAZQB1AHQAcwBjAGgAbABhAG4AZAAgAFwAJwBiADcAIABEAGkAcABsAC4AIABTAG8AegAuACAAUABcACcAZQA0AGQALgAgAE0AYQByAGkAYQAgAEgAYQB1AHAAdABzAC0AUABlAHQAZQByAHMAXABsAGkAbgBlACAAVQBTAHQALQBJAGQATgByAC4AOgAgAEQARQAgADIAMwA2ADcAMAA4ADcANgA3ACAAXAAnAGIANwAgAEIAYQBuAGsAdgBlAHIAYgBpAG4AZAB1AG4AZwA6ACAASwBvAG4AdABvAG4AdQBtAG0AZQByACAANwAzADMAMAAwADkAMQAwADIAMwAgAFwAJwBiADcAIABCAEwAWgAgADMAOQAxADYAMgA5ADgAMAAgAFwAJwBiADcAIABWAFIAIABCAGEAbgBrACAAXABwAGEAcgANAAoAVABlAGwAZQBmAG8AbgA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMQAgAFwAJwBiADcAIABUAGUAbABlAGYAYQB4ADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAyAFwAcABhAHIADQAKAEUAbQBhAGkAbAA6ACAAaQBuAGYAbwBAAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQAgAFwAJwBiADcAIABJAG4AdABlAHIAbgBlAHQAOgB3AHcAdwAuAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGYAMQBcAGYAcwAyADQAXABwAGEAcgANAAoAfQANAAoA</value>
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABxAGMAXAB0AHEAYwBcAHQAeAA0ADUAMwA2AFwAdABxAHIAXAB0AHgAOQAwADcAMgBcAGwAYQBuAGcAMQAwADMAMQBcAGYAMABcAGYAcwAxADYAIABCAHIAXAAnAGYAYwBjAGsAZQAgAC0AIABBAG0AYgB1AGwAYQBuAHQAIABCAGUAdAByAGUAdQB0AGUAcwAgAFcAbwBoAG4AZQBuACAAXAAnAGIANwAgAFcAaQBsAGgAZQBsAG0AcwB0AHIAYQBcACcAZABmAGUAIAAzADcAIABcACcAYgA3ACAANQAyADIANAA5ACAARQBzAGMAaAB3AGUAaQBsAGUAcgAgAFwAJwBiADcAIABEAGUAdQB0AHMAYwBoAGwAYQBuAGQAIABcACcAYgA3ACAARABpAHAAbAAuACAAUwBvAHoALgAgAFAAXAAnAGUANABkAC4AIABNAGEAcgBpAGEAIABIAGEAdQBwAHQAcwAtAFAAZQB0AGUAcgBzAFwAbABpAG4AZQAgAFUAUwB0AC0ASQBkAE4AcgAuADoAIABEAEUAIAAyADMANgA3ADAAOAA3ADYANwAgAFwAJwBiADcAIABCAGEAbgBrAHYAZQByAGIAaQBuAGQAdQBuAGcAOgAgAEsAbwBuAHQAbwBuAHUAbQBtAGUAcgAgADcAMwAzADAAMAA5ADEAMAAyADMAIABcACcAYgA3ACAAQgBMAFoAIAAzADkAMQA2ADIAOQA4ADAAIABcACcAYgA3ACAAVgBSACAAQgBhAG4AawAgAFwAcABhAHIADQAKAFQAZQBsAGUAZgBvAG4AOgAgACsANAA5ACAAKAAwACkAIAAyADQAMAAzACAAOAAzACAANwA4ACAAMAAyADEAIABcACcAYgA3ACAAVABlAGwAZQBmAGEAeAA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMgBcAHAAYQByAA0ACgBFAG0AYQBpAGwAOgAgAGkAbgBmAG8AQABiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAIABcACcAYgA3ACAASQBuAHQAZQByAG4AZQB0ADoAdwB3AHcALgBiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAHsAXABjAG8AbABvAHIAdABiAGwAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQA7AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABzAGEAMgAwADAAXABzAGwAMgA3ADYAXABzAGwAbQB1AGwAdAAxAFwAbABhAG4AZwAxADAAMwAxAFwAZgAwAFwAZgBzADEANgAgAEIAcgBcACcAZgBjAGMAawBlAFwAbABpAG4AZQAgAEEAbQBiAHUAbABhAG4AdAAgAEIAZQB0AHIAZQB1AHQAZQBzACAAVwBvAGgAbgBlAG4AXABsAGkAbgBlACAAQgBpAHMAbQBhAHIAYwBrAHMAdAByAC4AIAAxADgAXABsAGkAbgBlACAANQAyADIANAA5ACAARQBzAGMAaAB3AGUAaQBsAGUAcgBcAGwAaQBuAGUAIABEAGUAdQB0AHMAYwBoAGwAYQBuAGQAXABwAGEAcgANAAoAVABlAGwAZQBmAG8AbgA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMQBcAGwAaQBuAGUAIABUAGUAbABlAGYAYQB4ADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAyAFwAcABhAHIADQAKAFwAcABhAHIAZAAgAEUAbQBhAGkAbAA6ACAAXABjAGYAMQBcAHUAbAAgAGkAbgBmAG8AQABiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABjAGYAMABcAHUAbABuAG8AbgBlAFwAbABpAG4AZQAgAEkAbgB0AGUAcgBuAGUAdAA6ACAAdwB3AHcALgBiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABwAGEAcgANAAoAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAHsAXABjAG8AbABvAHIAdABiAGwAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQA7AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABzAGEAMgAwADAAXABzAGwAMgA3ADYAXABzAGwAbQB1AGwAdAAxAFwAbABhAG4AZwAxADAAMwAxAFwAZgAwAFwAZgBzADEANgAgAEIAcgBcACcAZgBjAGMAawBlAFwAbABpAG4AZQAgAEEAbQBiAHUAbABhAG4AdAAgAEIAZQB0AHIAZQB1AHQAZQBzACAAVwBvAGgAbgBlAG4AXABsAGkAbgBlACAAVwBpAGwAaABlAGwAbQBzAHQAcgBhAFwAJwBkAGYAZQAgADMANwBcAGwAaQBuAGUAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByAFwAbABpAG4AZQAgAEQAZQB1AHQAcwBjAGgAbABhAG4AZABcAHAAYQByAA0ACgBUAGUAbABlAGYAbwBuADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAxAFwAbABpAG4AZQAgAFQAZQBsAGUAZgBhAHgAOgAgACsANAA5ACAAKAAwACkAIAAyADQAMAAzACAAOAAzACAANwA4ACAAMAAyADIAXABwAGEAcgANAAoAXABwAGEAcgBkACAARQBtAGEAaQBsADoAIABcAGMAZgAxAFwAdQBsACAAaQBuAGYAbwBAAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGMAZgAwAFwAdQBsAG4AbwBuAGUAXABsAGkAbgBlACAASQBuAHQAZQByAG4AZQB0ADoAIAB3AHcAdwAuAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGYAMQBcAGYAcwAyADQAXABwAGEAcgANAAoAfQANAAoA</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>

File diff suppressed because it is too large Load Diff

View File

@@ -117,9 +117,6 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="xrRichText4.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABmAGIAaQBkAGkAcwBcAGEAbgBzAGkAXABhAG4AcwBpAGMAcABnADEAMgA1ADIAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMABcAGYAcwB3AGkAcwBzAFwAZgBwAHIAcQAyAFwAZgBjAGgAYQByAHMAZQB0ADAAIABBAHIAaQBhAGwAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABsAHQAcgBwAGEAcgBcAGwAYQBuAGcAMQAwADIANABcAHUAbABcAGYAMABcAGYAcwAxADQAIABCAHIAXAAnAGYAYwBjAGsAZQAgAC0AIABBAEIAVwAgAFwAJwBiADcAIABCAGkAcwBtAGEAcgBjAGsAcwB0AHIALgAgADEAOAAgAFwAJwBiADcAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByAFwAbABhAG4AZwAxADAAMwAxAFwAdQBsAG4AbwBuAGUAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABxAGoAXAB0AHEAYwBcAHQAeAA0ADUAMwA2AFwAdABxAHIAXAB0AHgAOQAwADcAMgBcAGwAYQBuAGcAMQAwADMAMQBcAGIAXABmADAAXABmAHMAMgAyACAASQBuAGQAaQB2AGkAZAB1AGUAbABsAGUAIABBAGwAbAB0AGEAZwBzAGgAaQBsAGYAZQBuACAAZgBcACcAZgBjAHIAIABNAGUAbgBzAGMAaABlAG4AIABtAGkAdAAgAFwAcABhAHIADQAKAFwAcABhAHIAZAAgAGsAXAAnAGYANgByAHAAZQByAGwAaQBjAGgAZQByACwAIABnAGUAaQBzAHQAaQBnAGUAcgAgAHUAbgBkAC8AbwBkAGUAcgAgAHMAZQBlAGwAaQBzAGMAaABlAHIAXABwAGEAcgANAAoAQgBlAGgAaQBuAGQAZQByAHUAbgBnAFwAYgAwAFwAZgAxAFwAZgBzADIANABcAHAAYQByAA0ACgB9AA0ACgA=</value>
</data>
@@ -3102,10 +3099,10 @@
</value>
</data>
<data name="xrRichText3.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABmAGIAaQBkAGkAcwBcAGEAbgBzAGkAXABhAG4AcwBpAGMAcABnADEAMgA1ADIAXABkAGUAZgBmADAAewBcAGYAbwBuAHQAdABiAGwAewBcAGYAMABcAGYAcwB3AGkAcwBzAFwAZgBwAHIAcQAyAFwAZgBjAGgAYQByAHMAZQB0ADAAIABUAHIAZQBiAHUAYwBoAGUAdAAgAE0AUwA7AH0AewBcAGYAMQBcAGYAbgBpAGwAIABUAGkAbQBlAHMAIABOAGUAdwAgAFIAbwBtAGEAbgA7AH0AfQANAAoAXAB2AGkAZQB3AGsAaQBuAGQANABcAHUAYwAxAFwAcABhAHIAZABcAGwAdAByAHAAYQByAFwAcQBjAFwAdABxAGMAXAB0AHgANAA1ADMANgBcAHQAcQByAFwAdAB4ADkAMAA3ADIAXABsAGEAbgBnADEAMAAzADEAXABmADAAXABmAHMAMQA2ACAAQgByAFwAJwBmAGMAYwBrAGUAIAAtACAAQQBtAGIAdQBsAGEAbgB0ACAAQgBlAHQAcgBlAHUAdABlAHMAIABXAG8AaABuAGUAbgAgAFwAJwBiADcAIABCAGkAcwBtAGEAcgBjAGsAcwB0AHIALgAgADEAOAAgAFwAJwBiADcAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByACAAXAAnAGIANwAgAEQAZQB1AHQAcwBjAGgAbABhAG4AZAAgAFwAJwBiADcAIABEAGkAcABsAC4AIABTAG8AegAuACAAUABcACcAZQA0AGQALgAgAE0AYQByAGkAYQAgAEgAYQB1AHAAdABzAC0AUABlAHQAZQByAHMAXABsAGkAbgBlACAAVQBTAHQALQBJAGQATgByAC4AOgAgAEQARQAgADIAMwA2ADcAMAA4ADcANgA3ACAAXAAnAGIANwAgAEIAYQBuAGsAdgBlAHIAYgBpAG4AZAB1AG4AZwA6ACAASwBvAG4AdABvAG4AdQBtAG0AZQByACAANwAzADMAMAAwADkAMQAwADIAMwAgAFwAJwBiADcAIABCAEwAWgAgADMAOQAxADYAMgA5ADgAMAAgAFwAJwBiADcAIABWAFIAIABCAGEAbgBrACAAXABwAGEAcgANAAoAVABlAGwAZQBmAG8AbgA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMQAgAFwAJwBiADcAIABUAGUAbABlAGYAYQB4ADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAyAFwAcABhAHIADQAKAEUAbQBhAGkAbAA6ACAAaQBuAGYAbwBAAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQAgAFwAJwBiADcAIABJAG4AdABlAHIAbgBlAHQAOgB3AHcAdwAuAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGYAMQBcAGYAcwAyADQAXABwAGEAcgANAAoAfQANAAoA</value>
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABxAGMAXAB0AHEAYwBcAHQAeAA0ADUAMwA2AFwAdABxAHIAXAB0AHgAOQAwADcAMgBcAGwAYQBuAGcAMQAwADMAMQBcAGYAMABcAGYAcwAxADYAIABCAHIAXAAnAGYAYwBjAGsAZQAgAC0AIABBAG0AYgB1AGwAYQBuAHQAIABCAGUAdAByAGUAdQB0AGUAcwAgAFcAbwBoAG4AZQBuACAAXAAnAGIANwAgAFcAaQBsAGgAZQBsAG0AcwB0AHIAYQBcACcAZABmAGUAIAAzADcAIABcACcAYgA3ACAANQAyADIANAA5ACAARQBzAGMAaAB3AGUAaQBsAGUAcgAgAFwAJwBiADcAIABEAGUAdQB0AHMAYwBoAGwAYQBuAGQAIABcACcAYgA3ACAARABpAHAAbAAuACAAUwBvAHoALgAgAFAAXAAnAGUANABkAC4AIABNAGEAcgBpAGEAIABIAGEAdQBwAHQAcwAtAFAAZQB0AGUAcgBzAFwAbABpAG4AZQAgAFUAUwB0AC0ASQBkAE4AcgAuADoAIABEAEUAIAAyADMANgA3ADAAOAA3ADYANwAgAFwAJwBiADcAIABCAGEAbgBrAHYAZQByAGIAaQBuAGQAdQBuAGcAOgAgAEsAbwBuAHQAbwBuAHUAbQBtAGUAcgAgADcAMwAzADAAMAA5ADEAMAAyADMAIABcACcAYgA3ACAAQgBMAFoAIAAzADkAMQA2ADIAOQA4ADAAIABcACcAYgA3ACAAVgBSACAAQgBhAG4AawAgAFwAcABhAHIADQAKAFQAZQBsAGUAZgBvAG4AOgAgACsANAA5ACAAKAAwACkAIAAyADQAMAAzACAAOAAzACAANwA4ACAAMAAyADEAIABcACcAYgA3ACAAVABlAGwAZQBmAGEAeAA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMgBcAHAAYQByAA0ACgBFAG0AYQBpAGwAOgAgAGkAbgBmAG8AQABiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAIABcACcAYgA3ACAASQBuAHQAZQByAG4AZQB0ADoAdwB3AHcALgBiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<data name="xrRichText2.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAHsAXABjAG8AbABvAHIAdABiAGwAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQA7AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABzAGEAMgAwADAAXABzAGwAMgA3ADYAXABzAGwAbQB1AGwAdAAxAFwAbABhAG4AZwAxADAAMwAxAFwAZgAwAFwAZgBzADEANgAgAEIAcgBcACcAZgBjAGMAawBlAFwAbABpAG4AZQAgAEEAbQBiAHUAbABhAG4AdAAgAEIAZQB0AHIAZQB1AHQAZQBzACAAVwBvAGgAbgBlAG4AXABsAGkAbgBlACAAQgBpAHMAbQBhAHIAYwBrAHMAdAByAC4AIAAxADgAXABsAGkAbgBlACAANQAyADIANAA5ACAARQBzAGMAaAB3AGUAaQBsAGUAcgBcAGwAaQBuAGUAIABEAGUAdQB0AHMAYwBoAGwAYQBuAGQAXABwAGEAcgANAAoAVABlAGwAZQBmAG8AbgA6ACAAKwA0ADkAIAAoADAAKQAgADIANAAwADMAIAA4ADMAIAA3ADgAIAAwADIAMQBcAGwAaQBuAGUAIABUAGUAbABlAGYAYQB4ADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAyAFwAcABhAHIADQAKAFwAcABhAHIAZAAgAEUAbQBhAGkAbAA6ACAAXABjAGYAMQBcAHUAbAAgAGkAbgBmAG8AQABiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABjAGYAMABcAHUAbABuAG8AbgBlAFwAbABpAG4AZQAgAEkAbgB0AGUAcgBuAGUAdAA6ACAAdwB3AHcALgBiAHIAdQBlAGMAawBlAC0AYQBiAHcALgBkAGUAXABwAGEAcgANAAoAXABmADEAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAHMAdwBpAHMAcwBcAGYAcAByAHEAMgBcAGYAYwBoAGEAcgBzAGUAdAAwACAAVAByAGUAYgB1AGMAaABlAHQAIABNAFMAOwB9AHsAXABmADEAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAHsAXABjAG8AbABvAHIAdABiAGwAIAA7AFwAcgBlAGQAMABcAGcAcgBlAGUAbgAwAFwAYgBsAHUAZQAyADUANQA7AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABzAGEAMgAwADAAXABzAGwAMgA3ADYAXABzAGwAbQB1AGwAdAAxAFwAbABhAG4AZwAxADAAMwAxAFwAZgAwAFwAZgBzADEANgAgAEIAcgBcACcAZgBjAGMAawBlAFwAbABpAG4AZQAgAEEAbQBiAHUAbABhAG4AdAAgAEIAZQB0AHIAZQB1AHQAZQBzACAAVwBvAGgAbgBlAG4AXABsAGkAbgBlACAAVwBpAGwAaABlAGwAbQBzAHQAcgBhAFwAJwBkAGYAZQAgADMANwBcAGwAaQBuAGUAIAA1ADIAMgA0ADkAIABFAHMAYwBoAHcAZQBpAGwAZQByAFwAbABpAG4AZQAgAEQAZQB1AHQAcwBjAGgAbABhAG4AZABcAHAAYQByAA0ACgBUAGUAbABlAGYAbwBuADoAIAArADQAOQAgACgAMAApACAAMgA0ADAAMwAgADgAMwAgADcAOAAgADAAMgAxAFwAbABpAG4AZQAgAFQAZQBsAGUAZgBhAHgAOgAgACsANAA5ACAAKAAwACkAIAAyADQAMAAzACAAOAAzACAANwA4ACAAMAAyADIAXABwAGEAcgANAAoAXABwAGEAcgBkACAARQBtAGEAaQBsADoAIABcAGMAZgAxAFwAdQBsACAAaQBuAGYAbwBAAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGMAZgAwAFwAdQBsAG4AbwBuAGUAXABsAGkAbgBlACAASQBuAHQAZQByAG4AZQB0ADoAIAB3AHcAdwAuAGIAcgB1AGUAYwBrAGUALQBhAGIAdwAuAGQAZQBcAGYAMQBcAGYAcwAyADQAXABwAGEAcgANAAoAfQANAAoA</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>

View File

@@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -40,10 +40,12 @@ namespace BeWo.HphBersenbrueckAtz
{
isFls = true;
}
if ((s.ServiceCategory.Contains("Intern") || s.ServiceDescription.Contains("L8")) && !s.ServiceDescription.Contains("L6") && !s.ServiceDescription.Contains("L1"))
if (s.ServiceCategory.ToLower().Contains("intern") && s.ServiceCategory.ToLower().Contains("wfbm ab 1.8."))
{
te = s.Minutes / 60;
}
else if ((s.ServiceCategory.Contains("Intern") || s.ServiceDescription.Contains("L8")) && !s.ServiceDescription.Contains("L6") && !s.ServiceDescription.Contains("L1"))
{
te = minuten / 45;
//var rest = minuten % 45;

View File

@@ -52,9 +52,16 @@ namespace HphBersenbrueckFreizeitUndReisen
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.lblTitel = new DevExpress.XtraReports.UI.XRLabel();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrTableGesamt = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRowGesamt = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableGesamt)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -227,9 +234,12 @@ namespace HphBersenbrueckFreizeitUndReisen
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableGesamt,
this.lblTitel});
this.ReportHeader.HeightF = 50F;
this.ReportHeader.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
this.ReportHeader.HeightF = 70F;
this.ReportHeader.Name = "ReportHeader";
this.ReportHeader.StylePriority.UseFont = false;
//
// lblTitel
//
@@ -247,6 +257,58 @@ namespace HphBersenbrueckFreizeitUndReisen
//
this.bindingSource1.DataSource = typeof(HphBersenbrueckFreizeitUndReisen.AuswertungEingliederungshilfeRO);
//
// xrTableGesamt
//
this.xrTableGesamt.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableGesamt.LocationFloat = new DevExpress.Utils.PointFloat(0F, 45F);
this.xrTableGesamt.Name = "xrTableGesamt";
this.xrTableGesamt.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRowGesamt});
this.xrTableGesamt.SizeF = new System.Drawing.SizeF(640F, 25F);
this.xrTableGesamt.StylePriority.UseBackColor = false;
this.xrTableGesamt.StylePriority.UseBorders = false;
this.xrTableGesamt.StylePriority.UsePadding = false;
this.xrTableGesamt.StylePriority.UseTextAlignment = false;
this.xrTableGesamt.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrTableRowGesamt
//
this.xrTableRowGesamt.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell5,
this.xrTableCell6,
this.xrTableCell7,
this.xrTableCell8});
this.xrTableRowGesamt.Name = "xrTableRowGesamt";
this.xrTableRowGesamt.Weight = 1.25D;
//
// xrTableCell5
//
this.xrTableCell5.Name = "xrTableCell5";
this.xrTableCell5.Weight = 0.045287729552887165D;
//
// xrTableCell6
//
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.StylePriority.UseBackColor = false;
this.xrTableCell6.Weight = 0.099633007057251324D;
//
// xrTableCell7
//
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.StylePriority.UseBackColor = false;
this.xrTableCell7.Weight = 0.072460370260993362D;
//
// xrTableCell8
//
this.xrTableCell8.BorderWidth = 1F;
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.StylePriority.UseBackColor = false;
this.xrTableCell8.StylePriority.UseBorders = false;
this.xrTableCell8.StylePriority.UseBorderWidth = false;
this.xrTableCell8.Weight = 0.36230185317541913D;
//
// AuswertungEingliederungshilfe
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -273,6 +335,7 @@ namespace HphBersenbrueckFreizeitUndReisen
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableGesamt)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -301,5 +364,11 @@ namespace HphBersenbrueckFreizeitUndReisen
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2;
private DevExpress.XtraReports.UI.ReportHeaderBand ReportHeader;
private DevExpress.XtraReports.UI.XRLabel lblTitel;
private DevExpress.XtraReports.UI.XRTable xrTableGesamt;
private DevExpress.XtraReports.UI.XRTableRow xrTableRowGesamt;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
}
}

View File

@@ -25,7 +25,6 @@ namespace HphBersenbrueckFreizeitUndReisen
[IDSpecificClass(Identifier = "AuswertungEingliederungshilfe")]
public partial class AuswertungEingliederungshilfe : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
{
public AuswertungEingliederungshilfe()
{
InitializeComponent();
@@ -38,9 +37,7 @@ namespace HphBersenbrueckFreizeitUndReisen
this.bindingSource1.DataSource = ro;
}
private AuswertungEingliederungshilfeRO CreateRo(QueryRO queryRo)
{
AuswertungEingliederungshilfeRO result = new AuswertungEingliederungshilfeRO();
@@ -110,6 +107,7 @@ namespace HphBersenbrueckFreizeitUndReisen
var dict = CreateHeader(result, reportStart, reportEnde);
CreateDataRows(result, dict);
CreateSummenRows(result, dict, reportStart, reportEnde);
return result;
}
@@ -162,6 +160,74 @@ namespace HphBersenbrueckFreizeitUndReisen
xrTableDetail.EndInit();
}
private void CreateSummenRows(AuswertungEingliederungshilfeRO result, Dictionary<string, int> dict, DateTime reportStart, DateTime reportEnd)
{
for (int i = 4; i < xrTableRowDetail.Cells.Count; i++)
{
AddNewDataCell(xrTableRowGesamt, "", Color.Transparent);
}
xrTableGesamt.Width = xrTableRowGesamt.Cells.Count * 100;
for (int i = xrTableRowGesamt.Cells.Count - 1; i > 4; i--)
{
xrTableRowGesamt.Cells[i].Weight = (i * 100);
}
for (int i = 0; i < xrTableRowGesamt.Cells.Count; i++)
{
xrTableRowGesamt.Cells[i].Weight = 100;
}
xrTableRowGesamt.Cells[0].Width = 60;
decimal gesamtStd = 0;
decimal gesamtKontingent = 0;
decimal gesamtVerbraucht = 0;
foreach (var dro in result.DetailList)
{
gesamtStd += dro.GesamtStunden;
gesamtKontingent += dro.Kontingent;
gesamtVerbraucht += dro.Bereitsverbraucht;
}
decimal nochOffen = gesamtKontingent - gesamtVerbraucht;
if (xrTableRowGesamt.Cells.Count > 4)
{
xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 1].Text = String.Format("{0:0.00}", nochOffen);
xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 2].Text =
String.Format("{0:0.00}", gesamtVerbraucht);
xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 3].Text =
String.Format("{0:0.00}", gesamtKontingent);
xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 4].Text = String.Format("{0:0.00}", gesamtStd);
}
DateTime datum = reportStart;
int index = 4;
while (datum <= reportEnd)
{
String key = String.Format("{0:yyyyMM}", datum);
if (index < xrTableRowGesamt.Cells.Count)
{
decimal gesamtStdMonat = 0;
foreach (var dro in result.DetailList)
{
if (dro.StundenMonat2Wert.ContainsKey(key))
{
gesamtStdMonat += dro.StundenMonat2Wert[key];
}
}
xrTableRowGesamt.Cells[index].Text = String.Format("{0:0.00}", gesamtStdMonat);
}
index++;
datum = datum.AddMonths(1);
}
}
private void CreateDataRowCells(AuswertungEingliederungshilfeDetailRO detail, XRTableRow row, Dictionary<string, int> dict)
{
AddNewDataCell(row, detail.Nummer, Color.Transparent);
@@ -225,7 +291,7 @@ namespace HphBersenbrueckFreizeitUndReisen
}
return null;
}
}
private Dictionary<String, int> CreateHeader(AuswertungEingliederungshilfeRO result, DateTime reportStart, DateTime reportEnde)
{
@@ -259,7 +325,7 @@ namespace HphBersenbrueckFreizeitUndReisen
xrTableHeader.Width = xrTableRowHeader.Cells.Count * 100;
if (xrTableHeader.Width > this.PageWidth + 100)
if (xrTableHeader.Width > this.PageWidth - 100)
{
this.PageWidth = xrTableHeader.Width + 100;
}

View File

@@ -30,6 +30,23 @@ namespace HphBersenbrueckFreizeitUndReisen
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary2 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary3 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary4 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary5 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary6 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary7 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary8 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary9 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary10 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary11 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary12 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary13 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary14 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary15 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary16 = new DevExpress.XtraReports.UI.XRSummary();
DevExpress.XtraReports.UI.XRSummary xrSummary17 = new DevExpress.XtraReports.UI.XRSummary();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.xrTableDetail = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRowDetail = new DevExpress.XtraReports.UI.XRTableRow();
@@ -91,14 +108,32 @@ namespace HphBersenbrueckFreizeitUndReisen
this.fieldQ3 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldGesamt = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldQ4 = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell61 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellKmPreisJan = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell63 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell64 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell65 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell66 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell67 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell68 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell69 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell70 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell71 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell72 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell73 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell74 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell75 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell76 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell77 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell78 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell40 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell41 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell42 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
this.cellSummeJan = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell45 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell46 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -115,10 +150,28 @@ namespace HphBersenbrueckFreizeitUndReisen
this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell59 = new DevExpress.XtraReports.UI.XRTableCell();
this.fieldKmPreisJan = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisFeb = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisMar = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisQ1 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisOkt = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisApr = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisAug = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisSep = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisNov = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisDez = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisQ2 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisQ3 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisQ4 = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisMai = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisJun = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisJul = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldKmPreisGesamt = new DevExpress.XtraReports.UI.CalculatedField();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -175,6 +228,10 @@ namespace HphBersenbrueckFreizeitUndReisen
this.xrTableCell23.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Mitarbeiter")});
this.xrTableCell23.Name = "xrTableCell23";
this.xrTableCell23.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell23.StylePriority.UsePadding = false;
this.xrTableCell23.StylePriority.UseTextAlignment = false;
this.xrTableCell23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell23.Weight = 0.051451150299989729D;
//
// xrTableCell24
@@ -182,6 +239,10 @@ namespace HphBersenbrueckFreizeitUndReisen
this.xrTableCell24.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.KlientName")});
this.xrTableCell24.Name = "xrTableCell24";
this.xrTableCell24.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell24.StylePriority.UsePadding = false;
this.xrTableCell24.StylePriority.UseTextAlignment = false;
this.xrTableCell24.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell24.Weight = 0.051451150299989729D;
//
// xrTableCell22
@@ -189,6 +250,10 @@ namespace HphBersenbrueckFreizeitUndReisen
this.xrTableCell22.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Kostentraeger")});
this.xrTableCell22.Name = "xrTableCell22";
this.xrTableCell22.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell22.StylePriority.UsePadding = false;
this.xrTableCell22.StylePriority.UseTextAlignment = false;
this.xrTableCell22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell22.Weight = 0.051451150299989729D;
//
// xrTableCell26
@@ -389,15 +454,23 @@ namespace HphBersenbrueckFreizeitUndReisen
// xrTableCell2
//
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell2.StylePriority.UsePadding = false;
this.xrTableCell2.StylePriority.UseTextAlignment = false;
this.xrTableCell2.Text = "Mitarbeiter";
this.xrTableCell2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell2.Weight = 0.13586319206016073D;
//
// xrTableCell5
//
this.xrTableCell5.Multiline = true;
this.xrTableCell5.Name = "xrTableCell5";
this.xrTableCell5.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell5.StylePriority.UseBackColor = false;
this.xrTableCell5.StylePriority.UsePadding = false;
this.xrTableCell5.StylePriority.UseTextAlignment = false;
this.xrTableCell5.Text = "Betreute";
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell5.Weight = 0.13586319047566994D;
//
// cellBemerkung
@@ -405,10 +478,14 @@ namespace HphBersenbrueckFreizeitUndReisen
this.cellBemerkung.BorderWidth = 1F;
this.cellBemerkung.Multiline = true;
this.cellBemerkung.Name = "cellBemerkung";
this.cellBemerkung.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.cellBemerkung.StylePriority.UseBackColor = false;
this.cellBemerkung.StylePriority.UseBorders = false;
this.cellBemerkung.StylePriority.UseBorderWidth = false;
this.cellBemerkung.StylePriority.UsePadding = false;
this.cellBemerkung.StylePriority.UseTextAlignment = false;
this.cellBemerkung.Text = "Kostenträger\r\n";
this.cellBemerkung.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.cellBemerkung.Weight = 0.13586319625390542D;
//
// xrTableCell3
@@ -680,16 +757,12 @@ namespace HphBersenbrueckFreizeitUndReisen
this.fieldQ4.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldQ4.Name = "fieldQ4";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(HphBersenbrueckFreizeitUndReisen.AuswertungFahrtkostenRO);
//
// GroupHeader1
//
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable1});
this.GroupHeader1.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
this.GroupHeader1.HeightF = 40F;
this.GroupHeader1.HeightF = 80F;
this.GroupHeader1.Level = 1;
this.GroupHeader1.Name = "GroupHeader1";
this.GroupHeader1.StylePriority.UseFont = false;
@@ -702,21 +775,180 @@ namespace HphBersenbrueckFreizeitUndReisen
this.xrTable1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable1.Name = "xrTable1";
this.xrTable1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow2,
this.xrTableRow1});
this.xrTable1.SizeF = new System.Drawing.SizeF(1690F, 40F);
this.xrTable1.SizeF = new System.Drawing.SizeF(1690F, 80F);
this.xrTable1.StylePriority.UseBackColor = false;
this.xrTable1.StylePriority.UseBorders = false;
this.xrTable1.StylePriority.UsePadding = false;
this.xrTable1.StylePriority.UseTextAlignment = false;
this.xrTable1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrTableRow2
//
this.xrTableRow2.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell43,
this.xrTableCell61,
this.cellKmPreisJan,
this.xrTableCell63,
this.xrTableCell64,
this.xrTableCell65,
this.xrTableCell66,
this.xrTableCell67,
this.xrTableCell68,
this.xrTableCell69,
this.xrTableCell70,
this.xrTableCell71,
this.xrTableCell72,
this.xrTableCell73,
this.xrTableCell74,
this.xrTableCell75,
this.xrTableCell76,
this.xrTableCell77,
this.xrTableCell78});
this.xrTableRow2.Name = "xrTableRow2";
this.xrTableRow2.Weight = 2D;
//
// xrTableCell43
//
this.xrTableCell43.Name = "xrTableCell43";
this.xrTableCell43.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell43.StylePriority.UsePadding = false;
this.xrTableCell43.StylePriority.UseTextAlignment = false;
this.xrTableCell43.Text = "(Gesamtkilometer*0,27 Euro)";
this.xrTableCell43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell43.Weight = 0.27172638582107111D;
//
// xrTableCell61
//
this.xrTableCell61.Name = "xrTableCell61";
this.xrTableCell61.Weight = 0.135863192968665D;
//
// cellKmPreisJan
//
this.cellKmPreisJan.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisJan", "{0:c}")});
this.cellKmPreisJan.Name = "cellKmPreisJan";
this.cellKmPreisJan.Weight = 0.0634028239109037D;
//
// xrTableCell63
//
this.xrTableCell63.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisFeb", "{0:c}")});
this.xrTableCell63.Name = "xrTableCell63";
this.xrTableCell63.Weight = 0.063402823910903683D;
//
// xrTableCell64
//
this.xrTableCell64.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisMar", "{0:c}")});
this.xrTableCell64.Name = "xrTableCell64";
this.xrTableCell64.Weight = 0.063402824066715879D;
//
// xrTableCell65
//
this.xrTableCell65.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisQ1", "{0:c}")});
this.xrTableCell65.Name = "xrTableCell65";
this.xrTableCell65.Weight = 0.072460370083724954D;
//
// xrTableCell66
//
this.xrTableCell66.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisApr", "{0:c}")});
this.xrTableCell66.Name = "xrTableCell66";
this.xrTableCell66.Weight = 0.063402823832997612D;
//
// xrTableCell67
//
this.xrTableCell67.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisMai", "{0:c}")});
this.xrTableCell67.Name = "xrTableCell67";
this.xrTableCell67.Weight = 0.063402823910903683D;
//
// xrTableCell68
//
this.xrTableCell68.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisJun", "{0:c}")});
this.xrTableCell68.Name = "xrTableCell68";
this.xrTableCell68.Weight = 0.063402824066715879D;
//
// xrTableCell69
//
this.xrTableCell69.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisQ2", "{0:c}")});
this.xrTableCell69.Name = "xrTableCell69";
this.xrTableCell69.Weight = 0.072460370083724954D;
//
// xrTableCell70
//
this.xrTableCell70.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisJul", "{0:c}")});
this.xrTableCell70.Name = "xrTableCell70";
this.xrTableCell70.Weight = 0.063402823832997585D;
//
// xrTableCell71
//
this.xrTableCell71.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisAug", "{0:c}")});
this.xrTableCell71.Name = "xrTableCell71";
this.xrTableCell71.Weight = 0.063402823910903738D;
//
// xrTableCell72
//
this.xrTableCell72.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisSep", "{0:c}")});
this.xrTableCell72.Name = "xrTableCell72";
this.xrTableCell72.Weight = 0.063402824066715935D;
//
// xrTableCell73
//
this.xrTableCell73.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisQ3", "{0:c}")});
this.xrTableCell73.Name = "xrTableCell73";
this.xrTableCell73.Weight = 0.0724603700447719D;
//
// xrTableCell74
//
this.xrTableCell74.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisOkt", "{0:c}")});
this.xrTableCell74.Name = "xrTableCell74";
this.xrTableCell74.Weight = 0.063402823794044549D;
//
// xrTableCell75
//
this.xrTableCell75.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisNov", "{0:c}")});
this.xrTableCell75.Name = "xrTableCell75";
this.xrTableCell75.Weight = 0.063402823832997585D;
//
// xrTableCell76
//
this.xrTableCell76.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisDez", "{0:c}")});
this.xrTableCell76.Name = "xrTableCell76";
this.xrTableCell76.Weight = 0.063402823910903683D;
//
// xrTableCell77
//
this.xrTableCell77.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisQ4", "{0:c}")});
this.xrTableCell77.Name = "xrTableCell77";
this.xrTableCell77.Weight = 0.072460370161631107D;
//
// xrTableCell78
//
this.xrTableCell78.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldKmPreisGesamt", "{0:c}")});
this.xrTableCell78.Name = "xrTableCell78";
this.xrTableCell78.Weight = 0.072460370161631107D;
//
// xrTableRow1
//
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell40,
this.xrTableCell41,
this.xrTableCell42,
this.xrTableCell43,
this.cellSummeJan,
this.xrTableCell44,
this.xrTableCell45,
this.xrTableCell46,
@@ -739,14 +971,12 @@ namespace HphBersenbrueckFreizeitUndReisen
// xrTableCell40
//
this.xrTableCell40.Name = "xrTableCell40";
this.xrTableCell40.Weight = 0.13586319206016073D;
//
// xrTableCell41
//
this.xrTableCell41.Multiline = true;
this.xrTableCell41.Name = "xrTableCell41";
this.xrTableCell41.StylePriority.UseBackColor = false;
this.xrTableCell41.Weight = 0.13586319047566994D;
this.xrTableCell40.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 0, 0, 0, 100F);
this.xrTableCell40.StylePriority.UsePadding = false;
this.xrTableCell40.StylePriority.UseTextAlignment = false;
this.xrTableCell40.Text = "Gesamtkilometer";
this.xrTableCell40.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell40.Weight = 0.27172638582107111D;
//
// xrTableCell42
//
@@ -756,133 +986,343 @@ namespace HphBersenbrueckFreizeitUndReisen
this.xrTableCell42.StylePriority.UseBackColor = false;
this.xrTableCell42.StylePriority.UseBorders = false;
this.xrTableCell42.StylePriority.UseBorderWidth = false;
this.xrTableCell42.Weight = 0.13586319625390542D;
this.xrTableCell42.Weight = 0.135863192968665D;
//
// xrTableCell43
// cellSummeJan
//
this.xrTableCell43.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell43.Name = "xrTableCell43";
this.xrTableCell43.StylePriority.UseBackColor = false;
this.xrTableCell43.Weight = 0.0634028239109037D;
this.cellSummeJan.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.cellSummeJan.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Jan")});
this.cellSummeJan.Name = "cellSummeJan";
this.cellSummeJan.StylePriority.UseBackColor = false;
xrSummary1.FormatString = "{0:0.00}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.cellSummeJan.Summary = xrSummary1;
this.cellSummeJan.Weight = 0.0634028239109037D;
//
// xrTableCell44
//
this.xrTableCell44.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell44.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Feb")});
this.xrTableCell44.Name = "xrTableCell44";
this.xrTableCell44.StylePriority.UseBackColor = false;
xrSummary2.FormatString = "{0:0.00}";
xrSummary2.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell44.Summary = xrSummary2;
this.xrTableCell44.Weight = 0.063402823910903683D;
//
// xrTableCell45
//
this.xrTableCell45.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell45.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Maer")});
this.xrTableCell45.Name = "xrTableCell45";
this.xrTableCell45.StylePriority.UseBackColor = false;
xrSummary3.FormatString = "{0:0.00}";
xrSummary3.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell45.Summary = xrSummary3;
this.xrTableCell45.Weight = 0.063402824066715879D;
//
// xrTableCell46
//
this.xrTableCell46.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(153)))), ((int)(((byte)(204)))));
this.xrTableCell46.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldQ1")});
this.xrTableCell46.Multiline = true;
this.xrTableCell46.Name = "xrTableCell46";
this.xrTableCell46.StylePriority.UseBackColor = false;
xrSummary4.FormatString = "{0:0.00}";
xrSummary4.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell46.Summary = xrSummary4;
this.xrTableCell46.Weight = 0.072460370083724954D;
//
// xrTableCell47
//
this.xrTableCell47.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell47.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Apr")});
this.xrTableCell47.Name = "xrTableCell47";
this.xrTableCell47.StylePriority.UseBackColor = false;
xrSummary5.FormatString = "{0:0.00}";
xrSummary5.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell47.Summary = xrSummary5;
this.xrTableCell47.Weight = 0.063402823832997612D;
//
// xrTableCell48
//
this.xrTableCell48.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell48.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Mai")});
this.xrTableCell48.Name = "xrTableCell48";
this.xrTableCell48.StylePriority.UseBackColor = false;
this.xrTableCell48.StylePriority.UseTextAlignment = false;
xrSummary6.FormatString = "{0:0.00}";
xrSummary6.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell48.Summary = xrSummary6;
this.xrTableCell48.Weight = 0.063402823910903683D;
//
// xrTableCell49
//
this.xrTableCell49.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell49.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Jun")});
this.xrTableCell49.Name = "xrTableCell49";
this.xrTableCell49.StylePriority.UseBackColor = false;
xrSummary7.FormatString = "{0:0.00}";
xrSummary7.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell49.Summary = xrSummary7;
this.xrTableCell49.Weight = 0.063402824066715879D;
//
// xrTableCell50
//
this.xrTableCell50.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(153)))), ((int)(((byte)(204)))));
this.xrTableCell50.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldQ2")});
this.xrTableCell50.Multiline = true;
this.xrTableCell50.Name = "xrTableCell50";
this.xrTableCell50.StylePriority.UseBackColor = false;
xrSummary8.FormatString = "{0:0.00}";
xrSummary8.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell50.Summary = xrSummary8;
this.xrTableCell50.Weight = 0.072460370083724954D;
//
// xrTableCell51
//
this.xrTableCell51.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell51.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Jul")});
this.xrTableCell51.Name = "xrTableCell51";
this.xrTableCell51.StylePriority.UseBackColor = false;
xrSummary9.FormatString = "{0:0.00}";
xrSummary9.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell51.Summary = xrSummary9;
this.xrTableCell51.Weight = 0.063402823832997585D;
//
// xrTableCell52
//
this.xrTableCell52.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell52.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Aug")});
this.xrTableCell52.Name = "xrTableCell52";
this.xrTableCell52.StylePriority.UseBackColor = false;
xrSummary10.FormatString = "{0:0.00}";
xrSummary10.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell52.Summary = xrSummary10;
this.xrTableCell52.Weight = 0.063402823910903738D;
//
// xrTableCell53
//
this.xrTableCell53.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell53.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Sep")});
this.xrTableCell53.Name = "xrTableCell53";
this.xrTableCell53.StylePriority.UseBackColor = false;
xrSummary11.FormatString = "{0:0.00}";
xrSummary11.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell53.Summary = xrSummary11;
this.xrTableCell53.Weight = 0.063402824066715935D;
//
// xrTableCell54
//
this.xrTableCell54.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(153)))), ((int)(((byte)(204)))));
this.xrTableCell54.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldQ3")});
this.xrTableCell54.Multiline = true;
this.xrTableCell54.Name = "xrTableCell54";
this.xrTableCell54.StylePriority.UseBackColor = false;
xrSummary12.FormatString = "{0:0.00}";
xrSummary12.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell54.Summary = xrSummary12;
this.xrTableCell54.Weight = 0.0724603700447719D;
//
// xrTableCell55
//
this.xrTableCell55.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell55.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Okt")});
this.xrTableCell55.Name = "xrTableCell55";
this.xrTableCell55.StylePriority.UseBackColor = false;
xrSummary13.FormatString = "{0:0.00}";
xrSummary13.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell55.Summary = xrSummary13;
this.xrTableCell55.Weight = 0.063402823794044549D;
//
// xrTableCell56
//
this.xrTableCell56.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell56.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Nov")});
this.xrTableCell56.Name = "xrTableCell56";
this.xrTableCell56.StylePriority.UseBackColor = false;
xrSummary14.FormatString = "{0:0.00}";
xrSummary14.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell56.Summary = xrSummary14;
this.xrTableCell56.Weight = 0.063402823832997585D;
//
// xrTableCell57
//
this.xrTableCell57.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell57.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.Dez")});
this.xrTableCell57.Name = "xrTableCell57";
this.xrTableCell57.StylePriority.UseBackColor = false;
xrSummary15.FormatString = "{0:0.00}";
xrSummary15.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell57.Summary = xrSummary15;
this.xrTableCell57.Weight = 0.063402823910903683D;
//
// xrTableCell58
//
this.xrTableCell58.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(153)))), ((int)(((byte)(204)))));
this.xrTableCell58.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldQ4")});
this.xrTableCell58.Multiline = true;
this.xrTableCell58.Name = "xrTableCell58";
this.xrTableCell58.StylePriority.UseBackColor = false;
xrSummary16.FormatString = "{0:0.00}";
xrSummary16.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell58.Summary = xrSummary16;
this.xrTableCell58.Weight = 0.072460370161631107D;
//
// xrTableCell59
//
this.xrTableCell59.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(153)))));
this.xrTableCell59.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "DetailList.fieldGesamt")});
this.xrTableCell59.Multiline = true;
this.xrTableCell59.Name = "xrTableCell59";
this.xrTableCell59.StylePriority.UseBackColor = false;
xrSummary17.FormatString = "{0:0.00}";
xrSummary17.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrTableCell59.Summary = xrSummary17;
this.xrTableCell59.Weight = 0.072460370161631107D;
//
// fieldKmPreisJan
//
this.fieldKmPreisJan.DataMember = "DetailList";
this.fieldKmPreisJan.Expression = "[].Sum([Jan]) * 0.27";
this.fieldKmPreisJan.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisJan.Name = "fieldKmPreisJan";
//
// fieldKmPreisFeb
//
this.fieldKmPreisFeb.DataMember = "DetailList";
this.fieldKmPreisFeb.Expression = "[].Sum([Feb]) * 0.27";
this.fieldKmPreisFeb.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisFeb.Name = "fieldKmPreisFeb";
//
// fieldKmPreisMar
//
this.fieldKmPreisMar.DataMember = "DetailList";
this.fieldKmPreisMar.Expression = "[].Sum([Maer]) * 0.27";
this.fieldKmPreisMar.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisMar.Name = "fieldKmPreisMar";
//
// fieldKmPreisQ1
//
this.fieldKmPreisQ1.DataMember = "DetailList";
this.fieldKmPreisQ1.Expression = "([].Sum([Jan]) + [].Sum([Feb]) + [].Sum([Maer])) * 0.27";
this.fieldKmPreisQ1.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisQ1.Name = "fieldKmPreisQ1";
//
// fieldKmPreisOkt
//
this.fieldKmPreisOkt.DataMember = "DetailList";
this.fieldKmPreisOkt.Expression = "[].Sum([Okt]) * 0.27";
this.fieldKmPreisOkt.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisOkt.Name = "fieldKmPreisOkt";
//
// fieldKmPreisApr
//
this.fieldKmPreisApr.DataMember = "DetailList";
this.fieldKmPreisApr.Expression = "[].Sum([Apr]) * 0.27";
this.fieldKmPreisApr.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisApr.Name = "fieldKmPreisApr";
//
// fieldKmPreisAug
//
this.fieldKmPreisAug.DataMember = "DetailList";
this.fieldKmPreisAug.Expression = "[].Sum([Aug]) * 0.27";
this.fieldKmPreisAug.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisAug.Name = "fieldKmPreisAug";
//
// fieldKmPreisSep
//
this.fieldKmPreisSep.DataMember = "DetailList";
this.fieldKmPreisSep.Expression = "[].Sum([Sep]) * 0.27";
this.fieldKmPreisSep.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisSep.Name = "fieldKmPreisSep";
//
// fieldKmPreisNov
//
this.fieldKmPreisNov.DataMember = "DetailList";
this.fieldKmPreisNov.Expression = "[].Sum([Nov]) * 0.27";
this.fieldKmPreisNov.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisNov.Name = "fieldKmPreisNov";
//
// fieldKmPreisDez
//
this.fieldKmPreisDez.DataMember = "DetailList";
this.fieldKmPreisDez.Expression = "[].Sum([Dez]) * 0.27";
this.fieldKmPreisDez.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisDez.Name = "fieldKmPreisDez";
//
// fieldKmPreisQ2
//
this.fieldKmPreisQ2.DataMember = "DetailList";
this.fieldKmPreisQ2.Expression = "([].Sum([Apr]) + [].Sum([Mai]) + [].Sum([Jun])) * 0.27";
this.fieldKmPreisQ2.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisQ2.Name = "fieldKmPreisQ2";
//
// fieldKmPreisQ3
//
this.fieldKmPreisQ3.DataMember = "DetailList";
this.fieldKmPreisQ3.Expression = "([].Sum([Jul]) + [].Sum([Aug]) + [].Sum([Sep])) * 0.27";
this.fieldKmPreisQ3.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisQ3.Name = "fieldKmPreisQ3";
//
// fieldKmPreisQ4
//
this.fieldKmPreisQ4.DataMember = "DetailList";
this.fieldKmPreisQ4.Expression = "([].Sum([Okt]) + [].Sum([Nov]) + [].Sum([Dez])) * 0.27";
this.fieldKmPreisQ4.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisQ4.Name = "fieldKmPreisQ4";
//
// fieldKmPreisMai
//
this.fieldKmPreisMai.DataMember = "DetailList";
this.fieldKmPreisMai.Expression = "[].Sum([Mai]) * 0.27";
this.fieldKmPreisMai.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisMai.Name = "fieldKmPreisMai";
//
// fieldKmPreisJun
//
this.fieldKmPreisJun.DataMember = "DetailList";
this.fieldKmPreisJun.Expression = "[].Sum([Jun]) * 0.27";
this.fieldKmPreisJun.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisJun.Name = "fieldKmPreisJun";
//
// fieldKmPreisJul
//
this.fieldKmPreisJul.DataMember = "DetailList";
this.fieldKmPreisJul.Expression = "[].Sum([Jul]) * 0.27";
this.fieldKmPreisJul.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisJul.Name = "fieldKmPreisJul";
//
// fieldKmPreisGesamt
//
this.fieldKmPreisGesamt.DataMember = "DetailList";
this.fieldKmPreisGesamt.Expression = "([].Sum([Jan]) + [].Sum([Feb]) + [].Sum([Maer]) + [].Sum([Apr]) + [].Sum([Mai]) +" +
" [].Sum([Jun]) + [].Sum([Jul]) + [].Sum([Aug]) + [].Sum([Sep]) + [].Sum([Okt]) +" +
" [].Sum([Nov]) + [].Sum([Dez])) * 0.27";
this.fieldKmPreisGesamt.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldKmPreisGesamt.Name = "fieldKmPreisGesamt";
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(HphBersenbrueckFreizeitUndReisen.AuswertungFahrtkostenRO);
//
// AuswertungFahrtkosten
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -899,7 +1339,24 @@ namespace HphBersenbrueckFreizeitUndReisen
this.fieldQ2,
this.fieldQ3,
this.fieldGesamt,
this.fieldQ4});
this.fieldQ4,
this.fieldKmPreisJan,
this.fieldKmPreisFeb,
this.fieldKmPreisMar,
this.fieldKmPreisQ1,
this.fieldKmPreisOkt,
this.fieldKmPreisApr,
this.fieldKmPreisAug,
this.fieldKmPreisSep,
this.fieldKmPreisNov,
this.fieldKmPreisDez,
this.fieldKmPreisQ2,
this.fieldKmPreisQ3,
this.fieldKmPreisQ4,
this.fieldKmPreisMai,
this.fieldKmPreisJun,
this.fieldKmPreisJul,
this.fieldKmPreisGesamt});
this.DataSource = this.bindingSource1;
this.Landscape = true;
this.Margins = new System.Drawing.Printing.Margins(50, 50, 50, 53);
@@ -914,8 +1371,8 @@ namespace HphBersenbrueckFreizeitUndReisen
this.Version = "13.2";
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -988,9 +1445,8 @@ namespace HphBersenbrueckFreizeitUndReisen
private DevExpress.XtraReports.UI.XRTable xrTable1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell40;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell41;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell42;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell43;
private DevExpress.XtraReports.UI.XRTableCell cellSummeJan;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell44;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell45;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell46;
@@ -1007,5 +1463,42 @@ namespace HphBersenbrueckFreizeitUndReisen
private DevExpress.XtraReports.UI.XRTableCell xrTableCell57;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell58;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell59;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell43;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell61;
private DevExpress.XtraReports.UI.XRTableCell cellKmPreisJan;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell63;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell64;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell65;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell66;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell67;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell68;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell69;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell70;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell71;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell72;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell73;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell74;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell75;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell76;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell77;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell78;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisJan;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisFeb;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisMar;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisQ1;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisOkt;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisApr;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisAug;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisSep;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisNov;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisDez;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisQ2;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisQ3;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisQ4;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisMai;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisJun;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisJul;
private DevExpress.XtraReports.UI.CalculatedField fieldKmPreisGesamt;
}
}

View File

@@ -48,8 +48,8 @@ namespace HphBersenbrueckFreizeitUndReisen
long? customerOid = null;
DateTime reportStart = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1);
DateTime reportEnde = reportStart.AddMonths(1).AddDays(-1);
DateTime reportStart = new DateTime(DateTime.Now.Year, 1, 1);
if (queryRo.Rows.Count > 0)
@@ -64,17 +64,7 @@ namespace HphBersenbrueckFreizeitUndReisen
reportStart = dtTemp;
}
}
if (queryRo.Rows[0].Field2 != null)
{
DateTime dtTemp = DateTime.Now;
if (DateTime.TryParse(queryRo.Rows[0].Field2.ToString(), out dtTemp) &&
dtTemp < new DateTime(9000, 1, 1))
{
reportEnde = dtTemp.AddDays(-1);
}
}
//if (queryRo.Rows[0].Field4 != null)
//{
// long longTemp = 0;
@@ -86,7 +76,7 @@ namespace HphBersenbrueckFreizeitUndReisen
//}
}
DateTime reportEnde = reportStart.AddYears(1).AddDays(-1);
Dictionary<String, AuswertungFahrtkostenDetailRO> rowDict =
new Dictionary<String, AuswertungFahrtkostenDetailRO>();

View File

@@ -53,9 +53,20 @@ namespace HphBersenbrueckFreizeitUndReisen
this.fieldDifferenz = new DevExpress.XtraReports.UI.CalculatedField();
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrTableGesamt = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRowGesamt = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableGesamt)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
@@ -255,13 +266,94 @@ namespace HphBersenbrueckFreizeitUndReisen
//
this.bindingSource1.DataSource = typeof(HphBersenbrueckFreizeitUndReisen.AuswertungSelbstzahlerRO);
//
// GroupHeader1
//
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTableGesamt});
this.GroupHeader1.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
this.GroupHeader1.HeightF = 25F;
this.GroupHeader1.Level = 1;
this.GroupHeader1.Name = "GroupHeader1";
this.GroupHeader1.StylePriority.UseFont = false;
//
// xrTableGesamt
//
this.xrTableGesamt.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableGesamt.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableGesamt.Name = "xrTableGesamt";
this.xrTableGesamt.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRowGesamt});
this.xrTableGesamt.SizeF = new System.Drawing.SizeF(640F, 25F);
this.xrTableGesamt.StylePriority.UseBackColor = false;
this.xrTableGesamt.StylePriority.UseBorders = false;
this.xrTableGesamt.StylePriority.UsePadding = false;
this.xrTableGesamt.StylePriority.UseTextAlignment = false;
this.xrTableGesamt.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrTableRowGesamt
//
this.xrTableRowGesamt.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell7,
this.xrTableCell8,
this.xrTableCell9,
this.xrTableCell10,
this.xrTableCell12,
this.xrTableCell11,
this.xrTableCell13});
this.xrTableRowGesamt.Name = "xrTableRowGesamt";
this.xrTableRowGesamt.Weight = 1.25D;
//
// xrTableCell7
//
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.Weight = 0.045287729552887165D;
//
// xrTableCell8
//
this.xrTableCell8.Name = "xrTableCell8";
this.xrTableCell8.StylePriority.UseBackColor = false;
this.xrTableCell8.Weight = 0.099633007057251324D;
//
// xrTableCell9
//
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.StylePriority.UseBackColor = false;
this.xrTableCell9.Weight = 0.072460370260993362D;
//
// xrTableCell10
//
this.xrTableCell10.BorderWidth = 1F;
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.StylePriority.UseBackColor = false;
this.xrTableCell10.StylePriority.UseBorders = false;
this.xrTableCell10.StylePriority.UseBorderWidth = false;
this.xrTableCell10.Weight = 0.090575463293854783D;
//
// xrTableCell11
//
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.Weight = 0.090575463293854783D;
//
// xrTableCell12
//
this.xrTableCell12.Name = "xrTableCell12";
this.xrTableCell12.Weight = 0.090575463293854783D;
//
// xrTableCell13
//
this.xrTableCell13.Name = "xrTableCell13";
this.xrTableCell13.Weight = 0.090575463293854783D;
//
// AuswertungSelbstzahler
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.topMarginBand1,
this.bottomMarginBand1,
this.GroupHeader2});
this.GroupHeader2,
this.GroupHeader1});
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.fieldFLS,
this.fieldDifferenz});
@@ -280,6 +372,7 @@ namespace HphBersenbrueckFreizeitUndReisen
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableGesamt)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
}
@@ -309,5 +402,15 @@ namespace HphBersenbrueckFreizeitUndReisen
private DevExpress.XtraReports.UI.XRTableCell cellBemerkung;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell21;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader2;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.XRTable xrTableGesamt;
private DevExpress.XtraReports.UI.XRTableRow xrTableRowGesamt;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell12;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell13;
}
}

View File

@@ -140,10 +140,139 @@ namespace HphBersenbrueckFreizeitUndReisen
var dict = CreateHeader(result, reportStart, reportEnde);
CreateDataRows(result, dict);
CreateSummenRows(result, dict, reportStart, reportEnde);
return result;
}
private void CreateSummenRows(AuswertungSelbstzahlerRO result, Dictionary<string, int> dict, DateTime reportStart, DateTime reportEnd)
{
for (int i = 4; i < xrTableRowDetail.Cells.Count; i++)
{
AddNewDataCell(xrTableRowGesamt, "", Color.Transparent);
}
xrTableGesamt.Width = xrTableRowGesamt.Cells.Count * 100;
for (int i = xrTableRowGesamt.Cells.Count - 1; i > 4; i--)
{
xrTableRowGesamt.Cells[i].Weight = (i * 100);
}
for (int i = 0; i < xrTableRowGesamt.Cells.Count; i++)
{
xrTableRowGesamt.Cells[i].Weight = 100;
}
xrTableRowGesamt.Cells[0].Width = 60;
//decimal gesamtStd = 0;
//decimal gesamtKontingent = 0;
//decimal gesamtVerbraucht = 0;
////foreach (var dro in result.DetailList)
////{
//// gesamtStd += dro.GesamtStunden;
//// gesamtKontingent += dro.Kontingent;
//// gesamtVerbraucht += dro.Bereitsverbraucht;
////}
//decimal nochOffen = gesamtKontingent - gesamtVerbraucht;
//if (xrTableRowGesamt.Cells.Count > 4)
//{
// xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 1].Text = String.Format("{0:0.00}", nochOffen);
// xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 2].Text =
// String.Format("{0:0.00}", gesamtVerbraucht);
// xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 3].Text =
// String.Format("{0:0.00}", gesamtKontingent);
// xrTableRowGesamt.Cells[xrTableRowDetail.Cells.Count - 4].Text = String.Format("{0:0.00}", gesamtStd);
//}
DateTime datum = reportStart;
int anzahlMonate = 0;
while (datum <= reportEnd)
{
anzahlMonate++;
datum = datum.AddMonths(1);
}
datum = reportStart;
int index = 0;
decimal stundenGesamtEb = 0;
decimal preisGesamtEb = 0;
decimal preisGesamtFrei = 0;
decimal preisGesamtFundA = 0;
decimal preisGesamtEbFreiFundA = 0;
decimal anzUebernachtungenGesamt = 0;
decimal preisGesamtKurzpflege = 0;
decimal anzTageReisenGesamt = 0;
decimal preisGesamtReise = 0;
while (datum <= reportEnd)
{
String key = String.Format("{0:yyyyMM}", datum);
if (index < xrTableRowGesamt.Cells.Count)
{
decimal gesamtEbnMonat = 0;
decimal gesamtEbhMonat = 0;
decimal gesamtFreiMonat = 0;
decimal gesamtFundAMonat = 0;
foreach (var dro in result.DetailList)
{
if (dro.EinzelbetreuungNormalMonat2Wert.ContainsKey(key))
{
gesamtEbnMonat += dro.EinzelbetreuungNormalMonat2Wert[key];
stundenGesamtEb += dro.EinzelbetreuungNormalMonat2Wert[key];
}
if (dro.EinzelbetreuungHauptamtlich2Monat2Wert.ContainsKey(key))
{
gesamtEbhMonat += dro.EinzelbetreuungHauptamtlich2Monat2Wert[key];
stundenGesamtEb += dro.EinzelbetreuungHauptamtlich2Monat2Wert[key];
}
if (dro.FreizeitAngeboteMonat2Wert.ContainsKey(key))
{
gesamtFreiMonat += dro.FreizeitAngeboteMonat2Wert[key];
}
if (dro.FreizeittreffAusflugMonat2Wert.ContainsKey(key))
{
gesamtFundAMonat += dro.FreizeittreffAusflugMonat2Wert[key];
}
if (index == 0)
{
preisGesamtEb += dro.EinzelbetreuungPreisGesamt ?? 0;
preisGesamtFrei += dro.GesamtPreisFreizeitangebot ?? 0;
preisGesamtFundA += dro.GesamtPreisFreizeittreff ?? 0;
preisGesamtEbFreiFundA += (dro.EinzelbetreuungPreisGesamt ?? 0) + (dro.GesamtPreisFreizeittreff ?? 0) + (dro.GesamtPreisFreizeitangebot ?? 0);
anzUebernachtungenGesamt += dro.KurzzeitpflegeAnzahlUebernachtungen ?? 0;
preisGesamtKurzpflege += dro.KurzzeitpflegeGesamtPreis ?? 0;
anzTageReisenGesamt += dro.ReisenAnzahlTage ?? 0;
preisGesamtReise += dro.ReisenGesamtPreis ?? 0;
}
}
xrTableRowGesamt.Cells[(index * 2) + 7].Text = String.Format("{0:0.00}", gesamtEbnMonat);
xrTableRowGesamt.Cells[(index * 2) + 8].Text = String.Format("{0:0.00}", gesamtEbhMonat);
xrTableRowGesamt.Cells[(anzahlMonate * 2) + index + 9].Text = String.Format("{0:0.00}", gesamtFreiMonat);
xrTableRowGesamt.Cells[(anzahlMonate * 3) + index + 11].Text = String.Format("{0:0.00}", gesamtFundAMonat);
}
index++;
datum = datum.AddMonths(1);
}
xrTableRowGesamt.Cells[(anzahlMonate * 2) + 7].Text = String.Format("{0:0.00}", stundenGesamtEb);
xrTableRowGesamt.Cells[(anzahlMonate * 2) + 8].Text = String.Format("{0:c}", preisGesamtEb);
xrTableRowGesamt.Cells[(anzahlMonate * 3) + 10].Text = String.Format("{0:c}", preisGesamtFrei);
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 12].Text = String.Format("{0:c}", preisGesamtFundA);
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 13].Text = String.Format("{0:c}", preisGesamtEbFreiFundA);
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 14].Text = String.Format("{0:0.##}", anzUebernachtungenGesamt);
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 15].Text = String.Format("{0:c}", preisGesamtKurzpflege);
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 16].Text = String.Format("{0:0.##}", anzTageReisenGesamt);
xrTableRowGesamt.Cells[(anzahlMonate * 4) + 19].Text = String.Format("{0:c}", preisGesamtReise);
}
private void CreateDataRows(AuswertungSelbstzahlerRO result, Dictionary<string, int> dict)
{
xrTableDetail.BeginInit();
@@ -207,11 +336,18 @@ namespace HphBersenbrueckFreizeitUndReisen
String[] split = key.Split('_');
String datumsKey = split[1];
if (split[0] == "EB")
if (split[0] == "EBN")
{
if (detail.EinzelbetreuungMonat2Wert.ContainsKey(datumsKey))
if (detail.EinzelbetreuungNormalMonat2Wert.ContainsKey(datumsKey))
{
return String.Format("{0:0.##}", detail.EinzelbetreuungMonat2Wert[datumsKey]);
return String.Format("{0:0.##}", detail.EinzelbetreuungNormalMonat2Wert[datumsKey]);
}
}
if (split[0] == "EBH")
{
if (detail.EinzelbetreuungHauptamtlich2Monat2Wert.ContainsKey(datumsKey))
{
return String.Format("{0:0.##}", detail.EinzelbetreuungHauptamtlich2Monat2Wert[datumsKey]);
}
}
else if (split[0] == "FREI")
@@ -233,7 +369,15 @@ namespace HphBersenbrueckFreizeitUndReisen
{
decimal? gesamt = null;
foreach (var m2w in detail.EinzelbetreuungMonat2Wert)
foreach (var m2w in detail.EinzelbetreuungNormalMonat2Wert)
{
if (!gesamt.HasValue)
{
gesamt = 0;
}
gesamt += m2w.Value;
}
foreach (var m2w in detail.EinzelbetreuungHauptamtlich2Monat2Wert)
{
if (!gesamt.HasValue)
{
@@ -346,8 +490,10 @@ namespace HphBersenbrueckFreizeitUndReisen
DateTime datum = reportStart;
Dictionary<String, int> headerDict = new Dictionary<String, int>();
List<String> ebHeaders = new List<String>();
Dictionary<String, String> ebHeader2Key = new Dictionary<String, String>();
List<String> ebnHeaders = new List<String>();
Dictionary<String, String> ebnHeader2Key = new Dictionary<String, String>();
List<String> ebhHeaders = new List<String>();
Dictionary<String, String> ebhHeader2Key = new Dictionary<String, String>();
List<String> freizeitAngeboteHeaders = new List<String>();
Dictionary<String, String> freizeitAngeboteHeader2Key = new Dictionary<String, String>();
List<String> fUndAHeaders = new List<String>();
@@ -356,8 +502,11 @@ namespace HphBersenbrueckFreizeitUndReisen
while (datum <= reportEnde)
{
String key = String.Format("{0:yyyyMM}", datum);
ebHeaders.Add(String.Format("EB Std. {0:MMM}", datum));
ebHeader2Key.Add(String.Format("EB Std. {0:MMM}", datum), String.Format("EB_{0}", key));
ebnHeaders.Add(String.Format("EB Std. {0:MMM}", datum));
ebnHeader2Key.Add(String.Format("EB Std. {0:MMM}", datum), String.Format("EBN_{0}", key));
ebhHeaders.Add(String.Format("EB haupt Std. {0:MMM}", datum));
ebhHeader2Key.Add(String.Format("EB haupt Std. {0:MMM}", datum), String.Format("EBH_{0}", key));
freizeitAngeboteHeaders.Add(String.Format("Freizeit- angebote {0:MMM}", datum));
freizeitAngeboteHeader2Key.Add(String.Format("Freizeit- angebote {0:MMM}", datum), String.Format("FREI_{0}", key));
@@ -384,11 +533,16 @@ namespace HphBersenbrueckFreizeitUndReisen
datum = datum.AddMonths(1);
}
foreach (var header in ebHeaders)
for (int i = 0; i < ebnHeaders.Count; i++)
{
AddNewHeaderCell(header, Color.YellowGreen, headerDict, ebHeader2Key[header]);
AddNewHeaderCell(ebnHeaders[i], Color.YellowGreen, headerDict, ebnHeader2Key[ebnHeaders[i]]);
AddNewHeaderCell(ebhHeaders[i], Color.YellowGreen, headerDict, ebhHeader2Key[ebhHeaders[i]]);
}
if (ebHeaders.Count > 0)
//foreach (var header in ebnHeaders)
//{
// AddNewHeaderCell(header, Color.YellowGreen, headerDict, ebnHeader2Key[header]);
//}
if (ebnHeaders.Count > 0 || ebhHeaders.Count > 0)
{
AddNewHeaderCell("Std. Gesamt", Color.YellowGreen, headerDict, "EBSTDGESAMT");
AddNewHeaderCell("Preis Gesamt", Color.YellowGreen, headerDict, "EBPREISGESAMT");
@@ -432,7 +586,7 @@ namespace HphBersenbrueckFreizeitUndReisen
xrTableHeader.Width = xrTableRowHeader.Cells.Count * 100;
if (xrTableHeader.Width > this.PageWidth + 100)
if (xrTableHeader.Width > this.PageWidth - 100)
{
this.PageWidth = xrTableHeader.Width + 100;
}
@@ -480,7 +634,8 @@ namespace HphBersenbrueckFreizeitUndReisen
private AuswertungSelbstzahlerDetailRO CreateRow(SupportConcept sc, CostBearer2SupportConcept c2S, SupportConceptApprovalPeriod scap, DateTime reportStart, DateTime reportEnd)
{
AuswertungSelbstzahlerDetailRO ro = new AuswertungSelbstzahlerDetailRO();
ro.EinzelbetreuungMonat2Wert = new Dictionary<string, decimal>();
ro.EinzelbetreuungNormalMonat2Wert = new Dictionary<string, decimal>();
ro.EinzelbetreuungHauptamtlich2Monat2Wert = new Dictionary<string, decimal>();
ro.FreizeitAngeboteMonat2Wert = new Dictionary<string, int>();
ro.FreizeittreffAusflugMonat2Wert = new Dictionary<string, int>();
@@ -491,6 +646,7 @@ namespace HphBersenbrueckFreizeitUndReisen
ro.Nummer = c2S.CustomerReferenceNumber;
ro.KlientName = String.Format("{0}, {1}", sc.Customer.Person.LastName, sc.Customer.Person.FirstName);
ro.Pflegegrad = GetPflegegrad(sc.Customer);
ro.Restanspruch = scap.MonthlyPayment;
foreach (var vv in sc.Customer.VarFieldValueList)
{
@@ -583,68 +739,115 @@ namespace HphBersenbrueckFreizeitUndReisen
decimal? gesamtPreisFreizeittreff = null;
decimal? tagessatzReisen = null;
decimal? tageKurzurlaub = null;
decimal verbrauchtVorBericht = 0;
int? tageReisen = null;
foreach (var sr in serviceRecords)
{
if (sr.Start.HasValue && reportStart <= sr.Start && sr.Start.Value.Date <= reportEnd.Date &&
(scap.ServiceCategory == null || scap.ServiceCategory.Name == sr.ServiceDescription.ServiceCategory.Name))
if (sr.Start.HasValue && (scap.ServiceCategory == null || scap.ServiceCategory.Name == sr.ServiceDescription.ServiceCategory.Name))
{
bool liegtImBerichtszeitraun = (reportStart <= sr.Start && sr.Start.Value.Date <= reportEnd.Date);
String key = String.Format("{0:yyyyMM}", sr.Start);
if (sr.ServiceDescription.Name.Contains("Einzelbetreuung"))
{
if (!ro.EinzelbetreuungMonat2Wert.ContainsKey(key))
{
ro.EinzelbetreuungMonat2Wert.Add(key, 0);
}
ro.EinzelbetreuungMonat2Wert[key] += sr.RoundedDuration / 60;
if (!ro.EinzelbetreuungPreisGesamt.HasValue)
{
ro.EinzelbetreuungPreisGesamt = 0;
}
if (liegtImBerichtszeitraun)
{
if (!ro.EinzelbetreuungHauptamtlich2Monat2Wert.ContainsKey(key))
{
ro.EinzelbetreuungHauptamtlich2Monat2Wert.Add(key, 0);
}
if (!ro.EinzelbetreuungNormalMonat2Wert.ContainsKey(key))
{
ro.EinzelbetreuungNormalMonat2Wert.Add(key, 0);
}
}
decimal preis = 0;
if (sr.ServiceDescription.Name.Contains("hauptamt"))
{
preis = AbrechnungsInfo.GetPreisForEinzelbetreuungHauptamtlich(sr.Start.Value);
if (liegtImBerichtszeitraun)
{
ro.EinzelbetreuungHauptamtlich2Monat2Wert[key] += sr.RoundedDuration / 60;
}
}
else
{
preis = AbrechnungsInfo.GetPreisForEinzelbetreuungEhrenamtlich(sr.Start.Value);
if (liegtImBerichtszeitraun)
{
ro.EinzelbetreuungNormalMonat2Wert[key] += sr.RoundedDuration / 60;
}
}
preis *= (sr.RoundedDuration / 60);
ro.EinzelbetreuungPreisGesamt += preis;
if (liegtImBerichtszeitraun)
{
ro.EinzelbetreuungPreisGesamt += preis;
}
else
{
verbrauchtVorBericht += preis;
}
}
else if (sr.ServiceDescription.Name.Contains("Freizeitangebote"))
{
if (!ro.FreizeitAngeboteMonat2Wert.ContainsKey(key))
if (liegtImBerichtszeitraun)
{
ro.FreizeitAngeboteMonat2Wert.Add(key, 0);
if (!ro.FreizeitAngeboteMonat2Wert.ContainsKey(key))
{
ro.FreizeitAngeboteMonat2Wert.Add(key, 0);
}
ro.FreizeitAngeboteMonat2Wert[key] += 1;
}
ro.FreizeitAngeboteMonat2Wert[key] += 1;
preisFreizeitangebot = AbrechnungsInfo.GetPreisForFreizeitangebot(sc.Customer.Pflegegrad, sr.Start.Value);
if (!gesamtPreisFreizeitangebot.HasValue)
{
gesamtPreisFreizeitangebot = 0;
}
gesamtPreisFreizeitangebot += preisFreizeitangebot;
if (liegtImBerichtszeitraun)
{
gesamtPreisFreizeitangebot += preisFreizeitangebot;
}
else
{
verbrauchtVorBericht += preisFreizeitangebot ?? 0;
}
}
else if (sr.ServiceDescription.Name.Contains("Freizeittreff"))
{
if (!ro.FreizeittreffAusflugMonat2Wert.ContainsKey(key))
if (liegtImBerichtszeitraun)
{
ro.FreizeittreffAusflugMonat2Wert.Add(key, 0);
if (!ro.FreizeittreffAusflugMonat2Wert.ContainsKey(key))
{
ro.FreizeittreffAusflugMonat2Wert.Add(key, 0);
}
ro.FreizeittreffAusflugMonat2Wert[key] += 1;
}
ro.FreizeittreffAusflugMonat2Wert[key] += 1;
preisFreizeittreff = AbrechnungsInfo.GetPreisForAusflugFreizeittreff(sc.Customer.Pflegegrad, sr.Start.Value);
if (!gesamtPreisFreizeittreff.HasValue)
{
gesamtPreisFreizeittreff = 0;
}
gesamtPreisFreizeittreff += preisFreizeittreff;
if (liegtImBerichtszeitraun)
{
gesamtPreisFreizeittreff += preisFreizeittreff;
}
else
{
verbrauchtVorBericht += preisFreizeittreff ?? 0;
}
}
else if (sr.ServiceDescription.Name.Contains("Kurzurlaub") || sr.ServiceDescription.Name.Contains("Reisen"))
{
@@ -655,31 +858,48 @@ namespace HphBersenbrueckFreizeitUndReisen
{
if (sr.ServiceDescription.Name.Contains("Reisen"))
{
if (!summeReisen.HasValue)
summeReisen = 0;
var preis = AbrechnungsInfo.GetPreisForReisen(sc.Customer.Pflegegrad, start);
summeReisen += preis;
if (!tagessatzReisen.HasValue)
if (liegtImBerichtszeitraun)
{
tagessatzReisen = preis;
if (!summeReisen.HasValue)
summeReisen = 0;
summeReisen += preis;
if (!tagessatzReisen.HasValue)
{
tagessatzReisen = preis;
}
if (!tageReisen.HasValue)
tageReisen = 0;
tageReisen++;
}
if (!tageReisen.HasValue)
tageReisen = 0;
tageReisen++;
else
{
verbrauchtVorBericht += preis;
}
}
else
{
var key2Date = key2TagesDict[sr.ServiceDescription.ServiceCategory.Name.ToLower().Trim()];
if (!summeKurzurlaub.HasValue)
summeKurzurlaub = 0;
var preisFuerEineNacht = AbrechnungsInfo.GetPreisForKurzurlaub(sc.Customer.Pflegegrad, null, start);
var preisFuerDiesenTag = AbrechnungsInfo.GetPreisForKurzurlaub(sc.Customer.Pflegegrad, key2Date, start);
summeKurzurlaub += preisFuerDiesenTag;
if (!tageKurzurlaub.HasValue)
tageKurzurlaub = 0;
tageKurzurlaub += preisFuerDiesenTag / preisFuerEineNacht;
if (liegtImBerichtszeitraun)
{
if (!summeKurzurlaub.HasValue)
summeKurzurlaub = 0;
summeKurzurlaub += preisFuerDiesenTag;
if (!tageKurzurlaub.HasValue)
tageKurzurlaub = 0;
tageKurzurlaub += preisFuerDiesenTag / preisFuerEineNacht;
}
else
{
verbrauchtVorBericht += preisFuerDiesenTag;
}
}
start = start.AddDays(1);
@@ -701,7 +921,7 @@ namespace HphBersenbrueckFreizeitUndReisen
ro.ReisenTagessatzProTag = tagessatzReisen;
ro.Kontingent = BerechneBewilligungsBetrag(scap);
ro.Bereitsverbraucht = (ro.EinzelbetreuungPreisGesamt ?? 0) + (ro.GesamtPreisFreizeitangebot ?? 0) + (ro.GesamtPreisFreizeittreff ?? 0) + (ro.KurzzeitpflegeGesamtPreis ?? 0) + (ro.ReisenGesamtPreis ?? 0);
ro.Bereitsverbraucht = (ro.EinzelbetreuungPreisGesamt ?? 0) + (ro.GesamtPreisFreizeitangebot ?? 0) + (ro.GesamtPreisFreizeittreff ?? 0) + (ro.KurzzeitpflegeGesamtPreis ?? 0) + (ro.ReisenGesamtPreis ?? 0) + verbrauchtVorBericht;
ro.NochOffen = (ro.Kontingent ?? 0) - (ro.Bereitsverbraucht ?? 0);
return ro;
}

View File

@@ -25,7 +25,9 @@ namespace HphBersenbrueckFreizeitUndReisen
public String Bemerkung { get; set; }
public Dictionary<String, decimal> EinzelbetreuungMonat2Wert { get; set; }
public Dictionary<String, decimal> EinzelbetreuungNormalMonat2Wert { get; set; }
public Dictionary<String, decimal> EinzelbetreuungHauptamtlich2Monat2Wert { get; set; }
public decimal? EinzelbetreuungPreisGesamt { get; set; }

View File

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

View File

@@ -16,9 +16,9 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<Optimize>false</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>

View File

@@ -79,6 +79,12 @@
<Compile Include="ServicesOverviewReport.Designer.cs">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</Compile>
<Compile Include="ZieleMassnahmen.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ZieleMassnahmen.Designer.cs">
<DependentUpon>ZieleMassnahmen.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
@@ -107,6 +113,10 @@
<EmbeddedResource Include="ServicesOverviewReport.resx">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ZieleMassnahmen.resx">
<DependentUpon>ZieleMassnahmen.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View File

@@ -36,6 +36,8 @@ namespace LebenshilfeAhrweiler
decimal minutenFl = 0;
decimal minutenAh = 0;
List<ServicesOverviewRO.ServiceDetail> servicesList = new List<ServicesOverviewRO.ServiceDetail>();
foreach (var sr in pRO.Services)
{
SetGoals(sr);
@@ -47,17 +49,20 @@ namespace LebenshilfeAhrweiler
{
sr.Notice3 = "Fl";
minutenFl += (decimal)sr.Minutes;
servicesList.Add(sr);
}
else if (sr.ServiceDescription == "AH-Stunde")
{
sr.Notice3 = "aH";
minutenAh += (decimal)sr.Minutes;
servicesList.Add(sr);
}
if (sr.IsGroup)
{
sr.Notice3 = String.Format("{0} / {1}", sr.Notice3, sr.CustomerCount);
}
}
pRO.Services = servicesList;
cellGesamtFl.Text = String.Format("{0:0.00}", minutenFl / 60);
cellGesamtAh.Text = String.Format("{0:0.00}", minutenAh / 60);

View File

@@ -0,0 +1,248 @@
namespace LebenshilfeAhrweiler
{
partial class ZieleMassnahmen
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <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(ZieleMassnahmen));
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.lblKlient = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel2 = new DevExpress.XtraReports.UI.XRLabel();
this.lblAktenzeichen = new DevExpress.XtraReports.UI.XRLabel();
this.lblZeitraum = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel6 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
// Detail
//
this.Detail.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrRichText1});
this.Detail.Font = new System.Drawing.Font("Arial", 10F);
this.Detail.HeightF = 538F;
this.Detail.Name = "Detail";
this.Detail.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.Detail.StylePriority.UseFont = false;
this.Detail.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
// xrRichText1
//
this.xrRichText1.Font = new System.Drawing.Font("Arial", 10F);
this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrRichText1.Name = "xrRichText1";
this.xrRichText1.SerializableRtfString = resources.GetString("xrRichText1.SerializableRtfString");
this.xrRichText1.SizeF = new System.Drawing.SizeF(677F, 538F);
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.CustomerDataRO);
//
// topMarginBand1
//
this.topMarginBand1.HeightF = 75F;
this.topMarginBand1.Name = "topMarginBand1";
//
// bottomMarginBand1
//
this.bottomMarginBand1.HeightF = 75F;
this.bottomMarginBand1.Name = "bottomMarginBand1";
//
// GroupHeader1
//
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel6,
this.lblZeitraum,
this.lblAktenzeichen,
this.xrLabel2,
this.xrLabel1,
this.lblKlient,
this.xrLabel14});
this.GroupHeader1.HeightF = 125F;
this.GroupHeader1.Name = "GroupHeader1";
//
// lblKlient
//
this.lblKlient.BackColor = System.Drawing.Color.Transparent;
this.lblKlient.CanShrink = true;
this.lblKlient.Font = new System.Drawing.Font("Arial", 12F);
this.lblKlient.LocationFloat = new DevExpress.Utils.PointFloat(211.9789F, 1.589457E-05F);
this.lblKlient.Name = "lblKlient";
this.lblKlient.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblKlient.SizeF = new System.Drawing.SizeF(364.0622F, 24.99998F);
this.lblKlient.StylePriority.UseBackColor = false;
this.lblKlient.StylePriority.UseBorders = false;
this.lblKlient.StylePriority.UseFont = false;
this.lblKlient.StylePriority.UseTextAlignment = false;
this.lblKlient.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.lblKlient.WordWrap = false;
//
// xrLabel14
//
this.xrLabel14.BackColor = System.Drawing.Color.Transparent;
this.xrLabel14.CanShrink = true;
this.xrLabel14.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold);
this.xrLabel14.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel14.Name = "xrLabel14";
this.xrLabel14.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel14.SizeF = new System.Drawing.SizeF(131.25F, 25F);
this.xrLabel14.StylePriority.UseBackColor = false;
this.xrLabel14.StylePriority.UseBorders = false;
this.xrLabel14.StylePriority.UseFont = false;
this.xrLabel14.StylePriority.UseTextAlignment = false;
this.xrLabel14.Text = "Klient/in:";
this.xrLabel14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrLabel14.WordWrap = false;
//
// xrLabel1
//
this.xrLabel1.BackColor = System.Drawing.Color.Transparent;
this.xrLabel1.CanShrink = true;
this.xrLabel1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 25F);
this.xrLabel1.Name = "xrLabel1";
this.xrLabel1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel1.SizeF = new System.Drawing.SizeF(131.25F, 25F);
this.xrLabel1.StylePriority.UseBackColor = false;
this.xrLabel1.StylePriority.UseBorders = false;
this.xrLabel1.StylePriority.UseFont = false;
this.xrLabel1.StylePriority.UseTextAlignment = false;
this.xrLabel1.Text = "Aktenzeichen:";
this.xrLabel1.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrLabel1.WordWrap = false;
//
// xrLabel2
//
this.xrLabel2.BackColor = System.Drawing.Color.Transparent;
this.xrLabel2.CanShrink = true;
this.xrLabel2.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold);
this.xrLabel2.LocationFloat = new DevExpress.Utils.PointFloat(0F, 50F);
this.xrLabel2.Name = "xrLabel2";
this.xrLabel2.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel2.SizeF = new System.Drawing.SizeF(209.8958F, 25F);
this.xrLabel2.StylePriority.UseBackColor = false;
this.xrLabel2.StylePriority.UseBorders = false;
this.xrLabel2.StylePriority.UseFont = false;
this.xrLabel2.StylePriority.UseTextAlignment = false;
this.xrLabel2.Text = "Bewilligungszeitraum:";
this.xrLabel2.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrLabel2.WordWrap = false;
//
// lblAktenzeichen
//
this.lblAktenzeichen.BackColor = System.Drawing.Color.Transparent;
this.lblAktenzeichen.CanShrink = true;
this.lblAktenzeichen.Font = new System.Drawing.Font("Arial", 12F);
this.lblAktenzeichen.LocationFloat = new DevExpress.Utils.PointFloat(211.9789F, 25F);
this.lblAktenzeichen.Name = "lblAktenzeichen";
this.lblAktenzeichen.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblAktenzeichen.SizeF = new System.Drawing.SizeF(364.0622F, 24.99998F);
this.lblAktenzeichen.StylePriority.UseBackColor = false;
this.lblAktenzeichen.StylePriority.UseBorders = false;
this.lblAktenzeichen.StylePriority.UseFont = false;
this.lblAktenzeichen.StylePriority.UseTextAlignment = false;
this.lblAktenzeichen.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.lblAktenzeichen.WordWrap = false;
//
// lblZeitraum
//
this.lblZeitraum.BackColor = System.Drawing.Color.Transparent;
this.lblZeitraum.CanShrink = true;
this.lblZeitraum.Font = new System.Drawing.Font("Arial", 12F);
this.lblZeitraum.LocationFloat = new DevExpress.Utils.PointFloat(211.9789F, 50.00003F);
this.lblZeitraum.Name = "lblZeitraum";
this.lblZeitraum.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.lblZeitraum.SizeF = new System.Drawing.SizeF(364.0622F, 24.99998F);
this.lblZeitraum.StylePriority.UseBackColor = false;
this.lblZeitraum.StylePriority.UseBorders = false;
this.lblZeitraum.StylePriority.UseFont = false;
this.lblZeitraum.StylePriority.UseTextAlignment = false;
this.lblZeitraum.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.lblZeitraum.WordWrap = false;
//
// xrLabel6
//
this.xrLabel6.BackColor = System.Drawing.Color.Transparent;
this.xrLabel6.CanShrink = true;
this.xrLabel6.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold);
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 100F);
this.xrLabel6.Name = "xrLabel6";
this.xrLabel6.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrLabel6.SizeF = new System.Drawing.SizeF(387.5F, 25F);
this.xrLabel6.StylePriority.UseBackColor = false;
this.xrLabel6.StylePriority.UseBorders = false;
this.xrLabel6.StylePriority.UseFont = false;
this.xrLabel6.StylePriority.UseTextAlignment = false;
this.xrLabel6.Text = "Maßnahmen und Ziele gemäß Bescheid";
this.xrLabel6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
this.xrLabel6.WordWrap = false;
//
// ZieleMassnahmen
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail,
this.topMarginBand1,
this.bottomMarginBand1,
this.GroupHeader1});
this.DataSource = this.bindingSource1;
this.Font = new System.Drawing.Font("Arial", 10F);
this.Margins = new System.Drawing.Printing.Margins(75, 75, 75, 75);
this.PageHeight = 1169;
this.PageWidth = 827;
this.PaperKind = System.Drawing.Printing.PaperKind.A4;
this.Version = "13.2";
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).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.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.XRRichText xrRichText1;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.XRLabel lblKlient;
private DevExpress.XtraReports.UI.XRLabel xrLabel14;
private DevExpress.XtraReports.UI.XRLabel xrLabel6;
private DevExpress.XtraReports.UI.XRLabel lblZeitraum;
private DevExpress.XtraReports.UI.XRLabel lblAktenzeichen;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
}
}

View File

@@ -0,0 +1,162 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BeWo.Data.Access;
using BeWo.Report;
using BeWo.Report.ReportObjects;
using BeWo.Data.Entities;
using BS.Shared;
namespace LebenshilfeAhrweiler
{
public partial class ZieleMassnahmen : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
{
public ZieleMassnahmen()
{
InitializeComponent();
}
public void SetReportDataSource(QueryRO pRO)
{
long cb2scOid = 0;
if (pRO.Rows != null)
{
long oid = 0;
if (Int64.TryParse(pRO.Rows[0].Field1.ToString(), out oid) && oid > 0)
{
cb2scOid = oid;
}
}
if (cb2scOid > 0)
{
var c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(cb2scOid);
lblKlient.Text = String.Format("{0} {1}", c2s.SupportConcept.Customer.Person.FirstName, c2s.SupportConcept.Customer.Person.LastName);
lblAktenzeichen.Text = c2s.CustomerReferenceNumber;
lblZeitraum.Text = String.Format("{0:dd.MM.yyyy} - {1:dd.MM.yyyy}", c2s.StartDate, c2s.EndDate);
var tree = BuildGoalTree(c2s.SupportConcept);
var html = BuildGoalHtml(tree);
xrRichText1.Html = html;
}
}
private List<Goal> BuildGoalTree(SupportConcept sc)
{
List<Goal> goals = new List<Goal>();
Dictionary<long, Goal> oid2Goal = new Dictionary<long, Goal>();
var oid2ValueListEntries = new Dictionary<long, ValueListEntry>();
var list = DAOFactory.SearchDAO.FindValueListEntries(new[]
{
ValueListEntryType.SupportConceptGoalCategoryType,
ValueListEntryType.SupportConceptGoalType,
ValueListEntryType.SupportConceptIndividualGoalCategoryType,
ValueListEntryType.SupportConceptIndividualGoalType
}.ToList()).Where(ve => ve.IsActive == ActivationTypeId.Active);
foreach (var vle in list)
{
oid2ValueListEntries.Add(vle.Oid.Value, vle);
}
foreach (var v2e in sc.ValueList)
{
if (v2e.Entry.IsActive == ActivationTypeId.Active && (v2e.Entry.Type == ValueListEntryType.SupportConceptGoalCategoryType ||
v2e.Entry.Type == ValueListEntryType.SupportConceptGoalType ||
v2e.Entry.Type == ValueListEntryType.SupportConceptIndividualGoalCategoryType ||
v2e.Entry.Type == ValueListEntryType.SupportConceptIndividualGoalType))
{
if (!oid2Goal.ContainsKey(v2e.Entry.Oid.Value))
{
var goal = new Goal();
goal.Oid = v2e.Entry.Oid.Value;
goal.Name = v2e.Entry.Value;
goal.ParentOid = v2e.Entry.ParentOid;
oid2Goal.Add(goal.Oid, goal);
AddParentGoalToDict(goal.ParentOid, oid2Goal, oid2ValueListEntries);
}
}
}
foreach (var goal in oid2Goal.Values)
{
if (goal.ParentOid.HasValue && oid2Goal.ContainsKey(goal.ParentOid.Value))
{
var parent = oid2Goal[goal.ParentOid.Value];
if (parent.Children == null)
{
parent.Children = new List<Goal>();
}
parent.Children.Add(goal);
parent.Children.Sort((a, b) => a.Name.CompareTo(b.Name));
}
}
return oid2Goal.Values.Where(g => !g.ParentOid.HasValue).OrderBy(g => g.Name).ToList();
}
private void AddParentGoalToDict(long? parentGoalOid, Dictionary<long, Goal> oid2Goal, Dictionary<long, ValueListEntry> oid2AllValueListEntries)
{
if (parentGoalOid.HasValue && oid2AllValueListEntries.ContainsKey(parentGoalOid.Value) && !oid2Goal.ContainsKey(parentGoalOid.Value))
{
var e = oid2AllValueListEntries[parentGoalOid.Value];
var parentgoal = new Goal();
parentgoal.Oid = e.Oid.Value;
parentgoal.Name = e.Value;
parentgoal.ParentOid = e.ParentOid;
oid2Goal.Add(parentgoal.Oid, parentgoal);
AddParentGoalToDict(parentgoal.ParentOid, oid2Goal, oid2AllValueListEntries);
}
}
private string BuildGoalHtml(List<Goal> goalTree)
{
StringBuilder sb = new StringBuilder();
AddGoalsToTree(sb, goalTree);
return sb.ToString();
}
private void AddGoalsToTree(StringBuilder sb, List<Goal> goalList)
{
sb.Append("<ul>");
foreach (var goal in goalList)
{
sb.Append("<li>");
sb.Append(goal.Name);
sb.Append("</li>");
if (goal.Children != null && goal.Children.Count > 0)
{
AddGoalsToTree(sb, goal.Children);
}
}
sb.Append("</ul>");
}
}
public class Goal
{
public String Name { get; set; }
public long Oid { get; set; }
public long? ParentOid { get; set; }
public List<Goal> Children { get; set; }
}
}

View File

@@ -0,0 +1,126 @@
<?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>
<data name="xrRichText1.SerializableRtfString" xml:space="preserve">
<value>ewBcAHIAdABmADEAXABhAG4AcwBpAFwAYQBuAHMAaQBjAHAAZwAxADIANQAyAFwAZABlAGYAZgAwAHsAXABmAG8AbgB0AHQAYgBsAHsAXABmADAAXABmAG4AaQBsACAAVABpAG0AZQBzACAATgBlAHcAIABSAG8AbQBhAG4AOwB9AH0ADQAKAFwAdgBpAGUAdwBrAGkAbgBkADQAXAB1AGMAMQBcAHAAYQByAGQAXABsAGEAbgBnADEAMAAzADEAXABmADAAXABmAHMAMgA0AFwAcABhAHIADQAKAH0ADQAKAA==</value>
</data>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -60,9 +60,9 @@ namespace LebenshilfeDuisburgServicePlus.Invoicing
tempii.ItemPeriodStart = accountingPeriodStart;
tempii.ItemPeriodEnd = accountingPeriodEnd;
CreateItemTextForCategory(tempii, iServiceRecord.ServiceDescription.Category.Name, iServiceRecord.ServiceDescription.Name);
CreateItemTextForCategory(tempii, iServiceRecord.ServiceDescription.Category.Name, iServiceRecord.ServiceDescription.Name, iServiceRecord.Notice);
String key = String.Format("{0}_{1}_{2:0.00}_{3:0.00}", tempii.ItemDescription, tempii.Notice, tempii.AmountPerUnit, tempii.RateFactor);
String key = String.Format("{0}_{1}_{2:0.00}_{3:0.00}", tempii.ItemDescription, tempii.Notice, tempii.AmountPerUnit, tempii.RateFactor);
if (category2InvoiceItems.ContainsKey(key))
{
@@ -129,7 +129,7 @@ namespace LebenshilfeDuisburgServicePlus.Invoicing
}
}
private void CreateItemTextForCategory(InvoiceItem ii, string category, string sd)
private void CreateItemTextForCategory(InvoiceItem ii, string category, string sd, string serviceRecordNotice)
{
//Nachmittagsbetreuung SA
//Nachmittagsbetreuung JA
@@ -148,7 +148,11 @@ namespace LebenshilfeDuisburgServicePlus.Invoicing
{
name = sd.ToLower().Trim();
}
if (name.Contains(" pool "))
{
ii.ItemDescription = serviceRecordNotice;
return;
}
ii.ItemDescription = category;
if (name == "Nachmittagsbetreuung SA".ToLower())
{

View File

@@ -41,7 +41,7 @@ namespace SozialeDiensteNiederrhein
{
showAll = true;
}
else if (ug.Name == "UNA-Leitung")
else if (ug.Name == "UNA Leitung")
{
showTeam = true;
}

View File

@@ -43,7 +43,7 @@ namespace VSDHammReports
}
private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
private XtraReport CreateServicesOverviewReportForRo(ServicesOverviewRO ro, long? serviceCategoryOid)
{
IBeWoReport<ServicesOverviewRO> report = null;
@@ -57,10 +57,10 @@ namespace VSDHammReports
{
report = new VSDHammReports.QuittierungsbelegJA();
}
else if (kt.Contains("Jugendamt") || kt == "Jugendamt der Stadt Hamm" || kt == "Jugendamt der Stadt Aachen"
else if (kt.Contains("Jugendamt") || kt.Contains("jugendamt") || kt == "Jugendamt der Stadt Hamm" || kt == "Jugendamt der Stadt Aachen"
|| kt == "Stadt Hamm Jugendamt Clearing" || kt == "Stadt Hamm Jugendamt Wohnprojekt" || kt == "Jugendamt Ahlen Wohnprojekt")
{
if (ro.StartDate < new DateTime(2016, 7, 1))
if (ro.StartDate < new DateTime(2016, 7, 1))
{
report = new VSDHammReports.QuittierungsbelegJA();
}

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

@@ -3,7 +3,7 @@ using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
namespace BeWo.WegweiserBetreuungsdienstReports
namespace BeWo.WegweiserBetreuungsdienstReports.Alt
{
public partial class Spitzabrechnung : XtraReport, IBeWoReport<SettlementRO>
{
@@ -14,7 +14,12 @@ namespace BeWo.WegweiserBetreuungsdienstReports
public void SetReportDataSource(SettlementRO pRO)
{
pRO.InvoiceDate = string.Format("Datum:{0}", pRO.InvoiceDate);
if (String.IsNullOrEmpty(pRO.Notice))
{
lblNotice.Visible = false;
}
pRO.InvoiceDate = string.Format("Datum:{0}", pRO.InvoiceDate);
if (pRO.DifferentHourlyRateCount == 3)
{

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
using System;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
namespace BeWo.WegweiserBetreuungsdienstReports
{
public partial class Spitzabrechnung : XtraReport, IBeWoReport<Settlement2RO>
{
public Spitzabrechnung()
{
InitializeComponent();
}
public void SetReportDataSource(Settlement2RO pRO)
{
if (String.IsNullOrEmpty(pRO.Notice))
{
lblNotice.Visible = false;
}
decimal rateFactor = 1;
foreach (var ii in pRO.InvoiceItems)
{
if (ii.RateFactor.HasValue)
{
rateFactor = (100 + ii.RateFactor.Value) / 100;
}
}
pRO.RateFactor = (double)rateFactor;
cellFactorText.Text = String.Format("- zzgl. Faktor {0:0.00}:", pRO.RateFactor);
cellApprovedFlsFactor.Text = pRO.ApprovedFLSWithFactor;
this.bindingSource1.DataSource = pRO;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -84,6 +84,12 @@
<Compile Include="ServiceRecordListReport.Designer.cs">
<DependentUpon>ServiceRecordListReport.cs</DependentUpon>
</Compile>
<Compile Include="SettlementReport2.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SettlementReport2.Designer.cs">
<DependentUpon>SettlementReport2.cs</DependentUpon>
</Compile>
<Compile Include="WegweiserAuslastungBerechnung.cs" />
<Compile Include="Forderungen.cs">
<SubType>Component</SubType>
@@ -157,6 +163,10 @@
<EmbeddedResource Include="SettlementReport.resx">
<DependentUpon>SettlementReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SettlementReport2.resx">
<DependentUpon>SettlementReport2.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Teamauslastung.resx">
<DependentUpon>Teamauslastung.cs</DependentUpon>
</EmbeddedResource>

View File

@@ -16,9 +16,9 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<Optimize>false</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>

View File

@@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -17,9 +17,9 @@
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>true</Optimize>
<Optimize>false</Optimize>
<OutputPath>..\..\Host\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>

View File

@@ -346,7 +346,7 @@ namespace BeWo.Service.Plugins
{
if (!isGroupRecord)
{
ServiceRecordValidationResultDC resultdc = CheckOverlappingEmployeeServiceRecords(newServiceRecord, start, newServiceRecord.Employee.EmployeeOid, rd);
ServiceRecordValidationResultDC resultdc = CheckOverlappingEmployeeServiceRecords(newServiceRecord, start, newServiceRecord.Employee.EmployeeOid, rd);
if (resultdc != null)
result.Add(resultdc);
}
@@ -358,7 +358,6 @@ namespace BeWo.Service.Plugins
if (resultdc == null)
{
resultdc = CheckOverlappingEmployeeServiceRecords(newServiceRecord, start, employeeOid, grd ?? rd);
resultdc = CheckOverlappingEmployeeServiceRecords(newServiceRecord, start, employeeOid, rd);
if (resultdc != null)
result.Add(resultdc);
}
@@ -505,15 +504,8 @@ namespace BeWo.Service.Plugins
if (totalFLSApproved > 0)
{
//SupportConceptStatisticsDC stats = statistics;
//if (stats == null)
//{
if (stats == null)
{
stats = factory.CreateSupportConceptStatisticsImpl(reldc.CostBearer2SupportConceptOid.Value,
DateTime.Now, newServiceRecord.ServiceRecordOid);
}
//}
stats = factory.CreateSupportConceptStatisticsImpl(reldc.CostBearer2SupportConceptOid.Value,
DateTime.Now, newServiceRecord.ServiceRecordOid);
decimal flmTotalRounded = 0;
@@ -553,7 +545,6 @@ namespace BeWo.Service.Plugins
}
return null;
}
public virtual bool CheckZukunft()
{
return true;
@@ -658,26 +649,81 @@ namespace BeWo.Service.Plugins
return null;
}
private SupportConceptPeriodStatisticsDC GetStatisticsForServiceRecord(SupportConceptStatisticsDC statistics, ServiceRecordDC newServiceRecord)
{
if (statistics != null && statistics.PeriodStatistics.Count > 0)
{
foreach (SupportConceptPeriodStatisticsDC pstat in statistics.PeriodStatistics)
{
if (BelongsToPeriodStatistic(newServiceRecord, pstat))
return pstat;
}
foreach (SupportConceptPeriodStatisticsDC pstat in statistics.PeriodStatistics)
{
if (pstat.SupportConceptApprovalPeriod != null && pstat.SupportConceptApprovalPeriod.ServiceCategory == null)
return pstat;
}
}
private SupportConceptPeriodStatisticsDC GetStatisticsForServiceRecord(SupportConceptStatisticsDC statistics, ServiceRecordDC newServiceRecord)
{
if (statistics != null && statistics.PeriodStatistics.Count > 0)
{
//Prüfen, ob es Bewilligungen mit Kategorie gibt:
if (statistics.PeriodStatistics.Count > 1)
{
bool mindestensEinerHatKategorie = false;
foreach (SupportConceptPeriodStatisticsDC pstat in statistics.PeriodStatistics)
{
if (pstat.SupportConceptApprovalPeriod != null &&
pstat.SupportConceptApprovalPeriod.ServiceCategory != null)
{
mindestensEinerHatKategorie = true;
}
}
return null;
}
if (!mindestensEinerHatKategorie)
{
return null;
}
public static bool TimeSpanOverlapsWithOtherTimeSpan(DateTime? pStart, DateTime? rStart, decimal pRoundedDuration, decimal rRoundedDuration)
//Prüfen, ob es Bewilligungen mit unterschiedlicher Kategorie gibt:
bool mindestensZweiHabenUnterschiedlicheKategorie = false;
ServiceCategoryDC cat = null;
foreach (SupportConceptPeriodStatisticsDC pstat in statistics.PeriodStatistics)
{
if (pstat.SupportConceptApprovalPeriod != null &&
pstat.SupportConceptApprovalPeriod.ServiceCategory != null)
{
if (cat != null)
{
if (pstat.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid !=
cat.ServiceCategoryOid)
{
mindestensZweiHabenUnterschiedlicheKategorie = true;
}
}
else
{
cat = pstat.SupportConceptApprovalPeriod.ServiceCategory;
}
}
}
if (!mindestensZweiHabenUnterschiedlicheKategorie)
{
return null;
}
}
foreach (SupportConceptPeriodStatisticsDC pstat in statistics.PeriodStatistics)
{
if (BelongsToPeriodStatistic(newServiceRecord, pstat))
return pstat;
}
foreach (SupportConceptPeriodStatisticsDC pstat in statistics.PeriodStatistics)
{
if (pstat.SupportConceptApprovalPeriod != null && pstat.SupportConceptApprovalPeriod.ServiceCategory == null)
{
if (pstat.SupportConceptApprovalPeriod.StartDate <= newServiceRecord.Start)
{
if (!pstat.SupportConceptApprovalPeriod.EndDate.HasValue ||
(newServiceRecord.Start.Value.Date <= pstat.SupportConceptApprovalPeriod.EndDate.Value.Date))
{
return pstat;
}
}
}
}
}
return null;
}
public static bool TimeSpanOverlapsWithOtherTimeSpan(DateTime? pStart, DateTime? rStart, decimal pRoundedDuration, decimal rRoundedDuration)
{
DateTime? pEnd = pStart.Value.AddMinutes(Convert.ToDouble(pRoundedDuration));
DateTime? rEnd = rStart.Value.AddMinutes(Convert.ToDouble(rRoundedDuration));
@@ -690,15 +736,25 @@ namespace BeWo.Service.Plugins
return overlaps;
}
private bool BelongsToPeriodStatistic(ServiceRecordDC newServiceRecord, SupportConceptPeriodStatisticsDC pstat)
{
if (pstat.SupportConceptApprovalPeriod != null && pstat.SupportConceptApprovalPeriod.ServiceCategory != null)
if (pstat.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid == newServiceRecord.ServiceDescription.Category.ServiceCategoryOid)
return true;
return false;
}
private bool BelongsToPeriodStatistic(ServiceRecordDC newServiceRecord, SupportConceptPeriodStatisticsDC pstat)
{
if (pstat.SupportConceptApprovalPeriod != null && pstat.SupportConceptApprovalPeriod.ServiceCategory != null)
if (pstat.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid ==
newServiceRecord.ServiceDescription.Category.ServiceCategoryOid)
{
if (pstat.SupportConceptApprovalPeriod.StartDate <= newServiceRecord.Start)
{
if (!pstat.SupportConceptApprovalPeriod.EndDate.HasValue ||
(newServiceRecord.Start.Value.Date <= pstat.SupportConceptApprovalPeriod.EndDate.Value.Date))
{
return true;
}
}
}
return false;
}
public List<ServiceRecordValidationResultDC> ValidateServiceRecordDeletion(ServiceRecordDC serviceRecord, long employeeOid)
public List<ServiceRecordValidationResultDC> ValidateServiceRecordDeletion(ServiceRecordDC serviceRecord, long employeeOid)
{
var result = new List<ServiceRecordValidationResultDC>();

View File

@@ -14,7 +14,7 @@ namespace BeWo.Service.SBD.Vertretung
{
class VertretungsAlgorithmus
{
#region Variablen
private readonly Dictionary<long, List<long>> _employee2CustomerHaupt = new Dictionary<long, List<long>>();
private readonly VertretungsListeDC _schulbegleitenderDienst = new VertretungsListeDC();
@@ -36,7 +36,9 @@ namespace BeWo.Service.SBD.Vertretung
public Dictionary<CompactCustomerDC, List<AccountingTransactionDC>> c2a = new Dictionary<CompactCustomerDC, List<AccountingTransactionDC>>();
private readonly List<long> _vorhandeneCustomerOidListe = new List<long>();
#endregion
#region Konstruktoren
public VertretungsAlgorithmus(VertretungsListeDC sbd , DateTime date)
{
_schulbegleitenderDienst = sbd;
@@ -66,18 +68,21 @@ namespace BeWo.Service.SBD.Vertretung
//erstmal hier hinein und dann mal kuken
GetAlleMitarbeiterForWochenanzeige();
}
#endregion
public VertretungsAlgorithmus(DateTime start, DateTime end ,int typ)
#region Nicht Benötigte Methoden
//zur zeit nicht verwendeter Konstruktor
public VertretungsAlgorithmus(DateTime start, DateTime end, int typ)
{
// hier sachen für accounting transaction handeln
if(typ == 3) {
AccTransKlient(start,end);
if (typ == 3)
{
AccTransKlient(start, end);
}
}
//########################### Accounting transaction #########################
//Muss umgebaut werden
#region AccountTransaction
//muss umgebaut werden | wird aber nicht benötigt
private void AccTransKlient(DateTime start, DateTime end)
{
var xs = DAOFactory.GenericDAO.GetAllActive<AccountingTransaction>();
@@ -147,11 +152,8 @@ namespace BeWo.Service.SBD.Vertretung
}
#endregion
//############################################################################
public bool FetchReferenceNumbers { get; set; }
// ############## Bereich Quittierungsbeleg check ############################
#region Quttierungschecklist
public bool FetchReferenceNumbers { get; set; }
public void QuittierungsCheckListe(long? oid)
{
List<CompactCustomerDC> customerListe = new List<CompactCustomerDC>();
@@ -182,12 +184,10 @@ namespace BeWo.Service.SBD.Vertretung
}
#endregion
#endregion
// ###########################################################################
#region Hauptbetreuung
public void Hauptbetreuungen()
{
try
@@ -222,10 +222,10 @@ namespace BeWo.Service.SBD.Vertretung
throw Utils.CreateBeWoFaultException(e);
}
}
#endregion
//----- Tages Vertretung // ggf noch anpassen
#region Tagesanzeige
private void ErstelleItemVonVertretungen()
#region Tagesanzeige
private void ErstelleItemVonVertretungen()
{
try
{
@@ -465,16 +465,13 @@ namespace BeWo.Service.SBD.Vertretung
return true;
}
#endregion
//---------
#endregion
//----- Bearbeiten --------------------------------------------------------------------------------------------
#region Klienten Wochenanzeige
//----- Bearbeiten --------------------------------------------------------------------------------------------
//----- Woechentliche Vertretungen, Die anzeige jeweiliger tage muss angepasst werden wenn zum beispiel eine
//krabkmeldung mehrere vertretungen zugewiesen bekomment hat. Die müssen dann richtig angezeigt werden.
#region Klienten Wochenanzeige
private void ErstelleItemVonWoechentlicherVertretungen()
//krabkmeldung mehrere vertretungen zugewiesen bekomment hat. Die müssen dann richtig angezeigt werden.
private void ErstelleItemVonWoechentlicherVertretungen()
{
try
{
@@ -696,10 +693,7 @@ namespace BeWo.Service.SBD.Vertretung
}
#endregion
//-------------------------------------------------------------------------------------------------------------
//-------------- Vorhandene Mitarbeiter die Keiner Vertretung zugewiesen sind.
#region Mitarbeiter Wochenanzeige
public void GetAlleMitarbeiterForWochenanzeige()
@@ -804,9 +798,7 @@ namespace BeWo.Service.SBD.Vertretung
}
}
#endregion
//---------------------------------------------------------------------------
//########## Neuer bereich der ausprobiert werden soll #########################################################################
#region Ermittle time Range ,Erstelle neue Vertretung
@@ -847,8 +839,7 @@ namespace BeWo.Service.SBD.Vertretung
DAOFactory.GenericDAO.Insert(x);
}
#endregion
//############################# ende Probe ####################################################################################
#region Behilfsmethoden
private void AddKrankheitsZeitraumAndMeldungToItem(VertretungsListeItemsDC item, AbsenceTimeDC ars)

View File

@@ -355,5 +355,9 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
EmployeeDC GetEmployeeByID(long employeeOid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
EmployeeDC GetEmployeebyFullName(string fullName);
}
}

View File

@@ -524,7 +524,7 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid);
CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid, string kundennummer, string apikey, long userOid);
[FaultContract(typeof (BeWoFault))]
[OperationContract]
@@ -544,7 +544,7 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid);
EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid, string kundennummer, string apikey, long userOid);
[FaultContract(typeof (BeWoFault))]
[OperationContract]

View File

@@ -455,12 +455,27 @@ namespace BeWo.Service.ServiceImplementations
{
return MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.SearchDAO.FindEmployeeWithPersonOid(pPersonOid));
}
catch (Exception)
catch (Exception e)
{
throw new FaultException<BeWoFault>(new BeWoFault(String.Format("Mitarbeiter mit Id {0} wurde nicht gefunden!", pPersonOid)));
}
}
public EmployeeDC GetEmployeebyFullName(string fullName)
{
try
{
var x = DAOFactory.SearchDAO.FindEmployeeByFullname(fullName);
return MapperFactory.EmployeeDC_Employee.MapToNewDC(x);
}
catch (Exception e)
{
//throw Utils.CreateBeWoFaultException(e);
return null;
}
}
public List<CompactEmployeeDC> GetLastOpenedEmployees()
{
try
@@ -1189,14 +1204,18 @@ namespace BeWo.Service.ServiceImplementations
public List<EmployeeAPPCodeDC> GetAllEmployeeAppCodes(long pEmployeeOid)
{
try
{
var liste = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(pEmployeeOid);
var liste = DAOFactory.SearchDAO.FindAllEmployeeAppCodes(pEmployeeOid);
return MapperFactory.EmployeeAPPCodeDC_EmployeeAPPCode.MapToNewDCs(liste);
return MapperFactory.EmployeeAPPCodeDC_EmployeeAPPCode.MapToNewDCs(liste);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public Byte[] GetEmployeeImage(long employeeOid)
{
try

View File

@@ -7,6 +7,7 @@ using System.Net;
using System.ServiceModel;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Documents;
using BeWo.Data;
using BeWo.Data.Access;
@@ -28,7 +29,7 @@ using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Reports;
using BS.Shared.Extensions;
using BS.Shared.Services;
using DevExpress.XtraCharts.Native;
using Newtonsoft.Json;
using Utils = BeWo.Service.Core.Utils;
namespace BeWo.Service.ServiceImplementations
@@ -465,12 +466,30 @@ namespace BeWo.Service.ServiceImplementations
try
{
IList<ServiceDescription> list = DAOFactory.GenericDAO.GetAllActive<ServiceDescription>();
var dcList = MapperFactory.ServiceDescriptionDC_ServiceDescription.MapToNewDCs(list);
AppSettings settings = AppSettings.CreateSettings();
if (settings.SortServiceDescriptionAlphabetically)
{
list = list.OrderBy(sd => sd.Name).ToList();
dcList = dcList.OrderBy(sd => sd.Name).ToList();
}
return MapperFactory.ServiceDescriptionDC_ServiceDescription.MapToNewDCs(list);
else
{
dcList.Sort((a, b) =>
{
if (a.Position == b.Position)
{
return a.ServiceDescriptionOid.Value.CompareTo(b.ServiceDescriptionOid.Value);
}
else
{
return a.Position.CompareTo(b.Position);
}
});
}
return dcList;
}
catch (Exception e)
{
@@ -1968,6 +1987,8 @@ namespace BeWo.Service.ServiceImplementations
try
{
Mandator lOriginal = GetMandatorEntity();
//var oldDc = MapperFactory.MandatorDC_Mandator.MapToNewDC(lOriginal);
MapperFactory.MandatorDC_Mandator.MergeWithEntity(mandator, lOriginal);
DAOFactory.GenericDAO.Update(lOriginal);
return MapperFactory.MandatorDC_Mandator.MapToNewDC(lOriginal);
@@ -3141,12 +3162,17 @@ namespace BeWo.Service.ServiceImplementations
}
}
public EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid)
public EmployeeAPPCodeDC CreateNewEmployeeAPPCodeDC(long employeeOid,string kundennummer,string apikey ,long userOid)
{
try
{
DeletZufallsCode(apikey, kundennummer, "E" + userOid);
EmployeeAPPCode newCode = new EmployeeAPPCode();
newCode.EmployeeCode = ErzeugeZufallsCode(1);
string zufallscode = ErzeugeZufallsCode(apikey, kundennummer, "E" + userOid);
if (zufallscode != null) {
newCode.EmployeeCode = zufallscode;
newCode.EmployeeOid = employeeOid;
newCode.EmployeeCodeGenDate = DateTime.Now;
@@ -3163,7 +3189,7 @@ namespace BeWo.Service.ServiceImplementations
}
var code = x.Last().EmployeeCode;
DeletZufallsCode(code);
newCode.IsChatAktiv = ischatAktive;
newCode.NotfallStatement = notfallstate;
@@ -3173,6 +3199,9 @@ namespace BeWo.Service.ServiceImplementations
var employeeAPPCodeDC = MapperFactory.EmployeeAPPCodeDC_EmployeeAPPCode.MapToNewDC(newCode);
return employeeAPPCodeDC;
}
return null;
}
catch (Exception e)
{
@@ -3222,35 +3251,49 @@ namespace BeWo.Service.ServiceImplementations
}
}
public CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid)
public CustomerAPPCodeDC CreateNewCustomerAPPCodeDC(long customerOid,string kundennummer, string apikey, long userOid)
{
try
{
//TODO Abfragen erweitern
DeletZufallsCode(apikey, kundennummer, "C" + userOid);
CustomerAPPCode newCode = new CustomerAPPCode();
newCode.CustomerCode = ErzeugeZufallsCode(2);
newCode.CustomerOid = customerOid;
newCode.CustomerCodeGenDate = DateTime.Now;
var x = DAOFactory.SearchDAO.FindAllCustomerAppCodes(customerOid);
//abfangeritis starten
string zufallscode = ErzeugeZufallsCode(apikey, kundennummer, "C" + userOid);
int ischatAktive = 0;
foreach (var item in x)
if (zufallscode != null)
{
ischatAktive = item.IsChatAktiv;
break;
newCode.CustomerCode = zufallscode; //bei C noch die UserID mitgeben
newCode.CustomerOid = customerOid;
newCode.CustomerCodeGenDate = DateTime.Now;
var x = DAOFactory.SearchDAO.FindAllCustomerAppCodes(customerOid);
int ischatAktive = 0;
foreach (var item in x)
{
ischatAktive = item.IsChatAktiv;
break;
}
//var code = x.Last().CustomerCode;
newCode.IsChatAktiv = ischatAktive;
DAOFactory.GenericDAO.Insert(newCode);
var customerAPPCodeDC = MapperFactory.CustomerAPPCodeDC_CustomerAPPCode.MapToNewDC(newCode);
return customerAPPCodeDC;
}
else
{
return null;
}
var code = x.Last().CustomerCode;
DeletZufallsCode(code);
newCode.IsChatAktiv = ischatAktive;
DAOFactory.GenericDAO.Insert(newCode);
var customerAPPCodeDC = MapperFactory.CustomerAPPCodeDC_CustomerAPPCode.MapToNewDC(newCode);
return customerAPPCodeDC;
}
catch (Exception e)
{
@@ -3338,14 +3381,126 @@ namespace BeWo.Service.ServiceImplementations
}
}
public void DeletZufallsCode(string code)
public bool DeletZufallsCode(string apikey,string customerId,string userId)
{
try
{
using (WebClient client = new WebClient())
#region ServerUrl Ermitteln
string serverUrl = ErmittleServerURL(customerId);
#endregion
#region ChatCode Deaktivieren
try
{
var x = client.DownloadData("https://bewoplaner.beyondsoft.de/appvoucher.php?Action=DELETE&Voucher="+code+"&ajfho374873hfklasjf9012z44ublfkhao894zuu2ebmsadvuw48=tzrghvcjgr8t975gjliuoe8s89zdsgjb32h3qae7t");
string serverURl = serverUrl + "/api/ownchat/chatcode/revoke/" + apikey + "/" + customerId + "/" + userId; // ändern
WebRequest request = WebRequest.Create(serverURl);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response;
response = request.GetResponse();
// Display the status.
var statusResponse = ((HttpWebResponse)response).StatusDescription;
string responseFromServer = ReadStreamForChatCode(response);
var def = new { result = "" };
var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, def);
response.Close();
if (!jsonDatentyp.result.Equals("0"))
{
return false;
}
else
{
return true;
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
#endregion
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public string ErzeugeZufallsCode(string apikey,string customerId, string userId)
{
#region ServerURl Ermitteln
string serverUrl = ErmittleServerURL(customerId);
#endregion
#region ChatCode Generieren
try
{
string serverURl =serverUrl+"/api/ownchat/chatcode/create/"+ apikey +"/"+ customerId + "/"+userId; // ändern
WebRequest request = WebRequest.Create(serverURl);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response;
response = request.GetResponse();
// Display the status.
var statusResponse = ((HttpWebResponse)response).StatusDescription;
string responseFromServer = ReadStreamForChatCode(response);
var definiti = new {result = "", chatcode = ""};
var jsonDatentyp = JsonConvert.DeserializeAnonymousType(responseFromServer, definiti); // neuen authentifikationstyp erstellen
response.Close();
if (!jsonDatentyp.result.Equals("0"))
{
//fange fehler ab
return null;
}
else
{
return jsonDatentyp.chatcode;
}
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
#endregion
}
private string ErmittleServerURL(string customerId)
{
try
{
string url = "https://dict.ownchat.de/api/server/resolve/1/" + customerId;//customerId; //customerid == kundennummer
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
string responseFromServer = ReadStreamForChatCode(response);
var definition = new { status = "", URL = "", SYNCTYPE = "" };
var jsondaten = JsonConvert.DeserializeAnonymousType(responseFromServer, definition);
string serverUrl = jsondaten.URL;
response.Close();
return serverUrl;
}
catch (Exception e)
{
@@ -3353,36 +3508,28 @@ namespace BeWo.Service.ServiceImplementations
}
}
public string ErzeugeZufallsCode(int appType)
private string ReadStreamForChatCode(WebResponse response)
{
String[] resultArray;
using (WebClient client = new WebClient())
try
{
Stream dataStream = response.GetResponseStream();
byte[] response = client.DownloadData("https://bewoplaner.beyondsoft.de/appvoucher.php?k=1234567890&Action=CREATE&AppType=" + appType + "&ajfho374873hfklasjf9012z44ublfkhao894zuu2ebmsadvuw48=tzrghvcjgr8t975gjliuoe8s89zdsgjb32h3qae7t");
StreamReader reader = new StreamReader(dataStream);
String result = System.Text.Encoding.ASCII.GetString(response);
string responseFromServer = reader.ReadToEnd();
resultArray = result.Split(';');
dataStream.Dispose();
reader.Dispose();
dataStream.Close();
reader.Close();
return responseFromServer;
}
/* int lenght = 12;
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
"abcdefghijklmnopqrstuvwxyz" +
"0123456789";
var random = new Random();
String Code = new string(Enumerable.Repeat(chars, lenght)
.Select(s => s[random.Next(s.Length)]).ToArray());
*/
if (resultArray[0].Equals("TRUE"))
{
return resultArray[1];
}
else
{
return "";
catch (Exception e)
{
return null;
}
}

View File

@@ -36,7 +36,12 @@ namespace BeWo.Service.ServiceImplementations
ApplicationUser lOriginal = DAOFactory.UserDAO.FindUserByLoginName(pUserName);
MapperFactory.UserDC_User.ConcurrencyCheck(pUserVersion, lOriginal);
if (DAOFactory.UserDAO.CheckPassword(lOriginal, pOldPassword))
var oldHash = lOriginal.BCryptPassword;
if (String.IsNullOrWhiteSpace(oldHash))
{
oldHash = lOriginal.HashedPassword;
}
if (DAOFactory.UserDAO.CheckPassword(lOriginal, oldHash))
{
lOriginal.ChangePassword(pNewPassword);
var settings = AppSettings.CreateSettings();