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

This commit is contained in:
2023-06-21 19:20:04 +02:00
60 changed files with 6649 additions and 1803 deletions

1
.gitignore vendored
View File

@@ -636,3 +636,4 @@ obj
/BeWoPlanerMobil/node_modules/.bin/pegjs
/BeWoPlanerMobil/node_modules/.bin/pegjs.cmd
/BeWoPlanerMobil/node_modules/.bin/pegjs.ps1
/BeWoDatabaseTerminator/BeWoDatabaseTerminator/bin/Debug

View File

@@ -342,6 +342,15 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/GetAbsenceOverviewBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.EmployeeDC> GetAbsenceOverview(BS.Shared.DataContracts.AbsenceOverviewFilterDC filter);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/LoadCompactTeamsByOid", ReplyAction="http://tempuri.org/IEmployeeService/LoadCompactTeamsByOidResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/LoadCompactTeamsByOidBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC> LoadCompactTeamsByOid(System.Collections.Generic.List<long> teamOids);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/FindLeadingCompactTeamsOfEmployee", ReplyAction="http://tempuri.org/IEmployeeService/FindLeadingCompactTeamsOfEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/FindLeadingCompactTeamsOfEmployeeBeWoFaultFau" +
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC> FindLeadingCompactTeamsOfEmployee(long employeeOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void ArchiveEmployee(long pOid, long pVersion);
@@ -935,6 +944,16 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAbsenceOverview(filter);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC> LoadCompactTeamsByOid(System.Collections.Generic.List<long> teamOids)
{
return base.Channel.LoadCompactTeamsByOid(teamOids);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactTeamDC> FindLeadingCompactTeamsOfEmployee(long employeeOid)
{
return base.Channel.FindLeadingCompactTeamsOfEmployee(employeeOid);
}
public void ArchiveEmployee(long pOid, long pVersion)
{
base.Channel.ArchiveEmployee(pOid, pVersion);
@@ -1400,8 +1419,8 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, string>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<long>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, BS.Shared.ValueListEntryType>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<byte[]>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<string>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<byte[]>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<long, long>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<System.Nullable<long>, decimal>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.ActivationTypeId))]
@@ -1878,6 +1897,11 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllAuthorizedCompactPersonsBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.Compact.CompactPersonDC> GetAllAuthorizedCompactPersons();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetActiveMedListByTypeForCustomer", ReplyAction="http://tempuri.org/ICustomerService/GetActiveMedListByTypeForCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetActiveMedListByTypeForCustomerBeWoFaultFau" +
"lt", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Nullable<long> GetActiveMedListByTypeForCustomer(long customerOid, bool isBedarfsmedikation);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/GetAllActiveCustomers", ReplyAction="http://tempuri.org/ICustomerService/GetAllActiveCustomersResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/GetAllActiveCustomersBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetAllActiveCustomers();
@@ -2721,6 +2745,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetAllAuthorizedCompactPersons();
}
public System.Nullable<long> GetActiveMedListByTypeForCustomer(long customerOid, bool isBedarfsmedikation)
{
return base.Channel.GetActiveMedListByTypeForCustomer(customerOid, isBedarfsmedikation);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.CustomerDC> GetAllActiveCustomers()
{
return base.Channel.GetAllActiveCustomers();
@@ -5484,6 +5513,11 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetRootAppointmentBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.SchedulerAppointmentDC GetRootAppointment(string recurrenceId);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetDiagiosisStringsForICD10Codes", ReplyAction="http://tempuri.org/IOperationsService/GetDiagiosisStringsForICD10CodesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetDiagiosisStringsForICD10CodesBeWoFaultFa" +
"ult", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.Dictionary<string, string> GetDiagiosisStringsForICD10Codes(System.Collections.Generic.List<string> icd10Codes);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/VertretungsMitarbeiterListeWoechentlich", ReplyAction="http://tempuri.org/IOperationsService/VertretungsMitarbeiterListeWoechentlichResp" +
"onse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/VertretungsMitarbeiterListeWoechentlichBeWo" +
@@ -6929,6 +6963,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetRootAppointment(recurrenceId);
}
public System.Collections.Generic.Dictionary<string, string> GetDiagiosisStringsForICD10Codes(System.Collections.Generic.List<string> icd10Codes)
{
return base.Channel.GetDiagiosisStringsForICD10Codes(icd10Codes);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.VertretungsListeMitarbeiterItemsDC> VertretungsMitarbeiterListeWoechentlich(System.DateTime start, System.DateTime ende)
{
return base.Channel.VertretungsMitarbeiterListeWoechentlich(start, ende);
@@ -8581,6 +8620,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetInvoiceBasesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetInvoiceBases(System.Nullable<System.DateTime> startDate, System.Nullable<System.DateTime> endDate);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetInvoiceBases2", ReplyAction="http://tempuri.org/IAccountingService/GetInvoiceBases2Response")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetInvoiceBases2BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetInvoiceBases2(System.Nullable<System.DateTime> startDate, System.Nullable<System.DateTime> endDate, bool filterByInvoiceDate);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/GetGeneralInvoiceBasesForCustomer", ReplyAction="http://tempuri.org/IAccountingService/GetGeneralInvoiceBasesForCustomerResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/GetGeneralInvoiceBasesForCustomerBeWoFaultF" +
"ault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
@@ -8750,6 +8793,11 @@ namespace BeWo.ServiceProxy
return base.Channel.GetInvoiceBases(startDate, endDate);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetInvoiceBases2(System.Nullable<System.DateTime> startDate, System.Nullable<System.DateTime> endDate, bool filterByInvoiceDate)
{
return base.Channel.GetInvoiceBases2(startDate, endDate, filterByInvoiceDate);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.InvoiceBaseDC> GetGeneralInvoiceBasesForCustomer(long customerOid)
{
return base.Channel.GetGeneralInvoiceBasesForCustomer(customerOid);

View File

@@ -1,25 +1,19 @@
<UserControl x:Class="BeWo.View.YearMonthFilter" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<GroupBox>
<GroupBox.Header>
<Grid Margin="0 0 4 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="a" />
<ColumnDefinition Width="Auto" SharedSizeGroup="b" />
</Grid.ColumnDefinitions>
<CheckBox Name="checkbox_yearfilter" IsChecked="True" Content="Nach Jahr filtern" />
<CheckBox Name="checkbox_monthfilter" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Grid.Column="1" IsChecked="True" Content="Nach Monat filtern" Margin="5,0,0,0" />
</Grid>
</GroupBox.Header>
<Grid Margin="0 0 4 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="a" />
<ColumnDefinition Width="Auto" SharedSizeGroup="b" />
</Grid.ColumnDefinitions>
<ComboBox x:Name="combobox_year" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Margin="3" Height="20" MinWidth="80" Padding="5 0" VerticalContentAlignment="Center" Background="White" />
<ComboBox x:Name="combobox_month" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_monthfilter}" Grid.Column="1" Margin="8,0,0,0" Height="20" MinWidth="120" Padding="5 0" VerticalContentAlignment="Center" Background="White" Grid.Row="1" />
</Grid>
</GroupBox>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="a" />
<ColumnDefinition Width="Auto" SharedSizeGroup="b" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<CheckBox Name="checkbox_yearfilter" IsChecked="True" Content="Nach Jahr filtern" />
<CheckBox Name="checkbox_monthfilter" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Grid.Column="1" IsChecked="True" Content="Nach Monat filtern" Margin="8,0,0,0" />
<ComboBox x:Name="combobox_year" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Grid.Row="1" Margin="0,3,0,0" Height="20" MinWidth="80" VerticalContentAlignment="Center" Background="White" />
<ComboBox x:Name="combobox_month" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_monthfilter}" Grid.Column="1" Grid.Row="1" Margin="8,3,0,0" Height="20" MinWidth="120" VerticalContentAlignment="Center" Background="White" />
</Grid>
</UserControl>

View File

@@ -3,20 +3,27 @@
<Grid>
<GroupBox x:Name="groupbox_editArea" Grid.Row="0" Header="Rechnungsübersicht" Style="{DynamicResource ObjectEditGroupBox}">
<Grid Grid.IsSharedSizeScope="True">
<Grid Grid.IsSharedSizeScope="True" Margin="0,3,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<localView:YearMonthFilter Margin="3 0 0 0" VerticalAlignment="Center" HorizontalAlignment="Left" Grid.Column="0" x:Name="yearMonthFilter" FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
<Button x:Name="button_reload" Grid.Column="1" Content="Aktualisieren" Margin="0,0,0,8" Click="ReloadButton_OnClick" Height="24" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="80" />
<localView:YearMonthFilter Margin="3 0 0 3" VerticalAlignment="Bottom" HorizontalAlignment="Left" Grid.Column="0" x:Name="yearMonthFilter" FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
<StackPanel Orientation="Vertical" Grid.Column="1" Margin="12,5,0,0" VerticalAlignment="Center" HorizontalAlignment="Left">
<RadioButton x:Name="radioFilterByInvoiceDate" Content="Nach Rechnungsdatum filtern" IsChecked="True"/>
<RadioButton x:Name="radioFilterByAccountingDate" Content="Nach Abrechnungszeitraum filtern" />
</StackPanel>
<Button x:Name="button_reload" Grid.Column="2" Content="Aktualisieren" Margin="12,0,0,0" Click="ReloadButton_OnClick" Height="24" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="80" />
<dxg:GridControl Margin="3" Grid.ColumnSpan="2" Grid.Row="1" DataSource="{Binding VMList}" x:Name="datagrid_invoices" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<dxg:GridControl Margin="3" Grid.ColumnSpan="3" Grid.Row="1" DataSource="{Binding VMList}" x:Name="datagrid_invoices" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<dxg:GridControl.Columns>
<dxg:GridColumn x:Name="ColumnButtons" AllowEditing="False" MinWidth="90" FieldName="ReportLink" Header=" ">
@@ -67,7 +74,7 @@
</dxg:GridControl.View>
</dxg:GridControl>
<Grid Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,2,5,0">
<Grid Grid.Row="1" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5,2,5,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />

View File

@@ -109,7 +109,9 @@ namespace BeWo.View.Detail.Accounting
start = ViewModel.DateTimeSpanFilter.StartDate;
end = ViewModel.DateTimeSpanFilter.EndDate;
}
ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBases(start, end), UpdateInvoiceList);
bool filterByInvoiceDate = radioFilterByInvoiceDate.IsChecked.Value;
ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBases2(start, end, filterByInvoiceDate), UpdateInvoiceList);
}
private void UpdateInvoiceList(IList<InvoiceBaseDC> dcList)

View File

@@ -27,34 +27,33 @@
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Margin="0 0 10 0">
<GroupBox.Header>
<Grid Margin="0 0 4 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="a" />
<ColumnDefinition Width="Auto" SharedSizeGroup="b" />
</Grid.ColumnDefinitions>
<CheckBox Name="checkbox_yearfilter" IsChecked="True" Content="Nach Jahr filtern" />
<CheckBox Name="checkbox_monthfilter" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Grid.Column="1" IsChecked="True" Content="Nach Monat filtern" Margin="5,0,0,0" />
</Grid>
</GroupBox.Header>
<Grid Margin="0 0 4 0">
<Grid Margin="0 3 0 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" SharedSizeGroup="a" />
<ColumnDefinition Width="Auto" SharedSizeGroup="b" />
</Grid.ColumnDefinitions>
<ComboBox x:Name="combobox_year" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Margin="3" Height="20" MinWidth="80" Padding="5 0" VerticalContentAlignment="Center" Background="White" />
<ComboBox x:Name="combobox_month" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_monthfilter}" Grid.Column="1" Margin="8,0,0,0" Height="20" MinWidth="120" Padding="5 0" VerticalContentAlignment="Center" Background="White" Grid.Row="1" />
</Grid>
</GroupBox>
<GroupBox Grid.Row="1" Grid.RowSpan="2" Grid.Column="0" Margin="0 0 10 0">
<GroupBox.Header>
<CheckBox Name="checkbox_supportconceptfilter" Unchecked="checkbox_supportconceptfilter_CheckedChanged" IsChecked="False" Checked="checkbox_supportconceptfilter_CheckedChanged" Content="Nach Hilfeplan filtern" />
</GroupBox.Header>
<localSearchView:SupportConceptTreeSearchView ResultListBackground="{StaticResource AccountingContentBrush}" x:Name="treesearchview_filter" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_supportconceptfilter}" Grid.Row="2" />
</GroupBox>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<CheckBox Name="checkbox_yearfilter" IsChecked="True" Content="Nach Jahr filtern" />
<CheckBox Name="checkbox_monthfilter" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Grid.Column="1" IsChecked="True" Content="Nach Monat filtern" Margin="8,0,0,0" />
<ComboBox x:Name="combobox_year" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_yearfilter}" Grid.Row="1" Margin="0,3,0,0" Height="20" MinWidth="80" Padding="0,0,0,0" VerticalContentAlignment="Center" Background="White" />
<ComboBox x:Name="combobox_month" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_monthfilter}" Grid.Column="1" Grid.Row="1" Margin="8,3,0,0" Height="20" MinWidth="120" VerticalContentAlignment="Center" Background="White" />
</Grid>
<Grid Grid.Row="1" Grid.RowSpan="2" Grid.Column="0" Margin="0 8 8 0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<CheckBox Name="checkbox_supportconceptfilter" Unchecked="checkbox_supportconceptfilter_CheckedChanged" IsChecked="False" Checked="checkbox_supportconceptfilter_CheckedChanged" Content="Nach Hilfeplan filtern" Grid.Row="0" />
<localSearchView:SupportConceptTreeSearchView ResultListBackground="{StaticResource AccountingContentBrush}" x:Name="treesearchview_filter" IsEnabled="{Binding Path=IsChecked, ElementName=checkbox_supportconceptfilter}" Grid.Row="1" Margin="0,3,0,0" />
</Grid>
<GridSplitter Grid.Column="0" HorizontalAlignment="Right" Grid.Row="0" Grid.RowSpan="3" Width="4" />

View File

@@ -240,8 +240,8 @@
</Grid>
</GroupBox>
</TabItem>
<TabItem Header="Weitere Eigenschaften" Name="tabitem_varFields">
<TabItem Header="{markup:Translate OrganisationVarFieldsTitle}" Name="tabitem_varFields">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<localView:VarFieldView VarFieldList="{Binding VarFields}" />
</ScrollViewer>
@@ -446,7 +446,7 @@
<!-- neu -->
<uc:NullItemComboBox Grid.Column="3" Grid.Row="0" Margin="3" Height="23" x:Name="Combobox_Rolle" ItemsSource="" />
<uc:NullItemComboBox Grid.Column="3" Grid.Row="0" Margin="3" Height="23" x:Name="Combobox_Rolle" />

View File

@@ -240,7 +240,7 @@
</Grid>
</ScrollViewer>
</TabItem>
<TabItem Header="Weitere Eigenschaften" IsSelected="True" Name="tabitem_varFields">
<TabItem Header="{markup:Translate PersonVarFieldsTitle}" IsSelected="True" Name="tabitem_varFields">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<localView:VarFieldView VarFieldList="{Binding VarFields}" />
</ScrollViewer>

View File

@@ -37,7 +37,9 @@
<ApplicationIcon>bdt.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="MySql.Data, Version=8.0.27.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL" />
<Reference Include="MySql.Data">
<HintPath>..\..\Lib\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>

View File

@@ -5092,7 +5092,7 @@
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<UseIIS>False</UseIIS>
<AutoAssignPort>False</AutoAssignPort>
<DevelopmentServerPort>8808</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>

View File

@@ -99,6 +99,7 @@ namespace BeWoPlanerMobil.Controllers
Model.Mandator = GetMandator();
var mokSessionTimeout = UserSettingsUtils.GetSettingValueAsInteger(Model.Mandator.Settings, SettingsKeys.MoKSessionTimeout, 20);
Session.Timeout = mokSessionTimeout;
}

View File

@@ -541,29 +541,9 @@ namespace BeWo.Data.Access
.CreateAlias(SupportConcept.PropertyName_Customer, "c", JoinType.InnerJoin)
.CreateAlias("c.Employee2CustomerList", "e2c", JoinType.InnerJoin)
.Add(Restrictions.Eq("e2c." + Employee2Customer.PropertyName_EmployeeOid, employeeOid.Value))
.Add(Restrictions.Or(
Restrictions.Between("cb2sc." + CostBearer2SupportConcept.PropertyName_ApprovedEndDate, minDate, expiredUntil),
Restrictions.And(Restrictions.IsNotNull("c.TerminationDate"), Restrictions.Between("c.TerminationDate", minDate, expiredUntil))))
.List<SupportConcept>().Distinct().ToList();
}
public IEnumerable<SupportConcept> FindExpiringNotApprovedSupportConcepts(long? employeeOid, DateTime minDate, DateTime expiredUntil)
{
var c = CreateCriteriaIsActive<SupportConcept>();
if (employeeOid == null)
{
return c
.CreateCriteria(SupportConcept.PropertyName_CostBearer2SupportConceptList, JoinType.InnerJoin)
.Add(Restrictions.Between(CostBearer2SupportConcept.PropertyName_RequestedEndDate, minDate, expiredUntil))
.List<SupportConcept>();
}
return c
.CreateAlias(SupportConcept.PropertyName_CostBearer2SupportConceptList, "cb2sc", JoinType.InnerJoin)
.CreateAlias(SupportConcept.PropertyName_Customer, "c", JoinType.InnerJoin)
.CreateAlias("c.Employee2CustomerList", "e2c", JoinType.InnerJoin)
.Add(Restrictions.Eq("e2c." + Employee2Customer.PropertyName_EmployeeOid, employeeOid.Value))
.Add(Restrictions.Or(
Restrictions.Between("cb2sc." + CostBearer2SupportConcept.PropertyName_RequestedEndDate, minDate, expiredUntil),
.Add(Restrictions.Or(Restrictions.Or(
Restrictions.Between("cb2sc." + CostBearer2SupportConcept.PropertyName_ApprovedEndDate, minDate, expiredUntil),
Restrictions.Between("cb2sc." + CostBearer2SupportConcept.PropertyName_RequestedEndDate, minDate, expiredUntil)),
Restrictions.And(Restrictions.IsNotNull("c.TerminationDate"), Restrictions.Between("c.TerminationDate", minDate, expiredUntil))))
.List<SupportConcept>().Distinct().ToList();
}

View File

@@ -919,3 +919,8 @@ ADD COLUMN `BemerkungenSbd` MEDIUMTEXT NULL;
ALTER TABLE `employee`
ADD COLUMN `BemerkungenSbd` MEDIUMTEXT NULL;
ALTER TABLE `customer`
ADD COLUMN `HealthInsurance` VARCHAR(45) NULL DEFAULT NULL AFTER `BemerkungenSbd`,
ADD COLUMN `InsuranceNumber` VARCHAR(45) NULL DEFAULT NULL AFTER `HealthInsurance`;

View File

@@ -80,6 +80,8 @@ namespace BeWo.Report.DefaultReports
this.topMarginBand1 = new DevExpress.XtraReports.UI.TopMarginBand();
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel22 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel23 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel19 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel20 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel21 = new DevExpress.XtraReports.UI.XRLabel();
@@ -123,8 +125,6 @@ namespace BeWo.Report.DefaultReports
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
this.xrLabel22 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel23 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -785,6 +785,37 @@ namespace BeWo.Report.DefaultReports
this.GroupFooter1.KeepTogether = true;
this.GroupFooter1.Name = "GroupFooter1";
//
// xrLabel22
//
this.xrLabel22.Borders = DevExpress.XtraPrinting.BorderSide.Right;
this.xrLabel22.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel22.LocationFloat = new DevExpress.Utils.PointFloat(244.9998F, 20.00001F);
this.xrLabel22.Name = "xrLabel22";
this.xrLabel22.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel22.SizeF = new System.Drawing.SizeF(85F, 20F);
this.xrLabel22.StylePriority.UseBackColor = false;
this.xrLabel22.StylePriority.UseBorders = false;
this.xrLabel22.StylePriority.UseFont = false;
this.xrLabel22.StylePriority.UsePadding = false;
this.xrLabel22.StylePriority.UseTextAlignment = false;
this.xrLabel22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel23
//
this.xrLabel23.BackColor = System.Drawing.Color.Transparent;
this.xrLabel23.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel23.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel23.LocationFloat = new DevExpress.Utils.PointFloat(329.9998F, 20.00001F);
this.xrLabel23.Name = "xrLabel23";
this.xrLabel23.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel23.SizeF = new System.Drawing.SizeF(85F, 20F);
this.xrLabel23.StylePriority.UseBackColor = false;
this.xrLabel23.StylePriority.UseBorders = false;
this.xrLabel23.StylePriority.UseFont = false;
this.xrLabel23.StylePriority.UsePadding = false;
this.xrLabel23.StylePriority.UseTextAlignment = false;
this.xrLabel23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel19
//
this.xrLabel19.Borders = DevExpress.XtraPrinting.BorderSide.Right;
@@ -838,7 +869,7 @@ namespace BeWo.Report.DefaultReports
// lblFehlkontakt
//
this.lblFehlkontakt.Font = new System.Drawing.Font("Arial", 10F);
this.lblFehlkontakt.LocationFloat = new DevExpress.Utils.PointFloat(0F, 39.99999F);
this.lblFehlkontakt.LocationFloat = new DevExpress.Utils.PointFloat(0F, 40.00005F);
this.lblFehlkontakt.Name = "lblFehlkontakt";
this.lblFehlkontakt.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblFehlkontakt.SizeF = new System.Drawing.SizeF(245F, 20F);
@@ -1308,37 +1339,6 @@ namespace BeWo.Report.DefaultReports
this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.fieldKontaktArt.Name = "fieldKontaktArt";
//
// xrLabel22
//
this.xrLabel22.Borders = DevExpress.XtraPrinting.BorderSide.Right;
this.xrLabel22.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel22.LocationFloat = new DevExpress.Utils.PointFloat(244.9998F, 20.00001F);
this.xrLabel22.Name = "xrLabel22";
this.xrLabel22.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel22.SizeF = new System.Drawing.SizeF(85F, 20F);
this.xrLabel22.StylePriority.UseBackColor = false;
this.xrLabel22.StylePriority.UseBorders = false;
this.xrLabel22.StylePriority.UseFont = false;
this.xrLabel22.StylePriority.UsePadding = false;
this.xrLabel22.StylePriority.UseTextAlignment = false;
this.xrLabel22.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel23
//
this.xrLabel23.BackColor = System.Drawing.Color.Transparent;
this.xrLabel23.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel23.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel23.LocationFloat = new DevExpress.Utils.PointFloat(329.9998F, 20.00001F);
this.xrLabel23.Name = "xrLabel23";
this.xrLabel23.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel23.SizeF = new System.Drawing.SizeF(85F, 20F);
this.xrLabel23.StylePriority.UseBackColor = false;
this.xrLabel23.StylePriority.UseBorders = false;
this.xrLabel23.StylePriority.UseFont = false;
this.xrLabel23.StylePriority.UsePadding = false;
this.xrLabel23.StylePriority.UseTextAlignment = false;
this.xrLabel23.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// Quittierungsbeleg
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -34,7 +34,7 @@ namespace BeWo.Report.DefaultReports
foreach (var sd in pRO.Services)
{
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt"))
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
{
ServicesOverviewRO.CreateSignatureString(sd);
sd.Notice5 = "E";
@@ -44,7 +44,7 @@ namespace BeWo.Report.DefaultReports
sd.Notice5 = "GR";
hatGruppen = true;
}
if (sd.ServiceDescription.ToLower().Contains("fehlkontakt"))
if (sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
{
sd.Notice5 = "F";
}

View File

@@ -28,9 +28,9 @@ namespace BeWo.Report.DefaultReports
foreach (var sd in pRO.Services)
{
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt"))
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
{
if (sd.ServiceDescription.ToLower().Contains("fehlkontakt"))
if (sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
sd.Notice5 = "F";
else if (sd.IsGroup)
sd.Notice5 = "GR";

View File

@@ -724,7 +724,7 @@ namespace BeWo.Report.DefaultReports
this.xrTableCell52.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell52.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell52.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.DetailDescription")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.AbrechnungsText")});
this.xrTableCell52.Name = "xrTableCell52";
this.xrTableCell52.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell52.StylePriority.UseBorderColor = false;
@@ -753,6 +753,7 @@ namespace BeWo.Report.DefaultReports
// GroupHeader2
//
this.GroupHeader2.BorderColor = System.Drawing.Color.Transparent;
this.GroupHeader2.Expanded = false;
this.GroupHeader2.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
new DevExpress.XtraReports.UI.GroupField("RateFactor", DevExpress.XtraReports.UI.XRColumnSortOrder.Descending)});
this.GroupHeader2.HeightF = 0F;

View File

@@ -36,12 +36,17 @@ namespace BeWo.Report.DefaultReports
if (!pRO.FehlkontakteString.IsNullOrEmpty() && ii.RateFactor == 0)
{
Zwischensumme.Visible = true;
if (!ii.ItemDescription.IsNullOrEmpty())
{
ii.DetailDescription = Regex.Replace(ii.DetailDescription, ii.ItemDescription, "Fehlkontakte");
}
//if (!ii.ItemDescription.IsNullOrEmpty())
//{
//ii.AbrechnungsText = Regex.Replace(ii.DetailDescription, ii.ItemDescription, "Fehlkontakte");
//}
ii.AbrechnungsText = ii.AbrechnungsText.Replace("FLS", "Std.");
ii.ItemDescription = "Fehlkontakte";
}
else if (ii.ItemDescription.IsNullOrEmpty())
{
ii.ItemDescription = "Fachleistungsstunden";
}
}
pRO.RateFactor = (double)rateFactor;

View File

@@ -764,7 +764,14 @@ namespace BeWo.Report.ReportObjects
return false;
}
protected virtual decimal? GetSollNachArbeitszeiten(Employee emp, DateTime start, DateTime ende)
protected virtual bool SchneideZuvieleAbwesenheitsstundenAb()
{
return true;
}
protected virtual decimal? GetSollNachArbeitszeiten(Employee emp, DateTime start, DateTime ende)
{
if (BerechneSollNurBisZumAktuellenTag())
{
@@ -1827,7 +1834,7 @@ namespace BeWo.Report.ReportObjects
{
var ts = span.EndDate.Subtract(span.StartDate);
abwesenheitsDauer = (decimal)ts.TotalHours;
if (abwesenheitsDauer > sollDiesenTag)
if (SchneideZuvieleAbwesenheitsstundenAb() && abwesenheitsDauer > sollDiesenTag)
{
abwesenheitsDauer = sollDiesenTag;
}
@@ -2906,7 +2913,7 @@ namespace BeWo.Report.ReportObjects
var sollAmTag = AktuellBearbeitetesEmployeeDetail.SollProTag;
if (hours > sollAmTag)
if (SchneideZuvieleAbwesenheitsstundenAb() && hours > sollAmTag)
{
hours = sollAmTag;
}

View File

@@ -387,10 +387,10 @@ namespace BeWo.Report.ReportObjects
{
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null && item.ServiceDescription.ServiceCategory.IsBillable)
{
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentAbrechnung.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentBudget ?? 100;
if (item.ServiceDescription.ProzentBudget.HasValue)
{
prozent = item.ServiceDescription.ProzentAbrechnung.Value;
prozent = item.ServiceDescription.ProzentBudget.Value;
}
minutenIst += (item.RoundedDuration * prozent) / 100;
@@ -463,10 +463,10 @@ namespace BeWo.Report.ReportObjects
item.ServiceDescription.ServiceCategory != null &&
item.ServiceDescription.ServiceCategory.IsBillable)
{
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentAbrechnung.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentBudget ?? 100;
if (item.ServiceDescription.ProzentBudget.HasValue)
{
prozent = item.ServiceDescription.ProzentAbrechnung.Value;
prozent = item.ServiceDescription.ProzentBudget.Value;
}
minutenIst += (item.RoundedDuration * prozent) / 100;
@@ -549,10 +549,10 @@ namespace BeWo.Report.ReportObjects
{
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null && item.ServiceDescription.ServiceCategory.IsBillable)
{
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (item.ServiceDescription.ProzentAbrechnung.HasValue)
decimal prozent = item.ServiceDescription.ServiceCategory.ProzentBudget ?? 100;
if (item.ServiceDescription.ProzentBudget.HasValue)
{
prozent = item.ServiceDescription.ProzentAbrechnung.Value;
prozent = item.ServiceDescription.ProzentBudget.Value;
}
@@ -874,10 +874,14 @@ namespace BeWo.Report.ReportObjects
decimal roundedDur = iSr.RoundedDuration;
decimal prozent = iSr.ServiceDescription.ServiceCategory.ProzentAbrechnung;
if (iSr.ServiceDescription.Name.ToLower().Contains("fehlkontakt") || (iSr.ServiceDescription.ProzentAbrechnung.HasValue && iSr.ServiceDescription.ProzentAbrechnung.Value < 100))
{
prozent = 100; // Keine
}
//if (iSr.ServiceDescription.ProzentAbrechnung.HasValue)
//{
// prozent = iSr.ServiceDescription.ProzentAbrechnung.Value;
//}
roundedDur *= (prozent / 100);

View File

@@ -199,7 +199,7 @@ namespace BeWo.Report.ReportObjects
List<ServiceRecord> fehlkontakteInAbrechnungszeitraum = new List<ServiceRecord>();
foreach (var sr in lCb2Sc.ServiceRecords)
{
if (sr.ServiceDescription.Name.ToLower().Contains("fehlkontakt"))
if (sr.ServiceDescription.ServiceCategory.Name.ToLower().Contains("fehlkontakt") || sr.ServiceDescription.Name.ToLower().Contains("fehlkontakt"))
fehlkontakteInAbrechnungszeitraum.Add(sr);
}
@@ -414,7 +414,7 @@ namespace BeWo.Report.ReportObjects
}
iiRo.AbrechnungsText = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} FLS {3}x {4:c}",
iiRo.PeriodStartDate, iiRo.PeriodEndDate, iiRo.UnitCount, !iiRo.RateFactor.HasValue ? "" : String.Format("x {0:0.00} ", (iiRo.RateFactor + 100) /100), iiRo.AmountPerUnit);
iiRo.PeriodStartDate, iiRo.PeriodEndDate, iiRo.UnitCount, (!iiRo.RateFactor.HasValue || iiRo.RateFactor.Value == 0) ? "" : String.Format("x {0:0.00} ", (iiRo.RateFactor + 100) /100), iiRo.AmountPerUnit);
lResult.InvoiceItems.Add(iiRo);
}

View File

@@ -353,9 +353,9 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";");
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";;0;"); //
sb.Append(";;0;\""); //
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";0;;;;0");
sb.Append("\";0;;;;0");
//sb.Append(";0;;;;05;;;;;;");
//sb.Append(ds.Kostenstelle); // Kostenstelle
//sb.Append(";");
@@ -375,9 +375,9 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";;");
sb.Append(";;\"");
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";;;0");
sb.Append("\";;;0");
}
private static void Erstelle1120Satz(StringBuilder sb, FibuNetDatensatz ds)
@@ -395,9 +395,9 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";");
sb.Append(";\"");
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";0;1");
sb.Append("\";0;1");
}
//private static void Erstelle1110Satz(StringBuilder sb, DataRow row, DateTime date, int rowIndex)

View File

@@ -48,6 +48,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BudgetnachweisAnhang.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="BudgetnachweisAnhang.Designer.cs">
<DependentUpon>BudgetnachweisAnhang.cs</DependentUpon>
</Compile>
<Compile Include="InvoiceCustomerReport.cs">
<SubType>Component</SubType>
</Compile>
@@ -85,6 +91,7 @@
<Compile Include="BasisRechnung.Designer.cs">
<DependentUpon>BasisRechnung.cs</DependentUpon>
</Compile>
<Compile Include="Service\AbrechenbarkeitenHelper.cs" />
<Compile Include="Service\CustomCustomerService.cs" />
<Compile Include="Service\CustomEmployeeService.cs" />
<Compile Include="SettlementReport.cs">
@@ -100,6 +107,7 @@
<DependentUpon>SettlementReport2.cs</DependentUpon>
</Compile>
<Compile Include="CustomReportCreator.cs" />
<Compile Include="Translation\CustomTranslationDictionary.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Data\Data.csproj">
@@ -120,6 +128,10 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="BudgetnachweisAnhang.resx">
<DependentUpon>BudgetnachweisAnhang.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="InvoiceCustomerReport.resx">
<DependentUpon>InvoiceCustomerReport.cs</DependentUpon>
<SubType>Designer</SubType>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,49 @@
using System;
using System.Linq;
using BeWo.Report;
using BeWo.Report.ReportObjects;
namespace BeWo.Report.DefaultReports
{
public partial class BudgetnachweisAnhang : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<BudgetnachweisAnhangRO>
{
public BudgetnachweisAnhang()
{
InitializeComponent();
}
public void SetReportDataSource(BudgetnachweisAnhangRO pRO)
{
// Pro Monat Betrag ausgeben
var summeBetragFLS = 0m;
var summeBetragFehlkontakt = 0m;
foreach (var item in pRO.MonatsZeilen)
{
var costrate = pRO.Entgeltzeitraeume[item.Entgeltzeitraum - 1].CostRatePeriod.CostRateValue;
var betragFLS = (item.SummeMinuten / 60) * costrate.Value * (pRO.RateFactor / 100 + 1);
var betragFehlkontakte = (item.SummeFehlkontakte / 60) * costrate.Value * 0.8m;
item.Betrag = betragFLS + betragFehlkontakte;
summeBetragFLS += betragFLS.Value;
summeBetragFehlkontakt += betragFehlkontakte.Value;
}
tcBetragFLS.Text = string.Format("{0:c}", summeBetragFLS);
tcBetragFehlkontakte.Text = string.Format("{0:c}", summeBetragFehlkontakt);
if (!String.IsNullOrEmpty(pRO.CustomerDC.LastName))
{
//pRO.CustomerDC.LastName = pRO.CustomerDC.LastName.Replace("/", "").Replace("LWL Psych", "").Replace("LWL Sucht", "").Trim();
}
//if (pRO.Transaktionen != null)
//{
// pRO.Transaktionen = pRO.Transaktionen.OrderBy(o => o.Belegdatum).ToList();
//}
bindingSource1.DataSource = pRO;
}
}
}

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>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="xrLabel1.Text" xml:space="preserve">
<value>Über den Budgetnachweis werden im nachstehenden Umfang folgende, im direkten Betreuungskontakt erbrachte Minuten zur Abrechnung beantragt (direkte Fachleistungsminuten = D-FLMin). Die Summe der D-FLMin wird in direkte Fachleistungsstunden (D-FLS) umgerechnet. Grundlage sind die Quittierungsbelege, solagen keine Befreiung von der Quittierungspflicht vorliegt.</value>
</data>
</root>

View File

@@ -17,6 +17,11 @@ namespace AutismusKoelnBonn
{
public class CustomReportCreator : DefaultReportCreator
{
public override XtraReport CreateSettlementReport(string dcId, long? invoiceBaseOid)
{
return base.CreateSettlementReport(dcId, invoiceBaseOid, true);
}
public override XtraReport CreateServiceOverviewAllCustomersReport(int month, int year, long orgaOid, long empOid, long? serviceCategoryOid, int startDay, int endDay)
{
List<ServicesOverviewRO> lROs = ServicesOverviewRO.Create(month, year, orgaOid, empOid, startDay, endDay);

View File

@@ -9,6 +9,7 @@ using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Services;
using KundeXyz.Service;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -91,6 +92,78 @@ namespace AutismusKoelnBonn.Invoicing
return invoice;
}
// Hier die drei Varfields abfragen und darauf basierend Items machen oder nicht
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc)
{
var abrechenbarkeiten = AbrechenbarkeitenHelper.CheckAbrechenbarkeiten(scap.CostBearer2SupportConcept.CostBearer.Organisation.VarFieldValueList);
var list = new List<InvoiceItem>();
foreach (ServiceRecordDC iServiceRecord in serviceRecordsInPeriod)
{
if (iServiceRecord.ServiceDescription.Category.IsBillable || abrechenbarkeiten["Mittelbar"] == true)
{
if (!iServiceRecord.AlreadyAccounted)
{
if (abrechenbarkeiten["Ausfallzeiten"] == false && iServiceRecord.ServiceDescription.Name.ToLower() == "fehlkontakt")
{
iServiceRecord.AlreadyAccounted = true;
continue;
}
if (abrechenbarkeiten["Mittelbar"] == true && iServiceRecord.ServiceDescription.Category.IsBillable == false)
{
iServiceRecord.ServiceDescription.Category.IsBillable = true;
}
if (abrechenbarkeiten["Wegezeiten"] == false && iServiceRecord.ServiceDescription.Name.ToLower() == "wegezeit")
{
iServiceRecord.AlreadyAccounted = true;
continue;
}
InvoiceItem invoiceItem = CreateInvoiceItem(iServiceRecord, scap, calc);
if (invoiceItem != null)
{
list.Add(invoiceItem);
}
iServiceRecord.AlreadyAccounted = true;
}
}
}
return CreateSummaryInvoiceItems(list, invoicePeriod, scap, calc);
}
public override InvoiceItem CreateInvoiceItem(ServiceRecordDC iServiceRecord, SupportConceptApprovalPeriod scap, Calculations calc)
{
var invoiceItem = new InvoiceItem();
BillingData bd = calc.GetBillingData(iServiceRecord);
if (iServiceRecord.ServiceDescription.Name.ToLower() == "wegezeit")
{
bd.AmountPerUnit = AbrechenbarkeitenHelper.GetWegezeitBetrag(scap.CostBearer2SupportConcept.CostBearer.Organisation.VarFieldValueList);
bd.AmountTotal = bd.UnitCount * bd.AmountPerUnit;
bd.GrossAmountTotal = bd.AmountTotal;
}
invoiceItem.AmountPerUnit = bd.AmountPerUnit;
invoiceItem.UnitCount = bd.UnitCount;
invoiceItem.AmountTotal = bd.AmountTotal;
invoiceItem.ItemPeriodStart = bd.BillingPeriodStart;
invoiceItem.ItemPeriodEnd = bd.BillingPeriodEnd;
invoiceItem.RateFactor = bd.RateFactor;
invoiceItem.GrossAmountTotal = bd.GrossAmountTotal;
invoiceItem.AccountingInterval = bd.AccountingInterval;
invoiceItem.ItemDescription = iServiceRecord.ServiceDescription.Name; //iServiceRecord.Employee + " - " + iServiceRecord.ServiceDescription.Name;
invoiceItem.ServiceRecord = DAOFactory.GenericDAO.LoadByID<ServiceRecord>(iServiceRecord.ServiceRecordOid.Value);
if (scap != null)
invoiceItem.SupportConceptApprovalPeriodOid = scap.Oid;
if (iServiceRecord.ServiceDescription.Name.ToLower().Contains("fehlkontakt") || (iServiceRecord.ServiceDescription.ProzentAbrechnung.HasValue && iServiceRecord.ServiceDescription.ProzentAbrechnung.Value < 100))
{
invoiceItem.RateFactor = null;
invoiceItem.GrossAmountTotal = invoiceItem.AmountTotal;
}
return invoiceItem;
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
{

View File

@@ -9,6 +9,7 @@ using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Services;
using KundeXyz.Service;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -101,6 +102,44 @@ namespace AutismusKoelnBonn.Invoicing
//{
// base.BerechneSummaryItemsSummen(newlist, true);
//}
public override IList<InvoiceItem> CreateInvoiceItems(List<ServiceRecordDC> serviceRecordsInPeriod, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc)
{
var abrechenbarkeiten = AbrechenbarkeitenHelper.CheckAbrechenbarkeiten(scap.CostBearer2SupportConcept.CostBearer.Organisation.VarFieldValueList);
var list = new List<InvoiceItem>();
foreach (ServiceRecordDC iServiceRecord in serviceRecordsInPeriod)
{
if (iServiceRecord.ServiceDescription.Category.IsBillable || abrechenbarkeiten["Mittelbar"] == true)
{
if (!iServiceRecord.AlreadyAccounted)
{
if (abrechenbarkeiten["Ausfallzeiten"] == false && iServiceRecord.ServiceDescription.Name.ToLower() == "fehlkontakt")
{
iServiceRecord.AlreadyAccounted = true;
continue;
}
if (abrechenbarkeiten["Mittelbar"] == true && iServiceRecord.ServiceDescription.Category.IsBillable == false)
{
iServiceRecord.ServiceDescription.Category.IsBillable = true;
}
if (abrechenbarkeiten["Wegezeiten"] == false && iServiceRecord.ServiceDescription.Name.ToLower() == "wegezeit")
{
iServiceRecord.AlreadyAccounted = true;
continue;
}
InvoiceItem invoiceItem = CreateInvoiceItem(iServiceRecord, scap, calc);
if (invoiceItem != null)
{
list.Add(invoiceItem);
}
iServiceRecord.AlreadyAccounted = true;
}
}
}
return CreateSummaryInvoiceItems(list, invoicePeriod, scap, calc);
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap,
Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
@@ -113,6 +152,12 @@ namespace AutismusKoelnBonn.Invoicing
var invoiceItem = new InvoiceItem();
BillingData bd = calc.GetBillingData(iServiceRecord);
if (iServiceRecord.ServiceDescription.Name.ToLower() == "wegezeit")
{
bd.AmountPerUnit = AbrechenbarkeitenHelper.GetWegezeitBetrag(scap.CostBearer2SupportConcept.CostBearer.Organisation.VarFieldValueList);
bd.AmountTotal = bd.UnitCount * bd.AmountPerUnit;
bd.GrossAmountTotal = bd.AmountTotal;
}
invoiceItem.ItemDescription = iServiceRecord.ServiceDescription.Name; //iServiceRecord.Employee + " - " + iServiceRecord.ServiceDescription.Name;
invoiceItem.AmountPerUnit = bd.AmountPerUnit;

View File

@@ -0,0 +1,58 @@
using BeWo.Data.Entities;
using BS.Shared.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KundeXyz.Service
{
public class AbrechenbarkeitenHelper
{
public static Dictionary<string, bool> CheckAbrechenbarkeiten(IList<VarFieldValue> varFieldValueList)
{
Dictionary<string, bool> abrechenbarkeitenDict = new Dictionary<string, bool>();
bool wegezeitAbrechenbar = false;
bool ausfallzeitAbrechenbar = false;
bool mittelbarAbrechenbar = false;
foreach (var vv in varFieldValueList)
{
var varFieldValue = Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
if (varFieldValue != null)
{
switch (vv.VarFieldDefOid)
{
case 1: // Wegzeit
wegezeitAbrechenbar = varFieldValue != null && varFieldValue.ToString() == "Ja" ? true : false;
break;
case 2: // Ausfallzeit
ausfallzeitAbrechenbar = varFieldValue != null && varFieldValue.ToString() == "Ja" ? true : false;
break;
case 3: // Mittelbar
mittelbarAbrechenbar = varFieldValue != null && varFieldValue.ToString() == "Ja" ? true : false;
break;
}
}
}
abrechenbarkeitenDict.Add("Wegezeiten", wegezeitAbrechenbar);
abrechenbarkeitenDict.Add("Ausfallzeiten", ausfallzeitAbrechenbar);
abrechenbarkeitenDict.Add("Mittelbar", mittelbarAbrechenbar);
return abrechenbarkeitenDict;
}
public static decimal? GetWegezeitBetrag(IList<VarFieldValue> varFieldValueList)
{
var betragVarField = varFieldValueList.FirstOrDefault(vv => vv.VarFieldDefOid == 4);
if (betragVarField != null)
return Convert.ToDecimal(Utils.XMLDeserializeFromString(betragVarField.SerializedValue, Type.GetType(betragVarField.TypeName)));
else
return 0m;
}
}
}

View File

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

View File

@@ -21,6 +21,8 @@ namespace AwoDortmund
{
if (queryOid == 300)
return CreateMonatFinanzauswertung(queryOid, queryReportId);
if (queryOid == 400)
return CreateSammelrechnungReport(queryOid, queryReportId);
return base.CreateQueryReport(queryOid, queryReportId);
}
@@ -48,6 +50,61 @@ namespace AwoDortmund
}
return new XtraReport();
}
private XtraReport CreateSammelrechnungReport(long queryOid, string queryReportId)
{
var query = DAOFactory.GenericDAO.LoadByID<Query>(queryOid);
if (query == null)
return new XtraReport();
var path = Path.Combine(TempPath, queryReportId + ".xml");
var table = Utils.XMLDeserialize<DataTable>(path);
var qro = QueryRO.Create(query, table);
if (qro.Rows.Count > 0)
{
if (qro.Rows[0].Field3 != null)
{
DateTime start = DateTime.Parse(qro.Rows[0].Field1.ToString());
DateTime end = DateTime.Parse(qro.Rows[0].Field2.ToString());
long ktOid = Int64.Parse(qro.Rows[0].Field3.ToString());
DateTimeSpan span = new DateTimeSpan();
span.StartDate = start;
span.EndDate = end.AddMinutes(-1);
var invoices = DAOFactory.SearchDAO.GetServiceInvoices(null, span);
if (invoices.Count > 0 )
{
String ids = "";
foreach (var item in invoices)
{
if (item.InvoiceBase.CostBearer2SupportConcept != null && item.InvoiceBase.CostBearer2SupportConcept.CostBearer.Organisation.Oid == ktOid)
{
if (ids.Length > 0)
ids += ";";
ids += String.Format("{0:0}", item.Oid);
}
}
if (!String.IsNullOrEmpty(ids))
{
var report = CreateServiceInvoiceReport(ids, null);
return report;
}
}
}
}
return new XtraReport();
}
}
}

View File

@@ -32,6 +32,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="DevExpress.Printing.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />

View File

@@ -353,9 +353,9 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";");
sb.Append(ds.Erloeskonto); // HabenKonto
sb.Append(";;0;"); //
sb.Append(";;0;\""); //
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";0;;;;0");
sb.Append("\";0;;;;0");
//sb.Append(";0;;;;05;;;;;;");
//sb.Append(ds.Kostenstelle); // Kostenstelle
//sb.Append(";");
@@ -375,9 +375,9 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";;");
sb.Append(";;\"");
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";;;0");
sb.Append("\";;;0");
}
private static void Erstelle1120Satz(StringBuilder sb, FibuNetDatensatz ds)
@@ -395,9 +395,9 @@ Alternativ wäre der 1120er Satz mit einzubauen (ab Seite 61)
sb.Append(ds.Belegnr); // Belegnummer
sb.Append(";;");
sb.Append(String.Format("{0:ddMMyyyy}", ds.Belegdatum)); // Belegdatum
sb.Append(";");
sb.Append(";\"");
sb.Append(ds.Buchungstext); // Buchungstext
sb.Append(";0;1");
sb.Append("\";0;1");
}
//private static void Erstelle1110Satz(StringBuilder sb, DataRow row, DateTime date, int rowIndex)

View File

@@ -82,6 +82,12 @@
<Compile Include="FLSListReport.Designer.cs">
<DependentUpon>FLSListReport.cs</DependentUpon>
</Compile>
<Compile Include="ListeTherapieeinheitenSollIst.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="ListeTherapieeinheitenSollIst.Designer.cs">
<DependentUpon>ListeTherapieeinheitenSollIst.cs</DependentUpon>
</Compile>
<Compile Include="ListeTherapieeinheitenJahr.cs">
<SubType>Component</SubType>
</Compile>
@@ -107,6 +113,7 @@
<Compile Include="ServicesOverviewReport.Designer.cs">
<DependentUpon>ServicesOverviewReport.cs</DependentUpon>
</Compile>
<Compile Include="Statistics\CustomServiceRecordStatisticFactory.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="CustomerDataReport.resx">
@@ -121,6 +128,9 @@
<DependentUpon>FLSListReport.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="ListeTherapieeinheitenSollIst.resx">
<DependentUpon>ListeTherapieeinheitenSollIst.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ListeTherapieeinheitenJahr.resx">
<DependentUpon>ListeTherapieeinheitenJahr.cs</DependentUpon>
</EmbeddedResource>
@@ -157,6 +167,7 @@
<ItemGroup>
<None Include="app.config" />
</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.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,278 @@
using System;
using System.Collections.Generic;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using DevExpress.XtraReports.UI;
using System.Data;
using System.Drawing;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.Plugins;
using BS.Shared.Core;
using DevExpress.XtraPrinting;
using DevExpress.XtraReports.Native;
using DevExpress.XtraCharts;
namespace BeWo.HphBersenbrueckAtz
{
public partial class ListeTherapieeinheitenSollIst : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
{
private VacationService vacationService;
public ListeTherapieeinheitenSollIst()
{
InitializeComponent();
}
public VacationService VacationService
{
get
{
if (vacationService == null)
{
vacationService = PluginLoader.FindClass<VacationService>();
}
return vacationService;
}
}
public void SetReportDataSource(QueryRO pRO)
{
CreateData(pRO);
this.bindingSource1.DataSource = pRO;
}
private void CreateData(QueryRO ro)
{
DateTime abfrageMonat = DateTime.Now;
long employeeOid = 0;
if (ro.Rows != null && ro.Rows.Count > 0)
{
if (ro.Rows[0].Field1 != null)
{
DateTime dtTemp = DateTime.Now;
if (DateTime.TryParse(ro.Rows[0].Field1.ToString(), out dtTemp))
{
abfrageMonat = dtTemp;
}
}
if (ro.Rows[0].Field2 != null)
{
long oid = 0;
if (Int64.TryParse(ro.Rows[0].Field2.ToString(), out oid))
{
if (oid > 0)
{
employeeOid = oid;
}
}
}
}
if (employeeOid > 0)
{
Employee emp = DAOFactory.GenericDAO.LoadByID<Employee>(employeeOid);
CreateTabelle(emp, abfrageMonat);
cellMitarbeiterIn.Text = String.Format("Mitarbeiter/in: {0}", emp.Person.FirstNameLastName);
cellUeberschrift.Text = String.Format("Therapieeinheiten Soll/Ist Stand {0:MMMM yyyy}", abfrageMonat);
}
}
private void CreateTabelle(Employee emp, DateTime abfrageMonat)
{
DateTimeSpan span = new DateTimeSpan();
span.StartDateTime = abfrageMonat;
span.EndDateTime = abfrageMonat.AddYears(1).AddTicks(-1);
var srList = DAOFactory.SearchDAO.FindEmployeeServiceRecords(emp.Oid.Value, span, null, null);
var daten = new TherapieEinheitenSollIst();
InsertIstDaten(srList, daten);
InsertSollDaten(emp, abfrageMonat, daten);
FillTable(daten);
CreateChart(daten);
}
private void InsertIstDaten(IList<ServiceRecord> srList, TherapieEinheitenSollIst daten)
{
foreach (var sr in srList)
{
if (sr.CustomerOid.HasValue)
{
long oid = sr.CustomerOid.Value;
daten.IstProMonat[sr.Start.Value.Month - 1] += sr.RoundedDuration;
}
}
}
private void InsertSollDaten(Employee emp, DateTime abfrageMonat, TherapieEinheitenSollIst daten)
{
decimal summe = 0;
for (int i = 0; i < 12; i++)
{
var mb = new MitarbeiterstundenkontoBerechnung();
var ro = new MitarbeiterstundenkontoRO();
ro.ReportStartDate = new DateTime(abfrageMonat.Year, i + 1, 1);
ro.ReportEndDate = ro.ReportStartDate.AddMonths(1);
var empDetail = new MitarbeiterstundenkontoRO.EmployeeDetail();
empDetail.Employee = emp;
ro.EmployeeDetailList.Add(empDetail);
mb.CreateReport(ro);
daten.SollProMonat[i] = empDetail.FlsSoll * 60;
}
}
private void CreateChart(TherapieEinheitenSollIst daten)
{
var series = new Series("Soll/Ist", ViewType.Pie);
series.Label.TextPattern = "{S}: {V}";
series.Label.Border.Visibility = DevExpress.Utils.DefaultBoolean.False;
series.Label.Font = new System.Drawing.Font("Arial", 10F);
series.Label.LineVisibility = DevExpress.Utils.DefaultBoolean.True;
series.Label.TextPattern = "{A}: {V:0.00} ({VP:0.00}%)";
decimal rest = daten.SollGesamt - daten.IstGesamt;
if (rest < 0)
{
rest = 0;
}
var soll = new SeriesPoint("Soll", rest);
soll.Tag = daten;
soll.Color = Color.Red;
var ist = new SeriesPoint("Ist", daten.IstGesamt);
ist.Tag = daten;
ist.Color = Color.Green;
series.Points.Add(soll);
series.Points.Add(ist);
xrChart1.Series.Clear();
xrChart1.Series.Add(series);
}
private void FillTable(TherapieEinheitenSollIst daten)
{
decimal summeIst = 0;
decimal summeSoll = 0;
for (int i = 0; i < 12; i++)
{
summeIst += daten.IstProMonat[i];
summeSoll += daten.SollProMonat[i];
tblRowIst.Cells[i + 1].Text = String.Format("{0:0.0#}", daten.IstProMonat[i] / 60);
tblRowIstGesamt.Cells[i + 1].Text = String.Format("{0:0.0#}", summeIst / 60);
tblRowSoll.Cells[i + 1].Text = String.Format("{0:0.0#}", daten.SollProMonat[i] / 60);
tblRowSollGesamt.Cells[i + 1].Text = String.Format("{0:0.0#}", summeSoll / 60);
tblRowDiff.Cells[i + 1].Text = String.Format("{0:0.0#}", (daten.IstProMonat[i] - daten.SollProMonat[i]) / 60);
tblRowDiffGesamt.Cells[i + 1].Text = String.Format("{0:0.0#}", (summeIst - summeSoll) / 60);
}
}
private void xrChart1_CustomDrawSeriesPoint(object sender, CustomDrawSeriesPointEventArgs e)
{
var daten = e.SeriesPoint.Tag as TherapieEinheitenSollIst;
if (daten != null)
{
decimal gesamt = daten.SollGesamt;
decimal rest = daten.SollGesamt - daten.IstGesamt;
if (rest < 0)
{
rest = 0;
}
decimal prozent = 0;
if (gesamt > 0)
{
prozent = (rest / gesamt) * 100;
}
if (e.SeriesPoint.Argument == "Soll")
{
e.LabelText = String.Format("Soll Gesamt: {0:0.00}, Rest: {1:0.00} ({2:0.00}%)", gesamt, rest, prozent);
}
else
{
e.LabelText = String.Format("Ist Gesamt: {0:0.00} ({1:0.00}%)", daten.IstGesamt, 100 - prozent);
}
}
}
}
class TherapieEinheitenSollIst
{
public TherapieEinheitenSollIst()
{
SollProMonat = new decimal[12];
IstProMonat = new decimal[12];
}
public decimal[] SollProMonat { get; set; }
public decimal[] IstProMonat { get; set; }
public decimal GetDiff(int monat)
{
return SollProMonat[monat - 1] - IstProMonat[monat - 1];
}
public decimal SollGesamt
{
get
{
decimal sum = 0;
for (int i = 0; i < 12; i++)
{
sum += SollProMonat[i];
}
return sum / 60;
}
}
public decimal IstGesamt
{
get
{
decimal sum = 0;
for (int i = 0; i < 12; i++)
{
sum += IstProMonat[i];
}
return sum / 60;
}
}
}
}

View File

@@ -0,0 +1,202 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="xrPictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEQAAAA+CAIAAAAdyCpCAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAEMBJREFUaEPNWgdcVFe+vjFrYmLiJptkk7zE+OK+TVzfGt1dk92oscdeUowajRUQ
hjJ0ARHEiGAEK2KiERUUBaRKb6KIdKV3ATEgHekMbe5+556Zy3AHmJHEt+//+3443nvO/9zvnn89MwzL
Sn8FZNLV3V3woDrwdubBSxFbHTxm6R19b4Pt2MWGzy42LK2q54YIJj4VjI6MTB7WNJ4LubPe7vyfNts9
u8iQ+ViTmbGd+UTruSVGkzbu+1jkvGbP2ZqmFm6sQMNTwZOSoQ8mDU3MAYc3vrBiPtNl/qnFfKr96urd
C01O7nULCUrILnpY09rRKRtMRKDkaeGJyOCP9HJU6j9FzswCA2aeHvOZaOznRvONTrgG3JKbk0AEGp4u
1CRDJCo1f5beEWau3pjFYpB5fonxxv3n4zNL6F25CCb+n0IdMmxDc5vmYc8xCw3GLBKPW2YCPkvNXO9k
l9LH50Qw5T+DkckQib1b+OfN++EbE1aZY0PeWGv5c3ACvaU0/j+MEcgQOeEbRyPsK2t2gw/MrLCiht5S
Gv+kUBTBrVFiODJETE/7w8VfXGH6+9WEyaYDF7okPdwdweBRgEhqfnlsemFrO417ggGjwZBkiIiOejGz
dV5eZU6Z6By5Sq8rDR4Nmts611qffWahmJmv//7GfQnZ938TzcpkiBif8gMTOMkrayzABEmdXlcaPDqw
R71jmU805W9K9KnuEamUXFcaqQ54GYqMs1cMM0eElQiTBfrzxMd7envp6N8IrKNnJAoFMCFk5un9Y9dh
aX//ky8hk8bHGf39ElwRkGEjUvKeWWAwfoXZK6t3j1tq8scvrSpqGrkpisNGDZnAzBaZuHBpVxfhMTw5
j7ssGDwcZNLT21pe4XMjYb1X4Ls1dbdwRZEMW9PYMvEbGyR1MCHvbK6eR2QKN5EfMwoMSJeku6m1vf5x
awc+dffcyb4fd6+oraOLuymYNRyItLaV5OQfDo2Z6xU40ef6ZPxNzTDD9UFkvrN3Z+bqIgqDyTMLDT43
PcXN5Qc8MaTS/qr6x2FJuYc8o3Y4XsJuTN1m//paywkrzT/ScNxs737S72ZuWRW3CkQ4XRnVtXGJabr+
oX/FbvgGfxgQ9hHgFzIlJHpOX18nT4aNSM5j5unD6cEEf59dJJaXKgO6RoRAyMW+/v7Kuqb88kcllbW/
1DZVNTwuqayLvVu0+6fAF5ebUjN77nOjdbbnyh818LNGQGKa6NK13/uH/i+lIcc0n6DJTc3ZMjJ9fX2f
6DijWqFOiQ94i+po50CkS1KLrcdrKyh27e1t464N3FWWs8EJiMtY6+WV5qD0zjrrjOJfuDu8WmWwj5uz
sSHYmcFkPsJGlT7wpGRY7xt3YWCUCQBvcY9IVqWagu3t7ZB0N0bdXOnp90fvwEmefq/HJ2/v7+9WGqkI
1i00ETtDl6Nhc+p2e1UJlMjNxM3wEwEZ76D/vptlzZGRSueKj/PbgpT/5ld7ahvVaarYRzUxhSWn6xtT
rwa8TfXitfkEvd/SWjT8dLa6oXnyJjtES7oi4YM3OFsHrcTwsyjYkrIL2AeeBoVv8AdxCRtAhk3OK/vd
YkPqLcAzi8TLdp9WpRQgpuUXOvVhVXB3z+PA8BnUKa/4vxUeu7CnZ7h3wSIkfKx9GAGGRhoezEKDVZY/
DTOLB9vcku8X8heBpcGLQqPnEDIk3w+2sb3nglUpBdjM3APu3i9WVUfhc31D8s0734bFzr+dvLO5pUBh
uuIHNiw59/1v98GoYFr8ihRjlxjN0DrUryJ7sn19XeGxi/hQpoDpDALOtJ0OY5cY80phymgnR9QIsD09
zSFRs7wD34tLWN8lqePGDyFYWyrtw5SOrm7UFm99tYecFszXRyXOr0iBZ5ihCTIYDBEsx4NIfNJWZbfx
D53G3K+sfX6pMS2TAC4oG964V8jNEihSBIukC9/A+7h2/U/Y4rtZe0vLL1dWR1Y+inhYeR2fM3L2p2da
1dbdlkpRDUlRE9U2tTS2tBdU1JwLSUQ9hu6IZwLAaeWZDSJYThFsWoa5d9AkAZnA8L8xfrcyYFe8RrAa
t9Q4Nf+BSo3FpXDEiZyi6Uhb2CL8F2sgsOCDh8/46FurGxrTB+sZkN7evu/sL6J0otUGgMcwdfXnbvLj
hwQxbyynyMQvZCoclbFxC+ZDJCXzwlKTtALVZPKLXORkBgG+iJWy83/gNEAEE3mwLW0d735j88Jy0i8R
MvMNkLhHnELBZuU5eA9e+lrwn+OTtjFf2fw8RsF8YWaoze7kqGwwWCRHZTL+YdPApLCEBiWIYJYA7Lp9
56ixPbfEeMo2e5Rs6syCSQt2BvktK9eegc+9sHwg3k/AG1pgEJSQpUopW1bhJXg9sDfQw0rcXIhgijJY
LacrqKFIkpkjOnyFREWlMQIQSUwVce46sDSyQkVlIPPml3t476eA7R7zieVmCRQpgm1oSsfmIobwGhEu
Q2PmDa5lRgZL+01EoPc22KKgVmMiGRATvxZL8+viGZA0W9vuM3yuHCAzX3+bI20tBYoUAQ9ux6P7hkzh
lWJbYHuqJvJgu3t6pm4/CCbYlp+Cbqs3ke3sqg6K+Ac8nl8XTCJuLEHMHILMc0uNsUZ3j8rukk3LtOTd
BinZN+RDlK6qZvFg7xVVoKLBu/tMfIzLlYIBQ4JFjkbA5JkAXgHvIiTgFvPaGksBH/wX1Y0ahwzI+ilI
XnB6aESJERz5L0m3+mf+7AH3cGaW9vhlJln3K9Wfhdyl6P3kJQZ/0NxCwiAzZcsBepikCARrvePeaizA
3krcQt8TyKBD6u5pVmMWwPb29U3XPMR8rOHid1O9KQAsszk46lOsxZNBZktI0aAamKXmrr/73EhABp0T
un900XTQ8CAlGQILXg+MOChiJgxa1RQKNjw5l5mxfdOBi+qNp0DJfFGxZIbr+1x/v75R1tszRi6+KPsE
ZLjzS5H+CR86aESQ4sIr4B2oxnY3NN1VYwrAztI/OmWTXVun+gcAJOSExS7AKnIyJBMkpxvwGpgLYUmK
JTMFUs1LK8y+s3dXJwxIJA0h0bOvXf8fqC4uPa9qPMBGpxVMWGGGFlqNwTzYvKIT3FubTskgkAaGT2/v
eMgrYTKKH6Ldn7BKRmPCanPY2I5Dl139b2k7X/lmnxs3FKKoVwC2ppYUnfBL1P+qBqPi7FtjdSYi5cmO
l+DicBWFiDwNxJC4FZUwnZLuSRttxy2TFQGoAMYsFLuFJBqc8GH+tgPdn8PlSG4CFV67AKhuTl/xfxPL
dCi8qqHARqfm+8bdG3GMAIgWHWjLubKfbsv0qwH/RY+XFEeS5myz/UV6tkAxfoXZH9ZYYL2/7nRA9/f8
EmOPiBTXgPgH1SMcoBBJz7S46DVu5LyJfFKh3kGMHESS0vU5v5cxgT3fuL0OnRJ3c2AwIRMQn6lYOBPv
n6XzkYbjrYziiettnl9mgtITCWHaDgfudHNg8mCwaMJuJW1F/9zXJxEsMxgj3BKAyL1sGxpgKBMYc0Tc
Enk7OGg8IdPZ1f3hlgOoW8EEGROYa3gcXeFBj4iJG2zRM8EIxy42/HLvWVXxAH2lJCZ+jbxqFtx9UhAN
6VlWHBNaAZI9iYxb2tn5iN4VAGTwD3vIMwoFEqrX8StM3/lm792CBygxmJkaML/FZqdQnGPr3vzK6nRA
PKcFMkiLAkg7nZFt29VVO+KwkUFE0t2YkLJTgck0+ElcwgaJZNgiQ0amsbkNfRI9+8FWbHXw+MEzao6O
01Hv2GNeMZciU1Za/ohgAOBW/WNaF0MG6ZKDHGl3dlYpXVcTRGrqbofFLJAXftMRheEzaZkWfeS0HyKY
IgMlA7DHr93A5lC3QZ6xdQvBPpBO/TPdd9fv/TEw/vuLYa9/Ycn8fcfkb+2uRKdxSqkMqJODiuCiakil
/S2tRcnpYk/f1y77vgb3AJ+r/m/DD8sqVH/bxZORwh9mkuMsMQIA3AZB7NnFhnCkV9ZYwGfodnmEJ+Mv
qDIzdy4ycYlKpUdKVAaUjhpwuV+qQvKKTpaUud8vv8zhEkqYtvYy2SJKUxQxQAYDk/PK4OgIzSQSyIMb
D1Q9b6+ztjoTdDYoAdEclTXzieZs/aPuEcmNzbSv4oXXOQoMJ4JhQ0CRDMB9pzVbR0CDggsPZogEkzfZ
mbr6wwjxl8SG2ToTVpqv2+cGViW/1MpP8RRFplxBBlaUC39lZCiK8KKADLmx3s4NVabg7JQHKKFlQJSD
/3xte87eI9z5aozeMe9/6R154wurV1dbfLDlwHKLHw1OXHO6GuMRmcKVkkRzbV1dVk5uTl5eezu2Ubbc
/dKyrNzcouJi7uxPdnEENDQ0QEl2bl5LKyp62cWy8gfZeXl5BQVDkGnvlMB4mLl6yieoinh5lfmYRYbw
MeQixDrjU37IS46XIi3PBGkfufrt9xfW7jmzbt85eR/BXg8N36op0tATFxYX0ytY7sAh5227dC1t93d1
qfMFOht9I26rlmiHSD8ji7a0RJyOu+zUNdAzNlMmA7B1j1v/rvUDx0fIQRkvrTRDR4SogGjx1tfW0zQc
FxifXGt99mtbty0OHrWyn2ixYZHRu/SN9Ex2F9+nPSxEevjYSW2xsd3BQxIJrU2GE9mDxcXf3mVgJDIy
xebQG5CTp8/oGpuZWu0dkgzA1ja1kp/9yIO1msB2oegGK0RCmCJI8r92AhltA2N9090lpQM/ugEZHUMT
nkxHR0dpWRlMsaOjPTe/4HZiEj739vK/pCBkQB6PnjOYjJ6J+QhkALa1o+trm5+Z2SK8e/4QVX2QgnWt
ZbmsPB0gU1peTq9AnAaTSUlL19A1MDS33Lvfftsu0Xca2tgH+x+cK6tk33vyZECVXoG4/HhWJRmAiO35
EDQ89OczgscdGcpkdMTGJpbWjs7Hjrqc5uBqYWMnNrPgyWTn5sKExOaW3zsejoq9ERoRZW5tq6VvePDw
ke5uctgJMjpiE2OLPQ5OR+RKTlvt+97Y0lolGYAIkuNUhOA55Hc06m/RkGSwpIHpbjgrBbhhH3gyOXn5
eOu6RqYFRfSLN/ayl4/I0ERkKLtCyRAlZha8EnDDFXXIUBCTszwT+PJKM0QFWJ3guYfEkGaGh0hOS6+u
qeVQ4+B0FFshIIPn48lExsTCroCEJPIdKzUzGFX8nUS5klrnE6dgveqTAYjklT/a7njppeWmzFxdvjkd
DsP5TPkD+hUDEURVRZ/hyeQX0i+IZGSwpYkp5AiGkhGRATK2EDV9RhlEcsuqkFUmbbBFNYCQBVaCY0SK
4cgIQrMyGZhZabmsGPO44kXMzMi0hJvFBwBBaB4dGQoiTS3tV2LSNu4/P2kjaeCwV0g1iMUvLDeFHYIe
YvSrT04G24KQcPaCO9JiTNxNPKKmnhgb2Mv9GOlpkKGQSVNre+zdQofLkRv2n5+p7YROG0yQarBpiIGl
VbKvO4NCwrdo6iDyFgyqAJwQgi1tZBUAJWO2xwZevk1LtEVTW0vP0MH5WF2dLFmhAtiipbNDR29QBXDM
ZadIHwx/DRkeCiKVNjS3FVZUowCPTM0PTczp6CI/ngJqamvxBFk5OW3t6O1kc7FLmdnZcHf6vSwxMyMz
xLf4hDt3kpIjomPuZWYpJE1pfX09lGRm57S0DNRmyLOZOTlIr78JGUUMKcq3lMeTz5QMNkcxSHCiPB4i
vPibk/k1QNLM09AVb9fWlUczwQAV+P9FBmU8kkZ4VExLa6vSXVVgpf8G8GeiFFI1UfUAAAAASUVORK5C
YII=
</value>
</data>
</root>

View File

@@ -0,0 +1,167 @@
using System;
using System.Collections.Generic;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using BS.Shared.Services;
namespace HphBersenbrueckAtz.Statistics
{
public class CustomServiceRecordStatisticFactory : ServiceRecordStatisticFactory
{
public override ServiceRecordStatisticsInfoDC GetServiceRecordStatisticInfo(long costBearer2SupportConceptOid, DateTime statisticsDate)
{
var stats = CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate);
var dc = new ServiceRecordStatisticsInfoDC();
dc.Header = new string[5];
dc.Header[0] = "Bewilligungszeitraum:";
dc.Header[1] = "Geleistet diese Woche/Gesamt:";
dc.Header[2] = "Bewilligt pro Woche/Gesamt:";
dc.Header[3] = "Frei pro Woche(Ø)/Gesamt:";
dc.Header[4] = "Berichterstellung bis:";
dc.ForegroundColor = new string[5];
dc.ForegroundColor[0] = "#FF2B508B";
dc.ForegroundColor[1] = "#FF2B508B";
dc.ForegroundColor[2] = "#FF2B508B";
dc.ForegroundColor[3] = "#FF2B508B";
dc.ForegroundColor[4] = "#FFFF0000";
dc.PeriodStatisticInfos = new List<ServiceRecordPeriodStatisticsInfoDC>();
if (stats != null)
{
foreach (var pdc in stats.PeriodStatistics)
{
bool showOutOfPeriod = stats.PeriodStatistics.Count == 1;
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, pdc, showOutOfPeriod, costBearer2SupportConceptOid));
}
}
return dc;
}
//private bool IsMonatsBewilligung(long costBearer2SupportConceptOid)
//{
// var c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(costBearer2SupportConceptOid);
// foreach (var ap in c2s.ApprovalPeriodList)
// {
// if (ap.ApprovedBEInterval.HasValue && ap.ApprovedBEInterval.Value == SupportConceptApprovalInterval.Monthly)
// {
// return true;
// }
// }
// return false;
//}
//public ServiceRecordPeriodStatisticsInfoDC CreateTotalStatistics(SupportConceptStatisticsDC stats)
//{
// var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4);
// dc.LeftValues[0] = "Gesamt";
// dc.LeftValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedThisMonth / 60);
// dc.RightValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedTotalRounded / 60);
// dc.LeftValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedPerMonth / 60);
// dc.RightValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedTotal / 60);
// dc.LeftValues[3] = String.Format("{0:0.00}", (stats.SollTotalUntilThisMonth - stats.IstTotalUntilThisMonth) / 60);
// return dc;
//}
public ServiceRecordPeriodStatisticsInfoDC CreateServiceRecordPeriodStatisticsInfo(SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC periodStats, bool showOutOfPeriod, long costBearer2SupportConceptOid)
{
DateTime? berichterstellung = null;
var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(5);
if (periodStats.SupportConceptApprovalPeriod != null)
{
if (periodStats.SupportConceptApprovalPeriod.ServiceCategory != null)
{
if (periodStats.SupportConceptApprovalPeriod.StartDate.HasValue && periodStats.SupportConceptApprovalPeriod.EndDate.HasValue &&
periodStats.SupportConceptApprovalPeriod.StartDate.Value.Date == stats.StatisticsStartDate.Date &&
periodStats.SupportConceptApprovalPeriod.EndDate.Value.Date == stats.StatisticsEndDate.Date)
{
dc.LeftValues[0] = periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name;
}
else
{
dc.LeftValues[0] = String.Format("{0}: {1:dd.MM.yy} - {2:dd.MM.yy}",
periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name,
periodStats.SupportConceptApprovalPeriod.StartDate,
periodStats.SupportConceptApprovalPeriod.EndDate);
}
}
else
{
dc.LeftValues[0] = String.Format("{0:dd.MM.yy} - {1:dd.MM.yy}",
periodStats.SupportConceptApprovalPeriod.StartDate,
periodStats.SupportConceptApprovalPeriod.EndDate);
}
var c2s = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(costBearer2SupportConceptOid);
foreach (var vv in c2s.SupportConcept.VarFieldValueList)
{
var varFieldValue = Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
if (varFieldValue != null && vv.VarFieldDefOid == 2)
{
berichterstellung = DateTime.Parse(varFieldValue.ToString());
}
}
}
dc.LeftValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedThisWeek / 60);
dc.RightValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedTotalRounded / 60);
dc.LeftValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedPerWeek / 60);
dc.RightValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedTotal / 60);
dc.LeftValues[3] = String.Format("{0:0.00}", periodStats.MinutesFreePerWeek / 60);
var freeTotal = (periodStats.MinutesApprovedTotal - periodStats.MinutesProvidedTotalRounded);
dc.RightValueColors[3] = "#FF008000";
if (periodStats.MinutesApprovedTotal > 0)
{
var percent = (freeTotal / periodStats.MinutesApprovedTotal);
if (percent < 0.2m)
{
dc.RightValueColors[3] = "#FFFF0000";
}
}
dc.RightValues[3] = String.Format("{0:0.00}", freeTotal / 60);
if (berichterstellung.HasValue)
{
dc.LeftValues[4] = String.Format("{0:dd.MM.yyyy}", berichterstellung);
dc.LeftValueColors[4] = "#FFFF0000";
}
return dc;
}
//public override SupportConceptStatisticsDC CreateSupportConceptStatistics(long costBearer2SupportConceptOid, DateTime statisticsDate)
//{
// if (IsMonatsBewilligung(costBearer2SupportConceptOid))
// {
// return null;
// }
// return base.CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate);
//}
}
}

View File

@@ -17,7 +17,8 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
{
public class CustomInvoiceCreation : InvoiceCreation
{
private Dictionary<string, Dictionary<String, bool>> key2TagesDict = new Dictionary<string, Dictionary<String, bool>>();
public override List<ServiceInvoiceDC> GenerateServiceInvoices(long costBearerOid, DateTimeSpan invoicePeriod, Dictionary<CompactSupportConceptDC, List<ServiceRecordDC>> supportConcepts2ServiceRecords)
{
@@ -227,17 +228,20 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
var cat = info.Category.Replace(" ", "").ToLower();
var desc = info.ServiceDescription.Replace(" ", "").ToLower();
if (desc.Contains("freizeit") || desc.Contains("ausflüge") || desc.Contains("ausflug") || desc.Contains("kurzurlaub"))
if (desc.Contains("freizeit") || desc.Contains("ausflüge") || desc.Contains("ausflug"))
{
return info.ServiceDescription;
}
if (desc.Contains("reisen"))
if (desc.Contains("reisen") || desc.Contains("kurzurlaub"))
{
if (info.Pflegegrad.HasValue && info.Pflegegrad.Value != Pflegegrad.KeinGrad && info.Pflegegrad.Value != Pflegegrad.PflegegradBeantragt)
{
if (desc.Contains("kurzurlaub"))
return "Betreuungskosten Kurzurlaub mit Pflegegrad";
return "Betreuungskosten mit Pflegegrad";
}
if (desc.Contains("kurzurlaub"))
return "Betreuungskosten Kurzurlaub ohne Pflegegrad";
return "Betreuungskosten ohne Pflegegrad";
}
if (cat.Contains("§45"))
@@ -305,13 +309,14 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
{
Dictionary<String, AbrechnungsInfos> key2Info = new Dictionary<String, AbrechnungsInfos>();
ErstelleTagesDict(serviceRecords);
foreach (var sr in serviceRecords)
{
if (sr.ServiceDescription.Category.Name == category)
{
var minuten = sr.RoundedDuration;
var preis = GetPreisVonServiceDescription(customer, sr.ServiceDescription, sr.Start.Value);
var preis = GetPreisFuerServiceRecord(customer, sr);
String key = String.Format("{0}_{1:0.00}_{2:yyyyMM}", sr.ServiceDescription.Name, preis, sr.Start);
if (!key2Info.ContainsKey(key))
@@ -369,10 +374,10 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
ii.UnitDescription = info.Category;
ii.ItemDescription = GetArtikelbezeichnung(info);
ii.Notice = customer.Person.FirstNameLastName;
if (!ii.ItemDescription.Contains("Kurzurlaub"))
{
//if (!ii.ItemDescription.Contains("Kurzurlaub"))
//{
sip.InvoiceItemList.Add(ii);
}
//}
}
}
@@ -402,7 +407,9 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
SetServiceInvoicePeriodAmounts(invoice);
}
public override void SetServiceInvoicePeriods(ServiceInvoice invoice, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List<ServiceRecordDC> serviceRecords)
public override void SetServiceInvoicePeriods(ServiceInvoice invoice, CostBearer2SupportConcept costBearer2SupportConcept, DateTimeSpan invoicePeriod, List<ServiceRecordDC> serviceRecords)
{
base.SetServiceInvoicePeriods(invoice, costBearer2SupportConcept, invoicePeriod, serviceRecords);
}
@@ -412,42 +419,93 @@ namespace HphBersenbrueckFreizeitUndReisen.Abrechnung
base.SetInvoiceItems(invoice, serviceInvoicePeriod, supportConceptApprovalPeriod, cb2sc, invoicePeriod, serviceRecords);
}
private decimal GetPreisVonServiceDescription(Customer c, ServiceDescriptionDC serviceDescription, DateTime monat)
private decimal GetPreisFuerServiceRecord(Customer c, ServiceRecordDC sr)
{
if (serviceDescription != null && serviceDescription.CostRatePeriods != null)
var desc = sr.ServiceDescription.Name.ToLower();
if (desc.Contains("kurzurlaub"))
{
String leistung = sr.ServiceDescription.Category.Name.ToLower().Trim();
DateTime start = sr.Start.Value;
DateTime end = sr.End.Value;
decimal preis = 0;
while (start <= end)
{
var key2Date = key2TagesDict[leistung];
preis += AbrechnungsInfo.GetPreisForKurzurlaub(c.Pflegegrad, key2Date, start);
start = start.AddDays(1);
}
return preis;
}
if (sr.ServiceDescription.CostRatePeriods != null)
{
var crp = serviceDescription.CostRatePeriods.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, monat);
var crp = sr.ServiceDescription.CostRatePeriods.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, sr.Start.Value);
if (crp != null)
{
return crp.CostRateValue ?? 0;
}
}
var desc = serviceDescription.Name.ToLower();
if (desc.Contains("freizeitangebot"))
{
return AbrechnungsInfo.GetPreisForFreizeitangebot(c.Pflegegrad, monat);
return AbrechnungsInfo.GetPreisForFreizeitangebot(c.Pflegegrad, sr.Start.Value);
}
else if (desc.Contains("ausflüge") || desc.Contains("ausflug"))
{
return AbrechnungsInfo.GetPreisForAusflugFreizeittreff(c.Pflegegrad, monat);
}
else if (desc.Contains("kurzurlaub"))
{
//return AbrechnungsInfo.GetPreisForKurzurlaub(c.Pflegegrad, key2Date, dt);
return AbrechnungsInfo.GetPreisForAusflugFreizeittreff(c.Pflegegrad, sr.Start.Value);
}
else if (desc.Contains("reisen"))
{
return AbrechnungsInfo.GetPreisForReisen(c.Pflegegrad, monat);
return AbrechnungsInfo.GetPreisForReisen(c.Pflegegrad, sr.Start.Value);
}
return 0;
}
private Dictionary<string, Dictionary<String, bool>> ErstelleTagesDict(List<ServiceRecordDC> serviceRecords)
{
key2TagesDict = new Dictionary<string, Dictionary<String, bool>>();
foreach (var sd in serviceRecords)
{
String leistung = sd.ServiceDescription.Category.Name.ToLower().Trim();
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
if (!key2TagesDict.ContainsKey(leistung))
{
key2TagesDict[leistung] = new Dictionary<String, bool>();
}
DateTime start = sd.Start.Value;
DateTime end = sd.End.Value;
if (sd.ServiceDescription.Name == "Kurzurlaub")
{
while (start <= end)
{
String key = String.Format("{0:dd.MM.yyyy}", start);
if (!key2TagesDict[leistung].ContainsKey(key))
{
key2TagesDict[leistung].Add(key, true);
}
start = start.AddDays(1);
}
}
}
return key2TagesDict;
}
public override string GetSummaryItemKey(SupportConceptApprovalPeriod scap, InvoiceItem iitem, bool summaryPerMonth)
{
return String.Format("{0}_{1}_{2:yyyyMM}_{3}", iitem.AmountPerUnit, iitem.RateFactor, iitem.ItemPeriodStart, iitem.ItemDescription);
}

View File

@@ -244,8 +244,10 @@ CONCAT(p.`LastName`, ', ', p.`FirstName`, ' ', IF(cb2sc.CustomerRefenrenceNumber
}
String kostenstelle = GetKostenstelle(row);
String buchungstext = String.Format("{0}", row[5]); // Verwendungszweck
String artikel = String.Format("{0}", row[6]); // Verwendungszweck
buchungstext = buchungstext.Trim();
if (buchungstext.EndsWith(","))
buchungstext = buchungstext.Substring(0, buchungstext.Length - 1);
String artikel = String.Format("{0}", row[6]);
MicosDatensatz md = null;
String key = String.Format("{0}_{1}", oid, artikel);
@@ -632,7 +634,7 @@ ib.InvoiceNumber,
c.DebitorNumber,
Round(ii.AmountTotal, 2) AS 'Betrag',
ib.InvoiceDate,
CONCAT(p.`LastName`, ', ',Substring(p.`FirstName`, 1, 1), '., ', ib.RecipientOrganisation, org.Name) as 'Verwendung',
CONCAT(p.`LastName`, ', ',Substring(p.`FirstName`, 1, 1), '., ', ib.RecipientOrganisation) as 'Verwendung',
ii.ItemDescription,
ib.Oid,
ib.AccountingPeriodEnd

View File

@@ -66,7 +66,11 @@ namespace HphBersenbrueckFreizeitUndReisen
satz = "Es handelt sich hierbei um ein Betreuungsangebot der Verhinderungspflege nach § 39 SGB XI.";
}
}
if (i.ServiceDescription.Contains("Betreuungskosten Kurzurlaub"))
{
i.ServiceDescription = i.ServiceDescription.Replace("Betreuungskosten Kurzurlaub", "Betreuungskosten");
}
//if (i.HourlyRate.HasValue)
//{
// hourlyRate = i.HourlyRate.Value;

View File

@@ -179,7 +179,12 @@ namespace KetteReports
return true;
}
public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
protected override bool SchneideZuvieleAbwesenheitsstundenAb()
{
return false;
}
public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
{
var dd = base.CreateDayDetail(date, ed);
dd.MaxHoursUntilBreak = null;

View File

@@ -71,6 +71,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.DataAccess.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Mvvm.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
<Reference Include="DevExpress.Pdf.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Printing.v17.1.Core, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Data.v17.1, Version=17.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />

View File

@@ -36,14 +36,18 @@ namespace BeWo.KetteReports
this.xrTableRow2 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell3 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell4 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell45 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell28 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell8 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell5 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell46 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell43 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.xrTable3 = new DevExpress.XtraReports.UI.XRTable();
@@ -51,8 +55,11 @@ namespace BeWo.KetteReports
this.xrTableCell13 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell47 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell44 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox();
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.chkKeineKrankenhaus = new DevExpress.XtraReports.UI.XRCheckBox();
this.chkKeineGruppen = new DevExpress.XtraReports.UI.XRCheckBox();
@@ -61,6 +68,7 @@ namespace BeWo.KetteReports
this.xrTableRow3 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell20 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell21 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow10 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell39 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell40 = new DevExpress.XtraReports.UI.XRTableCell();
@@ -69,17 +77,22 @@ namespace BeWo.KetteReports
this.xrTableRow9 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell35 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell36 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow8 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell31 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell34 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow7 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell27 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow5 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell23 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell24 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell17 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.ReportFooter = new DevExpress.XtraReports.UI.ReportFooterBand();
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
this.xrLabel10 = new DevExpress.XtraReports.UI.XRLabel();
@@ -122,19 +135,6 @@ namespace BeWo.KetteReports
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.fieldFreeFLS = new DevExpress.XtraReports.UI.CalculatedField();
this.formattingRuleAbrechenbar = new DevExpress.XtraReports.UI.FormattingRule();
this.xrTableCell19 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell30 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell34 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell38 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell16 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell12 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell7 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell6 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
@@ -212,13 +212,29 @@ namespace BeWo.KetteReports
this.xrTableCell4.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell4.Weight = 0.41899441340782145D;
//
// xrTableCell9
//
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell9.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell9.Multiline = true;
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false;
this.xrTableCell9.Text = "Betreuungs-";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell9.Weight = 0.23743016759776536D;
//
// xrTableCell45
//
this.xrTableCell45.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell45.Name = "xrTableCell45";
this.xrTableCell45.StylePriority.UseBorders = false;
this.xrTableCell45.StylePriority.UseTextAlignment = false;
this.xrTableCell45.Text = "Gruppe";
this.xrTableCell45.Text = "Art";
this.xrTableCell45.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell45.Weight = 0.27932960893854747D;
//
@@ -234,6 +250,18 @@ namespace BeWo.KetteReports
this.xrTableCell28.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell28.Weight = 0.27932960893854752D;
//
// xrTableCell6
//
this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell6.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.StylePriority.UseBorders = false;
this.xrTableCell6.StylePriority.UseFont = false;
this.xrTableCell6.StylePriority.UseTextAlignment = false;
this.xrTableCell6.Text = "Unterschrift";
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell6.Weight = 0.50279329608938539D;
//
// xrTableRow1
//
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -278,6 +306,19 @@ namespace BeWo.KetteReports
this.xrTableCell5.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell5.Weight = 0.2094972067039107D;
//
// xrTableCell7
//
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell7.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.StylePriority.UseBorders = false;
this.xrTableCell7.StylePriority.UseFont = false;
this.xrTableCell7.StylePriority.UseTextAlignment = false;
this.xrTableCell7.Text = "zeit";
this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell7.Weight = 0.23743016759776536D;
//
// xrTableCell46
//
this.xrTableCell46.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
@@ -297,6 +338,18 @@ namespace BeWo.KetteReports
this.xrTableCell43.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell43.Weight = 0.2793296089385473D;
//
// xrTableCell11
//
this.xrTableCell11.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell11.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.StylePriority.UseBorders = false;
this.xrTableCell11.StylePriority.UseFont = false;
this.xrTableCell11.StylePriority.UseTextAlignment = false;
this.xrTableCell11.Text = "Klient/in";
this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell11.Weight = 0.50279329608938528D;
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -397,6 +450,20 @@ namespace BeWo.KetteReports
this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell10.Weight = 0.094696933224158855D;
//
// xrTableCell12
//
this.xrTableCell12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.fieldHours", "{0:0.00}")});
this.xrTableCell12.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell12.Name = "xrTableCell12";
this.xrTableCell12.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell12.StylePriority.UseFont = false;
this.xrTableCell12.StylePriority.UsePadding = false;
this.xrTableCell12.StylePriority.UseTextAlignment = false;
this.xrTableCell12.Text = "xrTableCell12";
this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell12.Weight = 0.10732323052948757D;
//
// xrTableCell47
//
this.xrTableCell47.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
@@ -417,6 +484,28 @@ namespace BeWo.KetteReports
this.xrTableCell44.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell44.Weight = 0.12626261745498446D;
//
// xrTableCell15
//
this.xrTableCell15.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.picSignature});
this.xrTableCell15.Name = "xrTableCell15";
this.xrTableCell15.StylePriority.UseTextAlignment = false;
this.xrTableCell15.Text = "xrTableCell15";
this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell15.Weight = 0.22727271570939844D;
//
// picSignature
//
this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")});
this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.picSignature.Name = "picSignature";
this.picSignature.SizeF = new System.Drawing.SizeF(179.9998F, 25F);
this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picSignature.StylePriority.UseBorders = false;
this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint);
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -520,6 +609,20 @@ namespace BeWo.KetteReports
this.xrTableCell21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
this.xrTableCell21.Weight = 0.12626257258315241D;
//
// xrTableCell16
//
this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldTotalFLSBillable", "{0:0.00}")});
this.xrTableCell16.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell16.StylePriority.UseFont = false;
this.xrTableCell16.StylePriority.UsePadding = false;
this.xrTableCell16.StylePriority.UseTextAlignment = false;
this.xrTableCell16.Text = "xrTableCell16";
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell16.Weight = 0.14309759455580859D;
//
// xrTableRow10
//
this.xrTableRow10.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -583,6 +686,13 @@ namespace BeWo.KetteReports
this.xrTableCell36.StylePriority.UseBorders = false;
this.xrTableCell36.Weight = 0.12626262395954654D;
//
// xrTableCell38
//
this.xrTableCell38.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrTableCell38.Name = "xrTableCell38";
this.xrTableCell38.StylePriority.UseBorders = false;
this.xrTableCell38.Weight = 0.14309759455580859D;
//
// xrTableRow8
//
this.xrTableRow8.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -615,6 +725,22 @@ namespace BeWo.KetteReports
this.xrTableCell32.StylePriority.UseFont = false;
this.xrTableCell32.Weight = 0.12626262395954654D;
//
// xrTableCell34
//
this.xrTableCell34.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell34.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldTotalFLSBillable", "{0:0.00}")});
this.xrTableCell34.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell34.Name = "xrTableCell34";
this.xrTableCell34.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell34.StylePriority.UseBorders = false;
this.xrTableCell34.StylePriority.UseFont = false;
this.xrTableCell34.StylePriority.UsePadding = false;
this.xrTableCell34.StylePriority.UseTextAlignment = false;
this.xrTableCell34.Text = "xrTableCell34";
this.xrTableCell34.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell34.Weight = 0.14309762024400566D;
//
// xrTableRow7
//
this.xrTableRow7.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -637,6 +763,20 @@ namespace BeWo.KetteReports
this.xrTableCell27.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomLeft;
this.xrTableCell27.Weight = 0.41245793584302975D;
//
// xrTableCell30
//
this.xrTableCell30.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldTotalFLSSechstel", "{0:0.00}")});
this.xrTableCell30.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell30.Name = "xrTableCell30";
this.xrTableCell30.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell30.StylePriority.UseFont = false;
this.xrTableCell30.StylePriority.UsePadding = false;
this.xrTableCell30.StylePriority.UseTextAlignment = false;
this.xrTableCell30.Text = "xrTableCell30";
this.xrTableCell30.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomRight;
this.xrTableCell30.Weight = 0.14309762024400563D;
//
// xrTableRow5
//
this.xrTableRow5.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -669,6 +809,20 @@ namespace BeWo.KetteReports
this.xrTableCell24.StylePriority.UseFont = false;
this.xrTableCell24.Weight = 0.12626257258315238D;
//
// xrTableCell26
//
this.xrTableCell26.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedFLSPerMonth", "{0:0.00}")});
this.xrTableCell26.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell26.Name = "xrTableCell26";
this.xrTableCell26.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell26.StylePriority.UseFont = false;
this.xrTableCell26.StylePriority.UsePadding = false;
this.xrTableCell26.StylePriority.UseTextAlignment = false;
this.xrTableCell26.Text = "xrTableCell26";
this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell26.Weight = 0.14309762024400566D;
//
// xrTableRow4
//
this.xrTableRow4.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
@@ -701,6 +855,20 @@ namespace BeWo.KetteReports
this.xrTableCell17.StylePriority.UseFont = false;
this.xrTableCell17.Weight = 0.12626262395954654D;
//
// xrTableCell19
//
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldDifferenzSollIst", "{0:0.00}")});
this.xrTableCell19.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell19.StylePriority.UseFont = false;
this.xrTableCell19.StylePriority.UsePadding = false;
this.xrTableCell19.StylePriority.UseTextAlignment = false;
this.xrTableCell19.Text = "xrTableCell19";
this.xrTableCell19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell19.Weight = 0.14309756886761149D;
//
// ReportFooter
//
this.ReportFooter.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -1206,174 +1374,6 @@ namespace BeWo.KetteReports
this.formattingRuleAbrechenbar.Formatting.Visible = DevExpress.Utils.DefaultBoolean.True;
this.formattingRuleAbrechenbar.Name = "formattingRuleAbrechenbar";
//
// xrTableCell19
//
this.xrTableCell19.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldDifferenzSollIst", "{0:0.00}")});
this.xrTableCell19.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell19.Name = "xrTableCell19";
this.xrTableCell19.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell19.StylePriority.UseFont = false;
this.xrTableCell19.StylePriority.UsePadding = false;
this.xrTableCell19.StylePriority.UseTextAlignment = false;
this.xrTableCell19.Text = "xrTableCell19";
this.xrTableCell19.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell19.Weight = 0.14309756886761149D;
//
// xrTableCell26
//
this.xrTableCell26.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "ApprovedFLSPerMonth", "{0:0.00}")});
this.xrTableCell26.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell26.Name = "xrTableCell26";
this.xrTableCell26.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell26.StylePriority.UseFont = false;
this.xrTableCell26.StylePriority.UsePadding = false;
this.xrTableCell26.StylePriority.UseTextAlignment = false;
this.xrTableCell26.Text = "xrTableCell26";
this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell26.Weight = 0.14309762024400566D;
//
// xrTableCell30
//
this.xrTableCell30.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldTotalFLSSechstel", "{0:0.00}")});
this.xrTableCell30.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell30.Name = "xrTableCell30";
this.xrTableCell30.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell30.StylePriority.UseFont = false;
this.xrTableCell30.StylePriority.UsePadding = false;
this.xrTableCell30.StylePriority.UseTextAlignment = false;
this.xrTableCell30.Text = "xrTableCell30";
this.xrTableCell30.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomRight;
this.xrTableCell30.Weight = 0.14309762024400563D;
//
// xrTableCell34
//
this.xrTableCell34.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell34.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldTotalFLSBillable", "{0:0.00}")});
this.xrTableCell34.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell34.Name = "xrTableCell34";
this.xrTableCell34.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell34.StylePriority.UseBorders = false;
this.xrTableCell34.StylePriority.UseFont = false;
this.xrTableCell34.StylePriority.UsePadding = false;
this.xrTableCell34.StylePriority.UseTextAlignment = false;
this.xrTableCell34.Text = "xrTableCell34";
this.xrTableCell34.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell34.Weight = 0.14309762024400566D;
//
// xrTableCell38
//
this.xrTableCell38.Borders = DevExpress.XtraPrinting.BorderSide.Bottom;
this.xrTableCell38.Name = "xrTableCell38";
this.xrTableCell38.StylePriority.UseBorders = false;
this.xrTableCell38.Weight = 0.14309759455580859D;
//
// xrTableCell16
//
this.xrTableCell16.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "fieldTotalFLSBillable", "{0:0.00}")});
this.xrTableCell16.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell16.Name = "xrTableCell16";
this.xrTableCell16.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell16.StylePriority.UseFont = false;
this.xrTableCell16.StylePriority.UsePadding = false;
this.xrTableCell16.StylePriority.UseTextAlignment = false;
this.xrTableCell16.Text = "xrTableCell16";
this.xrTableCell16.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell16.Weight = 0.14309759455580859D;
//
// xrTableCell12
//
this.xrTableCell12.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.fieldHours", "{0:0.00}")});
this.xrTableCell12.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell12.Name = "xrTableCell12";
this.xrTableCell12.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 3, 0, 0, 100F);
this.xrTableCell12.StylePriority.UseFont = false;
this.xrTableCell12.StylePriority.UsePadding = false;
this.xrTableCell12.StylePriority.UseTextAlignment = false;
this.xrTableCell12.Text = "xrTableCell12";
this.xrTableCell12.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
this.xrTableCell12.Weight = 0.10732323052948757D;
//
// xrTableCell7
//
this.xrTableCell7.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell7.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell7.Name = "xrTableCell7";
this.xrTableCell7.StylePriority.UseBorders = false;
this.xrTableCell7.StylePriority.UseFont = false;
this.xrTableCell7.StylePriority.UseTextAlignment = false;
this.xrTableCell7.Text = "zeit";
this.xrTableCell7.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell7.Weight = 0.23743016759776536D;
//
// xrTableCell9
//
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
| DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell9.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell9.Multiline = true;
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.StylePriority.UseTextAlignment = false;
this.xrTableCell9.Text = "Betreuungs-";
this.xrTableCell9.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell9.Weight = 0.23743016759776536D;
//
// xrTableCell6
//
this.xrTableCell6.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Top | DevExpress.XtraPrinting.BorderSide.Right)));
this.xrTableCell6.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell6.Name = "xrTableCell6";
this.xrTableCell6.StylePriority.UseBorders = false;
this.xrTableCell6.StylePriority.UseFont = false;
this.xrTableCell6.StylePriority.UseTextAlignment = false;
this.xrTableCell6.Text = "Unterschrift";
this.xrTableCell6.TextAlignment = DevExpress.XtraPrinting.TextAlignment.BottomCenter;
this.xrTableCell6.Weight = 0.50279329608938539D;
//
// xrTableCell11
//
this.xrTableCell11.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell11.Font = new System.Drawing.Font("Arial", 10F);
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.StylePriority.UseBorders = false;
this.xrTableCell11.StylePriority.UseFont = false;
this.xrTableCell11.StylePriority.UseTextAlignment = false;
this.xrTableCell11.Text = "Klient/in";
this.xrTableCell11.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell11.Weight = 0.50279329608938528D;
//
// xrTableCell15
//
this.xrTableCell15.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.picSignature});
this.xrTableCell15.Name = "xrTableCell15";
this.xrTableCell15.StylePriority.UseTextAlignment = false;
this.xrTableCell15.Text = "xrTableCell15";
this.xrTableCell15.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
this.xrTableCell15.Weight = 0.22727271570939844D;
//
// picSignature
//
this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")});
this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.picSignature.Name = "picSignature";
this.picSignature.SizeF = new System.Drawing.SizeF(179.9998F, 25F);
this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picSignature.StylePriority.UseBorders = false;
this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint);
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {

View File

@@ -42,6 +42,15 @@ namespace BeWo.KetteReports
sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
hatGruppen = true;
}
else if (sd.ServiceDescription.Contains("Fehlkontakt") ||sd.ServiceCategory.Contains("Fehlkontakt"))
{
sd.Notice5 = "F";
}
else
{
sd.Notice5 = "E";
}
if (String.IsNullOrEmpty(sd.Notice3))
{

View File

@@ -6,10 +6,12 @@ using System.Text;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
using BeWo.Report;
using System.Text.RegularExpressions;
using BS.Shared.Extensions;
namespace BeWo.KetteReports.Neu
{
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<Settlement2RO>
public partial class Spitzabrechnung : DevExpress.XtraReports.UI.XtraReport//, IBeWoReport<Settlement2RO>
{
public Spitzabrechnung()
{
@@ -72,10 +74,24 @@ namespace BeWo.KetteReports.Neu
{
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.PeriodStartDate, ii.PeriodEndDate,
ii.UnitCount, !hasRatefactor ? "" : "x " + pRO.RateFactorText2 + " ",
ii.AmountPerUnit);
if (ii.RateFactor.HasValue && ii.RateFactor.Value > 0)
{
ii.DetailDescription = String.Format("{0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} FLS {3}x {4:c}", ii.PeriodStartDate, ii.PeriodEndDate, ii.UnitCount, !hasRatefactor ? "" : "x " + pRO.RateFactorText2 + " ", ii.AmountPerUnit);
}
else
{
ii.DetailDescription = String.Format("Fehlkontakte {0:dd.MM.yyyy} bis {1:dd.MM.yyyy}: {2:0.##} Std. x {3:c}", ii.PeriodStartDate, ii.PeriodEndDate, ii.UnitCount, ii.AmountPerUnit);
}
if (!pRO.FehlkontakteString.IsNullOrEmpty() && ii.RateFactor == 0)
{
Zwischensumme.Visible = true;
if (!ii.ItemDescription.IsNullOrEmpty())
{
ii.DetailDescription = Regex.Replace(ii.DetailDescription, ii.ItemDescription, "Fehlkontakte");
}
ii.ItemDescription = "Fehlkontakte";
}
}
}
this.bindingSource1.DataSource = pRO;

View File

@@ -31,6 +31,7 @@ namespace BeWo.KetteReports.Neu
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Spitzabrechnung));
DevExpress.XtraReports.UI.XRSummary xrSummary1 = new DevExpress.XtraReports.UI.XRSummary();
this.Detail = new DevExpress.XtraReports.UI.DetailBand();
this.ReportHeader = new DevExpress.XtraReports.UI.ReportHeaderBand();
this.lblAdresse = new DevExpress.XtraReports.UI.XRLabel();
@@ -74,13 +75,21 @@ namespace BeWo.KetteReports.Neu
this.bottomMarginBand1 = new DevExpress.XtraReports.UI.BottomMarginBand();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.xrRichText1 = new DevExpress.XtraReports.UI.XRRichText();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.DetailReport = new DevExpress.XtraReports.UI.DetailReportBand();
this.Detail1 = new DevExpress.XtraReports.UI.DetailBand();
this.xrTable2 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow19 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell35 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell36 = new DevExpress.XtraReports.UI.XRTableCell();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.Zwischensumme = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable6 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow12 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell9 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell10 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableRow1 = new DevExpress.XtraReports.UI.XRTableRow();
this.xrTableCell1 = new DevExpress.XtraReports.UI.XRTableCell();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
this.GroupFooter1 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrTable4 = new DevExpress.XtraReports.UI.XRTable();
this.xrTableRow41 = new DevExpress.XtraReports.UI.XRTableRow();
@@ -105,8 +114,9 @@ namespace BeWo.KetteReports.Neu
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
//
@@ -545,14 +555,12 @@ namespace BeWo.KetteReports.Neu
this.xrRichText1.SizeF = new System.Drawing.SizeF(702F, 58F);
this.xrRichText1.StylePriority.UseFont = false;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
//
// DetailReport
//
this.DetailReport.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
this.Detail1});
this.Detail1,
this.GroupHeader1,
this.Zwischensumme});
this.DetailReport.DataMember = "InvoiceItems";
this.DetailReport.DataSource = this.bindingSource1;
this.DetailReport.Level = 0;
@@ -589,7 +597,7 @@ namespace BeWo.KetteReports.Neu
this.xrTableCell35.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell35.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell35.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.ItemDescription")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.DetailDescription")});
this.xrTableCell35.Name = "xrTableCell35";
this.xrTableCell35.StylePriority.UseBorderColor = false;
this.xrTableCell35.StylePriority.UseBorders = false;
@@ -610,6 +618,97 @@ namespace BeWo.KetteReports.Neu
this.xrTableCell36.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell36.Weight = 0.23076923076923078D;
//
// GroupHeader1
//
this.GroupHeader1.GroupFields.AddRange(new DevExpress.XtraReports.UI.GroupField[] {
new DevExpress.XtraReports.UI.GroupField("RateFactor", DevExpress.XtraReports.UI.XRColumnSortOrder.Descending)});
this.GroupHeader1.HeightF = 0F;
this.GroupHeader1.Name = "GroupHeader1";
//
// Zwischensumme
//
this.Zwischensumme.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrTable6});
this.Zwischensumme.HeightF = 34F;
this.Zwischensumme.Name = "Zwischensumme";
this.Zwischensumme.Visible = false;
//
// xrTable6
//
this.xrTable6.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrTable6.Name = "xrTable6";
this.xrTable6.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
this.xrTableRow12,
this.xrTableRow1});
this.xrTable6.SizeF = new System.Drawing.SizeF(650F, 34F);
this.xrTable6.StylePriority.UseFont = false;
//
// xrTableRow12
//
this.xrTableRow12.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell9,
this.xrTableCell10});
this.xrTableRow12.Name = "xrTableRow12";
this.xrTableRow12.Weight = 0.40476190476190466D;
//
// xrTableCell9
//
this.xrTableCell9.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell9.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell9.Name = "xrTableCell9";
this.xrTableCell9.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell9.StylePriority.UseBorderColor = false;
this.xrTableCell9.StylePriority.UseBorders = false;
this.xrTableCell9.StylePriority.UseFont = false;
this.xrTableCell9.StylePriority.UsePadding = false;
this.xrTableCell9.Text = "Zwischensumme [ItemDescription]:";
this.xrTableCell9.Weight = 2.3076923076923079D;
//
// xrTableCell10
//
this.xrTableCell10.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell10.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell10.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "InvoiceItems.GrossAmountTotal")});
this.xrTableCell10.Name = "xrTableCell10";
this.xrTableCell10.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell10.StylePriority.UseBorderColor = false;
this.xrTableCell10.StylePriority.UseBorders = false;
this.xrTableCell10.StylePriority.UseFont = false;
this.xrTableCell10.StylePriority.UsePadding = false;
this.xrTableCell10.StylePriority.UseTextAlignment = false;
xrSummary1.FormatString = "{0:c}";
xrSummary1.Running = DevExpress.XtraReports.UI.SummaryRunning.Group;
this.xrTableCell10.Summary = xrSummary1;
this.xrTableCell10.TextAlignment = DevExpress.XtraPrinting.TextAlignment.TopRight;
this.xrTableCell10.Weight = 0.69230769230769229D;
//
// xrTableRow1
//
this.xrTableRow1.Cells.AddRange(new DevExpress.XtraReports.UI.XRTableCell[] {
this.xrTableCell1});
this.xrTableRow1.Name = "xrTableRow1";
this.xrTableRow1.Weight = 0.40476190476190466D;
//
// xrTableCell1
//
this.xrTableCell1.BorderColor = System.Drawing.SystemColors.ControlLight;
this.xrTableCell1.Borders = ((DevExpress.XtraPrinting.BorderSide)(((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableCell1.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell1.Name = "xrTableCell1";
this.xrTableCell1.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 0, 0, 100F);
this.xrTableCell1.StylePriority.UseBorderColor = false;
this.xrTableCell1.StylePriority.UseBorders = false;
this.xrTableCell1.StylePriority.UseFont = false;
this.xrTableCell1.StylePriority.UsePadding = false;
this.xrTableCell1.Weight = 3D;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.Settlement2RO);
//
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -854,8 +953,9 @@ namespace BeWo.KetteReports.Neu
((System.ComponentModel.ISupportInitialize)(this.xrTable1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrRichText1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable6)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.xrTable4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
@@ -933,5 +1033,13 @@ namespace BeWo.KetteReports.Neu
private DevExpress.XtraReports.UI.XRTableRow xrTableRow47;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell73;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell74;
private DevExpress.XtraReports.UI.GroupHeaderBand GroupHeader1;
private DevExpress.XtraReports.UI.GroupFooterBand Zwischensumme;
private DevExpress.XtraReports.UI.XRTable xrTable6;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow12;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell9;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell10;
private DevExpress.XtraReports.UI.XRTableRow xrTableRow1;
private DevExpress.XtraReports.UI.XRTableCell xrTableCell1;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -108,7 +108,7 @@ namespace ProfEggersStiftung.Invoicing
}
}
var satzAnwesend = GetTagespauschale(scap, "Anwesend", start);
var satzAnwesend = GetTagespauschale(scap, start);
var ii = new InvoiceItem();
ii.UnitCount = tageMonat - tageAbwesendImMonat;
@@ -139,7 +139,7 @@ namespace ProfEggersStiftung.Invoicing
ergebnis.Add(ii);
var pauschale = GetTagespauschale(null, "Bekleidungsgeld", start);
var pauschale = GetPreis("Bekleidungsgeld", start);
ii = new InvoiceItem();
ii.UnitCount = tageMonat;
@@ -153,16 +153,42 @@ namespace ProfEggersStiftung.Invoicing
ergebnis.Add(ii);
var betrag = GetTagespauschale(null, "Barbetrag", start);
int alter = 99;
var c = scap.CostBearer2SupportConcept.SupportConcept.Customer;
if (c.Person.DateOfBirth.HasValue)
{
alter = start.Year - c.Person.DateOfBirth.Value.Year;
var dt = c.Person.DateOfBirth.Value.AddYears(alter);
if (start.CompareTo(dt) < 0)
{
alter--;
}
}
String preisBezeichnung = "Barbetrag";
if (alter > 18)
{
preisBezeichnung = "Barbetrag 18 bis xxx";
}
var betrag = GetPreis(preisBezeichnung, start);
bool abrechungProMonat = GetAbrechnungIntervalProMonat(c);
//Barbetrag * AnzahlMonate / tage wenn Bewilligung nicht Anfang oder Ende des Monats startet
// Debitor Nr. für Bekleidungsgeld und Taschengeld (Barbetrag) hinterlegen
int unitCount = 1;
if (!abrechungProMonat)
{
unitCount = DateTime.DaysInMonth(start.Year, start.Month);
}
ii = new InvoiceItem();
ii.UnitCount = 1;
ii.UnitCount = unitCount;
ii.AmountPerUnit = betrag;
ii.AmountTotal = ii.UnitCount * ii.AmountPerUnit;
ii.GrossAmountTotal = ii.AmountTotal;
@@ -185,6 +211,25 @@ namespace ProfEggersStiftung.Invoicing
return ergebnis;
}
private bool GetAbrechnungIntervalProMonat(Customer c)
{
foreach (var vv in c.VarFieldValueList)
{
var varFieldValue = BS.Shared.Core.Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
if (vv.VarFieldDefOid.Value == 7)
{
var abrechnung = (String)varFieldValue;
if (!String.IsNullOrEmpty(abrechnung) && abrechnung.Contains("Tag"))
{
return false;
}
}
}
return true;
}
protected List<InvoiceItem> CreateVarFieldInvoiceItems(Customer customer, SupportConceptApprovalPeriod scap, DateTimeSpan invoicePeriod)
{
var iiList = new List<InvoiceItem>();
@@ -287,7 +332,7 @@ namespace ProfEggersStiftung.Invoicing
return iiList;
}
private decimal GetTagespauschale(SupportConceptApprovalPeriod scap, String preisBezeichnung, DateTime datum)
private decimal GetTagespauschale(SupportConceptApprovalPeriod scap, DateTime datum)
{
if (scap != null && scap.ServiceCategory != null)
{
@@ -299,31 +344,13 @@ namespace ProfEggersStiftung.Invoicing
return crp.CostRateValue.Value;
}
}
var preise = DAOFactory.GenericDAO.GetAllActive<Preis>();
return GetPreis(preise, preisBezeichnung, datum);
}
private static decimal GetPreis(IList<Preis> allePreise, String name, DateTime datum)
{
var tagessatz = allePreise.Where(p => p.Name.Contains(name)).FirstOrDefault();
if (tagessatz != null)
{
var crlist = MapperFactory.CostRatePeriodDC_CostRatePeriod.MapToNewDCs(tagessatz.CostRatePeriods);
var cr = crlist.GetCostRatePeriodForDate(CostRatePeriodType.AmountOfMoney, datum);
if (cr != null && cr.CostRateValue.HasValue)
{
return cr.CostRateValue.Value;
}
}
return 0;
}
public override IList<InvoiceItem> CreateSummaryInvoiceItems(IList<InvoiceItem> itemList, DateTimeSpan invoicePeriod, SupportConceptApprovalPeriod scap, Calculations calc, bool summaryPerMonth, bool addRateFactorToUnitCount)
{
return base.CreateSummaryInvoiceItems(itemList, invoicePeriod, scap, calc, true, true);

View File

@@ -111,6 +111,11 @@ namespace SehtMuenster
this.xrLabel9 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel1 = new DevExpress.XtraReports.UI.XRLabel();
this.fieldKontaktArt = new DevExpress.XtraReports.UI.CalculatedField();
this.lblFehlkontakt = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel18 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel20 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel17 = new DevExpress.XtraReports.UI.XRLabel();
this.xrLabel21 = new DevExpress.XtraReports.UI.XRLabel();
((System.ComponentModel.ISupportInitialize)(this.xrTable3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
@@ -223,7 +228,7 @@ namespace SehtMuenster
// xrTableCell2
//
this.xrTableCell2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.fieldKontaktArt")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "Services.Notice5")});
this.xrTableCell2.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.StylePriority.UseFont = false;
@@ -686,6 +691,11 @@ namespace SehtMuenster
// GroupFooter1
//
this.GroupFooter1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrLabel17,
this.xrLabel21,
this.xrLabel20,
this.xrLabel18,
this.lblFehlkontakt,
this.lblUnterschriftKlient,
this.lblUnterschriftMitarbeiter,
this.xrTableAbwesenheiten,
@@ -700,7 +710,7 @@ namespace SehtMuenster
this.xrLabel10,
this.xrLabel9,
this.xrLabel1});
this.GroupFooter1.HeightF = 270F;
this.GroupFooter1.HeightF = 279.1667F;
this.GroupFooter1.KeepTogether = true;
this.GroupFooter1.Name = "GroupFooter1";
//
@@ -708,7 +718,7 @@ namespace SehtMuenster
//
this.lblUnterschriftKlient.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.lblUnterschriftKlient.Font = new System.Drawing.Font("Arial", 10F);
this.lblUnterschriftKlient.LocationFloat = new DevExpress.Utils.PointFloat(0F, 250F);
this.lblUnterschriftKlient.LocationFloat = new DevExpress.Utils.PointFloat(0F, 259.1667F);
this.lblUnterschriftKlient.Name = "lblUnterschriftKlient";
this.lblUnterschriftKlient.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblUnterschriftKlient.SizeF = new System.Drawing.SizeF(271.8472F, 20F);
@@ -724,7 +734,7 @@ namespace SehtMuenster
//
this.lblUnterschriftMitarbeiter.Borders = DevExpress.XtraPrinting.BorderSide.Top;
this.lblUnterschriftMitarbeiter.Font = new System.Drawing.Font("Arial", 10F);
this.lblUnterschriftMitarbeiter.LocationFloat = new DevExpress.Utils.PointFloat(329.9995F, 250F);
this.lblUnterschriftMitarbeiter.LocationFloat = new DevExpress.Utils.PointFloat(329.9996F, 259.1667F);
this.lblUnterschriftMitarbeiter.Name = "lblUnterschriftMitarbeiter";
this.lblUnterschriftMitarbeiter.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblUnterschriftMitarbeiter.SizeF = new System.Drawing.SizeF(271.69F, 20F);
@@ -743,7 +753,7 @@ namespace SehtMuenster
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrTableAbwesenheiten.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.xrTableAbwesenheiten.LocationFloat = new DevExpress.Utils.PointFloat(170F, 79.99997F);
this.xrTableAbwesenheiten.LocationFloat = new DevExpress.Utils.PointFloat(170F, 89.16662F);
this.xrTableAbwesenheiten.Name = "xrTableAbwesenheiten";
this.xrTableAbwesenheiten.Padding = new DevExpress.XtraPrinting.PaddingInfo(0, 0, 0, 0, 100F);
this.xrTableAbwesenheiten.Rows.AddRange(new DevExpress.XtraReports.UI.XRTableRow[] {
@@ -954,7 +964,7 @@ namespace SehtMuenster
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.lblHatAbwesenheiten.Font = new System.Drawing.Font("Arial", 10F);
this.lblHatAbwesenheiten.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 130F);
this.lblHatAbwesenheiten.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 139.1667F);
this.lblHatAbwesenheiten.Name = "lblHatAbwesenheiten";
this.lblHatAbwesenheiten.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblHatAbwesenheiten.SizeF = new System.Drawing.SizeF(30F, 30F);
@@ -971,7 +981,7 @@ namespace SehtMuenster
| DevExpress.XtraPrinting.BorderSide.Right)
| DevExpress.XtraPrinting.BorderSide.Bottom)));
this.lblHatGruppen.Font = new System.Drawing.Font("Arial", 10F);
this.lblHatGruppen.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 79.99997F);
this.lblHatGruppen.LocationFloat = new DevExpress.Utils.PointFloat(435.1388F, 89.16662F);
this.lblHatGruppen.Name = "lblHatGruppen";
this.lblHatGruppen.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblHatGruppen.SizeF = new System.Drawing.SizeF(30F, 30F);
@@ -985,7 +995,7 @@ namespace SehtMuenster
// xrRichText2
//
this.xrRichText2.Font = new System.Drawing.Font("Arial", 8F);
this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(474.472F, 130F);
this.xrRichText2.LocationFloat = new DevExpress.Utils.PointFloat(474.472F, 139.1667F);
this.xrRichText2.Name = "xrRichText2";
this.xrRichText2.SerializableRtfString = resources.GetString("xrRichText2.SerializableRtfString");
this.xrRichText2.SizeF = new System.Drawing.SizeF(200.528F, 68.05556F);
@@ -994,7 +1004,7 @@ namespace SehtMuenster
// xrRichText1
//
this.xrRichText1.Font = new System.Drawing.Font("Arial", 8F);
this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(474.472F, 79.99998F);
this.xrRichText1.LocationFloat = new DevExpress.Utils.PointFloat(474.472F, 89.16666F);
this.xrRichText1.Name = "xrRichText1";
this.xrRichText1.SerializableRtfString = resources.GetString("xrRichText1.SerializableRtfString");
this.xrRichText1.SizeF = new System.Drawing.SizeF(200.5281F, 50F);
@@ -1003,7 +1013,7 @@ namespace SehtMuenster
// xrLabel15
//
this.xrLabel15.Font = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Underline);
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 79.99997F);
this.xrLabel15.LocationFloat = new DevExpress.Utils.PointFloat(0F, 89.16662F);
this.xrLabel15.Multiline = true;
this.xrLabel15.Name = "xrLabel15";
this.xrLabel15.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
@@ -1019,10 +1029,10 @@ namespace SehtMuenster
// xrLabel13
//
this.xrLabel13.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(0F, 39.99998F);
this.xrLabel13.LocationFloat = new DevExpress.Utils.PointFloat(0F, 20F);
this.xrLabel13.Name = "xrLabel13";
this.xrLabel13.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel13.SizeF = new System.Drawing.SizeF(245F, 20F);
this.xrLabel13.StylePriority.UseBackColor = false;
this.xrLabel13.StylePriority.UseBorders = false;
this.xrLabel13.StylePriority.UseFont = false;
@@ -1034,10 +1044,10 @@ namespace SehtMuenster
// xrLabel12
//
this.xrLabel12.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(0F, 19.99999F);
this.xrLabel12.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.xrLabel12.Name = "xrLabel12";
this.xrLabel12.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(320F, 20F);
this.xrLabel12.SizeF = new System.Drawing.SizeF(245F, 20F);
this.xrLabel12.StylePriority.UseBackColor = false;
this.xrLabel12.StylePriority.UseBorders = false;
this.xrLabel12.StylePriority.UseFont = false;
@@ -1048,6 +1058,7 @@ namespace SehtMuenster
//
// xrLabel11
//
this.xrLabel11.Borders = DevExpress.XtraPrinting.BorderSide.Right;
this.xrLabel11.Font = new System.Drawing.Font("Arial", 8F);
this.xrLabel11.LocationFloat = new DevExpress.Utils.PointFloat(329.9998F, 20.00001F);
this.xrLabel11.Name = "xrLabel11";
@@ -1097,7 +1108,7 @@ namespace SehtMuenster
this.xrLabel1.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel1.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMBillable", "{0:0.##}")});
new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMoFehlkontakte", "{0:0.##}")});
this.xrLabel1.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel1.LocationFloat = new DevExpress.Utils.PointFloat(330F, 0F);
this.xrLabel1.Name = "xrLabel1";
@@ -1117,6 +1128,86 @@ namespace SehtMuenster
this.fieldKontaktArt.FieldType = DevExpress.XtraReports.UI.FieldType.String;
this.fieldKontaktArt.Name = "fieldKontaktArt";
//
// lblFehlkontakt
//
this.lblFehlkontakt.Font = new System.Drawing.Font("Arial", 10F);
this.lblFehlkontakt.LocationFloat = new DevExpress.Utils.PointFloat(0F, 40F);
this.lblFehlkontakt.Name = "lblFehlkontakt";
this.lblFehlkontakt.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.lblFehlkontakt.SizeF = new System.Drawing.SizeF(245F, 20F);
this.lblFehlkontakt.StylePriority.UseBackColor = false;
this.lblFehlkontakt.StylePriority.UseBorders = false;
this.lblFehlkontakt.StylePriority.UseFont = false;
this.lblFehlkontakt.StylePriority.UsePadding = false;
this.lblFehlkontakt.StylePriority.UseTextAlignment = false;
this.lblFehlkontakt.Text = "F = Fehlkontakt";
this.lblFehlkontakt.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel18
//
this.xrLabel18.Borders = DevExpress.XtraPrinting.BorderSide.Right;
this.xrLabel18.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel18.LocationFloat = new DevExpress.Utils.PointFloat(245F, 20F);
this.xrLabel18.Name = "xrLabel18";
this.xrLabel18.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel18.SizeF = new System.Drawing.SizeF(85F, 20F);
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.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel20
//
this.xrLabel20.Borders = DevExpress.XtraPrinting.BorderSide.Right;
this.xrLabel20.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel20.LocationFloat = new DevExpress.Utils.PointFloat(244.9998F, 40F);
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;
this.xrLabel20.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// xrLabel17
//
this.xrLabel17.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel17.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel17.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Text", null, "TotalFLMFehlkontakte", "{0:0.##}")});
this.xrLabel17.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel17.LocationFloat = new DevExpress.Utils.PointFloat(330F, 40F);
this.xrLabel17.Name = "xrLabel17";
this.xrLabel17.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel17.SizeF = new System.Drawing.SizeF(85F, 20F);
this.xrLabel17.StylePriority.UseBackColor = false;
this.xrLabel17.StylePriority.UseBorders = false;
this.xrLabel17.StylePriority.UseFont = false;
this.xrLabel17.StylePriority.UsePadding = false;
this.xrLabel17.StylePriority.UseTextAlignment = false;
this.xrLabel17.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleCenter;
//
// xrLabel21
//
this.xrLabel21.BackColor = System.Drawing.Color.Gainsboro;
this.xrLabel21.Borders = ((DevExpress.XtraPrinting.BorderSide)((DevExpress.XtraPrinting.BorderSide.Right | DevExpress.XtraPrinting.BorderSide.Bottom)));
this.xrLabel21.Font = new System.Drawing.Font("Arial", 10F);
this.xrLabel21.LocationFloat = new DevExpress.Utils.PointFloat(415F, 40F);
this.xrLabel21.Name = "xrLabel21";
this.xrLabel21.Padding = new DevExpress.XtraPrinting.PaddingInfo(3, 2, 0, 0, 100F);
this.xrLabel21.SizeF = new System.Drawing.SizeF(229.6399F, 20F);
this.xrLabel21.StylePriority.UseBackColor = false;
this.xrLabel21.StylePriority.UseBorders = false;
this.xrLabel21.StylePriority.UseFont = false;
this.xrLabel21.StylePriority.UsePadding = false;
this.xrLabel21.StylePriority.UseTextAlignment = false;
this.xrLabel21.Text = "Fehlkontakte in Minuten";
this.xrLabel21.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleLeft;
//
// Quittierungsbeleg
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1235,5 +1326,10 @@ namespace SehtMuenster
private DevExpress.XtraReports.UI.XRTableCell xrTableCell31;
private DevExpress.XtraReports.UI.XRLabel xrLabel14;
private DevExpress.XtraReports.UI.XRLabel xrLabel16;
private DevExpress.XtraReports.UI.XRLabel lblFehlkontakt;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel17;
private DevExpress.XtraReports.UI.XRLabel xrLabel21;
}
}

View File

@@ -27,14 +27,20 @@ namespace SehtMuenster
foreach (var sd in pRO.Services)
{
if (sd.IsBillable)
if (sd.IsBillable || sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
{
ServicesOverviewRO.CreateSignatureString(sd);
sd.Notice5 = "E";
if (sd.IsGroup)
{
//sd.Notice5 = String.Format("{0} Teilnehmer", sd.CustomerCount);
sd.Notice5 = "GR";
hatGruppen = true;
}
if (sd.ServiceDescription.ToLower().Contains("fehlkontakt") || sd.ServiceCategory.ToLower().Contains("fehlkontakt"))
{
sd.Notice5 = "F";
}
servicesBillable.Add(sd);
}
}

View File

@@ -45,7 +45,10 @@ namespace ahaEV
{
stunden += day.MinutesTotal / 60;
}
stunden += ed.SollProTag * ed.UrlaubUndKrankheit.Value;
if (ed.UrlaubUndKrankheit.HasValue)
{
stunden += ed.SollProTag * ed.UrlaubUndKrankheit.Value;
}
ed.Custom15 = stunden;
}

View File

@@ -30,7 +30,19 @@ namespace BeWo.Service.Plugins
return MapperFactory.InvoiceBaseDC_InvoiceBase.MapToNewDCs(list);
}
public virtual void DeactivateInvoiceBases(List<InvoiceBaseDC> invoices)
public virtual List<InvoiceBaseDC> GetInvoiceBases(DateTime? startDate, DateTime? endDate, bool filterByInvoiceDate)
{
DateTime? end = endDate;
if (end.HasValue)
{
end = end.Value.Date.AddDays(1).AddTicks(-1);
}
var list = DAOFactory.SearchDAO.GetInvoiceBases(startDate, end, filterByInvoiceDate);
return MapperFactory.InvoiceBaseDC_InvoiceBase.MapToNewDCs(list);
}
public virtual void DeactivateInvoiceBases(List<InvoiceBaseDC> invoices)
{
ServiceLogic.SetActivationType<InvoiceBase>(invoices.ToDictionary(i => i.InvoiceBaseOid.Value, i => i.InvoiceBaseVersion.Value), ActivationTypeId.Deleted);
}

View File

@@ -23,8 +23,13 @@ namespace BeWo.Service.Plugins
{
public virtual EmployeeDC LoadEmployee(long eOid)
{
var test = DAOFactory.GenericDAO.LoadByID<Employee>(eOid);
if (test.Tid == TableID.Customer)
{
int test2 = 0;
}
SettingsLogic.AddToUsersHistory<Employee>(eOid);
var dc = MapperFactory.EmployeeDC_Employee.MapToNewDC(DAOFactory.GenericDAO.LoadByID<Employee>(eOid));
var dc = MapperFactory.EmployeeDC_Employee.MapToNewDC(test);
return dc;

View File

@@ -28,13 +28,20 @@ namespace BeWo.Service.Plugins
public virtual List<CompactSupportConceptDC> GetExpiringSupportConcepts(long? employeeOid,
DateTime expiredUntil)
{
var list = MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDCs(
DAOFactory.SearchDAO.FindExpiringSupportConcepts(employeeOid, DateTime.Now.Date, expiredUntil));
var result = new List<CompactSupportConceptDC>();
var list = DAOFactory.SearchDAO.FindExpiringSupportConcepts(employeeOid, DateTime.Now.Date, expiredUntil);
list.AddRange(MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDCs(
DAOFactory.SearchDAO.FindExpiringNotApprovedSupportConcepts(employeeOid, DateTime.Now.Date, expiredUntil)));
var cs = new CustomerService();
return list.Where(s => s.StartDate.HasValue && s.EndDate.HasValue).ToList();
foreach (var sc in list)
{
foreach (var c2s in sc.CostBearer2SupportConceptList)
{
result.Add(cs.CreateFlatSupportConcept(sc, c2s));
}
}
return result.OrderBy(s => s.EndDate).ToList();
}
public virtual List<TaskDC> GetTasksForEmployee(long employeeOid)

View File

@@ -150,7 +150,7 @@ namespace BeWo.Service.Plugins
//t = "7381352241"; // Ressource e.V.
//t = "3607551608"; // Betreuungsbüro Scholz
//t = "3104936392"; // B.A.P. Bielefelder Ambulante Pflege
//t = "1106039294"; // Hph Bersenbrück ATZ
t = "1106039294"; // Hph Bersenbrück ATZ
//t = "5562845955"; // Praunheimer Werkstätten
//t = "4801617798"; // Severin
//t = "1172092025"; // Flingern
@@ -347,6 +347,8 @@ namespace BeWo.Service.Plugins
//t = "3522103738"; // AWO Münsterland-Recklinghausen
//t = "5592509446"; // Kontakt Verein für psychosoziale Hilfen e.V
//t = "5344902949"; // SHK Service GmbH SBD
//t = "1422963536"; // Malteser-Johanniter-Johanneshaus gGmbH
//t = "5433105975"; // aha e.V.
//t = "5484692276"; // SPEKTRUM GmbH
//t = "1701920223"; // SKFMMonheim

View File

@@ -64,6 +64,8 @@ namespace BeWo.Service.Plugins
AddOrReplaceTranslation(dict, "CustomerVarFieldsTitle", "Weitere Eigenschaften");
AddOrReplaceTranslation(dict, "EmployeeVarFieldsTitle", "Weitere Eigenschaften");
AddOrReplaceTranslation(dict, "SupportConceptVarFieldsTitle", "Weitere Eigenschaften");
AddOrReplaceTranslation(dict, "OrganisationVarFieldsTitle", "Weitere Eigenschaften");
AddOrReplaceTranslation(dict, "PersonVarFieldsTitle", "Weitere Eigenschaften");
AddOrReplaceTranslation(dict, "TeamVarFieldsTitle", "Weitere Eigenschaften");
AddOrReplaceTranslation(dict, "NotizenHeader", "Notizen");

View File

@@ -36,6 +36,10 @@ namespace BeWo.Service.ServiceContracts
[OperationContract]
List<InvoiceBaseDC> GetInvoiceBases(DateTime? startDate, DateTime? endDate);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<InvoiceBaseDC> GetInvoiceBases2(DateTime? startDate, DateTime? endDate, bool filterByInvoiceDate);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<InvoiceBaseDC> GetGeneralInvoiceBasesForCustomer(long customerOid);

View File

@@ -175,6 +175,21 @@ namespace BeWo.Service.ServiceImplementations
}
}
public List<InvoiceBaseDC> GetInvoiceBases2(DateTime? startDate, DateTime? endDate, bool filterByInvoiceDate)
{
try
{
var s = PluginLoader.FindClass<AccountingService>();
return s.GetInvoiceBases(startDate, endDate, filterByInvoiceDate);
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public List<InvoiceBaseDC> GetGeneralInvoiceBasesForCustomer(long customerOid)
{
try