diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs index 8b7e93e72..aedce1c02 100644 --- a/BeWo/BeWoApp.xaml.cs +++ b/BeWo/BeWoApp.xaml.cs @@ -526,7 +526,7 @@ namespace BeWo val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowGkvAbrechnung); AppSettings.AllowGkvAbrechnung = val != null && val.Equals("1"); - + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.ShowImportAbschlagszahlungen); AppSettings.ShowImportAbschlagszahlungen = val != null && val.Equals("1"); @@ -600,6 +600,7 @@ namespace BeWo AppSettings.ShowAI = true; AppSettings.ShowAIInternal = true; AppSettings.ShowWorktime = true; + //AppSettings.AllowGkvAbrechnung = true; //showInfoButtonInCalender = true; #endif diff --git a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs index 7984bb7e3..79973056b 100644 --- a/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs +++ b/BeWo/View/Detail/Accounting/GkvAbrechnungOverview.xaml.cs @@ -342,11 +342,10 @@ namespace BeWo.View.Detail.Accounting dc_in.Bezahlt = b; - ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), cb => + ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out => { Dispatcher.Invoke(() => { - vm.GkvAbrechnungVersion = cb.GkvAbrechnungVersion; - vm.Bezahlt = cb.Bezahlt; + vm.UpdateByDataContract(dc_out); }); }, false); } @@ -357,26 +356,24 @@ namespace BeWo.View.Detail.Accounting dc_in.UrbelegeGesendet = b; - ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), cb => + ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out => { Dispatcher.Invoke(() => { - vm.GkvAbrechnungVersion = cb.GkvAbrechnungVersion; - vm.UrbelegeGesendet = cb.UrbelegeGesendet; + vm.UpdateByDataContract(dc_out); }); }, false); - - //var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(dc_in)); - - //vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion; - //vm.UrbelegeGesendet = dc.UrbelegeGesendet; } private void SaveNoticeChange(GkvAbrechnungVM vm, string notice) { - var dc = ServiceFacade.DoAccountingServiceSync(x => x.UpdateGkvAbrechnung(vm.CommitToDataContract())); + var dc_in = vm.CommitToDataContract(); - vm.GkvAbrechnungVersion = dc.GkvAbrechnungVersion; - vm.Notice = dc.Notice; + ServiceFacade.DoAccountingServiceAsync(x => x.UpdateGkvAbrechnung(dc_in), dc_out => + { + Dispatcher.Invoke(() => { + vm.UpdateByDataContract(dc_out); + }); + }, false); } private void gridView_CellValueChanged_1(object sender, CellValueChangedEventArgs e) diff --git a/BeWo/ViewModel/GkvAbrechnungVM.cs b/BeWo/ViewModel/GkvAbrechnungVM.cs index ff7f227e4..d51b1a2ee 100644 --- a/BeWo/ViewModel/GkvAbrechnungVM.cs +++ b/BeWo/ViewModel/GkvAbrechnungVM.cs @@ -349,6 +349,21 @@ namespace BeWo.ViewModel (x) => x.ErstelltAm.Value); } + public void UpdateByDataContract(GkvAbrechnungDC pDataContract) + { + GkvAbrechnungVersion = pDataContract.GkvAbrechnungVersion; + + Notice = pDataContract.Notice; + + Betrag = pDataContract.Betrag; + Bezahlt = pDataContract.Bezahlt; + + if (pDataContract.InvoiceBases != null) + { + InvoiceBases2 = pDataContract.InvoiceBases.Select(x => new InvoiceBaseVM(x, true)).ToList(); + InvoiceBases = new BindingList(InvoiceBases2); + } + } protected override void InitByDataContract(GkvAbrechnungDC pDataContract) { _AbrechnungsZeitraumStart = pDataContract.AbrechnungsZeitraumStart; diff --git a/Service/ServiceImplementations/AccountingServiceImp.cs b/Service/ServiceImplementations/AccountingServiceImp.cs index 989046950..a85afbdfa 100644 --- a/Service/ServiceImplementations/AccountingServiceImp.cs +++ b/Service/ServiceImplementations/AccountingServiceImp.cs @@ -837,6 +837,11 @@ namespace BeWo.Service.ServiceImplementations MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MergeWithEntity(abrechnung, entity); + foreach (var invoice in entity.InvoiceBases) + { + invoice.IsPaid = entity.Bezahlt; + } + DAOFactory.GenericDAO.Update(entity); return MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(entity);