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

# Conflicts:
#	BeWo.sln
#	Service/Plugins/PluginLoader.cs
This commit is contained in:
Christian
2020-11-25 11:43:53 +01:00
23 changed files with 3620 additions and 98 deletions

View File

@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.1209
# Visual Studio Version 16
VisualStudioVersion = 16.0.30523.141
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client", "Client", "{E7543C39-A44C-40C9-82C9-E7FAA2D9A852}"
EndProject
@@ -415,6 +415,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NahDran", "ReportImp\NahDra
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApiBerlin", "ReportImp\ApiBerlin\ApiBerlin.csproj", "{B4E9D5AF-7B46-47F8-B918-052D341A378B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeWoNordeifel", "ReportImp\BeWoNordeifel\BeWoNordeifel.csproj", "{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|.NET = Debug|.NET
@@ -3118,6 +3120,22 @@ Global
{B4E9D5AF-7B46-47F8-B918-052D341A378B}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B4E9D5AF-7B46-47F8-B918-052D341A378B}.Release|x86.ActiveCfg = Release|Any CPU
{B4E9D5AF-7B46-47F8-B918-052D341A378B}.Release|x86.Build.0 = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|.NET.ActiveCfg = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|.NET.Build.0 = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|x86.ActiveCfg = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Debug|x86.Build.0 = Debug|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|.NET.ActiveCfg = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|.NET.Build.0 = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|Any CPU.Build.0 = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|x86.ActiveCfg = Release|Any CPU
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3321,6 +3339,7 @@ Global
{1D106ED2-9E3C-4F22-8083-188BC11D4A5B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{57B95F8E-BF79-4106-AE98-C9B14CE949BA} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{B4E9D5AF-7B46-47F8-B918-052D341A378B} = {D8A691C5-146D-4613-86CC-438F02FE9106}
{CF08D1BE-588E-4A0F-8FC4-B7D6F69091B0} = {D8A691C5-146D-4613-86CC-438F02FE9106}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBE985BB-9F0F-4DBB-8F94-ABC37A803FF9}

View File

@@ -406,6 +406,9 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Master\DokumenteView.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</Page>
<Page Include="View\Report\Kilometerauswertung\KilometerauslastungsView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -860,6 +863,7 @@
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\DienstInfoVM.cs" />
<Compile Include="ViewModel\BudgetVM.cs" />
<Compile Include="ViewModel\DocumentTreeItemVM.cs" />
<Compile Include="ViewModel\QuittierungsbelegsstatusVM.cs" />
<Compile Include="ViewModel\RatingTypeVM.cs" />
<Compile Include="ViewModel\ListViewModel\GoalRatingListVM.cs" />
@@ -1055,6 +1059,9 @@
<Compile Include="View\HomeView.xaml.cs">
<DependentUpon>HomeView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Master\DokumenteView.xaml.cs">
<DependentUpon>DokumenteView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Navigation\Sorter\UserSorter.cs" />
<Compile Include="View\Report\Kilometerauswertung\KilometerauslastungsView.xaml.cs">
<DependentUpon>KilometerauslastungsView.xaml</DependentUpon>

View File

@@ -448,6 +448,20 @@
</TransformGroup>
</Button.RenderTransform>
</localView:ImageButton>
<localView:ImageButton r:DemandUserRight.VisibleDemands="ViewAll, TeamView_ViewAll, TeamView_ViewMyTeams"
x:Name="button_Dokumente" Click="button_Dokumente_Click" Style="{StaticResource NavBarButton}"
Content="{t:Translate DokumenteMenuItem}" Background="{StaticResource DokumenteContentBrush}"
RenderTransformOrigin="0.5,0.5"
ImageSource="Ressources\Icons\Folder.png" Width="90">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Button.RenderTransform>
</localView:ImageButton>
<localView:ImageButton r:DemandUserRight.VisibleDemands="ViewAll, UserView_View"
x:Name="button_User" Click="button_User_Click" Style="{StaticResource NavBarButton}"
Content="{t:Translate BenutzerMenuItem}" Background="{StaticResource UserContentBrush}"

View File

@@ -44,6 +44,7 @@ namespace BeWo
Employee,
Organisation,
Team,
Dokumente,
User,
UserGroup,
Report,
@@ -112,6 +113,7 @@ namespace BeWo
{
this.button_SchulbegleitenderDienst.Visibility = Visibility.Collapsed;
}
this.button_Dokumente.Visibility = Visibility.Collapsed;
#endif
}
@@ -209,7 +211,10 @@ namespace BeWo
case UIContext.Team:
view = new TeamNavigationView();
break;
case UIContext.User:
case UIContext.Dokumente:
view = new DokumenteView();
break;
case UIContext.User:
view = new UserNavigationView();
break;
case UIContext.UserGroup:
@@ -1029,7 +1034,15 @@ namespace BeWo
}
}
private void button_CustomerTeam_Click(object sender, RoutedEventArgs e)
private void button_Dokumente_Click(object sender, RoutedEventArgs e)
{
if (DoSaveCheck())
{
NavigateTo(GetViewForUIContext(UIContext.Dokumente));
}
}
private void button_CustomerTeam_Click(object sender, RoutedEventArgs e)
{
if (DoSaveCheck())
{
@@ -1713,5 +1726,7 @@ namespace BeWo
NavigateTo(GetViewForUIContext(UIContext.Vertretungen));
}
}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -3022,8 +3022,23 @@
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
<!-- Region User Styles-->
<!-- Region Team Styles-->
<SolidColorBrush x:Key="DokumenteContentBrush" Color="AntiqueWhite" />
<Style x:Key="DokumenteNavigationStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>
<SolidColorBrush x:Key="NavigationHeaderBrush" Color="Beige" />
<LinearGradientBrush x:Key="NavigationContentBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="AntiqueWhite" Offset="0" />
<GradientStop Color="Beige" Offset="1" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Template" Value="{StaticResource NavigationGroupTemplate}" />
</Style>
<!-- EndRegion -->
<!-- Region User Styles-->
<SolidColorBrush x:Key="UserContentBrush" Color="#FF4B4B4B" />
<Style x:Key="UserNavigationStyle" TargetType="{x:Type GroupBox}">
<Style.Resources>

View File

@@ -10,7 +10,7 @@
VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ContextMenu x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened">
<ContextMenu x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened">
<MenuItem Header="Neu" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Add24.png"/>
@@ -22,14 +22,14 @@
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Header="Löschen" >
<MenuItem Header="Löschen" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Delete24.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
<HierarchicalDataTemplate x:Key="test" DataType="{x:Type localViewModel:BeWoFolderVM}" ItemsSource="{Binding SubFolders}">
</ContextMenu>
<HierarchicalDataTemplate x:Key="test" DataType="{x:Type localViewModel:BeWoFolderVM}" ItemsSource="{Binding SubFolders}">
<StackPanel Orientation="Horizontal" ContextMenu="{StaticResource cm}">
<Image Name="img" Width="20" Height="20" Stretch="Fill" Source="..\Ressources\Icons\Folder.png" />

View File

@@ -47,7 +47,7 @@
<dxa:AccordionControl x:Name="Root" Background="Transparent" VerticalAlignment="Top" dx:ThemeManager.ThemeName="Office2013" BorderThickness="0" RootItemExpandButtonPosition="Left">
<dxa:AccordionItem Header="{markup:Translate Allgemein}" Tag="Header" Foreground="{StaticResource TabItemTextBrush}">
<dxa:AccordionItem Header="{markup:Translate Einstellungen}" Name="TabitemMandator" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Ankündigungen}" Name="TabitemNews" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Ankündigungen}" Name="TabitemNews" Selected="Tabitem_Selected" Foreground="Black"/>
</dxa:AccordionItem>
<dxa:AccordionItem Header="{markup:Translate Klienten}" Foreground="{StaticResource TabItemTextBrush}" >
<dxa:AccordionItem Header="{markup:Translate Behinderungskategorien}" Name="TabitemDisablityTypes" Selected="Tabitem_Selected" Foreground="Black"/>

View File

@@ -0,0 +1,160 @@
<localView:BeWoView x:Class="BeWo.View.Master.DokumenteView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion"
xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True">
<localView:BeWoView.Resources>
<ContextMenu x:Name="contextMenu" x:Key="cm" MenuItem.Click="ContextMenu_Click" Opened="ContextMenu_Opened">
<MenuItem Header="Neu" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Add24.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Umbenennen">
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Rename24.png"/>
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Header="Löschen" >
<MenuItem.Icon>
<Image Source="..\Ressources\Icons\Delete24.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
<!--
<HierarchicalDataTemplate x:Key="test" DataType="{Binding DocumentTreeItemVM}" ItemsSource="{Binding DocumentTreeItemVM}">
<StackPanel Orientation="Horizontal" ContextMenu="{StaticResource cm}">
<Image Name="img" Width="20" Height="20" Stretch="Fill" Source="..\Ressources\Icons\Folder.png" />
<TextBox Cursor="Arrow" Background="Transparent" Padding="2 1" LostFocus="TextBox_LostFocus" KeyDown="TextBox_KeyDown" BorderThickness="0" IsReadOnly="True" Text="{Binding Path=Name}" />
</StackPanel>
</HierarchicalDataTemplate>
-->
</localView:BeWoView.Resources>
<Grid>
<uc:ShadowChrome>
<GroupBox Style="{StaticResource MainContentGroupBoxStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0,11,0,0">
<Image Source="..\..\Ressources\Icons\Folder.png" RenderTransformOrigin="0.5,0.5" Width="32">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.3" ScaleY="1.3" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="0" />
<TranslateTransform X="0" Y="-2" />
</TransformGroup>
</Image.RenderTransform>
</Image>
<TextBox Text="Dokumente" Margin="10,0,0,0" Background="{x:Null}" Foreground="{DynamicResource MainGroupBoxForegroundBrush}" FontSize="22" BorderBrush="{x:Null}" VerticalAlignment="Stretch" Padding="0,0,0,0" BorderThickness="0,0,0,0" />
</StackPanel>
</GroupBox.Header>
<Grid Margin="0,3,0,0" Grid.Row="0" Background="{StaticResource ObjectEditBackgroundBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<dxg:TreeListControl x:Name="documents_treeview_control" Grid.Column="0" DefaultSorting="Name" Margin="2,3,5,5" VerticalAlignment="Stretch">
<dxg:TreeListControl.Columns>
<dxg:TreeListColumn FieldName="Name" AllowSorting="True"/>
</dxg:TreeListControl.Columns>
<dxg:TreeListControl.View>
<dxg:TreeListView x:Name="DocumentsTreeView" PreviewMouseLeftButtonDown="DocumentsTreeView_PreviewMouseLeftButtonDown" PreviewMouseRightButtonDown="DocumentsTreeView_PreviewMouseRightButtonDown"
RowDoubleClick="DocumentsTreeView_RowDoubleClick" FocusedRowChanged="DocumentsTreeView_FocusedRowChanged"
NodeExpanding="treeListView_NodeExpanding" AllowEditing="False" ShowNodeImages="True" PrintNodeImages="True"
KeyFieldName="{Binding DocumentTreeItemVM.DocTreeItemOid}" ParentFieldName="Binding DocumentTreeItemVM.ParentOid" ContextMenu="{StaticResource cm}">
</dxg:TreeListView>
</dxg:TreeListControl.View>
</dxg:TreeListControl>
<Grid Grid.Column="2" Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Neue Datei hochladen">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="1" Content="Datei" />
<uc:PopUpEdit IsReadOnly="True" Name="popupedit_file" Grid.Column="1" Margin="3" Height="23" Grid.Row="1" DeleteButtonVisibility="Collapsed" PopUpClick="popupedit_file_PopUpClick" />
<Label Grid.Row="1" Grid.Column="2" Content="Beschreibung" />
<TextBox Name="textbox_fileNotice" Margin="3" Height="23" Grid.Row="1" Grid.Column="3" />
<Button IsEnabled="False" Name="button_uploadDocument" Margin="3" Height="25" Grid.Row="1" Grid.Column="4" Click="button_uploadDocument_Click" Content="Dokument hochladen" />
<ProgressBar Height="20" Margin="3" Name="progressbar_upload" Grid.Row="2" Grid.ColumnSpan="5" Minimum="0" Maximum="1" />
<Label VerticalAlignment="Center" Grid.Row="2" Grid.ColumnSpan="5" HorizontalAlignment="Center" Name="text_progress" />
</Grid>
</GroupBox>
<dxg:GridControl Grid.Row="1" Margin="2,3,5,5" DataSource="{Binding SelectedItem.Files, ElementName=treeview}" x:Name="datagrid_documents" Grid.Column="1">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="FileName" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18" VerticalAlignment="Center" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="InsertedOn" AllowEditing="False" Header="hinterlegt am" Width="*" />
<dxg:GridColumn FieldName="InsertedBy" AllowEditing="False" Header="hinterlegt von" Width="*" />
<dxg:GridColumn FieldName="FileName" AllowEditing="False" Header="Dateiname" Width="*" />
<dxg:GridColumn FieldName="Description" AllowEditing="False" Header="Beschreibung" Width="*" />
<dxg:GridColumn FieldName="URL" Header="Herunterladen" Width="100" MinWidth="90" x:Name="ColumnDownload">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink TargetName="inexistent" NavigateUri="{Binding Path=Value, Converter={StaticResource DownloadURLConverter}}" RequestNavigate="Hyperlink_OnRequestNavigate">
<TextBlock Text="herunterladen" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="false" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" x:Name="DocumentTableView"/>
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</Grid>
</GroupBox>
</uc:ShadowChrome>
</Grid>
</localView:BeWoView>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,85 @@
using BS.Shared.DataContracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.ViewModel
{
class DocumentTreeItemVM : AbstractDCMapperVM<DocumentTreeItemDC>
{
private long? _DocTreeItemOid;
private long? _ParentOid;
private string _Name;
private string _Tooltip;
public DocumentTreeItemVM(DocumentTreeItemDC dc) : base(dc, dc.DocTreeItemOid == null)
{
InitByDataContract(dc);
}
public long? DocTreeItemOid
{
get { return _DocTreeItemOid; }
set
{
_DocTreeItemOid = value;
StoreDirtyInformation(AreDifferent(DataContract.DocTreeItemOid, value), nameof(_DocTreeItemOid));
FirePropertyChanged(nameof(_DocTreeItemOid));
}
}
public long? ParentOid
{
get { return _ParentOid; }
set
{
_ParentOid = value;
StoreDirtyInformation(AreDifferent(DataContract.ParentOid, value), nameof(_ParentOid));
FirePropertyChanged(nameof(_ParentOid));
}
}
public string Name
{
get { return _Name; }
set
{
_Name = value;
StoreDirtyInformation(AreDifferent(DataContract.Name, value), nameof(_Name));
FirePropertyChanged(nameof(_Name));
}
}
public string Tooltip
{
get { return _Tooltip; }
set
{
_Tooltip = value;
StoreDirtyInformation(AreDifferent(DataContract.Tooltip, value), nameof(_Tooltip));
FirePropertyChanged(nameof(_Tooltip));
}
}
protected override void InitByDataContract(DocumentTreeItemDC pDataContract)
{
_DocTreeItemOid = pDataContract.DocTreeItemOid;
_ParentOid = pDataContract.ParentOid;
_Name = pDataContract.Name;
_Tooltip = pDataContract.Tooltip;
}
protected override DocumentTreeItemDC MapToDataContract(DocumentTreeItemDC pDataContract, bool doCommit)
{
pDataContract.DocTreeItemOid = _DocTreeItemOid;
pDataContract.ParentOid = _ParentOid;
pDataContract.Name = _Name;
pDataContract.Tooltip = _Tooltip;
return pDataContract;
}
}
}

View File

@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Threading;
using BeWo.Core.Service;
using BeWo.SchulbegleitenderDienst.ViewModel;
using BeWo.ServiceProxy;
@@ -764,5 +764,101 @@ namespace BeWo.ViewModel
pCallBack(new SbdConfigVM(r));
});
}
public static List<CompactSupportConceptDC> CreateSupportConceptList()
{
List<CompactSupportConceptDC> allSupportConcepts = new List<CompactSupportConceptDC>();
List<CompactSupportConceptDC> activeSupportConcepts = new List<CompactSupportConceptDC>();
allSupportConcepts = ServiceFacade.DoCustomerServiceSync(
s => s.GetAllSupportConceptsCompact(BeWoApp.LoggedOnUser.Employee.EmployeeOid));
foreach (var sc in allSupportConcepts)
{
if (!sc.IsDeleted)
activeSupportConcepts.Add(sc);
}
return activeSupportConcepts;
}
public static List<CompactCustomerDC> CreateCustomerList()
{
List<CompactCustomerDC> allCustomers = new List<CompactCustomerDC>();
List<CompactCustomerDC> activeCustomers = new List<CompactCustomerDC>();
allCustomers = ServiceFacade.DoCustomerServiceSync(
s => s.GetAllCustomersCompact(BeWoApp.LoggedOnUser.Employee.EmployeeOid));
foreach (var customer in allCustomers)
{
if (!customer.IsDeleted)
activeCustomers.Add(customer);
}
return activeCustomers;
}
public static List<CompactOrganisationDC> CreateOrganisationList()
{
List<CompactOrganisationDC> allOrganisations = new List<CompactOrganisationDC>();
allOrganisations = ServiceFacade.DoCustomerServiceSync(s => s.GetAllActiveOrganisationsCompact());
return allOrganisations;
}
public static List<CompactPersonDC> CreatePeopleList()
{
List<CompactPersonDC> allPeople = new List<CompactPersonDC>();
List<CompactPersonDC> activePeople = new List<CompactPersonDC>();
allPeople = ServiceFacade.DoCustomerServiceSync(s => s.GetAllPersonsByTypeCompact(PersonType.Others));
foreach (var person in allPeople)
{
if (!person.IsDeleted)
activePeople.Add(person);
}
return activePeople;
}
public static List<CompactEmployeeDC> CreateEmployeeList()
{
List<CompactEmployeeDC> allEmployee = new List<CompactEmployeeDC>();
allEmployee = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllActiveEmployeesCompact());
return allEmployee;
}
public static List<CompactTeamDC> CreateTeamList()
{
List<CompactTeamDC> allTeams = new List<CompactTeamDC>();
allTeams = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllTeamsCompact());
return allTeams;
}
public static List<CompactUserDC> CreateUserList()
{
List<CompactUserDC> allUsers = new List<CompactUserDC>();
allUsers = ServiceFacade.DoUserServiceSync(s => s.GetAllUsersCompact());
return allUsers;
}
public static List<UserGroupDC> CreateUserGroupList()
{
List<UserGroupDC> allUserGroups = new List<UserGroupDC>();
allUserGroups = ServiceFacade.DoUserServiceSync(s => s.GetAllUserGroups());
return allUserGroups;
}
public static List<BeWoFolderDC> CreateFolderList(TableID tid, long objectOid)
{
List<BeWoFolderDC> folderList = new List<BeWoFolderDC>();
folderList = ServiceFacade.DoOperationsServiceSync(s => s.GetFolderTree(tid, objectOid));
return folderList;
}
}
}

View File

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

View File

@@ -75,6 +75,12 @@
<Compile Include="Quittierungsbeleg.Designer.cs">
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
</Compile>
<Compile Include="SettlementReport.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="SettlementReport.Designer.cs">
<DependentUpon>SettlementReport.cs</DependentUpon>
</Compile>
<Compile Include="Teamstundenkonto.cs">
<SubType>Component</SubType>
</Compile>
@@ -100,6 +106,10 @@
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="SettlementReport.resx">
<DependentUpon>SettlementReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Teamstundenkonto.resx">
<DependentUpon>Teamstundenkonto.cs</DependentUpon>
</EmbeddedResource>

File diff suppressed because it is too large Load Diff

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 BeWo.Report.DefaultReports.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,554 @@
<?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>
<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>
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
AAAAAElFTkSuQmCC
</value>
</data>
<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

@@ -31,6 +31,7 @@ namespace DiakonischesWerkHerne
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Quittierungsbeleg));
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
@@ -65,6 +66,8 @@ namespace DiakonischesWerkHerne
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.formattingRuleStartDate = new DevExpress.XtraReports.UI.FormattingRule();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel14 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel16 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel7 = new DevExpress.XtraReports.UI.XRLabel();
@@ -111,11 +114,12 @@ namespace DiakonischesWerkHerne
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldMinuten12 = new DevExpress.XtraReports.UI.CalculatedField();
this.xrLabel20 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -267,14 +271,14 @@ namespace DiakonischesWerkHerne
// xrTableCell44
//
this.xrTableCell44.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.EmployeeAbbr")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.fieldMinuten12", "{0:0.##} ")});
this.xrTableCell44.Name = "xrTableCell44";
this.xrTableCell44.StylePriority.UseBorders = false;
this.xrTableCell44.StylePriority.UseFont = false;
this.xrTableCell44.StylePriority.UsePadding = false;
this.xrTableCell44.StylePriority.UseTextAlignment = false;
this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell44.Weight = 0.20202019104791347D;
this.xrTableCell44.Weight = 0.10795445854641619D;
//
// xrTableCell50
//
@@ -286,7 +290,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell50.StylePriority.UsePadding = false;
this.xrTableCell50.StylePriority.UseTextAlignment = false;
this.xrTableCell50.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell50.Weight = 0.20202019042968572D;
this.xrTableCell50.Weight = 0.29608592293118297D;
//
// picSignature
//
@@ -313,13 +317,13 @@ namespace DiakonischesWerkHerne
this.xrTableServiceRecords1.BackColor = System.Drawing.Color.Gainsboro;
this.xrTableServiceRecords1.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.xrTableServiceRecords1.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableServiceRecords1.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTableServiceRecords1.LocationFloat = new DevExpress.Utils.PointFloat(0.5F, 0F);
this.xrTableServiceRecords1.Name = "xrTableServiceRecords1";
this.xrTableServiceRecords1.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableServiceRecords1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow2,
this.xrTableRow1});
this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(735F, 70F);
this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(746F, 70F);
this.xrTableServiceRecords1.StylePriority.UseBackColor = false;
this.xrTableServiceRecords1.StylePriority.UseBorders = false;
this.xrTableServiceRecords1.StylePriority.UseFont = false;
@@ -410,9 +414,9 @@ namespace DiakonischesWerkHerne
this.xrTableCell28.StylePriority.UseBorders = false;
this.xrTableCell28.StylePriority.UseFont = false;
this.xrTableCell28.StylePriority.UseTextAlignment = false;
this.xrTableCell28.Text = "Betreuerin / Betreuer";
this.xrTableCell28.Text = "FLS in";
this.xrTableCell28.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell28.Weight = 0.44692737430167595D;
this.xrTableCell28.Weight = 0.23743016759776534D;
//
// xrTableCell48
//
@@ -426,7 +430,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell48.StylePriority.UseTextAlignment = false;
this.xrTableCell48.Text = "Unterschrift";
this.xrTableCell48.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell48.Weight = 0.44692737430167606D;
this.xrTableCell48.Weight = 0.68715083798882681D;
//
// xrTableRow1
//
@@ -513,10 +517,14 @@ namespace DiakonischesWerkHerne
this.xrTableCell43.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell43.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell43.Multiline = true;
this.xrTableCell43.Name = "xrTableCell43";
this.xrTableCell43.StylePriority.UseBorders = false;
this.xrTableCell43.StylePriority.UseFont = false;
this.xrTableCell43.Weight = 0.44692737430167595D;
this.xrTableCell43.StylePriority.UseTextAlignment = false;
this.xrTableCell43.Text = "Minuten\r\n(mit 1,2)";
this.xrTableCell43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell43.Weight = 0.23743016759776534D;
//
// xrTableCell49
//
@@ -530,7 +538,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell49.StylePriority.UseTextAlignment = false;
this.xrTableCell49.Text = "Klientin / Klient¹";
this.xrTableCell49.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell49.Weight = 0.44692737430167606D;
this.xrTableCell49.Weight = 0.68715083798882681D;
//
// bindingSource1
//
@@ -546,6 +554,8 @@ namespace DiakonischesWerkHerne
// ReportHeader
//
this.ReportHeader.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel18,
this.xrLabel19,
this.xrLabel14,
this.xrLabel16,
this.xrLabel7,
@@ -555,9 +565,48 @@ namespace DiakonischesWerkHerne
this.xrLabel4,
this.xrLabel3,
this.xrLabel2});
this.ReportHeader.HeightF = 130F;
this.ReportHeader.HeightF = 146.6667F;
this.ReportHeader.Name = "ReportHeader";
//
// xrLabel18
//
this.xrLabel18.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel18.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel18.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(49.3611F, 108.1111F);
this.xrLabel18.Multiline = true;
this.xrLabel18.Name = "xrLabel18";
this.xrLabel18.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel18.SizeF = new System.Drawing.SizeF(120.6389F, 37.12879F);
this.xrLabel18.StylePriority.UseBackColor = false;
this.xrLabel18.StylePriority.UseBorders = false;
this.xrLabel18.StylePriority.UseFont = false;
this.xrLabel18.StylePriority.UsePadding = false;
this.xrLabel18.StylePriority.UseTextAlignment = false;
this.xrLabel18.Text = "Verantwortlicher\r\nMitarbeiter";
this.xrLabel18.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel19
//
this.xrLabel19.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Mandator.Name")});
this.xrLabel19.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel19.LocationFloat = new DevExpress.Utils.PointFloat(170F, 108.1111F);
this.xrLabel19.Name = "xrLabel19";
this.xrLabel19.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel19.SizeF = new System.Drawing.SizeF(209.3611F, 37.12879F);
this.xrLabel19.StylePriority.UseBackColor = false;
this.xrLabel19.StylePriority.UseBorders = false;
this.xrLabel19.StylePriority.UseFont = false;
this.xrLabel19.StylePriority.UsePadding = false;
this.xrLabel19.StylePriority.UseTextAlignment = false;
this.xrLabel19.Text = "[CustomerName]";
this.xrLabel19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel14
//
this.xrLabel14.BackColor = System.Drawing.Color.Gainsboro;
@@ -631,8 +680,7 @@ namespace DiakonischesWerkHerne
//
// xrLabel6
//
this.xrLabel6.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel6.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrLabel6.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel6.LocationFloat = new DevExpress.Utils.PointFloat(170F, 77.6111F);
this.xrLabel6.Name = "xrLabel6";
@@ -665,9 +713,8 @@ namespace DiakonischesWerkHerne
// xrLabel4
//
this.xrLabel4.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel4.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel4.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)));
this.xrLabel4.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel4.LocationFloat = new DevExpress.Utils.PointFloat(49.36111F, 77.6111F);
this.xrLabel4.Name = "xrLabel4";
@@ -746,6 +793,7 @@ namespace DiakonischesWerkHerne
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel20,
this.xrLabel17,
this.lblUnterschriftKlient,
this.lblUnterschriftMitarbeiter,
@@ -757,7 +805,6 @@ namespace DiakonischesWerkHerne
this.xrLabel15,
this.xrLabel13,
this.xrLabel12,
this.xrLabel11,
this.xrLabel10,
this.xrLabel9,
this.xrLabel1});
@@ -1123,29 +1170,15 @@ namespace DiakonischesWerkHerne
this.xrLabel12.Text = "E = ear to ear, face to face";
this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel11
//
this.xrLabel11.Font = new System.Drawing.Font("Arial", 8F);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(415F, 19.99999F);
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel11.StylePriority.UseBackColor = false;
this.xrLabel11.StylePriority.UseBorders = false;
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.StylePriority.UsePadding = false;
this.xrLabel11.StylePriority.UseTextAlignment = false;
this.xrLabel11.Text = "Ohne Faktor 1,2 (wird erst bei Abrechnung eingerechnet)";
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel10
//
this.xrLabel10.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel10.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(415F, 0F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(500.4999F, 0F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(234.5001F, 20F);
this.xrLabel10.StylePriority.UseBackColor = false;
this.xrLabel10.StylePriority.UseBorders = false;
this.xrLabel10.StylePriority.UseFont = false;
@@ -1194,6 +1227,34 @@ namespace DiakonischesWerkHerne
this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.fieldKontaktArt.Name = "fieldKontaktArt";
//
// fieldMinuten12
//
this.fieldMinuten12.DataMember = "Services";
this.fieldMinuten12.Expression = "[Minutes] * 1.2";
this.fieldMinuten12.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
this.fieldMinuten12.Name = "fieldMinuten12";
//
// xrLabel20
//
this.xrLabel20.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel20.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel20.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.fieldMinuten12")});
this.xrLabel20.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(414.9999F, 0F);
this.xrLabel20.Name = "xrLabel20";
this.xrLabel20.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel20.SizeF = new System.Drawing.SizeF(85F, 20F);
this.xrLabel20.StylePriority.UseBackColor = false;
this.xrLabel20.StylePriority.UseBorders = false;
this.xrLabel20.StylePriority.UseFont = false;
this.xrLabel20.StylePriority.UsePadding = false;
this.xrLabel20.StylePriority.UseTextAlignment = false;
xrSummary1.FormatString = "{0:0.##}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Report;
this.xrLabel20.Summary = xrSummary1;
this.xrLabel20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// Quittierungsbeleg
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1204,7 +1265,8 @@ namespace DiakonischesWerkHerne
this.bottomMarginBand1,
this.GroupFooter1});
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.fieldKontaktArt});
this.fieldKontaktArt,
this.fieldMinuten12});
this.DataSource = this.bindingSource1;
this.Font = new System.Drawing.Font("Arial", 10F);
this.FormattingRuleSheet.AddRange(new DevExpress.XtraReports.UI.FormattingRule[] {
@@ -1241,23 +1303,6 @@ namespace DiakonischesWerkHerne
private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;
private DevExpress.XtraReports.UI.XRLabel xrLabel2;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.XRTable xrTableServiceRecords1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell28;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell48;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell43;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell49;
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter1;
private DevExpress.XtraReports.UI.XRLabel xrLabel3;
private DevExpress.XtraReports.UI.XRLabel xrLabel7;
@@ -1276,7 +1321,6 @@ namespace DiakonischesWerkHerne
private DevExpress.XtraReports.UI.XRTableCell xrTableCell50;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.CalculatedField fieldKontaktArt;
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
@@ -1314,5 +1358,26 @@ namespace DiakonischesWerkHerne
private DevExpress.XtraReports.UI.XRLabel xrLabel16;
private DevExpress.XtraReports.UI.XRPictureBox picSignature;
private DevExpress.XtraReports.UI.XRLabel xrLabel17;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.XRTable xrTableServiceRecords1;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow2;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell3;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell4;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell11;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell28;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell48;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell8;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell5;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell6;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell7;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell43;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell49;
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel19;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
private DevExpress.XtraReports.UI.CalculatedField fieldMinuten12;
}
}

View File

@@ -105,7 +105,6 @@ namespace DiakonischesWerkHerne
this.xrLabel15 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel13 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel12 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel11 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
@@ -120,6 +119,7 @@ namespace DiakonischesWerkHerne
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
this.GroupFooter2 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.xrLabel20 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableAbwesenheiten)).BeginInit();
@@ -147,7 +147,7 @@ namespace DiakonischesWerkHerne
this.xrTable3.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTable3.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow6});
this.xrTable3.SizeF = new System.Drawing.SizeF(735F, 20F);
this.xrTable3.SizeF = new System.Drawing.SizeF(746F, 20F);
this.xrTable3.StylePriority.UseFont = false;
this.xrTable3.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopLeft;
//
@@ -257,7 +257,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell44.StylePriority.UsePadding = false;
this.xrTableCell44.StylePriority.UseTextAlignment = false;
this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell44.Weight = 0.20202019104791347D;
this.xrTableCell44.Weight = 0.1073231935880475D;
//
// xrTableCell50
//
@@ -269,7 +269,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell50.StylePriority.UsePadding = false;
this.xrTableCell50.StylePriority.UseTextAlignment = false;
this.xrTableCell50.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell50.Weight = 0.20202019042968572D;
this.xrTableCell50.Weight = 0.31060603807948434D;
//
// picSignature
//
@@ -293,7 +293,7 @@ namespace DiakonischesWerkHerne
this.xrTableServiceRecords1.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow2,
this.xrTableRow1});
this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(735F, 70F);
this.xrTableServiceRecords1.SizeF = new System.Drawing.SizeF(746F, 70F);
this.xrTableServiceRecords1.StylePriority.UseBackColor = false;
this.xrTableServiceRecords1.StylePriority.UseBorders = false;
this.xrTableServiceRecords1.StylePriority.UseFont = false;
@@ -384,9 +384,9 @@ namespace DiakonischesWerkHerne
this.xrTableCell28.StylePriority.UseBorders = false;
this.xrTableCell28.StylePriority.UseFont = false;
this.xrTableCell28.StylePriority.UseTextAlignment = false;
this.xrTableCell28.Text = "Betreuerin / Betreuer";
this.xrTableCell28.Text = "FLS in";
this.xrTableCell28.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell28.Weight = 0.44692737430167595D;
this.xrTableCell28.Weight = 0.23743016759776534D;
//
// xrTableCell48
//
@@ -400,7 +400,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell48.StylePriority.UseTextAlignment = false;
this.xrTableCell48.Text = "Unterschrift";
this.xrTableCell48.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell48.Weight = 0.44692737430167606D;
this.xrTableCell48.Weight = 0.68715083798882681D;
//
// xrTableRow1
//
@@ -487,10 +487,14 @@ namespace DiakonischesWerkHerne
this.xrTableCell43.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell43.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell43.Multiline = true;
this.xrTableCell43.Name = "xrTableCell43";
this.xrTableCell43.StylePriority.UseBorders = false;
this.xrTableCell43.StylePriority.UseFont = false;
this.xrTableCell43.Weight = 0.44692737430167595D;
this.xrTableCell43.StylePriority.UseTextAlignment = false;
this.xrTableCell43.Text = "Minuten\r\n(mit 1,2)";
this.xrTableCell43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell43.Weight = 0.23743016759776534D;
//
// xrTableCell49
//
@@ -504,7 +508,7 @@ namespace DiakonischesWerkHerne
this.xrTableCell49.StylePriority.UseTextAlignment = false;
this.xrTableCell49.Text = "Klientin / Klient¹";
this.xrTableCell49.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopCenter;
this.xrTableCell49.Weight = 0.44692737430167606D;
this.xrTableCell49.Weight = 0.68715083798882681D;
//
// formattingRuleStartDate
//
@@ -1060,29 +1064,15 @@ namespace DiakonischesWerkHerne
this.xrLabel12.Text = "E = ear to ear, face to face";
this.xrLabel12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel11
//
this.xrLabel11.Font = new System.Drawing.Font("Arial", 8F);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(414.9999F, 20.00001F);
this.xrLabel11.Name = "xrLabel11";
this.xrLabel11.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel11.StylePriority.UseBackColor = false;
this.xrLabel11.StylePriority.UseBorders = false;
this.xrLabel11.StylePriority.UseFont = false;
this.xrLabel11.StylePriority.UsePadding = false;
this.xrLabel11.StylePriority.UseTextAlignment = false;
this.xrLabel11.Text = "Ohne Faktor 1,2 (wird erst bei Abrechnung eingerechnet)";
this.xrLabel11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel10
//
this.xrLabel10.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel10.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel10.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(414.9999F, 0F);
this.xrLabel10.LocationFloat = new DevExpress.Utils.PointFloat(500F, 0F);
this.xrLabel10.Name = "xrLabel10";
this.xrLabel10.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel10.SizeF = new System.Drawing.SizeF(234.9999F, 20F);
this.xrLabel10.StylePriority.UseBackColor = false;
this.xrLabel10.StylePriority.UseBorders = false;
this.xrLabel10.StylePriority.UseFont = false;
@@ -1232,6 +1222,7 @@ namespace DiakonischesWerkHerne
// GroupFooter2
//
this.GroupFooter2.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel20,
this.xrLabel17,
this.lblUnterschriftKlient,
this.lblUnterschriftMitarbeiter,
@@ -1243,7 +1234,6 @@ namespace DiakonischesWerkHerne
this.xrLabel15,
this.xrLabel13,
this.xrLabel12,
this.xrLabel11,
this.xrLabel10,
this.xrLabel1,
this.xrLabel9});
@@ -1255,6 +1245,24 @@ namespace DiakonischesWerkHerne
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.QueryRO);
//
// xrLabel20
//
this.xrLabel20.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel20.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel20.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMBillable", "{0:0.##}")});
this.xrLabel20.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(415F, 0F);
this.xrLabel20.Name = "xrLabel20";
this.xrLabel20.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel20.SizeF = new System.Drawing.SizeF(85.00012F, 20F);
this.xrLabel20.StylePriority.UseBackColor = false;
this.xrLabel20.StylePriority.UseBorders = false;
this.xrLabel20.StylePriority.UseFont = false;
this.xrLabel20.StylePriority.UsePadding = false;
this.xrLabel20.StylePriority.UseTextAlignment = false;
this.xrLabel20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// QuittierungsbelegBlanko
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1331,7 +1339,6 @@ namespace DiakonischesWerkHerne
private DevExpress.XtraReports.UI.XRTableCell xrTableCell50;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell2;
private DevExpress.XtraReports.UI.CalculatedField fieldKontaktArt;
private DevExpress.XtraReports.UI.XRLabel xrLabel11;
private DevExpress.XtraReports.UI.XRLabel xrLabel10;
private DevExpress.XtraReports.UI.XRLabel xrLabel9;
private DevExpress.XtraReports.UI.XRLabel xrLabel1;
@@ -1378,5 +1385,6 @@ namespace DiakonischesWerkHerne
private DevExpress.XtraReports.UI.GroupFooterBand GroupFooter2;
private DevExpress.XtraReports.UI.XRLabel xrLabel19;
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
}
}

View File

@@ -17,7 +17,7 @@ namespace BeWo.Service.Plugins
#if DEBUG
var t = "demo";
t = "irgendwaswasesnichtgibt";
//t = "irgendwaswasesnichtgibt";
//t = "5473568546"; //Interner Chat
//t = "2356097460"; // Lebenshilfe Würzburg
//t = "1234567890"; // Präsentationsdatenbank
@@ -246,7 +246,8 @@ namespace BeWo.Service.Plugins
//t ="1601313225"; // Bella Donna
//t = "5098825926"; // SAB GmbH
//t = "7808149226"; // BeWo Flex
//t = "7419804320"; // Gender Bewo
//t = "7419804320"; // Gender Bewo
//t = "4500422855"; // BeWo Nordeifel
return t;
#else

View File

@@ -37,6 +37,7 @@ namespace BeWo.Service.Plugins
AddOrReplaceTranslation(dict, "PersonenMenuItem", "Personen");
AddOrReplaceTranslation(dict, "MitarbeiterMenuItem", "Mitarbeiter");
AddOrReplaceTranslation(dict, "TeamsMenuItem", "Teams");
AddOrReplaceTranslation(dict, "DokumenteMenuItem", "Dokumente");
AddOrReplaceTranslation(dict, "BenutzerMenuItem", "Benutzer");
AddOrReplaceTranslation(dict, "BenutzergruppenMenuItem", "Benutzergruppen");
AddOrReplaceTranslation(dict, "VerwaltungMenuItem", "Verwaltung");

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
namespace BS.Shared.DataContracts
{
public class DocumentTreeItemDC : IDataContract
{
[DataMember]
public long? DocTreeItemOid { get; set; }
[DataMember]
public long? ParentOid { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Tooltip { get; set; }
[DataMember]
public List<FileAttachmentDC> FilesInFolder { get; set; }
[DataMember]
public BeWoFolderDC BeWoFolderDC { get; set; }
public override bool Equals(object obj)
{
if (obj is DocumentTreeItemDC docTreeItem)
{
return DocTreeItemOid == docTreeItem.DocTreeItemOid;
}
return false;
}
public override int GetHashCode()
{
return GetType().Name.GetHashCode() ^ DocTreeItemOid.GetHashCode();
}
}
}

View File

@@ -157,6 +157,7 @@
<Compile Include="DataContracts\DienstEintragDC.cs" />
<Compile Include="DataContracts\DienstInfoDC.cs" />
<Compile Include="DataContracts\ClientPartials\VertretungsItemDC.cs" />
<Compile Include="DataContracts\DocumentTreeItemDC.cs" />
<Compile Include="DataContracts\GoalRatingDC.cs" />
<Compile Include="DataContracts\QuittierungsbelegsstatusDC.cs" />
<Compile Include="DataContracts\RatingTypeDC.cs" />