Drucken Rechnungsübersicht, Start-Enddatum bei Betreuung Zuordnung, Speichern der letzten Module beim Mandator, diverse Anpassungen Schulbegleitung
This commit is contained in:
@@ -16,7 +16,12 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
|
||||
foreach (var viewModel in viewModels)
|
||||
{
|
||||
if(viewModel.VertretungsStatus != VertretungsStatus.KlientKrank)
|
||||
if (viewModel.Customer != null && viewModel.Customer.LastName == "Dau" || viewModel.Customer.LastName == "Sawan")
|
||||
{
|
||||
int tet = 0;
|
||||
}
|
||||
|
||||
if (viewModel.VertretungsStatus != VertretungsStatus.KlientKrank)
|
||||
{
|
||||
var substitutionStartingDayCountCondition = SubstitutionStartingDayCountCondition(viewModel);
|
||||
|
||||
@@ -64,6 +69,10 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
|
||||
foreach (var viewModel in viewModels)
|
||||
{
|
||||
if (viewModel.Customer != null && viewModel.Customer.LastName == "Dau" || viewModel.Customer.LastName == "Sawan")
|
||||
{
|
||||
int tet = 0;
|
||||
}
|
||||
var isCustomerAbsenceWeekView = viewModel.WeekDayDictionary.Where(w => w.Value != null).All(a => a.Value.VertretungsStatus == VertretungsStatus.KlientKrank);
|
||||
|
||||
var isSubstitutionUnwanted = viewModel.WeekDayDictionary.Where(w => w.Value != null).All(a => SubstitutionStartingDayCountCondition(a.Value) || a.Value.Vertretung?.VertretenderMitarbeiterOid != null || a.Value.Customer != null && a.Value.Customer.SubstitutionNeed == SubstitutionNeed.NoSubstitutionWanted);
|
||||
@@ -83,7 +92,7 @@ namespace BeWo.SchulbegleitenderDienst.SBDUtils
|
||||
}
|
||||
}
|
||||
|
||||
return new WeeklySubstitutionListObject(employeeSubstitutionList, customerSubstitutionList, customerSubstitutionList);
|
||||
return new WeeklySubstitutionListObject(employeeSubstitutionList, customerSubstitutionList, unwantedSubstitutionList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
|
||||
<GroupBox Grid.ColumnSpan="3" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Grid.ColumnSpan="2" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
|
||||
<GroupBox Grid.ColumnSpan="3" Padding="5" Style="{StaticResource ObjectEditGroupBox}" Header="Schulbegleitender Dienst">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
|
||||
@@ -843,7 +843,7 @@
|
||||
</dxg:GridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" AllowBestFit="True" BestFitMode="AllRows" ShowGroupPanel="False" CellValueChanged="AbsentEmployeesWeekViewDataGrid_OnCellValueChanged" MouseMove="TableView_MouseMove_Wochenansicht">
|
||||
<dxg:TableView AllowPerPixelScrolling="True" ShowTotalSummary="False" AutoWidth="True" AllowBestFit="True" BestFitMode="AllRows" ShowGroupPanel="False" CellValueChanged="AbsentEmployeesWeekViewDataGrid_OnCellValueChanged" MouseMove="TableView_MouseMove_Wochenansicht" ShowGridMenu="GridDataControlWochenansichtMitarbeiter_OnShowGridMenu">
|
||||
|
||||
</dxg:TableView>
|
||||
</dxg:GridControl.View>
|
||||
|
||||
@@ -640,15 +640,42 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
}
|
||||
}
|
||||
|
||||
private void GridDataControlWochenansichtMitarbeiter_OnShowGridMenu(object sender, GridMenuEventArgs e)
|
||||
{
|
||||
|
||||
var barButtonItem2 = new BarButtonItem { Content = "Steckbrief anzeigen" };
|
||||
barButtonItem2.ItemClick += ShowCharacteristics;
|
||||
e.Customizations.Add(barButtonItem2);
|
||||
|
||||
//var selectedViewModel = (TagesansichtVM)GridDataControlWochenansichtMitarbeiter.SelectedItem;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void ShowCharacteristics(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var selectedItem = GridControlTagesansichtMitarbeiter.SelectedItem;
|
||||
CompactCustomerDC selectedCustomer = null;
|
||||
|
||||
if(selectedItem != null)
|
||||
if (ScrollViewerTagesansicht.Visibility == Visibility.Visible)
|
||||
{
|
||||
var selectedTagesansichtVM = (TagesansichtVM) selectedItem;
|
||||
|
||||
var url = $"{BeWoApp.SiteOfOrigin}/ReportView.aspx?type={ReportTypes.SBDCharacteristics}&customerOid={selectedTagesansichtVM.Customer.CustomerOid}";
|
||||
TagesansichtVM selectedItem = GridControlTagesansichtMitarbeiter.SelectedItem as TagesansichtVM;
|
||||
if (selectedItem != null)
|
||||
{
|
||||
selectedCustomer = selectedItem.Customer;
|
||||
}
|
||||
}
|
||||
else if (ScrollViewerWochenansicht.Visibility == Visibility.Visible)
|
||||
{
|
||||
WochenansichtVM selectedItem = GridDataControlWochenansichtMitarbeiter.SelectedItem as WochenansichtVM;
|
||||
if (selectedItem != null)
|
||||
{
|
||||
selectedCustomer = selectedItem.Customer;
|
||||
}
|
||||
}
|
||||
if(selectedCustomer != null)
|
||||
{
|
||||
|
||||
var url = $"{BeWoApp.SiteOfOrigin}/ReportView.aspx?type={ReportTypes.SBDCharacteristics}&customerOid={selectedCustomer.CustomerOid}";
|
||||
|
||||
//var tempToken = string.Empty;
|
||||
|
||||
|
||||
@@ -166,25 +166,27 @@ namespace BeWo.SchulbegleitenderDienst
|
||||
var end = _Tagesansicht.Datum;
|
||||
|
||||
var assistanceTime = _Tagesansicht.AssistanceTimeEntry;
|
||||
|
||||
var assistanceTimeDates = DateTimeUtils.GetAssistanceTimeComparisonDateTime(assistanceTime.UhrzeitVon, assistanceTime.UhrzeitBis, start);
|
||||
|
||||
start = assistanceTimeDates.Start;
|
||||
|
||||
end = assistanceTimeDates.End;
|
||||
|
||||
if (_Tagesansicht.Vertretung != null)
|
||||
if (assistanceTime != null)
|
||||
{
|
||||
start = _Tagesansicht.Vertretung.VertretungsZeitraumVon;
|
||||
end = _Tagesansicht.Vertretung.VertretungsZeitraumBis;
|
||||
var assistanceTimeDates = DateTimeUtils.GetAssistanceTimeComparisonDateTime(assistanceTime.UhrzeitVon, assistanceTime.UhrzeitBis, start);
|
||||
|
||||
start = assistanceTimeDates.Start;
|
||||
|
||||
end = assistanceTimeDates.End;
|
||||
|
||||
if (_Tagesansicht.Vertretung != null)
|
||||
{
|
||||
start = _Tagesansicht.Vertretung.VertretungsZeitraumVon;
|
||||
end = _Tagesansicht.Vertretung.VertretungsZeitraumBis;
|
||||
}
|
||||
|
||||
|
||||
start = currentDate.Date;
|
||||
end = currentDate.Date;
|
||||
|
||||
SubstitutionStart = start;
|
||||
SubstitutionEnd = end;
|
||||
}
|
||||
|
||||
|
||||
start = currentDate.Date;
|
||||
end = currentDate.Date;
|
||||
|
||||
SubstitutionStart = start;
|
||||
SubstitutionEnd = end;
|
||||
}
|
||||
|
||||
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
||||
|
||||
@@ -1668,6 +1668,7 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.Employee2SchedulerAppointmentDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.DataContracts.ValueListEntryDC, System.Collections.Generic.List<BS.Shared.DataContracts.ResourceDC>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<System.DateTime, System.Collections.Generic.List<BS.Shared.Core.DateTimeSpan>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<string>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<BS.Shared.SignatureType, System.Collections.Generic.List<long>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<System.Collections.Generic.Dictionary<int, long>>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, long>))]
|
||||
@@ -4909,6 +4910,13 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/GetAllActiveEmployeeAbsenceTimesInIntervalBeW" +
|
||||
"oFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> GetAllActiveEmployeeAbsenceTimesInInterval(System.DateTime start, System.DateTime end, long employeeOid, System.Collections.Generic.List<long> selectedEmployeeOids);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IResourceService/CheckResourceAvailabilityWithEmployeeInformat" +
|
||||
"ion", ReplyAction="http://tempuri.org/IResourceService/CheckResourceAvailabilityWithEmployeeInformat" +
|
||||
"ionResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/CheckResourceAvailabilityWithEmployeeInformat" +
|
||||
"ionBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<string>> CheckResourceAvailabilityWithEmployeeInformation(System.DateTime start, System.DateTime end, System.Collections.Generic.List<long> resourceOids, System.Nullable<long> selectedAppointmentOid, System.Nullable<System.Guid> recurrenceId, int occurrenceIndex, bool shouldSkipResourceAvailability);
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -5234,6 +5242,11 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
return base.Channel.GetAllActiveEmployeeAbsenceTimesInInterval(start, end, employeeOid, selectedEmployeeOids);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<string>> CheckResourceAvailabilityWithEmployeeInformation(System.DateTime start, System.DateTime end, System.Collections.Generic.List<long> resourceOids, System.Nullable<long> selectedAppointmentOid, System.Nullable<System.Guid> recurrenceId, int occurrenceIndex, bool shouldSkipResourceAvailability)
|
||||
{
|
||||
return base.Channel.CheckResourceAvailabilityWithEmployeeInformation(start, end, resourceOids, selectedAppointmentOid, recurrenceId, occurrenceIndex, shouldSkipResourceAvailability);
|
||||
}
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -5518,6 +5531,17 @@ namespace BeWo.ServiceProxy
|
||||
"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/DeleteSignature", ReplyAction="http://tempuri.org/IOperationsService/DeleteSignatureResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteSignatureBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
void DeleteSignature(long signatureOid, long serviceRecordOid);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
|
||||
"iceRecord", ReplyAction="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
|
||||
"iceRecordResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/CheckForConfirmationReceiptSignatureForServ" +
|
||||
"iceRecordBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType);
|
||||
|
||||
[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" +
|
||||
@@ -6968,6 +6992,16 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetDiagiosisStringsForICD10Codes(icd10Codes);
|
||||
}
|
||||
|
||||
public void DeleteSignature(long signatureOid, long serviceRecordOid)
|
||||
{
|
||||
base.Channel.DeleteSignature(signatureOid, serviceRecordOid);
|
||||
}
|
||||
|
||||
public bool CheckForConfirmationReceiptSignatureForServiceRecord(long serviceRecordOid, BS.Shared.SignatureType signatureType)
|
||||
{
|
||||
return base.Channel.CheckForConfirmationReceiptSignatureForServiceRecord(serviceRecordOid, signatureType);
|
||||
}
|
||||
|
||||
public System.Collections.Generic.List<BS.Shared.DataContracts.VertretungsListeMitarbeiterItemsDC> VertretungsMitarbeiterListeWoechentlich(System.DateTime start, System.DateTime ende)
|
||||
{
|
||||
return base.Channel.VertretungsMitarbeiterListeWoechentlich(start, ende);
|
||||
@@ -8993,6 +9027,10 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IReportService/CreateKalenderReportWithAbsenceTimesBeWoFaultFa" +
|
||||
"ult", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.IO.MemoryStream CreateKalenderReportWithAbsenceTimes(System.Collections.Generic.List<long> appointmentOids, System.Nullable<long> employeeOid, System.Collections.Generic.List<BS.Shared.DataContracts.SchedulerAppointmentDC> serientermine, System.Collections.Generic.List<System.DateTime> selectedDates, System.Collections.Generic.List<BS.Shared.DataContracts.SchedulerAppointmentDC> mehrtaegigeTermine, System.Collections.Generic.List<long> absenceTimeOids);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IReportService/CreateInvoiceListReport", ReplyAction="http://tempuri.org/IReportService/CreateInvoiceListReportResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IReportService/CreateInvoiceListReportBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
System.IO.MemoryStream CreateInvoiceListReport(System.Collections.Generic.List<long> invoiceBaseOids);
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -9108,6 +9146,11 @@ namespace BeWo.ServiceProxy
|
||||
{
|
||||
return base.Channel.CreateKalenderReportWithAbsenceTimes(appointmentOids, employeeOid, serientermine, selectedDates, mehrtaegigeTermine, absenceTimeOids);
|
||||
}
|
||||
|
||||
public System.IO.MemoryStream CreateInvoiceListReport(System.Collections.Generic.List<long> invoiceBaseOids)
|
||||
{
|
||||
return base.Channel.CreateInvoiceListReport(invoiceBaseOids);
|
||||
}
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Label x:Name="SearchFieldLabel" Grid.Column="0" Content="Suche" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||
<TextBox x:Name="cbtv_search" Grid.Column="1" Margin="3" Height="23" Template="{StaticResource SearchTextBoxTemplate}" HorizontalAlignment="Stretch" />
|
||||
<TextBox x:Name="cbtv_search" Grid.Column="1" Margin="3" Height="23" Template="{StaticResource SearchTextBoxTemplate}" HorizontalAlignment="Stretch" TextChanged="cbtv_search_TextChanged" />
|
||||
</Grid>
|
||||
<TreeView x:Name="Tree1" Margin="0" Grid.Row="1"
|
||||
ItemTemplate="{DynamicResource treeitemtemplate}"
|
||||
@@ -39,14 +39,14 @@
|
||||
BorderThickness="0" Background="White"
|
||||
Loaded="Tree1_OnLoaded"
|
||||
dx:ThemeManager.ThemeName="None">
|
||||
<TreeView.ItemsSource>
|
||||
<!--<TreeView.ItemsSource>
|
||||
<MultiBinding Converter="{StaticResource FilterDCConverter}">
|
||||
<MultiBinding.Bindings>
|
||||
<Binding Path="TreeViewSourceList" />
|
||||
<Binding ElementName="cbtv_search" Path="Text" />
|
||||
</MultiBinding.Bindings>
|
||||
</MultiBinding>
|
||||
</TreeView.ItemsSource>
|
||||
</TreeView.ItemsSource>-->
|
||||
<TreeView.Resources>
|
||||
<Style x:Key="servicecat_treeitemstyle" TargetType="{x:Type TreeViewItem}">
|
||||
<Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" />
|
||||
|
||||
@@ -48,6 +48,7 @@ namespace BeWo.View.Controls
|
||||
{
|
||||
SetValue(ListProperty, value);
|
||||
ShowCheckedValues();
|
||||
Tree1.ItemsSource = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -360,5 +361,125 @@ namespace BeWo.View.Controls
|
||||
}
|
||||
RatingPopup.IsOpen = false;
|
||||
}
|
||||
|
||||
private void cbtv_search_TextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
FilterTreeItems();
|
||||
}
|
||||
|
||||
private void FilterTreeItems()
|
||||
{
|
||||
String searchtext = cbtv_search.Text;
|
||||
|
||||
foreach (var goal in Tree1.Items)
|
||||
{
|
||||
SetTreeItemVisibility(Tree1.ItemContainerGenerator, goal as SupportConceptGoalDC, searchtext);
|
||||
|
||||
|
||||
//if (ig.Status != GeneratorStatus.ContainersGenerated)
|
||||
//{
|
||||
// return;
|
||||
//}
|
||||
|
||||
//var n = ig.ContainerFromIndex(this.treeview_individualServiceAccountings.Items.Count - 1) as TreeViewItem;
|
||||
//if (n != null)
|
||||
//{
|
||||
// n.IsSelected = true;
|
||||
|
||||
// new DispatcherTimer(
|
||||
// TimeSpan.FromMilliseconds(200),
|
||||
// DispatcherPriority.Background,
|
||||
// (s1, e1) =>
|
||||
// {
|
||||
// ServiceCategoryTreeItem item = ig.ItemFromContainer(n) as ServiceCategoryTreeItem;
|
||||
// this.EditItem(this.treeview_individualServiceAccountings, null, item);
|
||||
// ((DispatcherTimer)s1).Stop();
|
||||
// },
|
||||
// this.Dispatcher).Start();
|
||||
//}
|
||||
//this.treeview_individualServiceAccountings.ItemContainerGenerator.StatusChanged -= this.ItemContainerGenerator_StatusChanged;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetTreeItemVisibility(ItemContainerGenerator ig, SupportConceptGoalDC goal, string searchtext)
|
||||
{
|
||||
|
||||
var item = ig.ContainerFromItem(goal) as TreeViewItem;
|
||||
|
||||
if (item == null)
|
||||
{
|
||||
Tree1.UpdateLayout();
|
||||
item = ig.ContainerFromItem(goal) as TreeViewItem;
|
||||
}
|
||||
|
||||
if (item == null)
|
||||
return;
|
||||
|
||||
if (goal.Children == null || goal.Children.Count == 0)
|
||||
{
|
||||
if (IsTreeItemVisible(goal, searchtext))
|
||||
{
|
||||
item.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var child in goal.Children)
|
||||
{
|
||||
SetTreeItemVisibility(item.ItemContainerGenerator, child, searchtext);
|
||||
}
|
||||
|
||||
|
||||
if (IsAtLeastOneChildVisible(goal.Children, searchtext))
|
||||
{
|
||||
item.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsTreeItemVisible(goal, searchtext))
|
||||
{
|
||||
item.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private bool IsTreeItemVisible(SupportConceptGoalDC goal, string searchtext)
|
||||
{
|
||||
|
||||
if (!String.IsNullOrEmpty(searchtext) && (String.IsNullOrEmpty(goal.DetailDescription) || !goal.DetailDescription.ToLower().Contains(searchtext.ToLower())))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool IsAtLeastOneChildVisible(List<SupportConceptGoalDC> children, string searchtext)
|
||||
{
|
||||
|
||||
foreach (var child in children)
|
||||
{
|
||||
bool visible = IsTreeItemVisible(child, searchtext) || IsAtLeastOneChildVisible(child.Children, searchtext);
|
||||
if (visible)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<localView:YearMonthFilter Margin="3 0 0 3" VerticalAlignment="Bottom" HorizontalAlignment="Left" Grid.Column="0" x:Name="yearMonthFilter" FilterSpanChanged="YearMonthFilter_FilterSpanChanged" />
|
||||
@@ -25,8 +26,8 @@
|
||||
|
||||
<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=" ">
|
||||
<dxg:GridColumn x:Name="ColumnChecked" FieldName="IsChecked" Header=" " MinWidth="30"></dxg:GridColumn>
|
||||
<dxg:GridColumn x:Name="ColumnButtons" AllowEditing="False" MinWidth="90" FieldName="ReportLink" Header=" ">
|
||||
<dxg:GridColumn.DisplayTemplate>
|
||||
<ControlTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
@@ -96,7 +97,19 @@
|
||||
|
||||
|
||||
</Grid>
|
||||
</Grid>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal">
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_checkAllLeistungen" Click="button_checkAll_Click"
|
||||
HorizontalAlignment="Left">Alle auswählen</Button>
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_uncheckAllLeistungen" Click="button_uncheckAll_Click"
|
||||
HorizontalAlignment="Left">Alle abwählen</Button>
|
||||
<Button Margin="10 3 0 0"
|
||||
Name="button_aufklappenAllLeistungen" Click="button_printInvoices_Click"
|
||||
HorizontalAlignment="Left">Alle ausgewählten Rechnungen drucken</Button>
|
||||
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -371,6 +371,77 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
//var data = srGridControl.rowhan
|
||||
}
|
||||
|
||||
private void button_checkAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var visible = GetVisibleVMs();
|
||||
foreach (var item in visible)
|
||||
{
|
||||
item.IsChecked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void button_uncheckAll_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var visible = GetVisibleVMs();
|
||||
foreach (var item in visible)
|
||||
{
|
||||
item.IsChecked = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void button_printInvoices_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
|
||||
var items = datagrid_invoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null && vm.IsChecked)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PrintInvoices(list);
|
||||
}
|
||||
|
||||
private void PrintInvoices(List<InvoiceBaseVM> list)
|
||||
{
|
||||
var oidList = list.Select(i => i.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceListReport(oidList), ms => BeWoApp.MainControl.Dispatch(() => BeWoUtils.ShowReportWindow(ms, "Rechnungen")));
|
||||
|
||||
}
|
||||
|
||||
private IList<InvoiceBaseVM> GetVisibleVMs()
|
||||
{
|
||||
var list = new List<InvoiceBaseVM>();
|
||||
|
||||
var items = datagrid_invoices.ItemsSource as IList<InvoiceBaseVM>;
|
||||
|
||||
if (items != null)
|
||||
{
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
if (datagrid_invoices.IsRowVisible(i))
|
||||
{
|
||||
var vm = datagrid_invoices.GetRow(i) as InvoiceBaseVM;
|
||||
if (vm != null)
|
||||
{
|
||||
list.Add(vm);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -185,7 +185,9 @@
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn AllowEditing="False" FieldName="Employee.SimpleDescription" Header="{markup:Translate Betreuer(in)}" Width="150" SortOrder="Ascending"/>
|
||||
<dxg:GridColumn x:Name="gridcolumn_employeerole" FieldName="Role" Header="Rolle" Width="200" />
|
||||
<dxg:GridColumn FieldName="Notice" Header="Erläuterung" Width="250" />
|
||||
<dxg:GridColumn FieldName="StartDate" Header="{markup:Translate Startdatum}" Width="200" />
|
||||
<dxg:GridColumn FieldName="EndDate" Header="{markup:Translate Enddatum}" Width="200" />
|
||||
<dxg:GridColumn FieldName="Notice" Header="Erläuterung" Width="250" />
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" RowDoubleClick="TableView_OnRowDoubleClick" />
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<RowDefinition Height="23" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Text="Details" Margin="0 1" Grid.Row="1" Name="Details" VerticalAlignment="Bottom" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" />
|
||||
|
||||
<Grid Margin="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.Column="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
@@ -163,7 +163,8 @@
|
||||
</Border>
|
||||
</controls:PopupNonTopmost>
|
||||
</Grid>
|
||||
</Grid>
|
||||
<TextBlock Text="{Binding Path=DetailText}" Margin="0 1" Grid.Row="1" Name="Details" VerticalAlignment="Bottom" TextElement.FontSize="16" TextElement.Foreground="{StaticResource TabItemHotTextBrush}" TextElement.FontFamily="Microsoft Sans Serif" />
|
||||
</Grid>
|
||||
</GroupBox.Header>
|
||||
<dxg:GridControl Name="grid_Arbeitszeiten" Tag="{Binding}" ItemsSource="{Binding Path=ArbeitszeitEintraege.VMList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" CustomColumnSort="GridControl_OnCustomColumnSort">
|
||||
<dxg:GridControl.Columns>
|
||||
|
||||
@@ -10,6 +10,7 @@ using BS.Shared.Extensions;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using DevExpress.Xpf.Grid;
|
||||
using System;
|
||||
|
||||
namespace BeWo.View
|
||||
{
|
||||
@@ -60,8 +61,11 @@ namespace BeWo.View
|
||||
{
|
||||
tabcontrol_Arbeitszeit.SelectedIndex = tabcontrol_Arbeitszeit.Items.Count - 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void ButtonOpenAndAddArbeitszeitClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ViewModel.AddNewVMToList();
|
||||
|
||||
@@ -36,7 +36,15 @@ namespace BeWo.ViewModel
|
||||
{
|
||||
}
|
||||
|
||||
public override bool IsDirty => base.IsDirty || ArbeitszeitEintraege != null && ArbeitszeitEintraege.IsDirty;
|
||||
public override bool IsDirty
|
||||
{
|
||||
get
|
||||
{
|
||||
FirePropertyChanged(nameof(DetailText)); // Hack um die Aktualisierung des Textes zu erzwingen
|
||||
return base.IsDirty || ArbeitszeitEintraege != null && ArbeitszeitEintraege.IsDirty;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public CompactCustomerDC Customer
|
||||
{
|
||||
@@ -134,6 +142,30 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public String DetailText
|
||||
{
|
||||
get
|
||||
{
|
||||
decimal stunden = 0;
|
||||
foreach (var ae in ArbeitszeitEintraege.VMList)
|
||||
{
|
||||
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, ae.UhrzeitVon);
|
||||
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, ae.UhrzeitBis);
|
||||
|
||||
DateTime date1;
|
||||
DateTime date2;
|
||||
|
||||
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
|
||||
{
|
||||
|
||||
stunden += (decimal)date2.Subtract(date1).TotalHours;
|
||||
}
|
||||
}
|
||||
|
||||
return String.Format("Gesamtstunden: {0:0.00}", stunden);
|
||||
}
|
||||
}
|
||||
|
||||
public ArbeitszeitEintragListVM ArbeitszeitEintraege
|
||||
{
|
||||
get => _ArbeitszeitEintraege;
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
using System;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
{
|
||||
@@ -22,6 +23,10 @@ namespace BeWo.ViewModel
|
||||
|
||||
public static string PropertyName_Chatpartner = "Chatpartner";
|
||||
|
||||
public static string PropertyName_StartDate = "StartDate";
|
||||
|
||||
public static string PropertyName_EndDate = "EndDate";
|
||||
|
||||
private CompactCustomerDC _Customer;
|
||||
|
||||
private CompactEmployeeDC _Employee;
|
||||
@@ -32,6 +37,10 @@ namespace BeWo.ViewModel
|
||||
|
||||
private bool _Chatpartner;
|
||||
|
||||
private DateTime? _StartDate;
|
||||
|
||||
private DateTime? _EndDate;
|
||||
|
||||
public CustomerEmployeeRelationVM(CustomerEmployeeRelationDC pDC) : base(pDC, pDC.Employee2CustomerOid == null)
|
||||
{
|
||||
}
|
||||
@@ -113,6 +122,34 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime? StartDate
|
||||
{
|
||||
get { return _StartDate; }
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._StartDate, value))
|
||||
{
|
||||
_StartDate = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.StartDate, value), PropertyName_StartDate);
|
||||
this.FirePropertyChanged(PropertyName_StartDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime? EndDate
|
||||
{
|
||||
get { return _EndDate; }
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._EndDate, value))
|
||||
{
|
||||
_EndDate = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.EndDate, value), PropertyName_EndDate);
|
||||
this.FirePropertyChanged(PropertyName_EndDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public ValueListEntryDC Role
|
||||
{
|
||||
@@ -138,6 +175,8 @@ namespace BeWo.ViewModel
|
||||
this._Role = pDataContract.RelationRole;
|
||||
this._Notice = pDataContract.Notice;
|
||||
_Chatpartner = pDataContract.Chatpartner;
|
||||
_StartDate = pDataContract.StartDate;
|
||||
_EndDate = pDataContract.EndDate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,6 +187,8 @@ namespace BeWo.ViewModel
|
||||
pDataContract.RelationRole = this._Role;
|
||||
pDataContract.Notice = this._Notice;
|
||||
pDataContract.Chatpartner = _Chatpartner;
|
||||
pDataContract.StartDate = _StartDate;
|
||||
pDataContract.EndDate = _EndDate;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@ namespace BeWo.ViewModel
|
||||
private string _InvoiceTitle = string.Empty;
|
||||
internal bool _IsPaid;
|
||||
|
||||
internal bool _IsChecked;
|
||||
|
||||
private string _Notice = string.Empty;
|
||||
|
||||
private long? _RecipientCostBearerOid;
|
||||
@@ -185,6 +187,20 @@ namespace BeWo.ViewModel
|
||||
|
||||
#region Properties
|
||||
|
||||
public bool IsChecked
|
||||
{
|
||||
get { return _IsChecked; }
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_IsChecked, value))
|
||||
{
|
||||
_IsChecked = value;
|
||||
FirePropertyChanged("IsChecked");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime? AccountingPeriodEnd
|
||||
{
|
||||
|
||||
@@ -1702,12 +1702,9 @@ namespace BeWo.ViewModel.ListViewModel
|
||||
if (BeWoApp.AppSettings.FilterGroupServiceCategories)
|
||||
{
|
||||
var serviceAccountings = ErstelleServiceCategorySchnittmenge(allInfos);
|
||||
PrototypeVM.UpdateServiceAccountings(serviceAccountings, _Category2Services, false);
|
||||
PrototypeVM.UpdateServiceAccountings(serviceAccountings, _Category2Services, true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1759,11 +1756,15 @@ namespace BeWo.ViewModel.ListViewModel
|
||||
{
|
||||
if (info.ServiceAccountings != null && info.ServiceAccountings.Count == 0 && _Category2Services != null)
|
||||
{
|
||||
foreach (var descList in _Category2Services.Values)
|
||||
foreach (var cat in _Category2Services.Keys)
|
||||
{
|
||||
foreach (var desc in descList)
|
||||
if (cat.OhneHilfeplan.HasValue && cat.OhneHilfeplan.Value != AccountingvisibilityType.NichtKlientenbezogen)
|
||||
{
|
||||
info.ServiceAccountings.Add(new ServiceAccountingDC { ServiceDescription = desc });
|
||||
var descList = _Category2Services[cat];
|
||||
foreach (var desc in descList)
|
||||
{
|
||||
info.ServiceAccountings.Add(new ServiceAccountingDC { ServiceDescription = desc });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<IISExpressWindowsAuthentication />
|
||||
<IISExpressUseClassicPipelineMode />
|
||||
<UseGlobalApplicationHostFile />
|
||||
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
|
||||
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
|
||||
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using BS.Shared;
|
||||
|
||||
@@ -144,5 +145,9 @@ namespace BeWo.Data.Entities
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual DateTime? StartDate { get; set; }
|
||||
|
||||
public virtual DateTime? EndDate { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -414,6 +414,8 @@ namespace BeWo.Data.Entities
|
||||
|
||||
public virtual bool IsMedicationAllowed { get; set; }
|
||||
|
||||
public virtual string LastModules { get; set; }
|
||||
|
||||
public virtual string Apikey
|
||||
{
|
||||
get
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
<property column="EmployeeOid" type="Int64" name="EmployeeOid" update="false" insert="false" />
|
||||
<property column="CustomerOid" type="Int64" name="CustomerOid" update="false" insert="false" />
|
||||
<property column="Chatpartner" name="Chatpartner" />
|
||||
<property name="StartDate" />
|
||||
<property name="EndDate" />
|
||||
|
||||
<many-to-one name="Employee" column="EmployeeOid" class="BeWo.Data.Entities.Employee,BeWo.Data" cascade="none" />
|
||||
<many-to-one name="Customer" column="CustomerOid" class="BeWo.Data.Entities.Customer,BeWo.Data" cascade="none" />
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
|
||||
<property name="IsSchedulerAllowed" />
|
||||
<property name="IsMedicationAllowed" />
|
||||
<property column="ApiKey" type="String" name="Apikey" length="256" />
|
||||
<property name="LastModules" />
|
||||
|
||||
<property column="ApiKey" type="String" name="Apikey" length="256" />
|
||||
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
@@ -953,3 +953,9 @@ ADD COLUMN `LicenseType` VARCHAR(128) NULL DEFAULT NULL;
|
||||
|
||||
ALTER TABLE `invoicebase`
|
||||
ADD COLUMN `StornoInvoiceBaseOid` BIGINT NULL DEFAULT NULL;
|
||||
|
||||
ALTER TABLE `Employee2Customer` ADD COLUMN `StartDate` datetime NULL;
|
||||
|
||||
ALTER TABLE `Employee2Customer` ADD COLUMN `EndDate` datetime NULL;
|
||||
|
||||
ALTER TABLE `Mandator` ADD COLUMN `LastModules` MEDIUMTEXT NULL;
|
||||
@@ -802,7 +802,7 @@ namespace BeWo.Report.ReportObjects
|
||||
return null;
|
||||
}
|
||||
|
||||
private bool HatArbeitszeitImZeitraum(IList<Arbeitszeit> arbeitszeiten, DateTime start, DateTime ende)
|
||||
protected bool HatArbeitszeitImZeitraum(IList<Arbeitszeit> arbeitszeiten, DateTime start, DateTime ende)
|
||||
{
|
||||
if (arbeitszeiten != null)
|
||||
{
|
||||
@@ -842,7 +842,7 @@ namespace BeWo.Report.ReportObjects
|
||||
return soll;
|
||||
}
|
||||
|
||||
private decimal GetArbeitszeitStundenFuerTag(Arbeitszeit az, DateTime tag)
|
||||
protected decimal GetArbeitszeitStundenFuerTag(Arbeitszeit az, DateTime tag)
|
||||
{
|
||||
var day = tag.DayOfWeek;
|
||||
decimal stunden = 0;
|
||||
|
||||
@@ -14,6 +14,8 @@ namespace AkggMid
|
||||
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
|
||||
{
|
||||
private CustomVacationService customVacationService = new CustomVacationService();
|
||||
bool istSchulassi = false;
|
||||
bool angemeldeterUserDarfAllesSehen = true; // Schulassistenzen dürfen den Stand Ende August nicht sehen
|
||||
|
||||
public override List<DateTime> GetFeiertage(int year)
|
||||
{
|
||||
@@ -25,20 +27,51 @@ namespace AkggMid
|
||||
|
||||
public bool BerechneFerienTage { get; set; }
|
||||
|
||||
protected override void StarteBerechnung(DateTime berichtsAnfang, DateTime berichtsEnde, MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
|
||||
public override void CreateEmployeeDetails(MitarbeiterstundenkontoRO ro)
|
||||
{
|
||||
base.CreateEmployeeDetails(ro);
|
||||
foreach (var ep in ro.EmployeeDetailList)
|
||||
{
|
||||
if (istSchulassi && ro.ReportStartDate < new DateTime(2023, 9, 1))
|
||||
{
|
||||
ep.StundenSollMax = 0;
|
||||
ep.StundenSollOhneUrlaubKrankheit = 0;
|
||||
ep.UrlaubUndKrankheit = 0;
|
||||
ep.FlsSoll = 0;
|
||||
ep.FlsIst = 0;
|
||||
ep.FlsDiff = 0;
|
||||
ep.StundenGesamtIst = 0;
|
||||
ep.RelationFlsZuMittelbar = 0;
|
||||
ep.Ueberstunden = 0;
|
||||
ep.UeberstundenVormonat = 0;
|
||||
ep.UeberstundenGesamt = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected override void StarteBerechnung(DateTime berichtsAnfang, DateTime berichtsEnde, MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
|
||||
{
|
||||
BerechneFerienTage = false;
|
||||
istSchulassi = false;
|
||||
|
||||
var c = empDetail.Employee.GetValidContractForDate(berichtsAnfang);
|
||||
if (c != null && c.EmploymentType != null && berichtsAnfang < new DateTime(2023, 9, 4))
|
||||
{
|
||||
//if (c != null && c.EmploymentType != null && berichtsAnfang < new DateTime(2023, 9, 4))
|
||||
if (c != null && c.EmploymentType != null)
|
||||
{
|
||||
//if (c.EmploymentType.Name.Contains("Verwaltung") || c.EmploymentType.Name.Contains("Teamleitung"))
|
||||
// {
|
||||
// BerechneFerienTage = false;
|
||||
// }
|
||||
if (c.EmploymentType.Name == "Schulassistenz")
|
||||
{
|
||||
istSchulassi = true;
|
||||
BerechneFerienTage = true;
|
||||
|
||||
if (BeWo.Data.Security.UserRightHelper.LoggedInUserHasRight(BS.Shared.UserRightType.Mitarbeiterstundenkonto_ViewAll))
|
||||
{
|
||||
istSchulassi = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -88,5 +121,44 @@ namespace AkggMid
|
||||
|
||||
return dd;
|
||||
}
|
||||
|
||||
public override MitarbeiterstundenkontoRO.EmployeeDetail BerechneUeberstundenBis(MitarbeiterstundenkontoRO.EmployeeDetail edOrig, IList<ServiceRecord> records, DateTime monat, out decimal? ueberstunden, out decimal alteExtraUeberstunden)
|
||||
{
|
||||
|
||||
DateTime stichTag = new DateTime(2023, 9, 1);
|
||||
|
||||
// if (monat.Year > 2022)
|
||||
// {
|
||||
// stichTag = new DateTime(2023, 1, 1);
|
||||
// }
|
||||
|
||||
// if (monat.Year == 2020)
|
||||
// {
|
||||
// stichTag = new DateTime(2020, 1, 1);
|
||||
// }
|
||||
|
||||
if (monat >= stichTag)
|
||||
{
|
||||
decimal? ueberstundenBisStichtag = 0;
|
||||
decimal ueberstundenExtraBisStichtag = 0;
|
||||
|
||||
base.BerechneUeberstundenBis(edOrig, records, stichTag, out ueberstundenBisStichtag, out ueberstundenExtraBisStichtag);
|
||||
|
||||
var ed = base.BerechneUeberstundenBis(edOrig, records, monat, out ueberstunden, out alteExtraUeberstunden);
|
||||
|
||||
ueberstunden -= (ueberstundenBisStichtag ?? 0);
|
||||
alteExtraUeberstunden -= ueberstundenExtraBisStichtag;
|
||||
|
||||
return ed;
|
||||
}
|
||||
return base.BerechneUeberstundenBis(edOrig, records, monat, out ueberstunden, out alteExtraUeberstunden);
|
||||
// var ed = base.BerechneUeberstundenBis(edOrig, records, monat, out ueberstunden, out alteExtraUeberstunden);
|
||||
//if (istSchulassi && monat < stichTag)
|
||||
// {
|
||||
// ueberstunden = 0;
|
||||
// alteExtraUeberstunden = 0;
|
||||
// }
|
||||
//return ed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -70,6 +70,12 @@
|
||||
<DependentUpon>CustomerDataReport.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Quittierungsbeleg.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Quittierungsbeleg.Designer.cs">
|
||||
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="UI\" />
|
||||
@@ -98,6 +104,9 @@
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Quittierungsbeleg.resx">
|
||||
<DependentUpon>Quittierungsbeleg.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
|
||||
1375
ReportImp/Fortis/Quittierungsbeleg.Designer.cs
generated
Normal file
1375
ReportImp/Fortis/Quittierungsbeleg.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
70
ReportImp/Fortis/Quittierungsbeleg.cs
Normal file
70
ReportImp/Fortis/Quittierungsbeleg.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Report;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using DevExpress.XtraReports.UI;
|
||||
|
||||
namespace Fortis
|
||||
{
|
||||
public partial class Quittierungsbeleg : XtraReport, IBeWoReport<ServicesOverviewRO>
|
||||
{
|
||||
private Dictionary<string, Dictionary<String, bool>> key2TagesDict = new Dictionary<string, Dictionary<String, bool>>();
|
||||
|
||||
public Quittierungsbeleg()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetReportDataSource(ServicesOverviewRO pRO)
|
||||
{
|
||||
if (pRO.Services != null)
|
||||
{
|
||||
//H Hausbesuch = Notice
|
||||
//B Begleitung im Sozialraum = Notice2
|
||||
//T Kontakt per Telefon etc. = Notice3
|
||||
//GD Kontakt mit Leistungsberechtigten in der Dienststelle = Notice4
|
||||
//KL Kompensatorische Leistung ohne LB = Notice5
|
||||
//AK Assistenz im Krankenhaus = ServiceCategory
|
||||
//MA Anzahl Mitarbeitende = ServiceCategoryAbbr
|
||||
//GI Gemeinsame Inanspruchnahme = GefahreneKilometer
|
||||
|
||||
//Größe = StartDateString
|
||||
//Summe1 = TimeRangeString
|
||||
//Beginn = EmployeeFirstName
|
||||
//Ende = EmployeeFullname
|
||||
//Summe2 = EmployeeLastname
|
||||
|
||||
foreach (var sr in pRO.Services)
|
||||
{
|
||||
sr.Notice = String.Format("{0:0}", sr.Minutes);
|
||||
sr.Notice2 = "";
|
||||
sr.Notice3 = "";
|
||||
sr.Notice4 = "";
|
||||
sr.Notice5 = "";
|
||||
sr.ServiceCategory = "";
|
||||
sr.ServiceCategoryAbbr = "";
|
||||
sr.GefahreneKilometer = "";
|
||||
sr.StartDateString = "";
|
||||
sr.TimeRangeString = "";
|
||||
sr.EmployeeFirstName = "";
|
||||
sr.EmployeeFullname = "";
|
||||
sr.EmployeeLastName = "";
|
||||
|
||||
if (sr.ServiceDescription == "Hausbesuch")
|
||||
|
||||
{
|
||||
sr.Notice = String.Format("{0:0}", sr.Minutes);
|
||||
}
|
||||
|
||||
sr.ServiceDescription = "";
|
||||
}
|
||||
}
|
||||
bindingSource1.DataSource = pRO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
123
ReportImp/Fortis/Quittierungsbeleg.resx
Normal file
123
ReportImp/Fortis/Quittierungsbeleg.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>21, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -589,8 +589,8 @@ namespace LebenshilfeFrankfurtOder
|
||||
else
|
||||
{
|
||||
#if DEBUG
|
||||
//reallyNewInvoices = invoices;
|
||||
reallyNewInvoices = GetNewInvoices(invoices, start, start.AddMonths(1).AddTicks(-1));
|
||||
reallyNewInvoices = invoices;
|
||||
//reallyNewInvoices = GetNewInvoices(invoices, start, start.AddMonths(1).AddTicks(-1));
|
||||
#else
|
||||
reallyNewInvoices = GetNewInvoices(invoices, start, start.AddMonths(1).AddTicks(-1));
|
||||
#endif
|
||||
|
||||
@@ -44,7 +44,15 @@ namespace LebenshilfeFrankfurtOder.Invoicing
|
||||
var invoiceCounter = 0;
|
||||
|
||||
//var sortedScs = supportConcepts2ServiceRecords.Keys.OrderBy(s => !String.IsNullOrEmpty(s.Customer.DebitorNumber) ? s.Customer.DebitorNumber : "zzzzz").ToList();
|
||||
var sortedScs = supportConcepts2ServiceRecords.Keys.OrderBy(s => s.Customer.LastNameFirstName).ToList();
|
||||
var sortedScs = supportConcepts2ServiceRecords.Keys.OrderBy(s =>
|
||||
{
|
||||
String name = s.Customer.LastNameFirstName;
|
||||
if (s.CostBearerList.Count > 0)
|
||||
{
|
||||
name = String.Format("{0} {1}", s.CostBearerList[0].OrganisationName, name);
|
||||
}
|
||||
return name;
|
||||
}).ToList();
|
||||
|
||||
|
||||
foreach (var sc in sortedScs)
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Report.ReportObjects;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
namespace SHKServiceSBD
|
||||
{
|
||||
@@ -11,11 +12,17 @@ namespace SHKServiceSBD
|
||||
{
|
||||
|
||||
protected override void StarteBerechnung(DateTime berichtsAnfang, DateTime berichtsEnde, MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
|
||||
{
|
||||
SetzeBundesland(empDetail);
|
||||
BerechneKindGesamtSollZeit(empDetail, berichtsAnfang, berichtsEnde);
|
||||
|
||||
BerechneSollZeiten(empDetail, berichtsAnfang, berichtsEnde);
|
||||
}
|
||||
|
||||
private void SetzeBundesland(MitarbeiterstundenkontoRO.EmployeeDetail empDetail)
|
||||
{
|
||||
string bundesland = "hessen";
|
||||
|
||||
decimal bewilligteStunden = 0;
|
||||
|
||||
|
||||
//Ermittle Bundesland und geplante Sollzeit anhand der Schule des betreuten Kindes;
|
||||
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
|
||||
{
|
||||
@@ -39,14 +46,83 @@ namespace SHKServiceSBD
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
this.vacationService.Bundesland = bundesland;
|
||||
}
|
||||
|
||||
private void BerechneSollZeiten(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime berichtsAnfang, DateTime berichtsEnde)
|
||||
{
|
||||
//Ermittle hier folgendes und speicher es in Custom2:
|
||||
|
||||
//Abesenheit "MA krank in der Schulzeit":
|
||||
//Wenn ein Kind zugeordnet ist, dann wird die Zeit von dem entsprechenden Tag aus der Betreuungszeit genommen und bei Krank eingetragen
|
||||
//Wenn ein die Ma der Martinschule zugeordnet sind, dann wird die Zeit genommen, die in der Organisation Martinschule hinterlegt ist und bei Krank eingetragen
|
||||
//Wenn kein Kind zugeordnet ist, dann Vertragliche Arbeitszeit, und bei Krank eingetragen
|
||||
|
||||
//Prüfe Team Martinsschule
|
||||
|
||||
|
||||
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
|
||||
{
|
||||
var kind = e2c.Customer;
|
||||
|
||||
BerechneKindSollZeit(empDetail, kind, berichtsAnfang, berichtsEnde);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void BerechneKindGesamtSollZeit(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, DateTime berichtsAnfang, DateTime berichtsEnde)
|
||||
{
|
||||
|
||||
foreach (var e2c in empDetail.Employee.Employee2CustomerList)
|
||||
{
|
||||
var kind = e2c.Customer;
|
||||
|
||||
BerechneKindSollZeit(empDetail, kind, berichtsAnfang, berichtsEnde);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void BerechneKindSollZeit(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, Customer kind, DateTime start, DateTime ende)
|
||||
{
|
||||
decimal soll = 0;
|
||||
if (kind.Arbeitszeiten != null && kind.Arbeitszeiten.Count > 0)
|
||||
{
|
||||
|
||||
foreach (var az in kind.Arbeitszeiten)
|
||||
{
|
||||
if ((!az.GueltigVon.HasValue || az.GueltigVon.Value <= ende) &&
|
||||
(!az.GueltigBis.HasValue || az.GueltigBis.Value >= start))
|
||||
{
|
||||
foreach (var ae in az.ArbeitszeitEintraege)
|
||||
{
|
||||
if (ae.Employee == null || ae.Employee.Oid == empDetail.Employee.Oid)
|
||||
{
|
||||
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, ae.UhrzeitVon);
|
||||
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", DateTime.Now, ae.UhrzeitBis);
|
||||
|
||||
DateTime date1;
|
||||
DateTime date2;
|
||||
|
||||
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
|
||||
{
|
||||
|
||||
soll += (decimal)date2.Subtract(date1).TotalHours;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
empDetail.Custom1 += soll;
|
||||
}
|
||||
|
||||
|
||||
public virtual bool IstSchule(String name)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(name))
|
||||
@@ -186,7 +262,7 @@ namespace SHKServiceSBD
|
||||
{
|
||||
if (IstAnrechenbareAbsenceTime(at))
|
||||
{
|
||||
dd.MinutesTotal = ed.SollProTag * 60;
|
||||
|
||||
if (IsKrankheitAbsenceTime(at))
|
||||
{
|
||||
dd.HoursSick = ed.SollProTag;
|
||||
@@ -195,6 +271,10 @@ namespace SHKServiceSBD
|
||||
{
|
||||
dd.HoursInVacation = ed.SollProTag;
|
||||
}
|
||||
else
|
||||
{
|
||||
dd.MinutesTotal = ed.SollProTag * 60;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -202,28 +282,45 @@ namespace SHKServiceSBD
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dd.Feiertag == null)
|
||||
{
|
||||
var ft = GetFerienTag(dd.Date);
|
||||
if (ft != null)
|
||||
{
|
||||
dd.Feiertag = new FeiertagDC();
|
||||
dd.Feiertag.Datum = dd.Date;
|
||||
dd.Feiertag.Name = ft.Name;
|
||||
}
|
||||
}
|
||||
|
||||
if (dd.IstFeiertag && dd.Date.DayOfWeek != DayOfWeek.Saturday && dd.Date.DayOfWeek != DayOfWeek.Sunday)
|
||||
{
|
||||
dd.MinutesTotal = ed.SollProTag * 60;
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public override bool IstAnrechenbareAbsenceTime(AbsenceTime item)
|
||||
{
|
||||
if (item.AbsenceReason.Description.ToLower().IndexOf("ohne lohnfortzahlung") >= 0)
|
||||
if ((item.AbsenceReason.Description.ToLower().IndexOf("ohne lohnfortzahlung") >= 0) || (item.AbsenceReason.Description.ToLower().IndexOf("unbezahlter urlaub") >= 0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return base.IstAnrechenbareAbsenceTime(item);
|
||||
}
|
||||
|
||||
public override bool IsKrankheitAbsenceTime(AbsenceTime absenceTime)
|
||||
public override bool IsKrankheitAbsenceTime(AbsenceTime item)
|
||||
{
|
||||
if (absenceTime.AbsenceReason.Description.ToLower().IndexOf("ohne lohnfortzahlung") >= 0)
|
||||
if ((item.AbsenceReason.Description.ToLower().IndexOf("ohne lohnfortzahlung") >= 0) || (item.AbsenceReason.Description.ToLower().IndexOf("unbezahlter urlaub") >= 0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return base.IsKrankheitAbsenceTime(absenceTime);
|
||||
return base.IsKrankheitAbsenceTime(item);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override bool SollPauseBerechnen()
|
||||
{
|
||||
return true;
|
||||
@@ -244,5 +341,20 @@ namespace SHKServiceSBD
|
||||
return dd;
|
||||
}
|
||||
|
||||
public override decimal GetFeiertagsFaktor(DateTime start)
|
||||
{
|
||||
if (GetFerienTag(start) != null)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
return base.GetFeiertagsFaktor(start);
|
||||
}
|
||||
|
||||
public FerienDC GetFerienTag(DateTime start)
|
||||
{
|
||||
return vacationService.GetFerien(start, vacationService.Bundesland);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -86,6 +86,7 @@ namespace SHKServiceSBD
|
||||
this.xrTableCell34 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.cellSumHoursSickDecimal = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.cellSumHoursInVacationDecimal = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTable1 = new DevExpress.XtraReports.UI.XRTable();
|
||||
this.xrTableRow4 = new DevExpress.XtraReports.UI.XRTableRow();
|
||||
this.xrTableCell46 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
@@ -107,7 +108,6 @@ namespace SHKServiceSBD
|
||||
this.xrTableCell57 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell58 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.xrTableCell26 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.Title = new DevExpress.XtraReports.UI.XRControlStyle();
|
||||
this.FieldCaption = new DevExpress.XtraReports.UI.XRControlStyle();
|
||||
this.PageInfo = new DevExpress.XtraReports.UI.XRControlStyle();
|
||||
@@ -126,7 +126,7 @@ namespace SHKServiceSBD
|
||||
this.fieldIstArbeitszeit = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.fieldUeberstundenGesamt = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.fieldPause = new DevExpress.XtraReports.UI.CalculatedField();
|
||||
this.xrTableCell32 = new DevExpress.XtraReports.UI.XRTableCell();
|
||||
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableDetail)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTableHeader)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.xrTable2)).BeginInit();
|
||||
@@ -530,10 +530,9 @@ namespace SHKServiceSBD
|
||||
// xrTableCell14
|
||||
//
|
||||
this.xrTableCell14.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Custom1")});
|
||||
new DevExpress.XtraReports.UI.XRBinding("Text", null, "EmployeeDetailList.Custom1", "{0:0.00}")});
|
||||
this.xrTableCell14.Name = "xrTableCell14";
|
||||
this.xrTableCell14.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell14.Text = "xrTableCell14";
|
||||
this.xrTableCell14.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell14.Weight = 0.086403766181918723D;
|
||||
//
|
||||
@@ -693,6 +692,13 @@ namespace SHKServiceSBD
|
||||
this.cellSumHoursInVacationDecimal.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.cellSumHoursInVacationDecimal.Weight = 0.067627767935509717D;
|
||||
//
|
||||
// xrTableCell32
|
||||
//
|
||||
this.xrTableCell32.Name = "xrTableCell32";
|
||||
this.xrTableCell32.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell32.Weight = 0.0676277692731897D;
|
||||
//
|
||||
// xrTable1
|
||||
//
|
||||
this.xrTable1.Borders = ((DevExpress.XtraPrinting.BorderSide)((((DevExpress.XtraPrinting.BorderSide.Left | DevExpress.XtraPrinting.BorderSide.Top)
|
||||
@@ -952,10 +958,6 @@ namespace SHKServiceSBD
|
||||
this.xrTableCell26.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell26.Weight = 0.11143081848591821D;
|
||||
//
|
||||
// bindingSource1
|
||||
//
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
|
||||
//
|
||||
// Title
|
||||
//
|
||||
this.Title.BackColor = System.Drawing.Color.White;
|
||||
@@ -1092,12 +1094,9 @@ namespace SHKServiceSBD
|
||||
this.fieldPause.FieldType = DevExpress.XtraReports.UI.FieldType.Decimal;
|
||||
this.fieldPause.Name = "fieldPause";
|
||||
//
|
||||
// xrTableCell32
|
||||
// bindingSource1
|
||||
//
|
||||
this.xrTableCell32.Name = "xrTableCell32";
|
||||
this.xrTableCell32.StylePriority.UseTextAlignment = false;
|
||||
this.xrTableCell32.TextAlignment = DevExpress.XtraPrinting.TextAlignment.MiddleRight;
|
||||
this.xrTableCell32.Weight = 0.0676277692731897D;
|
||||
this.bindingSource1.DataSource = typeof(BeWo.Report.ReportObjects.MitarbeiterstundenkontoRO);
|
||||
//
|
||||
// Mitarbeiterarbeitszeitkonto
|
||||
//
|
||||
|
||||
@@ -59,24 +59,36 @@ namespace SHKServiceSBD
|
||||
}
|
||||
klassenLeitung += org.Person.LastName;
|
||||
}
|
||||
if (!String.IsNullOrEmpty(org.Person.Communication1))
|
||||
{
|
||||
kontaktAnsprechperson = org.Person.Communication1;
|
||||
}
|
||||
else if (!String.IsNullOrEmpty(org.Organisation.Communication1))
|
||||
{
|
||||
kontaktAnsprechperson = org.Organisation.Communication1;
|
||||
}
|
||||
|
||||
//var o = DAOFactory.GenericDAO.LoadByID<Organisation>(org.Organisation.OrganisationOid);
|
||||
//sbSchule.Append(o.Notice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item in pRO.Customer.ContactInformations)
|
||||
{
|
||||
if (kontaktAnsprechperson.Length > 0)
|
||||
{
|
||||
kontaktAnsprechperson += "\n";
|
||||
}
|
||||
if (item.ContactType == BS.Shared.ContactType.business_Phone)
|
||||
{
|
||||
kontaktAnsprechperson += "Tel: " + item.ContactValue;
|
||||
}
|
||||
else if (item.ContactType == BS.Shared.ContactType.business_MobilePhone)
|
||||
{
|
||||
kontaktAnsprechperson += "Handy: " + item.ContactValue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
lblSchule.Text = sbSchule.ToString();
|
||||
lblKlassenleitung.Text = klassenLeitung;
|
||||
lblAnsprechperson.Text = kontaktAnsprechperson;
|
||||
|
||||
|
||||
|
||||
//if (!String.IsNullOrEmpty(klasse) && !klasse.Contains("Klasse"))
|
||||
//{
|
||||
// klasse = "Klasse " + klasse;
|
||||
@@ -130,7 +142,6 @@ namespace SHKServiceSBD
|
||||
}
|
||||
lblFesteKraft.Text = kraft;
|
||||
|
||||
lblAnsprechperson.Text = "";
|
||||
|
||||
String vertretungsregelung = "Vertretung nicht erforderlich";
|
||||
if (pRO.Customer.SubstitutionNeed == BS.Shared.SubstitutionNeed.SubstitutionNeeded)
|
||||
@@ -181,9 +192,34 @@ namespace SHKServiceSBD
|
||||
|
||||
SetzeToken(pRO.Customer);
|
||||
|
||||
SetzeBetreuungsarten(pRO.Customer);
|
||||
|
||||
this.bindingSource1.DataSource = pRO;
|
||||
}
|
||||
|
||||
private void SetzeBetreuungsarten(CustomerDC customer)
|
||||
{
|
||||
if (customer.CustomerCareTypes != null)
|
||||
{
|
||||
foreach (var item in customer.CustomerCareTypes)
|
||||
{
|
||||
if (item.DisplayName == "Pause")
|
||||
{
|
||||
chkPause.Checked = true;
|
||||
}
|
||||
else if (item.DisplayName == "Unterricht")
|
||||
{
|
||||
chkUnterricht.Checked = true;
|
||||
}
|
||||
else if (item.DisplayName == "Busbegleitung")
|
||||
{
|
||||
chkBus.Checked = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void SetzeToken(CustomerDC customer)
|
||||
{
|
||||
String wunsch = "";
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
<DependentUpon>SBDCharacteristicsReport.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Service\CustomCustomerService.cs" />
|
||||
<Compile Include="Service\CustomOperationService.cs" />
|
||||
<Compile Include="Service\CustomVertretungsManager.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
96
ReportImp/SHKServiceSBD/Service/CustomOperationService.cs
Normal file
96
ReportImp/SHKServiceSBD/Service/CustomOperationService.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BeWo.Data;
|
||||
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.DataContracts.Compact;
|
||||
using BS.Shared.Extensions;
|
||||
|
||||
namespace DomizielAnsbach.Service
|
||||
{
|
||||
public class CustomOperationService : OperationService
|
||||
{
|
||||
private ServiceDescription leistungSchulbegleitung;
|
||||
private ServiceDescription leistungWegezeit;
|
||||
private ServiceDescription leistungSonderzeit;
|
||||
private ServiceDescription leistungBusbegleitung;
|
||||
|
||||
protected override IList<ServiceRecord> CreateServiceRecords(Arbeitszeit arbeitszeit, DateTime datum, CostBearer2SupportConcept c2s, ServiceDescription defaultSd)
|
||||
{
|
||||
return base.CreateServiceRecords(arbeitszeit, datum, c2s, defaultSd);
|
||||
}
|
||||
public override ServiceRecord CreateServiceRecord(ArbeitszeitEintrag ae, DateTime datum, CostBearer2SupportConcept c2s, ServiceDescription defaultSd)
|
||||
{
|
||||
var leistung = GetLeistungSonderzeit();
|
||||
|
||||
if (!String.IsNullOrEmpty(ae.Notice))
|
||||
{
|
||||
//if (ae.Notice.ToLower().Contains("bus"))
|
||||
//{
|
||||
// leistung = GetLeistungBusbegleitung();
|
||||
//}
|
||||
//else
|
||||
if (ae.Notice.StartsWith("Un")) // Unterricht, es gibt leider so viele Tippfehler in der Notice z.B. Unerricht, Unttericht etc. dass ich denke ein Prüfen auf "Un" genügt
|
||||
{
|
||||
leistung = GetDefaultServiceDescription();
|
||||
}
|
||||
//else if (ae.Notice.Contains("Befö"))
|
||||
//{
|
||||
// leistung = GetLeistungWegezeit(); // Beförderung mit allen fantasievollen Schreibweisen.
|
||||
//}
|
||||
}
|
||||
var sr = base.CreateServiceRecord(ae, datum, c2s, leistung);
|
||||
|
||||
|
||||
return sr;
|
||||
}
|
||||
|
||||
|
||||
public override ServiceDescription GetDefaultServiceDescription(CostBearer2SupportConcept c2s)
|
||||
{
|
||||
return GetDefaultServiceDescription();
|
||||
}
|
||||
|
||||
public override ServiceDescription GetDefaultServiceDescription()
|
||||
{
|
||||
if (leistungSchulbegleitung == null)
|
||||
{
|
||||
leistungSchulbegleitung = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(13);
|
||||
}
|
||||
return leistungSchulbegleitung;
|
||||
}
|
||||
|
||||
private ServiceDescription GetLeistungWegezeit()
|
||||
{
|
||||
if (leistungWegezeit == null)
|
||||
{
|
||||
leistungWegezeit = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(14);
|
||||
}
|
||||
return leistungWegezeit;
|
||||
}
|
||||
|
||||
private ServiceDescription GetLeistungSonderzeit()
|
||||
{
|
||||
if (leistungSonderzeit == null)
|
||||
{
|
||||
leistungSonderzeit = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(15);
|
||||
}
|
||||
return leistungSonderzeit;
|
||||
}
|
||||
|
||||
private ServiceDescription GetLeistungBusbegleitung()
|
||||
{
|
||||
if (leistungBusbegleitung == null)
|
||||
{
|
||||
leistungBusbegleitung = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(17);
|
||||
}
|
||||
return leistungBusbegleitung;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ namespace SHKService.Service
|
||||
var vertretungenOhneBetreuung = vertretungenMartingSchuleUndOhneBetreuung.Where(v => v.EmployeeOid == null).ToList();
|
||||
|
||||
//Suche Mitarbeiter des Teams Martinschule. Prüfe ob mehr als 80 Prozent anwesend sind, sonst sollen die auch in Vertretungssuche auftauchen.
|
||||
var team = DAOFactory.GenericDAO.GetAllActive<Team>().Where(t => t.Name == "Martinschule").FirstOrDefault();
|
||||
var team = DAOFactory.GenericDAO.GetAllActive<Team>().Where(t => t.Name == "Martinsschule").FirstOrDefault();
|
||||
if (team != null)
|
||||
{
|
||||
var list = new List<CompactVertreterEmployeeDC>();
|
||||
@@ -100,7 +100,7 @@ namespace SHKService.Service
|
||||
|
||||
foreach (var t2c in c.Team2CustomerList)
|
||||
{
|
||||
if (t2c.Team.Name == "Martinschule")
|
||||
if (t2c.Team.Name == "Martinsschule")
|
||||
{
|
||||
istInMartinschule = true;
|
||||
}
|
||||
@@ -138,6 +138,14 @@ namespace SHKService.Service
|
||||
newItem.Absencetime.End = item.VertretungsZeitraumBis;
|
||||
vertretungsListe.Add(newItem);
|
||||
}
|
||||
foreach (var item in vertretungsListe)
|
||||
{
|
||||
if (item.Employee == null)
|
||||
{
|
||||
item.Employee = new CompactEmployeeDC();
|
||||
item.Employee.LastName = "Ohne Betreuung";
|
||||
}
|
||||
}
|
||||
return vertretungsListe;
|
||||
}
|
||||
|
||||
@@ -153,7 +161,7 @@ namespace SHKService.Service
|
||||
};
|
||||
|
||||
newItem.Customer = new CompactCustomerDC(); // Erstelle Dummy Customer für die Martinschule
|
||||
newItem.Customer.FirstName = "Martinschule";
|
||||
newItem.Customer.FirstName = "Martinsschule";
|
||||
newItem.DringlichkeitColor = "#FF8080";
|
||||
newItem.Dringlichkeit = "";
|
||||
|
||||
@@ -212,6 +220,12 @@ namespace SHKService.Service
|
||||
var abwesenendeEmployeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.VertretungsStatus != VertretungsStatus.KlientKrank &&
|
||||
vertretungsItem.Employee != null).Select(item => item.Employee.EmployeeOid);
|
||||
|
||||
//var employeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.Employee != null &&
|
||||
// vertretungsItem.VertretungsStatus == VertretungsStatus.KlientKrank &&
|
||||
// !ausgewaehlteVertreter.Contains(vertretungsItem.Employee.EmployeeOid)).Select(s => s.Employee.EmployeeOid);
|
||||
|
||||
|
||||
|
||||
//employeeOids = employeeOids.Where(e => !abwesenendeEmployeeOids.Contains(e));
|
||||
var team = DAOFactory.GenericDAO.GetAllActive<Team>().Where(t => t.Name == "Vertretungsplanung").FirstOrDefault();
|
||||
if (team != null)
|
||||
@@ -232,11 +246,28 @@ namespace SHKService.Service
|
||||
list.Add(dc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Füge alle Employees zu, deren Kind krank sind
|
||||
var schonVorhandeneEmps = empsInResult.Select(e => e.Oid.Value).ToList();
|
||||
|
||||
var employeeOids = vertretungsListe.Where(vertretungsItem => vertretungsItem.Employee != null &&
|
||||
vertretungsItem.VertretungsStatus == VertretungsStatus.KlientKrank && !schonVorhandeneEmps.Contains(vertretungsItem.Employee.EmployeeOid)).Select(s => s.Employee.EmployeeOid).Distinct().ToList();
|
||||
|
||||
if (employeeOids.Count > 0)
|
||||
{
|
||||
|
||||
var weitereEmps = DAOFactory.GenericDAO.LoadByIDs<Employee>(employeeOids);
|
||||
list.AddRange(MapperFactory.CompactVertreterEmployeeDC_VertreterEmployee.MapToNewDCs(weitereEmps));
|
||||
}
|
||||
|
||||
if (filter.CustomerOid.HasValue && filter.VerwendeEntfernungssuche)
|
||||
{
|
||||
GetDistanceForVertreterEmployees(filter.CustomerOid.Value, ref list, empsInResult);
|
||||
}
|
||||
return list;
|
||||
|
||||
|
||||
}
|
||||
|
||||
return base.SucheVertreter(filter);
|
||||
|
||||
@@ -78,5 +78,9 @@ namespace ReportingService.ServiceContracts
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
MemoryStream CreateKalenderReportWithAbsenceTimes(IEnumerable<long> appointmentOids, long? employeeOid, IEnumerable<SchedulerAppointmentDC> serientermine, IEnumerable<DateTime> selectedDates, IEnumerable<SchedulerAppointmentDC> mehrtaegigeTermine, List<long> absenceTimeOids);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
MemoryStream CreateInvoiceListReport(List<long> invoiceBaseOids);
|
||||
}
|
||||
}
|
||||
@@ -328,5 +328,10 @@ namespace ReportingService.ServiceImplementations
|
||||
|
||||
return report == null ? null : CreateReportStream(report);
|
||||
}
|
||||
|
||||
public MemoryStream CreateInvoiceListReport(List<long> invoiceBaseOids)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -96,7 +96,6 @@ namespace BeWo.Service.Configuration
|
||||
bool printerSettingsUsePaperKind = false;
|
||||
|
||||
|
||||
|
||||
if (mandator != null)
|
||||
{
|
||||
string val = GetSettingValue(mandator.Settings, "IsServiceRecordNoticeMandatory");
|
||||
|
||||
@@ -21,6 +21,8 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pDataContract.Employee2CustomerVersion = pEntity.Version;
|
||||
pDataContract.Notice = pEntity.Notice;
|
||||
pDataContract.Chatpartner = pEntity.Chatpartner;
|
||||
pDataContract.StartDate = pEntity.StartDate;
|
||||
pDataContract.EndDate = pEntity.EndDate;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
@@ -44,6 +46,8 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pEntity.Oid = pDataContract.Employee2CustomerOid;
|
||||
pEntity.Notice = pDataContract.Notice;
|
||||
pEntity.Chatpartner = pDataContract.Chatpartner;
|
||||
pEntity.StartDate = pDataContract.StartDate;
|
||||
pEntity.EndDate = pDataContract.EndDate;
|
||||
|
||||
return pEntity;
|
||||
}
|
||||
|
||||
@@ -34,5 +34,7 @@ namespace BeWo.Service.Invoicing
|
||||
|
||||
public decimal ApprovedTotal { get; set; }
|
||||
|
||||
public String Notice { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,12 @@ namespace BeWo.Service.Invoicing
|
||||
[IDSpecificClass(Identifier = "LWLBeWo67")]
|
||||
class LWLBeWo67SettlementInvoiceCreation : SettlementInvoiceCreation
|
||||
{
|
||||
public override bool CanCreateInvoiceTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void CreateInvoiceDetailsTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
public override void CreateInvoiceDetailsTheOldWay(Settlement2DC si, CostBearer2SupportConcept c2s)
|
||||
{
|
||||
String id = c2s.CostBearer.ID;
|
||||
|
||||
@@ -266,8 +270,6 @@ namespace BeWo.Service.Invoicing
|
||||
decimal flsTotal = 0;
|
||||
foreach (var ap in apList)
|
||||
{
|
||||
|
||||
|
||||
flsTotal += ap.ApprovedTotal;
|
||||
}
|
||||
return flsTotal;
|
||||
|
||||
@@ -38,6 +38,7 @@ namespace BeWo.Service.Invoicing
|
||||
fkAp.AmountPerUnit = ap.AmountPerUnit;
|
||||
fkAp.BillingInterval = ap.BillingInterval;
|
||||
fkAp.RateFactor = 0;
|
||||
fkAp.Notice = "Fehlkontakte";
|
||||
apListFehlkontakt.Add(fkAp);
|
||||
}
|
||||
si.ApprovedFLS = CalculateApprovedTotalFLS(apListFLS);
|
||||
@@ -255,7 +256,7 @@ namespace BeWo.Service.Invoicing
|
||||
{
|
||||
rf = approvalPeriod.RateFactor.Value;
|
||||
}
|
||||
if (rf == 0)
|
||||
if (!String.IsNullOrEmpty(approvalPeriod.Notice) && approvalPeriod.Notice == "Fehlkontakte")
|
||||
{
|
||||
hr *= 0.8m;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,10 @@ namespace BeWo.Service.Plugins
|
||||
srList = ErstelleStundenplanEintraege(span.StartDateTime.Date, span.EndDate.Date, c2s, vs);
|
||||
|
||||
DAOFactory.GenericDAO.Insert(srList);
|
||||
|
||||
if (ReturnMessage.Length > 0)
|
||||
{
|
||||
ReturnMessage += "\n";
|
||||
}
|
||||
ReturnMessage += String.Format("Es wurden {0} Einträge erstellt.", srList.Count);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -920,6 +920,18 @@ namespace BeWo.Service.ServiceImplementations
|
||||
if (fetchContractState)
|
||||
{
|
||||
string contractState = GetContractState();
|
||||
if (!String.IsNullOrEmpty(contractState) && contractState == "Fehler")
|
||||
{
|
||||
contractState = man.LastModules;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (contractState != man.LastModules)
|
||||
{
|
||||
man.LastModules = contractState;
|
||||
DAOFactory.GenericDAO.Update(man);
|
||||
}
|
||||
}
|
||||
Dictionary<string, string> contractStateDict = GetSettingsValueDict(contractState);
|
||||
|
||||
foreach (var kv in contractStateDict)
|
||||
@@ -958,6 +970,11 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
if (!settingValueDict.ContainsKey("FilterGroupServiceCategories"))
|
||||
{
|
||||
settingValueDict.Add("FilterGroupServiceCategories", "0");
|
||||
}
|
||||
|
||||
manDc.Settings = "";
|
||||
|
||||
|
||||
@@ -2843,6 +2860,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
tenant = SessionFacade.Tenant;
|
||||
typ = "&t=1";
|
||||
}
|
||||
|
||||
if (String.IsNullOrEmpty(tenant))
|
||||
{
|
||||
return "";
|
||||
@@ -2884,7 +2902,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
return "Fehler";
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Runtime.Serialization;
|
||||
using System;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
|
||||
@@ -28,5 +29,11 @@ namespace BS.Shared.DataContracts
|
||||
[DataMember]
|
||||
public bool Chatpartner { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime? StartDate { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime? EndDate { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user