Gpos Nummern hinzugefügt

NewGkvAbrechnungPopUpView alle (ab)wählen funktion hinzugefügt
InvoiceBases werden zu GkvAbrechnung gespeichert
Fehlererkennung
This commit is contained in:
2024-04-19 12:52:57 +02:00
parent 07ae595973
commit 597ac13795
13 changed files with 124 additions and 18 deletions

View File

@@ -63,7 +63,7 @@ namespace BeWo.View.Detail.Accounting
var gkv_abrechnung = e.Data.First();
var gkv_filter = new GkvAbrechnungFilterDC(gkv_abrechnung);
gkv_abrechnung.InvoiceBaseOids = checked_invoice_bases;
gkv_filter.SelectedInvoiceBases = checked_invoice_bases;
ServiceFacade.DoAccountingServiceAsync(
svc => svc.MakeNewGkvAbrechnung(gkv_filter),

View File

@@ -13,7 +13,7 @@
<GroupBox Width="1100" Style="{StaticResource PopUpWindowStyle}">
<GroupBox.Header>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,0,0">
<Image Source="..\..\Ressources\Icons\CoinsDisabled.png" Height="28" />
<Image Source="..\..\..\Ressources\Icons\CoinsDisabled.png" Height="28" />
<TextBox Margin="10,4,0,0" Background="{x:Null}" Foreground="{DynamicResource MainGroupBoxForegroundBrush}"
FontSize="20" BorderBrush="{x:Null}" VerticalAlignment="Stretch" BorderThickness="0,0,0,0"
Padding="0,0,0,0" />
@@ -97,6 +97,15 @@
<dxg:TableView x:Name="gridView" ShowGroupPanel="False" CellValueChanging="TableView_CellValueChanging"/>
</dxg:GridControl.View>
</dxg:GridControl>
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2">
<Button Margin="10 3 0 0"
Name="button_checkAllLeistungen" Click="button_checkAll_Click"
HorizontalAlignment="Left">Alle auswählen</Button>
<Button Margin="10 3 0 0"
Name="button_uncheckAllLeistungen" Click="button_uncheckAll_Click"
HorizontalAlignment="Left">Alle abwählen</Button>
</StackPanel>
<StackPanel HorizontalAlignment="Right" Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2">
<Button Content="Erstellen" x:Name="btn_create" Click="btn_create_Click" Padding="5 0" Margin="3" />
<Button Content="Abbrechen" x:Name="btn_cancel" Click="btn_cancel_Click" Margin="3" Padding="5 0" />

View File

@@ -34,7 +34,7 @@ namespace BeWo.View.Detail.Accounting
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close,
(s, e) =>
{
this._InvoiceBaseDCs.Clear();
this._InvoiceBaseDCs?.Clear();
this.Fire();
}));
@@ -175,5 +175,47 @@ namespace BeWo.View.Detail.Accounting
{
// tbd
}
private void button_checkAll_Click(object sender, RoutedEventArgs e)
{
var visible = GetVisibleVMs();
foreach (var item in visible)
{
item.IsChecked = true;
}
}
private void button_uncheckAll_Click(object sender, RoutedEventArgs e)
{
var visible = GetVisibleVMs();
foreach (var item in visible)
{
item.IsChecked = false;
}
}
private IList<InvoiceBaseVM> GetVisibleVMs()
{
var list = new List<InvoiceBaseVM>();
var items = grid_newInvoices.ItemsSource as IList<InvoiceBaseVM>;
if (items != null)
{
for (int i = 0; i < items.Count; i++)
{
if (grid_newInvoices.IsRowVisible(i))
{
var vm = grid_newInvoices.GetRow(i) as InvoiceBaseVM;
if (vm != null)
{
list.Add(vm);
}
}
}
}
return list;
}
}
}

View File

@@ -254,9 +254,11 @@ namespace Dakota.Logic
info.TarifkennzeichenBereich = DakotaConfig.TarifkennzeichenBereich;
info.TarifkennzeichenSondertarif = DakotaConfig.TarifkennzeichenSondertarif;
info.AbrechnungspositionArtDerEinrichtung = DakotaConfig.AbrechnungspositionArtDerEinrichtung;
info.AbrechnungspositionBehandlungsart = DakotaConfig.AbrechnungspositionBehandlungsart;
info.AbrechnungspositionVergütungsart = DakotaConfig.AbrechnungspositionVergütungsart;
info.AbrechnungspositionString = infoParameter.InvoiceItem.UnitDescription.Substring(6);
//info.AbrechnungspositionArtDerEinrichtung = DakotaConfig.AbrechnungspositionArtDerEinrichtung;
//info.AbrechnungspositionBehandlungsart = DakotaConfig.AbrechnungspositionBehandlungsart;
//info.AbrechnungspositionVergütungsart = DakotaConfig.AbrechnungspositionVergütungsart;
info.AnzahlMenge = infoParameter.InvoiceItem.UnitCount.Value;
info.EinzelbetragAbrechnungsposition = infoParameter.InvoiceItem.AmountPerUnit.Value;

View File

@@ -64,7 +64,8 @@ namespace Dakota.Models.Blocke
// SegmentSLLAENF.Identifikationsnummer.SetValue(info.Identifikationsnummer);
SegmentSLLAENF.Abrechnungscode.SetValue(info.Abrechnungscode);
SegmentSLLAENF.Tarifkennzeichen.SetValue(info.Tarifkennzeichen);
SegmentSLLAENF.ArtLeistung.SetValue(info.Abrechnungsposition);
SegmentSLLAENF.ArtLeistung.SetValue(info.GetAbrechnungsposition());
SegmentSLLAENF.AnzahlMenge.SetValue(info.AnzahlMenge);
SegmentSLLAENF.EinzelbetragAbrechnungsposition.SetValue(info.EinzelbetragAbrechnungsposition);
SegmentSLLAENF.DatumLeistungserbringung.SetValue(info.DatumDerLeistungserbringung);

View File

@@ -15,7 +15,9 @@ namespace Dakota.Models.Infos
public SchlüsselTarifkennzeichen Tarifkennzeichen => new SchlüsselTarifkennzeichen(TarifkennzeichenBereich, TarifkennzeichenSondertarif);
public SchlüsselTarifkennzeichenBereich TarifkennzeichenBereich { get; set; }
public SchlüsselTarifkennzeichenSondertarif TarifkennzeichenSondertarif { get; set; }
public string AbrechnungspositionString { get; set; }
public SchlüsselPos Abrechnungsposition => new SchlüsselPos(AbrechnungspositionArtDerEinrichtung, AbrechnungspositionBehandlungsart, AbrechnungspositionVergütungsart);
public SchlüsselPosArtDerEinrichtung AbrechnungspositionArtDerEinrichtung { get; set; }
public SchlüsselPosBehandlungsart AbrechnungspositionBehandlungsart { get; set; }
@@ -32,5 +34,10 @@ namespace Dakota.Models.Infos
public int Dauer { get; set; }
public string Text { get; set; }
internal string GetAbrechnungsposition()
{
return AbrechnungspositionString ?? Abrechnungsposition.Value;
}
}
}

View File

@@ -44,6 +44,8 @@ namespace BeWo.Data.Entities
public virtual decimal Betrag { get; set; }
public virtual IList<InvoiceBase> InvoiceBases { get; set; }
// Kundennummer nur bei App8
/*

View File

@@ -29,5 +29,10 @@
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
<property column="Betrag" type="decimal" name="Betrag" />
<bag name="InvoiceBases" table="gkvabrechnung2invoicebase" generic="true" cascade="none" batch-size="250">
<key column="gkvabrechnungoid" />
<many-to-many column="invoicebaseoid" class="BeWo.Data.Entities.InvoiceBase, BeWo.Data" />
</bag>
</class>
</hibernate-mapping>

View File

@@ -0,0 +1,8 @@
CREATE TABLE `gkvabrechnung2invoicebase` (
`GkvAbrechnungOid` bigint NOT NULL,
`InvoiceBaseOid` bigint NOT NULL,
PRIMARY KEY (`GkvAbrechnungOid`,`InvoiceBaseOid`),
KEY `fk_invoicebaseoid_idx` (`InvoiceBaseOid`),
CONSTRAINT `fk_gkvabrechnungoid` FOREIGN KEY (`GkvAbrechnungOid`) REFERENCES `gkvabrechnung` (`Oid`),
CONSTRAINT `fk_invoicebaseoid` FOREIGN KEY (`InvoiceBaseOid`) REFERENCES `invoicebase` (`Oid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

View File

@@ -2,6 +2,8 @@
using BeWo.Data.Entities;
using BS.Shared.DataContracts;
using NHibernate.Linq;
using System.Collections.Generic;
namespace BeWo.Service.DCEntityMapper
{
@@ -11,17 +13,17 @@ namespace BeWo.Service.DCEntityMapper
{
pDataContract.GkvAbrechnungOid = pEntity.Oid;
pDataContract.GkvAbrechnungVersion = pEntity.Version;
pDataContract.Notice = pEntity.Notice;
pDataContract.Notice = pEntity.Notice;
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
pDataContract.IKVersichertenKarte = pEntity.IKVersichertenKarte;
pDataContract.IKLeistungserbringer = pEntity.IKLeistungserbringer;
pDataContract.IKKostenträger = pEntity.IKKostentrager;
pDataContract.IKDatenannahmestelle = pEntity.IKDatenannahmestelle;
pDataContract.IKVersichertenKarte = pEntity.IKVersichertenKarte;
pDataContract.IKLeistungserbringer = pEntity.IKLeistungserbringer;
pDataContract.IKKostenträger = pEntity.IKKostentrager;
pDataContract.AbrechnungsZeitraumStart = pEntity.AbrechnungsZeitraumStart;
pDataContract.AbrechnungsZeitraumEnde = pEntity.AbrechnungsZeitraumEnde;
pDataContract.Nutzdatendatei= pEntity.Nutzdatendatei;
pDataContract.Nutzdatendatei = pEntity.Nutzdatendatei;
pDataContract.Auftragsdatei = pEntity.Auftragsdatei;
pDataContract.Transfername = pEntity.Transfername;
@@ -32,7 +34,9 @@ namespace BeWo.Service.DCEntityMapper
pDataContract.ErstelltAm = pEntity.ErstelltAm;
pDataContract.Betrag = pEntity.Betrag;
pDataContract.InvoiceBases = MapperFactory.InvoiceBaseDC_InvoiceBase.MapToNewDCs(pEntity.InvoiceBases);
return pDataContract;
}
@@ -64,6 +68,22 @@ namespace BeWo.Service.DCEntityMapper
pEntity.Betrag = pDataContract.Betrag;
if (pEntity.InvoiceBases is null)
pEntity.InvoiceBases = new List<InvoiceBase>();
pDataContract.InvoiceBases.ForEach(
i =>
{
var original = DAOFactory.GenericDAO.LoadByID<InvoiceBase>(i.InvoiceBaseOid.Value);
MapperFactory.InvoiceBaseDC_InvoiceBase.MergeWithEntity(i, original);
pEntity.InvoiceBases.Add(original);
}
);
//MapperFactory.InvoiceBaseDC_InvoiceBase.MergeWithEntitys(pDataContract.InvoiceBases, pEntity.InvoiceBases);
return pEntity;
}

View File

@@ -729,13 +729,19 @@ namespace BeWo.Service.ServiceImplementations
var mandatordc = new OperationsServiceImp().GetMandator();
foreach (var invoicebase_oid in abrechnungFilterDC.GkvAbrechnungDC.InvoiceBaseOids)
var loaded_invoicebases = new List<InvoiceBaseDC>();
foreach (var invoicebase_oid in abrechnungFilterDC.SelectedInvoiceBases)
{
var service = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(invoicebase_oid);
var invoicebase = DAOFactory.GenericDAO.GetByID<InvoiceBase>(invoicebase_oid);
var orga = invoicebase.CostBearer2SupportConcept.CostBearer.Organisation;
var customer = invoicebase.CostBearer2SupportConcept.SupportConcept.Customer;
var invoicebase_dc = MapperFactory.InvoiceBaseDC_InvoiceBase.MapToNewDC(invoicebase);
loaded_invoicebases.Add(invoicebase_dc);
var servicedc = MapperFactory.ServiceInvoiceDC_ServiceInvoice.MapToNewDC(service);
var orgadc = MapperFactory.OrganisationDC_OrganisationMapper.MapToNewDC(orga);
var customerdc = MapperFactory.CustomerDC_Customer.MapToNewDC(customer);
@@ -778,6 +784,8 @@ namespace BeWo.Service.ServiceImplementations
gkv_abrechnung_dc.Betrag = file_from_manager.GetBetrag();
gkv_abrechnung_dc.InvoiceBases = loaded_invoicebases;
var gkv_abrechnung = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewEntity(gkv_abrechnung_dc);
DAOFactory.GenericDAO.Insert(gkv_abrechnung);

View File

@@ -63,6 +63,6 @@ namespace BS.Shared.DataContracts
public decimal Betrag { get; set; }
[DataMember]
public List<long> InvoiceBaseOids { get; set; }
public IList<InvoiceBaseDC> InvoiceBases { get; set; }
}
}

View File

@@ -19,8 +19,10 @@ namespace BS.Shared.DataContracts
}
[DataMember]
public GkvAbrechnungDC GkvAbrechnungDC { get; set; }
[DataMember]
public List<long> SelectedInvoiceBases { get; set; }
}
}