Light eingeführt

Ich bin schon groß und vier,
komm doch und spiel mit mir,
ich lad dich ein ich bin Caillou
This commit is contained in:
2025-02-27 15:10:21 +01:00
parent 53ada5df42
commit 2c9323d1bc
67 changed files with 4376 additions and 1409 deletions

View File

@@ -1124,6 +1124,7 @@
<Compile Include="SchulbegleitenderDienst\WochenansichtVM.cs" />
<Compile Include="SchulbegleitenderDienst\WochenVertretung.cs" />
<Compile Include="Security\EncryptionUtils.cs" />
<Compile Include="ServiceProxy\ServiceFacadeExtension.cs" />
<Compile Include="UploadDialog.xaml.cs">
<DependentUpon>UploadDialog.xaml</DependentUpon>
</Compile>
@@ -1200,8 +1201,11 @@
<Compile Include="ViewModel\AdditionalServiceVM.cs" />
<Compile Include="ViewModel\BaseVM.cs" />
<Compile Include="ViewModel\CustomerVermittlungArbeitVM.cs" />
<Compile Include="ViewModel\Light\GkvAbrechnungLightVM.cs" />
<Compile Include="ViewModel\Light\InvoiceBaseLightVM.cs" />
<Compile Include="ViewModel\ListViewModel\AbstractListVM.cs" />
<Compile Include="ViewModel\ListViewModel\CustomerVermittlungArbeitListVM.cs" />
<Compile Include="ViewModel\ListViewModel\Light\GkvAbrechnungLightListVM.cs" />
<Compile Include="ViewModel\Wohnhilfe\CustomerWohnhilfeBereichBundVM.cs" />
<Compile Include="ViewModel\Wohnhilfe\CustomerWohnhilfeBereichEinkommenUndArbeitVM.cs" />
<Compile Include="ViewModel\Wohnhilfe\CustomerWohnhilfeBereichSozialeKontakteVM.cs" />
@@ -1219,7 +1223,6 @@
<Compile Include="ViewModel\DocumentTreeItemVM.cs" />
<Compile Include="ViewModel\DokumentvorlageVM.cs" />
<Compile Include="ViewModel\GeschenkterUrlaubstagVM.cs" />
<Compile Include="ViewModel\ListViewModel\GkvAbrechnungListVM.cs" />
<Compile Include="ViewModel\ListViewModel\PreisListVM.cs" />
<Compile Include="ViewModel\GkvAbrechnungVM.cs" />
<Compile Include="ViewModel\PlatzhalterVM.cs" />

File diff suppressed because it is too large Load Diff

View File

@@ -283,18 +283,10 @@ namespace BeWo.ServiceProxy
{
DoAsync<GkvAccountingServiceClient, IGkvAccountingService, T>(pFunc, pCallBack, true);
}
public static void DoGkvAccountingServiceAsyncGUI<T>(Func<IGkvAccountingService, T> pFunc, Action<T> pCallBack, Dispatcher dispatcher)
public static void DoGkvAccountingServiceAsync(Action<IGkvAccountingService> pAction, Action pCallBack)
{
Action<T> action = (t) => dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pCallBack(t);
});
DoAsync<GkvAccountingServiceClient, IGkvAccountingService, T>(pFunc, action, true);
DoAsync<GkvAccountingServiceClient, IGkvAccountingService>(pAction, pCallBack, true);
}
public static void DoGkvAccountingServiceAsync(Action<IGkvAccountingService> pAction)
{
DoAsync<GkvAccountingServiceClient, IGkvAccountingService>(pAction, true);

View File

@@ -0,0 +1,48 @@
using DevExpress.Export.Xl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Threading;
namespace BeWo.ServiceProxy
{
internal static class ServiceFacadeExtension
{
public static void DoGkvAccountingServiceAsync<T>(this UserControl uc, Func<IGkvAccountingService, T> pFunc, Action<T> pCallBack = null, bool showWaitDialog = true)
{
Action<T> lCallBack = null;
if (pCallBack != null)
{
lCallBack = (t) => uc.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pCallBack(t);
});
}
ServiceFacade.DoGkvAccountingServiceAsync<T>(pFunc, lCallBack, true);
}
public static void DoGkvAccountingServiceAsync(this UserControl uc, Action<IGkvAccountingService> pAction, Action pCallBack = null, bool showWaitDialog = true)
{
Action lCallBack = null;
if (pCallBack != null)
{
lCallBack = () => uc.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
pCallBack();
});
}
ServiceFacade.DoGkvAccountingServiceAsync(pAction, lCallBack);
}
}
}

View File

@@ -62,24 +62,22 @@ namespace BeWo.View.Controls
{
var protokoll = datagrid_transfer.GetCurrentValue<GkvTransferProtokollDC>();
var oid = protokoll.GkvTransferProtokollOid.Value;
var oid = protokoll.Oid.Value;
ServiceFacade.DoGkvAccountingServiceAsyncGUI(
this.DoGkvAccountingServiceAsync(
service => service.GetProtokollRawDataString(oid, BS.Shared.GkvRawDataType.Auftragsdatei),
callback => ShowTextViewer("Auftragsdatei", callback),
Dispatcher);
callback => ShowTextViewer("Auftragsdatei", callback));
}
private void btn_nutzdatendatei_Click(object sender, RoutedEventArgs e)
{
var protokoll = datagrid_transfer.GetCurrentValue<GkvTransferProtokollDC>();
var oid = protokoll.GkvTransferProtokollOid.Value;
var oid = protokoll.Oid.Value;
ServiceFacade.DoGkvAccountingServiceAsyncGUI(
this.DoGkvAccountingServiceAsync(
service => service.GetProtokollRawDataString(oid, BS.Shared.GkvRawDataType.Nutzdatendatei),
callback => ShowTextViewer("Nutzdatendatei", callback),
Dispatcher);
callback => ShowTextViewer("Nutzdatendatei", callback));
}
private void ShowTextViewer(string title, string text)

View File

@@ -3,6 +3,7 @@ using System.Activities.Statements;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows;
using System.Windows.Controls;
@@ -14,170 +15,173 @@ using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.View.Controls;
using BeWo.ViewModel;
using BeWo.ViewModel.Light;
using BeWo.ViewModel.ListViewModel;
using BeWo.ViewModel.ListViewModel.Light;
using BS.Shared;
using BS.Shared.AppSender;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Light;
using BS.Shared.Extensions;
using DevExpress.Data.Filtering;
using DevExpress.Mvvm;
using DevExpress.Utils.Extensions;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using Microsoft.Win32;
namespace BeWo.View.Detail.Accounting
{
public partial class GkvAbrechnungOverview : BeWoView
{
private bool _IsRequesting = false;
public partial class GkvAbrechnungOverview : BeWoView
{
private bool _IsRequesting = false;
private readonly NewGkvAbrechnungPopUpView _NewGkvAbrechnungPopUpView;
private readonly GkvAbrechnungListVM _Viewmodel;
private readonly NewGkvAbrechnungPopUpView _NewGkvAbrechnungPopUpView;
private readonly GkvAbrechnungLightListVM _Viewmodel;
public GkvAbrechnungOverview()
{
UpdateDataGridFilterCommand = new DelegateCommand(UpdateDataGridFilter);
public GkvAbrechnungOverview()
{
UpdateDataGridFilterCommand = new DelegateCommand(UpdateDataGridFilter);
InitializeComponent();
InitializeComponent();
DownloadLinkEngine = new DownloadLinkEngine();
DownloadLinkEngine = new DownloadLinkEngine();
_Viewmodel = new GkvAbrechnungListVM();
_Viewmodel.VMList.ListChanged += (s, e) => gridView.BestFitColumns();
_Viewmodel = new GkvAbrechnungLightListVM();
_Viewmodel.VMList.ListChanged += (s, e) => gridView.BestFitColumns();
DataContext = _Viewmodel;
DataContext = _Viewmodel;
//datagrid_gkvAbrechnungen.FixedFilter = new BinaryOperator("Datenaustauschreferenz", 1);
//datagrid_gkvAbrechnungen.FixedFilter = new BinaryOperator("Datenaustauschreferenz", 1);
_NewGkvAbrechnungPopUpView = new NewGkvAbrechnungPopUpView();
_NewGkvAbrechnungPopUpView.CancelButtonClicked += NewGkvAbrechnungPopUpViewCancelButtonClicked;
_NewGkvAbrechnungPopUpView.CreateButtonClicked += NewGkvAbrechnungPopUpViewCreateButtonClicked;
_NewGkvAbrechnungPopUpView = new NewGkvAbrechnungPopUpView();
_NewGkvAbrechnungPopUpView.CancelButtonClicked += NewGkvAbrechnungPopUpViewCancelButtonClicked;
_NewGkvAbrechnungPopUpView.CreateButtonClicked += NewGkvAbrechnungPopUpViewCreateButtonClicked;
_Viewmodel.DateTimeSpanFilter = yearMonthFilter.FilterSpan;
}
_Viewmodel.DateTimeSpanFilter = yearMonthFilter.FilterSpan;
}
public DownloadLinkEngine DownloadLinkEngine { get; set; }
public DelegateCommand UpdateDataGridFilterCommand { get; set; }
public DownloadLinkEngine DownloadLinkEngine { get; set; }
public DelegateCommand UpdateDataGridFilterCommand { get; set; }
private bool ShowAllInvoices => _Viewmodel.DateTimeSpanFilter is null;
private bool ShowAllInvoices => _Viewmodel.DateTimeSpanFilter is null;
private void RefreshGkvAbrechnungenList()
{
if (_IsRequesting && ServiceFacade.IsWaiting())
return;
private void RefreshGkvAbrechnungenList()
{
if (_IsRequesting && ServiceFacade.IsWaiting())
return;
try
{
_IsRequesting = true;
_IsRequesting = true;
ServiceFacade.DoGkvAccountingServiceAsync(s => s.GetFilteredGkvAbrechnungen(null), UpdateGkvAbrechnungList);
}
catch(Exception e)
ServiceFacade.DoGkvAccountingServiceAsync(s => s.GetFilteredGkvAbrechnungen(null), UpdateGkvAbrechnungList);
}
catch (Exception e)
{
_IsRequesting = false;
_IsRequesting = false;
throw e;
throw e;
}
_IsRequesting = false;
}
private void UpdateGkvAbrechnungList(IList<GkvAbrechnungDC> dcList)
{
this.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
_Viewmodel.UpdateList(dcList);
_IsRequesting = false;
}
if (datagrid_gkvAbrechnungen.Visibility != Visibility.Visible)
datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
private void UpdateGkvAbrechnungList(IList<GkvAbrechnungLightDC> dcList)
{
this.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
_Viewmodel.UpdateList(dcList);
UpdateDataGridFilter();
});
}
if (datagrid_gkvAbrechnungen.Visibility != Visibility.Visible)
datagrid_gkvAbrechnungen.Visibility = Visibility.Visible;
private void UpdateDataGridFilter()
{
datagrid_gkvAbrechnungen.FixedFilter = null;
UpdateDataGridFilter();
});
}
if (ShowAllInvoices)
{
datagrid_gkvAbrechnungen.FixedFilter = null;
}
else
{
var filterByInvoiceDate = radioFilterByInvoiceDate.IsChecked.Value;
private void UpdateDataGridFilter()
{
datagrid_gkvAbrechnungen.FixedFilter = null;
var filter_start = _Viewmodel.DateTimeSpanFilter.StartDate;
var filter_ende = _Viewmodel.DateTimeSpanFilter.EndDate.AddDays(1).AddMilliseconds(-1);
if (filterByInvoiceDate)
{
datagrid_gkvAbrechnungen.FixedFilter = CriteriaOperator.And(
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.ErstelltAm >= filter_start),
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.ErstelltAm <= filter_ende));
}
else
{
datagrid_gkvAbrechnungen.FixedFilter = CriteriaOperator.Or(
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => filter_start <= gkv.AbrechnungsZeitraumStart && gkv.AbrechnungsZeitraumStart <= filter_ende),
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => filter_start <= gkv.AbrechnungsZeitraumEnde && gkv.AbrechnungsZeitraumEnde <= filter_ende),
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.AbrechnungsZeitraumStart <= filter_start && filter_ende <= gkv.AbrechnungsZeitraumEnde));
}
}
gridView.BestFitColumns();
gridView.BestFitColumn(ColumnButtons);
}
private void NewGkvAbrechnungPopUpViewCancelButtonClicked(object sender, EventArgs e)
{
MainControl.CloseCurrentPopUp();
}
private void NewGkvAbrechnungPopUpViewCreateButtonClicked(object sender, EventArgs<GkvAbrechnungDC> e)
{
var gkv_abrechnung = e.Data;
var checked_invoice_bases = _NewGkvAbrechnungPopUpView.ViewModel.InvoiceBases.Where(x => x.IsChecked);
if (!checked_invoice_bases.Any())
return;
var success = ValidatorExtended.TryValidateGkvAbrechnung(gkv_abrechnung, checked_invoice_bases, false);
if (!success)
{
var txt = "Sie haben Rechnungen mit verschiedenen Rechnungsadressen ausgewählt.";
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OK);
return;
}
var already_used_invoices = checked_invoice_bases.Where(x => x.IsAlreadyInActiveGkvAbrechnung.Value);
if (already_used_invoices.Any())
if (ShowAllInvoices)
{
var txt = "Sie haben eine oder mehrere Rechnungen ausgewählt, welche bereits in einer " +
"anderen aktiven GKV-Abrechnung enthalten sind. Möchten Sie fortfahren?";
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OKCancel);
datagrid_gkvAbrechnungen.FixedFilter = null;
}
else
{
var filterByInvoiceDate = radioFilterByInvoiceDate.IsChecked.Value;
if (result != MessageBoxResult.OK)
return;
var filter_start = _Viewmodel.DateTimeSpanFilter.StartDate;
var filter_ende = _Viewmodel.DateTimeSpanFilter.EndDate.AddDays(1).AddMilliseconds(-1);
if (filterByInvoiceDate)
{
datagrid_gkvAbrechnungen.FixedFilter = CriteriaOperator.And(
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.ErstelltAm >= filter_start),
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.ErstelltAm <= filter_ende));
}
else
{
datagrid_gkvAbrechnungen.FixedFilter = CriteriaOperator.Or(
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => filter_start <= gkv.AbrechnungsZeitraumStart && gkv.AbrechnungsZeitraumStart <= filter_ende),
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => filter_start <= gkv.AbrechnungsZeitraumEnde && gkv.AbrechnungsZeitraumEnde <= filter_ende),
CriteriaOperator.FromLambda<GkvAbrechnungDC>(gkv => gkv.AbrechnungsZeitraumStart <= filter_start && filter_ende <= gkv.AbrechnungsZeitraumEnde));
}
}
var bereits_bezahlt = checked_invoice_bases.Where(x => x.IsPaid);
if (bereits_bezahlt.Any())
{
var txt = "Sie haben eine oder mehrere Rechnungen ausgewählt, welche bereits als 'Bezahlt' " +
"markiert sind. Möchten Sie fortfahren?";
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OKCancel);
gridView.BestFitColumns();
gridView.BestFitColumn(ColumnButtons);
}
if (result != MessageBoxResult.OK)
return;
}
private void NewGkvAbrechnungPopUpViewCancelButtonClicked(object sender, EventArgs e)
{
MainControl.CloseCurrentPopUp();
}
private void NewGkvAbrechnungPopUpViewCreateButtonClicked(object sender, EventArgs<GkvAbrechnungDC> e)
{
var gkv_abrechnung = e.Data;
MainControl.CloseCurrentPopUp();
var checked_invoice_bases = _NewGkvAbrechnungPopUpView.ViewModel.InvoiceBases.Where(x => x.IsChecked);
if (!checked_invoice_bases.Any())
return;
var success = ValidatorExtended.TryValidateGkvAbrechnung(gkv_abrechnung, checked_invoice_bases, false);
if (!success)
{
var txt = "Sie haben Rechnungen mit verschiedenen Rechnungsadressen ausgewählt.";
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OK);
return;
}
var already_used_invoices = checked_invoice_bases.Where(x => x.IsAlreadyInActiveGkvAbrechnung.Value);
if (already_used_invoices.Any())
{
var txt = "Sie haben eine oder mehrere Rechnungen ausgewählt, welche bereits in einer " +
"anderen aktiven GKV-Abrechnung enthalten sind. Möchten Sie fortfahren?";
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OKCancel);
if (result != MessageBoxResult.OK)
return;
}
var bereits_bezahlt = checked_invoice_bases.Where(x => x.IsPaid);
if (bereits_bezahlt.Any())
{
var txt = "Sie haben eine oder mehrere Rechnungen ausgewählt, welche bereits als 'Bezahlt' " +
"markiert sind. Möchten Sie fortfahren?";
var result = MessageBox.Show(txt, "Hinweis", MessageBoxButton.OKCancel);
if (result != MessageBoxResult.OK)
return;
}
MainControl.CloseCurrentPopUp();
var gkv_filter = new GkvAbrechnungCreateRequestDC
{
@@ -186,264 +190,245 @@ namespace BeWo.View.Detail.Accounting
};
ServiceFacade.DoGkvAccountingServiceAsync(x => x.CreateNewGkvAbrechnung(gkv_filter),
cb => Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(Action)delegate
{
if (cb.Success)
{
RefreshGkvAbrechnungenList();
}
else
{
BeWoWindowBuilder.ShowTitleErrorMessageBox(cb.Message, cb.TitleMessage);
}
}));
}
cb => Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(Action)delegate
{
if (cb.Success)
{
RefreshGkvAbrechnungenList();
}
else
{
BeWoWindowBuilder.ShowTitleErrorMessageBox(cb.Message, cb.TitleMessage);
}
}));
}
private void YearMonthFilter_FilterSpanChanged(object sender, EventArgs<DateTimeSpan> e)
{
_Viewmodel.DateTimeSpanFilter = e.Data;
UpdateDataGridFilter();
}
private void YearMonthFilter_FilterSpanChanged(object sender, EventArgs<DateTimeSpan> e)
{
_Viewmodel.DateTimeSpanFilter = e.Data;
UpdateDataGridFilter();
}
private void btn_details_Click(object sender, RoutedEventArgs e)
{
var vm = this.datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
private void btn_details_Click(object sender, RoutedEventArgs e)
{
var vm = this.datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
var window = BeWoWindowBuilder.GetGkvAbrechnungDetailWindow(vm);
var window = BeWoWindowBuilder.GetGkvAbrechnungDetailWindow(vm);
window.Closing += Detail_Window_Closing;
window.Closing += Detail_Window_Closing;
window.ShowDialog();
}
window.ShowDialog();
}
private void Detail_Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
var bewo_window = sender as BeWoWindow;
var detail_control = bewo_window.GroupBoxContent as GkvAbrechnungDetailControl;
private void Detail_Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
var bewo_window = sender as BeWoWindow;
var detail_control = bewo_window.GroupBoxContent as GkvAbrechnungDetailControl;
var vm = detail_control.DataContext as GkvAbrechnungVM;
var vm = detail_control.DataContext as GkvAbrechnungLightVM;
vm.CheckAllInvoiceBases();
vm.CheckAllInvoiceBases();
var checkbox_checked = detail_control.Checkbox_Bezahlt.IsChecked;
var textbox_text = detail_control.txt_Notice.Text;
var checkbox_checked = detail_control.Checkbox_Bezahlt.IsChecked;
var textbox_text = detail_control.txt_Notice.Text;
vm.Notice = textbox_text;
vm.Notice = textbox_text;
if (vm.IsDirty)
{
var dc_in = vm.CommitToDataContract();
if (vm.IsDirty)
{
var dc_in = vm.CommitToDataContract();
ServiceFacade.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
{
Dispatcher.Invoke(() => {
vm.UpdateByDataContract(dc_out);
});
}, false);
}
}
this.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), vm.UpdateByDataContract, false);
}
}
private void btn_send_Click(object sender, RoutedEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
private void btn_send_Click(object sender, RoutedEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungLightVM>();
var state = vm.GetState();
var state = vm.GetState();
string text = "Sind Sie sicher, dass Sie die gewählte GKV-Abrechnung senden möchten?";
string text = "Sind Sie sicher, dass Sie die gewählte GKV-Abrechnung senden möchten?";
if (state == GkvState.ErrorSoft)
text = "Die gewählte GKV-Abrechnung wurde nicht erfolgreich an die Krankenkasse übertragen. Möchten Sie sie erneut senden?";
if (MessageBox.Show(text, "GKV-Abrechnung senden", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
vm.SendGkvAbrechnung();
}
}
private void btn_delete_Click(object sender, RoutedEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
if (state == GkvState.ErrorSoft)
text = "Die gewählte GKV-Abrechnung wurde nicht erfolgreich an die Krankenkasse übertragen. Möchten Sie sie erneut senden?";
if (MessageBox.Show("Sind Sie sicher, dass Sie die gewählte GKV-Abrechnung löschen möchten?", "GKV-Abrechnung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
_Viewmodel.VMList.Remove(vm);
if (MessageBox.Show(text, "GKV-Abrechnung senden", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes)
return;
ServiceFacade.DoGkvAccountingServiceAsync(s => s.DeleteGkvAbrechnung(vm.CommitToDataContract()));
}
}
private void NewButton_OnClick(object sender, RoutedEventArgs e)
{
GkvAbrechnungDC gkvAbrechnungDC = new GkvAbrechnungDC();
var req = new GkvAbrechnungSendRequestDC();
req.GkvAbrechnungOid = vm.Oid;
var start = DateTime.Today.AddMonths(-1);
var first = new DateTime(start.Year, start.Month, 1);
var last = first.AddMonths(1).AddDays(-1);
this.DoGkvAccountingServiceAsync(s => s.SendNewGkvAbrechnung(req), vm.UpdateBySendResponse);
}
private void btn_delete_Click(object sender, RoutedEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungLightVM>();
gkvAbrechnungDC.AbrechnungsZeitraumStart = first;
gkvAbrechnungDC.AbrechnungsZeitraumEnde = last;
if (MessageBox.Show("Sind Sie sicher, dass Sie die gewählte GKV-Abrechnung löschen möchten?", "GKV-Abrechnung löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
this.DoGkvAccountingServiceAsync(s => s.DeleteGkvAbrechnung(vm.Oid, vm.Version), () => _Viewmodel.VMList.Remove(vm));
}
}
private void NewButton_OnClick(object sender, RoutedEventArgs e)
{
GkvAbrechnungDC gkvAbrechnungDC = new GkvAbrechnungDC();
GkvAbrechnungVM gkvAbrechnungVM = new GkvAbrechnungVM(gkvAbrechnungDC);
_NewGkvAbrechnungPopUpView.Clear();
_NewGkvAbrechnungPopUpView.ViewModel = gkvAbrechnungVM;
this.MainControl.ShowControlAsModalPopup(this._NewGkvAbrechnungPopUpView);
}
private void ReloadButton_OnClick(object sender, RoutedEventArgs e)
{
RefreshGkvAbrechnungenList();
}
var start = DateTime.Today.AddMonths(-1);
var first = new DateTime(start.Year, start.Month, 1);
var last = first.AddMonths(1).AddDays(-1);
private void gridView_Loaded(object sender, RoutedEventArgs e)
{
this.gridView.BestFitColumns();
}
private void gridView_ShownEditor(object sender, EditorEventArgs e)
{
if (e.Editor is CheckEdit)
{
var ed = (CheckEdit)e.Editor;
ed.Tag = e.Row;
}
else if (int.TryParse(datagrid_gkvAbrechnungen.CurrentColumn.Tag?.ToString(), out int tag) && gridView.ActiveEditor is TextEdit)
{
((TextEdit)gridView.ActiveEditor).SetPropertyValue("MaxLength", tag);
}
}
private void gridView_CellValueChanging(object sender, CellValueChangedEventArgs e)
{
if (e.Column is null)
return;
gkvAbrechnungDC.AbrechnungsZeitraumStart = first;
gkvAbrechnungDC.AbrechnungsZeitraumEnde = last;
if (e.Column.FieldName == nameof(GkvAbrechnungVM.Bezahlt))
{
if (e.Value is bool b && e.Row is GkvAbrechnungVM vm)
{
SaveBezahltChange(vm, b);
}
}
else if (e.Column.FieldName == nameof(GkvAbrechnungVM.UrbelegeGesendet))
{
if (e.Value is bool b && e.Row is GkvAbrechnungVM vm)
{
SaveUrbelegeGesendetChange(vm, b);
}
}
}
private void TableView_OnCustomRowAppearance(object sender, CustomRowAppearanceEventArgs e)
{
if (e.Property != null && e.Property.Name == "Background")
{
var gkvAbrechnungVM = datagrid_gkvAbrechnungen.GetRow(e.RowHandle) as GkvAbrechnungVM;
GkvAbrechnungVM gkvAbrechnungVM = new GkvAbrechnungVM(gkvAbrechnungDC);
_NewGkvAbrechnungPopUpView.Clear();
_NewGkvAbrechnungPopUpView.ViewModel = gkvAbrechnungVM;
this.MainControl.ShowControlAsModalPopup(this._NewGkvAbrechnungPopUpView);
}
private void ReloadButton_OnClick(object sender, RoutedEventArgs e)
{
RefreshGkvAbrechnungenList();
}
if (gkvAbrechnungVM is null)
return;
private void gridView_Loaded(object sender, RoutedEventArgs e)
{
this.gridView.BestFitColumns();
}
private void gridView_ShownEditor(object sender, EditorEventArgs e)
{
if (e.Editor is CheckEdit)
{
var ed = (CheckEdit)e.Editor;
ed.Tag = e.Row;
}
else if (int.TryParse(datagrid_gkvAbrechnungen.CurrentColumn.Tag?.ToString(), out int tag) && gridView.ActiveEditor is TextEdit)
{
((TextEdit)gridView.ActiveEditor).SetPropertyValue("MaxLength", tag);
}
}
private void gridView_CellValueChanging(object sender, CellValueChangedEventArgs e)
{
if (e.Column is null)
return;
if (gkvAbrechnungVM.GkvState == GkvState.WaitingForKrankenkasseTooLong && BeWoApp.Mandator.ColorWaitTooLong is string colorWaiting)
{
e.Result = ColorExtensions.ParseSolidColorBrush(colorWaiting);
e.Handled = true;
}
else if (gkvAbrechnungVM.GkvState == GkvState.WaitingForUrbelege && BeWoApp.Mandator.ColorSendUrbelege is string colorSend)
{
e.Result = ColorExtensions.ParseSolidColorBrush(colorSend);
e.Handled = true;
}
}
}
if (e.Column.FieldName == nameof(GkvAbrechnungLightVM.Bezahlt))
{
if (e.Value is bool b && e.Row is GkvAbrechnungLightVM vm)
{
SaveBezahltChange(vm, b);
}
}
else if (e.Column.FieldName == nameof(GkvAbrechnungLightVM.UrbelegeGesendet))
{
if (e.Value is bool b && e.Row is GkvAbrechnungLightVM vm)
{
SaveUrbelegeGesendetChange(vm, b);
}
}
}
private void TableView_OnCustomRowAppearance(object sender, CustomRowAppearanceEventArgs e)
{
if (e.Property != null && e.Property.Name == "Background")
{
var gkvAbrechnungVM = datagrid_gkvAbrechnungen.GetRow(e.RowHandle) as GkvAbrechnungLightVM;
private void radioFilterByInvoiceDate_Click(object sender, RoutedEventArgs e)
{
UpdateDataGridFilter();
}
if (gkvAbrechnungVM is null)
return;
private void SaveBezahltChange(GkvAbrechnungVM vm, bool b)
{
var dc_in = vm.CommitToDataContract();
if (gkvAbrechnungVM.GkvState == GkvState.WaitingForKrankenkasseTooLong && BeWoApp.Mandator.ColorWaitTooLong is string colorWaiting)
{
e.Result = ColorExtensions.ParseSolidColorBrush(colorWaiting);
e.Handled = true;
}
else if (gkvAbrechnungVM.GkvState == GkvState.WaitingForUrbelege && BeWoApp.Mandator.ColorSendUrbelege is string colorSend)
{
e.Result = ColorExtensions.ParseSolidColorBrush(colorSend);
e.Handled = true;
}
}
}
dc_in.Bezahlt = b;
private void radioFilterByInvoiceDate_Click(object sender, RoutedEventArgs e)
{
UpdateDataGridFilter();
}
ServiceFacade.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
{
Dispatcher.Invoke(() => {
vm.UpdateByDataContract(dc_out);
});
}, false);
}
private void SaveBezahltChange(GkvAbrechnungLightVM vm, bool b)
{
var dc_in = vm.CommitToDataContract();
private void SaveUrbelegeGesendetChange(GkvAbrechnungVM vm, bool b)
{
var dc_in = vm.CommitToDataContract();
dc_in.Bezahlt = b;
dc_in.UrbelegeGesendet = b;
this.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), vm.UpdateByDataContract, false);
}
ServiceFacade.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
{
Dispatcher.Invoke(() => {
vm.UpdateByDataContract(dc_out);
});
}, false);
}
private void SaveUrbelegeGesendetChange(GkvAbrechnungLightVM vm, bool b)
{
var dc_in = vm.CommitToDataContract();
private void SaveNoticeChange(GkvAbrechnungVM vm, string notice)
{
var dc_in = vm.CommitToDataContract();
dc_in.UrbelegeGesendet = b;
ServiceFacade.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out =>
{
Dispatcher.Invoke(() => {
vm.UpdateByDataContract(dc_out);
});
}, false);
}
this.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), vm.UpdateByDataContract, false);
}
private void gridView_CellValueChanged_1(object sender, CellValueChangedEventArgs e)
{
if (e.Column != null && e.Column.FieldName == "Notice")
{
if (e.Value is string s && e.Row is GkvAbrechnungVM vm)
{
SaveNoticeChange(vm, s);
}
}
}
private void SaveNoticeChange(GkvAbrechnungLightVM vm, string notice)
{
var dc_in = vm.CommitToDataContract();
this.DoGkvAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), vm.UpdateByDataContract, false);
}
private void gridView_CellValueChanged_1(object sender, CellValueChangedEventArgs e)
{
if (e.Column != null && e.Column.FieldName == "Notice")
{
if (e.Value is string s && e.Row is GkvAbrechnungLightVM vm)
{
SaveNoticeChange(vm, s);
}
}
}
private void BeWoView_Loaded(object sender, RoutedEventArgs e)
{
_Viewmodel.FirePropertyChangedItself();
_Viewmodel.FirePropertyChangedItself();
if (_NewGkvAbrechnungPopUpView.PopupObjectList is object)
_NewGkvAbrechnungPopUpView.PopupObjectList = null;
if (_NewGkvAbrechnungPopUpView.PopupObjectList is object)
_NewGkvAbrechnungPopUpView.PopupObjectList = null;
RefreshGkvAbrechnungenList();
}
RefreshGkvAbrechnungenList();
}
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungLightVM>();
string what2send = "unterschriebene Leistungsnachweise";
string what2send = "unterschriebene Leistungsnachweise";
if (vm.Verfahrensstufe != GkvVerfahrensstufe.Echt)
what2send += " und Rechnungen";
if (vm.Verfahrensstufe != GkvVerfahrensstufe.Echt)
what2send += " und Rechnungen";
BeWoApp.ShowInfoMessage($"Begleitzettel bitte inklusive der enthaltenen Urbelege ({what2send}) ausdrucken, " +
$"Anzahl der Urbelege noch eintragen und alles zusammen versenden.");
BeWoApp.ShowInfoMessage($"Begleitzettel bitte inklusive der enthaltenen Urbelege ({what2send}) ausdrucken, " +
$"Anzahl der Urbelege noch eintragen und alles zusammen versenden.");
BeWoUtils.NavigateToReportUri(vm.ReportLink, "Druckvorschau");
}
BeWoUtils.NavigateToReportUri(vm.ReportLink, "Druckvorschau");
}
private void Hyperlink_OnRequestNavigate2(object sender, RequestNavigateEventArgs e)
{
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungVM>();
var vm = datagrid_gkvAbrechnungen.GetCurrentValue<GkvAbrechnungLightVM>();
string what2send = "Leistungsnachweise";
string what2send = "Leistungsnachweise";
if (vm.Verfahrensstufe != GkvVerfahrensstufe.Echt)
what2send += " und Rechnungen";
if (vm.Verfahrensstufe != GkvVerfahrensstufe.Echt)
what2send += " und Rechnungen";
BeWoApp.ShowInfoMessage($"Begleitzettel bitte inklusive der enthaltenen Urbelege ({what2send}) ausdrucken, " +
$"Anzahl der Urbelege noch eintragen und alles zusammen versenden.");
BeWoApp.ShowInfoMessage($"Begleitzettel bitte inklusive der enthaltenen Urbelege ({what2send}) ausdrucken, " +
$"Anzahl der Urbelege noch eintragen und alles zusammen versenden.");
BeWoUtils.NavigateToReportUri(vm.ReportLink2, "Druckvorschau");
}
BeWoUtils.NavigateToReportUri(vm.ReportLink2, "Druckvorschau");
}
}
}

View File

@@ -50,21 +50,12 @@ namespace BeWo.ViewModel
private BindingList<InvoiceBaseVM> _InvoiceBases;
private OrganisationDC _Organisation;
private List<GkvTransferProtokollDC> _TransferProtokolle;
private List<GkvTransferProtokollDC> _Protokolle;
public GkvAbrechnungVM(GkvAbrechnungDC pDC) : base(pDC, !pDC.GkvAbrechnungOid.HasValue)
public GkvAbrechnungVM(GkvAbrechnungDC pDC) : base(pDC, !pDC.Oid.HasValue)
{
_InvoiceBases = new BindingList<InvoiceBaseVM>();
CheckAllInvoiceBasesCommand = new DelegateCommand(CheckAllInvoiceBases, HasAnyInvoiceBases);
UncheckAllInvoiceBasesCommand = new DelegateCommand(UncheckAllInvoicesBases, HasAnyInvoiceBases);
PrintSelectedInvoiceBasesCommand = new DelegateCommand(PrintSelectedInvoiceBases, HasAnySelectedInvoiceBases);
}
public DelegateCommand CheckAllInvoiceBasesCommand { get; set; }
public DelegateCommand UncheckAllInvoiceBasesCommand { get; set; }
public DelegateCommand PrintSelectedInvoiceBasesCommand { get; set; }
#region
public string AbrechnungsZeitraum => $"{AbrechnungsZeitraumStart.Value.ToShortDateString()} - {AbrechnungsZeitraumEnde.Value.ToShortDateString()}";
@@ -126,7 +117,7 @@ namespace BeWo.ViewModel
if (this.AreDifferent(this._GkvAbrechnungOid, value))
{
this._GkvAbrechnungOid = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.GkvAbrechnungOid, value), nameof(GkvAbrechnungOid));
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Oid, value), nameof(GkvAbrechnungOid));
this.FirePropertyChanged(nameof(GkvAbrechnungOid));
}
}
@@ -140,7 +131,7 @@ namespace BeWo.ViewModel
if (this.AreDifferent(this._GkvAbrechnungVersion, value))
{
this._GkvAbrechnungVersion = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.GkvAbrechnungVersion, value), nameof(GkvAbrechnungVersion));
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Version, value), nameof(GkvAbrechnungVersion));
this.FirePropertyChanged(nameof(GkvAbrechnungVersion));
}
}
@@ -233,13 +224,13 @@ namespace BeWo.ViewModel
get { return _InvoiceBases; }
set { _InvoiceBases = value; }
}
public List<GkvTransferProtokollDC> TransferProtokolle
public List<GkvTransferProtokollDC> Protokolle
{
get { return _TransferProtokolle; }
get { return _Protokolle; }
set
{
_TransferProtokolle = value;
FirePropertyChanged(nameof(TransferProtokolle));
_Protokolle = value;
FirePropertyChanged(nameof(Protokolle));
FirePropertyChanged(nameof(GkvState));
FirePropertyChanged(nameof(Fehlermeldung));
FirePropertyChanged(nameof(LastTransferDateTime));
@@ -287,7 +278,6 @@ namespace BeWo.ViewModel
}
}
#endregion
public IGkvTransferProtokoll LastTransferProtokoll => TransferProtokolle?.LastOrDefault();
public string RecipientString
{
@@ -352,17 +342,20 @@ namespace BeWo.ViewModel
}
}
public IEnumerable<IGkvTransferProtokoll> TransferProtokolle => Protokolle;
public IGkvTransferProtokoll LastTransferProtokoll => Protokolle?.LastOrDefault();
public bool IsFormularEnabled => LastTransferProtokoll is object ;
public bool IsUrbelegeEditEnabled => LastTransferProtokoll is object;
public bool IsBezahltEditEnabled => UrbelegeGesendet;
public GkvAbrechnungReportRequest ReportRequest
=> new GkvAbrechnungReportRequest(DataContract.GkvAbrechnungOid.Value, false);
=> new GkvAbrechnungReportRequest(DataContract.Oid.Value, false);
public string ReportLink
=> BeWoApp.SiteOfOrigin + "/ReportView.aspx" + ReportRequest.GetUrlPathString();
public GkvAbrechnungReportRequest ReportRequest2
=> new GkvAbrechnungReportRequest(DataContract.GkvAbrechnungOid.Value, true);
=> new GkvAbrechnungReportRequest(DataContract.Oid.Value, true);
public string ReportLink2
=> BeWoApp.SiteOfOrigin + "/ReportView.aspx" + ReportRequest2.GetUrlPathString();
@@ -373,7 +366,7 @@ namespace BeWo.ViewModel
public void UpdateByDataContract(GkvAbrechnungDC pDataContract)
{
GkvAbrechnungVersion = pDataContract.GkvAbrechnungVersion;
GkvAbrechnungVersion = pDataContract.Version;
Notice = pDataContract.Notice;
@@ -393,8 +386,8 @@ namespace BeWo.ViewModel
_ErstelltAm = pDataContract.ErstelltAm;
_GkvAbrechnungOid = pDataContract.GkvAbrechnungOid;
_GkvAbrechnungVersion = pDataContract.GkvAbrechnungVersion;
_GkvAbrechnungOid = pDataContract.Oid;
_GkvAbrechnungVersion = pDataContract.Version;
_Notice = pDataContract.Notice;
@@ -411,7 +404,7 @@ namespace BeWo.ViewModel
if (pDataContract.TransferProtokolle != null)
{
_TransferProtokolle = new List<GkvTransferProtokollDC>(pDataContract.TransferProtokolle);
_Protokolle = new List<GkvTransferProtokollDC>(pDataContract.Protokolle);
}
_Organisation = pDataContract.Organisation;
@@ -426,8 +419,8 @@ namespace BeWo.ViewModel
pDataContract.ErstelltAm = _ErstelltAm;
pDataContract.GkvAbrechnungOid = _GkvAbrechnungOid;
pDataContract.GkvAbrechnungVersion = _GkvAbrechnungVersion;
pDataContract.Oid = _GkvAbrechnungOid;
pDataContract.Version = _GkvAbrechnungVersion;
pDataContract.Notice = _Notice;
pDataContract.Betrag = _Betrag;
@@ -441,97 +434,9 @@ namespace BeWo.ViewModel
pDataContract.InvoiceBases = _InvoiceBases2.Where(x => x.IsChecked).Select(vm => vm.CommitToDataContract()).ToList();
pDataContract.Organisation = _Organisation;
pDataContract.TransferProtokolle = _TransferProtokolle?.ToList();
pDataContract.Protokolle = _Protokolle?.ToList();
return pDataContract;
}
public void SendGkvAbrechnung()
{
var req = new GkvAbrechnungSendRequestDC();
req.GkvAbrechnungOid = GkvAbrechnungOid.Value;
ServiceFacade.DoGkvAccountingServiceAsync(s => s.SendNewGkvAbrechnung(req),
cb => Application.Current.Dispatch(() => UpdateBySendResponse(cb)), true);
}
public void UpdateBySendResponse(GkvAbrechnungSendResponseDC cb)
{
var dc = cb.GkvAbrechnungDC;
if (dc is null)
{
MessageBox.Show(Application.Current.MainWindow, cb.Message);
return;
}
GkvAbrechnungVersion = dc.GkvAbrechnungVersion;
TransferProtokolle = dc.TransferProtokolle.ToList();
IsReady2Send = dc.IsReady2Send;
SendTooltip = dc.SendTooltip;
var protokoll = cb.TransferProtokoll;
if (protokoll.ResultType == GkvTransferResultType.FailSoft)
{
MessageBox.Show(Application.Current.MainWindow, protokoll.Fehlernachricht, protokoll.Fehlertitel);
}
else if (protokoll.ResultType == GkvTransferResultType.FailFatal)
{
BeWoApp.ShowError(protokoll.Fehlertitel + ": " + protokoll.Fehlernachricht, null, false, false);
}
else
{
MessageBox.Show(Application.Current.MainWindow, "Ihre Sendung wurde korrekt übertragen");
}
}
public bool HasAnyInvoiceBases()
{
return InvoiceBases2 is object && InvoiceBases2.Any();
}
public void CheckAllInvoiceBases()
{
if (!HasAnyInvoiceBases())
return;
foreach (var invoice_base in InvoiceBases2)
{
invoice_base.IsChecked = true;
}
}
internal void UncheckAllInvoicesBases()
{
if (!HasAnyInvoiceBases())
return;
foreach (var invoice_base in InvoiceBases2)
{
invoice_base.IsChecked = false;
}
}
public bool HasAnySelectedInvoiceBases()
{
return HasAnyInvoiceBases() && getSelectedInvoiceBases().Any();
}
internal void PrintSelectedInvoiceBases()
{
var selected = new List<long>(getSelectedInvoiceBases());
if (!selected.Any())
return;
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceListReport(selected), ms => BeWoApp.MainControl.Dispatch(() => BeWoUtils.ShowReportWindow(ms, "Rechnungen")));
}
private IEnumerable<long> getSelectedInvoiceBases()
{
return InvoiceBases2.Where(x => x.IsChecked).Select(x => x.DataContract.InvoiceBaseOid.Value);
}
}
}

View File

@@ -0,0 +1,521 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using System.Windows.Threading;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.Validation;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Light;
using BS.Shared.Extensions;
using BS.Shared.Interface;
using BS.Shared.ReportRequests;
using DevExpress.Mvvm;
using DevExpress.Xpf.Core;
namespace BeWo.ViewModel.Light
{
public class GkvAbrechnungLightVM : AbstractDCMapperVM<GkvAbrechnungLightDC>, IGkvAbrechnung
{
public static string PropertyName_AbrechnungsZeitraumStart = "AbrechnungsZeitraumStart";
public static string PropertyName_AbrechnungsZeitraumEnde = "AbrechnungsZeitraumEnde";
public static string PropertyName_ErstelltAm = "ErstelltAm";
private long _Oid;
private long _Version;
private string _Notice;
private long _OrganisationOid;
private string _OrganisationName;
private DateTime? _AbrechnungsZeitraumStart;
private DateTime? _AbrechnungsZeitraumEnde;
private DateTime _ErstelltAm;
private decimal _Betrag;
private bool _Bezahlt;
private bool _UrbelegeGesendet;
private GkvVerfahrensstufe _Verfahrensstufe;
internal bool _IsChecked;
private bool _IsReady2Send;
private string _SendTooltip;
private List<GkvTransferProtokollLightDC> _Protokolle;
public GkvAbrechnungLightVM(GkvAbrechnungLightDC pDC) : base(pDC, false)
{
InvoiceBases = new BindingList<InvoiceBaseLightVM>();
CheckAllInvoiceBasesCommand = new DelegateCommand(CheckAllInvoiceBases, HasAnyInvoiceBases);
UncheckAllInvoiceBasesCommand = new DelegateCommand(UncheckAllInvoicesBases, HasAnyInvoiceBases);
PrintSelectedInvoiceBasesCommand = new DelegateCommand(PrintSelectedInvoiceBases, HasAnySelectedInvoiceBases);
}
public DelegateCommand CheckAllInvoiceBasesCommand { get; set; }
public DelegateCommand UncheckAllInvoiceBasesCommand { get; set; }
public DelegateCommand PrintSelectedInvoiceBasesCommand { get; set; }
#region
public string AbrechnungsZeitraum => $"{AbrechnungsZeitraumStart.Value.ToShortDateString()} - {AbrechnungsZeitraumEnde.Value.ToShortDateString()}";
public DateTime? AbrechnungsZeitraumStart
{
get { return this._AbrechnungsZeitraumStart; }
set
{
if (this.AreDifferent(this._AbrechnungsZeitraumStart, value))
{
this._AbrechnungsZeitraumStart = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.AbrechnungsZeitraumStart, value), PropertyName_AbrechnungsZeitraumStart);
this.FirePropertyChanged(PropertyName_AbrechnungsZeitraumStart);
// RE893748923
// var day = value.Value.Day;
// AbrechnungsZeitraumEnde = value.Value.AddDays(1 - day).AddMonths(1).AddDays(-1);
}
}
}
public DateTime? AbrechnungsZeitraumEnde
{
get { return this._AbrechnungsZeitraumEnde; }
set
{
if (this.AreDifferent(this._AbrechnungsZeitraumEnde, value))
{
this._AbrechnungsZeitraumEnde = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.AbrechnungsZeitraumEnde, value), PropertyName_AbrechnungsZeitraumEnde);
this.FirePropertyChanged(PropertyName_AbrechnungsZeitraumEnde);
}
}
}
public DateTime ErstelltAm
{
get { return this._ErstelltAm; }
set
{
if (AreDifferent(_ErstelltAm, value))
{
_ErstelltAm = value;
StoreDirtyInformation(AreDifferent(DataContract.ErstelltAm, value), nameof(ErstelltAm));
FirePropertyChanged(nameof(ErstelltAm));
FirePropertyChanged(nameof(ErstelltAmDate));
}
}
}
public DateTime ErstelltAmDate => ErstelltAm.Date;
public long Oid
{
get { return this._Oid; }
set
{
if (this.AreDifferent(this._Oid, value))
{
this._Oid = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Oid, value), nameof(Oid));
this.FirePropertyChanged(nameof(Oid));
}
}
}
public long Version
{
get { return this._Oid; }
set
{
if (this.AreDifferent(this._Version, value))
{
this._Version = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Version, value), nameof(Version));
this.FirePropertyChanged(nameof(Version));
}
}
}
public string Notice
{
get { return this._Notice; }
set
{
if (this.AreDifferent(this._Notice, value))
{
this._Notice = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Notice, value), nameof(Notice));
this.FirePropertyChanged(nameof(Notice));
}
}
}
public decimal Betrag
{
get { return this._Betrag; }
set
{
if (this.AreDifferent(this._Betrag, value))
{
this._Betrag = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Betrag, value), nameof(Betrag));
this.FirePropertyChanged(nameof(Betrag));
}
}
}
public bool Bezahlt
{
get { return _Bezahlt; }
set
{
if (AreDifferent(this._Bezahlt, value))
{
_Bezahlt = value;
StoreDirtyInformation(AreDifferent(DataContract.Bezahlt, value), nameof(Bezahlt));
FirePropertyChanged(nameof(Bezahlt));
FirePropertyChanged(nameof(GkvState));
FirePropertyChanged(nameof(Fehlermeldung));
}
}
}
public bool UrbelegeGesendet
{
get { return _UrbelegeGesendet; }
set
{
if (!AreDifferent(_UrbelegeGesendet, value))
return;
_UrbelegeGesendet = value;
StoreDirtyInformation(AreDifferent(DataContract.UrbelegeGesendet, value), nameof(UrbelegeGesendet));
FirePropertyChanged(nameof(UrbelegeGesendet));
FirePropertyChanged(nameof(GkvState));
FirePropertyChanged(nameof(IsBezahltEditEnabled));
}
}
public GkvState GkvState
{
get { return this.GetState(); }
}
public bool IsChecked
{
get { return _IsChecked; }
set
{
if (AreDifferent(_IsChecked, value))
{
_IsChecked = value;
FirePropertyChanged(nameof(IsChecked));
}
}
}
public BindingList<InvoiceBaseLightVM> InvoiceBases { get; set; }
public List<GkvTransferProtokollLightDC> Protokolle
{
get { return _Protokolle; }
set
{
_Protokolle = value;
FirePropertyChanged(nameof(Protokolle));
FirePropertyChanged(nameof(GkvState));
FirePropertyChanged(nameof(Fehlermeldung));
FirePropertyChanged(nameof(LastTransferDateTime));
}
}
public long OrganisationOid
{
get { return _OrganisationOid; }
set
{
if (!AreDifferent(_OrganisationOid, value))
return;
_OrganisationOid = value;
StoreDirtyInformation(this.AreDifferent(this.DataContract.OrganisationOid, value), nameof(OrganisationOid));
FirePropertyChanged(nameof(OrganisationOid));
}
}
public string OrganisationName
{
get { return _OrganisationName; }
set
{
if (!AreDifferent(_OrganisationName, value))
return;
_OrganisationName = value;
StoreDirtyInformation(this.AreDifferent(this.DataContract.OrganisationName, value), nameof(OrganisationName));
FirePropertyChanged(nameof(OrganisationName));
}
}
public GkvVerfahrensstufe Verfahrensstufe
{
get { return this._Verfahrensstufe; }
set
{
if (this.AreDifferent(this._Verfahrensstufe, value))
{
this._Verfahrensstufe = value;
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Verfahrensstufe, value), nameof(Verfahrensstufe));
this.FirePropertyChanged(nameof(Verfahrensstufe));
}
}
}
public int VerfahrensstufeInt
{
get { return (int)Verfahrensstufe; }
set
{
if (!AreDifferent(this.VerfahrensstufeInt, value))
return;
Verfahrensstufe = (GkvVerfahrensstufe)value;
//FirePropertyChanged(nameof(VerfahrensstufeInt));
}
}
#endregion
public string RecipientString
{
get
{
if (InvoiceBases != null && InvoiceBases.Any())
{
return InvoiceBases.First().RecipientOrganisation;
}
return string.Empty;
}
}
public string Fehlermeldung
{
get
{
if (!(LastTransferProtokoll is GkvTransferProtokollDC last))
return null;
if (string.IsNullOrWhiteSpace(last.Fehlernachricht))
return null;
if (string.IsNullOrWhiteSpace(last.Fehlertitel))
return last.Fehlernachricht;
return $"{last.Fehlertitel}: {last.Fehlernachricht}";
}
}
public DateTime? LastTransferDateTime
{
get
{
if (LastTransferProtokoll is GkvTransferProtokollDC last)
return last.ErstelltAm?.Date;
return null;
}
}
public bool IsReady2Send
{
get { return _IsReady2Send; }
set
{
if (!AreDifferent(IsReady2Send, value))
return;
_IsReady2Send = value;
FirePropertyChanged(nameof(IsReady2Send));
}
}
public string SendTooltip
{
get { return _SendTooltip; }
set
{
if (!AreDifferent(SendTooltip, value))
return;
_SendTooltip = value;
FirePropertyChanged(nameof(SendTooltip));
}
}
public IEnumerable<IGkvTransferProtokoll> TransferProtokolle => Protokolle;
public IGkvTransferProtokoll LastTransferProtokoll => Protokolle?.LastOrDefault();
public bool IsFormularEnabled => LastTransferProtokoll is object ;
public bool IsUrbelegeEditEnabled => LastTransferProtokoll is object;
public bool IsBezahltEditEnabled => UrbelegeGesendet;
public GkvAbrechnungReportRequest ReportRequest
=> new GkvAbrechnungReportRequest(DataContract.Oid, false);
public string ReportLink
=> BeWoApp.SiteOfOrigin + "/ReportView.aspx" + ReportRequest.GetUrlPathString();
public GkvAbrechnungReportRequest ReportRequest2
=> new GkvAbrechnungReportRequest(DataContract.Oid, true);
public string ReportLink2
=> BeWoApp.SiteOfOrigin + "/ReportView.aspx" + ReportRequest2.GetUrlPathString();
public void FirePropertyIsReady2CreateChanged()
=> FirePropertyChanged(nameof(IsReady2Create));
public bool IsReady2Create
=> InvoiceBases?.Where(x => x.IsChecked).Any() ?? false;
public void UpdateByDataContract(GkvAbrechnungLightDC pDataContract)
{
Version = pDataContract.Version;
Notice = pDataContract.Notice;
Betrag = pDataContract.Betrag;
Bezahlt = pDataContract.Bezahlt;
if (pDataContract.InvoiceBases != null)
{
var l = pDataContract.InvoiceBases.Select(x => new InvoiceBaseLightVM(x, true)).ToList();
InvoiceBases = new BindingList<InvoiceBaseLightVM>(l);
}
}
protected override void InitByDataContract(GkvAbrechnungLightDC pDataContract)
{
_AbrechnungsZeitraumStart = pDataContract.AbrechnungsZeitraumStart;
_AbrechnungsZeitraumEnde = pDataContract.AbrechnungsZeitraumEnde;
_ErstelltAm = pDataContract.ErstelltAm;
_Oid = pDataContract.Oid;
_Version = pDataContract.Version;
_Notice = pDataContract.Notice;
_Betrag = pDataContract.Betrag;
_Bezahlt = pDataContract.Bezahlt;
_UrbelegeGesendet = pDataContract.UrbelegeGesendet;
_Verfahrensstufe = pDataContract.Verfahrensstufe;
if (pDataContract.InvoiceBases != null)
{
var l = pDataContract.InvoiceBases.Select(x => new InvoiceBaseLightVM(x, true)).ToList();
InvoiceBases = new BindingList<InvoiceBaseLightVM>(l);
}
if (pDataContract.Protokolle != null)
{
_Protokolle = new List<GkvTransferProtokollLightDC>(pDataContract.Protokolle);
}
_OrganisationOid = pDataContract.OrganisationOid;
_OrganisationName = pDataContract.OrganisationName;
_IsReady2Send = pDataContract.IsReady2Send;
_SendTooltip = pDataContract.SendTooltip;
}
protected override GkvAbrechnungLightDC MapToDataContract(GkvAbrechnungLightDC pDataContract, bool doCommit)
{
pDataContract.Version = _Version;
pDataContract.Notice = _Notice;
pDataContract.Betrag = _Betrag;
pDataContract.Bezahlt = _Bezahlt;
return pDataContract;
}
public void UpdateBySendResponse(GkvAbrechnungSendResponseDC cb)
{
var dc = cb.GkvAbrechnungDC;
if (dc is null)
{
MessageBox.Show(Application.Current.MainWindow, cb.Message);
return;
}
Version = dc.Version;
Protokolle = dc.Protokolle.ToList();
IsReady2Send = dc.IsReady2Send;
SendTooltip = dc.SendTooltip;
var protokoll = cb.TransferProtokoll;
if (protokoll.ResultType == GkvTransferResultType.FailSoft)
{
MessageBox.Show(Application.Current.MainWindow, protokoll.Fehlernachricht, protokoll.Fehlertitel);
}
else if (protokoll.ResultType == GkvTransferResultType.FailFatal)
{
BeWoApp.ShowError(protokoll.Fehlertitel + ": " + protokoll.Fehlernachricht, null, false, false);
}
else
{
MessageBox.Show(Application.Current.MainWindow, "Ihre Sendung wurde korrekt übertragen");
}
}
public bool HasAnyInvoiceBases()
{
return InvoiceBases is object && InvoiceBases.Any();
}
public void CheckAllInvoiceBases()
{
if (!HasAnyInvoiceBases())
return;
foreach (var invoice_base in InvoiceBases)
{
invoice_base.IsChecked = true;
}
}
internal void UncheckAllInvoicesBases()
{
if (!HasAnyInvoiceBases())
return;
foreach (var invoice_base in InvoiceBases)
{
invoice_base.IsChecked = false;
}
}
public bool HasAnySelectedInvoiceBases()
{
return HasAnyInvoiceBases() && getSelectedInvoiceBases().Any();
}
internal void PrintSelectedInvoiceBases()
{
var selected = new List<long>(getSelectedInvoiceBases());
if (!selected.Any())
return;
ServiceFacade.DoReportServiceAsync(s => s.CreateInvoiceListReport(selected), ms => BeWoApp.MainControl.Dispatch(() => BeWoUtils.ShowReportWindow(ms, "Rechnungen")));
}
private IEnumerable<long> getSelectedInvoiceBases()
{
return InvoiceBases.Where(x => x.IsChecked).Select(x => x.DataContract.Oid.Value);
}
}
}

View File

@@ -0,0 +1,312 @@
using BeWo.Validation;
using BeWo.ViewModel.ListViewModel;
using BS.Shared.DataContracts;
using BS.Shared;
using BS.Shared.DataContracts.Light;
using BS.Shared.Interface;
using BS.Shared.Translation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BS.Shared.Core;
namespace BeWo.ViewModel.Light
{
public class InvoiceBaseLightVM : AbstractDCMapperVM<InvoiceBaseLightDC>
{
private readonly Dictionary<InvoiceType, string> _TypeTranslation = new Dictionary<InvoiceType, string>
{
{
InvoiceType.CustomerEquity, Translator.Translate("Eigenanteil")
},
{
InvoiceType.General, Translator.Translate("Allgemein")
},
{
InvoiceType.Settlement, Translator.Translate("Spitzabrechnung")
},
{
InvoiceType.Service, Translator.Translate("Rechnung")
}
};
private DateTime? _AccountingPeriodEnd;
private DateTime? _AccountingPeriodStart;
private string _CustomerName = string.Empty;
private string _RecipientOrganisation = string.Empty;
private DateTime? _InvoiceDate;
private string _InvoiceNumber = string.Empty;
private string _InvoiceTypeText = string.Empty;
private decimal? _TotalAmount;
internal bool _IsPaid;
internal bool _IsChecked;
private string _Notice = string.Empty;
public InvoiceBaseLightVM(InvoiceBaseLightDC pDC, bool isChecked = false)
: base(pDC, false)
{
_IsChecked = isChecked;
}
public bool IsGkvValid { get; private set; }
public string IsGkvValidError { get; private set; }
public bool? IsAlreadyInActiveGkvAbrechnung { get; private set; }
public bool IsChecked
{
get { return _IsChecked; }
set
{
if (AreDifferent(_IsChecked, value))
{
_IsChecked = value;
FirePropertyChanged("IsChecked");
}
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? AccountingPeriodEnd
{
get { return _AccountingPeriodEnd; }
set
{
if (AreDifferent(_AccountingPeriodEnd, value))
{
_AccountingPeriodEnd = value;
StoreDirtyInformation(AreDifferent(DataContract.AccountingPeriodEnd, value), nameof(AccountingPeriodEnd));
FirePropertyChanged(nameof(AccountingPeriodEnd));
}
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? AccountingPeriodStart
{
get { return _AccountingPeriodStart; }
set
{
if (AreDifferent(_AccountingPeriodStart, value))
{
_AccountingPeriodStart = value;
StoreDirtyInformation(AreDifferent(DataContract.AccountingPeriodStart, value), nameof(AccountingPeriodStart));
FirePropertyChanged(nameof(AccountingPeriodStart));
}
}
}
public string AccountingPeriodString
{
get
{
return _AccountingPeriodEnd.HasValue && _AccountingPeriodStart.HasValue
? _AccountingPeriodStart.Value.ToShortDateString() + " - " + _AccountingPeriodEnd.Value.ToShortDateString()
: string.Empty;
}
set { }
}
public string CustomerName
{
get { return _CustomerName; }
set
{
if (AreDifferent(_CustomerName, value))
{
_CustomerName = value;
StoreDirtyInformation(AreDifferent(DataContract.CustomerName, value), nameof(CustomerName));
FirePropertyChanged(nameof(CustomerName));
}
}
}
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
public DateTime? InvoiceDate
{
get { return _InvoiceDate; }
set
{
if (AreDifferent(_InvoiceDate, value))
{
_InvoiceDate = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceDate, value), nameof(InvoiceDate));
FirePropertyChanged(nameof(InvoiceDate));
}
}
}
public string InvoiceNumber
{
get { return _InvoiceNumber; }
set
{
if (AreDifferent(_InvoiceNumber, value))
{
_InvoiceNumber = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceNumber, value), nameof(InvoiceNumber));
FirePropertyChanged(nameof(InvoiceNumber));
}
}
}
public string InvoiceTypeText
{
get { return _InvoiceTypeText; }
set
{
if (AreDifferent(InvoiceTypeText, value))
{
_InvoiceTypeText = value;
StoreDirtyInformation(AreDifferent(DataContract.InvoiceTypeText, value), nameof(InvoiceTypeText));
FirePropertyChanged(nameof(InvoiceTypeText));
}
}
}
public bool IsPaid
{
get { return _IsPaid; }
set
{
if (AreDifferent(_IsPaid, value))
{
_IsPaid = value;
StoreDirtyInformation(AreDifferent(DataContract.IsPaid, value), nameof(IsPaid));
FirePropertyChanged(nameof(IsPaid));
}
}
}
public string Notice
{
get { return _Notice; }
set
{
if (AreDifferent(_Notice, value))
{
_Notice = value;
StoreDirtyInformation(AreDifferent(DataContract.Notice, value), nameof(Notice));
FirePropertyChanged(nameof(Notice));
}
}
}
public string RecipientOrganisation
{
get { return _RecipientOrganisation; }
set
{
if (AreDifferent(_RecipientOrganisation, value))
{
_RecipientOrganisation = value;
StoreDirtyInformation(AreDifferent(DataContract.RecipientOrganisation, value), nameof(RecipientOrganisation));
FirePropertyChanged(nameof(RecipientOrganisation));
}
}
}
public string ReportLink
{
get
{
string url = string.Empty;
switch (DataContract.Type)
{
case InvoiceType.CustomerEquity:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ioid=" + DataContract.Oid + "&type=CustomerInvoice";
break;
case InvoiceType.General:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ioid=" + DataContract.Oid + "&type=CustomerInvoice";
break;
case InvoiceType.Settlement:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ibid=" + DataContract.Oid + "&type=" + Utils.EnumName(ReportTypes.Settlement);
break;
case InvoiceType.Service:
url = BeWoApp.SiteOfOrigin + "/ReportView.aspx?ibid=" + DataContract.Oid + "&type=" + Utils.EnumName(ReportTypes.ServiceInvoice);
break;
default:
url = string.Empty;
break;
}
return url;
}
}
public decimal? TotalAmount
{
get { return _TotalAmount; }
set
{
if (AreDifferent(_TotalAmount, value))
{
_TotalAmount = value;
StoreDirtyInformation(AreDifferent(DataContract.TotalAmount, value), nameof(TotalAmount));
FirePropertyChanged(nameof(TotalAmount));
}
}
}
public string TypeString
{
get
{
if (!String.IsNullOrEmpty(DataContract.InvoiceTypeText))
{
return DataContract.InvoiceTypeText;
}
return _TypeTranslation[DataContract.Type];
}
}
public String BackgroundColor
{
get; set;
}
protected override void InitByDataContract(InvoiceBaseLightDC pDataContract)
{
// private DateTime? _AccountingPeriodEnd;
//private DateTime? _AccountingPeriodStart;
//private string _CustomerName = string.Empty;
//private string _RecipientOrganisation = string.Empty;
//private string InvoiceTypeText = string.Empty;
//private DateTime _InvoiceDate;
_AccountingPeriodStart = pDataContract.AccountingPeriodStart;
_AccountingPeriodEnd = pDataContract.AccountingPeriodEnd;
_CustomerName = pDataContract.CustomerName;
_RecipientOrganisation = pDataContract.RecipientOrganisation;
_IsPaid = pDataContract.IsPaid;
_InvoiceTypeText = pDataContract.InvoiceTypeText;
_InvoiceNumber = pDataContract.InvoiceNumber;
_InvoiceDate = pDataContract.InvoiceDate;
_AccountingPeriodEnd = pDataContract.AccountingPeriodEnd;
_AccountingPeriodStart = pDataContract.AccountingPeriodStart;
_Notice = pDataContract.Notice;
_TotalAmount = pDataContract.TotalAmount;
}
protected override InvoiceBaseLightDC MapToDataContract(InvoiceBaseLightDC pDataContract, bool doCommit)
{
pDataContract.IsPaid = _IsPaid;
pDataContract.Notice = _Notice;
return pDataContract;
}
}
}

View File

@@ -1,60 +1,62 @@
using System.Collections.Generic;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
namespace BeWo.ViewModel.ListViewModel
{
public class GkvAbrechnungListVM : AbstractDCListMapperVM<GkvAbrechnungDC, GkvAbrechnungVM>
{
public static string PropertyName_DateTimeSpanFilter = "DateTimeSpanFilter";
public static string PropertyName_FilterResultAmountSum = "FilterResultAmountSum";
public static string PropertyName_FilterResultAmountNotPaidSum = "FilterResultAmountNotPaidSum";
private DateTimeSpan _DateTimeSpanFilter;
public GkvAbrechnungListVM(List<GkvAbrechnungDC> pDCList) : base(pDCList)
{
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountSum);
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
}
public GkvAbrechnungListVM() : this(null)
{
}
public DateTimeSpan DateTimeSpanFilter
{
get
{
return this._DateTimeSpanFilter;
}
set
{
if (this.AreDifferent(this._DateTimeSpanFilter, value))
{
this._DateTimeSpanFilter = value;
this.FirePropertyChanged(PropertyName_DateTimeSpanFilter);
}
}
}
internal void UpdateList(IList<GkvAbrechnungDC> dcList)
{
VMList.Clear();
if (dcList is object)
foreach (var dc in dcList)
{
VMList.Add(CreateVM(dc));
}
FirePropertyChanged(PropertyName_FilterResultAmountSum);
FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
}
internal void ClearList() => UpdateList(null);
}
using System.Collections.Generic;
using BeWo.ViewModel.Light;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Light;
namespace BeWo.ViewModel.ListViewModel.Light
{
public class GkvAbrechnungLightListVM : AbstractDCListMapperVM<GkvAbrechnungLightDC, GkvAbrechnungLightVM>
{
public static string PropertyName_DateTimeSpanFilter = "DateTimeSpanFilter";
public static string PropertyName_FilterResultAmountSum = "FilterResultAmountSum";
public static string PropertyName_FilterResultAmountNotPaidSum = "FilterResultAmountNotPaidSum";
private DateTimeSpan _DateTimeSpanFilter;
public GkvAbrechnungLightListVM(List<GkvAbrechnungLightDC> pDCList) : base(pDCList)
{
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountSum);
this.VMList.ListChanged += (s, e) => this.FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
}
public GkvAbrechnungLightListVM() : this(null)
{
}
public DateTimeSpan DateTimeSpanFilter
{
get
{
return this._DateTimeSpanFilter;
}
set
{
if (this.AreDifferent(this._DateTimeSpanFilter, value))
{
this._DateTimeSpanFilter = value;
this.FirePropertyChanged(PropertyName_DateTimeSpanFilter);
}
}
}
internal void UpdateList(IList<GkvAbrechnungLightDC> dcList)
{
VMList.Clear();
if (dcList is object)
foreach (var dc in dcList)
{
VMList.Add(CreateVM(dc));
}
FirePropertyChanged(PropertyName_FilterResultAmountSum);
FirePropertyChanged(PropertyName_FilterResultAmountNotPaidSum);
}
internal void ClearList() => UpdateList(null);
}
}

View File

@@ -10,12 +10,16 @@ namespace BeWo.Data.Access
/// Kleiner Fix bzgl Threadsafe
private static readonly Lazy<AdoDAO> _AdoDAO = new Lazy<AdoDAO>(() => new AdoDAO());
private static readonly Lazy<GenericDAO> _GenericDAO = new Lazy<GenericDAO>(() => new GenericDAO());
private static readonly Lazy<FinanceDAO> _FinanceDAO = new Lazy<FinanceDAO>(() => new FinanceDAO());
private static readonly Lazy<OrganisationDAO> _OrganisationDAO = new Lazy<OrganisationDAO>(() => new OrganisationDAO());
private static readonly Lazy<ScriptDAO> _ScriptDAO = new Lazy<ScriptDAO>(() => new ScriptDAO());
private static readonly Lazy<SearchDAO> _SearchDAO = new Lazy<SearchDAO>(() => new SearchDAO());
private static readonly Lazy<UserDAO> _UserDAO = new Lazy<UserDAO>(() => new UserDAO());
public static AdoDAO AdoDAO => _AdoDAO.Value;
public static GenericDAO GenericDAO => _GenericDAO.Value;
public static FinanceDAO FinanceDAO => _FinanceDAO.Value;
public static OrganisationDAO OrganisationDAO => _OrganisationDAO.Value;
public static ScriptDAO ScriptDAO => _ScriptDAO.Value;
public static SearchDAO SearchDAO => _SearchDAO.Value;
public static UserDAO UserDAO => _UserDAO.Value;

101
Data/Access/FinanceDAO.cs Normal file
View File

@@ -0,0 +1,101 @@
using BeWo.Data.Entities;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts;
using NHibernate.Criterion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BS.Shared.Interface;
using BeWo.Data.Entities.Light;
using BS.Shared;
namespace BeWo.Data.Access
{
/// <summary>
///
/// Ggf Gkv in eigene DAO auslagern
///
/// </summary>
public class FinanceDAO : AbstractBaseDAO
{
public bool HaveIKDatenannahmestelleChanged(IGkvAbrechnung gkvAbrechnung, string ikdatenannahmestelle)
{
if (gkvAbrechnung.TransferProtokolle is IEnumerable<IGkvTransferProtokoll> list && list.Any())
{
var last_prot_w_daten = list.Select(x => x.IKDatenannahmestelle).Where((x) => !string.IsNullOrEmpty(x)).LastOrDefault();
if (!string.IsNullOrEmpty(last_prot_w_daten) && last_prot_w_daten != ikdatenannahmestelle)
{
return true;
}
}
return false;
}
public IEnumerable<GkvAbrechnungLight> GetGkvAbrechnungen(DateTime? startDate, DateTime? endDate, bool useInvoiceDate = true)
{
if (endDate.HasValue)
endDate = endDate.Value.Date.AddDays(1).AddMilliseconds(-1);
var lCriteria = CreateCriteriaIsActive<GkvAbrechnungLight>();
if (useInvoiceDate)
{
if (startDate.HasValue)
lCriteria.Add(Restrictions.Ge(nameof(GkvAbrechnungLight.ErstelltAm), startDate));
if (endDate.HasValue)
lCriteria.Add(Restrictions.Le(nameof(GkvAbrechnungLight.ErstelltAm), endDate));
}
else
{
if (startDate.HasValue)
lCriteria.Add(Restrictions.Ge(nameof(GkvAbrechnungLight.AbrechnungsZeitraumEnde), startDate));
if (endDate.HasValue)
lCriteria.Add(Restrictions.Le(nameof(GkvAbrechnungLight.AbrechnungsZeitraumStart), endDate));
}
return lCriteria.List<GkvAbrechnungLight>();
}
public IEnumerable<GkvTransferProtokoll> GetGkvTransferProtokollByDateRange(DateTime? start, DateTime? end)
{
var lCriteria = CreateCriteria<GkvTransferProtokoll>();
if (start.HasValue)
lCriteria.Add(Restrictions.Ge(nameof(GkvTransferProtokoll.ErstelltAm), start));
if (end.HasValue)
lCriteria.Add(Restrictions.Le(nameof(GkvTransferProtokoll.ErstelltAm), end));
return lCriteria.List<GkvTransferProtokoll>();
}
public long GetGkvParentByProtokollOid(long oid)
{
return oid;
}
public string GetGkvRawData(long oid, GkvRawDataType gkvRawData)
{
var criteria = CreateCriteria<GkvTransferProtokoll>()
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.Oid == oid));
if (gkvRawData == GkvRawDataType.Auftragsdatei)
{
criteria = criteria.SetProjection(Projections.Property(nameof(GkvTransferProtokoll.Auftragsdatei)));
}
else if (gkvRawData == GkvRawDataType.Nutzdatendatei)
{
criteria = criteria.SetProjection(Projections.Property(nameof(GkvTransferProtokoll.Nutzdatendatei)));
}
else
{
throw new ArgumentOutOfRangeException(nameof(gkvRawData), $"GkvRawDataType \'{gkvRawData}\' unbekannt.");
}
var t = criteria.List<string>().SingleOrDefault();
return t;
}
}
}

View File

@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms.VisualStyles;
using BeWo.Data.Entities;
using BeWo.Data.Entities.Light;
using BS.Shared;
using BS.Shared.DataContracts.Light;
using NHibernate;
using NHibernate.Bytecode;
using NHibernate.Criterion;
@@ -131,7 +131,10 @@ namespace BeWo.Data.Access
public virtual void Insert(BeWoEntityBase pEntity)
{
try
if (pEntity is LightEntity)
throw new InvalidOperationException("Cannot insert LightEntity, only update! str:" + pEntity.ToString());
try
{
ISession session = Session;
if (session == null)
@@ -163,7 +166,10 @@ namespace BeWo.Data.Access
{
foreach (BeWoEntityBase iEntity in pEntitys)
{
this.Session.Save(iEntity);
if (iEntity is LightEntity)
throw new InvalidOperationException("Cannot insert LightEntity, only update! str:" + iEntity.ToString());
this.Session.Save(iEntity);
}
lTransaction.Commit();

View File

@@ -0,0 +1,41 @@
using BeWo.Data.Entities;
using BeWo.Data.Entities.Light;
using BS.Shared.Core;
using NHibernate.Criterion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Access
{
public class OrganisationDAO : AbstractBaseDAO
{
public IList<Organisation> GetAllOrganisation2PersonRelations(long personOid)
{
var c = CreateCriteriaIsActive<Person>()
.Add(Restrictions.Eq(BeWoEntityBase.PropertyName_Oid, personOid)).UniqueResult<Person>().Organisation2Persons.Select(s => s.Organisation).ToList();
return c;
}
public List<Organisation> GetAllOrganisationByIKKrankenkasse(string ikkrankenkasse)
{
var criteria = CreateCriteria<Organisation>()
.Add(Restrictions.Where<Organisation>(x => x.IKKrankenkasse == ikkrankenkasse));
return criteria.List<Organisation>().ToList();
}
public virtual IEnumerable<Organisation> FindOrganisation(string pName, bool pOnlyCostBearer)
{
var lCriteria = CreateCriteria<Organisation>()
.Add(Restrictions.Like(Organisation.PropertyName_Name, pName, MatchMode.Anywhere));
if (pOnlyCostBearer)
lCriteria.Add(Restrictions.IsNotNull(Organisation.PropertyName_CostBearer));
return lCriteria.List<Organisation>();
}
}
}

View File

@@ -132,17 +132,6 @@ namespace BeWo.Data.Access
return lCriteria.List<Person>();
}
public virtual IEnumerable<Organisation> FindOrganisation(string pName, bool pOnlyCostBearer)
{
var lCriteria = CreateCriteria<Organisation>()
.Add(Restrictions.Like(Organisation.PropertyName_Name, pName, MatchMode.Anywhere));
if (pOnlyCostBearer)
lCriteria.Add(Restrictions.IsNotNull(Organisation.PropertyName_CostBearer));
return lCriteria.List<Organisation>();
}
public virtual IEnumerable<Team> FindTeams(string pTeamName, string pLeaderFirstName, string pLeaderLastName)
{
return CreateCriteria<Team>()
@@ -1758,42 +1747,6 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
return lCriteria.List<InvoiceBase>();
}
public IEnumerable<GkvAbrechnung> GetGkvAbrechnungen(DateTime? startDate, DateTime? endDate, bool useInvoiceDate = true)
{
if (endDate.HasValue)
endDate = endDate.Value.Date.AddDays(1).AddMilliseconds(-1);
var lCriteria = CreateCriteriaIsActive<GkvAbrechnung>();
if (useInvoiceDate)
{
if (startDate.HasValue)
lCriteria.Add(Restrictions.Ge(nameof(GkvAbrechnung.ErstelltAm), startDate));
if (endDate.HasValue)
lCriteria.Add(Restrictions.Le(nameof(GkvAbrechnung.ErstelltAm), endDate));
}
else
{
if (startDate.HasValue)
lCriteria.Add(Restrictions.Ge(nameof(GkvAbrechnung.AbrechnungsZeitraumEnde), startDate));
if (endDate.HasValue)
lCriteria.Add(Restrictions.Le(nameof(GkvAbrechnung.AbrechnungsZeitraumStart), endDate));
}
return lCriteria.List<GkvAbrechnung>();
}
public IEnumerable<GkvTransferProtokoll> GetGkvTransferProtokollByDateRange(DateTime? start, DateTime? end)
{
var lCriteria = CreateCriteria<GkvTransferProtokoll>();
if (start.HasValue)
lCriteria.Add(Restrictions.Ge(nameof(GkvTransferProtokoll.ErstelltAm), start));
if (end.HasValue)
lCriteria.Add(Restrictions.Le(nameof(GkvTransferProtokoll.ErstelltAm), end));
return lCriteria.List<GkvTransferProtokoll>();
}
public IEnumerable<InvoiceBase> GetInvoiceBases(DateTime? startDate, DateTime? endDate, long costBearerOid, String invoiceId)
{
var lCriteria = CreateCriteriaIsActive<InvoiceBase>();
@@ -2559,15 +2512,6 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
return c.UniqueResult<NewestChatMessage>();
}
public IList<Organisation> GetAllOrganisation2PersonRelations(long personOid)
{
var c = CreateCriteriaIsActive<Person>()
.Add(Restrictions.Eq(BeWoEntityBase.PropertyName_Oid, personOid)).UniqueResult<Person>().Organisation2Persons.Select(s => s.Organisation).ToList();
return c;
}
public IList<Person> GetAllPerson2OrganisationRelations(long organisationOid)
{
var c = CreateCriteriaIsActive<Organisation>()
@@ -6052,14 +5996,6 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
return t + 1 ?? 0;
}
public List<Organisation> GetAllOrganisationByIKKrankenkasse(string ikkrankenkasse)
{
var criteria = CreateCriteria<Organisation>()
.Add(Restrictions.Where<Organisation>(x => x.IKKrankenkasse == ikkrankenkasse));
return criteria.List<Organisation>().ToList();
}
public List<Bargeldtransaktionshistory> LoadBargeldtransaktionshistoryEntriesByTransaktionsOids(List<long> transaktionsOids)
{
var criteria = CreateCriteriaIsActive<Bargeldtransaktionshistory>()
@@ -6209,28 +6145,5 @@ WHERE sc.Billable = 1 and sr.StartDate >= '{0:yyyy-MM-dd}' and sr.StartDate < '{
var q = Session.CreateSQLQuery(sql);
return q.List<long>().First();
}
public string GetGkvRawData(long oid, GkvRawDataType gkvRawData)
{
var criteria = CreateCriteria<GkvTransferProtokoll>()
.Add(Restrictions.Where<GkvTransferProtokoll>(x => x.Oid == oid));
if(gkvRawData == GkvRawDataType.Auftragsdatei)
{
criteria = criteria.SetProjection(Projections.Property(nameof(GkvTransferProtokoll.Auftragsdatei)));
}
else if(gkvRawData == GkvRawDataType.Nutzdatendatei)
{
criteria = criteria.SetProjection(Projections.Property(nameof(GkvTransferProtokoll.Nutzdatendatei)));
}
else
{
throw new ArgumentOutOfRangeException(nameof(gkvRawData), $"GkvRawDataType \'{gkvRawData}\' unbekannt.");
}
var t = criteria.List<string>().SingleOrDefault();
return t;
}
}
}

View File

@@ -212,6 +212,8 @@
<Compile Include="Access\AdoDAO.cs" />
<Compile Include="Access\DAOFactory.cs" />
<Compile Include="Access\GenericDAO.cs" />
<Compile Include="Access\FinanceDAO.cs" />
<Compile Include="Access\OrganisationDAO.cs" />
<Compile Include="Access\ScriptDAO.cs" />
<Compile Include="Access\SearchDAO.cs" />
<Compile Include="Access\UserDAO.cs" />
@@ -220,6 +222,11 @@
<Compile Include="Entities\AiSettings.cs" />
<Compile Include="Entities\CustomerVermittlungArbeit.cs" />
<Compile Include="Entities\CustomerWohnhilfe.cs" />
<Compile Include="Entities\Light\GkvAbrechnungLight.cs" />
<Compile Include="Entities\Light\GkvTransferProtokollLight.cs" />
<Compile Include="Entities\Light\InvoiceBaseLight.cs" />
<Compile Include="Entities\Light\LightEntity.cs" />
<Compile Include="Entities\Light\OrganisationLight.cs" />
<Compile Include="Entities\TwoFactorCode.cs" />
<Compile Include="Entities\AbwesenheitsInformationPrint.cs" />
<Compile Include="Entities\AddressHistory.cs" />

View File

@@ -28,6 +28,7 @@ namespace BeWo.Data.Entities
public virtual IList<InvoiceBase> InvoiceBases { get; set; }
public virtual IList<GkvTransferProtokoll> GkvTransferProtokolle { get; set; }
public virtual IGkvTransferProtokoll LastTransferProtokoll => GkvTransferProtokolle?.LastOrDefault();
}
public virtual IEnumerable<IGkvTransferProtokoll> TransferProtokolle => GkvTransferProtokolle;
public virtual IGkvTransferProtokoll LastTransferProtokoll => GkvTransferProtokolle?.LastOrDefault();
}
}

View File

@@ -0,0 +1,31 @@
using BS.Shared.DataContracts.Light;
using BS.Shared.Interface;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using BS.Shared.DataContracts.GkvAbrechnung;
namespace BeWo.Data.Entities.Light
{
public class GkvAbrechnungLight : LightEntity, IGkvAbrechnung
{
public virtual DateTime ErstelltAm { get; set; }
public virtual decimal Betrag { get; set; }
public virtual long OrganisationOid { get; set; }
public virtual string OrganisationName { get; set; }
public virtual DateTime? AbrechnungsZeitraumStart { get; set; }
public virtual DateTime? AbrechnungsZeitraumEnde { get; set; }
public virtual bool UrbelegeGesendet { get; set; }
public virtual bool Bezahlt { get; set; }
public virtual GkvVerfahrensstufe Verfahrensstufe { get; set; }
public virtual IList<InvoiceBaseLight> InvoiceBases { get; set; }
public virtual IList<GkvTransferProtokollLight> Protokolle { get; set; }
public virtual IEnumerable<IGkvTransferProtokoll> TransferProtokolle => Protokolle;
public virtual IGkvTransferProtokoll LastTransferProtokoll => Protokolle?.LastOrDefault();
}
}

View File

@@ -0,0 +1,38 @@
using BS.Shared;
using BS.Shared.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Entities.Light
{
public class GkvTransferProtokollLight : LightEntity, IGkvTransferProtokoll
{
public virtual long GkvAbrechnungOid { get; set; }
public virtual string AbsenderBezeichnung { get; set; }
public virtual string EmpfangerBezeichnung { get; set; }
public virtual string IKLeistungserbringer { get; set; }
public virtual string IKKrankenkasse { get; set; }
public virtual string IKKostentrager { get; set; }
public virtual string IKDatenannahmestelle { get; set; }
public virtual string Rechnungsnummer { get; set; }
public virtual int Datenaustauschreferenz { get; set; }
public virtual int Transfernummer { get; set; }
public virtual string Transfername { get; set; }
public virtual DateTime? ErstelltAm { get; set; }
public virtual string Dateityp { get; set; }
public virtual string Dateiname { get; set; }
public virtual int Dateigrosse { get; set; }
public virtual bool SentApp8Success { get; set; }
public virtual bool SentDakotaSuccess { get; set; }
public virtual GkvTransferResultType? ResultType { get; set; }
public virtual string Fehlertitel { get; set; }
public virtual DateTime? Fehlerdatum { get; set; }
public virtual string Fehlernachricht { get; set; }
public string BezDatenannahmestelle => EmpfangerBezeichnung;
}
}

View File

@@ -0,0 +1,24 @@
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Entities.Light
{
public class InvoiceBaseLight : LightEntity
{
public virtual DateTime? AccountingPeriodEnd { get; set; }
public virtual DateTime? AccountingPeriodStart { get; set; }
public virtual string CustomerName { get; set; }
public virtual string RecipientOrganisation { get; set; }
public virtual InvoiceType Type { get; set; }
public virtual string InvoiceTypeText { get; set; }
public virtual DateTime? InvoiceDate { get; set; }
public virtual string InvoiceNumber { get; set; }
public virtual decimal? TotalAmount { get; set; }
public virtual bool IsPaid { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Entities.Light
{
public class LightEntity : BeWoEntityBase
{
}
}

View File

@@ -0,0 +1,19 @@
using System.Collections.Generic;
using System.Diagnostics;
using BS.Shared;
using BS.Shared.Interface;
namespace BeWo.Data.Entities.Light
{
[DebuggerDisplay("{Name}")]
public class OrganisationLight : LightEntity, IOrganisation
{
public virtual long OrganisationOid { get; set; }
public virtual long OrganisationVersion { get; set; }
public virtual string Name { get; set; }
public virtual string IKKrankenkasse { get; set; }
public virtual string IKKostentrager { get; set; }
public virtual string IKDatenannahmestelle { get; set; }
public virtual string BezDatenannahmestelle { get; set; }
}
}

View File

@@ -1,11 +1,12 @@
using System.Collections.Generic;
using System.Diagnostics;
using BS.Shared;
using BS.Shared.Interface;
namespace BeWo.Data.Entities
{
[DebuggerDisplay("{Name}")]
public class Organisation : BeWoEntityBase
public class Organisation : BeWoEntityBase, IOrganisation
{
public static string PropertyName_Address = "Address";

View File

@@ -1,71 +1,71 @@
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.Service.DCEntityMapper
{
public class CompactCustomerDC_Customer : AbstractIDCEntityMapper<Customer, CompactCustomerDC>
{
public override CompactCustomerDC MergeWithDC(Customer pEntity, CompactCustomerDC pDataContract)
{
pDataContract.CustomerOid = pEntity.Oid.Value;
pDataContract.PersonOid = pEntity.Person.Oid.Value;
pDataContract.CustomerVersion = pEntity.Version.Value;
pDataContract.FirstName = pEntity.Person.FirstName;
pDataContract.LastName = pEntity.Person.LastName;
pDataContract.DateOfBirth = pEntity.Person.DateOfBirth;
pDataContract.Sex = pEntity.Person.Sex;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.TerminationDate = pEntity.TerminationDate;
pDataContract.SubstitutionStartingDayCount = pEntity.AbWelchemKrankheitsTag;
pDataContract.IsSubstitutionWanted = pEntity.VertretungGewuenscht;
pDataContract.SubstitutionNeed = pEntity.SubstitutionNeed;
pDataContract.IsSubstitutionNeeded = pEntity.VertretungDringendErforderlich;
if (pEntity.TerminationReason != null)
{
pDataContract.TerminationReason = pEntity.TerminationReason.Value;
}
//else if (pEntity.TerminationDate.HasValue)
//{
// pDataContract.TerminationReason = $"Betreuung vorzeitig beendet am {pEntity.TerminationDate:dd.MM.yyyy}";
//}
pDataContract.AssistanceBegin = pEntity.AssistanceBegin;
pDataContract.EquityContribution = pEntity.EquityContribution;
pDataContract.CustomerAlias = pEntity.CustomerAlias;
pDataContract.DebitorNumber = pEntity.DebitorNumber;
pDataContract.CostCenter = pEntity.CostCenter;
if (pEntity.Person.Address != null)
{
pDataContract.Street = pEntity.Person.Address.Street;
pDataContract.PostalCode = pEntity.Person.Address.PostalCode;
pDataContract.Town = pEntity.Person.Address.Town;
}
pDataContract.AbsenceTimes = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(pEntity.AbsenceTimes);
pEntity.Customer2CostBearerList.DoForEach(c2cb => pDataContract.CostBearerReferenceNumbers[c2cb.CostBearer.Oid.Value] = c2cb.ReferenceNumber);
pDataContract.RelatedTeamOids = pEntity.Team2CustomerList.Select(t2c => t2c.TeamOid.Value).ToList();
return pDataContract;
}
// Are not editable
public override Customer MergeWithEntity(CompactCustomerDC pDataContract, Customer pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Customer>(pDataContract.CustomerOid);
}
protected override bool AreDCAndEntityEqual(CompactCustomerDC pDC, Customer pEntity)
{
return pDC.CustomerOid == pEntity.Oid;
}
}
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactCustomerDC_Customer : AbstractIDCEntityMapper<Customer, CompactCustomerDC>
{
public override CompactCustomerDC MergeWithDC(Customer pEntity, CompactCustomerDC pDataContract)
{
pDataContract.CustomerOid = pEntity.Oid.Value;
pDataContract.PersonOid = pEntity.Person.Oid.Value;
pDataContract.CustomerVersion = pEntity.Version.Value;
pDataContract.FirstName = pEntity.Person.FirstName;
pDataContract.LastName = pEntity.Person.LastName;
pDataContract.DateOfBirth = pEntity.Person.DateOfBirth;
pDataContract.Sex = pEntity.Person.Sex;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.TerminationDate = pEntity.TerminationDate;
pDataContract.SubstitutionStartingDayCount = pEntity.AbWelchemKrankheitsTag;
pDataContract.IsSubstitutionWanted = pEntity.VertretungGewuenscht;
pDataContract.SubstitutionNeed = pEntity.SubstitutionNeed;
pDataContract.IsSubstitutionNeeded = pEntity.VertretungDringendErforderlich;
if (pEntity.TerminationReason != null)
{
pDataContract.TerminationReason = pEntity.TerminationReason.Value;
}
//else if (pEntity.TerminationDate.HasValue)
//{
// pDataContract.TerminationReason = $"Betreuung vorzeitig beendet am {pEntity.TerminationDate:dd.MM.yyyy}";
//}
pDataContract.AssistanceBegin = pEntity.AssistanceBegin;
pDataContract.EquityContribution = pEntity.EquityContribution;
pDataContract.CustomerAlias = pEntity.CustomerAlias;
pDataContract.DebitorNumber = pEntity.DebitorNumber;
pDataContract.CostCenter = pEntity.CostCenter;
if (pEntity.Person.Address != null)
{
pDataContract.Street = pEntity.Person.Address.Street;
pDataContract.PostalCode = pEntity.Person.Address.PostalCode;
pDataContract.Town = pEntity.Person.Address.Town;
}
pDataContract.AbsenceTimes = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(pEntity.AbsenceTimes);
pEntity.Customer2CostBearerList.DoForEach(c2cb => pDataContract.CostBearerReferenceNumbers[c2cb.CostBearer.Oid.Value] = c2cb.ReferenceNumber);
pDataContract.RelatedTeamOids = pEntity.Team2CustomerList.Select(t2c => t2c.TeamOid.Value).ToList();
return pDataContract;
}
// Are not editable
public override Customer MergeWithEntity(CompactCustomerDC pDataContract, Customer pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Customer>(pDataContract.CustomerOid);
}
protected override bool AreDCAndEntityEqual(CompactCustomerDC pDC, Customer pEntity)
{
return pDC.CustomerOid == pEntity.Oid;
}
}
}

View File

@@ -1,43 +1,43 @@
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactCustomerDC_CustomerCompact : AbstractIDCEntityMapper<Customer, CompactCustomerDC>
{
public override CompactCustomerDC MergeWithDC(Customer pEntity, CompactCustomerDC pDataContract)
{
pDataContract.CustomerOid = pEntity.Oid.Value;
pDataContract.CustomerVersion = pEntity.Version.Value;
pDataContract.FirstName = pEntity.Person.FirstName;
pDataContract.LastName = pEntity.Person.LastName;
pDataContract.DateOfBirth = pEntity.Person.DateOfBirth;
pDataContract.Sex = pEntity.Person.Sex;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.AssistanceBegin = pEntity.AssistanceBegin;
pDataContract.TerminationDate = pEntity.TerminationDate;
pDataContract.EquityContribution = pEntity.EquityContribution;
pDataContract.RelatedTeamOids = pEntity.Team2CustomerList.Select(t2c => t2c.CustomerOid.Value).ToList();
pDataContract.CustomerAlias = pEntity.CustomerAlias;
return pDataContract;
}
// Are not editable
public override Customer MergeWithEntity(CompactCustomerDC pDataContract, Customer pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Customer>(pDataContract.CustomerOid);
}
protected override bool AreDCAndEntityEqual(CompactCustomerDC pDC, Customer pEntity)
{
return pDC.CustomerOid == pEntity.Oid;
}
}
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactCustomerDC_CustomerCompact : AbstractIDCEntityMapper<Customer, CompactCustomerDC>
{
public override CompactCustomerDC MergeWithDC(Customer pEntity, CompactCustomerDC pDataContract)
{
pDataContract.CustomerOid = pEntity.Oid.Value;
pDataContract.CustomerVersion = pEntity.Version.Value;
pDataContract.FirstName = pEntity.Person.FirstName;
pDataContract.LastName = pEntity.Person.LastName;
pDataContract.DateOfBirth = pEntity.Person.DateOfBirth;
pDataContract.Sex = pEntity.Person.Sex;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.AssistanceBegin = pEntity.AssistanceBegin;
pDataContract.TerminationDate = pEntity.TerminationDate;
pDataContract.EquityContribution = pEntity.EquityContribution;
pDataContract.RelatedTeamOids = pEntity.Team2CustomerList.Select(t2c => t2c.CustomerOid.Value).ToList();
pDataContract.CustomerAlias = pEntity.CustomerAlias;
return pDataContract;
}
// Are not editable
public override Customer MergeWithEntity(CompactCustomerDC pDataContract, Customer pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Customer>(pDataContract.CustomerOid);
}
protected override bool AreDCAndEntityEqual(CompactCustomerDC pDC, Customer pEntity)
{
return pDC.CustomerOid == pEntity.Oid;
}
}
}

View File

@@ -4,7 +4,7 @@ using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactCustomerTeamDC_CustomerTeam : AbstractIDCEntityMapper<CustomerTeam, CompactCustomerTeamDC>
{

View File

@@ -1,38 +1,38 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using System.Linq;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactEmployeeDC_Employee : AbstractIDCEntityMapper<Employee, CompactEmployeeDC>
{
public override CompactEmployeeDC MergeWithDC(Employee pEntity, CompactEmployeeDC pDataContract)
{
pDataContract.EmployeeOid = pEntity.Oid.Value;
pDataContract.PersonOid = pEntity.Person.Oid.Value;
pDataContract.EmployeeVersion = pEntity.Version.Value;
pDataContract.FirstName = pEntity.Person.FirstName;
pDataContract.LastName = pEntity.Person.LastName;
pDataContract.PersonnelNumber = pEntity.PersonnelNumber;
//pDataContract.FLSPerWeek = pEntity.WeeklyFLS;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.ValueListEntries = pEntity.ValueList.ToDictionary(i => i.Entry.Oid.Value, i => i.Entry.Type);
pDataContract.EmployeeColor = pEntity.EmployeeColor;
pDataContract.RelatedCustomerOIDList = pEntity.Employee2CustomerList.Where(w => w.CustomerOid.HasValue).Select(s => s.CustomerOid.Value).ToList();
return pDataContract;
}
// COMPACT EMPLOYEES ARE NOT EDITABLE
public override Employee MergeWithEntity(CompactEmployeeDC pDataContract, Employee pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.EmployeeOid);
}
protected override bool AreDCAndEntityEqual(CompactEmployeeDC pDC, Employee pEntity)
{
return pDC.EmployeeOid == pEntity.Oid;
}
}
using BeWo.Data.Access;
using BeWo.Data.Entities;
using System.Linq;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactEmployeeDC_Employee : AbstractIDCEntityMapper<Employee, CompactEmployeeDC>
{
public override CompactEmployeeDC MergeWithDC(Employee pEntity, CompactEmployeeDC pDataContract)
{
pDataContract.EmployeeOid = pEntity.Oid.Value;
pDataContract.PersonOid = pEntity.Person.Oid.Value;
pDataContract.EmployeeVersion = pEntity.Version.Value;
pDataContract.FirstName = pEntity.Person.FirstName;
pDataContract.LastName = pEntity.Person.LastName;
pDataContract.PersonnelNumber = pEntity.PersonnelNumber;
//pDataContract.FLSPerWeek = pEntity.WeeklyFLS;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.ValueListEntries = pEntity.ValueList.ToDictionary(i => i.Entry.Oid.Value, i => i.Entry.Type);
pDataContract.EmployeeColor = pEntity.EmployeeColor;
pDataContract.RelatedCustomerOIDList = pEntity.Employee2CustomerList.Where(w => w.CustomerOid.HasValue).Select(s => s.CustomerOid.Value).ToList();
return pDataContract;
}
// COMPACT EMPLOYEES ARE NOT EDITABLE
public override Employee MergeWithEntity(CompactEmployeeDC pDataContract, Employee pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Employee>(pDataContract.EmployeeOid);
}
protected override bool AreDCAndEntityEqual(CompactEmployeeDC pDC, Employee pEntity)
{
return pDC.EmployeeOid == pEntity.Oid;
}
}
}

View File

@@ -1,31 +1,31 @@
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactGroupOfPeopleDC_GroupOfPeople : AbstractIDCEntityMapper<GroupOfPeople, CompactGroupOfPeopleDC>
{
public override CompactGroupOfPeopleDC MergeWithDC(GroupOfPeople pEntity, CompactGroupOfPeopleDC pDataContract)
{
pDataContract.Name = pEntity.Name;
pDataContract.GroupOfPeopleOid = pEntity.Oid.Value;
pDataContract.GroupOfPeopleVersion = pEntity.Version.Value;
pDataContract.GroupType = pEntity.GroupType;
return pDataContract;
}
public override GroupOfPeople MergeWithEntity(CompactGroupOfPeopleDC pDataContract, GroupOfPeople pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactGroupOfPeopleDC pDC, GroupOfPeople pEntity)
{
return pDC.GroupOfPeopleOid == pEntity.Oid;
}
}
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactGroupOfPeopleDC_GroupOfPeople : AbstractIDCEntityMapper<GroupOfPeople, CompactGroupOfPeopleDC>
{
public override CompactGroupOfPeopleDC MergeWithDC(GroupOfPeople pEntity, CompactGroupOfPeopleDC pDataContract)
{
pDataContract.Name = pEntity.Name;
pDataContract.GroupOfPeopleOid = pEntity.Oid.Value;
pDataContract.GroupOfPeopleVersion = pEntity.Version.Value;
pDataContract.GroupType = pEntity.GroupType;
return pDataContract;
}
public override GroupOfPeople MergeWithEntity(CompactGroupOfPeopleDC pDataContract, GroupOfPeople pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactGroupOfPeopleDC pDC, GroupOfPeople pEntity)
{
return pDC.GroupOfPeopleOid == pEntity.Oid;
}
}
}

View File

@@ -0,0 +1,104 @@
using System;
using System.Drawing;
using System.Linq;
using BS.Shared.Core;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Light;
using DevExpress.CodeParser;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactInvoiceBaseDC_InvoiceBase : AbstractIDCEntityMapper<InvoiceBase, CompactInvoiceBaseDC>
{
public override CompactInvoiceBaseDC MergeWithDC(InvoiceBase pEntity, CompactInvoiceBaseDC pDataContract)
{
pDataContract.InvoiceBaseOid = pEntity.Oid;
pDataContract.RecipientOrganisation = pEntity.RecipientOrganisation;
pDataContract.InvoiceNumber = pEntity.InvoiceNumber;
pDataContract.InvoiceDate = pEntity.InvoiceDate;
pDataContract.AccountingPeriodEnd = pEntity.AccountingPeriodEnd;
pDataContract.AccountingPeriodStart = pEntity.AccountingPeriodStart;
pDataContract.Notice = pEntity.Notice;
pDataContract.InvoiceTypeText = pEntity.InvoiceTypeText;
pDataContract.IsPaid = pEntity.IsPaid;
if (pEntity.Type == InvoiceType.Service && pEntity.Oid.HasValue)
{
var inv = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(pEntity.Oid.Value);
if (inv != null)
{
pDataContract.TotalAmount = inv.GetTotalClaim();
}
else
{
//pDataContract.TotalAmount = -99999999;
}
}
else if (pEntity.Type == InvoiceType.Settlement)
{
//Ist eigentlich ein Fehler. Bei Spitzabrechnungen muss immer ein InvoiceItem vorhanden sein.
//Durch einen mittlerweile behobenen Programmfehler gibt es einzelen ältere Rechnungen, bei denen das nicht so ist.
if (!string.IsNullOrEmpty(pEntity.XMLData))
{
var settlementdc = Utils.XMLDeserializeFromString<SettlementDC>(pEntity.XMLData);
pDataContract.TotalAmount = settlementdc.Claim;
}
else
{
pDataContract.TotalAmount = pEntity.InvoiceItems.Sum(i => i.AmountTotal);
}
}
else
{
pDataContract.TotalAmount = pEntity.InvoiceItems.Sum(i => i.AmountTotal);
}
Customer customer = null;
if (pEntity.CostBearer2SupportConcept != null)
{
try
{
customer = pEntity.CostBearer2SupportConcept.SupportConcept.Customer;
}
catch (Exception)
{
//ignore
}
}
else if (pEntity.SupportConceptOid.HasValue)
{
SupportConcept sc = DAOFactory.GenericDAO.LoadByID<SupportConcept>(pEntity.SupportConceptOid.Value);
customer = sc.Customer;
}
if (customer is object)
{
pDataContract.CustomerName = customer.Person.LastNameFirstName;
}
return pDataContract;
}
public override InvoiceBase MergeWithEntity(CompactInvoiceBaseDC pDataContract, InvoiceBase pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactInvoiceBaseDC pDataContract, InvoiceBase pEntity)
{
if (pDataContract.InvoiceBaseOid == null)
{
return false;
}
return pDataContract.InvoiceBaseOid == pEntity.Oid;
}
}
}

View File

@@ -1,68 +1,68 @@
using System;
using System.Collections.Generic;
using BS.Shared.DataContracts;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.Service.DCEntityMapper
{
public class CompactOrganisationDC_Organisation : AbstractIDCEntityMapper<Organisation, CompactOrganisationDC>
{
public override CompactOrganisationDC MergeWithDC(Organisation pEntity, CompactOrganisationDC pDataContract)
{
pDataContract.OrganisationOid = pEntity.Oid.Value;
pDataContract.OrganisationVersion = pEntity.Version.Value;
pDataContract.Name = pEntity.Name;
pDataContract.Name2 = pEntity.Name2;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.DebitorNumber = pEntity.DebitorNumber;
pDataContract.BusinessPartnerId = pEntity.BusinessPartnerId;
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
pDataContract.IKKostentrager = pEntity.IKKostentrager;
pDataContract.IKKrankenkasse = pEntity.IKKrankenkasse;
if (pEntity.CostBearer != null)
{
pDataContract.CostBearerID = pEntity.CostBearer.ID;
pDataContract.CostBearerOid = pEntity.CostBearer.Oid;
pDataContract.CostBearerVersion = pEntity.CostBearer.Version;
pDataContract.CostRatePeriods = pEntity.CostBearer.CostRatePeriods.MapToNewDCs();
pDataContract.ActualHourlyRate = pDataContract.CostRatePeriods.GetCurrentlyValidRateValue(CostRatePeriodType.HourlyRate) ?? 0m;
pDataContract.ActualRateFactor = pDataContract.CostRatePeriods.GetCurrentlyValidRateValue(CostRatePeriodType.RateFactor) ?? 0m;
pDataContract.ActualMinuteIntervall = Convert.ToInt32(pDataContract.CostRatePeriods.GetCurrentlyValidRateValue(CostRatePeriodType.MinutesIntervall) ?? 0m);
pDataContract.IsCalculatingWithFactor = pEntity.CostBearer.IsCalculatingWithFactor;
}
if (pEntity.Function != null)
{
pDataContract.Function = pEntity.Function.Value;
}
return pDataContract;
}
// Compact Organisations are readonly
public override Organisation MergeWithEntity(CompactOrganisationDC pDataContract, Organisation pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Organisation>(pDataContract.OrganisationOid);
}
protected override bool AreDCAndEntityEqual(CompactOrganisationDC pDC, Organisation pEntity)
{
return pDC.OrganisationOid == pEntity.Oid;
}
//public override CompactOrganisationDC CreateNewDC()
//{
// CompactOrganisationDC dc = new CompactOrganisationDC();
// dc.CostRatePeriods = new List<CostRatePeriodDC>();
// return dc;
//}
}
using System;
using System.Collections.Generic;
using BS.Shared.DataContracts;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactOrganisationDC_Organisation : AbstractIDCEntityMapper<Organisation, CompactOrganisationDC>
{
public override CompactOrganisationDC MergeWithDC(Organisation pEntity, CompactOrganisationDC pDataContract)
{
pDataContract.OrganisationOid = pEntity.Oid.Value;
pDataContract.OrganisationVersion = pEntity.Version.Value;
pDataContract.Name = pEntity.Name;
pDataContract.Name2 = pEntity.Name2;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.DebitorNumber = pEntity.DebitorNumber;
pDataContract.BusinessPartnerId = pEntity.BusinessPartnerId;
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
pDataContract.IKKostentrager = pEntity.IKKostentrager;
pDataContract.IKKrankenkasse = pEntity.IKKrankenkasse;
if (pEntity.CostBearer != null)
{
pDataContract.CostBearerID = pEntity.CostBearer.ID;
pDataContract.CostBearerOid = pEntity.CostBearer.Oid;
pDataContract.CostBearerVersion = pEntity.CostBearer.Version;
pDataContract.CostRatePeriods = pEntity.CostBearer.CostRatePeriods.MapToNewDCs();
pDataContract.ActualHourlyRate = pDataContract.CostRatePeriods.GetCurrentlyValidRateValue(CostRatePeriodType.HourlyRate) ?? 0m;
pDataContract.ActualRateFactor = pDataContract.CostRatePeriods.GetCurrentlyValidRateValue(CostRatePeriodType.RateFactor) ?? 0m;
pDataContract.ActualMinuteIntervall = Convert.ToInt32(pDataContract.CostRatePeriods.GetCurrentlyValidRateValue(CostRatePeriodType.MinutesIntervall) ?? 0m);
pDataContract.IsCalculatingWithFactor = pEntity.CostBearer.IsCalculatingWithFactor;
}
if (pEntity.Function != null)
{
pDataContract.Function = pEntity.Function.Value;
}
return pDataContract;
}
// Compact Organisations are readonly
public override Organisation MergeWithEntity(CompactOrganisationDC pDataContract, Organisation pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Organisation>(pDataContract.OrganisationOid);
}
protected override bool AreDCAndEntityEqual(CompactOrganisationDC pDC, Organisation pEntity)
{
return pDC.OrganisationOid == pEntity.Oid;
}
//public override CompactOrganisationDC CreateNewDC()
//{
// CompactOrganisationDC dc = new CompactOrganisationDC();
// dc.CostRatePeriods = new List<CostRatePeriodDC>();
// return dc;
//}
}
}

View File

@@ -1,63 +1,63 @@
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactPersonDC_Person : AbstractIDCEntityMapper<Person, CompactPersonDC>
{
public override CompactPersonDC MergeWithDC(Person pEntity, CompactPersonDC pDataContract)
{
pDataContract.DateOfBirth = pEntity.DateOfBirth;
pDataContract.FirstName = pEntity.FirstName;
pDataContract.LastName = pEntity.LastName;
pDataContract.PersonOid = pEntity.Oid.Value;
pDataContract.PersonVersion = pEntity.Version.Value;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.PersonType = pEntity.Type;
pDataContract.FamilyStatus = pEntity.FamilyStatus;
pDataContract.Geschlecht = pEntity.Sex;
if (pEntity.Title != null)
{
pDataContract.Title = pEntity.Title.Value;
}
if (pEntity.Function != null)
{
pDataContract.Function = pEntity.Function.Value;
}
if (pEntity.Address != null)
{
pDataContract.Street = pEntity.Address.Street;
pDataContract.PostalCode = pEntity.Address.PostalCode;
pDataContract.Town = pEntity.Address.Town;
}
pDataContract.OrganisationRelations = MapperFactory.Organisation2PersonDC_Organisation2Person.MapToNewDCs(pEntity.Organisation2Persons);
return pDataContract;
}
public override Person MergeWithEntity(CompactPersonDC pDataContract, Person pEntity)
{
this.ConcurrencyCheck(pDataContract.PersonVersion, pEntity);
pEntity.Oid = pDataContract.PersonOid;
pEntity.DateOfBirth = pDataContract.DateOfBirth;
pEntity.FirstName = pDataContract.FirstName;
pEntity.LastName = pDataContract.LastName;
pEntity.IsActive = pDataContract.ActivationType;
MapperFactory.Organisation2PersonDC_Organisation2Person.MergeWithEntitys(pDataContract.OrganisationRelations, pEntity.Organisation2Persons);
return pEntity;
}
protected override bool AreDCAndEntityEqual(CompactPersonDC pDC, Person pEntity)
{
return pDC.PersonOid == pEntity.Oid;
}
}
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactPersonDC_Person : AbstractIDCEntityMapper<Person, CompactPersonDC>
{
public override CompactPersonDC MergeWithDC(Person pEntity, CompactPersonDC pDataContract)
{
pDataContract.DateOfBirth = pEntity.DateOfBirth;
pDataContract.FirstName = pEntity.FirstName;
pDataContract.LastName = pEntity.LastName;
pDataContract.PersonOid = pEntity.Oid.Value;
pDataContract.PersonVersion = pEntity.Version.Value;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.PersonType = pEntity.Type;
pDataContract.FamilyStatus = pEntity.FamilyStatus;
pDataContract.Geschlecht = pEntity.Sex;
if (pEntity.Title != null)
{
pDataContract.Title = pEntity.Title.Value;
}
if (pEntity.Function != null)
{
pDataContract.Function = pEntity.Function.Value;
}
if (pEntity.Address != null)
{
pDataContract.Street = pEntity.Address.Street;
pDataContract.PostalCode = pEntity.Address.PostalCode;
pDataContract.Town = pEntity.Address.Town;
}
pDataContract.OrganisationRelations = MapperFactory.Organisation2PersonDC_Organisation2Person.MapToNewDCs(pEntity.Organisation2Persons);
return pDataContract;
}
public override Person MergeWithEntity(CompactPersonDC pDataContract, Person pEntity)
{
this.ConcurrencyCheck(pDataContract.PersonVersion, pEntity);
pEntity.Oid = pDataContract.PersonOid;
pEntity.DateOfBirth = pDataContract.DateOfBirth;
pEntity.FirstName = pDataContract.FirstName;
pEntity.LastName = pDataContract.LastName;
pEntity.IsActive = pDataContract.ActivationType;
MapperFactory.Organisation2PersonDC_Organisation2Person.MergeWithEntitys(pDataContract.OrganisationRelations, pEntity.Organisation2Persons);
return pEntity;
}
protected override bool AreDCAndEntityEqual(CompactPersonDC pDC, Person pEntity)
{
return pDC.PersonOid == pEntity.Oid;
}
}
}

View File

@@ -1,80 +1,80 @@
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactSupportConceptDC_SupportConcept : AbstractIDCEntityMapper<SupportConcept, CompactSupportConceptDC>
{
#region Public Methods
public override CompactSupportConceptDC MergeWithDC(SupportConcept pEntity, CompactSupportConceptDC pDataContract)
{
pDataContract.SupportConceptOid = pEntity.Oid.Value;
pDataContract.SupportConceptVersion = pEntity.Version.Value;
pDataContract.Customer = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(pEntity.Customer);
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.ConferenceDate = pEntity.ConferenceDate;
foreach (var iCBRel in pEntity.CostBearer2SupportConceptList)
{
CompactCostBearerDC costBearer = new CompactCostBearerDC();
if (iCBRel.CostBearer.Organisation != null)
{
CompactOrganisationDC orgDC = new CompactOrganisationDC();
orgDC.Name = iCBRel.CostBearer.Organisation.Name;
orgDC.OrganisationOid = iCBRel.CostBearer.Organisation.Oid.Value;
if (iCBRel.CostBearer.Organisation.Address != null)
{
orgDC.Street = iCBRel.CostBearer.Organisation.Address.Street;
orgDC.PostalCode = iCBRel.CostBearer.Organisation.Address.PostalCode;
orgDC.Town = iCBRel.CostBearer.Organisation.Address.Town;
}
costBearer.Organisation = orgDC;
}
costBearer.CostBearerID = iCBRel.CostBearer.ID;
costBearer.CostBearerOid = iCBRel.CostBearer.Oid.Value;
costBearer.CostBearer2SupportConceptOid = iCBRel.Oid.Value;
costBearer.SupportConceptStatus = iCBRel.Status;
costBearer.RequestedStartDate = iCBRel.RequestedStartDate;
costBearer.RequestedEndDate = iCBRel.RequestedEndDate;
costBearer.ApprovedStartDate = iCBRel.ApprovedStartDate;
costBearer.ApprovedEndDate = iCBRel.ApprovedEndDate;
// costBearer.ApprovedFLS = iCBRel.ApprovedFLS;
// costBearer.ApprovedFLSTotal = iCBRel.ApprovedFLSTotal;
costBearer.CustomerReferenceNumber = iCBRel.CustomerReferenceNumber;
costBearer.IsCalculatingWithFactor = iCBRel.CostBearer.IsCalculatingWithFactor;
pDataContract.IsApproved = iCBRel.ApprovedStartDate.HasValue;
pDataContract.CostBearerList.Add(costBearer);
pDataContract.CostBearerOids2CostBearerRelOids.Add(costBearer.Oid.Value, iCBRel.Oid.Value);
pDataContract.CustomerReferenceNumbers.Add(iCBRel.CustomerReferenceNumber);
pDataContract.CostBearerRelOids.Add(iCBRel.Oid.Value);
}
return pDataContract;
}
public override SupportConcept MergeWithEntity(CompactSupportConceptDC pDataContract, SupportConcept pEntity)
{
throw new NotImplementedException();
}
#endregion
#region Methods
protected override bool AreDCAndEntityEqual(CompactSupportConceptDC pDC, SupportConcept pEntity)
{
return pDC.SupportConceptOid == pEntity.Oid;
}
#endregion
}
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactSupportConceptDC_SupportConcept : AbstractIDCEntityMapper<SupportConcept, CompactSupportConceptDC>
{
#region Public Methods
public override CompactSupportConceptDC MergeWithDC(SupportConcept pEntity, CompactSupportConceptDC pDataContract)
{
pDataContract.SupportConceptOid = pEntity.Oid.Value;
pDataContract.SupportConceptVersion = pEntity.Version.Value;
pDataContract.Customer = MapperFactory.CompactCustomerDC_Customer.MapToNewDC(pEntity.Customer);
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.ConferenceDate = pEntity.ConferenceDate;
foreach (var iCBRel in pEntity.CostBearer2SupportConceptList)
{
CompactCostBearerDC costBearer = new CompactCostBearerDC();
if (iCBRel.CostBearer.Organisation != null)
{
CompactOrganisationDC orgDC = new CompactOrganisationDC();
orgDC.Name = iCBRel.CostBearer.Organisation.Name;
orgDC.OrganisationOid = iCBRel.CostBearer.Organisation.Oid.Value;
if (iCBRel.CostBearer.Organisation.Address != null)
{
orgDC.Street = iCBRel.CostBearer.Organisation.Address.Street;
orgDC.PostalCode = iCBRel.CostBearer.Organisation.Address.PostalCode;
orgDC.Town = iCBRel.CostBearer.Organisation.Address.Town;
}
costBearer.Organisation = orgDC;
}
costBearer.CostBearerID = iCBRel.CostBearer.ID;
costBearer.CostBearerOid = iCBRel.CostBearer.Oid.Value;
costBearer.CostBearer2SupportConceptOid = iCBRel.Oid.Value;
costBearer.SupportConceptStatus = iCBRel.Status;
costBearer.RequestedStartDate = iCBRel.RequestedStartDate;
costBearer.RequestedEndDate = iCBRel.RequestedEndDate;
costBearer.ApprovedStartDate = iCBRel.ApprovedStartDate;
costBearer.ApprovedEndDate = iCBRel.ApprovedEndDate;
// costBearer.ApprovedFLS = iCBRel.ApprovedFLS;
// costBearer.ApprovedFLSTotal = iCBRel.ApprovedFLSTotal;
costBearer.CustomerReferenceNumber = iCBRel.CustomerReferenceNumber;
costBearer.IsCalculatingWithFactor = iCBRel.CostBearer.IsCalculatingWithFactor;
pDataContract.IsApproved = iCBRel.ApprovedStartDate.HasValue;
pDataContract.CostBearerList.Add(costBearer);
pDataContract.CostBearerOids2CostBearerRelOids.Add(costBearer.Oid.Value, iCBRel.Oid.Value);
pDataContract.CustomerReferenceNumbers.Add(iCBRel.CustomerReferenceNumber);
pDataContract.CostBearerRelOids.Add(iCBRel.Oid.Value);
}
return pDataContract;
}
public override SupportConcept MergeWithEntity(CompactSupportConceptDC pDataContract, SupportConcept pEntity)
{
throw new NotImplementedException();
}
#endregion
#region Methods
protected override bool AreDCAndEntityEqual(CompactSupportConceptDC pDC, SupportConcept pEntity)
{
return pDC.SupportConceptOid == pEntity.Oid;
}
#endregion
}
}

View File

@@ -1,31 +1,31 @@
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactTeamDC_Team : AbstractIDCEntityMapper<Team, CompactTeamDC>
{
public override CompactTeamDC MergeWithDC(Team pEntity, CompactTeamDC pDataContract)
{
pDataContract.Name = pEntity.Name;
pDataContract.LeaderString = pEntity.Leader.Person.LastName + ", " + pEntity.Leader.Person.FirstName;
pDataContract.TeamOid = pEntity.Oid.Value;
pDataContract.TeamVersion = pEntity.Version.Value;
return pDataContract;
}
public override Team MergeWithEntity(CompactTeamDC pDataContract, Team pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactTeamDC pDC, Team pEntity)
{
return pDC.TeamOid == pEntity.Oid;
}
}
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactTeamDC_Team : AbstractIDCEntityMapper<Team, CompactTeamDC>
{
public override CompactTeamDC MergeWithDC(Team pEntity, CompactTeamDC pDataContract)
{
pDataContract.Name = pEntity.Name;
pDataContract.LeaderString = pEntity.Leader.Person.LastName + ", " + pEntity.Leader.Person.FirstName;
pDataContract.TeamOid = pEntity.Oid.Value;
pDataContract.TeamVersion = pEntity.Version.Value;
return pDataContract;
}
public override Team MergeWithEntity(CompactTeamDC pDataContract, Team pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactTeamDC pDC, Team pEntity)
{
return pDC.TeamOid == pEntity.Oid;
}
}
}

View File

@@ -3,7 +3,7 @@ using BeWo.Data.Entities;
using System.Linq;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactTokenDC_Token : AbstractIDCEntityMapper<Token, CompactTokenDC>
{

View File

@@ -1,37 +1,37 @@
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactUserDC_ApplicationUser : AbstractIDCEntityMapper<ApplicationUser, CompactUserDC>
{
public override CompactUserDC MergeWithDC(ApplicationUser pEntity, CompactUserDC pDataContract)
{
pDataContract.LoginName = pEntity.LoginName;
pDataContract.UserOid = pEntity.Oid.Value;
pDataContract.UserVersion = pEntity.Version.Value;
if (pEntity.Employee != null)
{
pDataContract.EmployeeOid = pEntity.Employee.Oid;
pDataContract.EmployeeFirstName = pEntity.Employee.Person.FirstName;
pDataContract.EmployeeLastName = pEntity.Employee.Person.LastName;
}
return pDataContract;
}
public override ApplicationUser MergeWithEntity(CompactUserDC pDataContract, ApplicationUser pEntity)
{
// compact is read only
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactUserDC pDC, ApplicationUser pEntity)
{
return pDC.UserOid == pEntity.Oid;
}
}
using System;
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactUserDC_ApplicationUser : AbstractIDCEntityMapper<ApplicationUser, CompactUserDC>
{
public override CompactUserDC MergeWithDC(ApplicationUser pEntity, CompactUserDC pDataContract)
{
pDataContract.LoginName = pEntity.LoginName;
pDataContract.UserOid = pEntity.Oid.Value;
pDataContract.UserVersion = pEntity.Version.Value;
if (pEntity.Employee != null)
{
pDataContract.EmployeeOid = pEntity.Employee.Oid;
pDataContract.EmployeeFirstName = pEntity.Employee.Person.FirstName;
pDataContract.EmployeeLastName = pEntity.Employee.Person.LastName;
}
return pDataContract;
}
public override ApplicationUser MergeWithEntity(CompactUserDC pDataContract, ApplicationUser pEntity)
{
// compact is read only
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactUserDC pDC, ApplicationUser pEntity)
{
return pDC.UserOid == pEntity.Oid;
}
}
}

View File

@@ -5,7 +5,7 @@ using System.Linq;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactVertreterEmployeeDC_VertreterEmployee : AbstractIDCEntityMapper<Employee, CompactVertreterEmployeeDC>
{

View File

@@ -1,41 +1,41 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using System.Linq;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper
{
public class CompactWohnheimDC_Wohnheim : AbstractIDCEntityMapper<Wohnheim, CompactWohnheimDC>
{
public override CompactWohnheimDC MergeWithDC(Wohnheim pEntity, CompactWohnheimDC pDataContract)
{
pDataContract.WohnheimOid = pEntity.Oid.Value;
pDataContract.Version = pEntity.Version.Value;
pDataContract.WohnheimName = pEntity.WohnheimName;
pDataContract.Strasse = pEntity.Strasse;
pDataContract.PLZ = pEntity.PLZ;
pDataContract.Ort = pEntity.Ort;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.Bemerkung = pEntity.Bemerkung;
pDataContract.PflichtbesetzungStart = pEntity.PflichtbesetzungStart;
pDataContract.PflichtbesetzungEnde = pEntity.PflichtbesetzungEnde;
pDataContract.PflichtbesetzungEinblenden = pEntity.PflichtbesetzungEinblenden;
pDataContract.StandardZeilenanzahl = pEntity.StandardZeilenanzahl;
pDataContract.CustomerOids = pEntity.Customer2WohnheimList.Select(c => c.CustomerOid.Value).ToList();
pDataContract.EmployeeOids = pEntity.Employee2WohnheimList.Select(c => c.EmployeeOid.Value).ToList();
return pDataContract;
}
// COMPACT Wohnheim ARE NOT EDITABLE
public override Wohnheim MergeWithEntity(CompactWohnheimDC pDataContract, Wohnheim pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Wohnheim>(pDataContract.WohnheimOid);
}
protected override bool AreDCAndEntityEqual(CompactWohnheimDC pDC, Wohnheim pEntity)
{
return pDC.WohnheimOid == pEntity.Oid;
}
}
using BeWo.Data.Access;
using BeWo.Data.Entities;
using System.Linq;
using BS.Shared.DataContracts.Compact;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class CompactWohnheimDC_Wohnheim : AbstractIDCEntityMapper<Wohnheim, CompactWohnheimDC>
{
public override CompactWohnheimDC MergeWithDC(Wohnheim pEntity, CompactWohnheimDC pDataContract)
{
pDataContract.WohnheimOid = pEntity.Oid.Value;
pDataContract.Version = pEntity.Version.Value;
pDataContract.WohnheimName = pEntity.WohnheimName;
pDataContract.Strasse = pEntity.Strasse;
pDataContract.PLZ = pEntity.PLZ;
pDataContract.Ort = pEntity.Ort;
pDataContract.ActivationType = pEntity.IsActive;
pDataContract.Bemerkung = pEntity.Bemerkung;
pDataContract.PflichtbesetzungStart = pEntity.PflichtbesetzungStart;
pDataContract.PflichtbesetzungEnde = pEntity.PflichtbesetzungEnde;
pDataContract.PflichtbesetzungEinblenden = pEntity.PflichtbesetzungEinblenden;
pDataContract.StandardZeilenanzahl = pEntity.StandardZeilenanzahl;
pDataContract.CustomerOids = pEntity.Customer2WohnheimList.Select(c => c.CustomerOid.Value).ToList();
pDataContract.EmployeeOids = pEntity.Employee2WohnheimList.Select(c => c.EmployeeOid.Value).ToList();
return pDataContract;
}
// COMPACT Wohnheim ARE NOT EDITABLE
public override Wohnheim MergeWithEntity(CompactWohnheimDC pDataContract, Wohnheim pEntity)
{
return DAOFactory.GenericDAO.LoadByID<Wohnheim>(pDataContract.WohnheimOid);
}
protected override bool AreDCAndEntityEqual(CompactWohnheimDC pDC, Wohnheim pEntity)
{
return pDC.WohnheimOid == pEntity.Oid;
}
}
}

View File

@@ -1,46 +0,0 @@
using BeWo.Data.Entities;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.DCEntityMapper
{
public class CompactGkvAbrechnungDC_GkvAbrechnung : AbstractIDCEntityMapper<GkvAbrechnung, CompactGkvAbrechnungDC>
{
public override CompactGkvAbrechnungDC MergeWithDC(GkvAbrechnung pEntity, CompactGkvAbrechnungDC pDataContract)
{
pDataContract.GkvAbrechnungOid = pEntity.Oid.Value;
pDataContract.GkvAbrechnungErstelltAm = pEntity.ErstelltAm;
pDataContract.GkvAbrechnungBetrag = pEntity.Betrag;
if(pEntity.LastTransferProtokoll is GkvTransferProtokoll protokoll)
{
pDataContract.GkvProtokollZuletztGesendet = protokoll.ErstelltAm;
pDataContract.GkvProtokollSentDakotaSuccess = protokoll.SentDakotaSuccess;
pDataContract.GkvProtokollResultType = protokoll.ResultType;
pDataContract.GkvProtokollResultDatum = protokoll.Fehlerdatum;
if(string.IsNullOrWhiteSpace(protokoll.Fehlertitel))
pDataContract.GkvProtokollResultMessage = protokoll.Fehlernachricht;
else
pDataContract.GkvProtokollResultMessage = protokoll.Fehlertitel + ": " + protokoll.Fehlernachricht;
}
return pDataContract;
}
public override GkvAbrechnung MergeWithEntity(CompactGkvAbrechnungDC pDataContract, GkvAbrechnung pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(CompactGkvAbrechnungDC pDC, GkvAbrechnung pEntity)
{
return pDC.GkvAbrechnungOid == pEntity.Oid;
}
}
}

View File

@@ -1,11 +1,13 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Entities.Light;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.Extensions;
using BS.Shared.Interface;
using NHibernate.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,26 +15,71 @@ namespace BeWo.Service.DCEntityMapper
{
public class GkvAbrechnungDC_GkvAbrechnung : AbstractIDCEntityMapper<GkvAbrechnung, GkvAbrechnungDC>
{
public void ClearRawData(List<GkvAbrechnungDC> gkvAbrechnungen)
{
if ((!gkvAbrechnungen?.Any()) ?? true)
return;
public static Tuple<bool, string> GetValidation(IGkvAbrechnung gkvAbrechnung, GkvState state, long orga_oid)
{
bool isReady = false;
string tooltip = "unknown error";
foreach (var gkvAbrechnung in gkvAbrechnungen)
switch (state)
{
ClearRawData(gkvAbrechnung);
case GkvState.NoSend:
isReady = true;
tooltip = "Senden";
break;
case GkvState.ErrorSoft:
isReady = true;
tooltip = "Erneut senden";
break;
case GkvState.ErrorFatal:
isReady = false;
tooltip = "Fataler Fehler";
break;
case GkvState.ErrorFolgefehler:
isReady = false;
tooltip = "Folgefehler";
break;
case GkvState.Paid:
isReady = false;
tooltip = "Bereits bezahlt";
break;
case GkvState.WaitingForDakota:
isReady = false;
tooltip = "Warte auf Übertragung";
break;
case GkvState.WaitingForKrankenkasse:
isReady = false;
tooltip = "Warte auf Gkv";
break;
case GkvState.WaitingForKrankenkasseTooLong:
isReady = false;
tooltip = "Informieren sie sich bei der jeweiligen Gkv";
break;
case GkvState.WaitingForUrbelege:
isReady = false;
tooltip = "Urbelege noch nicht gesendet";
break;
default:
break;
}
}
public void ClearRawData(GkvAbrechnungDC gkvAbrechnung)
{
if ((!gkvAbrechnung.TransferProtokolle?.Any()) ?? true)
return;
if (isReady)
{
// Hole OrganisationLight
var orga = DAOFactory.GenericDAO.LoadByID<OrganisationLight>(orga_oid);
if (!Validator.IsOrganisationInformationValid(orga))
{
isReady = false;
tooltip = "Organisation ist nicht Gkv Ready";
}
else if (!DAOFactory.FinanceDAO.HaveIKDatenannahmestelleChanged(gkvAbrechnung, orga.IKDatenannahmestelle))
{
isReady = false;
tooltip = "Datenannahmestelle hat sich geändert. Bitte neue Abrechnung erstellen.";
}
}
foreach (var protokoll in gkvAbrechnung.TransferProtokolle)
{
MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.ClearRawData(protokoll);
}
return new Tuple<bool, string>(isReady, tooltip);
}
public override GkvAbrechnungDC MergeWithDC(GkvAbrechnung pEntity, GkvAbrechnungDC pDataContract)
@@ -44,8 +91,8 @@ namespace BeWo.Service.DCEntityMapper
var orga = pEntity.Organisation;
pDataContract.GkvAbrechnungOid = pEntity.Oid;
pDataContract.GkvAbrechnungVersion = pEntity.Version;
pDataContract.Oid = pEntity.Oid;
pDataContract.Version = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
pDataContract.AbrechnungsZeitraumStart = pEntity.AbrechnungsZeitraumStart;
@@ -61,75 +108,11 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.Organisation = MapperFactory.OrganisationDC_OrganisationMapper.MapToNewDC(orga);
pDataContract.TransferProtokolle = MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.MapToNewDCs(pEntity.GkvTransferProtokolle);
pDataContract.Protokolle = MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.MapToNewDCs(pEntity.GkvTransferProtokolle);
bool isReady = false;
string tooltip = "unknown error";
var (isReady, tooltip) = GetValidation(pEntity, pEntity.GetState(), orga.Oid.Value);
var state = pDataContract.GetState();
switch (state)
{
case BS.Shared.GkvState.NoSend:
isReady = true;
tooltip = "Senden";
break;
case BS.Shared.GkvState.ErrorSoft:
isReady = true;
tooltip = "Erneut senden";
break;
case BS.Shared.GkvState.ErrorFatal:
isReady = false;
tooltip = "Fataler Fehler";
break;
case BS.Shared.GkvState.ErrorFolgefehler:
isReady = false;
tooltip = "Folgefehler";
break;
case BS.Shared.GkvState.Paid:
isReady = false;
tooltip = "Bereits bezahlt";
break;
case BS.Shared.GkvState.WaitingForDakota:
isReady = false;
tooltip = "Warte auf Übertragung";
break;
case BS.Shared.GkvState.WaitingForKrankenkasse:
isReady = false;
tooltip = "Warte auf Gkv";
break;
case BS.Shared.GkvState.WaitingForKrankenkasseTooLong:
isReady = false;
tooltip = "Informieren sie sich bei der jeweiligen Gkv";
break;
case BS.Shared.GkvState.WaitingForUrbelege:
isReady = false;
tooltip = "Urbelege noch nicht gesendet";
break;
default:
break;
}
if (isReady)
{
if(!Validator.IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle))
{
isReady = false;
tooltip = "Organisation fehlen Informationen";
}
else if(pDataContract.TransferProtokolle is IList<GkvTransferProtokollDC> list && list.Any())
{
var last_prot_w_daten = list.Select(x => x.IKDatenannahmestelle).Where((x) => !string.IsNullOrEmpty(x)).LastOrDefault();
if (!string.IsNullOrEmpty(last_prot_w_daten) && last_prot_w_daten != orga.IKDatenannahmestelle)
{
isReady = false;
tooltip = "Datenannahmestelle hat sich geändert. Bitte neue Abrechnung erstellen.";
}
}
}
pDataContract.IsReady2Send = isReady;
pDataContract.IsReady2Send = isReady;
pDataContract.SendTooltip = tooltip;
return pDataContract;
@@ -137,10 +120,10 @@ namespace BeWo.Service.DCEntityMapper
public override GkvAbrechnung MergeWithEntity(GkvAbrechnungDC pDataContract, GkvAbrechnung pEntity)
{
this.ConcurrencyCheck(pDataContract.GkvAbrechnungVersion, pEntity);
this.ConcurrencyCheck(pDataContract.Version, pEntity);
pEntity.Oid = pDataContract.GkvAbrechnungOid;
pEntity.Version = pDataContract.GkvAbrechnungVersion;
pEntity.Oid = pDataContract.Oid;
pEntity.Version = pDataContract.Version;
pEntity.Notice = pDataContract.Notice;
pEntity.AbrechnungsZeitraumStart = pDataContract.AbrechnungsZeitraumStart;
@@ -156,7 +139,7 @@ namespace BeWo.Service.DCEntityMapper
if (pEntity.GkvTransferProtokolle is null)
pEntity.GkvTransferProtokolle = new List<GkvTransferProtokoll>();
MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.MergeWithEntitys(pDataContract.TransferProtokolle, pEntity.GkvTransferProtokolle);
MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.MergeWithEntitys(pDataContract.Protokolle, pEntity.GkvTransferProtokolle);
pEntity.InvoiceBases = DAOFactory.GenericDAO.LoadByIDs<InvoiceBase>(pDataContract.InvoiceBases.Select(x => x.InvoiceBaseOid.Value));
@@ -172,12 +155,12 @@ namespace BeWo.Service.DCEntityMapper
protected override bool AreDCAndEntityEqual(GkvAbrechnungDC pDC, GkvAbrechnung pEntity)
{
if (pDC.GkvAbrechnungOid == null)
if (pDC.Oid == null)
{
return false;
}
return pDC.GkvAbrechnungOid == pEntity.Oid;
return pDC.Oid == pEntity.Oid;
}
}
}

View File

@@ -12,12 +12,6 @@ namespace BeWo.Service.DCEntityMapper
{
public class GkvTransferProtokollDC_GkvTransferprotokoll : AbstractIDCEntityMapper<GkvTransferProtokoll, GkvTransferProtokollDC>
{
public void ClearRawData(GkvTransferProtokollDC gkvTransfer)
{
gkvTransfer.Auftragsdatei = null;
gkvTransfer.Nutzdatendatei = null;
}
public override GkvTransferProtokollDC MergeWithDC(GkvTransferProtokoll pEntity, GkvTransferProtokollDC pDataContract)
{
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
@@ -30,8 +24,8 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.Dateityp = pEntity.Dateityp;
pDataContract.EmpfangerBezeichnung = pEntity.EmpfangerBezeichnung;
pDataContract.GkvAbrechnungOid = pEntity.GkvAbrechnungOid;
pDataContract.GkvTransferProtokollOid = pEntity.Oid;
pDataContract.GkvTransferProtokollVersion = pEntity.Version;
pDataContract.Oid = pEntity.Oid;
pDataContract.Version = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
pDataContract.Rechnungsnummer = pEntity.Rechnungsnummer;
@@ -58,15 +52,13 @@ namespace BeWo.Service.DCEntityMapper
public override GkvTransferProtokoll MergeWithEntity(GkvTransferProtokollDC pDataContract, GkvTransferProtokoll pEntity)
{
this.ConcurrencyCheck(pDataContract.GkvTransferProtokollVersion, pEntity);
ConcurrencyCheck(pDataContract.Version, pEntity);
pEntity.AbsenderBezeichnung = pDataContract.AbsenderBezeichnung;
pEntity.Dateiname = pDataContract.Dateiname;
pEntity.Dateityp = pDataContract.Dateityp;
pEntity.EmpfangerBezeichnung = pDataContract.EmpfangerBezeichnung;
pEntity.GkvAbrechnungOid = pDataContract.GkvAbrechnungOid;
pEntity.Oid = pDataContract.GkvTransferProtokollOid;
pEntity.Version = pDataContract.GkvTransferProtokollVersion;
pEntity.Notice = pDataContract.Notice;
pEntity.IKDatenannahmestelle = pDataContract.IKDatenannahmestelle;
@@ -97,12 +89,12 @@ namespace BeWo.Service.DCEntityMapper
protected override bool AreDCAndEntityEqual(GkvTransferProtokollDC pDC, GkvTransferProtokoll pEntity)
{
if (pDC.GkvTransferProtokollOid == null)
if (pDC.Oid == null)
{
return false;
}
return pDC.GkvTransferProtokollOid == pEntity.Oid;
return pDC.Oid == pEntity.Oid;
}
}
}

View File

@@ -0,0 +1,69 @@
using BeWo.Data.Entities;
using BeWo.Data.Entities.Light;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.Light;
using BS.Shared.Extensions;
using BS.Shared.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class GkvAbrechnungLightDC_GkvAbrechnungLight : AbstractIDCEntityMapper<GkvAbrechnungLight, GkvAbrechnungLightDC>
{
public override GkvAbrechnungLightDC MergeWithDC(GkvAbrechnungLight from, GkvAbrechnungLightDC to)
{
to.Oid = from.Oid.Value;
to.Version = from.Version.Value;
to.Notice = from.Notice;
to.ErstelltAm = from.ErstelltAm;
to.Betrag = from.Betrag;
to.OrganisationOid = from.OrganisationOid;
to.OrganisationName = from.OrganisationName;
to.AbrechnungsZeitraumStart = from.AbrechnungsZeitraumStart;
to.AbrechnungsZeitraumEnde = from.AbrechnungsZeitraumEnde;
to.UrbelegeGesendet = from.UrbelegeGesendet;
to.Bezahlt = from.Bezahlt;
to.Verfahrensstufe = from.Verfahrensstufe;
to.InvoiceBases = MapperFactory.InvoiceBaseLightDC_InvoiceBaseLight.MapToNewDCs(from.InvoiceBases);
to.Protokolle = MapperFactory.GkvTransferProtokollLightDC_GkvTransferprotokollLight.MapToNewDCs(from.Protokolle);
var (isReady, tooltip) = GkvAbrechnungDC_GkvAbrechnung.GetValidation(from, from.GetState(), from.OrganisationOid);
to.IsReady2Send = isReady;
to.SendTooltip = tooltip;
return to;
}
public override GkvAbrechnungLight MergeWithEntity(GkvAbrechnungLightDC from, GkvAbrechnungLight to)
{
this.ConcurrencyCheck(from.Version, to);
if (from.Bezahlt && !to.Bezahlt)
{
foreach (var invoice in to.InvoiceBases)
{
invoice.IsPaid = from.Bezahlt;
}
}
to.Bezahlt = from.Bezahlt;
to.Notice = from.Notice;
to.UrbelegeGesendet = from.UrbelegeGesendet;
return to;
}
protected override bool AreDCAndEntityEqual(GkvAbrechnungLightDC pDC, GkvAbrechnungLight pEntity)
{
return pDC.Oid == pEntity.Oid;
}
}
}

View File

@@ -0,0 +1,69 @@
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Entities.Light;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Light;
using NHibernate.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class GkvTransferProtokollLightDC_GkvTransferprotokollLight : AbstractIDCEntityMapper<GkvTransferProtokollLight, GkvTransferProtokollLightDC>
{
public override GkvTransferProtokollLightDC MergeWithDC(GkvTransferProtokollLight pEntity, GkvTransferProtokollLightDC pDataContract)
{
pDataContract.Oid = pEntity.Oid;
pDataContract.Version = pEntity.Version;
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
pDataContract.IKKrankenkasse = pEntity.IKKrankenkasse;
pDataContract.IKLeistungserbringer = pEntity.IKLeistungserbringer;
pDataContract.IKKostentrager = pEntity.IKKostentrager;
pDataContract.AbsenderBezeichnung = pEntity.AbsenderBezeichnung;
pDataContract.Dateiname = pEntity.Dateiname;
pDataContract.Dateityp = pEntity.Dateityp;
pDataContract.EmpfangerBezeichnung = pEntity.EmpfangerBezeichnung;
pDataContract.GkvAbrechnungOid = pEntity.GkvAbrechnungOid;
pDataContract.Notice = pEntity.Notice;
pDataContract.Rechnungsnummer = pEntity.Rechnungsnummer;
pDataContract.Transfername = pEntity.Transfername;
pDataContract.Transfernummer = pEntity.Transfernummer;
pDataContract.Dateigrosse = pEntity.Dateigrosse;
pDataContract.Datenaustauschreferenz = pEntity.Datenaustauschreferenz;
pDataContract.ErstelltAm = pEntity.ErstelltAm;
pDataContract.SentApp8Success = pEntity.SentApp8Success;
pDataContract.SentDakotaSuccess = pEntity.SentDakotaSuccess;
//pDataContract.HasFehler = pEntity.Fehlerdatum.HasValue || !string.IsNullOrWhiteSpace(pEntity.Fehlernachricht);
pDataContract.ResultType = pEntity.ResultType;
pDataContract.Fehlerdatum = pEntity.Fehlerdatum;
pDataContract.Fehlernachricht = pEntity.Fehlernachricht;
pDataContract.Fehlertitel = pEntity.Fehlertitel;
return pDataContract;
}
public override GkvTransferProtokollLight MergeWithEntity(GkvTransferProtokollLightDC pDataContract, GkvTransferProtokollLight pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(GkvTransferProtokollLightDC pDC, GkvTransferProtokollLight pEntity)
{
if (pDC.Oid == null)
{
return false;
}
return pDC.Oid == pEntity.Oid;
}
}
}

View File

@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using BS.Shared.DataContracts;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.DataContracts.Light;
using BeWo.Data.Entities.Light;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class InvoiceBaseLightDC_InvoiceBaseLight : AbstractIDCEntityMapper<InvoiceBaseLight, InvoiceBaseLightDC>
{
public override InvoiceBaseLightDC MergeWithDC(InvoiceBaseLight pEntity, InvoiceBaseLightDC pDataContract)
{
pDataContract.Oid = pEntity.Oid.Value;
pDataContract.Version = pEntity.Version.Value;
pDataContract.Notice = pEntity.Notice;
pDataContract.AccountingPeriodEnd = pEntity.AccountingPeriodEnd;
pDataContract.AccountingPeriodStart = pEntity.AccountingPeriodStart;
pDataContract.CustomerName = pEntity.CustomerName;
pDataContract.RecipientOrganisation = pEntity.RecipientOrganisation;
pDataContract.InvoiceTypeText = pEntity.InvoiceTypeText;
pDataContract.Type = pEntity.Type;
pDataContract.InvoiceDate = pEntity.InvoiceDate;
pDataContract.InvoiceNumber = pEntity.InvoiceNumber;
pDataContract.TotalAmount = pEntity.TotalAmount;
pDataContract.IsPaid = pEntity.IsPaid;
return pDataContract;
}
public override InvoiceBaseLight MergeWithEntity(InvoiceBaseLightDC pDataContract, InvoiceBaseLight pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(InvoiceBaseLightDC pDC, InvoiceBaseLight pEntity)
{
return pDC.Oid == pEntity.Oid;
}
}
}

View File

@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using BS.Shared.DataContracts;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BS.Shared;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
using BS.Shared.DataContracts.Light;
using BeWo.Data.Entities.Light;
namespace BeWo.Service.DCEntityMapper.Compact
{
public class OrganisationLightDC_OrganisationLight : AbstractIDCEntityMapper<OrganisationLight, OrganisationLightDC>
{
public override OrganisationLightDC MergeWithDC(OrganisationLight pEntity, OrganisationLightDC pDataContract)
{
pDataContract.Oid = pEntity.Oid.Value;
pDataContract.Version = pEntity.Version.Value;
pDataContract.Name = pEntity.Name;
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
pDataContract.IKKostentrager = pEntity.IKKostentrager;
pDataContract.IKKrankenkasse = pEntity.IKKrankenkasse;
pDataContract.BezDatenannahmestelle = pEntity.BezDatenannahmestelle;
return pDataContract;
}
public override OrganisationLight MergeWithEntity(OrganisationLightDC pDataContract, OrganisationLight pEntity)
{
throw new NotImplementedException();
}
protected override bool AreDCAndEntityEqual(OrganisationLightDC pDC, OrganisationLight pEntity)
{
return pDC.Oid == pEntity.Oid;
}
}
}

View File

@@ -1,4 +1,5 @@
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper.Compact;
using BS.Shared.DataContracts;
using DevExpress.CodeParser;
@@ -114,7 +115,11 @@ namespace BeWo.Service.DCEntityMapper
private static GkvTransferProtokollDC_GkvTransferprotokoll _GkvTransferProtokollDC_GkvTransferprotokoll;
private static GkvTransferProtokollLightDC_GkvTransferprotokollLight _CompactGkvTransferProtokollDC_GkvTransferprotokoll;
private static InvoiceBaseDC_InvoiceBase _InvoiceBaseDC_InvoiceBase;
private static CompactInvoiceBaseDC_InvoiceBase _CompactInvoiceBaseDC_InvoiceBase;
private static InvoiceDC_Invoice _InvoiceDC_Invoice;
@@ -310,7 +315,13 @@ namespace BeWo.Service.DCEntityMapper
private static AiSettingsDC_AiSettings _AiSettingsDC_AiSettings;
private static CompactGkvAbrechnungDC_GkvAbrechnung _CompactGkvAbrechnungDC_GkvAbrechnung;
private static GkvAbrechnungLightDC_GkvAbrechnungLight _GkvAbrechnungLightDC_GkvAbrechnungLight;
private static GkvTransferProtokollLightDC_GkvTransferprotokollLight _GkvTransferProtokollLightDC_GkvTransferprotokollLight;
private static CompactOrganisationDC_Organisation _OrganisationLightDC_OrganisationLight;
private static InvoiceBaseLightDC_InvoiceBaseLight _InvoiceBaseLightDC_InvoiceBaseLight;
public static MedRecordDC_MedRecord MedRecordDC_MedRecord =>
_MedRecordDC_MedRecord ?? (_MedRecordDC_MedRecord = new MedRecordDC_MedRecord());
@@ -564,9 +575,15 @@ namespace BeWo.Service.DCEntityMapper
public static GkvTransferProtokollDC_GkvTransferprotokoll GkvTransferProtokollDC_GkvTransferprotokoll =>
_GkvTransferProtokollDC_GkvTransferprotokoll ?? (_GkvTransferProtokollDC_GkvTransferprotokoll = new GkvTransferProtokollDC_GkvTransferprotokoll());
public static GkvTransferProtokollLightDC_GkvTransferprotokollLight CompactGkvTransferProtokollDC_GkvTransferprotokoll =>
_CompactGkvTransferProtokollDC_GkvTransferprotokoll ?? (_CompactGkvTransferProtokollDC_GkvTransferprotokoll = new GkvTransferProtokollLightDC_GkvTransferprotokollLight());
public static InvoiceBaseDC_InvoiceBase InvoiceBaseDC_InvoiceBase =>
_InvoiceBaseDC_InvoiceBase ?? (_InvoiceBaseDC_InvoiceBase = new InvoiceBaseDC_InvoiceBase());
public static CompactInvoiceBaseDC_InvoiceBase CompactInvoiceBaseDC_InvoiceBase =>
_CompactInvoiceBaseDC_InvoiceBase ?? (_CompactInvoiceBaseDC_InvoiceBase = new CompactInvoiceBaseDC_InvoiceBase());
public static InvoiceDC_Invoice InvoiceDC_Invoice =>
_InvoiceDC_Invoice ?? (_InvoiceDC_Invoice = new InvoiceDC_Invoice());
@@ -781,8 +798,17 @@ namespace BeWo.Service.DCEntityMapper
public static AiSettingsDC_AiSettings AiSettingsDC_AiSettings =>
_AiSettingsDC_AiSettings ?? (_AiSettingsDC_AiSettings = new AiSettingsDC_AiSettings());
public static CompactGkvAbrechnungDC_GkvAbrechnung CompactGkvAbrechnungDC_GkvAbrechnung =>
_CompactGkvAbrechnungDC_GkvAbrechnung ?? (_CompactGkvAbrechnungDC_GkvAbrechnung = new CompactGkvAbrechnungDC_GkvAbrechnung());
public static GkvAbrechnungLightDC_GkvAbrechnungLight GkvAbrechnungLightDC_GkvAbrechnungLight =>
_GkvAbrechnungLightDC_GkvAbrechnungLight ?? (_GkvAbrechnungLightDC_GkvAbrechnungLight = new GkvAbrechnungLightDC_GkvAbrechnungLight());
public static GkvTransferProtokollLightDC_GkvTransferprotokollLight GkvTransferProtokollLightDC_GkvTransferprotokollLight =>
_GkvTransferProtokollLightDC_GkvTransferprotokollLight ?? (_GkvTransferProtokollLightDC_GkvTransferprotokollLight = new GkvTransferProtokollLightDC_GkvTransferprotokollLight());
public static CompactOrganisationDC_Organisation OrganisationLightDC_OrganisationLight =>
_OrganisationLightDC_OrganisationLight ?? (_OrganisationLightDC_OrganisationLight = new CompactOrganisationDC_Organisation());
public static InvoiceBaseLightDC_InvoiceBaseLight InvoiceBaseLightDC_InvoiceBaseLight =>
_InvoiceBaseLightDC_InvoiceBaseLight ?? (_InvoiceBaseLightDC_InvoiceBaseLight = new InvoiceBaseLightDC_InvoiceBaseLight());
public static BankAccountDC_BankAccount BankAccountDC_BankAccount { get; }
= new BankAccountDC_BankAccount();

View File

@@ -237,11 +237,13 @@
<Compile Include="DCEntityMapper\AddressRouteDC_AddressRoute.cs" />
<Compile Include="DCEntityMapper\BankAccountDC_BankAccount.cs" />
<Compile Include="DCEntityMapper\BargeldtransaktionshistoryDC_Bargeldtransaktionshistory.cs" />
<Compile Include="DCEntityMapper\CompactGkvAbrechnungDC_GkvAbrechnung.cs" />
<Compile Include="DCEntityMapper\Compact\CompactInvoiceBaseDC_InvoiceBase.cs" />
<Compile Include="DCEntityMapper\Light\GkvAbrechnungLightDC_GkvAbrechnungLight.cs" />
<Compile Include="DCEntityMapper\ConfirmationReceiptSignatureDC_ConfirmationReceiptSignature.cs" />
<Compile Include="DCEntityMapper\CustomerVermittlungArbeitDC_CustomerVermittlungArbeit.cs" />
<Compile Include="DCEntityMapper\AiSettingsDC_AiSettings.cs" />
<Compile Include="DCEntityMapper\CustomerWohnhilfeDC_CustomerWohnhilfe.cs" />
<Compile Include="DCEntityMapper\Light\GkvTransferProtokollLightDC_GkvTransferprotokollLight.cs" />
<Compile Include="DCEntityMapper\ImageDC_Image.cs" />
<Compile Include="DCEntityMapper\DienstvertretungDC_Dienstvertretung.cs" />
<Compile Include="DCEntityMapper\DokumentvorlageDC_Dokumentvorlage.cs" />
@@ -249,6 +251,8 @@
<Compile Include="DCEntityMapper\GkvTransferProtokollDC_GkvTransferprotokoll.cs" />
<Compile Include="DCEntityMapper\GkvAbrechnungDC_GkvAbrechnung.cs" />
<Compile Include="DCEntityMapper\GeschenkterUrlaubstagDC_GeschenkterUrlaubstag.cs" />
<Compile Include="DCEntityMapper\Light\InvoiceBaseLightDC_InvoiceBaseLight.cs" />
<Compile Include="DCEntityMapper\Light\OrganisationLightDC_OrganisationLight.cs" />
<Compile Include="DCEntityMapper\PreisDC_Preis.cs" />
<Compile Include="DCEntityMapper\QuittierungsbelegsstatusDC_Quittierungsbelegsstatus.cs" />
<Compile Include="DCEntityMapper\RatingTypeDC_RatingType.cs" />
@@ -275,7 +279,7 @@
<Compile Include="DCEntityMapper\BargeldtransaktionDC_Bargeldtransaktion.cs" />
<Compile Include="DCEntityMapper\BeWoFolderDC_BeWoFolder.cs" />
<Compile Include="DCEntityMapper\BeWoMobilBrowserInfoDC_BeWoMobilBrowserInfo.cs" />
<Compile Include="DCEntityMapper\CompactCustomerTeamDC_CustomerTeam.cs" />
<Compile Include="DCEntityMapper\Compact\CompactCustomerTeamDC_CustomerTeam.cs" />
<Compile Include="DCEntityMapper\CustomerTeamDC_CustomerTeam.cs" />
<Compile Include="DCEntityMapper\CustomerTeamRelDC_Team2CustomerMapper.cs" />
<Compile Include="DCEntityMapper\DarreichungsformDC_Darreichungsform.cs" />
@@ -290,13 +294,13 @@
<Compile Include="DCEntityMapper\AbstractIDCEntityMapper.cs" />
<Compile Include="DCEntityMapper\AccountingTransactionDC_AccountingTransaction.cs" />
<Compile Include="DCEntityMapper\BookingSequenceDC_ResourceBookingSequence.cs" />
<Compile Include="DCEntityMapper\CompactCustomerDC_Customer.cs" />
<Compile Include="DCEntityMapper\CompactEmployeeDC_Employee.cs" />
<Compile Include="DCEntityMapper\CompactOrganisationDC_Organisation.cs" />
<Compile Include="DCEntityMapper\CompactPersonDC_Person.cs" />
<Compile Include="DCEntityMapper\CompactSupportConceptDC_SupportConcept.cs" />
<Compile Include="DCEntityMapper\CompactTeamDC_Team.cs" />
<Compile Include="DCEntityMapper\CompactUserDC_ApplicationUser.cs" />
<Compile Include="DCEntityMapper\Compact\CompactCustomerDC_Customer.cs" />
<Compile Include="DCEntityMapper\Compact\CompactEmployeeDC_Employee.cs" />
<Compile Include="DCEntityMapper\Compact\CompactOrganisationDC_Organisation.cs" />
<Compile Include="DCEntityMapper\Compact\CompactPersonDC_Person.cs" />
<Compile Include="DCEntityMapper\Compact\CompactSupportConceptDC_SupportConcept.cs" />
<Compile Include="DCEntityMapper\Compact\CompactTeamDC_Team.cs" />
<Compile Include="DCEntityMapper\Compact\CompactUserDC_ApplicationUser.cs" />
<Compile Include="DCEntityMapper\ContactDC_Contact.cs" />
<Compile Include="DCEntityMapper\CostRatePeriodDC_CostRatePeriod.cs" />
<Compile Include="DCEntityMapper\CustomerCostBearerRelDC_Customer2CostBearer.cs" />
@@ -316,20 +320,20 @@
<Compile Include="DCEntityMapper\AppointmentDC_Appointment.cs" />
<Compile Include="DCEntityMapper\AbsenceTimeDC_AppointmentAbsenceTime.cs" />
<Compile Include="DCEntityMapper\CustomerOrganisationRelationDC_Customer2Organisation.cs" />
<Compile Include="DCEntityMapper\CompactGroupOfPeopleDC_GroupOfPeople.cs" />
<Compile Include="DCEntityMapper\Compact\CompactGroupOfPeopleDC_GroupOfPeople.cs" />
<Compile Include="DCEntityMapper\GroupOfPeopleDC_GroupOfPeople.cs" />
<Compile Include="DCEntityMapper\CompactCustomerDC_CustomerCompact.cs" />
<Compile Include="DCEntityMapper\CompactWohnheimDC_Wohnheim.cs" />
<Compile Include="DCEntityMapper\Compact\CompactCustomerDC_CustomerCompact.cs" />
<Compile Include="DCEntityMapper\Compact\CompactWohnheimDC_Wohnheim.cs" />
<Compile Include="DCEntityMapper\CustomerAPPCodeDC_CustomerAPPCode.cs" />
<Compile Include="DCEntityMapper\EmployeeAPPCodeDC_EmployeeAPPCode.cs" />
<Compile Include="DCEntityMapper\ChatMessageDC_ChatMessage.cs" />
<Compile Include="DCEntityMapper\ChatMediaMessageDC_ChatMediaMessage.cs" />
<Compile Include="DCEntityMapper\ArbeitszeitDC_Arbeitszeit.cs" />
<Compile Include="DCEntityMapper\ArbeitszeitEintragDC_ArbeitszeitEintrag.cs" />
<Compile Include="DCEntityMapper\CompactVertreterEmployeeDC_VertreterEmployee.cs" />
<Compile Include="DCEntityMapper\Compact\CompactVertreterEmployeeDC_VertreterEmployee.cs" />
<Compile Include="DCEntityMapper\CustomerTokenRelationDC_Customer2Token.cs" />
<Compile Include="DCEntityMapper\EmployeeTokenRelationDC_Employee2Token.cs" />
<Compile Include="DCEntityMapper\CompactTokenDC_Token.cs" />
<Compile Include="DCEntityMapper\Compact\CompactTokenDC_Token.cs" />
<Compile Include="DCEntityMapper\ChatBewoMessageSyncDC_ChatBewoMessageSync.cs" />
<Compile Include="DCEntityMapper\BudgetDC_Budget.cs" />
<Compile Include="DCEntityMapper\QuittierungsCheckDC_QuittierungsCheck.cs" />

View File

@@ -1,6 +1,8 @@
using BS.Shared;
using BeWo.Data.Entities.Light;
using BS.Shared;
using BS.Shared.Attributes;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Light;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -18,17 +20,17 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequirePermission(UserRightType.Finance_Gkv_View)]
GkvAbrechnungDC GetGkvAbrechnung(long oid);
GkvAbrechnungLightDC GetGkvAbrechnung(long oid);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequirePermission(UserRightType.Finance_Gkv_View)]
List<GkvAbrechnungDC> GetAllGkvAbrechnungen();
List<GkvAbrechnungLightDC> GetAllGkvAbrechnungen();
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequirePermission(UserRightType.Finance_Gkv_View)]
List<GkvAbrechnungDC> GetFilteredGkvAbrechnungen(GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter);
List<GkvAbrechnungLightDC> GetFilteredGkvAbrechnungen(GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
@@ -43,12 +45,12 @@ namespace BeWo.Service.ServiceContracts
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequirePermission(UserRightType.Finance_Gkv_Create)]
GkvAbrechnungDC UpdateGkvAbrechnung(GkvAbrechnungDC abrechnung);
GkvAbrechnungLightDC UpdateGkvAbrechnung(GkvAbrechnungLightDC abrechnung);
[FaultContract(typeof(BeWoFault))]
[OperationContract]
[RequirePermission(UserRightType.Finance_Gkv_Delete)]
void DeleteGkvAbrechnung(GkvAbrechnungDC abrechnung);
void DeleteGkvAbrechnung(long oid, long version);
[FaultContract(typeof(BeWoFault))]
[OperationContract]

View File

@@ -308,7 +308,7 @@ namespace BeWo.Service.ServiceImplementations
{
try
{
return MapperFactory.CompactOrganisationDC_Organisation.MapToNewDCs(DAOFactory.SearchDAO.FindOrganisation(pName, pOnlyCostBearer));
return MapperFactory.CompactOrganisationDC_Organisation.MapToNewDCs(DAOFactory.OrganisationDAO.FindOrganisation(pName, pOnlyCostBearer));
}
catch (Exception e)
{
@@ -3481,7 +3481,7 @@ namespace BeWo.Service.ServiceImplementations
public List<CompactOrganisationDC> GetOrganisationsForPerson(long personoid)
{
var x = DAOFactory.SearchDAO.GetAllOrganisation2PersonRelations(personoid);
var x = DAOFactory.OrganisationDAO.GetAllOrganisation2PersonRelations(personoid);
var items = MapperFactory.CompactOrganisationDC_Organisation.MapToNewDCs(x);

View File

@@ -1,6 +1,7 @@
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Data.Entities.Light;
using BeWo.Service.Core;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
@@ -8,9 +9,12 @@ using BeWo.Service.ServiceContracts;
using BS.Shared;
using BS.Shared.AppSender;
using BS.Shared.Core;
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.DataContracts.Light;
using BS.Shared.Exceptions;
using BS.Shared.Extensions;
using BS.Shared.Interface;
using Dakota;
using Dakota.Logic;
using System;
@@ -29,15 +33,13 @@ namespace BeWo.Service.ServiceImplementations
{
public string Tenant => MultitenancyOperationContextExt.Current?.Tenant;
public GkvAbrechnungDC GetGkvAbrechnung(long oid)
public GkvAbrechnungLightDC GetGkvAbrechnung(long oid)
{
try
{
var gkv = DAOFactory.GenericDAO.GetByID<GkvAbrechnung>(oid);
var gkv = DAOFactory.GenericDAO.GetByID<GkvAbrechnungLight>(oid);
var dc = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(gkv);
MapperFactory.GkvAbrechnungDC_GkvAbrechnung.ClearRawData(dc);
var dc = MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MapToNewDC(gkv);
return dc;
}
@@ -46,7 +48,8 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
public List<GkvAbrechnungDC> GetFilteredGkvAbrechnungen(GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter)
public List<GkvAbrechnungLightDC> GetFilteredGkvAbrechnungen(GkvAbrechnungViewFilterDC gkvAbrechnungViewFilter)
{
try
{
@@ -57,31 +60,29 @@ namespace BeWo.Service.ServiceImplementations
var end = gkvAbrechnungViewFilter.End;
var filter = gkvAbrechnungViewFilter.FilterForInvoiceDate;
return GetGkvAbrechnungen(() => DAOFactory.SearchDAO.GetGkvAbrechnungen(start, end, filter));
return GetGkvAbrechnungen(() => DAOFactory.FinanceDAO.GetGkvAbrechnungen(start, end, filter));
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
public List<GkvAbrechnungDC> GetAllGkvAbrechnungen()
public List<GkvAbrechnungLightDC> GetAllGkvAbrechnungen()
{
try
{
return GetGkvAbrechnungen(() => DAOFactory.GenericDAO.GetAllActive<GkvAbrechnung>());
return GetGkvAbrechnungen(() => DAOFactory.GenericDAO.GetAllActive<GkvAbrechnungLight>());
}
catch (Exception e)
{
throw Utils.CreateBeWoFaultException(e);
}
}
private List<GkvAbrechnungDC> GetGkvAbrechnungen(Func<IEnumerable<GkvAbrechnung>> get_entities)
private List<GkvAbrechnungLightDC> GetGkvAbrechnungen(Func<IEnumerable<GkvAbrechnungLight>> get_entities)
{
var entities = get_entities();
var dcs = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDCs(entities);
MapperFactory.GkvAbrechnungDC_GkvAbrechnung.ClearRawData(dcs);
var dcs = MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MapToNewDCs(entities);
var updateables = dcs.Where(x => x.IsWaiting()).ToArray();
@@ -95,9 +96,7 @@ namespace BeWo.Service.ServiceImplementations
entities = get_entities();
dcs = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDCs(entities);
MapperFactory.GkvAbrechnungDC_GkvAbrechnung.ClearRawData(dcs);
dcs = MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MapToNewDCs(entities);
return dcs;
}
@@ -110,7 +109,7 @@ namespace BeWo.Service.ServiceImplementations
throw new ArgumentOutOfRangeException(nameof(oid), $"oid \'{oid}\' nicht positiv");
}
var str = DAOFactory.SearchDAO.GetGkvRawData(oid, gkvRawData);
var str = DAOFactory.FinanceDAO.GetGkvRawData(oid, gkvRawData);
return str;
}
@@ -162,10 +161,12 @@ namespace BeWo.Service.ServiceImplementations
DAOFactory.GenericDAO.Insert(gkv_abrechnung);
var gkv_abrechnung_dc = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(gkv_abrechnung);
var gkv_light = DAOFactory.GenericDAO.LoadByID<GkvAbrechnungLight>(gkv_abrechnung.Oid.Value);
var gkv_abrechnung_dc = MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MapToNewDC(gkv_light);
response.Success = true;
response.GkvAbrechnungDC = gkv_abrechnung_dc;
response.GkvAbrechnungLightDC = gkv_abrechnung_dc;
}
catch (GkvException exc)
{
@@ -184,33 +185,17 @@ namespace BeWo.Service.ServiceImplementations
return response;
}
public GkvAbrechnungDC UpdateGkvAbrechnung(GkvAbrechnungDC abrechnung)
public GkvAbrechnungLightDC UpdateGkvAbrechnung(GkvAbrechnungLightDC abrechnung)
{
try
{
var entity = DAOFactory.GenericDAO.GetByID<GkvAbrechnung>(abrechnung.GkvAbrechnungOid.Value);
var entity = DAOFactory.GenericDAO.GetByID<GkvAbrechnungLight>(abrechnung.Oid);
if(entity.Notice != abrechnung.Notice)
entity.Notice = abrechnung.Notice;
if (entity.UrbelegeGesendet != abrechnung.UrbelegeGesendet)
entity.UrbelegeGesendet = abrechnung.UrbelegeGesendet;
if (entity.Bezahlt != abrechnung.Bezahlt)
{
entity.Bezahlt = abrechnung.Bezahlt;
foreach (var invoice in entity.InvoiceBases)
{
invoice.IsPaid = entity.Bezahlt;
}
}
MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MergeWithEntity(abrechnung, entity);
DAOFactory.GenericDAO.Update(entity);
var dc = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(entity);
MapperFactory.GkvAbrechnungDC_GkvAbrechnung.ClearRawData(dc);
var dc = MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MapToNewDC(entity);
return dc;
}
@@ -219,11 +204,11 @@ namespace BeWo.Service.ServiceImplementations
throw Utils.CreateBeWoFaultException(e);
}
}
public void DeleteGkvAbrechnung(GkvAbrechnungDC abrechnung)
public void DeleteGkvAbrechnung(long oid, long version)
{
try
{
ServiceLogic.SetActivationType<GkvAbrechnung>(abrechnung.GkvAbrechnungOid.Value, abrechnung.GkvAbrechnungVersion.Value, ActivationTypeId.Deleted);
ServiceLogic.SetActivationType<GkvAbrechnung>(oid, version, ActivationTypeId.Deleted);
}
catch (Exception e)
{
@@ -298,11 +283,11 @@ namespace BeWo.Service.ServiceImplementations
DAOFactory.GenericDAO.Update(entity);
response.TransferProtokoll = MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.MapToNewDC(protokoll);
response.GkvAbrechnungDC = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(entity);
var entity_light = DAOFactory.GenericDAO.LoadByID<GkvAbrechnungLight>(entity.Oid.Value);
var protokoll_light = DAOFactory.GenericDAO.LoadByID<GkvTransferProtokollLight>(protokoll.Oid.Value);
MapperFactory.GkvTransferProtokollDC_GkvTransferprotokoll.ClearRawData(response.TransferProtokoll);
MapperFactory.GkvAbrechnungDC_GkvAbrechnung.ClearRawData(response.GkvAbrechnungDC);
response.GkvAbrechnungDC = MapperFactory.GkvAbrechnungLightDC_GkvAbrechnungLight.MapToNewDC(entity_light);
response.TransferProtokoll = MapperFactory.GkvTransferProtokollLightDC_GkvTransferprotokollLight.MapToNewDC(protokoll_light);
return response;
}
@@ -336,7 +321,7 @@ namespace BeWo.Service.ServiceImplementations
if (res.Gefunden)
{
// Holt alle Organisationen
var orgas = DAOFactory.SearchDAO.GetAllOrganisationByIKKrankenkasse(req.IKKrankenkasse);
var orgas = DAOFactory.OrganisationDAO.GetAllOrganisationByIKKrankenkasse(req.IKKrankenkasse);
// Entfernt sich selber
if (req.OrganisationOid is long oid)
@@ -543,7 +528,7 @@ namespace BeWo.Service.ServiceImplementations
/// <param name="loginName"></param>
/// <param name="hashed_password"></param>
/// <returns>Returns true, if the states are all up to date. False otherwise.</returns>
private bool SendApp8GetStatusRequest(GkvAbrechnungDC[] updateables)
private bool SendApp8GetStatusRequest(IGkvAbrechnung[] updateables)
{
var updateables_len = updateables.Count();
@@ -558,7 +543,7 @@ namespace BeWo.Service.ServiceImplementations
var gkv_abrechnung = updateables[id];
var gkv_transfer = gkv_abrechnung.TransferProtokolle.Last();
request.Oids[id] = gkv_transfer.GkvTransferProtokollOid.Value;
request.Oids[id] = gkv_transfer.Oid.Value;
}
GkvServerGetStatusResponseDC response_app8;
@@ -591,10 +576,10 @@ namespace BeWo.Service.ServiceImplementations
public void HandleGkvServerResults(IEnumerable<GkvServerResultDC> results)
{
var protokolls = new List<GkvTransferProtokoll>();
var protokolls = new List<GkvTransferProtokollLight>();
foreach (var result in results)
{
var protokoll = DAOFactory.GenericDAO.GetByID<GkvTransferProtokoll>(result.ProtokollOid);
var protokoll = DAOFactory.GenericDAO.GetByID<GkvTransferProtokollLight>(result.ProtokollOid);
protokoll.ResultType = result.ResultType;
protokoll.Fehlertitel = result.Titel;
@@ -630,8 +615,7 @@ namespace BeWo.Service.ServiceImplementations
foreach (var follow in follows)
{
var protokoll_oid = follow.ProtokollOid;
var protokoll = DAOFactory.GenericDAO.LoadByID<GkvTransferProtokoll>(protokoll_oid);
var abrechnung_oid = protokoll.GkvAbrechnungOid;
var abrechnung_oid = DAOFactory.FinanceDAO.GetGkvParentByProtokollOid(protokoll_oid);
var new_req = new GkvAbrechnungSendRequestDC()
{

View File

@@ -1,6 +1,7 @@
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.Exceptions;
using BS.Shared.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -109,6 +110,10 @@ namespace BS.Shared.Core
if (error != null)
throw new GkvException(error);
}
public static bool IsOrganisationInformationValid(IOrganisation orga)
{
return IsOrganisationInformationValid(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse, orga.BezDatenannahmestelle);
}
public static bool IsOrganisationInformationValid(string ik_datenannahmestelle, string ik_kostentrager, string ik_krankenkasse, string bez_datenannahmestelle)
=> IsIKNumberValid(ik_datenannahmestelle, ik_kostentrager, ik_krankenkasse) && IsBezDatenannahmestelleValid(bez_datenannahmestelle);
public static bool IsIKNumberValid(params string[] iks)

View File

@@ -1,38 +0,0 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Compact
{
[DataContract]
public class CompactGkvAbrechnungDC : IDataContract
{
[JsonProperty("gkvioid")]
[DataMember] public long GkvAbrechnungOid { get; set; }
[JsonProperty("gkvicreated")]
[DataMember] public DateTime GkvAbrechnungErstelltAm { get; set; }
[JsonProperty("gkvisum")]
[DataMember] public decimal GkvAbrechnungBetrag { get; set; }
[JsonProperty("sentdatetime")]
[DataMember] public DateTime? GkvProtokollZuletztGesendet { get; set; }
[JsonProperty("sentdakotasuccess")]
[DataMember] public bool GkvProtokollSentDakotaSuccess { get; set; }
[JsonProperty("resulttype")]
[DataMember] public GkvTransferResultType? GkvProtokollResultType { get; set; }
[JsonProperty("resultmessage")]
[DataMember] public string GkvProtokollResultMessage { get; set; }
[JsonProperty("resultdatetime")]
[DataMember] public DateTime? GkvProtokollResultDatum { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Light
{
public class CompactInvoiceBaseDC : IDataContract
{
[DataMember] public long? InvoiceBaseOid { get; set; }
[DataMember] public DateTime? AccountingPeriodEnd { get; set; }
[DataMember] public DateTime? AccountingPeriodStart { get; set; }
[DataMember] public string CustomerName { get; set; }
[DataMember] public string RecipientOrganisation { get; set; }
[DataMember] public string InvoiceTypeText { get; set; }
[DataMember] public DateTime? InvoiceDate { get; set; }
[DataMember] public string InvoiceNumber { get; set; }
[DataMember] public decimal? TotalAmount { get; set; }
[DataMember] public bool IsPaid { get; set; }
[DataMember] public string Notice { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using System;
using BS.Shared.DataContracts.Light;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
@@ -19,6 +20,6 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
public GkvAbrechnungCreateResponseDC(bool success, string message)
: base(success, message) { }
[DataMember] public GkvAbrechnungDC GkvAbrechnungDC { get; set; }
[DataMember] public GkvAbrechnungLightDC GkvAbrechnungLightDC { get; set; }
}
}

View File

@@ -12,8 +12,8 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
{
public GkvAbrechnungDC() { }
[DataMember] public long? GkvAbrechnungOid { get; set; }
[DataMember] public long? GkvAbrechnungVersion { get; set; }
[DataMember] public long? Oid { get; set; }
[DataMember] public long? Version { get; set; }
[DataMember] public string Notice { get; set; }
[DataMember] public DateTime? AbrechnungsZeitraumStart { get; set; }
[DataMember] public DateTime? AbrechnungsZeitraumEnde { get; set; }
@@ -24,10 +24,11 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
[DataMember] public GkvVerfahrensstufe Verfahrensstufe { get; set; }
[DataMember] public IList<InvoiceBaseDC> InvoiceBases { get; set; }
[DataMember] public OrganisationDC Organisation { get; set; }
[DataMember] public IList<GkvTransferProtokollDC> TransferProtokolle { get; set; }
[DataMember] public IList<GkvTransferProtokollDC> Protokolle { get; set; }
[DataMember] public bool IsReady2Send { get; set; }
[DataMember] public string SendTooltip { get; set; }
public IGkvTransferProtokoll LastTransferProtokoll => TransferProtokolle?.LastOrDefault();
public IEnumerable<IGkvTransferProtokoll> TransferProtokolle => Protokolle;
public IGkvTransferProtokoll LastTransferProtokoll => Protokolle?.LastOrDefault();
}
}

View File

@@ -11,6 +11,10 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
public class GkvAbrechnungSendRequestDC : IDataContract
{
public GkvAbrechnungSendRequestDC() { }
public GkvAbrechnungSendRequestDC(long oid)
{
GkvAbrechnungOid = oid;
}
[DataMember] public long GkvAbrechnungOid { get; set; }
}

View File

@@ -1,4 +1,5 @@
using System;
using BS.Shared.DataContracts.Light;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
@@ -19,7 +20,7 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
public GkvAbrechnungSendResponseDC(bool success, string message)
: base(success, message) { }
[DataMember] public GkvAbrechnungDC GkvAbrechnungDC { get; set; }
[DataMember] public GkvTransferProtokollDC TransferProtokoll { get; set; }
[DataMember] public GkvAbrechnungLightDC GkvAbrechnungDC { get; set; }
[DataMember] public GkvTransferProtokollLightDC TransferProtokoll { get; set; }
}
}

View File

@@ -18,7 +18,7 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
[DataMember] public long ApplicationUserOid { get; set; }
[DataMember] public GkvTransferProtokollDC Protokoll { get; set; }
public long Protokoll_Oid => Protokoll.GkvTransferProtokollOid.Value;
public long Protokoll_Oid => Protokoll.Oid.Value;
public string Datenannahmestelle => Protokoll.IKDatenannahmestelle;
public string Transfername => Protokoll.Transfername;
public string Nutzdatendatei => Protokoll.Nutzdatendatei;

View File

@@ -9,8 +9,8 @@ namespace BS.Shared.DataContracts.GkvAbrechnung
[DataContract]
public class GkvTransferProtokollDC : IDataContract, IGkvTransferProtokoll
{
[DataMember] public long? GkvTransferProtokollOid { get; set; }
[DataMember] public long? GkvTransferProtokollVersion { get; set; }
[DataMember] public long? Oid { get; set; }
[DataMember] public long? Version { get; set; }
[DataMember] public string Notice { get; set; }
[DataMember] public long GkvAbrechnungOid { get; set; }
[DataMember] public string AbsenderBezeichnung { get; set; }

View File

@@ -0,0 +1,35 @@
using BS.Shared.DataContracts.Compact;
using BS.Shared.DataContracts.GkvAbrechnung;
using BS.Shared.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Light
{
public class GkvAbrechnungLightDC : ILightDataContract, IGkvAbrechnung
{
[DataMember] public long Oid { get; set; }
[DataMember] public long Version { get; set; }
[DataMember] public string Notice { get; set; }
[DataMember] public DateTime ErstelltAm { get; set; }
[DataMember] public decimal Betrag { get; set; }
[DataMember] public long OrganisationOid { get; set; }
[DataMember] public string OrganisationName { get; set; }
[DataMember] public DateTime? AbrechnungsZeitraumStart { get; set; }
[DataMember] public DateTime? AbrechnungsZeitraumEnde { get; set; }
[DataMember] public bool UrbelegeGesendet { get; set; }
[DataMember] public bool Bezahlt { get; set; }
[DataMember] public GkvVerfahrensstufe Verfahrensstufe { get; set; }
[DataMember] public IList<InvoiceBaseLightDC> InvoiceBases { get; set; }
[DataMember] public IList<GkvTransferProtokollLightDC> Protokolle { get; set; }
[DataMember] public bool IsReady2Send { get; set; }
[DataMember] public string SendTooltip { get; set; }
public virtual IEnumerable<IGkvTransferProtokoll> TransferProtokolle => Protokolle;
public virtual IGkvTransferProtokoll LastTransferProtokoll => Protokolle?.LastOrDefault();
}
}

View File

@@ -0,0 +1,40 @@
using BS.Shared.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Light
{
public class GkvTransferProtokollLightDC : ILightDataContract, IGkvTransferProtokoll
{
[DataMember] public long? Oid { get; set; }
[DataMember] public long? Version { get; set; }
[DataMember] public string Notice { get; set; }
[DataMember] public long GkvAbrechnungOid { get; set; }
[DataMember] public string AbsenderBezeichnung { get; set; }
[DataMember] public string EmpfangerBezeichnung { get; set; }
[DataMember] public string IKLeistungserbringer { get; set; }
[DataMember] public string IKKrankenkasse { get; set; }
[DataMember] public string IKKostentrager { get; set; }
[DataMember] public string IKDatenannahmestelle { get; set; }
[DataMember] public string Rechnungsnummer { get; set; }
[DataMember] public int Datenaustauschreferenz { get; set; }
[DataMember] public int Transfernummer { get; set; }
[DataMember] public string Transfername { get; set; }
[DataMember] public DateTime? ErstelltAm { get; set; }
[DataMember] public string Dateityp { get; set; }
[DataMember] public string Dateiname { get; set; }
[DataMember] public int Dateigrosse { get; set; }
[DataMember] public bool SentApp8Success { get; set; }
[DataMember] public bool SentDakotaSuccess { get; set; }
[DataMember] public GkvTransferResultType? ResultType { get; set; }
[DataMember] public string Fehlertitel { get; set; }
[DataMember] public DateTime? Fehlerdatum { get; set; }
[DataMember] public string Fehlernachricht { get; set; }
public string BezDatenannahmestelle => EmpfangerBezeichnung;
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Light
{
public interface ILightDataContract : IDataContract
{
}
}

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Light
{
public class InvoiceBaseLightDC : ILightDataContract
{
[DataMember] public long? Oid { get; set; }
[DataMember] public long Version { get; set; }
[DataMember] public DateTime? AccountingPeriodEnd { get; set; }
[DataMember] public DateTime? AccountingPeriodStart { get; set; }
[DataMember] public string CustomerName { get; set; }
[DataMember] public string RecipientOrganisation { get; set; }
[DataMember] public InvoiceType Type { get; set; }
[DataMember] public string InvoiceTypeText { get; set; }
[DataMember] public DateTime? InvoiceDate { get; set; }
[DataMember] public string InvoiceNumber { get; set; }
[DataMember] public decimal? TotalAmount { get; set; }
[DataMember] public bool IsPaid { get; set; }
[DataMember] public string Notice { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.DataContracts.Light
{
public class OrganisationLightDC : ILightDataContract
{
[DataMember] public long Oid { get; set; }
[DataMember] public long Version { get; set; }
[DataMember] public string Name { get; set; }
[DataMember] public string IKKrankenkasse { get; set; }
[DataMember] public string IKKostentrager { get; set; }
[DataMember] public string IKDatenannahmestelle { get; set; }
[DataMember] public string BezDatenannahmestelle { get; set; }
}
}

View File

@@ -11,6 +11,8 @@ namespace BS.Shared.Interface
bool Bezahlt { get; set; }
bool UrbelegeGesendet { get; set; }
DateTime ErstelltAm { get; set; }
IGkvTransferProtokoll LastTransferProtokoll { get; }
}
IEnumerable<IGkvTransferProtokoll> TransferProtokolle { get; }
IGkvTransferProtokoll LastTransferProtokoll { get; }
}
}

View File

@@ -8,6 +8,7 @@ namespace BS.Shared.Interface
{
public interface IGkvTransferProtokoll
{
long? Oid { get; }
string IKDatenannahmestelle { get; set; }
string BezDatenannahmestelle { get; }
GkvTransferResultType? ResultType { get; set; }

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BS.Shared.Interface
{
public interface IOrganisation
{
string IKKrankenkasse { get; set; }
string IKKostentrager { get; set; }
string IKDatenannahmestelle { get; set; }
string BezDatenannahmestelle { get; set; }
}
}

View File

@@ -183,7 +183,6 @@
<Compile Include="DataContracts\AdditionalServiceRegionDC.cs" />
<Compile Include="DataContracts\AddressRouteDC.cs" />
<Compile Include="DataContracts\ClientPartials\IMoKSearchableDC.cs" />
<Compile Include="DataContracts\Compact\CompactGkvAbrechnungDC.cs" />
<Compile Include="DataContracts\CustomerVermittlungArbeitDC.cs" />
<Compile Include="DataContracts\GkvAbrechnung\GkvClientRequestDC.cs" />
<Compile Include="DataContracts\GkvAbrechnung\GkvClientSumRequestJson.cs" />
@@ -198,6 +197,12 @@
<Compile Include="DataContracts\GkvAbrechnung\GkvServerGetStatusResponseDC.cs" />
<Compile Include="DataContracts\GkvAbrechnung\GkvClientResultRequestDC.cs" />
<Compile Include="DataContracts\Invoicing\BankAccountDC.cs" />
<Compile Include="DataContracts\Light\GkvAbrechnungLightDC.cs" />
<Compile Include="DataContracts\Light\GkvTransferProtokollLightDC.cs" />
<Compile Include="DataContracts\Light\ILightDataContract.cs" />
<Compile Include="DataContracts\Compact\CompactInvoiceBaseDC.cs" />
<Compile Include="DataContracts\Light\InvoiceBaseLightDC.cs" />
<Compile Include="DataContracts\Light\OrganisationLightDC.cs" />
<Compile Include="DataContracts\Wohnhilfe\CustomerWohnhilfeDC.cs" />
<Compile Include="DataContracts\ImageDC.cs" />
<Compile Include="DataContracts\Wohnhilfe\CustomerWohnhilfeBereichBundDC.cs" />
@@ -374,6 +379,7 @@
<Compile Include="Interface\IGkvAbrechnung.cs" />
<Compile Include="Interface\IGkvTransferProtokoll.cs" />
<Compile Include="Interface\IInvoiceBase.cs" />
<Compile Include="Interface\IOrganisation.cs" />
<Compile Include="Packet.cs" />
<Compile Include="ReportRequests\AbstractReportRequest.cs" />
<Compile Include="ReportRequests\GkvAbrechnungReportRequest.cs" />
@@ -543,6 +549,7 @@
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.