From f314969a27909f89ace304f91be76f7efc69c450 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 7 Nov 2025 11:50:48 +0100 Subject: [PATCH] =?UTF-8?q?UID-Pr=C3=BCfung=20Kompatiblit=C3=A4tspr=C3=BCf?= =?UTF-8?q?ungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/My Project/AssemblyInfo.vb | 4 +- VERAG_PROG_ALLGEMEIN/Classes/cUIDPruefung.vb | 133 ++++++++++--------- 2 files changed, 71 insertions(+), 66 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 87955333..b37f53f5 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/VERAG_PROG_ALLGEMEIN/Classes/cUIDPruefung.vb b/VERAG_PROG_ALLGEMEIN/Classes/cUIDPruefung.vb index b53a7623..f8718d1c 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cUIDPruefung.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cUIDPruefung.vb @@ -152,9 +152,9 @@ Public Class cUIDPruefung End Function - Public Shared Function doUIDPruefungALL(Optional datum As Object = Nothing, Optional SaveErgInAdressen As Boolean = True, Optional Sciherheitsabfrage As Boolean = True, Optional MaxEintraege As Integer = -1, Optional showErr As Boolean = True, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 1500) As DataTable + Public Shared Function doUIDPruefungALL(Optional datum As Object = Nothing, Optional SaveErgInAdressen As Boolean = True, Optional Sciherheitsabfrage As Boolean = True, Optional MaxEintraege As Integer = -1, Optional showErr As Boolean = True, Optional finanzOnline As Boolean = True, Optional veroegerungMs As Integer = 3000) As DataTable Dim dt As DataTable = Nothing - + dt = get_zupruefendeKunden(MaxEintraege, datum) If dt IsNot Nothing Then @@ -193,25 +193,29 @@ Public Class cUIDPruefung Case "EUROPE" For Each r As DataRow In dt.Rows - Dim UID_TMP = doUIDPruefung(r("KdNr"),, SaveErgInAdressen, showErr, ART) - If UID_TMP IsNot Nothing Then - If UID_TMP.uid_valid Then - r("Ergebnis") = "OK" - For Each row As DataRow In dt.Select("UstIdnr = '" & r("UstIdnr") & "' AND UstIdKz ='" & r("UstIdKz") & "'") - row("Ergebnis") = r("Ergebnis") - Next + If Not IsDBNull(r("istEUVAT")) AndAlso r("istEUVAT") = "Ja" Then ' Alle 27 Mitgliedstaaten der Europäischen Union + Dim UID_TMP = doUIDPruefung(r("KdNr"),, SaveErgInAdressen, showErr, ART) + If UID_TMP IsNot Nothing Then + If UID_TMP.uid_valid Then + r("Ergebnis") = "OK" + + For Each row As DataRow In dt.Select("UstIdnr = '" & r("UstIdnr") & "' AND UstIdKz ='" & r("UstIdKz") & "'") + row("Ergebnis") = r("Ergebnis") + Next + + Else + r("Ergebnis") = "UNGÜLTIG" + End If Else - r("Ergebnis") = "UNGÜLTIG" + r("Ergebnis") = "ERROR" + End If - Else - r("Ergebnis") = "ERROR" - End If - - If veroegerungMs > 0 Then - Thread.Sleep(veroegerungMs) 'Bei Verögeung soll zwischen jeder Abfrage eine Pause gemacht werden! (Wegen Sperre bei zu vielen Abfragen) + If veroegerungMs > 0 Then + Thread.Sleep(veroegerungMs) 'Bei Verögeung soll zwischen jeder Abfrage eine Pause gemacht werden! (Wegen Sperre bei zu vielen Abfragen) + End If End If Next @@ -227,62 +231,57 @@ Public Class cUIDPruefung For Each r As DataRow In dt.Rows - If IsDBNull(r("Ergebnis")) Then + If Not IsDBNull(r("istEUVAT")) AndAlso r("istEUVAT") = "Ja" Then ' Alle 27 Mitgliedstaaten der Europäischen Union - counter += 1 - Dim errorCode = -99 - Dim errormsg = "" - Dim UID_TMP = FO.Call_Web_Service_MethodUID_Abfrage_NEU2020(r("KdNr"),, SaveErgInAdressen, showErr,, errorCode, errormsg) - If UID_TMP IsNot Nothing Then - If UID_TMP.uid_valid Then - r("Ergebnis") = "OK" + If IsDBNull(r("Ergebnis")) Then - For Each row As DataRow In dt.Select("UstIdnr = '" & r("UstIdnr") & "' AND UstIdKz ='" & r("UstIdKz") & "'") - row("Ergebnis") = r("Ergebnis") - Next - ' Bei ungültig soll er einzeln durchgehen! Besprochen mit A.Stockenhuber + counter += 1 + Dim errorCode = -99 + Dim errormsg = "" + Dim UID_TMP = FO.Call_Web_Service_MethodUID_Abfrage_NEU2020(r("KdNr"),, SaveErgInAdressen, showErr,, errorCode, errormsg) + If UID_TMP IsNot Nothing Then + If UID_TMP.uid_valid Then + r("Ergebnis") = "OK" + + For Each row As DataRow In dt.Select("UstIdnr = '" & r("UstIdnr") & "' AND UstIdKz ='" & r("UstIdKz") & "'") + row("Ergebnis") = r("Ergebnis") + Next + ' Bei ungültig soll er einzeln durchgehen! Besprochen mit A.Stockenhuber + Else + r("Ergebnis") = "UNGÜLTIG" + End If Else - r("Ergebnis") = "UNGÜLTIG" - ' For Each row As DataRow In dt.Select("UstIdnr = '" & r("UstIdnr") & "' AND UstIdKz ='" & r("UstIdKz") & "'") - ' row("Ergebnis") = r("Ergebnis") - ' Next - End If - Else - r("Ergebnis") = "ERROR" - r("Error-Code") = errorCode.ToString() - r("Error-Text") = FO.GetCodeText(errorCode) & errormsg + r("Ergebnis") = "ERROR" + r("Error-Code") = errorCode.ToString() + r("Error-Text") = FO.GetCodeText(errorCode) & errormsg + + If r("Error-Code") = "1511" Then + errorCounter += 1 'Fehler Mitgliedsstaat nicht erreichbar!!! + ElseIf r("Error-Code") = "-99" AndAlso r("Error-Text") <> "" AndAlso r("Error-Text").ToString.Contains("Wegen Wartungsarbeiten") Then + Exit For 'Wartungsarbeiten -> sofort abbrechen! + + End If - If r("Error-Code") = "1511" Then - errorCounter += 1 'Fehler Mitgliedsstaat nicht erreichbar!!! - ElseIf r("Error-Code") = "-99" AndAlso r("Error-Text") <> "" AndAlso r("Error-Text").ToString.Contains("Wegen Wartungsarbeiten") Then - Exit For End If - ' Bei ERROR soll er ebenfalls einzeln durchgehen! Besprochen mit A.Stockenhuber - 'For Each row As DataRow In dt.Select("UstIdnr = '" & r("UstIdnr") & "' AND UstIdKz ='" & r("UstIdKz") & "'") - ' row("Ergebnis") = r("Ergebnis") - ' row("Error-Code") = r("Error-Code") - ' row("Error-Text") = r("Error-Text") - 'Next - End If - End If + r("Re-Login") = "0" - r("Re-Login") = "0" + If counter Mod 100 = 0 OrElse errorCounter > 10 Then + If errorCounter > 10 Then errorCounter = 0 + FO.Call_Web_Service_MethodUID_Logout_NEU2020() + Thread.Sleep(2000) + FO.Call_Web_Service_MethodUID_Login_NEU2020() + r("Re-Login") = "1" + End If - If counter Mod 100 = 0 OrElse errorCounter > 10 Then - If errorCounter > 10 Then errorCounter = 0 - FO.Call_Web_Service_MethodUID_Logout_NEU2020() - Thread.Sleep(2000) - FO.Call_Web_Service_MethodUID_Login_NEU2020() - r("Re-Login") = "1" - End If + If veroegerungMs > 0 Then + r("Verzoegerung") = veroegerungMs + Thread.Sleep(veroegerungMs) 'Bei Verögeung soll zwischen jeder Abfrage eine Pause gemacht werden! (Wegen Sperre bei zu vielen Abfragen) + End If - If veroegerungMs > 0 Then - r("Verzoegerung") = veroegerungMs - Thread.Sleep(veroegerungMs) 'Bei Verögeung soll zwischen jeder Abfrage eine Pause gemacht werden! (Wegen Sperre bei zu vielen Abfragen) End If Next @@ -312,9 +311,9 @@ Public Class cUIDPruefung End If Select Case Firma - Case "AMBAR" : where = " And Filialen.FilialenNr IN (5701)" - Case "IMEX" : where = " And Filialen.FilialenNr IN (5501)" - Case "ATILLA" : where = " And Filialen.FilialenNr IN (4801)" + Case "AMBAR" : where = " And Filialen.FilialenNr IN (5701) " + Case "IMEX" : where = " And Filialen.FilialenNr IN (5501) " + Case "ATILLA" : where = " And Filialen.FilialenNr IN (4801) " Case "UNISPED" : where = " AND Filialen.firma='UNISPED' " Case Else : where = " AND Filialen.firma='VERAG' " '" And isnull(FilialenNr,'') Not IN (5501,5701)" End Select @@ -325,7 +324,13 @@ Public Class cUIDPruefung Top = " TOP " & MaxEintraege End If - dt = SQL.loadDgvBySql("SELECT " & Top & " [AdressenNr] as KdNr,[Ordnungsbegriff] as Firma,UstIdGeprüft as [letzte Prüfung],Adressen.UstIdKz,Adressen.UstIdnr " & + dt = SQL.loadDgvBySql("SELECT " & Top & " [AdressenNr] as KdNr,[Ordnungsbegriff] as Firma,UstIdGeprüft as [letzte Prüfung],Adressen.UstIdKz,Adressen.UstIdnr ,CASE + WHEN UPPER(Adressen.UstIdKz) IN ( + 'AT','BE','BG','CY','CZ','DE','DK','EE','EL','ES','FI','FR','HR', + 'HU','IE','IT','LT','LU','LV','MT','NL','PL','PT','RO','SE','SI','SK' + ) THEN 'Ja' + ELSE 'Nein' + END AS istEUVAT " & " From [Adressen] inner Join kunden On KundenNr=AdressenNr inner join Filialen on Filialen.FilialenNr=Kunden.FilialenNr " & " where (UstIdGeprüft <= '" & datum.ToShortDateString & "' OR UstIdGeprüft is null) and (isnull(Adressen.UstIdKz,'') <> '' and isnull(Adressen.UstIdNr,'') <> '') " & " And Auswahl='A' " & where & " ORDER BY Ordnungsbegriff", "FMZOLL")