- InvoiceBaseOids werden gespeichert
- GkvAbrechnungResponseDC - usw...
This commit is contained in:
@@ -2049,7 +2049,8 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungViewFilterDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungFilterDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.MemoryStream))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.Stream))]
|
||||
@@ -6049,7 +6050,8 @@ namespace BeWo.ServiceProxy
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.Collections.Generic.List<BS.Shared.DataContracts.GkvAbrechnungDC>))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungViewFilterDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungFilterDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungRequestDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.DataContracts.GkvAbrechnungResponseDC))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(BS.Shared.InvoiceType))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.MemoryStream))]
|
||||
[System.ServiceModel.ServiceKnownTypeAttribute(typeof(System.IO.Stream))]
|
||||
@@ -9389,7 +9391,11 @@ namespace BeWo.ServiceProxy
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/MakeNewGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/MakeNewGkvAbrechnungResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/MakeNewGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.GkvAbrechnungDC MakeNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnungFilterDC abrechnungFilterDC);
|
||||
BS.Shared.DataContracts.GkvAbrechnungDC MakeNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnungRequestDC abrechnungFilterDC);
|
||||
|
||||
[System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnung", ReplyAction="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnungResponse")]
|
||||
[System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IAccountingService/CreateNewGkvAbrechnungBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")]
|
||||
BS.Shared.DataContracts.GkvAbrechnungResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnungRequestDC request);
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
@@ -9601,10 +9607,15 @@ namespace BeWo.ServiceProxy
|
||||
return base.Channel.GetFilteredGkvAbrechnungen(gkvAbrechnungViewFilter);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.GkvAbrechnungDC MakeNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnungFilterDC abrechnungFilterDC)
|
||||
public BS.Shared.DataContracts.GkvAbrechnungDC MakeNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnungRequestDC abrechnungFilterDC)
|
||||
{
|
||||
return base.Channel.MakeNewGkvAbrechnung(abrechnungFilterDC);
|
||||
}
|
||||
|
||||
public BS.Shared.DataContracts.GkvAbrechnungResponseDC CreateNewGkvAbrechnung(BS.Shared.DataContracts.GkvAbrechnungRequestDC request)
|
||||
{
|
||||
return base.Channel.CreateNewGkvAbrechnung(request);
|
||||
}
|
||||
}
|
||||
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
|
||||
|
||||
@@ -906,8 +906,6 @@ namespace BeWo.ServiceProxy
|
||||
else
|
||||
{
|
||||
String allMessage = String.Format("{0}", e);
|
||||
|
||||
|
||||
|
||||
if (!String.IsNullOrEmpty(allMessage) && allMessage.IndexOf("Es war kein an https://") >= 0 && allMessage.IndexOf("lauschender Endpunkt") >= 0)
|
||||
{
|
||||
|
||||
@@ -44,5 +44,10 @@ namespace BeWo.View
|
||||
|
||||
return beWoWindow;
|
||||
}
|
||||
|
||||
public static void ShowErrorMessageBox(string text)
|
||||
{
|
||||
MessageBox.Show(text, "Fehler", MessageBoxButton.OK, MessageBoxImage.Asterisk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
<!--<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Nutzdatendatei" Header="Nutzdatendatei" Width="80" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Auftragsdatei" Header="Auftragsdatei" Width="80" />-->
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Transfername" Header="Transfername" Width="80" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="Datenaustauschreferenz" Header="Datenaustauschreferenz" Width="80" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="ErstelltAm" Header="Erstellt" Width="80" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="VerschluesseltAm" Header="Verschlüsselt" Width="80" />
|
||||
<dxg:GridColumn ReadOnly="True" AllowEditing="False" FieldName="UebertragenAm" Header="Übertragen" Width="80" />
|
||||
|
||||
@@ -61,16 +61,22 @@ namespace BeWo.View.Detail.Accounting
|
||||
this.MainControl.CloseCurrentPopUp();
|
||||
var checked_invoice_bases = _NewGkvAbrechnungPopUpView.ViewModel.InvoiceBases.Where(x => x.IsChecked).Select(x => x.DataContract.InvoiceBaseOid.Value).ToList();
|
||||
var gkv_abrechnung = e.Data.First();
|
||||
var gkv_filter = new GkvAbrechnungFilterDC(gkv_abrechnung);
|
||||
var gkv_filter = new GkvAbrechnungRequestDC(gkv_abrechnung);
|
||||
|
||||
gkv_filter.SelectedInvoiceBases = checked_invoice_bases;
|
||||
|
||||
ServiceFacade.DoAccountingServiceAsync(
|
||||
svc => svc.MakeNewGkvAbrechnung(gkv_filter),
|
||||
() => Dispatcher.BeginInvoke(DispatcherPriority.Normal,
|
||||
ServiceFacade.DoAccountingServiceAsync(x => x.CreateNewGkvAbrechnung(gkv_filter),
|
||||
cb => Dispatcher.BeginInvoke(DispatcherPriority.Normal,
|
||||
(Action)delegate
|
||||
{
|
||||
RefreshGkvAbrechnungenList();
|
||||
if (cb.Success)
|
||||
{
|
||||
RefreshGkvAbrechnungenList();
|
||||
}
|
||||
else
|
||||
{
|
||||
BeWoWindowBuilder.ShowErrorMessageBox(cb.Error);
|
||||
}
|
||||
}));
|
||||
};
|
||||
|
||||
@@ -317,10 +323,10 @@ namespace BeWo.View.Detail.Accounting
|
||||
GkvAbrechnungDC gkvAbrechnungDC = new GkvAbrechnungDC();
|
||||
int year = DateTime.Now.Year;
|
||||
int month = DateTime.Now.Month - 1;
|
||||
gkvAbrechnungDC.AbrechnungsZeitraumStart = new DateTime(1999, 1, 1);
|
||||
//new DateTime(year, month, 1);
|
||||
gkvAbrechnungDC.AbrechnungsZeitraumStart = new DateTime(year, month, 1);
|
||||
gkvAbrechnungDC.AbrechnungsZeitraumEnde = new DateTime(year, month, DateTime.DaysInMonth(year, month));
|
||||
GkvAbrechnungVM gkvAbrechnungVM = new GkvAbrechnungVM(gkvAbrechnungDC);
|
||||
_NewGkvAbrechnungPopUpView.Clear();
|
||||
_NewGkvAbrechnungPopUpView.ViewModel = gkvAbrechnungVM;
|
||||
this.MainControl.ShowControlAsModalPopup(this._NewGkvAbrechnungPopUpView);
|
||||
}
|
||||
@@ -354,7 +360,6 @@ namespace BeWo.View.Detail.Accounting
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -35,7 +35,8 @@ namespace BeWo.View.Detail.Accounting
|
||||
(s, e) =>
|
||||
{
|
||||
this._InvoiceBaseDCs?.Clear();
|
||||
this.Fire();
|
||||
if (CancelButtonClicked != null)
|
||||
CancelButtonClicked.Invoke(s, e);
|
||||
}));
|
||||
|
||||
this.grid_newInvoices.View.Loaded += (s, e) => ((TableView)this.grid_newInvoices.View).BestFitColumns();
|
||||
@@ -85,6 +86,12 @@ namespace BeWo.View.Detail.Accounting
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
popupedit_GkvSearch.Text = string.Empty;
|
||||
popupedit_GkvSearch.Focus();
|
||||
}
|
||||
|
||||
private void btn_cancel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (ViewModel.InvoiceBases != null)
|
||||
@@ -97,11 +104,6 @@ namespace BeWo.View.Detail.Accounting
|
||||
this.Fire();
|
||||
}
|
||||
|
||||
private void btn_delete_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this._InvoiceBaseDCs.Remove(this.grid_newInvoices.GetCurrentValue<InvoiceBaseDC>());
|
||||
}
|
||||
|
||||
private void TableView_CellValueChanging(object sender, CellValueChangedEventArgs e)
|
||||
{
|
||||
var si = e.Row as InvoiceBaseDC;
|
||||
@@ -133,6 +135,7 @@ namespace BeWo.View.Detail.Accounting
|
||||
{
|
||||
popup_organisation.IsOpen = false;
|
||||
gkvsearchview.ItemSelected -= gkvsearchview_OrganisationSelected;
|
||||
|
||||
ViewModel.IKVersichertenKarte = e.Data.IKKrankenkasse;
|
||||
ViewModel.IKDatenannahmestelle = e.Data.IKDatenannahmestelle;
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ AntwortEntschluesseltAm
|
||||
private string _Nutzdatendatei;
|
||||
private string _Auftragsdatei;
|
||||
private string _Transfername;
|
||||
private int _Datenaustauschreferenz;
|
||||
|
||||
private DateTime? _ErstelltAm;
|
||||
private DateTime? _VerschluesseltAm;
|
||||
@@ -223,6 +224,22 @@ AntwortEntschluesseltAm
|
||||
}
|
||||
}
|
||||
|
||||
[ValidationAttribute(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public int Datenaustauschreferenz
|
||||
{
|
||||
get { return this._Datenaustauschreferenz; }
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(this._Datenaustauschreferenz, value))
|
||||
{
|
||||
this._Datenaustauschreferenz = value;
|
||||
this.StoreDirtyInformation(this.AreDifferent(this.DataContract.Datenaustauschreferenz, value), nameof(Datenaustauschreferenz));
|
||||
this.FirePropertyChanged(nameof(Datenaustauschreferenz));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Validation(ValidationRule = ValidationRules.NotNullOrStringEmpty)]
|
||||
public DateTime? ErstelltAm
|
||||
{
|
||||
@@ -402,6 +419,7 @@ AntwortEntschluesseltAm
|
||||
_AntwortErhaltenAm = pDataContract.AntwortErhaltenAm;
|
||||
_AntwortEntschluesseltAm = pDataContract.AntwortEntschluesseltAm;
|
||||
_ErstelltAm = pDataContract.ErstelltAm;
|
||||
_Datenaustauschreferenz = pDataContract.Datenaustauschreferenz;
|
||||
|
||||
_GkvAbrechnungOid = pDataContract.GkvAbrechnungOid;
|
||||
_GkvAbrechnungVersion = pDataContract.GkvAbrechnungVersion;
|
||||
@@ -431,6 +449,7 @@ AntwortEntschluesseltAm
|
||||
|
||||
pDataContract.Notice = _Notice;
|
||||
pDataContract.Betrag = _Betrag;
|
||||
pDataContract.Datenaustauschreferenz = _Datenaustauschreferenz;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
<Compile Include="Models\Auftragsdatei\AuftragssatzPart4.cs" />
|
||||
<Compile Include="Models\DakotaEnums.cs" />
|
||||
<Compile Include="DakotaExtensions.cs" />
|
||||
<Compile Include="Models\DakotaException.cs" />
|
||||
<Compile Include="Models\DakotaFile.cs" />
|
||||
<Compile Include="Logic\DakotaFileCreator.cs" />
|
||||
<Compile Include="DakotaValidator.cs" />
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using BS.Shared.DataContracts;
|
||||
using Dakota.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -15,5 +17,63 @@ namespace Dakota
|
||||
input = input.Replace(specialChar, DakotaConfig.Aufhebungszeichen + specialChar);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validiert in erster Phase die Daten. Bei Fehler wird eine DakotaException geworfen.
|
||||
/// </summary>
|
||||
public static void ValidateFirstStep(MandatorDC mandatordc)
|
||||
{
|
||||
if (mandatordc == null)
|
||||
throw new DakotaException("Mandator ist null");
|
||||
|
||||
if (!ValidateIKNumber(mandatordc.IKLeistungserbringer))
|
||||
throw new DakotaException("Die IK Nummer des Leistungserbringers ist ungültig.");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Validiert in zweiter Phase die Daten. Bei Fehler wird eine DakotaException geworfen.
|
||||
/// </summary>
|
||||
public static void ValidateSecondStep(OrganisationDC orgadc, CustomerDC customerDC)
|
||||
{
|
||||
string error = null;
|
||||
|
||||
if (orgadc == null)
|
||||
error = "Organisation ist null";
|
||||
else if (customerDC == null)
|
||||
error = "Customer ist null";
|
||||
else if (!ValidateIKNumber(orgadc.IKDatenannahmestelle))
|
||||
error = $"Die Organisation \"{orgadc.Name}\" hat keine gültige IK Nummer für die Datenannahmestelle.";
|
||||
else if (!ValidateIKNumber(orgadc.IKKostentrager))
|
||||
error = $"Die Organisation \"{orgadc.Name}\" hat keine gültige IK Nummer für die Kostenträger.";
|
||||
else if (!ValidateIKNumber(orgadc.IKKrankenkasse))
|
||||
error = $"Die Organisation \"{orgadc.Name}\" hat keine gültige IK Nummer für die Krankenkasse.";
|
||||
else if (!ValidateVersichertenstatus(customerDC.VersichertenStatus))
|
||||
error = $"Der Klient \"{customerDC.LastName}, {customerDC.FirstName}\" hat keinen gültigen Versichertenstatus";
|
||||
|
||||
if (error != null)
|
||||
throw new DakotaException(error);
|
||||
}
|
||||
|
||||
private static bool ValidateIKNumber(string iknummer)
|
||||
{
|
||||
if (iknummer == null)
|
||||
return false;
|
||||
|
||||
if (iknummer.Length != 9)
|
||||
return false;
|
||||
|
||||
return int.TryParse(iknummer, out int x);
|
||||
}
|
||||
|
||||
private static bool ValidateVersichertenstatus(string status)
|
||||
{
|
||||
if (status == null)
|
||||
return false;
|
||||
|
||||
if (status.Length != 5)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -228,7 +228,7 @@ namespace Dakota.Logic
|
||||
var info = new InfoAbrechnungsfall();
|
||||
|
||||
info.VersichtertenNummer = infoParameter.Customer.InsuranceNumber;
|
||||
info.Versichertenstatus = "50000";
|
||||
info.Versichertenstatus = infoParameter.Customer.VersichertenStatus;
|
||||
//infoParameter.Customer.VersichertenStatus;
|
||||
info.Beleginformation = SchlüsselBeleginformation.KeineBeleguebermittlung;
|
||||
info.Belegnummer = infoParameter.Customer.CustomerOid.ToString();
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace Dakota.Logic
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
24
Dakota/Models/DakotaException.cs
Normal file
24
Dakota/Models/DakotaException.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Dakota.Models.Daten;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Models
|
||||
{
|
||||
public class DakotaException : ArgumentException
|
||||
{
|
||||
public string Message { get; set; }
|
||||
|
||||
public DakotaException(string message) : this()
|
||||
{
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public DakotaException()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36,8 +36,7 @@ namespace Dakota.Models.Daten
|
||||
if (Feldart == Feldart.Muss)
|
||||
{
|
||||
// Auffüllen
|
||||
throw new ArgumentOutOfRangeException(Title, _Value, "muss gefühlt sein");
|
||||
// throw new NotImplementedException("Error Code: 3483091097896");
|
||||
throw new DakotaException($"Das Feld \"{Title}\" muss gefüllt sein!");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -47,9 +46,16 @@ namespace Dakota.Models.Daten
|
||||
}
|
||||
}
|
||||
|
||||
if (!_IgnoreCheck && (_Value.Length < MinStellen || _Value.Length > MaxStellen))
|
||||
if (!_IgnoreCheck)
|
||||
{
|
||||
throw new NotImplementedException("Error Code: 3483091097897");
|
||||
if(_Value.Length < MinStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben");
|
||||
}
|
||||
else if (_Value.Length > MaxStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben");
|
||||
}
|
||||
}
|
||||
|
||||
return _Value;
|
||||
@@ -81,14 +87,15 @@ namespace Dakota.Models.Daten
|
||||
if (value is null)
|
||||
return;
|
||||
|
||||
if (value.Length < MinStellen || value.Length > MaxStellen)
|
||||
if (value.Length < MinStellen)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(Title, value, $"Wertebereich: min:max = ({MinStellen}:{MaxStellen})");
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Erstellung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben");
|
||||
}
|
||||
|
||||
if (value.Length > MaxStellen)
|
||||
{
|
||||
throw new DakotaException($"Das Feld \"{Title}\" hat bei der Erstellung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben");
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// throw new ArgumentOutOfRangeException(Title, value, "value ist kein string");
|
||||
//}
|
||||
|
||||
DakotaValidator.ClearTextString(value);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Dakota.Models.Infos
|
||||
get { return _Datenaustauschreferenz; }
|
||||
set
|
||||
{
|
||||
if (value < 1)
|
||||
if (value < 0)
|
||||
throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht negativ sein");
|
||||
else if (value == 0)
|
||||
throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht gleich null sein");
|
||||
|
||||
@@ -5923,5 +5923,22 @@ namespace BeWo.Data.Access
|
||||
|
||||
return criteria.List<Bargeldtransaktionshistory>().ToList();
|
||||
}
|
||||
|
||||
public int GetLastDatenaustauschreferenz(string datenannahmestelle)
|
||||
{
|
||||
var criteria = CreateCriteria<GkvAbrechnung>()
|
||||
.Add(Restrictions.Where<GkvAbrechnung>(x => x.IKDatenannahmestelle == datenannahmestelle));
|
||||
|
||||
criteria.AddOrder(Order.Desc(nameof(GkvAbrechnung.Oid)));
|
||||
|
||||
criteria.SetMaxResults(1);
|
||||
|
||||
var list = criteria.List<GkvAbrechnung>().ToList();
|
||||
|
||||
if (!list.Any())
|
||||
return 0;
|
||||
|
||||
return list.First().Datenaustauschreferenz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,8 @@ namespace BeWo.Data.Entities
|
||||
|
||||
public virtual string Transfername { get; set; }
|
||||
|
||||
public virtual int Datenaustauschreferenz { get; set; }
|
||||
|
||||
public virtual DateTime? ErstelltAm { get; set; }
|
||||
|
||||
public virtual DateTime? VerschluesseltAm { get; set; }
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<property column="Nutzdatendatei" type="string" name="Nutzdatendatei" />
|
||||
<property column="Auftragsdatei" type="string" name="Auftragsdatei" />
|
||||
<property column="Transfername" type="string" name="Transfername" />
|
||||
<property column="Datenaustauschreferenz" type="int" name="Datenaustauschreferenz" />
|
||||
<property column="ErstelltAm" type="DateTime" name="ErstelltAm" />
|
||||
<property column="VerschluesseltAm" type="DateTime" name="VerschluesseltAm" />
|
||||
<property column="UebertragenAm" type="DateTime" name="UebertragenAm" />
|
||||
|
||||
29
Model/Changes_2024_04_18_GkvAbrechnung.txt
Normal file
29
Model/Changes_2024_04_18_GkvAbrechnung.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
CREATE TABLE `gkvabrechnung` (
|
||||
`Oid` bigint NOT NULL AUTO_INCREMENT,
|
||||
`Tid` int NOT NULL,
|
||||
`Notice` varchar(1024) DEFAULT NULL,
|
||||
`InsTs` datetime DEFAULT NULL,
|
||||
`InsUser` varchar(256) DEFAULT NULL,
|
||||
`Version` bigint DEFAULT NULL,
|
||||
`UdpUser` varchar(256) DEFAULT NULL,
|
||||
`IsActive` tinyint DEFAULT NULL,
|
||||
`SystemEntryID` int DEFAULT NULL,
|
||||
`Kundennummer` varchar(256) DEFAULT NULL,
|
||||
`IKLeistungserbringer` varchar(256) DEFAULT NULL,
|
||||
`IKVersichertenKarte` varchar(256) DEFAULT NULL,
|
||||
`IKKostentrager` varchar(256) DEFAULT NULL,
|
||||
`IKDatenannahmestelle` varchar(256) DEFAULT NULL,
|
||||
`AbrechnungsZeitraumStart` datetime DEFAULT NULL,
|
||||
`AbrechnungsZeitraumEnde` datetime DEFAULT NULL,
|
||||
`Nutzdatendatei` text,
|
||||
`Auftragsdatei` varchar(1024) DEFAULT NULL,
|
||||
`Transfername` varchar(256) DEFAULT NULL,
|
||||
`Datenaustauschreferenz` int DEFAULT NULL,
|
||||
`ErstelltAm` datetime DEFAULT NULL,
|
||||
`VerschluesseltAm` datetime DEFAULT NULL,
|
||||
`UebertragenAm` datetime DEFAULT NULL,
|
||||
`AntwortErhaltenAm` datetime DEFAULT NULL,
|
||||
`AntwortEntschluesseltAm` datetime DEFAULT NULL,
|
||||
`Betrag` decimal(18,10) DEFAULT NULL,
|
||||
PRIMARY KEY (`Oid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=latin1
|
||||
@@ -26,6 +26,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pDataContract.Nutzdatendatei = pEntity.Nutzdatendatei;
|
||||
pDataContract.Auftragsdatei = pEntity.Auftragsdatei;
|
||||
pDataContract.Transfername = pEntity.Transfername;
|
||||
pDataContract.Datenaustauschreferenz = pEntity.Datenaustauschreferenz;
|
||||
|
||||
pDataContract.UebertragenAm = pEntity.UebertragenAm;
|
||||
pDataContract.AntwortErhaltenAm = pEntity.AntwortErhaltenAm;
|
||||
@@ -59,6 +60,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
pEntity.Nutzdatendatei = pDataContract.Nutzdatendatei;
|
||||
pEntity.Auftragsdatei = pDataContract.Auftragsdatei;
|
||||
pEntity.Transfername = pDataContract.Transfername;
|
||||
pEntity.Datenaustauschreferenz = pDataContract.Datenaustauschreferenz;
|
||||
|
||||
pEntity.ErstelltAm = pDataContract.ErstelltAm;
|
||||
pEntity.VerschluesseltAm = pDataContract.VerschluesseltAm;
|
||||
|
||||
@@ -154,6 +154,10 @@ namespace BeWo.Service.ServiceContracts
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
GkvAbrechnungDC MakeNewGkvAbrechnung(GkvAbrechnungFilterDC abrechnungFilterDC);
|
||||
GkvAbrechnungDC MakeNewGkvAbrechnung(GkvAbrechnungRequestDC abrechnungFilterDC);
|
||||
|
||||
[FaultContract(typeof(BeWoFault))]
|
||||
[OperationContract]
|
||||
GkvAbrechnungResponseDC CreateNewGkvAbrechnung(GkvAbrechnungRequestDC request);
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,8 @@ using BS.Shared.DataContracts;
|
||||
using Utils = BeWo.Service.Core.Utils;
|
||||
using BeWo.Service.Invoicing;
|
||||
using Dakota.Logic;
|
||||
using Dakota;
|
||||
using Dakota.Models;
|
||||
|
||||
namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
@@ -719,11 +721,15 @@ namespace BeWo.Service.ServiceImplementations
|
||||
}
|
||||
}
|
||||
|
||||
public GkvAbrechnungDC MakeNewGkvAbrechnung(GkvAbrechnungFilterDC abrechnungFilterDC)
|
||||
public GkvAbrechnungResponseDC CreateNewGkvAbrechnung(GkvAbrechnungRequestDC request)
|
||||
{
|
||||
var response = new GkvAbrechnungResponseDC();
|
||||
|
||||
try
|
||||
{
|
||||
var test_datetime = abrechnungFilterDC.GkvAbrechnungDC.AbrechnungsZeitraumStart.Value;
|
||||
var gkv_abrechnung_dc = request.GkvAbrechnungDC;
|
||||
|
||||
var test_datetime = gkv_abrechnung_dc.AbrechnungsZeitraumStart.Value;
|
||||
|
||||
var manager = new DakotaManager(test_datetime.Month, DateTime.Now);
|
||||
|
||||
@@ -731,7 +737,9 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
var loaded_invoicebases = new List<InvoiceBaseDC>();
|
||||
|
||||
foreach (var invoicebase_oid in abrechnungFilterDC.SelectedInvoiceBases)
|
||||
DakotaValidator.ValidateFirstStep(mandatordc);
|
||||
|
||||
foreach (var invoicebase_oid in request.SelectedInvoiceBases)
|
||||
{
|
||||
var service = DAOFactory.SearchDAO.GetServiceInvoiceByInvoiceBaseOid(invoicebase_oid);
|
||||
var invoicebase = DAOFactory.GenericDAO.GetByID<InvoiceBase>(invoicebase_oid);
|
||||
@@ -746,18 +754,19 @@ namespace BeWo.Service.ServiceImplementations
|
||||
var orgadc = MapperFactory.OrganisationDC_OrganisationMapper.MapToNewDC(orga);
|
||||
var customerdc = MapperFactory.CustomerDC_Customer.MapToNewDC(customer);
|
||||
|
||||
DakotaValidator.ValidateSecondStep(orgadc, customerdc);
|
||||
|
||||
manager.Add(servicedc, orgadc, customerdc, mandatordc);
|
||||
}
|
||||
|
||||
manager.Apply();
|
||||
|
||||
if(manager.DakotaFileDict.Count != 1 || manager.DakotaFileDict.First().Value.GetKostenträgerCount() != 1)
|
||||
if (manager.DakotaFileDict.Count != 1 || manager.DakotaFileDict.First().Value.GetKostenträgerCount() != 1)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
throw new DakotaException("Unerwartete Anzahl an Dakota Files berechnet.");
|
||||
}
|
||||
|
||||
var file_from_manager = manager.DakotaFileDict.First().Value;
|
||||
var gkv_abrechnung_dc = abrechnungFilterDC.GkvAbrechnungDC;
|
||||
|
||||
var nutzdatendatei = file_from_manager.GetNutzdatendatei();
|
||||
|
||||
@@ -768,22 +777,24 @@ namespace BeWo.Service.ServiceImplementations
|
||||
// that indicates the number of bytes in the value.
|
||||
if (nutzdatendatei.Length > 65535)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("nutzdatendatei", $"Länger als 65535: {nutzdatendatei.Length}");
|
||||
throw new DakotaException($"nutzdatendatei - Länger als 65535: {nutzdatendatei.Length}");
|
||||
}
|
||||
|
||||
gkv_abrechnung_dc.IKDatenannahmestelle = file_from_manager.GetIKDatenannahmestelle();
|
||||
gkv_abrechnung_dc.IKKostenträger= file_from_manager.GetIKKostenträger();
|
||||
gkv_abrechnung_dc.IKLeistungserbringer= file_from_manager.GetIKLeistungserbringer();
|
||||
var datenannahmestelle = file_from_manager.GetIKDatenannahmestelle();
|
||||
var datenaustauschreferenz = DAOFactory.SearchDAO.GetLastDatenaustauschreferenz(datenannahmestelle);
|
||||
|
||||
gkv_abrechnung_dc.IKDatenannahmestelle = datenannahmestelle;
|
||||
gkv_abrechnung_dc.IKKostenträger = file_from_manager.GetIKKostenträger();
|
||||
gkv_abrechnung_dc.IKLeistungserbringer = file_from_manager.GetIKLeistungserbringer();
|
||||
gkv_abrechnung_dc.IKVersichertenKarte = file_from_manager.GetIKVersichertenKarte();
|
||||
|
||||
gkv_abrechnung_dc.Auftragsdatei = file_from_manager.GetAuftragsdatei();
|
||||
gkv_abrechnung_dc.Nutzdatendatei = file_from_manager.GetNutzdatendatei();
|
||||
gkv_abrechnung_dc.Transfername = file_from_manager.GetTransferName();
|
||||
gkv_abrechnung_dc.Datenaustauschreferenz = datenaustauschreferenz + 1;
|
||||
|
||||
gkv_abrechnung_dc.ErstelltAm = file_from_manager.Created;
|
||||
|
||||
gkv_abrechnung_dc.Betrag = file_from_manager.GetBetrag();
|
||||
|
||||
gkv_abrechnung_dc.InvoiceBases = loaded_invoicebases;
|
||||
|
||||
var gkv_abrechnung = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewEntity(gkv_abrechnung_dc);
|
||||
@@ -792,12 +803,24 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
var new_gkv_abrechnung_dc = MapperFactory.GkvAbrechnungDC_GkvAbrechnung.MapToNewDC(gkv_abrechnung);
|
||||
|
||||
return new_gkv_abrechnung_dc;
|
||||
response.Success = true;
|
||||
response.GkvAbrechnungDC = new_gkv_abrechnung_dc;
|
||||
}
|
||||
catch(DakotaException exc)
|
||||
{
|
||||
response.Error = exc.Message;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw Utils.CreateBeWoFaultException(e);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
public GkvAbrechnungDC MakeNewGkvAbrechnung(GkvAbrechnungRequestDC abrechnungFilterDC)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<long> InsertNewGkvAbrechnungen(List<GkvAbrechnungDC> dcList)
|
||||
|
||||
@@ -44,6 +44,9 @@ namespace BS.Shared.DataContracts
|
||||
[DataMember]
|
||||
public string Transfername { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public int Datenaustauschreferenz { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public DateTime? ErstelltAm { get; set; }
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@ using System.Threading.Tasks;
|
||||
namespace BS.Shared.DataContracts
|
||||
{
|
||||
[DataContract]
|
||||
public class GkvAbrechnungFilterDC : IDataContract
|
||||
public class GkvAbrechnungRequestDC : IDataContract
|
||||
{
|
||||
public GkvAbrechnungFilterDC(GkvAbrechnungDC gkvAbrechnungDC) : base()
|
||||
public GkvAbrechnungRequestDC(GkvAbrechnungDC gkvAbrechnungDC) : base()
|
||||
{
|
||||
GkvAbrechnungDC = gkvAbrechnungDC;
|
||||
}
|
||||
public GkvAbrechnungFilterDC()
|
||||
public GkvAbrechnungRequestDC()
|
||||
{
|
||||
|
||||
}
|
||||
22
Shared/DataContracts/GkvAbrechnungResponseDC.cs
Normal file
22
Shared/DataContracts/GkvAbrechnungResponseDC.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BS.Shared.DataContracts
|
||||
{
|
||||
[DataContract]
|
||||
public class GkvAbrechnungResponseDC : IDataContract
|
||||
{
|
||||
[DataMember]
|
||||
public bool Success { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public string Error { get; set; }
|
||||
|
||||
[DataMember]
|
||||
public GkvAbrechnungDC GkvAbrechnungDC { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -184,8 +184,9 @@
|
||||
<Compile Include="DataContracts\DokumentvorlageDC.cs" />
|
||||
<Compile Include="DataContracts\AdditionalServiceNoticeDC.cs" />
|
||||
<Compile Include="DataContracts\GeschenkterUrlaubstagDC.cs" />
|
||||
<Compile Include="DataContracts\GkvAbrechnungResponseDC.cs" />
|
||||
<Compile Include="DataContracts\GkvAbrechnungViewFilterDC.cs" />
|
||||
<Compile Include="DataContracts\GkvAbrechnungFilterDC.cs" />
|
||||
<Compile Include="DataContracts\GkvAbrechnungRequestDC.cs" />
|
||||
<Compile Include="DataContracts\GoalRatingDC.cs" />
|
||||
<Compile Include="DataContracts\GkvAbrechnungDC.cs" />
|
||||
<Compile Include="DataContracts\PlatzhalterDC.cs" />
|
||||
|
||||
Reference in New Issue
Block a user