Imports SDL.at.gv.bmf.finanzonlineLogin ' Aufruf des Webservice von FinanzOnline zur prüfung der UID-Nummer ' Aufgrund von verzögerten Bestätigungen wurd diese Funktion deaktiviert!!! Public Class cFinanzOnlineWebService ' Private tid As String = My.Resources.tid ' Private benid As String = My.Resources.benid ' Private pin As String = My.Resources.pin ' 'VERAG: 'Shared tid As String = "1000103u3032" 'Shared benid As String = "webserv99" 'Shared pin As String = "webserv99" 'Shared uid As String = "ATU53187000" ' 'VERAG CS: 'Shared tid As String = "19379933" 'Shared benid As String = "WEBserv99" 'Shared pin As String = "WEBserv99" 'Shared uid As String = "XXXX" ''FRONT-Office: 'Shared tid As String = "67493371k039" 'Shared benid As String = "WEBserv99" 'Shared pin As String = "WEBserv99" 'Shared uid As String = "ATU74813856" 'IMEX: Shared tid As String = "19435107n654" Shared benid As String = "WEBserv99" Shared pin As String = "WEBserv99" Shared uid As String = "ATU68490714" Public SESSION_ID As String = "" Sub initValues() Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "IMEX" tid = "19435107n654" benid = "WEBserv99" pin = "WEBserv99" uid = "ATU68490714" Case "FRONTOFFICE" tid = "67493371k039" benid = "WEBserv99" pin = "WEBserv99" uid = "ATU74813856" Case "UNISPED" tid = "18778752z632" benid = "Webmaster1" pin = "Webmaster1" uid = "ATU67001200" Case Else 'VERAG: tid = "13390891m005" benid = "WEBserv99" pin = "WEBserv99" uid = "ATU53187000" 'tid = "1000103u3032" 'benid = "webserv99" 'pin = "webserv99" 'uid = "ATU53187000" End Select End Sub Function Call_Web_Service_MethodUID_Login_NEU2020() As Integer Dim CallWebService As New VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.session.sessionService Try Dim rc As Integer = -1 Dim msg = "" SESSION_ID = CallWebService.login(tid, benid, pin, uid, rc, msg) Return rc Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try Return -99 End Function Function Call_Web_Service_MethodUID_Abfrage_NEU2020(ba_KundenNr, Optional AskIfDouble = False, Optional SaveErgInAdressen = True, Optional showErr = True, Optional Stufe = 1, Optional ByRef errorCode = 0) As VERAG_PROG_ALLGEMEIN.cUIDPruefung Dim AD As New cAdressen(ba_KundenNr) Dim multiUID = False If AD IsNot Nothing Then If AD.UstIdKz IsNot Nothing AndAlso AD.UstIdNr IsNot Nothing Then Try If AskIfDouble Then If IsDate(AD.UstIdGeprüft) AndAlso CDate(AD.UstIdGeprüft).ToShortDateString = Now.ToShortDateString Then If vbYes <> MsgBox("Die UID-Nummer wurde heute bereits geprüft. Soll die Prüfung nochmal durchgeführt werden?", vbYesNoCancel) Then Return Nothing End If End If End If Dim tmp_SESSION_ID = SESSION_ID Dim CallWebService As New VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageService Dim msg As String = "" Dim name As String = "" Dim adrz1 As String = "" Dim adrz2 As String = "" Dim adrz3 As String = "" Dim adrz4 As String = "" Dim adrz5 As String = "" Dim adrz6 As String = "" Dim countryCode As String = AD.UstIdKz Dim vatNumber As String = AD.UstIdNr Dim StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item1 Select Case Stufe Case 1 StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item1 Case 2 StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item2 End Select Dim returnInt As Integer = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, countryCode & vatNumber, StufeAbf, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6) errorCode = returnInt If returnInt = 0 Or returnInt = 1 Then If Stufe = 1 AndAlso returnInt = 0 Then multiUID = AD.getUIDMehrfachverwendung() 'nur bei Stufe 1 und bei gültigen Prüfungen!!! Dim UID_TMP As New VERAG_PROG_ALLGEMEIN.cUIDPruefung UID_TMP.uid_Datum = Now UID_TMP.uid_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME If If(UID_TMP.uid_Sachbearbeiter, "") = "" Then UID_TMP.uid_Sachbearbeiter = "AUTO" UID_TMP.uid_MaId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID UID_TMP.uid_valid = (returnInt = 0) UID_TMP.uid_KundenNr = ba_KundenNr UID_TMP.uid_UstIdKz = countryCode UID_TMP.uid_UstIdNr = vatNumber UID_TMP.Firma = If(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, "VERAG") UID_TMP.uid_abfrageUid = uid UID_TMP.uid_sessionId = tmp_SESSION_ID UID_TMP.uid_firma = name UID_TMP.uid_adr1 = adrz1 UID_TMP.uid_adr2 = adrz2 UID_TMP.uid_adr3 = adrz3 UID_TMP.uid_adr4 = adrz4 UID_TMP.uid_adr5 = adrz5 UID_TMP.uid_adr6 = adrz6 UID_TMP.uid_stufe = Stufe UID_TMP.SAVE() If multiUID Then Dim dt_multiUID As DataTable = AD.getDTUIDMehrfachverwendung(AD.AdressenNr) If dt_multiUID.Rows.Count > 0 Then For Each adresse As DataRow In dt_multiUID.Rows Dim UID_TMP_new As New VERAG_PROG_ALLGEMEIN.cUIDPruefung Dim AD_new As New cAdressen(adresse.Item("KundenNr")) UID_TMP_new.uid_Datum = Now UID_TMP_new.uid_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME If If(UID_TMP_new.uid_Sachbearbeiter, "") = "" Then UID_TMP_new.uid_Sachbearbeiter = "AUTO" UID_TMP_new.uid_MaId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID UID_TMP_new.uid_valid = (returnInt = 0) UID_TMP_new.uid_KundenNr = AD_new.AdressenNr UID_TMP_new.uid_UstIdKz = countryCode UID_TMP_new.uid_UstIdNr = vatNumber UID_TMP_new.Firma = If(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, "VERAG") UID_TMP_new.uid_abfrageUid = uid UID_TMP_new.uid_sessionId = tmp_SESSION_ID UID_TMP_new.uid_firma = name UID_TMP_new.uid_adr1 = adrz1 UID_TMP_new.uid_adr2 = adrz2 UID_TMP_new.uid_adr3 = adrz3 UID_TMP_new.uid_adr4 = adrz4 UID_TMP_new.uid_adr5 = adrz5 UID_TMP_new.uid_adr6 = adrz6 UID_TMP_new.uid_stufe = Stufe UID_TMP_new.SAVE() If (UID_TMP.uid_valid) Then 'OK If SaveErgInAdressen Then AD_new.UstIdGeprüft = Now.ToShortDateString AD_new.SAVE() End If End If Next End If End If If (returnInt = 0) Then 'OK If SaveErgInAdressen Then AD.UstIdGeprüft = Now.ToShortDateString AD.SAVE() End If End If Return UID_TMP Else If showErr Then MsgBox(GetCodeText(returnInt)) End If Catch ex As Exception If showErr Then MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) ' Call_Web_Service_MethodUID_Logout_NEU2020() End Try End If End If 'If returnInt = 0 Then ' Firma = name & vbNewLine & adrz1 ' If adrz2 <> "" Then Firma = Firma & vbNewLine & adrz2 ' If adrz3 <> "" Then Firma = Firma & vbNewLine & adrz3 ' If adrz4 <> "" Then Firma = Firma & vbNewLine & adrz4 ' If adrz5 <> "" Then Firma = Firma & vbNewLine & adrz5 ' If adrz6 <> "" Then Firma = Firma & vbNewLine & adrz6 ' ' frmUIDCheck.firmaUIDFinanzOnline = firma ' ' frmUIDCheck.firmaUIDProgramm = txtFirma ' ' frmUIDCheck.uidnr = txtUid ' ' frmUIDCheck.Show() 'Else ' MsgBox(GetCodeText(returnInt)) 'End If ' msgErgebnis = msg ' Call_Web_Service_MethodUID_Logout_NEU2020() Return Nothing End Function Function Call_Web_Service_MethodUID_Abfrage_WO_KDNR(UID_Nr, Optional showErr = True, Optional Stufe = 1, Optional ByRef errorCode = 0) As VERAG_PROG_ALLGEMEIN.cUIDPruefung Try If UID_Nr.Length > 6 Then Dim tmp_SESSION_ID = SESSION_ID Dim CallWebService As New VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageService Dim msg As String = "" Dim name As String = "" Dim adrz1 As String = "" Dim adrz2 As String = "" Dim adrz3 As String = "" Dim adrz4 As String = "" Dim adrz5 As String = "" Dim adrz6 As String = "" Dim countryCode As String = UID_Nr.Substring(0, 2) Dim vatNumber As String = UID_Nr.Substring(2, uid.Length) Dim StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item1 Select Case Stufe Case 1 StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item1 Case 2 StufeAbf = VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item2 End Select Dim returnInt As Integer = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, countryCode & vatNumber, StufeAbf, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6) errorCode = returnInt If returnInt = 0 Or returnInt = 1 Then Dim UID_TMP As New VERAG_PROG_ALLGEMEIN.cUIDPruefung UID_TMP.uid_Datum = Now UID_TMP.uid_Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME If If(UID_TMP.uid_Sachbearbeiter, "") = "" Then UID_TMP.uid_Sachbearbeiter = "AUTO" UID_TMP.uid_MaId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID UID_TMP.uid_valid = (returnInt = 0) UID_TMP.uid_KundenNr = -1 UID_TMP.uid_UstIdKz = countryCode UID_TMP.uid_UstIdNr = vatNumber UID_TMP.Firma = If(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, "VERAG") UID_TMP.uid_abfrageUid = uid UID_TMP.uid_sessionId = tmp_SESSION_ID UID_TMP.uid_firma = name UID_TMP.uid_adr1 = adrz1 UID_TMP.uid_adr2 = adrz2 UID_TMP.uid_adr3 = adrz3 UID_TMP.uid_adr4 = adrz4 UID_TMP.uid_adr5 = adrz5 UID_TMP.uid_adr6 = adrz6 UID_TMP.uid_stufe = Stufe UID_TMP.SAVE() If (returnInt = 0) Then 'OK End If Return UID_TMP End If End If Catch ex As Exception If showErr Then MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) ' Call_Web_Service_MethodUID_Logout_NEU2020() End Try Return Nothing End Function Function GetUIDLand(uid As String) If uid.Length > 2 Then Return uid.Substring(0, 2) End If 'Dim uidLand = "" 'For Each s In uid ' If IsNumeric(s) Then Return uidLand ' uidLand &= s 'Next 'Return uidLand End Function Function GetUidNr(uid As String) If uid.Length > 2 Then Return uid.Substring(2, uid.Length - 2) End If 'Dim uidLand = "" 'For Each s In uid ' If IsNumeric(s) Then uidLand &= s 'Next 'Return uidLand End Function Function GetCodeText(rc As Integer) Select Case rc Case 0 : Return "Die UID des Erwerbers ist gültig." Case -1 : Return "Die Session ID ist ungültig oder abgelaufen." Case -2 : Return "Der Aufruf des Webservices ist derzeit wegen Wartungsarbeiten nicht möglich." Case -3 : Return "Es ist ein technischer Fehler aufgetreten." Case -4 : Return "Dieser Teilnehmer ist für diese Funktion nicht berechtigt." Case 1 : Return "Die UID des Erwerbers ist nicht gültig." Case 4 : Return "Die UID-Nummer des Erwerbers ist falsch." Case 5 : Return "Die UID-Nummer des Antragstellers ist ungültig." Case 10 : Return "Der angegebene Mitgliedstaat verbietet diese Abfrage." Case 101 : Return "UID beginnt nicht mit ATU." Case 103 : Return "Die angefragte UID-Nummer kann im FinanzOnline nur in Stufe 1 bestätigt werden, da diese UID-Nummer zu einer Unternehmensgruppe (Umsatzsteuergruppe) gehört. Aus technischen Gründen werden aus Tschechien keine Firmendaten angezeigt. Für eine gültige Stufe 2 Abfrage ist es daher erforderlich, dass Sie unter http://adisreg.mfcr.cz die Daten der CZ-Umsatzsteuergruppe aufrufen und kontrollieren, ob das angefragte Unternehmen auch tatsächlich zu dieser Gruppe gehört.Bitte bewahren Sie den Ausdruck dieser Anfrage in Ihren Unterlagen als Beleg gemäß § 132 BAO auf. Für jede Anfrage Stufe 2 ist sowohl das Bestätigungsverfahren in Stufe 1 im FinanzOnline als auch das Gruppenregister im anderen Mitgliedsstaat laut o.a. Link zu konsultieren. Im Falle von Fragen wenden Sie sich bitte an Ihr zuständiges Finanzamt." Case 104 : Return "Die angefragte UID-Nummer kann im FinanzOnline nur in Stufe 1 bestätigt werden, da diese UID-Nummer zu einer Unternehmensgruppe (Umsatzsteuergruppe) gehört. Aus technischen Gründen werden aus der Slowakei keine Firmendaten angezeigt. Für eine gültige Stufe 2 Abfrage ist es daher erforderlich, dass Sie unter http://www.drsr.sk die Daten der SK-Umsatzsteuergruppe aufrufen und kontrollieren, ob das angefragte Unternehmen auch tatsächlich zu dieser Gruppe gehört. Bitte bewahren Sie den Ausdruck dieser Anfrage in Ihren Unterlagen als Beleg gemäß §Bundesministerium für Finanzen Seite 3 von 3 Stand: 27.10.2016 BAO auf. Für jede Anfrage Stufe 2 ist sowohl das Bestätigungsverfahren In Stufe 1 im FinanzOnline als auch das Gruppenregister im anderen Mitgliedsstaat laut o.a. Link zu konsultieren. Im Falle von Fragen wenden Sie sich bitte an Ihr zuständiges Finanzamt." Case 105 : Return "Die UID-Nummer ist über FinanzOnline einzeln abzufragen." Case 1511 : Return "Der angegebene Mitgliedstaat ist derzeit nicht erreichbar" Case 1512 : Return "Die UID-Abfrage ist auf Grund der hohen Anzahl an Abfragen derzeit nicht möglich." Case 1513 : Return "Die UID-Abfrage für die angegebene UID-Nummer des Erwerbers wurde an diesem Tag bereits zweimal durchgeführt. Eine häufigere Abfrage mittels Webservice ist nicht möglich." Case Else : Return "Unbekannter Fehler: " & rc End Select End Function Function Call_Web_Service_MethodUID_Logout_NEU2020() As String Dim CallWebService As New VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.session.sessionService Try Dim msg = "" Dim sGetValue As String = CallWebService.logout(tid, benid, SESSION_ID, msg) Return sGetValue Catch ex As Exception MsgBox(ex.Message) End Try Return "" End Function End Class