Files
SDL/SDL/Classes/cFinanzOnlineWebService.vb
2020-12-13 21:32:29 +01:00

366 lines
16 KiB
VB.net

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 Shared SESSION_ID As String = ""
Shared 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
Shared Function Call_Web_Service_MethodUID_Login() As Integer
Dim CallWebService As New SDL.at.gv.bmf.finanzonlineLogin.sessionService
Try
Dim rc = ""
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
Shared Function Call_Web_Service_MethodUID_Abfrage(ByRef session As String, ByVal txtFirma As String, ByVal txtUid As String) As String
Dim CallWebService As New SDL.at.gv.bmf.finanzonline.uidAbfrageService
Try
' Return CallWebService.uidAbfrage(session, tid, benid, My.Resources.UID_Nr, txtUid.Text, uidAbfrageRequestStufe.Item2, "", "", "", "", "", "", "")
'Dim s() As Object = CallWebService.uidAbfrage(session, tid, benid, My.Resources.UID_Nr, txtUid.Text, uidAbfrageRequestStufe.Item2, "", "", "", "", "", "", "")
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 returnInt As Integer = CallWebService.uidAbfrage(session, tid, benid, My.Resources.UID_Nr, txtUid, at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item2, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6)
If returnInt = 0 Then
Dim firma As String = 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(returnInt)
End If
Return returnInt
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return "-1"
End Function
Shared Function Call_Web_Service_MethodUID_Logout(ByRef sessionid As String) As String
Dim CallWebService As New SDL.at.gv.bmf.finanzonlineLogin.sessionService
Try
Dim msg = ""
Dim sGetValue As String = CallWebService.logout(tid, benid, sessionid, msg)
Return sGetValue
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return ""
End Function
Shared 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
Shared Function genUID_Formular(ByVal txtUid As String, Optional AvisoId As Integer = -1, Optional SendungsId As Integer = -1, Optional ByRef UID_ERG As Integer = -1) As String 'SESSION_ID wir nur zurückgegeben
Try
Dim msgErgebnis = ""
Dim tmp_SESSION_ID = ""
Dim Firma = ""
UID_ERG = Call_Web_Service_MethodUID_Abfrage_NEU2020(txtUid, Firma, tmp_SESSION_ID, msgErgebnis)
If UID_ERG = 0 Or UID_ERG = 1 Then
Select Case UID_ERG
Case 0 : msgErgebnis = "UID-Nr. GÜLTIG - OK"
Case 1 : msgErgebnis = "UID-Nr. UNGÜLTIG"
End Select
Dim PdfTmp = SDL.FormularManagerNEU.UID_PRUEFUNG(msgErgebnis, Firma, tmp_SESSION_ID, uid, txtUid, tid, AvisoId, SendungsId)
If PdfTmp <> "" Then
Dim fileName = "UID_Prüfung_" & txtUid & ".pdf"
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "UID_PRUEFUNG", VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA, txtUid, Now.ToString("ddMMyy_HHmmss.ffff"), fileName, -1, False) 'Now.ToString("ddMMyy_HHmmss.ffff")
If Not DS.uploadDataToDATENSERVER(PdfTmp) Then MsgBox("Fehler beim Speichern: Datenserver!") : Return False
If DS.da_id <= 0 Then MsgBox("Keine DocId!") : Return False
Dim da_id = DS.da_id
Dim destPath = DS.GET_TOP1_PATH
If AvisoId > 0 And SendungsId > 0 Then
Dim ANH As New VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge(AvisoId, fileName, DS.da_id, "UID", "PDF", SendungsId)
If Not ANH.SAVE Then MsgBox("Fehler beim Anhang speichern!") : Return False
Dim anhId = ANH.anh_id
End If
Return destPath
End If
Else
MsgBox(msgErgebnis)
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Return ""
End Function
Shared Function Call_Web_Service_MethodUID_Abfrage_NEU2020(ByVal txtUid As String, Optional ByRef Firma As String = "", Optional ByRef tmp_SESSION_ID As String = "", Optional ByRef msgErgebnis As String = "", Optional SaveErgInAdressenKdNr As Integer = -1) As String 'SESSION_ID wir nur zurückgegeben
initValues()
If Call_Web_Service_MethodUID_Login_NEU2020() <> 0 Then
MsgBox("FEHLER FO LOGIN")
Return -1
End If
tmp_SESSION_ID = SESSION_ID
Dim CallWebService As New VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageService
Try
' Return CallWebService.uidAbfrage(session, tid, benid, My.Resources.UID_Nr, txtUid.Text, uidAbfrageRequestStufe.Item2, "", "", "", "", "", "", "")
'Dim s() As Object = CallWebService.uidAbfrage(session, tid, benid, My.Resources.UID_Nr, txtUid.Text, uidAbfrageRequestStufe.Item2, "", "", "", "", "", "", "")
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 returnInt As Integer = CallWebService.uidAbfrage(tid, benid, SESSION_ID, uid, txtUid, VERAG_PROG_ALLGEMEIN.at.gv.bmf.finanzonline.uidAbfrageServiceRequestStufe.Item2, msg, name, adrz1, adrz2, adrz3, adrz4, adrz5, adrz6)
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)
If SaveErgInAdressenKdNr > 0 Then UID_TMP.uid_KundenNr = SaveErgInAdressenKdNr
UID_TMP.uid_UstIdKz = GetUIDLand(txtUid)
UID_TMP.uid_UstIdNr = GetUidNr(txtUid)
UID_TMP.Firma = name
UID_TMP.uid_abfrageUid = uid
UID_TMP.uid_sessionId = tmp_SESSION_ID
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 = 2
UID_TMP.SAVE()
If UID_TMP.uid_valid Then
If SaveErgInAdressenKdNr > 0 Then
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SaveErgInAdressenKdNr)
AD.UstIdGeprüft = Now.ToShortDateString
AD.SAVE()
End If
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 returnInt
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Call_Web_Service_MethodUID_Logout_NEU2020()
End Try
Return "-1"
End Function
Shared 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
Shared 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
Shared 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 Else : Return "Unbekannter Fehler: " & rc
End Select
End Function
Shared 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