diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index ed58abde..f4340317 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb index 145e792b..e5610191 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EXGestellung/usrCntlATLAS_EXGestellung.vb @@ -91,17 +91,17 @@ Public Class usrCntlATLAS_EXGestellung 'MRN Prüfung: For Each l In rtbMRN.Lines If l.Trim <> "" Then - If l.Length >= 18 And dblcheck.Contains(l) Then + If l.Trim.Length >= 18 And dblcheck.Contains(l.Trim) Then MsgBox("Doppelte MRN !: " & l) Me.Cursor = Cursors.Default Exit Sub End If - If Not IsValidMRN(l) Then + If Not IsValidMRN(l.Trim) Then MsgBox("Ungültige MRN (Format): " & l) Me.Cursor = Cursors.Default Exit Sub End If - dblcheck &= l + dblcheck &= l.Trim End If Next @@ -111,7 +111,7 @@ Public Class usrCntlATLAS_EXGestellung For Each l In rtbMRN.Lines If l.Trim <> "" Then - If Not sendEXP_MRN(l, sbAbgangZollstelle._value, cnt, exg_list) Then + If Not sendEXP_MRN(l.Trim, sbAbgangZollstelle._value, cnt, exg_list) Then MsgBox("Sendefehler bei " & l) err = True End If diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/cATEZ_ncts_api.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/cATEZ_ncts_api.vb index d27e17b3..fad251be 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/cATEZ_ncts_api.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/NCTS_API/cATEZ_ncts_api.vb @@ -49,14 +49,14 @@ Public Class cATEZ_ncts_api If Not checkDY_NCTS(NCTS_TMP.Mrn) Then - Dim NCTS_FREMD = VERAG_PROG_ALLGEMEIN.cNCTS_FREMD.LOADByMRN(NCTS_TMP.Mrn, True) - If NCTS_FREMD Is Nothing Then NCTS_FREMD = New cNCTS_FREMD - NCTS_FREMD.ncts_Partnersystem = "ATEZ" - NCTS_FREMD.ncts_MRN = NCTS_TMP.Mrn + If checkDY_NCTSStatus60(NCTS_TMP.Mrn) And OverrideNCTSFin = False Then - If NCTS_FREMD.ncts_Status = 60 And OverrideNCTSFin = False Then 'Wenn NCTS beretis Erledigt und kein Flag fürs überschreiben, mach nix.... Else + Dim NCTS_FREMD = VERAG_PROG_ALLGEMEIN.cNCTS_FREMD.LOADByMRN(NCTS_TMP.Mrn, True) + If NCTS_FREMD Is Nothing Then NCTS_FREMD = New cNCTS_FREMD + NCTS_FREMD.ncts_Partnersystem = "ATEZ" + NCTS_FREMD.ncts_MRN = NCTS_TMP.Mrn NCTS_FREMD.ncts_Eroeffnung = NCTS_TMP.MrnDate @@ -162,6 +162,9 @@ Public Class cATEZ_ncts_api Public Shared Function checkDY_NCTS(MRN As String) As Boolean Return ((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("COUNT(*)", "[tblDakosy_NCTSOut004]", "ncts_MRN='" & MRN & "'", "FMZOLL", 0)) > 0 End Function + Public Shared Function checkDY_NCTSStatus60(MRN As String) As Boolean + Return ((New VERAG_PROG_ALLGEMEIN.SQL).DLookup("COUNT(*)", "[tblDakosy_NCTSOut004]", "ncts_MRN='" & MRN & "' AND ncts_Status=60 ", "FMZOLL", 0)) > 0 + End Function Public Shared Function checkDY_TC(MRN As String) As Boolean diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/OPEN_AI/cOpenAI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/OPEN_AI/cOpenAI.vb new file mode 100644 index 00000000..1037ab91 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/OPEN_AI/cOpenAI.vb @@ -0,0 +1,70 @@ +Imports System.Net.Http +Imports System.Text +Imports System.Threading.Tasks +Imports Newtonsoft.Json.Linq + +Public Class cOpenAI + + Shared apiKey As String = "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" + Shared apiUrl As String = "https://api.openai.com/v1/chat/completions" + + Shared Sub doFirstAI() + 'Dim frage As String = "Wie viele Tage braucht ein Versandschein von Istanbul nach München? Gib nur die Zahl zurück." + Dim frage As String = "Schreibe ein HAIKO über AI." + + + ' API-Aufruf und Ausgabe der Antwort + Dim antwort As String = AskOpenAI(frage) + + Console.WriteLine("Antwort von OpenAI: " & antwort) + + ' Console.WriteLine("Drücke eine beliebige Taste zum Beenden...") + ' Console.ReadKey() + End Sub + + + + ' Funktion zur Kommunikation mit OpenAI API (synchrones Verhalten) + Shared Function AskOpenAI(question As String) As String + + Try + Using client As New HttpClient() + client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}") + + ' JSON-Body für die API-Anfrage mit GPT-4o + Dim requestBody As String = " + { + ""model"": ""gpt-4o-mini"", + ""messages"": [ + {""role"": ""user"", ""content"": """ & question & """} + ], + ""max_tokens"": 10, + ""temperature"": 0 + }" + + Dim content As New StringContent(requestBody, Encoding.UTF8, "application/json") + + ' POST-Anfrage senden und Antwort synchron verarbeiten + Dim response As HttpResponseMessage = client.PostAsync(apiUrl, content).Result + + If response.IsSuccessStatusCode Then + Dim responseBody As String = response.Content.ReadAsStringAsync().Result + + ' JSON-Antwort parsen, um die OpenAI-Antwort zu extrahieren + Dim jsonResponse As JObject = JObject.Parse(responseBody) + Dim answer As String = jsonResponse("choices")(0)("message")("content").ToString().Trim() + + Return answer ' Antwort zurückgeben + Else + ' Fehlerausgabe bei API-Problemen + Return $"Fehler: {response.StatusCode} - {response.Content.ReadAsStringAsync().Result}" + End If + End Using + Catch ex As Exception + ' Allgemeine Fehlerbehandlung + Return $"Fehler: {ex.Message}" + End Try + End Function + + +End Class \ No newline at end of file diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index 0f633211..1020f880 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -641,6 +641,7 @@ +