Gkv GetNumber

This commit is contained in:
2025-11-11 12:10:16 +01:00
parent 3098bcfcfb
commit e664081e29
9 changed files with 178 additions and 9 deletions

View File

@@ -488,25 +488,23 @@ namespace BeWo.Service.ServiceImplementations
private Tuple<int, int> GetNextDatenaustauschreferenzTransfernummer(GkvAbrechnung gkvAbrechnung, string datenannahmestelle)
{
var datenaustauschref = DAOFactory.SearchDAO.GetNextDatenaustauschreferenz(datenannahmestelle);
int transfernummer;
bool newDatenaustauschref;
var state = gkvAbrechnung.GetState();
if (state == GkvState.NoSend)
{
transfernummer = DAOFactory.SearchDAO.GetNextTransfernummer(datenannahmestelle);
newDatenaustauschref = false;
}
else if (state == GkvState.ErrorSoft || state == GkvState.ErrorFatal || state == GkvState.ErrorFolgefehler)
{
transfernummer = gkvAbrechnung.GkvTransferProtokolle.Last().Transfernummer;
newDatenaustauschref = true;
}
else
{
throw new ArgumentException($"Versucht Transfernummer zu laden, invalid state: {state}", nameof(state));
}
return new Tuple<int, int>(datenaustauschref, transfernummer);
return SendApp8GetNumberRequest(datenannahmestelle, newDatenaustauschref, true);
}
private Tuple<int, int> ClearDatenaustauschreferenzTransfernummer(int datenaustauschreferenz, int transfernummer)
{
@@ -602,6 +600,34 @@ namespace BeWo.Service.ServiceImplementations
return false;
}
private Tuple<int, int> SendApp8GetNumberRequest(string ik_datenannahmestelle, bool newDatenaustauschref, bool newTransferNumber)
{
var request = new GkvServerGetNumberRequestDC();
request.IKDatenannahmestelle = ik_datenannahmestelle;
request.NewDatenaustauschRef = newDatenaustauschref;
request.NewTransferNumber = newTransferNumber;
GkvServerGetNumberResponseDC response_app8;
response_app8 = SendApp8Request<GkvServerGetNumberRequestDC, GkvServerGetNumberResponseDC>(request);
return new Tuple<int, int>(response_app8.Datenaustauschreferenz, response_app8.Transfernummer);
// Kein Try-Catch, damit der Prozess oben abgebrochen wird
//try
//{
//}
//catch (Exception e)
//{
// MailUtils.SendGkvModuleErrorMail("GkvServerGetNumberRequest Error", e, Tenant);
//}
//return null;
}
public void HandleGkvServerResults(IEnumerable<GkvServerResultDC> results)
{
var protokolls = new List<GkvTransferProtokollLight>();