Dienstplaner:

- Dienst Objekt (Informationen über Name, Kürzel, Zeitraum, Pause, Farbe) eingefügt
- Dienst in Verwaltung implementiert
- Dienstplaner Tab in Auswertung eingefügt

Allgemein:
- Budget Variablen auf privat gestellt
This commit is contained in:
rene
2020-02-27 15:10:29 +01:00
parent f22b7199d7
commit 6ac29c8bed
29 changed files with 1595 additions and 544 deletions

View File

@@ -288,15 +288,19 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\DienstView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\NotizenKategorieView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\AbsenceTimesView.xaml">
<Page Include="View\Detail\AbsenceTimesView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml">
<Page Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
@@ -304,6 +308,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\Dienstplaner.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\Detail\Report\EMailStatusLogControl.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -638,7 +646,6 @@
<Compile Include="Converter\AnonymizationRight2VisibilityConverter.cs" />
<Compile Include="Converter\BoolNullCheckConverter.cs" />
<Compile Include="Converter\BoolReverseConverter.cs" />
<Compile Include="Converter\CellColorConverter.cs" />
<Compile Include="Converter\CollectionContainsTag2BoolConverter.cs" />
<Compile Include="Converter\CollectionCountToBoolConverter.cs" />
@@ -662,7 +669,7 @@
<Compile Include="Core\BeWoWebClient.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Core\Commands\ButtonClickCommand.cs" />
<Compile Include="Core\Commands\ButtonClickCommand.cs" />
<Compile Include="Core\Config\AppSettings.cs" />
<Compile Include="Core\CustomSpellCheckerLocalizer.cs" />
<Compile Include="Core\DocumentWatcher.cs" />
@@ -707,11 +714,11 @@
</Compile>
<Compile Include="SchulbegleitenderDienst\TagesansichtVM.cs" />
<Compile Include="SchulbegleitenderDienst\TagesVertretung.cs" />
<Compile Include="SchulbegleitenderDienst\ViewModel\AbsenceTimeEditViewModel.cs" />
<Compile Include="SchulbegleitenderDienst\ViewModel\AbsenceTimeEditViewModel.cs" />
<Compile Include="SchulbegleitenderDienst\ViewModel\SbdConfigVM.cs" />
<Compile Include="SchulbegleitenderDienst\ViewModel\VertretungsansichtBaseVM.cs" />
<Compile Include="SchulbegleitenderDienst\ViewModel\VertretungWochenansichtVM.cs" />
<Compile Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml.cs">
<Compile Include="SchulbegleitenderDienst\View\AbsenceTimeEditView.xaml.cs">
<DependentUpon>AbsenceTimeEditView.xaml</DependentUpon>
</Compile>
<Compile Include="SchulbegleitenderDienst\View\SbdAdminView.xaml.cs">
@@ -793,7 +800,9 @@
<Compile Include="ViewModel\AdditionalServiceGroupOfPeopleVM.cs" />
<Compile Include="ViewModel\AdditionalServiceRegionVM.cs" />
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\DienstVM.cs" />
<Compile Include="ViewModel\BudgetVM.cs" />
<Compile Include="ViewModel\ListViewModel\DienstListVM.cs" />
<Compile Include="ViewModel\ListViewModel\BudgetListVM.cs" />
<Compile Include="ViewModel\NotizenKategorieVM.cs" />
<Compile Include="ViewModel\NotizenEintragVM.cs" />
@@ -884,15 +893,21 @@
<Compile Include="View\Controls\ValueListEntryEditControl.xaml.cs">
<DependentUpon>ValueListEntryEditControl.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\DienstView.xaml.cs">
<DependentUpon>DienstView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\NotizenKategorieView.xaml.cs">
<DependentUpon>NotizenKategorieView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\BudgetView.xaml.cs">
<DependentUpon>BudgetView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
<Compile Include="View\Detail\AbsenceTimesView.xaml.cs">
<DependentUpon>AbsenceTimesView.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\Dienstplaner.xaml.cs">
<DependentUpon>Dienstplaner.xaml</DependentUpon>
</Compile>
<Compile Include="View\Detail\Report\AbwesenheitstabelleView.xaml.cs">
<DependentUpon>AbwesenheitstabelleView.xaml</DependentUpon>
</Compile>

View File

@@ -1507,6 +1507,8 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.ReportTemplateDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTemplateDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.ReportTypes))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.DienstDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldkassenDC>))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.BargeldkassenDC))]
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.BargeldtransaktionDC>))]
@@ -1648,6 +1650,10 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.QueryDC>))]
object ConvertToNewSubstitutionType();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/LoadAbsenceReason", ReplyAction="http://tempuri.org/ICustomerService/LoadAbsenceReasonResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/LoadAbsenceReasonBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
BS.Shared.DataContracts.AbsenceReasonDC LoadAbsenceReason(long absenceReasonOid);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimes", ReplyAction="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/ICustomerService/UpdateCustomersAbsenceTimesBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes);
@@ -2471,6 +2477,11 @@ namespace BeWo.ServiceProxy
return base.Channel.ConvertToNewSubstitutionType();
}
public BS.Shared.DataContracts.AbsenceReasonDC LoadAbsenceReason(long absenceReasonOid)
{
return base.Channel.LoadAbsenceReason(absenceReasonOid);
}
public void UpdateCustomersAbsenceTimes(long pCustomerOid, System.Collections.Generic.List<BS.Shared.DataContracts.AbsenceTimeDC> pAbsenceTimes)
{
base.Channel.UpdateCustomersAbsenceTimes(pCustomerOid, pAbsenceTimes);
@@ -4686,6 +4697,22 @@ namespace BeWo.ServiceProxy
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeleteAbsenceTimeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeleteAbsenceTime(BS.Shared.DataContracts.AbsenceTimeDC absenceTimeDC);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/GetAllDienste", ReplyAction="http://tempuri.org/IOperationsService/GetAllDiensteResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/GetAllDiensteBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> GetAllDienste();
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/InsertNewDienst", ReplyAction="http://tempuri.org/IOperationsService/InsertNewDienstResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/InsertNewDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void InsertNewDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienst);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/DeactivateDienst", ReplyAction="http://tempuri.org/IOperationsService/DeactivateDienstResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/DeactivateDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void DeactivateDienst(System.Collections.Generic.Dictionary<long, long> pOid2Version);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateDienst", ReplyAction="http://tempuri.org/IOperationsService/UpdateDienstResponse")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateDienstBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
void UpdateDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienste);
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDC", ReplyAction="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCResponse" +
"")]
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IOperationsService/UpdateIsChatActiveCustomerAPPCodeDCBeWoFaul" +
@@ -5656,6 +5683,26 @@ namespace BeWo.ServiceProxy
base.Channel.DeleteAbsenceTime(absenceTimeDC);
}
public System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> GetAllDienste()
{
return base.Channel.GetAllDienste();
}
public void InsertNewDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienst)
{
base.Channel.InsertNewDienst(dienst);
}
public void DeactivateDienst(System.Collections.Generic.Dictionary<long, long> pOid2Version)
{
base.Channel.DeactivateDienst(pOid2Version);
}
public void UpdateDienst(System.Collections.Generic.List<BS.Shared.DataContracts.DienstDC> dienste)
{
base.Channel.UpdateDienst(dienste);
}
public void UpdateIsChatActiveCustomerAPPCodeDC(long customerOid, int activeType)
{
base.Channel.UpdateIsChatActiveCustomerAPPCodeDC(customerOid, activeType);

View File

@@ -103,8 +103,8 @@ namespace BeWo.View.Detail
private void colorEditor_Loaded(object sender, RoutedEventArgs e)
{
((ListBox) sender).ItemsSource = ViewModel.AllBrushes;
((ListBox) sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ListBox) sender);
((ListBox)sender).ItemsSource = ViewModel.AllBrushes;
((ListBox)sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ListBox) sender);
}
private void listbox_colorpicker_SelectionChanged(object sender, SelectionChangedEventArgs e)
@@ -128,7 +128,6 @@ namespace BeWo.View.Detail
vm.Brush = selection as SolidColorBrush;
}
}
popup_color.IsOpen = false;
}
}

View File

@@ -96,27 +96,20 @@ namespace BeWo.View.Detail
}
}
private void PART_Editor_Click(object sender, RoutedEventArgs e)
{
RowData data = DatagridRegions.View.FocusedRowData;
//private void PART_Editor_Click(object sender, RoutedEventArgs e)
//{
// RowData data = DatagridRegions.View.FocusedRowData;
if (data != null && data.RowHandle != null)
{
var vm = DatagridRegions.GetRow(data.RowHandle.Value) as BudgetVM;
// if (data != null && data.RowHandle != null)
// {
// var vm = DatagridRegions.GetRow(data.RowHandle.Value) as BudgetVM;
if (vm != null)
{
ViewModel.EditVM = vm;
//popup_costrateperiods.IsOpen = true;
}
}
}
private void button_edit_Click(object sender, RoutedEventArgs e)
{
//this.ViewModel.EditVM.Values = this.ViewModel.PossibleValues.Where(i => i.IsEditSelected).ToList();
//popup_costrateperiods.IsOpen = false;
}
// if (vm != null)
// {
// ViewModel.EditVM = vm;
// //popup_costrateperiods.IsOpen = true;
// }
// }
//}
}
}

View File

@@ -0,0 +1,160 @@
<localView:BeWoView
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
x:Class="BeWo.View.Detail.DienstView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:val="clr-namespace:BeWo.Validation"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:validation="clr-namespace:BeWo.Validation"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
<GroupBox Name="root" Header="Aktuell definierte Dienste" Style="{StaticResource ObjectEditGroupBox}">
<Grid>
<Grid.Resources>
<DataTemplate x:Key="DropDownItemTemplate">
<Border Height="20" MinWidth="20" Background="{Binding}" BorderThickness="1" CornerRadius="2" HorizontalAlignment="Stretch" BorderBrush="Black" />
</DataTemplate>
<DataTemplate x:Key="SelectedItemTemplate">
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding}" BorderBrush="Black" BorderThickness="1" />
</DataTemplate>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!--Erste Zeile-->
<Grid Grid.Column="0" Grid.Row="0">
<Grid.Resources>
<DataTemplate x:Key="DropDownItemTemplate">
<Border Height="20" MinWidth="20" Background="{Binding}" BorderThickness="1" CornerRadius="2" HorizontalAlignment="Stretch" BorderBrush="Black" />
</DataTemplate>
<DataTemplate x:Key="SelectedItemTemplate">
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding}" BorderBrush="Black" BorderThickness="1" />
</DataTemplate>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Content="Dienstname" Margin="3,3,0,3"/>
<dxe:TextEdit Grid.Column="1" x:Name="_TxtDienstname" Margin="0,3,3,3" MinWidth="200" Text="{val:ValidationBinding Path=NewVM.DienstName, UpdateSourceTrigger=PropertyChanged}"/>
<Label Grid.Column="2" Content="Kürzel" Margin="3,3,0,3"/>
<dxe:TextEdit Grid.Column="3" x:Name="_TxtDienstKurz" Margin="0,3,3,3" MinWidth="50" Text="{val:ValidationBinding Path=NewVM.Kurz, UpdateSourceTrigger=PropertyChanged}"/>
<ComboBox x:Name="_FarbeComboBox" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" SelectedItem="{val:ValidationBinding Path=NewVM.Farbe}" Grid.Column="4" Height="23" Margin="3" ItemsSource="{Binding Path=AllBrushes, Mode=OneWay}" Width="50">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="12" Rows="12" IsItemsHost="True" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="0" />
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
</Grid>
<!--Zweite Zeile-->
<Grid Grid.Column="0" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Content="Start" Margin="3,3,0,3"/>
<dxe:TextEdit Grid.Column="1" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MinWidth="50" ShowError="False" MaskShowPlaceHolders="True" x:Name="_TxtStart"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor" Height="23" Margin="0,3,3,3"
EditValue="{validation:ValidationBinding Path=NewVM.Start, UpdateSourceTrigger=PropertyChanged}"/>
<Label Grid.Column="2" Content="Ende" Margin="3,3,0,3"/>
<dxe:TextEdit Grid.Column="3" MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MinWidth="50" ShowError="False" MaskShowPlaceHolders="True" x:Name="_TxtEnde"
MaskUseAsDisplayFormat="True" InvalidValueBehavior="AllowLeaveEditor" Height="23" Margin="0,3,3,3"
EditValue="{validation:ValidationBinding Path=NewVM.Ende, UpdateSourceTrigger=PropertyChanged}"/>
<Label Grid.Column="4" Content="Pause (min)" Margin="3,3,0,3"/>
<dxe:SpinEdit Name="_SpinPause" AllowNullInput="True" IsFloatValue="False" MinValue="0" Grid.Column="5"
Height="23" Width="50" EditValue="{Binding Path=NewVM.Pause, Converter={StaticResource Int2DecimalConverter}, UpdateSourceTrigger=PropertyChanged}" />
<Button Grid.Column="7" Content="Erstellen" Click="Button_Click"/>
</Grid>
<!--Dritte Zeile-->
<dxg:GridControl x:Name="_GridControl" Margin="0,10,0,0" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="7" DataSource="{Binding VMList}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="IsDeleteable" Header="" FixedWidth="True" Width="24" ReadOnly="True">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Button Content="r" IsEnabled="{Binding Path=EditValue}" FontFamily="Webdings" Click="DeleteButton_Click" Width="18" Height="18" VerticalAlignment="Center" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn FieldName="DienstName" Header="Dienstname" Width="200" />
<dxg:GridColumn FieldName="Kurz" Header="Kürzel" Width="50" />
<dxg:GridColumn Header="Start" FixedWidth="True" Width="100" FieldName="Start" >
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="Ende" FixedWidth="True" Width="100" FieldName="Ende" >
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="RegEx" Mask="(0?\d|1\d|2[0-3]):[0-5]\d" MaskShowPlaceHolders="True" MaskUseAsDisplayFormat="True"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Pause" Header="Pause" Width="100">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings HorizontalContentAlignment="Left"/>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn x:Name="_ColumnFarbe" FieldName="Farbe" Header="Farbe" Width="100">
<dxg:GridColumn.DisplayTemplate>
<ControlTemplate>
<Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{Binding Value, diagnostics:PresentationTraceSources.TraceLevel=High }" BorderBrush="Black" BorderThickness="1" />
</ControlTemplate>
</dxg:GridColumn.DisplayTemplate>
<dxg:GridColumn.EditTemplate>
<ControlTemplate>
<Button x:Name="Part_Editor" BorderThickness="0" Style="{x:Null}" Background="{Binding EditValue}" Foreground="{Binding EditValue}" Height="21" HorizontalAlignment="Stretch" Click="Part_Editor_Click"></Button>
</ControlTemplate>
</dxg:GridColumn.EditTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView AutoWidth="true" ShowGroupPanel="False" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell" />
</dxg:GridControl.View>
</dxg:GridControl>
<Popup x:Name="_PopupColorPicker" StaysOpen="false" Placement="MousePoint">
<ListBox x:Name="_Listbox_Colorpicker" BorderThickness="0" Loaded="ColorEditor_Loaded" SelectionChanged="Listbox_Colorpicker_SelectionChanged">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="12" Rows="12" IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="0" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</Popup>
</Grid>
</GroupBox>
</localView:BeWoView>

View File

@@ -0,0 +1,131 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using BS.Shared.Core;
using BS.Shared.Extensions;
using BeWo.Core;
using BeWo.Core.Service;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Grid;
using System.Windows.Controls;
using System.Windows.Media;
namespace BeWo.View.Detail
{
public partial class DienstView : BeWoView
{
private DienstListVM _ViewModel;
public DienstView(DienstListVM listVM)
{
InitializeComponent();
_FarbeComboBox.ItemTemplateSelector = new ComboBoxTemplateSelector(_FarbeComboBox);
ViewModel = listVM;
}
public override bool IsDirty
{
get { return ViewModel != null && ViewModel.IsDirty; }
}
public override string Title
{
get { return "Dienste"; }
}
private DienstListVM ViewModel
{
get { return _ViewModel; }
set
{
_ViewModel = value;
root.DataContext = value;
}
}
protected override void Save()
{
var lToDos = new List<Action<IOperationsService>>();
if (ViewModel.AddedCount > 0)
{
lToDos.Add(s => s.InsertNewDienst(ViewModel.CommitAdded()));
}
if (ViewModel.RemovedCount > 0)
{
lToDos.Add(s => s.DeactivateDienst(ViewModel.GetRemoved().ToDictionary(dc => dc.DienstOid.Value, dc => dc.DienstVersion.Value)));
}
if (ViewModel.ChangedCount > 0)
{
lToDos.Add(s => s.UpdateDienst(ViewModel.CommitChanged()));
}
ServiceFacade.DoMultipleOperationsServicesAsync(lToDos, ReloadViewModel);
}
private void ReloadViewModel()
{
VMFactory.CreateDienstListVMAsync(r => this.Dispatch(delegate { ViewModel = r; }));
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (ValidationTrigger.Validate(this))
{
ViewModel.AddNewVMToList();
}
}
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
ViewModel.VMList.Remove(_GridControl.GetCurrentValue<DienstVM>());
BeWoWpfUtils.RefreshDXGrid(_GridControl);
}
private void Part_Editor_Click(object sender, RoutedEventArgs e)
{
_PopupColorPicker.IsOpen = true;
}
private void ColorEditor_Loaded(object sender, RoutedEventArgs e)
{
((ListBox)sender).ItemsSource = ViewModel.AllBrushes;
((ListBox)sender).ItemTemplateSelector = new ComboBoxTemplateSelector((ListBox)sender);
}
private void Listbox_Colorpicker_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
if (e.AddedItems.Count == 1)
{
object selection = e.AddedItems[0];
DataViewBase view = _GridControl.View;
RowData data = view.FocusedRowData;
if (data != null && data.RowHandle != null)
{
int rowHandle = data.RowHandle.Value;
var vm = _GridControl.GetRow(rowHandle) as DienstVM;
if (vm != null)
{
vm.Farbe = selection as SolidColorBrush;
}
}
_PopupColorPicker.IsOpen = false;
}
}
}
}

View File

@@ -0,0 +1,43 @@
<localView:BeWoView
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
xmlns:localView="clr-namespace:BeWo.View"
xmlns:uc="clr-namespace:BeWo.Controls;assembly=BeWo.Controls"
xmlns:dxschi="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal"
xmlns:XtraScheduler="clr-namespace:DevExpress.XtraScheduler;assembly=DevExpress.XtraScheduler.v17.1.Core"
x:Class="BeWo.View.Detail.Report.Dienstplaner"
Height="Auto" Width="Auto" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Focusable="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Grid.Column="0" Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Wohnheim:" Margin="3"/>
<dxe:ComboBoxEdit Grid.Column="1" Grid.Row="0" Margin="3"/>
</Grid>
</Grid>
</localView:BeWoView>

View File

@@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Forms;
using System.Windows.Media;
using BeWo.Controls;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.Translation;
using DevExpress.Services;
using DevExpress.XtraScheduler;
using DevExpress.Xpf.Scheduler;
using DevExpress.Xpf.Scheduler.Native;
using SchedulerStorage = DevExpress.Xpf.Scheduler.SchedulerStorage;
using ResourceStorage = DevExpress.Xpf.Scheduler.ResourceStorage;
using AppointmentStorage = DevExpress.Xpf.Scheduler.AppointmentStorage;
using IAppointmentLabelStorage = DevExpress.Xpf.Scheduler.AppointmentLabelCollection;
using BeWo.Scheduler.View;
using AppointmentLabel = DevExpress.Xpf.Scheduler.AppointmentLabel;
namespace BeWo.View.Detail.Report
{
/// <summary>
/// Interaction logic for Dienstplaner.xaml
/// </summary>
public partial class Dienstplaner : BeWoView
{
public Dienstplaner()
{
InitializeComponent();
}
}
}

View File

@@ -99,10 +99,11 @@
<dxa:AccordionItem Header="Sonstiges" Foreground="{StaticResource TabItemTextBrush}">
<dxa:AccordionItem Header="{markup:Translate Abwesenheitskategorien}" Name="TabitemAbsenceCategories" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Budgets}" Name="TabitemBudgets" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Finanzkategorien}" Name="TabitemFinazCategories" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Dienste}" Name="TabitemDienste" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Finanzkategorien}" Name="TabitemFinazCategories" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Notizenkategorie}" Name="TabitemNotizenkategorie" Selected="Tabitem_Selected" Foreground="Black"/>
<dxa:AccordionItem Header="{markup:Translate Schulbegleitender Dienst}" Name="TabitemSbd" Selected="Tabitem_Selected" Foreground="Black"/>
</dxa:AccordionItem>
</dxa:AccordionControl>
</Border>

View File

@@ -367,6 +367,10 @@ namespace BeWo.View.Master
VMFactory.CreateBudgetListVMAsync(r =>
this.Dispatch(() => AddView(TabitemBudgets, new BudgetView(r))));
return;
case nameof(TabitemDienste):
VMFactory.CreateDienstListVMAsync(r =>
this.Dispatch(() => AddView(TabitemDienste, new DienstView(r))));
return;
case nameof(TabitemNotizenkategorie):
VMFactory.CreateValueListVMAsync(ValueListEntryType.NotizenKategorieEmployee,
notizEmpList => VMFactory.CreateValueListVMAsync(ValueListEntryType.NotizenKategorieCustomer,

View File

@@ -39,11 +39,11 @@
<TabItem Header="{markup:Translate Mitarbeiterauslastung}" Name="tabitem_maReport" Selector.Selected="tabitem_maReport_Selected"/>
<TabItem Header="{markup:Translate Mitarbeiterstundenkonto}" Name="tabitem_makonto" Selector.Selected="tabitem_maKonto_Selected"/>
<TabItem Header="{markup:Translate Abwesenheitstabelle}" Name="tabitem_abwesenheitsTabelle" Selector.Selected="tabitem_abwesenheitsTabelle_Selected"/>
<TabItem Header="{markup:Translate Dienstplaner}" Name="tabitem_dienstPlaner" Selector.Selected="tabitem_dienstPlaner_Selected"/>
<TabItem Header="{markup:Translate Hilfeplanübersicht}" Name="tabitem_supportConceptAnalysis" Selector.Selected="tabitem_supportConceptAnalysis_Selected" />
<TabItem Header="{markup:Translate Jahresbericht}" Name="tabitem_annualReport" Selector.Selected="tabitem_annualReport_Selected" />
<TabItem Header="{markup:Translate Quittierungsbelege}" Name="tabitem_serviceOverview" Selector.Selected="tabitem_serviceOverview_Selected" />
<TabItem Header="{markup:Translate Stundenzettel}" Name="tabitem_stundenzettelOverview" Selector.Selected="tabitem_stundenzettelOverview_Selected" />
<TabItem Header="{markup:Translate Stundenzettel}" Name="tabitem_stundenzettelOverview" Selector.Selected="tabitem_stundenzettelOverview_Selected" />
<TabItem Header="{markup:Translate Pivot Tabelle}" Name="tabitem_flexibleReport" Selector.Selected="tabitem_flexibleReport_Selected" />
<!--<TabItem Header="Spitzabrechnung" Name="tabitem_settlement" Selector.Selected="tabitem_settlement_Selected"/>-->

View File

@@ -189,6 +189,13 @@ namespace BeWo.View.Master
Show(tabitem_abwesenheitsTabelle);
}
private void tabitem_dienstPlaner_Selected(object sender, RoutedEventArgs e)
{
if (!_OpenViews.ContainsKey(tabitem_dienstPlaner))
_OpenViews[tabitem_dienstPlaner] = new Dienstplaner();
Show(tabitem_dienstPlaner);
}
private void tabitem_queries_Selected(object sender, RoutedEventArgs e)
{
if (!_OpenViews.ContainsKey(tabitem_queries))

View File

@@ -10,16 +10,16 @@ namespace BeWo.ViewModel
{
public class BudgetVM : AbstractDCMapperVM<BudgetDC>
{
public long? _BudgetOid;
public ActivationTypeId _BudgetIsActive;
public string _BudgetNotice;
public DateTime? _BudgetInsTs;
public string _BudgetInsUser;
public long? _BudgetVersion;
public string _BudgetUdpUser;
public SystemEntryID? _BudgetSystemEntryID;
public string _Name;
public decimal? _Betragshoehe;
private long? _BudgetOid;
private ActivationTypeId _BudgetIsActive;
private string _BudgetNotice;
private DateTime? _BudgetInsTs;
private string _BudgetInsUser;
private long? _BudgetVersion;
private string _BudgetUdpUser;
private SystemEntryID? _BudgetSystemEntryID;
private string _Name;
private decimal? _Betragshoehe;
public BudgetVM(BudgetDC budgetDC) : base(budgetDC, budgetDC.BudgetOid == null)
{ }

222
BeWo/ViewModel/DienstVM.cs Normal file
View File

@@ -0,0 +1,222 @@
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
namespace BeWo.ViewModel
{
public class DienstVM : AbstractDCMapperVM<DienstDC>
{
private long? _DienstOid;
private string _DienstNotice;
private long? _DienstVersion;
private string _DienstName;
private string _Kurz;
private SolidColorBrush _Farbe;
private string _FarbeString;
private DateTime _StartDT;
private DateTime _EndeDT;
private int _Pause;
public DienstVM(DienstDC dienstDC) : base(dienstDC, dienstDC.DienstOid == null)
{ }
public long? DienstOid
{
get { return _DienstOid; }
set
{
if (AreDifferent(_DienstOid, value))
{
_DienstOid = value;
StoreDirtyInformation(AreDifferent(DataContract.DienstOid, value), nameof(_DienstOid));
FirePropertyChanged(nameof(_DienstOid));
}
}
}
public string DienstNotice
{
get { return _DienstNotice; }
set
{
if (AreDifferent(_DienstNotice, value))
{
_DienstNotice = value;
StoreDirtyInformation(AreDifferent(DataContract.DienstNotice, value), nameof(_DienstNotice));
FirePropertyChanged(nameof(_DienstNotice));
}
}
}
public long? DienstVersion
{
get { return _DienstVersion; }
set
{
if (AreDifferent(_DienstVersion, value))
{
_DienstVersion = value;
StoreDirtyInformation(AreDifferent(DataContract.DienstVersion, value), nameof(_DienstVersion));
FirePropertyChanged(nameof(_DienstVersion));
}
}
}
public string DienstName
{
get { return _DienstName; }
set
{
if (AreDifferent(_DienstName, value))
{
_DienstName = value;
StoreDirtyInformation(AreDifferent(DataContract.DienstName, value), nameof(_DienstName));
FirePropertyChanged(nameof(_DienstName));
}
}
}
public string Kurz
{
get { return _Kurz; }
set
{
if (AreDifferent(_Kurz, value))
{
_Kurz = value;
StoreDirtyInformation(AreDifferent(DataContract.Kurz, value), nameof(_Kurz));
FirePropertyChanged(nameof(_Kurz));
}
}
}
public SolidColorBrush Farbe
{
get { return _Farbe; }
set
{
if (AreDifferent(_Farbe, value))
{
_Farbe = value;
_FarbeString = value.ToStringNullCheck();
StoreDirtyInformation(AreDifferent(DataContract.Farbe, value), nameof(_Farbe));
FirePropertyChanged(nameof(_Farbe));
}
}
}
public string Start
{
get { return _StartDT.ToString("HH:mm"); }
set
{
if (AreDifferent(Start, value))
{
var s = value.Split(':');
var dt = new DateTime(2000, 1, 1).AddHours(int.Parse(s[0])).AddMinutes(int.Parse(s[1]));
_StartDT = dt;
StoreDirtyInformation(AreDifferent(DataContract.Start, dt), nameof(_StartDT));
FirePropertyChanged(nameof(_StartDT));
}
}
}
public DateTime StartDT
{
get { return _StartDT; }
set
{
if (AreDifferent(_StartDT, value))
{
_StartDT = value;
StoreDirtyInformation(AreDifferent(DataContract.Start, value), nameof(_StartDT));
FirePropertyChanged(nameof(_StartDT));
}
}
}
public string Ende
{
get { return _EndeDT.ToString("HH:mm"); }
set
{
if (AreDifferent(Start, value))
{
var s = value.Split(':');
var dt = new DateTime(2000, 1, 1).AddHours(int.Parse(s[0])).AddMinutes(int.Parse(s[1]));
_EndeDT = dt;
StoreDirtyInformation(AreDifferent(DataContract.Ende, dt), nameof(_EndeDT));
FirePropertyChanged(nameof(_EndeDT));
}
}
}
public DateTime EndeDT
{
get { return _EndeDT; }
set
{
if (AreDifferent(_EndeDT, value))
{
_EndeDT = value;
StoreDirtyInformation(AreDifferent(DataContract.Ende, value), nameof(_EndeDT));
FirePropertyChanged(nameof(_EndeDT));
}
}
}
public int Pause
{
get { return _Pause; }
set
{
if (AreDifferent(_Pause, value))
{
_Pause = value;
StoreDirtyInformation(AreDifferent(DataContract.Pause, value), nameof(_Pause));
FirePropertyChanged(nameof(_Pause));
}
}
}
protected override void InitByDataContract(DienstDC bDataContract)
{
_DienstOid = bDataContract.DienstOid;
_DienstNotice = bDataContract.DienstNotice;
_DienstVersion = bDataContract.DienstVersion;
_DienstName = bDataContract.DienstName;
_Kurz = bDataContract.Kurz;
_StartDT = bDataContract.Start;
_EndeDT = bDataContract.Ende;
_Pause = bDataContract.Pause;
if (!string.IsNullOrEmpty(bDataContract.Farbe))
{
_Farbe = (SolidColorBrush)new BrushConverter().ConvertFrom(bDataContract.Farbe);
}
}
protected override DienstDC MapToDataContract(DienstDC bDataContract, bool doCommit)
{
bDataContract.DienstOid = _DienstOid;
bDataContract.DienstNotice = _DienstNotice;
bDataContract.DienstVersion = _DienstVersion;
bDataContract.DienstName = _DienstName;
bDataContract.Kurz = _Kurz;
bDataContract.Farbe = _FarbeString;
bDataContract.Pause = _Pause;
bDataContract.Start = _StartDT;
bDataContract.Ende = _EndeDT;
return bDataContract;
}
}
}

View File

@@ -0,0 +1,31 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Media;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using Color = System.Drawing.Color;
namespace BeWo.ViewModel.ListViewModel
{
public class DienstListVM : AbstractDCListMapperVM<DienstDC, DienstVM>
{
public DienstListVM(List<DienstDC> pDCs): base(pDCs)
{
}
public List<SolidColorBrush> AllBrushes
{
get
{
var lTemp = typeof(Color).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Static).Select(pi => (Color)pi.GetGetMethod().Invoke(null, null)).ToList();
lTemp.Sort((x, y) => x.GetBrightness().CompareTo(y.GetBrightness()));
return lTemp.Select(c => new SolidColorBrush(System.Windows.Media.Color.FromArgb(c.A, c.R, c.G, c.B))).ToList();
}
}
}
}

View File

@@ -459,7 +459,13 @@ namespace BeWo.ViewModel
r => pCallBack(new BudgetListVM(r.ToList())));
}
public static void CreateTextModuleListVMAsync(Action<TextModuleListVM> pCallBack, bool pIsInAdministrationView = false, bool pIsInTextModuleEditor = false)
public static void CreateDienstListVMAsync(Action<DienstListVM> pCallBack)
{
ServiceFacade.DoOperationsServiceAsync(s => s.GetAllDienste(),
r => pCallBack(new DienstListVM(r.ToList())));
}
public static void CreateTextModuleListVMAsync(Action<TextModuleListVM> pCallBack, bool pIsInAdministrationView = false, bool pIsInTextModuleEditor = false)
{
ServiceFacade.DoOperationsServiceAsync(s1 => s1.GetTextModules(pIsInTextModuleEditor, BeWoApp.LoggedOnEmployee.EmployeeOid.Value, BeWoApp.LoggedOnUser.HasRight(UserRightType.TextbausteineAlleAnsehen), pIsInAdministrationView), r1 => ServiceFacade.DoOperationsServiceAsync(
s2 => s2.GetAllServiceCategories(),

View File

@@ -135,6 +135,7 @@
<Compile Include="DefaultHibernateSessionManager.cs" />
<Compile Include="Entities\AddressHistory.cs" />
<Compile Include="Entities\BuchungsExport.cs" />
<Compile Include="Entities\Dienst.cs" />
<Compile Include="Entities\Budget.cs" />
<Compile Include="Entities\ContactHistory.cs" />
<Compile Include="Entities\DeletionHistory.cs" />
@@ -605,6 +606,9 @@
<Content Include="ICF\icf.xml">
<SubType>Designer</SubType>
</Content>
<EmbeddedResource Include="Mappings\Dienst.hbm.xml">
<SubType>Designer</SubType>
</EmbeddedResource>
<Content Include="Mappings\DeletionHistory.hbm.xml" />
<EmbeddedResource Include="Mappings\FlexibleReportLayout.hbm.xml">
<SubType>Designer</SubType>

115
Data/Entities/Dienst.cs Normal file
View File

@@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BS.Shared;
namespace BeWo.Data.Entities
{
public class Dienst : BeWoEntityBase
{
private string _Dienstname;
private string _Kurz;
private string _Farbe;
private DateTime _Start;
private DateTime _Ende;
private int _Pause;
public Dienst()
{
_Tid = TableID.Dienst;
}
public virtual string DienstName
{
get
{
return _Dienstname;
}
set
{
if (AreDifferent(_Dienstname, value))
{
_Dienstname = value;
}
}
}
public virtual string Kurz
{
get
{
return _Kurz;
}
set
{
if (AreDifferent(_Kurz, value))
{
_Kurz = value;
}
}
}
public virtual string Farbe
{
get
{
return _Farbe;
}
set
{
if (AreDifferent(_Farbe, value))
{
_Farbe = value;
}
}
}
public virtual DateTime Start
{
get
{
return _Start;
}
set
{
if (AreDifferent(_Start, value))
{
_Start = value;
}
}
}
public virtual DateTime Ende
{
get
{
return _Ende;
}
set
{
if (AreDifferent(_Ende, value))
{
_Ende = value;
}
}
}
public virtual int Pause
{
get
{
return _Pause;
}
set
{
if (AreDifferent(_Pause, value))
{
_Pause = value;
}
}
}
}
}

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="BeWo.Data.Entities.Dienst,BeWo.Data" table="Dienst">
<id name="Oid" column="Oid" type="Int64" unsaved-value="null">
<generator class="identity" />
</id>
<version column="Version" type="Int64" name="Version" />
<property column="Tid" type="BS.Shared.TableID, BS.Shared" name="_Tid" access="field" />
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="Notice" type="String" name="Notice" length="1024" />
<property column="InsTs" type="DateTime" name="InsTs" />
<property column="InsUser" type="String" name="InsUser" length="256" />
<property column="UdpUser" type="String" name="UdpUser" length="256" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="Dienstname" type="string" name="DienstName" />
<property column="Kurz" type="string" name="Kurz" />
<property column="Farbe" type="string" name="Farbe" />
<property column="Start" type="DateTime" name="Start" />
<property column="Ende" type="DateTime" name="Ende" />
<property column="Pause" type="int" name="Pause" />
</class>
</hibernate-mapping>

View File

@@ -20,7 +20,7 @@
</property>-->
<property name="connection.connection_string">
Server=localhost;Password=root;User ID=root; Initial Catalog=1111111111
Server=localhost;Password=root;User ID=root; Initial Catalog=bewodemo
</property>
<property name="dialect">

View File

@@ -0,0 +1,19 @@
CREATE TABLE `dienst` (
`Oid` bigint(19) NOT NULL AUTO_INCREMENT,
`Tid` int(10) DEFAULT NULL,
`IsActive` tinyint(4) DEFAULT NULL,
`Notice` varchar(1024) DEFAULT NULL,
`InsTs` datetime DEFAULT NULL,
`InsUser` varchar(256) DEFAULT NULL,
`Version` bigint(19) DEFAULT NULL,
`UdpUser` varchar(256) DEFAULT NULL,
`SystemEntryID` int(10) DEFAULT NULL,
`Dienstname` varchar(1024) DEFAULT NULL,
`Kurz` varchar(128) DEFAULT NULL,
`Farbe` varchar(16) DEFAULT NULL,
`Start` datetime DEFAULT NULL,
`Ende` datetime DEFAULT NULL,
`Pause` int(10) DEFAULT NULL,
PRIMARY KEY (`Oid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

View File

@@ -0,0 +1,50 @@
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts;
using System.Collections.Generic;
using BS.Shared.Core;
namespace BeWo.Service.DCEntityMapper
{
public class DienstDC_Dienst : AbstractIDCEntityMapper<Dienst, DienstDC>
{
public override DienstDC MergeWithDC(Dienst bEntity, DienstDC bDataContract)
{
bDataContract.DienstOid = bEntity.Oid;
bDataContract.DienstNotice = bEntity.Notice;
bDataContract.DienstVersion = bEntity.Version;
bDataContract.DienstName = bEntity.DienstName;
bDataContract.Kurz = bEntity.Kurz;
bDataContract.Farbe = bEntity.Farbe;
bDataContract.Start = bEntity.Start;
bDataContract.Ende = bEntity.Ende;
bDataContract.Pause = bEntity.Pause;
return bDataContract;
}
public override Dienst MergeWithEntity(DienstDC bDataContract, Dienst bEntity)
{
this.ConcurrencyCheck(bDataContract.DienstVersion, bEntity);
bEntity.Oid = bDataContract.DienstOid;
bEntity.Notice = bDataContract.DienstNotice;
bEntity.DienstName = bDataContract.DienstName;
bEntity.Kurz = bDataContract.Kurz;
bEntity.Farbe = bDataContract.Farbe;
bEntity.Start = bDataContract.Start;
bEntity.Ende = bDataContract.Ende;
bEntity.Pause = bDataContract.Pause;
return bEntity;
}
protected override bool AreDCAndEntityEqual(DienstDC bDC, Dienst bEntity)
{
return bDC.DienstOid != null && bDC.DienstOid == bEntity.Oid;
}
}
}

View File

@@ -238,6 +238,8 @@ namespace BeWo.Service.DCEntityMapper
private static BudgetDC_Budget _BudgetDC_Budget;
private static DienstDC_Dienst _DienstDC_Dienst;
private static FlexibleReportLayoutDC_FlexibleReportLayout _FlexibleReportLayoutDC_FlexibleReportLayout;
private static HomeViewPanelDC_HomeViewPanel _HomeViewPanelDC_HomeViewPanel;
@@ -645,6 +647,9 @@ namespace BeWo.Service.DCEntityMapper
public static BudgetDC_Budget BudgetDC_Budget =>
_BudgetDC_Budget ?? (_BudgetDC_Budget = new BudgetDC_Budget());
public static DienstDC_Dienst DienstDC_Dienst =>
_DienstDC_Dienst ?? (_DienstDC_Dienst = new DienstDC_Dienst());
public static FlexibleReportLayoutDC_FlexibleReportLayout FlexibleReportLayoutDC_FlexibleReportLayout =>
_FlexibleReportLayoutDC_FlexibleReportLayout ?? (_FlexibleReportLayoutDC_FlexibleReportLayout = new FlexibleReportLayoutDC_FlexibleReportLayout());

View File

@@ -163,6 +163,7 @@
<Compile Include="Core\ServiceLogic.cs" />
<Compile Include="Core\SettingsLogic.cs" />
<Compile Include="Core\Utils.cs" />
<Compile Include="DCEntityMapper\DienstDC_Dienst.cs" />
<Compile Include="DCEntityMapper\ReportTemplateDC_ReportTemplate.cs" />
<Compile Include="DCEntityMapper\HomeViewPanelDC_HomeViewPanel.cs" />
<Compile Include="DCEntityMapper\FlexibleReportLayoutDC_FlexibleReportLayout.cs" />

View File

@@ -867,5 +867,21 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void DeleteAbsenceTime(AbsenceTimeDC absenceTimeDC);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
List<DienstDC> GetAllDienste();
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void InsertNewDienst(List<DienstDC> dienst);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void DeactivateDienst(Dictionary<long, long> pOid2Version);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
void UpdateDienst(List<DienstDC> dienste);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -147,6 +147,7 @@ namespace BS.Shared
ReportTemplate = 140,
Arbeitszeit = 141,
ArbeitszeitEintrag = 142,
Dienst = 143
}
public enum SystemEntryID

View File

@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.Serialization;
using BS.Shared.Core;
namespace BS.Shared.DataContracts
{
public class DienstDC : IDataContract
{
[DataMember]
public long? DienstOid { get; set; }
[DataMember]
public string DienstNotice { get; set; }
[DataMember]
public long? DienstVersion { get; set; }
[DataMember]
public string DienstName { get; set; }
[DataMember]
public string Kurz { get; set; }
[DataMember]
public string Farbe { get; set; }
[DataMember]
public DateTime Start { get; set; }
[DataMember]
public DateTime Ende { get; set; }
[DataMember]
public int Pause { get; set; }
public override string ToString()
{
return "[" + DienstOid + "]:" + DienstName;
}
public override bool Equals(object obj)
{
if (obj is DienstDC d)
{
return DienstOid == d.DienstOid;
}
return false;
}
public override int GetHashCode()
{
return GetType().Name.GetHashCode() ^ DienstOid.GetHashCode();
}
}
}

View File

@@ -149,6 +149,7 @@
<Compile Include="DataContracts\AdditionalServiceGroupOfPeopleDC.cs" />
<Compile Include="DataContracts\AdditionalServiceGroupOfPeopleRelationDC.cs" />
<Compile Include="DataContracts\AdditionalServiceRegionDC.cs" />
<Compile Include="DataContracts\DienstDC.cs" />
<Compile Include="DataContracts\ClientPartials\VertretungsItemDC.cs" />
<Compile Include="DataContracts\ReportTemplateDC.cs" />
<Compile Include="DataContracts\BudgetDC.cs" />