Imports System.Data 'Imports Gemeinsames Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO Imports VERAG_PROG_ALLGEMEIN.cGlobal Imports System.Data.SqlClient Imports System.Globalization Imports System.Reflection Imports System.Web.UI.WebControls.WebParts Imports System.Windows.Forms Public Class cSqlDb Public Shared Function GetSDLConnectionString() As String Return VERAG_PROG_ALLGEMEIN.SQL.GetSDLConnectionString() End Function Public Shared Function GetADMINConnectionString() As String Return VERAG_PROG_ALLGEMEIN.SQL.GetADMINConnectionString End Function Public Shared Function GetFMZOLLConnectionString() As String Return VERAG_PROG_ALLGEMEIN.SQL.GetFMZOLLConnectionString End Function Public Shared Function GetATLASConnectionString() As String Return VERAG_PROG_ALLGEMEIN.SQL.GetATLASConnectionString End Function Public Shared Function GetEZOLLConnectionString() As String Return VERAG_PROG_ALLGEMEIN.SQL.GetEZOLLConnectionString End Function Public Shared Function GetAVISOConnectionString() As String Return VERAG_PROG_ALLGEMEIN.SQL.GetAVISOConnectionString End Function Public Shared Function GetNewOpenConnection(Optional pooling As Boolean = True) As SqlConnection Dim cn As New SqlConnection() 'cn.ConnectionString = My.Resources.connStringSDL_DEV ' IMMER DIE AKTUELLE CONNECTION IN MY.SETTINGS ÄNDERN!!! --> WG. BINDING cn.ConnectionString = GetSDLConnectionString() & CStr(IIf(pooling, "", ";pooling=false")) cn.Open() Return cn End Function Public Shared Function GetNewOpenConnectionLogin() As SqlConnection Dim cn As New SqlConnection() cn.ConnectionString = GetADMINConnectionString() cn.Open() Return cn End Function Public Shared Function GetNewOpenConnectionFMZOLL(Optional pooling As Boolean = True) As SqlConnection Dim cn As New SqlConnection() cn.ConnectionString = GetFMZOLLConnectionString() & CStr(If(pooling, "", ";pooling=false")) cn.Open() Return cn End Function Public Shared Function GetNewOpenConnectionATLAS() As SqlConnection Dim cn As New SqlConnection() cn.ConnectionString = GetATLASConnectionString() cn.Open() Return cn End Function Public Shared Function GetNewOpenConnectionEZOLL() As SqlConnection Dim cn As New SqlConnection() cn.ConnectionString = GetEZOLLConnectionString() cn.Open() Return cn End Function Public Shared Function GetNewOpenConnectionAVISO() As SqlConnection Dim cn As New SqlConnection() cn.ConnectionString = GetAVISOConnectionString() cn.Open() Return cn End Function Public Shared Function GetNewOpenConnectionFMZOLLREAL() As SqlConnection Dim cn As New SqlConnection() cn.ConnectionString = VERAG_PROG_ALLGEMEIN.My.MySettings.Default.FMZOLL_PRODConnectionString cn.Open() Return cn End Function Public Shared Function checkNullStr(ByVal o As Object) As String If o IsNot Nothing And o IsNot DBNull.Value Then Return CStr(o) Return "" End Function Public Shared Function checkNullInteger(ByVal o As Object) As Integer If o IsNot Nothing And o IsNot DBNull.Value Then Return CInt(o) Return -1 End Function Public Shared Function checkNullReturnValue(ByVal o As Object, ByVal returnValue As Object) As Object If o IsNot Nothing And o IsNot DBNull.Value Then Return (o) Return returnValue End Function Public Shared Function checkNullIntegerZero(ByVal o As Object) As Integer If o IsNot Nothing And o IsNot DBNull.Value Then Return CInt(o) Return 0 End Function Public Shared Function checkNulDbl(ByVal o As Object) As Double If o IsNot Nothing And o IsNot DBNull.Value Then Return CDbl(o) Return -1 End Function Public Shared Function checkNullBoolCheckState(ByVal o As Object) As Integer If o IsNot Nothing And o IsNot DBNull.Value Then Return 2 Try If CBool(o) = True Then Return 1 If CBool(o) = False Then Return 0 Catch ex As Exception End Try Return 2 End Function Public Shared Function checkNullBool(ByVal o As Object) As Boolean If o Is Nothing Or o Is DBNull.Value Then Return False Try Return CBool(o) Catch ex As Exception End Try Return False End Function Public Shared Function checkNullDate(ByVal o As Object) As Date If o IsNot Nothing And o IsNot DBNull.Value Then Return CDate(o) Return Now End Function Public Shared Function checkNullDateNothing(ByVal o As Object) As Object If o Is DBNull.Value Then Return Nothing Else Return CDate(o) End If End Function Public Shared Function setNullDate(ByVal o As String) As Object Try If IsDate(o) Then Return CDate(o) Catch ex As Exception End Try Return DBNull.Value End Function Public Shared Function setNullInteger(ByVal o As Integer) As Object Try If IsNumeric(o) AndAlso o >= 0 Then Return CInt(o) Catch ex As Exception End Try Return DBNull.Value End Function Public Shared Function setNullBoolean(ByVal o As Integer) As Object Try If o = 0 Then Return False If o = 1 Then Return True Catch ex As Exception End Try Return DBNull.Value End Function End Class Public Class cDatenbankAVISO Public Shared GlobalConnection As SqlConnection = Nothing Public Shared GlobalConnectionFMZOLL As SqlConnection = Nothing Public Shared Function GetNewOpenConnection(Optional newConn As Boolean = False) As SqlConnection Try If GlobalConnection Is Nothing Or newConn Then GlobalConnection = New SqlConnection(cSqlDb.GetAVISOConnectionString) End If If GlobalConnection.State = ConnectionState.Broken Or GlobalConnection.State = ConnectionState.Closed Then GlobalConnection.Open() End If Return GlobalConnection Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Es konnte keine Verbindung zur Datenbank aufgebaut werden!! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Es konnte keine Verbindung zur Datenbank aufgebaut werden!! " & vbCrLf & vbNewLine & vbCrLf & "Fehler: " & ex.Message & ex.StackTrace) End Try Return Nothing End Function Public Shared Function GetNewOpenConnectionFMZOLL(Optional newConn As Boolean = False) As SqlConnection Try If GlobalConnectionFMZOLL Is Nothing Or newConn Then GlobalConnectionFMZOLL = New SqlConnection(cSqlDb.GetFMZOLLConnectionString) End If If GlobalConnectionFMZOLL.State = ConnectionState.Broken Or GlobalConnectionFMZOLL.State = ConnectionState.Closed Then GlobalConnectionFMZOLL.Open() End If Return GlobalConnectionFMZOLL Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Es konnte keine Verbindung zur Datenbank aufgebaut werden!! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Es konnte keine Verbindung zur Datenbank aufgebaut werden!! " & vbCrLf & vbNewLine & vbCrLf & "Fehler: " & ex.Message) End Try Return Nothing End Function Public Shared Function CreateNewOpenConnection() As SqlConnection Dim conn As New SqlConnection(cSqlDb.GetAVISOConnectionString()) conn.Open() Return conn End Function Public Shared Function GetNewOpenConnectionWithoutError(Optional newConn As Boolean = False) As SqlConnection Try If GlobalConnection Is Nothing Or newConn Then GlobalConnection = New SqlConnection(cSqlDb.GetAVISOConnectionString) End If If GlobalConnection.State = ConnectionState.Broken Or GlobalConnection.State = ConnectionState.Closed Then GlobalConnection.Open() End If Return GlobalConnection Catch ex As Exception ' MsgBox("Problem" & vbCrLf & vbNewLine & vbCrLf & "Fehler: " & ex.Message) End Try Return Nothing End Function Public Shared Function GetNewOpenConnectionADMIN() As SqlConnection Try Dim conn As New SqlConnection(cSqlDb.GetADMINConnectionString) conn.Open() Return conn Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Es konnte keine Verbindung zur Datenbank aufgebaut werden!! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Es konnte keine Verbindung zur ADMIN-Datenbank aufgebaut werden." & vbCrLf & "connStr=" & cSqlDb.GetAVISOConnectionString & vbCrLf & "Fehler: " & ex.Message) End Try Return Nothing End Function Public Shared Function GetNewOpenConnection2() As SqlConnection 'Dim Start As Integer = My.Computer.Clock.TickCount Const useGlobalConnection As Boolean = True Try If useGlobalConnection Then If GlobalConnection Is Nothing Then GlobalConnection = New SqlConnection GlobalConnection.ConnectionString = cSqlDb.GetAVISOConnectionString End If If GlobalConnection.State = ConnectionState.Broken Or GlobalConnection.State = ConnectionState.Closed Then GlobalConnection.Open() End If 'cGlobal.hDauerOpen += My.Computer.Clock.TickCount - Start Return GlobalConnection Else Dim conn As New SqlConnection conn.ConnectionString = cSqlDb.GetAVISOConnectionString conn.Open() 'cGlobal.hDauerOpen += 1 'cGlobal.hDauerOpen += My.Computer.Clock.TickCount - Start Return (conn) End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler bei Datenbank öffnen. " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Fehler bei Datenbank öffnen." & vbCrLf & "connStr=" & cSqlDb.GetAVISOConnectionString & vbCrLf & "Fehler: " & ex.Message) Return Nothing End Try End Function End Class Public Class cMitarbeiterAVISO Property MitarbeiterID As Integer Property Mitarbeiter As String Property Mitarbeitername As String Property KW As String ' Property Sicherheitsstufe As Integer Property Info As String ' Property Grenzstelle As String ' Property Abteilung As String = "" Property StandartFiliale As Integer = -1 Property mit_FMZollPersID As Integer = -1 Property mit_username As String End Class Public Class cADMIN ' Public USRNAME As String 'Public USRID As String 'Public USERBER As String Public cMitarbeiterAVISO As cMitarbeiterAVISO ' Private Property USERBER As Object Public Function getAktuelleVersion(Optional progname As String = "AVISO_NEW") As String Dim sql As String = "SELECT prog_aktuelleVersion FROM tblProgramme WHERE prog_codename=@codename" Dim dr As SqlDataReader Using conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionADMIN() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@codename", progname) dr = cmd.ExecuteReader() Try If dr.Read Then Return CStr(dr.Item("prog_aktuelleVersion")) Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler mit der Datenbankverbindung. " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler") Finally dr.Close() End Try End Using End Using Return "0" End Function Public Function getPwdFromUsrname(ByVal user As String, ByVal firma As String) As String Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.getValueTxtBySql("SELECT mit_pwd FROM tblMitarbeiter where mit_username='" & user & "' COLLATE Latin1_General_CS_AS AND (mit_firma='" & firma & "' OR mit_firma='ALL' ) ", "ADMIN") End Function Public Function getPwdFromUsrId(ByVal userId As String) As String Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.getValueTxtBySql("SELECT mit_pwd FROM tblMitarbeiter where mit_id='" & userId & "' ", "ADMIN") End Function Public Function getUnameFromUsrId(ByVal userId As String) As String Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.getValueTxtBySql("SELECT mit_username FROM tblMitarbeiter where mit_id='" & userId & "' ", "ADMIN") End Function Public Function checkLogin(ByVal user As String, ByVal pwd As String, ByVal firma As String, Optional nlTmp As String = "", Optional switchCompany As Boolean = False, Optional bepr_programm As String = "AVISO") As Boolean VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = If(firma = "", "VERAG", firma) 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen 'Dim sql As String = "SELECT mit_vname,mit_nname,mit_berechtigung FROM tblUser where mit_username=@mit_username COLLATE Latin1_General_CS_AS and mit_pwd=@mit_pwd COLLATE Latin1_General_CS_AS " Dim sql As String = "SELECT mit_id,mit_vname,mit_nname,mit_niederlassung,mit_username, case WHEN isnull(mit_abweichenderAnzeigename,'')='' THEN mit_username ELSE mit_abweichenderAnzeigename END mit_usernameDisplay,mit_pwd,mit_info,mit_abteilung,mit_standartFiliale,mit_FMZollPersID,mit_firmaFMZoll,mit_TESTonly,mit_abweichenderAnzeigename FROM " & " tblMitarbeiter,tblBerProg where mit_username=@mit_username and mit_pwd=@mit_pwd COLLATE Latin1_General_CS_AS AND (mit_firma=@mit_firma OR mit_firma='ALL' ) AND bepr_programm=@bepr_programm AND bepr_userId=mit_id " Dim dr As SqlDataReader Try Using conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionADMIN() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@mit_username", user) cmd.Parameters.AddWithValue("@mit_pwd", pwd) cmd.Parameters.AddWithValue("@bepr_programm", bepr_programm) cmd.Parameters.AddWithValue("@mit_firma", firma) dr = cmd.ExecuteReader() cMitarbeiterAVISO = New cMitarbeiterAVISO If dr.Read Then cMitarbeiterAVISO.MitarbeiterID = CInt(dr.Item("mit_id")) ' cMitarbeiterAVISO.Grenzstelle = CStr(dr.Item("mit_niederlassung")) ' If cMitarbeiterAVISO.Grenzstelle = "Suben" Then cMitarbeiterAVISO.Grenzstelle = "SUB" ' If cMitarbeiterAVISO.Grenzstelle = "Waidhaus" Then cMitarbeiterAVISO.Grenzstelle = "WAI" ' If cMitarbeiterAVISO.Grenzstelle = "Nickelsdorf" Then cMitarbeiterAVISO.Grenzstelle = "NKD" ' If cMitarbeiterAVISO.Grenzstelle = "Salzburg" Then cMitarbeiterAVISO.Grenzstelle = "SBG" ' If cMitarbeiterAVISO.Grenzstelle = "" Then cMitarbeiterAVISO.Grenzstelle = "???" cMitarbeiterAVISO.Mitarbeiter = CStr(dr.Item("mit_usernameDisplay")) 'cMitarbeiterAVISO.Mitarbeiter = If(CStr(dr.Item("mit_abweichenderAnzeigename")) <> "", CStr(dr.Item("mit_abweichenderAnzeigename")), CStr(dr.Item("mit_username"))) cMitarbeiterAVISO.Mitarbeitername = CStr(dr.Item("mit_vname")) & " " & CStr(dr.Item("mit_nname")) cMitarbeiterAVISO.KW = CStr(dr.Item("mit_pwd")) ' cMitarbeiterAVISO.Sicherheitsstufe = CInt(dr.Item("ber_sicherheitsstufe")) cMitarbeiterAVISO.Info = CStr(dr.Item("mit_info")) ' If dr.Item("mit_abteilung") IsNot DBNull.Value Then cMitarbeiterAVISO.Abteilung = CStr(dr.Item("mit_abteilung")) cMitarbeiterAVISO.StandartFiliale = VarToInt2(dr.Item("mit_standartFiliale")) cMitarbeiterAVISO.mit_FMZollPersID = VarToInt2(dr.Item("mit_FMZollPersID")) cMitarbeiterAVISO.mit_username = VarToStr(dr.Item("mit_username")) ' VERAG_PROG_ALLGEMEIN.cAllgemein.USRBER = CInt(dr.Item("ber_sicherheitsstufe")) VERAG_PROG_ALLGEMEIN.cAllgemein.NIEDERLASSUNG = CStr(dr.Item("mit_niederlassung")) VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = CStr(dr.Item("mit_abteilung")) VERAG_PROG_ALLGEMEIN.cAllgemein.USRID = CInt(dr.Item("mit_id")) ' VERAG_PROG_ALLGEMEIN.cAllgemein.USR_VNAME = CStr(dr.Item("mit_vname")) ' VERAG_PROG_ALLGEMEIN.cAllgemein.USR_NNAME = CStr(dr.Item("mit_nname")) 'VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME = CStr(dr.Item("mit_vname")) & " " & CStr(dr.Item("mit_nname")) VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = CStr(dr.Item("mit_username")) ' VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = CStr(dr.Item("mit_usernameDisplay")) If dr.Item("mit_firmaFMZoll") Is DBNull.Value Then MsgBox("Benutzer muss einer Firma zugeordnet sein!") Return False End If If dr.Item("mit_TESTonly") And Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then MsgBox("Benutzer ist nur für das Testsystem freigeschaltet!") VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True 'umschalten auf das TESTSYSTEM End If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID = CInt(dr.Item("mit_firmaFMZoll")) VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_NAME = getValueTxtBySql("SELECT Firma_Bez FROM tblFirma WHERE Firma_ID= " & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA_ID, "FMZOLL") VERAG_PROG_ALLGEMEIN.cAllgemein.LOAD_BER() VERAG_PROG_ALLGEMEIN.cAllgemein.LOAD_DATA(switchCompany, firma, nlTmp) cGlobal.AktiverMitarbeiter = cMitarbeiterAVISO Return True End If 'USERBER = CStr(dr.Item("ber_sicherheitsstufe")) : USRNAME = CStr(dr.Item("mit_vname")) & " " & CStr(dr.Item("mit_nname")) : USRID = CStr(dr.Item("mit_id")) : Return True End Using End Using dr.Close() Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler mit der Datenbankverbindung. " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) Return False End Try Return False End Function Public Function getUstName_ByAD(Domain As String, User As String) As String Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.getValueTxtBySql("SELECT TOP 1 [mit_username] FROM [tblMitarbeiter] WHERE ([mit_AliasAD_Domain]='" & Domain & "' AND [mit_AliasAD_Username]='" & User & "') Or ([mit_AliasAD_Domain2]='" & Domain & "' AND [mit_AliasAD_Username2]='" & User & "' )", "ADMIN") End Function Public Function getUstFirma_ByAD(Domain As String, User As String) As String Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.getValueTxtBySql("SELECT TOP 1 case when mit_firma='ALL' then mit_FirmaHaupt else mit_firma END mit_firma FROM [tblMitarbeiter] WHERE ([mit_AliasAD_Domain]='" & Domain & "' AND [mit_AliasAD_Username]='" & User & "') Or ([mit_AliasAD_Domain2]='" & Domain & "' AND [mit_AliasAD_Username2]='" & User & "' )", "ADMIN") End Function Public Function getUstId_ByAD(Domain As String, User As String) As Integer Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Return SQL.getValueTxtBySql("SELECT TOP 1 [mit_id] FROM [tblMitarbeiter] WHERE ([mit_AliasAD_Domain]='" & Domain & "' AND [mit_AliasAD_Username]='" & User & "') Or ([mit_AliasAD_Domain2]='" & Domain & "' AND [mit_AliasAD_Username2]='" & User & "' )", "ADMIN",,, "-1") End Function Public Function getBezById(id As Integer) As String Dim sql As String = "SELECT Firma_Bez FROM tblFirma WHERE Firma_ID=@id " Dim dr As SqlDataReader Try Using conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@id", id) dr = cmd.ExecuteReader() If dr.HasRows AndAlso dr.Read Then Return CStr(dr.Item(0)) End If End Using End Using dr.Close() Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler mit der Datenbankverbindung. " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler") End Try Return "" End Function Public Function loadCboBySql(ByVal sql As String, Optional conn_art As String = "AVISO", Optional newConn As Boolean = False, Optional conn As SqlConnection = Nothing) As List(Of Object) Dim o As New List(Of Object) Try If conn Is Nothing Then Select Case conn_art Case "AVISO" : conn = cDatenbankAVISO.GetNewOpenConnection(newConn) Case "FMZOLL" : conn = cDatenbankAVISO.GetNewOpenConnectionFMZOLL(newConn) End Select End If ' Using conn As SqlConnection = cSqlDb.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Dim dr As SqlDataReader = cmd.ExecuteReader() While dr.Read o.Add(dr.Item(0)) End While dr.Close() End Using conn.Close() ' End Using Return o 'While Schleife wird hier verlassen Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) End Try Return Nothing End Function Public Function loadCboBySqlWithListItem(ByVal sql As String, Optional showValueInText As Boolean = True, Optional conn_art As String = "AVISO") As List(Of MyListItem) Dim o As New List(Of MyListItem) Try Dim conn As New SqlConnection Select Case conn_art Case "AVISO" : conn = cDatenbankAVISO.GetNewOpenConnection() Case "FMZOLL" : conn = cDatenbankAVISO.GetNewOpenConnectionFMZOLL End Select Using cmd As New SqlCommand(sql, conn) Dim dr As SqlDataReader = cmd.ExecuteReader() While dr.Read If showValueInText Then o.Add(New MyListItem(CStr(dr.Item(0)) & vbTab & " - " & CStr(dr.Item(1)), CStr(dr.Item(0)))) Else Try o.Add(New MyListItem(CStr(dr.Item(1)), CStr(dr.Item(0)))) Catch ex As Exception o.Add(New MyListItem(CStr(dr.Item(0)), CStr(dr.Item(0)))) End Try End If End While dr.Close() End Using conn.Close() Return o 'While Schleife wird hier verlassen Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) End Try Return Nothing End Function Public Function getValueTxtBySql(ByVal sql As String, Optional conn_art As String = "AVISO") As String Dim s As String = "" Try 'MsgBox("1") Dim conn As New SqlConnection Select Case conn_art Case "AVISO" : conn = cDatenbankAVISO.GetNewOpenConnection() Case "ADMIN" : conn = cDatenbankAVISO.GetNewOpenConnectionADMIN() Case "FMZOLL" : conn = cDatenbankAVISO.GetNewOpenConnectionFMZOLL End Select Using cmd As New SqlCommand(sql, conn) Dim dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() If Not dr.Item(0) Is DBNull.Value Then s = CStr(dr.Item(0)) End If End If dr.Close() End Using conn.Close() Return s Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) End Try 'MsgBox("3") Return "" End Function Public Function doSQL(ByVal sql As String, Optional conn_art As String = "AVISO", Optional conn As SqlConnection = Nothing) As Boolean If conn Is Nothing Then Select Case conn_art Case "AVISO" : conn = cDatenbankAVISO.GetNewOpenConnection() Case "FMZOLL" : conn = cDatenbankAVISO.GetNewOpenConnectionFMZOLL End Select End If Try ' MsgBox(sql) Using cmd As New SqlCommand(sql, conn) cmd.ExecuteNonQuery() End Using conn.Close() Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) End Try Return False End Function End Class Public Class cMitarbeiterAVISODAL Public Function LesenMitarbeiter(hID As Integer, hKürzel As String) As cMitarbeiterAVISO 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If hID > 0 Then sql = String.Format("SELECT * FROM Mitarbeiter WHERE MitarbeiterID = {0}", hID) Else sql = String.Format("SELECT * FROM Mitarbeiter WHERE Mitarbeiter = '" & hKürzel.Trim & "'") End If Dim daten As cMitarbeiterAVISO = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cMitarbeiterAVISO daten.MitarbeiterID = VarToInt(dr.Item("MitarbeiterID")) daten.Mitarbeiter = VarToStr(dr.Item("Mitarbeiter")) daten.Mitarbeitername = VarToStr(dr.Item("Mitarbeitername")) daten.KW = VarToStr(dr.Item("KW")) ' daten.Sicherheitsstufe = VarToInt(dr.Item("Sicherheitsstufe")) daten.Info = VarToStr(dr.Item("Info")) ' daten.Grenzstelle = VarToStr(dr.Item("Grenzstelle")) End If dr.Close() End Using End Using conn.Close() Return daten End Function Public Function Anzeigen_Mitarbeiter(hSQL As String) As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Mitarbeiter'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Programm wird aufgrund eines kritischen Problems beendet." & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Function Anzeigen_cboMitarbeiter() As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() Dim sql = "SELECT MitarbeiterID, Mitarbeiter FROM Mitarbeiter ORDER BY Mitarbeiter" Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_cboMitarbeiter'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Programm wird aufgrund eines kritischen Problems beendet." & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Sub SpeichernMitarbeiter(ByVal d As cMitarbeiterAVISO) Dim hAuswahl As String If d.MitarbeiterID = 0 Then 'Neuanlage hAuswahl = "INSERT INTO Mitarbeiter " & "(Mitarbeiter, Mitarbeitername, KW, Sicherheitsstufe, Info, Grenzstelle) VALUES (" & "@Mitarbeiter, @Mitarbeitername, @KW, @Sicherheitsstufe, @Info, @Grenzstelle)" Else 'Änderung hAuswahl = String.Format( "UPDATE Mitarbeiter SET Mitarbeiter = @Mitarbeiter, Mitarbeitername = @Mitarbeitername, KW=@KW, Sicherheitsstufe=@Sicherheitsstufe, Info=@Info, Grenzstelle=@Grenzstelle " & "WHERE MitarbeiterID = @MitarbeiterID") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Mitarbeiter", d.Mitarbeiter) cmd.Parameters.AddWithValue("@Mitarbeitername", d.Mitarbeitername) cmd.Parameters.AddWithValue("@KW", d.KW) ' cmd.Parameters.AddWithValue("@Sicherheitsstufe", d.Sicherheitsstufe) cmd.Parameters.AddWithValue("@Info", d.Info) ' cmd.Parameters.AddWithValue("@Grenzstelle", d.Grenzstelle) cmd.Parameters.AddWithValue("@MitarbeiterID", d.MitarbeiterID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Datensatz kann nicht gespeichert werden!" & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Mitarbeiterstamm") End Try End Using conn.Close() End Sub Public Sub LöschenMitarbeiter(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Mitarbeiter WHERE MitarbeiterID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Mitarbeiter-Stammdaten können nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub End Class Public Class cFirma Property FirmaID As Integer Property Firma As String Property eMail As String Property eMail2 As String Property Info As String Property Frächter As Boolean Property Auftraggeber As Boolean Property FMZollKdnr As String = "" 'Property Adresse As String 'Property Telefon As String 'Property Fax As String 'Property Ansprechpersonen As String End Class Public Class cFirmenDAL Public Function LesenFirma(hID As Integer, hFirma As String, hSQL As String) As cFirma 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If hID > 0 Then sql = String.Format("SELECT * FROM Firmen WHERE FirmaID = {0}", hID) ElseIf hFirma <> "" Then sql = String.Format("SELECT * FROM Firmen WHERE Firma = '" & hFirma.Trim & "'") Else sql = hSQL End If Dim daten As cFirma = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cFirma() daten.FirmaID = VarToInt(dr.Item("FirmaID")) daten.Firma = VarToStr(dr.Item("Firma")) daten.eMail = VarToStr(dr.Item("eMail")) daten.eMail2 = VarToStr(dr.Item("eMail2")) daten.Info = VarToStr(dr.Item("Info")) daten.Frächter = VarToBool(dr.Item("Frächter")) daten.Auftraggeber = VarToBool(dr.Item("Auftraggeber")) 'daten.FMZollKdnr = VarToStr(dr.Item("KundenNr")) If Not dr.Item("KundenNr") Is DBNull.Value Then daten.FMZollKdnr = CStr(dr.Item("KundenNr")) 'daten.Ansprechpersonen = VarToStr(dr.Item("Ansprechpersonen")) 'daten.Adresse = VarToStr(dr.Item("Adresse")) 'daten.Telefon = VarToStr(dr.Item("Telefon")) 'daten.Fax = VarToStr(dr.Item("Fax")) End If dr.Close() End Using End Using conn.Close() Return daten End Function Public Function Anzeigen_Firmen(hSQL As String) As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Firmen'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Programm wird aufgrund eines kritischen Problems beendet." & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Function Anzeigen_cboFirmen(hSQL As String) As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() If hSQL = "" Then hSQL = "SELECT FirmaID, Firma FROM Firmen ORDER BY Firma" Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_cboFirma'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Programm wird aufgrund eines kritischen Problems beendet." & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Sub SpeichernFirma(ByVal d As cFirma) Dim hAuswahl As String If d.FirmaID = 0 Then 'Neuanlage hAuswahl = "INSERT INTO Firmen " & "(Firma, eMail, eMail2, Info, Frächter, Auftraggeber, KundenNr) VALUES (" & "@Firma, @eMail, @eMail2, @Info, @Frächter, @Auftraggeber, @KundenNr)" Else 'Änderung hAuswahl = String.Format( "UPDATE Firmen SET Firma = @Firma, eMail=@eMail, eMail2=@eMail2, Info=@Info, Frächter=@Frächter, Auftraggeber=@Auftraggeber, KundenNr=@KundenNr " & "WHERE FirmaID = @FirmaID") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Firma", d.Firma) cmd.Parameters.AddWithValue("@eMail", d.eMail) cmd.Parameters.AddWithValue("@eMail2", d.eMail2) cmd.Parameters.AddWithValue("@Info", d.Info) cmd.Parameters.AddWithValue("@Frächter", d.Frächter) cmd.Parameters.AddWithValue("@Auftraggeber", d.Auftraggeber) cmd.Parameters.AddWithValue("@FirmaID", d.FirmaID) If d.FMZollKdnr = "" Then cmd.Parameters.AddWithValue("@KundenNr", DBNull.Value) Else cmd.Parameters.AddWithValue("@KundenNr", d.FMZollKdnr) End If Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Firma") End Try End Using conn.Close() End Sub Public Sub LöschenFirma(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Firmen WHERE FirmaID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Firma-Stammdaten können nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub End Class Public Class cQSAufträge Property QS_auftragpos_id As Integer = -1 Property AvisoID As Integer = -1 Property QS_Abfertigungsart_ID As Integer = -1 Property QS_Abfertigungsart_Anzahl As Integer = 0 End Class Public Class cAvisoVorpapier Property vp_AvisoId As Integer Property vp_Art As String = "T1" Property vp_Nr As String = "" End Class Public Class cAviso Property AvisoID As Integer Property Datum As Date Property LKW_Nr As String Property Telefonisch As String Property Änderungen As String Property Info As String Property Status As Integer Property Auftraggeber As String Property Auftraggeber_KdNr As String = "" Property Frächter As String Property Frächter_KdNr As String = "" Property letzterMitarbeiter As String Property LetzterMitarbeiterId As Object = Nothing Property Ankunft As Date Property Freigabe As Date Property Vorbereitet As Date Property Vorgeschrieben As Date Property Dauer As Integer Property AvisoEingang As Date Property Grenzstelle As String Property LKW_fertig As Boolean Property Handling As Boolean = False Property AvisoTVHinweis As String = "" Property Sendungen_Gesamtanzahl As Integer = 0 Property Sammelakt As Boolean = False Property Buero As String = "" Property ImEx As String = "" Property Abgeschlossen As Boolean = False Property FIRMA As String = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Property Durchgangszollstelle1 As Object = Nothing Property Durchgangszollstelle2 As Object = Nothing Property Durchgangszollstelle3 As Object = Nothing Property Durchgangszollstelle4 As Object = Nothing Property Durchgangszollstelle5 As Object = Nothing Property Durchgangszollstelle6 As Object = Nothing Property Ausgangszollstelle As Object = Nothing Property Zollstelle As Object = Nothing Property TransportTemperatur As Object = Nothing Property Zugmaschine As Object = Nothing Property FahrerHandy As Object = Nothing Property LKW_Nationalitaet As Object = Nothing Property DakosyRef As Object = Nothing Property TeamId As Object = Nothing Property Cluster As Object = Nothing Property Freigabe_Info As String = "" Property KdAuftragsNr_Avisierer As Object = Nothing Property KdAuftragsNr_Frachtfuehrer As Object = Nothing Property FreigabeFiliale As Object = Nothing Property VoraussichtlichesEintreffen As Object = Nothing Property VORSYSTEM As Object = Nothing Property Warenort As Boolean = False Property ZOLLDigitalEingereicht As Boolean = False Property Transportmittelart As Object = Nothing Property WeiterleitungTextTV As String = "" Property VerwahrungStatus As Integer Property VerwahrungStatusDate As Object = Nothing Public VORPAPIERE As New List(Of cAvisoVorpapier) Shared Function getAvisoById(hID, Optional hSQL = "") As cAviso Dim AVISODAL As New cAvisoDAL Return AVISODAL.LesenAviso(hID, hSQL) End Function Shared Function getFirmaByAvisoId(AvisoId) As String Dim SQL As New SQL Return SQL.getValueTxtBySql("SELECT TOP 1 Firma FROM AVISO WHERE AvisoId=" & AvisoId, "AVISO") End Function Shared Function getAVISO_List(Optional Standort = "SUB") As DataTable 'Optional FIRMA = "VERAG") As DataTable Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim sqlWhere = "" Select Case Standort Case "SUB" : sqlWhere = " AND ( FIRMA='VERAG' OR CLUSTER='FRONTOFFICE' ) AND ImEx IN ('IMPORT','') AND Grenzstelle = '" & Standort & "' " Case "ATILLA" : sqlWhere = " AND ( FIRMA='ATILLA') " Case "IMEX" : sqlWhere = " AND ( FIRMA='IMEX') " Case "UNISPED" : sqlWhere = " AND ( FIRMA='UNISPED') " Case Else : sqlWhere = " AND FIRMA='VERAG' AND ( Grenzstelle='" & Standort & "') " End Select ' Standort = "" Dim dt = SQL.loadDgvBySql("SELECT TOP 1000 AvisoID, Status, LKW_Nr, Auftraggeber, Frächter,VoraussichtlichesEintreffen, AvisoEingang, Ankunft, Dauer, Grenzstelle,letzterMitarbeiter, CASE WHEN [LKW_fertig] = 1 THEN 'OK' ELSE '' END AS [LKW_fertig], Datum, Vorbereitet, Vorgeschrieben, Freigabe, Telefonisch, Info,Handling,AvisoTVHinweis,DATEDIFF(DAY,getdate(),[VoraussichtlichesEintreffen]) TageBisEintreffen FROM Aviso WHERE 1=1 " & sqlWhere & " AND Status = 3 ORDER BY Ankunft ASC, AvisoEingang ASC, Datum ASC", "AVISO") Return dt End Function 'Shared Function getAviso_WEB(hID, Optional where = "") As cAviso ' sadf ' Dim AVISODAL As New cAvisoDAL ' Return AVISODAL.LesenAviso(hID, hSQL) 'End Function Public Shared Function GET_KDLIST_WEB(ART As String, KundenNr As Integer, Optional Status() As Integer = Nothing, Optional von As Object = Nothing, Optional bis As Object = Nothing, Optional Absender As String = "", Optional Empfänger As String = "", Optional LKW_Nr As String = "", Optional KdAuftragsNr As String = "") As DataTable Dim dt As New DataTable Dim SQL As New SQL Try Dim sqlWHERE = "" ' sqlWHERE &= " AND KundenNr LIKE @KundenNr" If LKW_Nr <> "" Then sqlWHERE &= " AND LKW_Nr LIKE @LKW_Nr" If Empfänger <> "" Then sqlWHERE &= " AND Empfänger LIKE @Empfänger" If Absender <> "" Then sqlWHERE &= " AND Absender LIKE @Absender" If KdAuftragsNr <> "" Then sqlWHERE &= " AND KdAuftragsNr LIKE @KdAuftragsNr" If von IsNot Nothing Then If bis IsNot Nothing Then sqlWHERE &= " AND AvisoEingang BETWEEN @AvisoEingang AND @AvisoEingangBIS" Else sqlWHERE &= " AND AvisoEingang >= @AvisoEingang" End If End If 'Alle Einträge in Status druchlaufen Dim statusWhere = "" If Status IsNot Nothing AndAlso Status.Count > 0 Then statusWhere = " AND Status IN (" For Each st In Status statusWhere &= "'" & st & "'," Next statusWhere = statusWhere.Substring(0, statusWhere.Length - 1) ' Beistrich weg statusWhere &= ") " End If 'Art des Kunden Dim sqlstr = "" Select Case ART Case "AVISIERER" sqlstr = "SELECT TOP 1000 * FROM [AVISO] WHERE (SELECT count(*) FROM tblSendungen where AvisoID=tblSnd_AvisoID AND (tblSnd_AuftraggeberKdNr=@KundenNr OR tblSnd_AvisiererKdNr=@KundenNr OR tblSnd_FrachtfuehrerKdNr=@KundenNr))>0 " Case "EMPFAENGER" sqlstr = "SELECT TOP 1000 * FROM [AVISO] WHERE (SELECT count(*) FROM tblSendungen where AvisoID=tblSnd_AvisoID AND (tblSnd_EmpfaengerKdNr = @KundenNr OR tblSnd_AbsenderKdNr =@KundenNr OR tblSnd_AuftraggeberKdNr=@KundenNr OR tblSnd_AvisiererKdNr=@KundenNr ))>0 " Case Else 'Default, alle KdNr-Felder sqlstr = "SELECT TOP 1000 * FROM [AVISO] WHERE (SELECT count(*) FROM tblSendungen where AvisoID=tblSnd_AvisoID AND ( tblSnd_AbsenderKdNr =@KundenNr OR tblSnd_EmpfaengerKdNr = @KundenNr OR tblSnd_AuftraggeberKdNr=@KundenNr OR tblSnd_AvisiererKdNr=@KundenNr OR tblSnd_FrachtfuehrerKdNr=@KundenNr ))>0 " End Select Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KundenNr", KundenNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LKW_Nr", LKW_Nr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Empfänger", Empfänger)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Absender", Absender)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KdAuftragsNr", KdAuftragsNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisoEingang", von)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisoEingangBIS", bis)) 'list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Status", Status)) dt = SQL.loadDgvBySql_Param(sqlstr & sqlWHERE & statusWhere & " ORDER BY Status desc, Ankunft, Freigabe, Datum ", "AVISO",, list) Catch ex As Exception MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) End Try Return dt End Function Public Function getSENDUNG_LIST() As List(Of VERAG_PROG_ALLGEMEIN.cSendungen) Dim SENDUNG_LIST As New List(Of VERAG_PROG_ALLGEMEIN.cSendungen) VERAG_PROG_ALLGEMEIN.cSendungen.LOAD_LIST(SENDUNG_LIST, -1, AvisoID) 'LÄDT alle SENDUNGSDATEN Return SENDUNG_LIST End Function Sub UPDATE_FahrerHandy(FahrerHandy As String) If AvisoID <= 0 Then Exit Sub If If(FahrerHandy, "") = "" Then Exit Sub Me.FahrerHandy = FahrerHandy Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL SQL.doSQL("UPDATE AVISO SET FahrerHandy='" & FahrerHandy & "' WHERE AvisoId=" & AvisoID, "AVISO") End Sub Sub UPDATE_FreigabeInfo(Freigabe_Info As String) If AvisoID <= 0 Then Exit Sub Me.Freigabe_Info = Freigabe_Info Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL SQL.doSQL("UPDATE AVISO SET Freigabe_Info='" & Freigabe_Info & "' WHERE AvisoId=" & AvisoID, "AVISO") End Sub Sub LOAD_Vorpapiere() If AvisoID <= 0 Then Exit Sub VORPAPIERE.Clear() Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim dt = SQL.loadDgvBySql("SELECT * FROM tblAvisoVorpapier WHERE vp_AvisoId='" & AvisoID & "'", "AVISO") If dt IsNot Nothing Then For Each r In dt.Rows Dim VP As New cAvisoVorpapier VP.vp_AvisoId = AvisoID VP.vp_Nr = r("vp_Nr") VP.vp_Art = r("vp_Art") VORPAPIERE.Add(VP) Next End If End Sub End Class Public Class cDruckAviso Property Datum As String Property Status As String Property LetzterMitarbeiter As String Property LKW_Nr As String Property Fraechter As String Property Auftraggeber As String Property Ankunft As String Property Freigabe As String Property Dauer As String Property Info As String Property Aenderungen As String Property Telefonisch As String Property AvisoEingang As String Property Grenzstelle As String End Class Public Class cAvisoDAL Public Function LesenAviso(hID As Integer, hSQL As String) As cAviso 'Dim FIRMA = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If hID > 0 Then sql = String.Format("SELECT * FROM Aviso WHERE AvisoID = {0} ", hID) 'If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA <> "" Then ' sql = String.Format("SELECT * FROM Aviso WHERE AvisoID = {0} AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' ", hID) 'Else ' sql = String.Format("SELECT * FROM Aviso WHERE AvisoID = {0} ", hID) 'End If Else sql = hSQL End If If sql = "" Then Return Nothing 'weder ID noch hSQL Dim daten As cAviso = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cAviso() daten.AvisoID = VarToInt(dr.Item("AvisoID")) daten.Datum = CDate(VarToDate(dr.Item("Datum"))) daten.LKW_Nr = VarToStr(dr.Item("LKW_Nr")) daten.Telefonisch = VarToStr(dr.Item("Telefonisch")) daten.Änderungen = VarToStr(dr.Item("Änderungen")) daten.Info = VarToStr(dr.Item("Info")) daten.Status = VarToInt(dr.Item("Status")) daten.Auftraggeber = VarToStr(dr.Item("Auftraggeber")) daten.Auftraggeber_KdNr = CStr(VarToInt(dr.Item("Auftraggeber_KdNr"))) daten.Frächter_KdNr = CStr(VarToInt(dr.Item("Frächter_KdNr"))) daten.Frächter = VarToStr(dr.Item("Frächter")) daten.letzterMitarbeiter = VarToStr(dr.Item("letzterMitarbeiter")) daten.Ankunft = CDate(VarToDate(dr.Item("Ankunft"))) daten.Freigabe = CDate(VarToDate(dr.Item("Freigabe"))) daten.Vorbereitet = CDate(VarToDate(dr.Item("Vorbereitet"))) daten.Vorgeschrieben = CDate(VarToDate(dr.Item("Vorgeschrieben"))) daten.AvisoEingang = CDate(VarToDate(dr.Item("AvisoEingang"))) daten.Dauer = VarToInt(dr.Item("Dauer")) daten.Grenzstelle = VarToStr(dr.Item("Grenzstelle")) daten.LKW_fertig = VarToBool(dr.Item("LKW_fertig")) daten.Handling = VarToBool(dr.Item("Handling")) daten.AvisoTVHinweis = VarToStr(dr.Item("AvisoTVHinweis")) daten.Sammelakt = VarToBool(dr.Item("Sammelakt")) daten.Buero = VarToStr(dr.Item("Buero")) daten.ImEx = VarToStr(dr.Item("ImEx")) daten.Abgeschlossen = VarToBool(dr.Item("Abgeschlossen")) daten.FIRMA = VarToStr(dr.Item("FIRMA")) daten.Durchgangszollstelle1 = VarToStr(dr.Item("Durchgangszollstelle1")) daten.Durchgangszollstelle2 = VarToStr(dr.Item("Durchgangszollstelle2")) daten.Durchgangszollstelle3 = VarToStr(dr.Item("Durchgangszollstelle3")) daten.Durchgangszollstelle4 = VarToStr(dr.Item("Durchgangszollstelle4")) daten.Durchgangszollstelle5 = VarToStr(dr.Item("Durchgangszollstelle5")) daten.Durchgangszollstelle6 = VarToStr(dr.Item("Durchgangszollstelle6")) daten.Ausgangszollstelle = VarToStr(dr.Item("Ausgangszollstelle")) daten.Zollstelle = VarToStr(dr.Item("Zollstelle")) daten.TransportTemperatur = VarToStr(dr.Item("TransportTemperatur")) daten.Zugmaschine = VarToStr(dr.Item("Zugmaschine")) daten.FahrerHandy = VarToStr(dr.Item("FahrerHandy")) daten.LKW_Nationalitaet = VarToStr(dr.Item("LKW_Nationalitaet")) daten.DakosyRef = VarToStr(dr.Item("DakosyRef")) daten.LetzterMitarbeiterId = If(dr.Item("letzterMitarbeiterid") Is DBNull.Value, Nothing, dr.Item("letzterMitarbeiterid")) daten.TeamId = If(dr.Item("TeamId") Is DBNull.Value, Nothing, dr.Item("TeamId")) daten.Cluster = If(dr.Item("Cluster") Is DBNull.Value, Nothing, dr.Item("Cluster")) daten.Freigabe_Info = VarToStr(dr.Item("Freigabe_Info")) daten.KdAuftragsNr_Frachtfuehrer = If(dr.Item("KdAuftragsNr_Frachtfuehrer") Is DBNull.Value, Nothing, dr.Item("KdAuftragsNr_Frachtfuehrer")) daten.KdAuftragsNr_Avisierer = If(dr.Item("KdAuftragsNr_Avisierer") Is DBNull.Value, Nothing, dr.Item("KdAuftragsNr_Avisierer")) daten.FreigabeFiliale = If(dr.Item("FreigabeFiliale") Is DBNull.Value, Nothing, dr.Item("FreigabeFiliale")) daten.VoraussichtlichesEintreffen = If(dr.Item("VoraussichtlichesEintreffen") Is DBNull.Value, Nothing, dr.Item("VoraussichtlichesEintreffen")) daten.VORSYSTEM = If(dr.Item("VORSYSTEM") Is DBNull.Value, Nothing, dr.Item("VORSYSTEM")) daten.Warenort = If(dr.Item("Warenort") Is DBNull.Value, Nothing, dr.Item("Warenort")) daten.ZOLLDigitalEingereicht = If(dr.Item("ZOLLDigitalEingereicht") Is DBNull.Value, Nothing, dr.Item("ZOLLDigitalEingereicht")) daten.Transportmittelart = If(dr.Item("Transportmittelart") Is DBNull.Value, Nothing, dr.Item("Transportmittelart")) daten.WeiterleitungTextTV = VarToStr(dr.Item("WeiterleitungTextTV")) daten.VerwahrungStatus = VarToInt(dr.Item("VerwahrungStatus")) daten.VerwahrungStatusDate = If(dr.Item("VerwahrungStatusDate") Is DBNull.Value, Nothing, dr.Item("VerwahrungStatusDate")) End If dr.Close() End Using End Using conn.Close() Return daten End Function Public Function Suche_LKW(LKW_Nr As String) As String 'hier wird nachgesehen, wann diese LKW-Nr zuletzt eingetragen war Suche_LKW = "" Dim sql As String = "SELECT * FROM Aviso WHERE LKW_Nr = '" & LKW_Nr & "' AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' ORDER BY Datum DESC" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() 'Hinweis erfolgt nur, wenn LKW in den letzten 4 Tagen gefahren ist If CDate(VarToDate(dr.Item("Datum"))) > Now.AddDays(-4) Then Suche_LKW = "Achtung: der LKW mit der Nr. " & LKW_Nr & " wurde bereits vor kurzem eingetragen - und zwar am " & Format(CDate(VarToDate(dr.Item("Datum"))), "ddd, dd.MM.yyyy - HH:mm") End If End If dr.Close() End Using End Using conn.Close() Return Suche_LKW End Function Public Function Suche_LKWStatus(LKW_Nr As String) As String 'hier wird nachgesehen, wann diese LKW-Nr zuletzt eingetragen war Suche_LKWStatus = "" Dim firma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA If firma = "" Then firma = "VERAG" If VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER <> "" Then firma = " AND ( FIRMA='" & firma & "' OR CLUSTER='" & VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER & "' ) " Else firma = " AND FIRMA='" & firma & "' " End If Dim sql As String = "SELECT * FROM Aviso WHERE LKW_Nr = '" & LKW_Nr & "' AND [Status] Not in (1,2) " & firma & " ORDER BY Datum DESC" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() Suche_LKWStatus = "Achtung: der LKW mit der Nr. " & LKW_Nr & " existiert bereits mit dem Status '" & cGlobal.getStatusText(VarToInt2(dr.Item("Status"))) & "', Eingetragen, am " & Format(CDate(VarToDate(dr.Item("Datum"))), "ddd, dd.MM.yyyy - HH:mm") End If dr.Close() End Using End Using conn.Close() Return Suche_LKWStatus End Function Public Function getAvisoInfo(AvisoID As Integer) As String Dim Info As String = "" Dim sql As String = "SELECT Info FROM Aviso WHERE AvisoID = '" & AvisoID & "' " Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() If Not dr.Item("Info") Is DBNull.Value Then Info = dr.Item("Info").ToString End If End If dr.Close() End Using End Using conn.Close() Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Suche_LKW'") End Try Return Info End Function Public Function VermerkExistsInAvisoByID(AvisoID As Integer, VermerkeCode As Integer) As Boolean 'hier wird nachgesehen, wann diese LKW-Nr zuletzt eingetragen war Dim b As Boolean = False Dim sql As String = "SELECT top 1 VermerkID FROM Vermerke WHERE AvisoID = '" & AvisoID & "' AND VermerkeCode = '" & VermerkeCode & "' " Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then b = True End If dr.Close() End Using End Using conn.Close() Return b End Function Public Function loadDataTableBySQL(hSQL As String, Optional timeout As Integer = 0) As DataTable Try Dim myTable = New DataTable() Dim conn As SqlConnection = cSqlDb.GetNewOpenConnectionAVISO() ' Using conn As SqlConnection = cSqlDb.GetNewOpenConnection() Using cmd As New SqlCommand(hSQL, conn) If timeout > 0 Then cmd.CommandTimeout = timeout Dim dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using conn.Close() ' End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message) End Try Return Nothing End Function Public Function loadDataTableBySQL_OLD(hSQL As String) As DataTable ' While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Using conn As New SqlConnection(cSqlDb.GetAVISOConnectionString) '= cDatenbank.GetNewOpenConnection() SqlConnection.ClearPool(conn) ' Wenn Beim Drucken die Vorschau abgebrochen wird, tritt ansonsten ein Fehler auf. Try conn.Open() Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using conn.Close() Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Aviso'") conn.Close() If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Programm wird aufgrund eines kritischen Problems beendet." & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) ' Environment.Exit(0) End If End Try End Using 'End While Return Nothing End Function Public Function getStandzeitInfo(maId As Integer, von As Integer, bis As Integer, Warnstufe As Integer) As DataTable Dim hSQL As String = "SELECT AvisoID,[LKW_Nr], [Ankunft], StandzeitWarnstufe " & " FROM Aviso INNERJOIN" & " WHERE [Status] = 3 AND LetzterMitarbeiterId = " & maId & " " & " AND DATEDIFF(MINUTE, Ankunft, getdate()) between " & von & " AND " & bis & " " & " AND (StandzeitWarnstufe is null OR StandzeitWarnstufe < " & Warnstufe & ")" Using conn As New SqlConnection(cSqlDb.GetAVISOConnectionString) '= cDatenbank.GetNewOpenConnection() SqlConnection.ClearPool(conn) ' Wenn Beim Drucken die Vorschau abgebrochen wird, tritt ansonsten ein Fehler auf. conn.Open() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using conn.Close() Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Aviso'") conn.Close() If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Programm wird aufgrund eines kritischen Problems beendet." & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try End Using Return Nothing End Function Public Sub UpdateWarnstufe(ByVal avisoID As Integer, ByVal Warnstufe As Integer) Dim sql = "UPDATE Aviso SET [StandzeitWarnstufe]= @Warnstufe WHERE AvisoID = @AvisoID" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Warnstufe", Warnstufe) cmd.Parameters.AddWithValue("@AvisoID", avisoID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Datensatz kann nicht gespeichert werden! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler UpdateWarnstufe") End Try End Using conn.Close() End Sub Public Sub UpdateAvisoTVHinweis(ByVal avisoID As Integer, ByVal AvisoTVHinweis As String) Dim sql = "UPDATE Aviso SET [AvisoTVHinweis]= @AvisoTVHinweis WHERE AvisoID = @AvisoID" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoTVHinweis", AvisoTVHinweis) cmd.Parameters.AddWithValue("@AvisoID", avisoID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Datensatz kann nicht gespeichert werden! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler UpdateWarnstufe") End Try End Using conn.Close() End Sub Public Sub addAenderung(AvisoID As Integer, Aenderung_Art As String, Aenderung_Text As String) Dim hAuswahl As String = " INSERT INTO Aenderungen " & " ([AvisoID], [Datum], [Mitarbeiter], [MitarbeiterId], [Aenderung_Art], [Aenderung_Text]) " & " VALUES (@AvisoID, @Datum, @Mitarbeiter, @MitarbeiterId, @Aenderung_Art, @Aenderung_Text)" Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoID", AvisoID) cmd.Parameters.AddWithValue("@Datum", Now) cmd.Parameters.AddWithValue("@Mitarbeiter", cGlobal.AktiverMitarbeiter.Mitarbeiter) cmd.Parameters.AddWithValue("@MitarbeiterId", cGlobal.AktiverMitarbeiter.MitarbeiterID) cmd.Parameters.AddWithValue("@Aenderung_Art", Aenderung_Art) cmd.Parameters.AddWithValue("@Aenderung_Text", Aenderung_Text) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Datensatz kann nicht gespeichert werden! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Aenderungen") End Try End Using conn.Close() End Sub Public Function SpeichernAviso(ByVal d As cAviso, Optional letzerMaIdAuto As Boolean = True) As Integer Dim hAuswahl As String Dim id As Integer = -1 If d.AvisoID <= 0 Then 'Neuanlage hAuswahl = "INSERT INTO Aviso " & "(Datum, LKW_Nr, Telefonisch, Änderungen, Info, Status, Auftraggeber, Frächter, letzterMitarbeiter, " & "Vorbereitet,Vorgeschrieben, Ankunft, Freigabe, Dauer, AvisoEingang, Grenzstelle, LKW_fertig,letzterMitarbeiterId,Handling,Sendungen_Gesamtanzahl,Sammelakt,Frächter_KdNr,Auftraggeber_KdNr,AvisoTVHinweis,Buero,Imex,Abgeschlossen,FIRMA, " & " Durchgangszollstelle1,Durchgangszollstelle2,Durchgangszollstelle3,Durchgangszollstelle4,Durchgangszollstelle5,Durchgangszollstelle6,Ausgangszollstelle,Zollstelle,TransportTemperatur,Zugmaschine,FahrerHandy,LKW_Nationalitaet,DakosyRef,TeamId,Cluster,Freigabe_Info,KdAuftragsNr_Frachtfuehrer,KdAuftragsNr_Avisierer,FreigabeFiliale,VoraussichtlichesEintreffen,Warenort,ZOLLDigitalEingereicht,Transportmittelart,WeiterleitungTextTV,VerwahrungStatus,VerwahrungStatusDate) VALUES (" & "@Datum, @LKW_Nr, @Telefonisch, @Änderungen, @Info, @Status, @Auftraggeber, @Frächter, @letzterMitarbeiter, " & "@Vorbereitet, @Vorgeschrieben, @Ankunft, @Freigabe, @Dauer, @AvisoEingang, @Grenzstelle, @LKW_fertig,@letzterMitarbeiterId,@Handling,@Sendungen_Gesamtanzahl,@Sammelakt,@Frächter_KdNr,@Auftraggeber_KdNr,@AvisoTVHinweis,@Buero,@Imex,@Abgeschlossen,@FIRMA," & "@Durchgangszollstelle1,@Durchgangszollstelle2,@Durchgangszollstelle3,@Durchgangszollstelle4,@Durchgangszollstelle5,@Durchgangszollstelle6,@Ausgangszollstelle,@Zollstelle,@TransportTemperatur,@Zugmaschine,@FahrerHandy,@LKW_Nationalitaet,@DakosyRef,@TeamId,@Cluster,@Freigabe_Info,@KdAuftragsNr_Frachtfuehrer,@KdAuftragsNr_Avisierer,@FreigabeFiliale,@VoraussichtlichesEintreffen,@Warenort,@ZOLLDigitalEingereicht,@Transportmittelart,@WeiterleitungTextTV,@VerwahrungStatus,@VerwahrungStatusDate); SELECT CAST(scope_identity() AS int);" Else id = d.AvisoID 'Änderung hAuswahl = String.Format( "UPDATE Aviso SET Datum = @Datum, LKW_Nr = @LKW_Nr, Telefonisch=@Telefonisch, Änderungen=@Änderungen, Info=@Info, Status=@Status, Auftraggeber=@Auftraggeber, Frächter=@Frächter, " & " letzterMitarbeiter = @letzterMitarbeiter, Vorbereitet=@Vorbereitet,Vorgeschrieben=@Vorgeschrieben, Ankunft = @Ankunft, Freigabe = @Freigabe, Dauer = @Dauer, AvisoEingang = @AvisoEingang, Grenzstelle=@Grenzstelle, LKW_fertig=@LKW_fertig, letzterMitarbeiterId=@letzterMitarbeiterId, Handling=@Handling,Sendungen_Gesamtanzahl=@Sendungen_Gesamtanzahl,Sammelakt=@Sammelakt,Frächter_KdNr=@Frächter_KdNr,Auftraggeber_KdNr=@Auftraggeber_KdNr,AvisoTVHinweis=@AvisoTVHinweis,Buero=@Buero,Imex=@Imex,Abgeschlossen=@Abgeschlossen, " & " Durchgangszollstelle1=@Durchgangszollstelle1,Durchgangszollstelle2=@Durchgangszollstelle2,Durchgangszollstelle3=@Durchgangszollstelle3,Durchgangszollstelle4=@Durchgangszollstelle4,Durchgangszollstelle5=@Durchgangszollstelle5,Durchgangszollstelle6=@Durchgangszollstelle6,Ausgangszollstelle=@Ausgangszollstelle,Zollstelle=@Zollstelle,TransportTemperatur=@TransportTemperatur,Zugmaschine=@Zugmaschine,FahrerHandy=@FahrerHandy, LKW_Nationalitaet=@LKW_Nationalitaet, DakosyRef=@DakosyRef,TeamId=@TeamId,Cluster=@Cluster,Freigabe_Info=@Freigabe_Info,KdAuftragsNr_Frachtfuehrer =@KdAuftragsNr_Frachtfuehrer,KdAuftragsNr_Avisierer=@KdAuftragsNr_Avisierer , FreigabeFiliale=@FreigabeFiliale,VoraussichtlichesEintreffen=@VoraussichtlichesEintreffen,Warenort=@Warenort,ZOLLDigitalEingereicht=@ZOLLDigitalEingereicht,Transportmittelart=@Transportmittelart,WeiterleitungTextTV=@WeiterleitungTextTV,VerwahrungStatus=@VerwahrungStatus,VerwahrungStatusDate=@VerwahrungStatusDate,FIRMA=@FIRMA" & " WHERE AvisoID = @AvisoID") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.Add("@Datum", SqlDbType.DateTime).Value = SQLNullDate(d.Datum) ' cmd.Parameters.AddWithValue("@Datum", SQLNullDate(d.Datum)) cmd.Parameters.AddWithValue("@LKW_Nr", d.LKW_Nr) cmd.Parameters.AddWithValue("@Telefonisch", d.Telefonisch) cmd.Parameters.AddWithValue("@Änderungen", d.Änderungen) cmd.Parameters.AddWithValue("@Info", d.Info) cmd.Parameters.AddWithValue("@Status", d.Status) cmd.Parameters.AddWithValue("@Auftraggeber", d.Auftraggeber) cmd.Parameters.AddWithValue("@Frächter", d.Frächter) cmd.Parameters.AddWithValue("@letzterMitarbeiter", d.letzterMitarbeiter) cmd.Parameters.Add("@Vorbereitet", SqlDbType.DateTime).Value = SQLNullDate(d.Vorbereitet) cmd.Parameters.Add("@Vorgeschrieben", SqlDbType.DateTime).Value = SQLNullDate(d.Vorgeschrieben) cmd.Parameters.Add("@Ankunft", SqlDbType.DateTime2).Value = SQLNullDate(d.Ankunft) cmd.Parameters.Add("@Freigabe", SqlDbType.DateTime2).Value = SQLNullDate(d.Freigabe) ' cmd.Parameters.AddWithValue("@Vorbereitet", SQLNullDate(d.Vorbereitet)) ' cmd.Parameters.AddWithValue("@Vorgeschrieben", SQLNullDate(d.Vorgeschrieben)) ' cmd.Parameters.AddWithValue("@Ankunft", d.Ankunft) ' cmd.Parameters.AddWithValue("@Freigabe", d.Freigabe) cmd.Parameters.AddWithValue("@Dauer", d.Dauer) cmd.Parameters.Add("@AvisoEingang", SqlDbType.DateTime).Value = SQLNullDate(d.AvisoEingang) ' cmd.Parameters.AddWithValue("@AvisoEingang", SQLNullDate(d.AvisoEingang)) cmd.Parameters.AddWithValue("@Grenzstelle", d.Grenzstelle) cmd.Parameters.AddWithValue("@LKW_fertig", d.LKW_fertig) cmd.Parameters.AddWithValue("@AvisoID", d.AvisoID) cmd.Parameters.AddWithValue("@letzterMitarbeiterId", If(letzerMaIdAuto, cGlobal.AktiverMitarbeiter.MitarbeiterID, IIf(IsNumeric(d.LetzterMitarbeiterId), d.LetzterMitarbeiterId, DBNull.Value))) cmd.Parameters.AddWithValue("@Handling", d.Handling) cmd.Parameters.AddWithValue("@Sendungen_Gesamtanzahl", d.Sendungen_Gesamtanzahl) cmd.Parameters.AddWithValue("@Sammelakt", d.Sammelakt) cmd.Parameters.AddWithValue("@Auftraggeber_KdNr", IIf(IsNumeric(d.Auftraggeber_KdNr), d.Auftraggeber_KdNr, DBNull.Value)) cmd.Parameters.AddWithValue("@Frächter_KdNr", IIf(IsNumeric(d.Frächter_KdNr), d.Frächter_KdNr, DBNull.Value)) cmd.Parameters.AddWithValue("@AvisoTVHinweis", d.AvisoTVHinweis) cmd.Parameters.AddWithValue("@Buero", If(d.Buero, "")) cmd.Parameters.AddWithValue("@Imex", d.ImEx) cmd.Parameters.AddWithValue("@Abgeschlossen", d.Abgeschlossen) cmd.Parameters.AddWithValue("@FIRMA", d.FIRMA) cmd.Parameters.AddWithValue("@Durchgangszollstelle1", If(d.Durchgangszollstelle1 Is Nothing, DBNull.Value, d.Durchgangszollstelle1)) cmd.Parameters.AddWithValue("@Durchgangszollstelle2", If(d.Durchgangszollstelle2 Is Nothing, DBNull.Value, d.Durchgangszollstelle2)) cmd.Parameters.AddWithValue("@Durchgangszollstelle3", If(d.Durchgangszollstelle3 Is Nothing, DBNull.Value, d.Durchgangszollstelle3)) cmd.Parameters.AddWithValue("@Durchgangszollstelle4", If(d.Durchgangszollstelle4 Is Nothing, DBNull.Value, d.Durchgangszollstelle4)) cmd.Parameters.AddWithValue("@Durchgangszollstelle5", If(d.Durchgangszollstelle5 Is Nothing, DBNull.Value, d.Durchgangszollstelle5)) cmd.Parameters.AddWithValue("@Durchgangszollstelle6", If(d.Durchgangszollstelle6 Is Nothing, DBNull.Value, d.Durchgangszollstelle6)) cmd.Parameters.AddWithValue("@Ausgangszollstelle", If(d.Ausgangszollstelle Is Nothing, DBNull.Value, d.Ausgangszollstelle)) cmd.Parameters.AddWithValue("@Zollstelle", If(d.Zollstelle Is Nothing, DBNull.Value, d.Zollstelle)) cmd.Parameters.AddWithValue("@TransportTemperatur", If(d.TransportTemperatur Is Nothing, DBNull.Value, d.TransportTemperatur)) cmd.Parameters.AddWithValue("@Zugmaschine", If(d.Zugmaschine Is Nothing, DBNull.Value, d.Zugmaschine)) cmd.Parameters.AddWithValue("@FahrerHandy", If(d.FahrerHandy Is Nothing, DBNull.Value, d.FahrerHandy)) cmd.Parameters.AddWithValue("@LKW_Nationalitaet", If(d.LKW_Nationalitaet Is Nothing, DBNull.Value, d.LKW_Nationalitaet)) cmd.Parameters.AddWithValue("@DakosyRef", If(d.DakosyRef Is Nothing, DBNull.Value, d.DakosyRef)) cmd.Parameters.AddWithValue("@TeamId", If(d.TeamId Is Nothing, DBNull.Value, d.TeamId)) cmd.Parameters.AddWithValue("@Cluster", If(d.Cluster Is Nothing, DBNull.Value, d.Cluster)) cmd.Parameters.AddWithValue("@Freigabe_Info", d.Freigabe_Info) cmd.Parameters.AddWithValue("@KdAuftragsNr_Frachtfuehrer", If(d.KdAuftragsNr_Frachtfuehrer Is Nothing, DBNull.Value, d.KdAuftragsNr_Frachtfuehrer)) cmd.Parameters.AddWithValue("@KdAuftragsNr_Avisierer", If(d.KdAuftragsNr_Avisierer Is Nothing, DBNull.Value, d.KdAuftragsNr_Avisierer)) cmd.Parameters.AddWithValue("@FreigabeFiliale", If(d.FreigabeFiliale Is Nothing, DBNull.Value, d.FreigabeFiliale)) cmd.Parameters.AddWithValue("@VoraussichtlichesEintreffen", If(d.VoraussichtlichesEintreffen Is Nothing, DBNull.Value, d.VoraussichtlichesEintreffen)) cmd.Parameters.AddWithValue("@Warenort", d.Warenort) cmd.Parameters.AddWithValue("@ZOLLDigitalEingereicht", d.ZOLLDigitalEingereicht) cmd.Parameters.AddWithValue("@Transportmittelart", If(d.Transportmittelart, "")) cmd.Parameters.AddWithValue("@WeiterleitungTextTV", d.WeiterleitungTextTV) cmd.Parameters.AddWithValue("@VerwahrungStatus", d.VerwahrungStatus) cmd.Parameters.AddWithValue("@VerwahrungStatusDate", If(d.VerwahrungStatusDate Is Nothing, DBNull.Value, d.VerwahrungStatusDate)) Try If d.AvisoID <= 0 Then id = (Convert.ToInt32(cmd.ExecuteScalar())) ' MsgBox(id) Else If Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then cmd.ExecuteNonQuery() End If Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Datensatz kann nicht gespeichert werden! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Aviso") End Try End Using conn.Close() Return id End Function Public Function SpeichernAvisoVorpapiere(ByVal AvisoId As Integer, VORPAPIERE As List(Of cAvisoVorpapier)) As Boolean SpeichernAvisoVorpapiere = True Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL If SQL.doSQL("DELETE tblAvisoVorpapier WHERE [vp_AvisoId]='" & AvisoId & "'", "AVISO") Then For Each VP In VORPAPIERE If Not SQL.doSQL("INSERT INTO tblAvisoVorpapier (vp_AvisoId, vp_Art,vp_Nr) VALUES ('" & AvisoId & "','" & VP.vp_Art & "','" & VP.vp_Nr & "') ", "AVISO") Then SpeichernAvisoVorpapiere = False Next Else SpeichernAvisoVorpapiere = True = False End If End Function Public Function setQSAufträge(ByVal daten As List(Of cQSAufträge)) As Boolean For Each d As cQSAufträge In daten Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Dim sql As String = " begin tran" & " if exists (select * from tblQS_Auftragspositionen with (updlock,serializable) where QS_Abfertigungsart_ID = @QS_Abfertigungsart_ID AND AvisoID = @AvisoID) " & " begin " & " UPDATE tblQS_Auftragspositionen " & " SET QS_Abfertigungsart_Anzahl=@QS_Abfertigungsart_Anzahl " & " WHERE QS_Abfertigungsart_ID = @QS_Abfertigungsart_ID AND AvisoID = @AvisoID " & " End " & " Else " & " begin " & " INSERT INTO tblQS_Auftragspositionen " & " ([AvisoID],[QS_Abfertigungsart_ID],[QS_Abfertigungsart_Anzahl]) " & " VALUES(@AvisoID, @QS_Abfertigungsart_ID, @QS_Abfertigungsart_Anzahl) " & " End " & " commit tran " Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoID", d.AvisoID) cmd.Parameters.AddWithValue("@QS_Abfertigungsart_ID", d.QS_Abfertigungsart_ID) cmd.Parameters.AddWithValue("@QS_Abfertigungsart_Anzahl", d.QS_Abfertigungsart_Anzahl) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Datensatz kann nicht gespeichert werden! " & ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm") Return False End Try End Using ' conn.Close() Next Return True End Function Public Function insertSendungEmpty(ByVal AvisoID As Integer, ByVal PosUnterNr As Integer, ByVal FilialenNr As Integer, ByVal AbfertigungsNr As Object, ByVal UnterNr As Integer, ByVal tblSnd_Abfertigungsart_ID As Object, Optional tblSnd_AuftraggeberKdNr As Object = Nothing, Optional tblSnd_Auftraggeber As Object = Nothing, Optional tblSnd_Fremdspedition As Boolean = False, Optional ByRef sndId As Integer = -1) As Boolean Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Dim sql As String = " INSERT INTO tblSendungen " & " ([tblSnd_PosUnterNr],[tblSnd_AvisoID],FilialenNr,AbfertigungsNr,UnterNr,tblSnd_Abfertigungsart_ID,tblSnd_AuftraggeberKdNr,tblSnd_Auftraggeber,tblSnd_Fremdspedition,tblSnd_QS_MA,LetzterMitarbeiterId,LetzterMitarbeiter) " & " VALUES(@PosUnterNr,@AvisoID,@FilialenNr,@AbfertigungsNr,@UnterNr,@tblSnd_Abfertigungsart_ID,@tblSnd_AuftraggeberKdNr,@tblSnd_Auftraggeber,@tblSnd_Fremdspedition,@tblSnd_QS_MA,@LetzterMitarbeiterId,@LetzterMitarbeiter) " Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoID", AvisoID) cmd.Parameters.AddWithValue("@PosUnterNr", PosUnterNr) cmd.Parameters.AddWithValue("@FilialenNr", FilialenNr) cmd.Parameters.AddWithValue("@AbfertigungsNr", AbfertigungsNr) cmd.Parameters.AddWithValue("@UnterNr", UnterNr) cmd.Parameters.AddWithValue("@tblSnd_Abfertigungsart_ID", IIf(tblSnd_Abfertigungsart_ID Is Nothing, DBNull.Value, tblSnd_Abfertigungsart_ID)) cmd.Parameters.AddWithValue("@tblSnd_AuftraggeberKdNr", IIf(tblSnd_AuftraggeberKdNr Is Nothing, DBNull.Value, tblSnd_AuftraggeberKdNr)) cmd.Parameters.AddWithValue("@tblSnd_Auftraggeber", IIf(tblSnd_Auftraggeber Is Nothing, DBNull.Value, tblSnd_Auftraggeber)) cmd.Parameters.AddWithValue("@tblSnd_Fremdspedition", tblSnd_Fremdspedition) If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "QS" Then cmd.Parameters.AddWithValue("@tblSnd_QS_MA", VERAG_PROG_ALLGEMEIN.cAllgemein.USRID) Else cmd.Parameters.AddWithValue("@tblSnd_QS_MA", DBNull.Value) End If cmd.Parameters.AddWithValue("@LetzterMitarbeiter", VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME) cmd.Parameters.AddWithValue("@LetzterMitarbeiterId", VERAG_PROG_ALLGEMEIN.cAllgemein.USRID) Try cmd.ExecuteNonQuery() If sndId <= 0 Then Dim newcmd As New SqlCommand("SELECT @@IDENTITY", conn) sndId = CInt(newcmd.ExecuteScalar) End If Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm") Return False End Try End Using Return True End Function Public Function reIndexSendungen(ByVal AvisoID As Integer) As Boolean Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Dim sql As String = " DECLARE @counter int " & " SET @counter = 0 " & " UPDATE AVISO_new.dbo.tblSendungen " & " SET @counter = tblSnd_PosUnterNr = @counter + 1 " & " WHERE tblSnd_AvisoID = @AvisoID " Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoID", AvisoID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Programm") Return False End Try End Using Return True End Function Public Sub LöschenAviso(ByVal hID As Integer) Exit Sub ' LöschenAviso_Vermerke(hID) ' LöschenAviso_Aenderungen(hID) LöschenAviso_Aviso(hID) End Sub Public Sub LöschenAviso_Vermerke(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Vermerke WHERE AvisoID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Vermerke-Eintrag kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub Public Sub LöschenAviso_Aenderungen(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Aenderungen WHERE AvisoID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Aenderungen-Eintrag kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub Public Sub LöschenAviso_Aviso(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Aviso WHERE AvisoID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Aviso-Eintrag kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub Public Function LeseAvisoFürDruck(hSQL As String, hIntern As Boolean) As List(Of cDruckAviso) Dim datenListe As List(Of cDruckAviso) = New List(Of cDruckAviso) Dim datensatz As cDruckAviso Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If (dr.HasRows) Then While dr.Read() datensatz = New cDruckAviso() datensatz.Datum = Format(CDate(dr.Item("Datum")), "dd.MM.yyyy") Select Case VarToInt(dr.Item("Status")) Case cGlobal.Status_Erfasst datensatz.Status = "erfasst" Case cGlobal.Status_Ankunft datensatz.Status = "Ankunft" Case cGlobal.Status_Freigegeben datensatz.Status = "freigegeben" Case cGlobal.Status_NichtEingetroffen datensatz.Status = "LKW n.e." Case Else datensatz.Status = "unbekannt" End Select datensatz.LetzterMitarbeiter = dr.Item("LetzterMitarbeiter").ToString datensatz.LKW_Nr = dr.Item("LKW_Nr").ToString datensatz.Fraechter = dr.Item("Frächter").ToString datensatz.Auftraggeber = dr.Item("Auftraggeber").ToString datensatz.Grenzstelle = dr.Item("Grenzstelle").ToString datensatz.Telefonisch = VarToStr(dr.Item("Telefonisch")) If CDate(VarToDate(dr.Item("Ankunft"))) = LeerDatum Then datensatz.Ankunft = "" Else datensatz.Ankunft = Format(CDate(dr.Item("Ankunft")), "dd.MM. HH:mm") End If If CDate(VarToDate(dr.Item("Freigabe"))) = LeerDatum Then datensatz.Freigabe = "" Else datensatz.Freigabe = Format(CDate(dr.Item("Freigabe")), "dd.MM. HH:mm") End If If CDate(VarToDate(dr.Item("AvisoEingang"))) = LeerDatum Then datensatz.Freigabe = "" Else datensatz.Freigabe = Format(CDate(dr.Item("AvisoEingang")), "dd.MM. HH:mm") End If If VarToInt(dr.Item("Dauer")) = 0 Then datensatz.Dauer = "" Else datensatz.Dauer = Minuten_auf_Text(VarToInt(dr.Item("Dauer"))) End If If CDate(VarToDate(dr.Item("AvisoEingang"))) = LeerDatum Then datensatz.AvisoEingang = "" Else datensatz.AvisoEingang = Format(CDate(dr.Item("AvisoEingang")), "dd.MM. HH:mm") End If datensatz.Grenzstelle = dr.Item("Grenzstelle").ToString 'je nach Listenauswahl werden manche Felder unterschiedlich befüllt If hIntern Then datensatz.Aenderungen = dr.Item("Änderungen").ToString datensatz.Info = dr.Item("Info").ToString Else 'das Feld 'Änderungen' wird hier "mißbraucht" (schnelle Lösung) If CDate(VarToDate(dr.Item("AvisoEingang"))) = LeerDatum Then datensatz.Aenderungen = "" Else datensatz.Aenderungen = Format(CDate(dr.Item("AvisoEingang")), "dd.MM. HH:mm") End If 'ins Infofeld kommen die Vermerke Dim hVermerke As New cVermerkeDAL datensatz.Info = hVermerke.Vermerke_einlesen(VarToInt(dr.Item("AvisoID"))) End If datenListe.Add(datensatz) End While End If dr.Close() End Using End Using conn.Close() Return datenListe End Function Public Function Check_Nicht_eingetroffen(hSQL As String) As Integer 'Hier werden alle als Urlaub gekennzeichneten Tage zusammengezählt Check_Nicht_eingetroffen = 0 Dim sql As String = hSQL Dim AvisoDAL As New cAvisoDAL Using conn As New SqlConnection(cSqlDb.GetAVISOConnectionString) Try SqlConnection.ClearPool(conn) conn.Open() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Dim av As New cAviso av = AvisoDAL.LesenAviso(VarToInt(dr.Item("AvisoID")), "") av.Änderungen = "automatisch auf 'LKW nicht eingetroffen' gestellt am " & Format(Now, "dd.MM.yyyy HH:mm") & ", da bereits länger als 10 Tage offen" & vbCrLf & av.Änderungen av.letzterMitarbeiter = "Automatik" av.Status = cGlobal.Status_NichtEingetroffen Dim tmpid = AvisoDAL.SpeichernAviso(av) AvisoDAL.addAenderung(tmpid, "automatisch auf 'LKW nicht eingetroffen' gestellt", "automatisch auf 'LKW nicht eingetroffen' gestellt am " & Format(Now, "dd.MM.yyyy HH:mm") & ", da bereits länger als 10 Tage offen") VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(av.AvisoID, -1, 3, "B", av.LetzterMitarbeiterId, "automatisch auf 'LKW nicht eingetroffen gesetzt", 0,, "automatisch auf 'LKW nicht eingetroffen' gestellt am " & Format(Now, "dd.MM.yyyy HH:mm") & ", da bereits länger als 10 Tage offen") Check_Nicht_eingetroffen += 1 End While dr.Close() End Using End Using Catch ex As Exception MsgBox("Fehler in der Function Check_Nicht_eingetroffen:" & vbCrLf & vbCrLf & ex.Message & vbCrLf & vbCrLf & "Der Vorgang wird abgebrochen!", MsgBoxStyle.Exclamation) Check_Nicht_eingetroffen = 0 Exit Try Finally conn.Close() End Try End Using Return Check_Nicht_eingetroffen End Function Public Function Anzahl_Aviso_ermitteln(hSQL As String) As Integer 'Hier werden alle als Urlaub gekennzeichneten Tage zusammengezählt Anzahl_Aviso_ermitteln = 0 Dim sql As String = hSQL Dim daten As cAviso = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError() Try Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Anzahl_Aviso_ermitteln += 1 End While dr.Close() End Using End Using conn.Close() Catch ex As Exception 'MsgBox("Fehler in der Function Anzahl_Aviso_ermitteln:" & vbCrLf & vbCrLf & ex.Message & vbCrLf & vbCrLf & "Der Vorgang wird abgebrochen!", MsgBoxStyle.Exclamation) Return 0 Exit Try End Try Return Anzahl_Aviso_ermitteln End Function End Class Public Class cVermerk Property VermerkID As Integer Property AvisoID As Integer Property SendungID As Integer = -1 Property VermerkArt As String = "A" Property Datum As Date Property Mitarbeiter As String Property MitarbeiterId As Integer Property Hinweis_Vermerk As String Property VermerkCodeId As Integer Property VorauskasseId As Object = Nothing Property Beschreibung As String = "" Property SMSId As Integer Property SMSStatus As Integer Property Geloescht As Boolean Property AAS_Warnstufe As Boolean Property HintergrundVermerk As Boolean End Class Public Class cVermerkeDAL Public Function LesenVermerk(hID As Integer, hSQL As String) As cVermerk 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If hID > 0 Then sql = String.Format("SELECT * FROM Vermerke WHERE VermerkID = {0}", hID) Else sql = hSQL End If Dim daten As cVermerk = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cVermerk() daten.VermerkID = VarToInt(dr.Item("VermerkID")) daten.AvisoID = VarToInt(dr.Item("AvisoID")) daten.Datum = CDate(VarToDate(dr.Item("Datum"))) daten.Hinweis_Vermerk = VarToStr(dr.Item("Hinweis_Vermerk")) daten.Mitarbeiter = VarToStr(dr.Item("Mitarbeiter")) daten.VermerkCodeId = VarToInt(dr.Item("VermerkeCode")) daten.SendungID = VarToInt(dr.Item("SendungID")) daten.VermerkArt = VarToStr(dr.Item("VermerkArt")) daten.VorauskasseId = VarToInt(dr.Item("VorauskasseId")) daten.SMSId = VarToInt(dr.Item("SMSId")) daten.SMSStatus = VarToInt(dr.Item("SMSstatus")) daten.Geloescht = VarToBool(dr.Item("Geloescht")) daten.AAS_Warnstufe = VarToBool(dr.Item("AAS_Warnstufe")) daten.HintergrundVermerk = VarToBool(dr.Item("HintergrundVermerk")) End If dr.Close() End Using End Using conn.Close() Return daten End Function Public Function Anzeigen_Vermerke(hSQL As String) As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Vermerke'") ' If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet ' MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) ' Environment.Exit(0) ' End If End Try conn.Close() End While Return Nothing End Function Shared Function insertSendungsVermerk(SendungID As Integer, AvisoID As Integer, Text As String, VermerkCodeId As Integer, Optional Beschreibung As String = "", Optional VorauskasseId As Object = Nothing, Optional addAuto As Boolean = False) As Integer 'Daten zuweisen und speichern Dim myVermerk As New cVermerk myVermerk.VermerkID = 0 myVermerk.AvisoID = AvisoID myVermerk.Datum = Now myVermerk.Mitarbeiter = cGlobal.AktiverMitarbeiter.Mitarbeiter & If(addAuto, " (AUTO)", "") myVermerk.MitarbeiterId = cGlobal.AktiverMitarbeiter.MitarbeiterID myVermerk.Hinweis_Vermerk = Text myVermerk.VermerkCodeId = VermerkCodeId 'myVermerk.her = VermerkCodeId myVermerk.SendungID = SendungID If VorauskasseId IsNot Nothing AndAlso VorauskasseId IsNot DBNull.Value Then myVermerk.VorauskasseId = VorauskasseId myVermerk.VermerkArt = "S" Dim VermerkeDAL As New cVermerkeDAL insertSendungsVermerk = VermerkeDAL.SpeichernVermerk(myVermerk) If myVermerk.VermerkCodeId = 18 Then VermerkeDAL.UpdateLKW(myVermerk.AvisoID, False) End If End Function Public Function loadTableMyAviso(maId As Integer) As DataTable ' While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Try Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() Dim sql As String = " SELECT AvisoID, [Status],CASE WHEN LetzterMitarbeiterId=@maId then '0' ELSE '1' END as [statVorb], LKW_Nr, Dauer, Datum, AvisoEingang, Ankunft, Grenzstelle, Freigabe, LetzterMitarbeiterId AS maId, CASE WHEN LetzterMitarbeiterId=@maId then '0' ELSE '1' END as Vorbereitung,LetzterMitarbeiter,CASE WHEN [LKW_fertig] = 1 THEN 'OK' ELSE '' END AS [LKW_fertig],AvisoTVHinweis " & " FROM Aviso " & " WHERE ( Status IN (0, 3, 4, 5) OR ( Status = 1 AND [Abgeschlossen] = 0 )) " & " AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND (LetzterMitarbeiterId=@maId OR " & " AVISOid IN ( SELECT distinct(tblSnd_AvisoID) FROM [tblSendungen] WHERE tblSnd_inbearbeitung=1 AND tblSnd_Bearbeitung_MaId=@maId) ) " & "ORDER BY case " & " when [Status] =3 then 0 " & " when [Status] =1 then 1 " & " when [Status] =99 then 2 " & " when [Status] =4 then 3 " & " when [Status] =5 then 4 " & " when [Status] =0 then 5 " & " END, Ankunft " Using cmd As New SqlCommand(sql, conn) 'Using dr As SqlDataReader = cmd.ExecuteReader() Dim adapter As New SqlDataAdapter(cmd) 'cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@maId", maId) 'Add parameters, e.g. adapter.ContinueUpdateOnError = True 'Get the data. adapter.Fill(myTable) 'dr.Close() ' End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Vermerke'") ' If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet 'MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) ' Environment.Exit(0) 'End If End Try conn.Close() ' End While Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Vermerke'") End Try Return Nothing End Function Public Function loadTableMyAvisoOLD(maId As Integer) As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL ' command As New SqlCommand("sproc name here", connection), ' adapter As New SqlDataAdapter(command) Using cmd As New SqlCommand("spmyaviso2", conn) 'Using dr As SqlDataReader = cmd.ExecuteReader() Dim adapter As New SqlDataAdapter(cmd) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@maId", maId) 'Add parameters, e.g. adapter.ContinueUpdateOnError = True 'Get the data. adapter.Fill(myTable) 'dr.Close() ' End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Vermerke'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Function SpeichernVermerk(ByVal d As cVermerk) As Integer SpeichernVermerk = -1 Dim hAuswahl As String If d.VermerkID = 0 Then 'Neuanlage hAuswahl = "INSERT INTO Vermerke " & "(AvisoID,VermerkArt,SendungID, Datum, Mitarbeiter, Hinweis_Vermerk, VermerkeCode,MitarbeiterId,Beschreibung,VorauskasseId,SMSId,SMSStatus,Geloescht,AAS_Warnstufe,HintergrundVermerk) VALUES (@AvisoID,@VermerkArt, @SendungID, @Datum, @Mitarbeiter, @Hinweis_Vermerk, @VermerkeCode,@MitarbeiterId,@Beschreibung,@VorauskasseId,@SMSId,@SMSStatus,@Geloescht,@AAS_Warnstufe,@HintergrundVermerk)" Else 'Änderung hAuswahl = String.Format( "UPDATE Vermerke SET AvisoID = @AvisoID, VermerkArt=@VermerkArt,SendungID=@SendungID,Datum = @Datum, Mitarbeiter = @Mitarbeiter, Hinweis_Vermerk = @Hinweis_Vermerk, VermerkeCode = @VermerkeCode, MitarbeiterId=@MitarbeiterId, Beschreibung=@Beschreibung,VorauskasseId=@VorauskasseId WHERE VermerkID = @VermerkID,SMSId=@SMSId,SMSStatus=@SMSStatus,Geloescht=@Geloescht,AAS_Warnstufe=@AAS_Warnstufe,HintergrundVermerk=@HintergrundVermerk") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoID", d.AvisoID) cmd.Parameters.Add("@Datum", SqlDbType.DateTime).Value = SQLNullDate(d.Datum) cmd.Parameters.AddWithValue("@Mitarbeiter", d.Mitarbeiter) cmd.Parameters.AddWithValue("@Hinweis_Vermerk", d.Hinweis_Vermerk) cmd.Parameters.AddWithValue("@VermerkID", d.VermerkID) cmd.Parameters.AddWithValue("@VermerkeCode", d.VermerkCodeId) cmd.Parameters.AddWithValue("@MitarbeiterId", d.MitarbeiterId) cmd.Parameters.AddWithValue("@Beschreibung", d.Beschreibung) cmd.Parameters.AddWithValue("@VermerkArt", d.VermerkArt) cmd.Parameters.AddWithValue("@SendungID", If(d.SendungID > 0, d.SendungID, DBNull.Value)) cmd.Parameters.AddWithValue("@VorauskasseId", If(d.VorauskasseId IsNot Nothing, d.VorauskasseId, DBNull.Value)) cmd.Parameters.AddWithValue("@SMSId", d.SMSId) cmd.Parameters.AddWithValue("@SMSStatus", d.SMSStatus) cmd.Parameters.AddWithValue("@Geloescht", d.Geloescht) cmd.Parameters.AddWithValue("@AAS_Warnstufe", d.AAS_Warnstufe) cmd.Parameters.AddWithValue("@HintergrundVermerk", d.HintergrundVermerk) Try cmd.ExecuteNonQuery() Dim newcmd As New SqlCommand("SELECT @@IDENTITY", conn) SpeichernVermerk = CInt(newcmd.ExecuteScalar) Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() End Function Public Function SpeichernVermerkIDAufgehoben(VermerkID, VermerkIDAufgehoben) As Boolean Dim SQLstr As String = " UPDATE Vermerke SET VermerkIDAufgehoben = @VermerkIDAufgehoben WHERE VermerkID = @VermerkID" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(SQLstr, conn) cmd.Parameters.AddWithValue("@VermerkID", VermerkID) cmd.Parameters.AddWithValue("@VermerkIDAufgehoben", VermerkIDAufgehoben) Try cmd.ExecuteNonQuery() SpeichernVermerkID_AAS_Aufgehoben(VermerkID) Return True Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() Return False End Function Public Function SpeichernVermerkID_AAS_Aufgehoben(VermerkID) As Boolean Dim SQLstr As String = " UPDATE [tblAvisoBenachrichtigungen] SET ab_Status = 1 , ab_Bestaetigt_MaId = @ab_Bestaetigt_MaId , ab_Bestaetigt_Datum=GETDATE() WHERE ab_VermerkID=@ab_VermerkID AND ab_Status = 0 " Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(SQLstr, conn) cmd.Parameters.AddWithValue("@ab_Bestaetigt_MaId", VERAG_PROG_ALLGEMEIN.cAllgemein.USRID) cmd.Parameters.AddWithValue("@ab_VermerkID", VermerkID) Try cmd.ExecuteNonQuery() Return True Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() Return False End Function Public Shared Function increaseWarnstufe(VermerkID) As Boolean Dim SQLstr As String = " UPDATE Vermerke SET AAS_Warnstufe = (AAS_Warnstufe+1) WHERE VermerkID = @VermerkID" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(SQLstr, conn) cmd.Parameters.AddWithValue("@VermerkID", VermerkID) Try cmd.ExecuteNonQuery() Return True Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() Return False End Function Public Sub togglegeloescht(ByVal hID As Integer, ByVal VermerkText As String, AvisoID As Integer) Dim sql = String.Format("UPDATE Vermerke SET Geloescht=Geloescht-1 WHERE VermerkID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() 'Vermerkzuweisung aufheben, falls vorhanden Dim VERAG_SQL As New VERAG_PROG_ALLGEMEIN.SQL VERAG_SQL.doSQL("UPDATE [Vermerke] SET VermerkIDAufgehoben = null where VermerkIDAufgehoben = '" & hID & "'", "AVISO") Dim cAvisoDAL As New cAvisoDAL cAvisoDAL.addAenderung(AvisoID, "Vermerk gelöscht/nicht gelöscht markiert", "Vermerk '" & VermerkText & "' wurde als gelöscht/nicht gelöscht markiert. VermerkID: '" & hID & "'") Catch ex As SqlException MsgBox("Gelöscht kann nicht gesetzt werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub Public Sub UpdateLKW(ByVal avisoID As Integer, ByVal LKW_fertig As Boolean) Dim sql = "UPDATE Aviso Set [LKW_fertig]= @LKW_fertig WHERE AvisoID = @AvisoID" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@LKW_fertig", LKW_fertig) cmd.Parameters.AddWithValue("@AvisoID", avisoID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() End Sub Public Sub UpdateSendungVorbereitet(ByVal AvisoID As Integer, ByVal sendungsId As Integer, ByVal MaId As Integer, ByVal inBearbeitung As Boolean) Dim sql = "UPDATE tblSendungen Set tblSnd_inBearbeitung= @inBearbeitung, tblSnd_Bearbeitung_MaId = @MaId WHERE tblSnd_SendungID = @sendungsId" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@inBearbeitung", inBearbeitung) cmd.Parameters.AddWithValue("@MaId", MaId) cmd.Parameters.AddWithValue("@sendungsId", sendungsId) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() 'SetInBearbeitungAVISO(AvisoID) End Sub Public Sub SetInBearbeitungAVISO(ByVal AvisoID As Integer) Dim sql = "UPDATE Aviso SET inBearbeitung= (SELECT CASE WHEN count([tblSnd_inBearbeitung])>0 Then '1' ELSE '0' END FROM [tblSendungen] where [tblSnd_AvisoID]=@AvisoID) WHERE AvisoID = @AvisoID " Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@AvisoID", AvisoID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() End Sub Public Sub UpdateGrenzstelle(ByVal avisoID As Integer, ByVal Grenzstelle As String) Dim sql = "UPDATE Aviso SET [Grenzstelle]= @Grenzstelle WHERE AvisoID = @AvisoID AND Status <> " & cGlobal.Status_Ankunft & "" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Grenzstelle", Grenzstelle) cmd.Parameters.AddWithValue("@AvisoID", avisoID) Try cmd.ExecuteNonQuery() Catch ex As SqlException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, "Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Using conn.Close() End Sub Public Sub LöschenVermerk(ByVal hID As Integer, ByVal VermerkText As String, AvisoID As Integer) Dim sql = String.Format("DELETE FROM Vermerke WHERE VermerkID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() 'Vermerkzuweisung aufheben, falls vorhanden Dim VERAG_SQL As New VERAG_PROG_ALLGEMEIN.SQL VERAG_SQL.doSQL("UPDATE [Vermerke] SET VermerkIDAufgehoben = null where VermerkIDAufgehoben = '" & hID & "'", "AVISO") Dim cAvisoDAL As New cAvisoDAL cAvisoDAL.addAenderung(AvisoID, "Vermerk endgültig gelöscht", "Vermerk '" & VermerkText & "' wurde endgültig gelöscht. VermerkID: '" & hID & "'") '' Catch ex As SqlException MsgBox("Vermerk kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub Public Shared Sub toggleHervorheben(ByVal hID As Integer) Dim sql = String.Format("UPDATE Vermerke SET Hervorheben=Hervorheben-1 WHERE VermerkID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Hervorheben kann nicht gesetzt werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Hervorheben") End Try End Using conn.Close() End Sub Public Shared Sub DeleteSNDVermerkCode(ByVal SendungID As Integer, VermerkeCode As Integer) Dim sql = "DELETE Vermerke WHERE VermerkeCode = '" & VermerkeCode & "' and SendungID= '" & SendungID & "'" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Hervorheben kann nicht gesetzt werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Hervorheben") End Try End Using conn.Close() End Sub Public Function Vermerke_einlesen(hAvisoID As Integer) As String 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim x As String = "" Dim Anz As Long = 0 Dim sql As String = "SELECT * FROM Vermerke WHERE AvisoID = " & hAvisoID & " ORDER BY Datum" Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() x += Format(CDate(dr.Item("Datum")), "dd.MM. HH:mm") & vbTab & VarToStr(dr.Item("Hinweis_Vermerk")) & vbCrLf Anz += 1 End While dr.Close() End Using End Using Catch ex As Exception MsgBox("Fehler in der Function Vermerke_einlesen:" & vbCrLf & vbCrLf & ex.Message & vbCrLf & vbCrLf & "Der Vorgang wird abgebrochen!", MsgBoxStyle.Exclamation) Anz = 0 Exit Try End Try conn.Close() If Anz = 0 Then x = "keine Vermerke vorhanden" Return x End Function Public Function Druckinfo(hSQL As String) As String 'Hier werden alle Sonderkorrektur-Einträge des Tages in einem Textfile zusammengefasst (als Info für Druck) Druckinfo = "" Dim Anz As Integer = 0 Dim daten As cVermerk = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Anz += 1 Druckinfo += Format(CDate(dr.Item("Datum")), "dd.MM. HH:mm") & " " & VarToStr(dr.Item("Hinweis_Vermerk")) & vbCrLf End While dr.Close() If Anz = 0 Then Druckinfo = "" 'wenn nichts gefunden, dann Druckzeile leer lassen End Using End Using Catch ex As Exception Druckinfo = "Es ist ein Fehler beim Lesen der Vermerke aufgetreten." Exit Try End Try conn.Close() Return Druckinfo End Function End Class Public Class cAvisoTvNew Public Property TvTextBezeichnungID As Integer Public Property TvTextBezeichnung As String Public Property FixeZeile1RTF As String Public Property FixeZeile1HTML As String Public Property FixeZeile2RTF As String Public Property FixeZeile2HTML As String Public Property FixeZeile3HTML As String Public Property FixeZeile3RTF As String Public Property StandortID As Integer Public Property Standort As String Public Property Prio As Integer Public Property StartDate As Date? Public Property EndDate As Date? Public Property StartTime As TimeSpan? Public Property EndTime As TimeSpan? Public Property IsRecurring As Boolean? Public Property IsMonday As Boolean? Public Property IsTuesday As Boolean? Public Property IsWednesday As Boolean? Public Property IsThursday As Boolean? Public Property IsFriday As Boolean? Public Property IsSaturday As Boolean? Public Property IsSunday As Boolean? Public Property IsActive As Boolean End Class Public Class cTvTextBezeichnung Public Property TvTextBezeichnungID As Integer Public Property TvTextBezeichnung As String End Class Public Class cTvSettings Public Property TVSettingID As Integer Public Property StandortID As Integer Public Property KachelWidthInPercent As Double? Public Property KachelHeightInPercent As Double? Public Property KachelFontSizeLkwNummer As Double? Public Property KachelFontSizeDateTime As Double? Public Property KachelRowGapInPercent As Double? Public Property SeitenwechselInSek As Integer? Public Property TextBalkenHeightInPercent As Double? Public Property TextFlaggeLeft As Double? Public Property TextFlaggeBottom As Double? Public Property SelectedLogoValue As String Public Property Reload As Byte? End Class Public Class cAvisoTvNewDAL ''' ''' Holt die StandortID basierend auf dem Standortnamen. ''' ''' Der Name des Standorts. ''' Die zugehörige StandortID oder 0, wenn nicht gefunden. Public Function GetStandortID(standort As String) As Integer Dim standortID As Integer = 0 Dim sql As String = "SELECT StandortID FROM StandorteTV WHERE StandortBezeichnung = @StandortBezeichnung" Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@StandortBezeichnung", standort) Dim result As Object = cmd.ExecuteScalar() If result IsNot Nothing AndAlso Not IsDBNull(result) Then standortID = Convert.ToInt32(result) End If End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Abrufen der StandortID: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Abrufen der StandortID: " & ex.Message, ex) End Try Return standortID End Function ''' ''' Speichert die TV-Einstellungen in der Datenbank. ''' ''' Die TV-Einstellungen, die gespeichert werden sollen. Public Sub SaveTvSettings(settings As cTvSettings) Dim sqlCheck As String = "SELECT COUNT(*) FROM AvisoTvSettings WHERE StandortID = @StandortID" Dim sqlUpdate As String = "UPDATE AvisoTvSettings SET KachelWidthInPercent = @KachelWidthInPercent, KachelHeightInPercent = @KachelHeightInPercent, KachelFontSizeLkwNummer = @KachelFontSizeLkwNummer, KachelFontSizeDateTime = @KachelFontSizeDateTime, KachelRowGapInPercent = @KachelRowGapInPercent, SeitenwechselInSek = @SeitenwechselInSek, TextBalkenHeightInPercent = @TextBalkenHeightInPercent, FlaggeLeft = @FlaggeLeft, FlaggeBottom = @FlaggeBottom, Logo = @Logo, Reload = @Reload WHERE StandortID = @StandortID" Dim sqlInsert As String = "INSERT INTO AvisoTvSettings (StandortID, KachelWidthInPercent, KachelHeightInPercent,KachelRowGapInPercent, KachelFontSizeLkwNummer, KachelFontSizeDateTime, SeitenwechselInSek, TextBalkenHeightInPercent,FlaggeLeft,FlaggeBottom,Logo) VALUES (@StandortID, @KachelWidthInPercent, @KachelHeightInPercent,@KachelRowGapInPercent, @KachelFontSizeLkwNummer, @KachelFontSizeDateTime, @SeitenwechselInSek, @TextBalkenHeightInPercent,@FlaggeLeft,@FlaggeBottom,@Logo)" Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() ' Überprüfen, ob bereits Einstellungen für den Standort existieren Dim recordExists As Boolean Using cmdCheck As New SqlCommand(sqlCheck, conn) cmdCheck.Parameters.AddWithValue("@StandortID", settings.StandortID) recordExists = Convert.ToInt32(cmdCheck.ExecuteScalar()) > 0 End Using ' Wähle Update oder Insert basierend auf der Existenz Dim sql As String = If(recordExists, sqlUpdate, sqlInsert) Using cmdSave As New SqlCommand(sql, conn) cmdSave.Parameters.AddWithValue("@StandortID", settings.StandortID) cmdSave.Parameters.AddWithValue("@KachelWidthInPercent", settings.KachelWidthInPercent) cmdSave.Parameters.AddWithValue("@KachelHeightInPercent", settings.KachelHeightInPercent) cmdSave.Parameters.AddWithValue("@KachelRowGapInPercent", settings.KachelRowGapInPercent) cmdSave.Parameters.AddWithValue("@KachelFontSizeLkwNummer", settings.KachelFontSizeLkwNummer) cmdSave.Parameters.AddWithValue("@KachelFontSizeDateTime", settings.KachelFontSizeDateTime) cmdSave.Parameters.AddWithValue("@SeitenwechselInSek", settings.SeitenwechselInSek) cmdSave.Parameters.AddWithValue("@TextBalkenHeightInPercent", settings.TextBalkenHeightInPercent) cmdSave.Parameters.AddWithValue("@FlaggeLeft", settings.TextFlaggeLeft) cmdSave.Parameters.AddWithValue("@FlaggeBottom", settings.TextFlaggeBottom) cmdSave.Parameters.AddWithValue("@Logo", settings.SelectedLogoValue) cmdSave.Parameters.AddWithValue("@Reload", settings.Reload) cmdSave.ExecuteNonQuery() End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Speichern der TV-Einstellungen: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Speichern der TV-Einstellungen: " & ex.Message, ex) End Try End Sub ''' ''' Lädt die TV-Einstellungen basierend auf der StandortID. ''' ''' Die StandortID, für die die Einstellungen geladen werden sollen. ''' Eine Liste der entsprechenden TV-Einstellungen. Public Function GetTvSettingsByStandort(standortID As Integer) As List(Of cTvSettings) Dim SettingsList As New List(Of cTvSettings)() Dim sql As String = "SELECT * FROM AvisoTvSettings WHERE StandortID = @StandortID" Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@StandortID", standortID) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Dim settings As New cTvSettings() With { .TVSettingID = Convert.ToInt32(dr("TvSettingID")), .StandortID = Convert.ToInt32(dr("StandortID")), .KachelWidthInPercent = If(IsDBNull(dr("KachelWidthInPercent")), 0, Convert.ToDouble(dr("KachelWidthInPercent"))), .KachelHeightInPercent = If(IsDBNull(dr("KachelHeightInPercent")), 0, Convert.ToDouble(dr("KachelHeightInPercent"))), .KachelRowGapInPercent = If(IsDBNull(dr("KachelRowGapInPercent")), 0, Convert.ToDouble(dr("KachelRowGapInPercent"))), .KachelFontSizeLkwNummer = If(IsDBNull(dr("KachelFontSizeLkwNummer")), 0, Convert.ToDouble(dr("KachelFontSizeLkwNummer"))), .KachelFontSizeDateTime = If(IsDBNull(dr("KachelFontSizeDateTime")), 0, Convert.ToDouble(dr("KachelFontSizeDateTime"))), .SeitenwechselInSek = If(IsDBNull(dr("SeitenwechselInSek")), 0, Convert.ToInt32(dr("SeitenwechselInSek"))), .TextBalkenHeightInPercent = If(IsDBNull(dr("TextBalkenHeightInPercent")), 0, Convert.ToDouble(dr("TextBalkenHeightInPercent"))), .TextFlaggeBottom = If(IsDBNull(dr("FlaggeBottom")), 0, Convert.ToDouble(dr("FlaggeBottom"))), .TextFlaggeLeft = If(IsDBNull(dr("FlaggeLeft")), 0, Convert.ToDouble(dr("FlaggeLeft"))), .SelectedLogoValue = If(IsDBNull(dr("Logo")), "", Convert.ToString(dr("Logo"))) } SettingsList.Add(settings) End While End Using End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Laden der TV-Einstellungen: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Laden der TV-Einstellungen: " & ex.Message, ex) End Try Return SettingsList End Function ''' ''' Lädt alle TV-Textbezeichnungen aus der Datenbank. ''' ''' Eine Liste aller TV-Textbezeichnungen. Public Function LadenAlleTvTextBezeichnungen() As List(Of cTvTextBezeichnung) Dim bezeichnungen As New List(Of cTvTextBezeichnung)() Dim sql As String = " SELECT TvTextBezeichnungID, TvTextBezeichnung FROM AvisoTvNew ORDER BY TvTextBezeichnung " Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Dim bezeichnung As New cTvTextBezeichnung() With { .TvTextBezeichnungID = Convert.ToInt32(dr("TvTextBezeichnungID")), .TvTextBezeichnung = Convert.ToString(dr("TvTextBezeichnung")) } bezeichnungen.Add(bezeichnung) End While End Using End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Laden der TvTextBezeichnungen: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Laden der TvTextBezeichnungen: " & ex.Message, ex) End Try Return bezeichnungen End Function ''' ''' Überprüft, ob eine TV-Textbezeichnung bereits vorhanden ist. ''' ''' Die TV-Textbezeichnung, die überprüft werden soll. ''' True, wenn die Bezeichnung vorhanden ist; andernfalls False. Public Function IstTvTextBezeichnungVorhanden(tvTextBezeichnung As String) As Boolean Dim vorhanden As Boolean = False Dim sql As String = "SELECT COUNT(*) FROM AvisoTvNew WHERE TvTextBezeichnung = @TvTextBezeichnung" Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@TvTextBezeichnung", tvTextBezeichnung) Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar()) If count > 0 Then vorhanden = True End If End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Überprüfen der TvTextBezeichnung: " & ex.Message, ex) End Try Return vorhanden End Function ''' ''' Liest AvisoTvNew-Einträge basierend auf den angegebenen Kriterien. ''' ''' Die TV-TextbezeichnungID. ''' Die Bezeichnung. ''' Der Standort. ''' Die Liste, in die die Ergebnisse eingefügt werden. Public Sub LesenAvisoTvNew(tvid As Integer, bezeichnung As String, StandortBezeichnung As String, ByRef liste As List(Of cAvisoTvNew)) Dim sql As String = "SELECT stv.TvTextBezeichnungID, stv.StandortID, stv.Prio, a.TvTextBezeichnung, s.Standort, a.FixeZeile1RTF, a.FixeZeile2RTF, a.FixeZeile3RTF, a.StartDate, a.EndDate, a.StartTime, a.EndTime, a.IsRecurring, a.IsMonday, a.IsTuesday, a.IsWednesday, a.IsThursday, a.IsFriday, a.IsSaturday, a.IsSunday, a.IsActive FROM AvisoTvNew a JOIN StandortTvBezeichnung stv ON a.TvTextBezeichnungID = stv.TvTextBezeichnungID JOIN StandorteTV s ON stv.StandortID = s.StandortID WHERE 1=1" If tvid <> 0 Then sql &= " AND a.TvTextBezeichnungID = @TvTextBezeichnungID" End If If Not String.IsNullOrWhiteSpace(bezeichnung) Then sql &= " AND a.TVTextBezeichnung LIKE @TVTextBezeichnung" End If If Not String.IsNullOrWhiteSpace(StandortBezeichnung) Then sql &= " AND s.Standortbezeichnung = @StandortBezeichnung" End If Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) If tvid <> 0 Then cmd.Parameters.AddWithValue("@TvTextBezeichnungID", tvid) End If If Not String.IsNullOrWhiteSpace(bezeichnung) Then cmd.Parameters.AddWithValue("@TVTextBezeichnung", "%" & bezeichnung & "%") End If If Not String.IsNullOrWhiteSpace(StandortBezeichnung) Then cmd.Parameters.AddWithValue("@StandortBezeichnung", StandortBezeichnung) End If Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Dim aviso As New cAvisoTvNew() With { .TvTextBezeichnungID = Convert.ToInt32(dr("TvTextBezeichnungID")), .StandortID = Convert.ToInt32(dr("StandortID")), .TvTextBezeichnung = Convert.ToString(dr("TVTextBezeichnung")), .Standort = Convert.ToString(dr("Standort")), .FixeZeile1RTF = If(IsDBNull(dr("FixeZeile1RTF")), Nothing, Convert.ToString(dr("FixeZeile1RTF"))), .FixeZeile2RTF = If(IsDBNull(dr("FixeZeile2RTF")), Nothing, Convert.ToString(dr("FixeZeile2RTF"))), .FixeZeile3RTF = If(IsDBNull(dr("FixeZeile3RTF")), Nothing, Convert.ToString(dr("FixeZeile3RTF"))), .Prio = If(IsDBNull(dr("Prio")), Nothing, Convert.ToInt32(dr("Prio"))), .StartDate = If(IsDBNull(dr("StartDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("StartDate"))), .EndDate = If(IsDBNull(dr("EndDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("EndDate"))), .StartTime = If(IsDBNull(dr("StartTime")), CType(Nothing, TimeSpan?), CType(dr("StartTime"), TimeSpan)), .EndTime = If(IsDBNull(dr("EndTime")), CType(Nothing, TimeSpan?), CType(dr("EndTime"), TimeSpan)), .IsRecurring = If(IsDBNull(dr("IsRecurring")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsRecurring"))), .IsMonday = If(IsDBNull(dr("IsMonday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsMonday"))), .IsTuesday = If(IsDBNull(dr("IsTuesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsTuesday"))), .IsWednesday = If(IsDBNull(dr("IsWednesday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsWednesday"))), .IsThursday = If(IsDBNull(dr("IsThursday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsThursday"))), .IsFriday = If(IsDBNull(dr("IsFriday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsFriday"))), .IsSaturday = If(IsDBNull(dr("IsSaturday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSaturday"))), .IsSunday = If(IsDBNull(dr("IsSunday")), CType(Nothing, Boolean?), Convert.ToBoolean(dr("IsSunday"))), .IsActive = Convert.ToBoolean(dr("IsActive")) } liste.Add(aviso) End While End Using End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Lesen der Daten: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Lesen der Daten: " & ex.Message, ex) End Try End Sub ''' ''' Liest alle AvisoTvNew-Einträge aus der Datenbank. ''' ''' Die Liste, in die die Ergebnisse eingefügt werden. Public Sub LesenAlleAvisoTvNew(ByRef liste As List(Of cAvisoTvNew)) ' Basis-SQL-Abfrage ohne Filter Dim sql As String = "SELECT a.TvTextBezeichnungID, a.TvTextBezeichnung, a.FixeZeile1RTF, a.FixeZeile2RTF, a.FixeZeile3RTF, a.Prio, a.StartDate, a.EndDate, a.StartTime, a.EndTime, a.IsRecurring, a.IsMonday, a.IsTuesday, a.IsWednesday, a.IsThursday, a.IsFriday, a.IsSaturday, a.IsSunday, a.IsActive FROM AvisoTvNew a" Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() While dr.Read() Dim aviso As New cAvisoTvNew() With { .TvTextBezeichnungID = If(IsDBNull(dr("TvTextBezeichnungID")), 0, Convert.ToInt32(dr("TvTextBezeichnungID"))), .TvTextBezeichnung = If(IsDBNull(dr("TvTextBezeichnung")), String.Empty, dr("TvTextBezeichnung").ToString()), .FixeZeile1RTF = If(IsDBNull(dr("FixeZeile1RTF")), Nothing, dr("FixeZeile1RTF").ToString()), .FixeZeile2RTF = If(IsDBNull(dr("FixeZeile2RTF")), Nothing, dr("FixeZeile2RTF").ToString()), .FixeZeile3RTF = If(IsDBNull(dr("FixeZeile3RTF")), Nothing, dr("FixeZeile3RTF").ToString()), .Prio = If(IsDBNull(dr("Prio")), 0, Convert.ToInt32(dr("Prio"))), .StartDate = If(IsDBNull(dr("StartDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("StartDate"))), .EndDate = If(IsDBNull(dr("EndDate")), CType(Nothing, Date?), Convert.ToDateTime(dr("EndDate"))), .StartTime = If(IsDBNull(dr("StartTime")), CType(Nothing, TimeSpan?), CType(dr("StartTime"), TimeSpan)), .EndTime = If(IsDBNull(dr("EndTime")), CType(Nothing, TimeSpan?), CType(dr("EndTime"), TimeSpan)), .IsRecurring = If(IsDBNull(dr("IsRecurring")), False, Convert.ToBoolean(dr("IsRecurring"))), .IsMonday = If(IsDBNull(dr("IsMonday")), False, Convert.ToBoolean(dr("IsMonday"))), .IsTuesday = If(IsDBNull(dr("IsTuesday")), False, Convert.ToBoolean(dr("IsTuesday"))), .IsWednesday = If(IsDBNull(dr("IsWednesday")), False, Convert.ToBoolean(dr("IsWednesday"))), .IsThursday = If(IsDBNull(dr("IsThursday")), False, Convert.ToBoolean(dr("IsThursday"))), .IsFriday = If(IsDBNull(dr("IsFriday")), False, Convert.ToBoolean(dr("IsFriday"))), .IsSaturday = If(IsDBNull(dr("IsSaturday")), False, Convert.ToBoolean(dr("IsSaturday"))), .IsSunday = If(IsDBNull(dr("IsSunday")), False, Convert.ToBoolean(dr("IsSunday"))), .IsActive = If(IsDBNull(dr("IsActive")), False, Convert.ToBoolean(dr("IsActive"))) } liste.Add(aviso) End While End Using End Using End Using Catch ex As SqlException Throw New Exception($"SQL Fehler beim Lesen der Daten: {ex.Message}", ex) Catch ex As Exception Throw New Exception($"Allgemeiner Fehler beim Lesen der Daten: {ex.Message}", ex) End Try End Sub ''' ''' Speichert einen AvisoTvNew-Eintrag in der Datenbank. ''' ''' Der AvisoTvNew-Eintrag, der gespeichert werden soll. Public Sub SpeichernAvisoTvNew(aviso As cAvisoTvNew) Dim sqlInsert As String Dim sqlUpdate As String Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using transaction As SqlTransaction = conn.BeginTransaction() Try If aviso.TvTextBezeichnungID = 0 Then ' Neuanlage sqlInsert = "INSERT INTO AvisoTvNew ( TvTextBezeichnung, FixeZeile1RTF, FixeZeile1HTML, FixeZeile2RTF, FixeZeile2HTML, FixeZeile3RTF, FixeZeile3HTML, StartDate, EndDate, StartTime, EndTime, IsRecurring, IsMonday, IsTuesday, IsWednesday, IsThursday, IsFriday, IsSaturday, IsSunday, Prio, IsActive ) VALUES ( @TvTextBezeichnung, @FixeZeile1RTF, @FixeZeile1HTML, @FixeZeile2RTF, @FixeZeile2HTML, @FixeZeile3RTF, @FixeZeile3HTML, @StartDate, @EndDate, @StartTime, @EndTime, @IsRecurring, @IsMonday, @IsTuesday, @IsWednesday, @IsThursday, @IsFriday, @IsSaturday, @IsSunday, @Prio, @IsActive ); SELECT CAST(scope_identity() AS int);" Using cmd As New SqlCommand(sqlInsert, conn, transaction) cmd.Parameters.AddWithValue("@TvTextBezeichnung", aviso.TvTextBezeichnung) cmd.Parameters.AddWithValue("@FixeZeile1RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1RTF), CType(Nothing, String), aviso.FixeZeile1RTF)) cmd.Parameters.AddWithValue("@FixeZeile1HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1HTML), CType(Nothing, String), aviso.FixeZeile1HTML)) cmd.Parameters.AddWithValue("@FixeZeile2RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2RTF), DBNull.Value, aviso.FixeZeile2RTF)) cmd.Parameters.AddWithValue("@FixeZeile2HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2HTML), DBNull.Value, aviso.FixeZeile2HTML)) cmd.Parameters.AddWithValue("@FixeZeile3RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3RTF), DBNull.Value, aviso.FixeZeile3RTF)) cmd.Parameters.AddWithValue("@FixeZeile3HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3HTML), DBNull.Value, aviso.FixeZeile3HTML)) cmd.Parameters.AddWithValue("@StartDate", If(aviso.StartDate.HasValue, CType(aviso.StartDate.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@EndDate", If(aviso.EndDate.HasValue, CType(aviso.EndDate.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@StartTime", If(aviso.StartTime.HasValue, CType(aviso.StartTime.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@EndTime", If(aviso.EndTime.HasValue, CType(aviso.EndTime.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@Prio", aviso.Prio) cmd.Parameters.AddWithValue("@IsRecurring", aviso.IsRecurring) cmd.Parameters.AddWithValue("@IsMonday", aviso.IsMonday) cmd.Parameters.AddWithValue("@IsTuesday", aviso.IsTuesday) cmd.Parameters.AddWithValue("@IsWednesday", aviso.IsWednesday) cmd.Parameters.AddWithValue("@IsThursday", aviso.IsThursday) cmd.Parameters.AddWithValue("@IsFriday", aviso.IsFriday) cmd.Parameters.AddWithValue("@IsSaturday", aviso.IsSaturday) cmd.Parameters.AddWithValue("@IsSunday", aviso.IsSunday) cmd.Parameters.AddWithValue("@IsActive", aviso.IsActive) Dim result As Object = cmd.ExecuteScalar() If result Is Nothing OrElse IsDBNull(result) Then Throw New Exception("Das INSERT hat keine ID zurückgegeben.") End If aviso.TvTextBezeichnungID = Convert.ToInt32(result) End Using Else ' Aktualisierung sqlUpdate = "UPDATE AvisoTvNew SET FixeZeile1RTF = @FixeZeile1RTF, FixeZeile1HTML = @FixeZeile1HTML, FixeZeile2RTF = @FixeZeile2RTF, FixeZeile2HTML = @FixeZeile2HTML, FixeZeile3RTF = @FixeZeile3RTF, FixeZeile3HTML = @FixeZeile3HTML, StartDate = @StartDate, EndDate = @EndDate, StartTime = @StartTime, EndTime = @EndTime, IsRecurring = @IsRecurring, IsMonday = @IsMonday, IsTuesday = @IsTuesday, IsWednesday = @IsWednesday, IsThursday = @IsThursday, IsFriday = @IsFriday, IsSaturday = @IsSaturday, IsSunday = @IsSunday, IsActive = @IsActive, Prio = @Prio WHERE TvTextBezeichnungID = @TvTextBezeichnungID" Using cmd As New SqlCommand(sqlUpdate, conn, transaction) cmd.Parameters.AddWithValue("@FixeZeile1RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1RTF), CType(Nothing, String), aviso.FixeZeile1RTF)) cmd.Parameters.AddWithValue("@FixeZeile1HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile1HTML), CType(Nothing, String), aviso.FixeZeile1HTML)) cmd.Parameters.AddWithValue("@FixeZeile2RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2RTF), DBNull.Value, aviso.FixeZeile2RTF)) cmd.Parameters.AddWithValue("@FixeZeile2HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile2HTML), DBNull.Value, aviso.FixeZeile2HTML)) cmd.Parameters.AddWithValue("@FixeZeile3RTF", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3RTF), DBNull.Value, aviso.FixeZeile3RTF)) cmd.Parameters.AddWithValue("@FixeZeile3HTML", If(String.IsNullOrWhiteSpace(aviso.FixeZeile3HTML), DBNull.Value, aviso.FixeZeile3HTML)) cmd.Parameters.AddWithValue("@StartDate", If(aviso.StartDate.HasValue, CType(aviso.StartDate.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@EndDate", If(aviso.EndDate.HasValue, CType(aviso.EndDate.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@StartTime", If(aviso.StartTime.HasValue, CType(aviso.StartTime.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@EndTime", If(aviso.EndTime.HasValue, CType(aviso.EndTime.Value, Object), DBNull.Value)) cmd.Parameters.AddWithValue("@IsRecurring", aviso.IsRecurring) cmd.Parameters.AddWithValue("@IsMonday", aviso.IsMonday) cmd.Parameters.AddWithValue("@IsTuesday", aviso.IsTuesday) cmd.Parameters.AddWithValue("@IsWednesday", aviso.IsWednesday) cmd.Parameters.AddWithValue("@IsThursday", aviso.IsThursday) cmd.Parameters.AddWithValue("@IsFriday", aviso.IsFriday) cmd.Parameters.AddWithValue("@IsSaturday", aviso.IsSaturday) cmd.Parameters.AddWithValue("@IsSunday", aviso.IsSunday) cmd.Parameters.AddWithValue("@IsActive", aviso.IsActive) cmd.Parameters.AddWithValue("@Prio", aviso.Prio) cmd.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID) cmd.ExecuteNonQuery() End Using End If ' Einfügen oder Aktualisieren in die StandortTvBezeichnung-Tabelle Dim sqlLink As String = " IF EXISTS ( SELECT 1 FROM StandortTvBezeichnung WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID ) BEGIN UPDATE StandortTvBezeichnung SET Prio = @Prio WHERE StandortID = @StandortID AND TvTextBezeichnungID = @TvTextBezeichnungID END ELSE BEGIN INSERT INTO StandortTvBezeichnung (StandortID, TvTextBezeichnungID) VALUES (@StandortID, @TvTextBezeichnungID) END " Using cmdLink As New SqlCommand(sqlLink, conn, transaction) cmdLink.Parameters.AddWithValue("@StandortID", aviso.StandortID) cmdLink.Parameters.AddWithValue("@Prio", aviso.Prio) cmdLink.Parameters.AddWithValue("@TvTextBezeichnungID", aviso.TvTextBezeichnungID) cmdLink.ExecuteNonQuery() End Using ' Transaktion committen transaction.Commit() Catch ex As Exception ' Fehler: Transaktion zurückrollen Try transaction.Rollback() Catch rollbackEx As Exception Throw New Exception("Fehler beim Zurückrollen der Transaktion: " & rollbackEx.Message, rollbackEx) End Try Throw End Try End Using End Using Catch ex As SqlException Throw New Exception("SQL Fehler beim Speichern des Eintrags: " & ex.Message, ex) Catch ex As Exception Throw New Exception("Allgemeiner Fehler beim Speichern des Eintrags: " & ex.Message, ex) End Try End Sub ''' ''' Setzt einen AvisoTvNew-Eintrag auf inaktiv. ''' ''' Die ID des Eintrags, der inaktiv gesetzt werden soll. Public Sub SetzeAufInaktiv(ByVal hID As Integer) Dim sql As String = "UPDATE AvisoTvNew SET IsActive = 0 WHERE TVID = @TVID" Try Using conn As SqlConnection = cDatenbankAVISO.CreateNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@TVID", hID) Dim rowsAffected As Integer = cmd.ExecuteNonQuery() If rowsAffected = 0 Then Throw New Exception("Der Datensatz konnte nicht auf inaktiv gesetzt werden. Möglicherweise existiert er nicht mehr.") End If End Using End Using Catch ex As SqlException Throw New Exception("AvisoTvNew-Eintrag kann nicht auf inaktiv gesetzt werden! " & vbCrLf & ex.Message, ex) Catch ex As Exception Throw New Exception("Fehler beim Setzen auf inaktiv: " & ex.Message, ex) End Try End Sub End Class Public Class cAvisoTV Property TVID As Long = 0 Property FixeZeile1 As String Property FixeZeile2 As String Property FixeZeile3 As String Property Standort As String Property Art As String Property Special As String End Class Public Class cAvisoTVDAL Public Function LesenAvisoTV(hID As Integer, wherehSQL As String, Standort As String, Special As String, Optional ByRef list As List(Of cAvisoTV) = Nothing) As cAvisoTV 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If list IsNot Nothing Then list.Clear() sql = "SELECT * FROM AvisoTV WHERE 1=1 " If hID > 0 Then sql &= String.Format(" AND TVID = {0}", hID) Else sql &= wherehSQL End If If Standort <> "" Then sql &= " AND Standort='" & Standort & "'" End If If Special <> "" Then sql &= " AND (Special is null or Special='" & Special & "' or Special='" & Now.ToShortDateString & "') " End If sql &= " ORDER BY Special desc,TVID " 'MsgBox(sql) Dim daten As cAvisoTV = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError() Try Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cAvisoTV() daten.TVID = VarToInt(dr.Item("TVID")) daten.FixeZeile1 = VarToStr(dr.Item("FixeZeile1")) daten.FixeZeile2 = VarToStr(dr.Item("FixeZeile2")) daten.FixeZeile3 = VarToStr(dr.Item("FixeZeile3")) daten.Standort = VarToStr(dr.Item("Standort")) daten.Art = VarToStr(dr.Item("Art")) daten.Special = VarToStr(dr.Item("Special")) For Each ds In dr Dim avisoTv = New cAvisoTV() avisoTv.TVID = VarToInt(ds.Item("TVID")) avisoTv.FixeZeile1 = VarToStr(ds.Item("FixeZeile1")) avisoTv.FixeZeile2 = VarToStr(ds.Item("FixeZeile2")) avisoTv.FixeZeile3 = VarToStr(ds.Item("FixeZeile3")) avisoTv.Standort = VarToStr(ds.Item("Standort")) avisoTv.Art = VarToStr(ds.Item("Art")) avisoTv.Special = VarToStr(ds.Item("Special")) If list IsNot Nothing Then list.Add(avisoTv) Next End If dr.Close() End Using End Using Return daten Catch ex As Exception Return Nothing End Try conn.Close() End Function Public Sub SpeichernAvisoTV(ByVal d As cAvisoTV) Dim hAuswahl As String If d.TVID = 0 Then 'Neuanlage hAuswahl = "INSERT INTO AvisoTV " & "(FixeZeile1, FixeZeile2, FixeZeile3,Standort,Art) VALUES (@FixeZeile1, @FixeZeile2, @FixeZeile3, @Standort, @Art)" Else 'Änderung hAuswahl = String.Format( "UPDATE AvisoTV SET FixeZeile1=@FixeZeile1, FixeZeile2=@FixeZeile2, FixeZeile3=@FixeZeile3 , Standort=@Standort , Art=@Art WHERE TVID = @TVID") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@FixeZeile1", d.FixeZeile1) cmd.Parameters.AddWithValue("@FixeZeile2", d.FixeZeile2) cmd.Parameters.AddWithValue("@FixeZeile3", d.FixeZeile3) cmd.Parameters.AddWithValue("@Standort", d.Standort) cmd.Parameters.AddWithValue("@Art", d.Art) cmd.Parameters.AddWithValue("@TVID", d.TVID) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern AvisoTV") End Try End Using conn.Close() End Sub Public Sub LöschenAvisoTV(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM AvisoTV WHERE TVID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("AvisoTV-Eintrag kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub End Class Public Class cOption Property OptionID As Long Property eMail_Ankunft_Betreff As String Property eMail_Ankunft_Text As String Property eMail_Freigabe_Betreff As String Property eMail_Freigabe_Text As String Property eMail_Status_Text As String Property eMail_Status_Betreff As String End Class Public Class cOptionenDAL Public Function LesenOptionen(hID As Integer, hSQL As String) As cOption 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If hID > 0 Then sql = String.Format("SELECT * FROM Optionen WHERE OptionID = {0}", hID) Else sql = hSQL End If Dim daten As cOption = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cOption() daten.OptionID = VarToInt(dr.Item("OptionID")) daten.eMail_Ankunft_Betreff = VarToStr(dr.Item("eMail_Ankunft_Betreff")) daten.eMail_Ankunft_Text = VarToStr(dr.Item("eMail_Ankunft_Text")) daten.eMail_Freigabe_Betreff = VarToStr(dr.Item("eMail_Freigabe_Betreff")) daten.eMail_Freigabe_Text = VarToStr(dr.Item("eMail_Freigabe_Text")) daten.eMail_Status_Betreff = VarToStr(dr.Item("eMail_Status_Betreff")) daten.eMail_Status_Text = VarToStr(dr.Item("eMail_Status_Text")) End If dr.Close() End Using End Using conn.Close() Return daten End Function Public Function setAVISOFromPcName() As Integer Dim zeilen As Integer = 0 Dim sql = String.Format( " UPDATE Aviso SET LetzterMitarbeiter = @LetzterMitarbeiter, LetzterMitarbeiterId = @LetzterMitarbeiterId " & " WHERE Status IN (" & cGlobal.Status_Ankunft & ") AND LetzterMitarbeiter like '%/" & cAllgemein.USRNAME.ToString & "' " & " AND LetzterMitarbeiterId NOT LIKE @LetzterMitarbeiterId") ' MsgBox(sql) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) ' cmd.Parameters.AddWithValue("@LetzterMitarbeiter", cGlobal.AktiverMitarbeiter.Mitarbeiter & "/" & cAllgemein.USRNAME.ToString) cmd.Parameters.AddWithValue("@LetzterMitarbeiter", cGlobal.AktiverMitarbeiter.Mitarbeiter) cmd.Parameters.AddWithValue("@LetzterMitarbeiterId", cGlobal.AktiverMitarbeiter.MitarbeiterID) Try zeilen = cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler bei setAVISOFromPcName") End Try End Using conn.Close() Return zeilen End Function Public Sub SpeichernOptionen(ByVal d As cOption) Dim hAuswahl As String If d.OptionID = 0 Then 'Neuanlage hAuswahl = "INSERT INTO Optionen " & "(eMail_Ankunft_Betreff, eMail_Ankunft_Text, eMail_Freigabe_Betreff, eMail_Freigabe_Text) VALUES (@eMail_Ankunft_Betreff, @eMail_Ankunft_Text, @eMail_Freigabe_Betreff, @eMail_Freigabe_Text)" Else 'Änderung hAuswahl = String.Format( "UPDATE Optionen SET eMail_Ankunft_Betreff=@eMail_Ankunft_Betreff, eMail_Ankunft_Text=@eMail_Ankunft_Text, eMail_Freigabe_Betreff=@eMail_Freigabe_Betreff, eMail_Freigabe_Text=@eMail_Freigabe_Text WHERE OptionID = @OptionID") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@eMail_Ankunft_Betreff", d.eMail_Ankunft_Betreff) cmd.Parameters.AddWithValue("@eMail_Ankunft_Text", d.eMail_Ankunft_Text) cmd.Parameters.AddWithValue("@eMail_Freigabe_Betreff", d.eMail_Freigabe_Betreff) cmd.Parameters.AddWithValue("@eMail_Freigabe_Text", d.eMail_Freigabe_Text) cmd.Parameters.AddWithValue("@OptionID", d.OptionID) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Optionen können nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Optionen") End Try End Using conn.Close() End Sub Public Sub LöschenOptionen(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Optionen WHERE TVID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Optionen-Eintrag kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub End Class Public Class cStandort Property StandortID As Integer Property Standort As String Property Standort_Text As String Property Info As String Property eMail_Ankunft_Betreff As String Property eMail_Ankunft_Text As String Property eMail_Freigabe_Betreff As String Property eMail_Freigabe_Text As String Property eMail_Zollbeleg_Betreff As String Property eMail_Zollbeleg_Text As String Property eMail_Status_Betreff As String Property eMail_Status_Text As String End Class Public Class cStandorteDAL Public Function LesenStandort(hID As Integer, hStandort As String, hSQL As String) As cStandort 'falls ID mitgegeben, dann diese laden, ansonsten den anderen Wert suchen Dim sql As String If hID > 0 Then sql = String.Format("SELECT * FROM Standorte WHERE StandortID = {0}", hID) ElseIf hStandort <> "" Then sql = String.Format("SELECT * FROM Standorte WHERE Standort = '" & hStandort.Trim & "' and FIRMA ='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'") Else sql = hSQL End If Dim daten As cStandort = Nothing Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() If dr.HasRows Then dr.Read() daten = New cStandort() daten.StandortID = VarToInt(dr.Item("StandortID")) daten.Standort = VarToStr(dr.Item("Standort")) daten.Standort_Text = VarToStr(dr.Item("Standort_Text")) daten.Info = VarToStr(dr.Item("Info")) daten.eMail_Ankunft_Betreff = VarToStr(dr.Item("eMail_Ankunft_Betreff")) daten.eMail_Ankunft_Text = VarToStr(dr.Item("eMail_Ankunft_Text")) daten.eMail_Freigabe_Betreff = VarToStr(dr.Item("eMail_Freigabe_Betreff")) daten.eMail_Freigabe_Text = VarToStr(dr.Item("eMail_Freigabe_Text")) daten.eMail_Zollbeleg_Betreff = VarToStr(dr.Item("eMail_Zollbeleg_Betreff")) daten.eMail_Zollbeleg_Text = VarToStr(dr.Item("eMail_Zollbeleg_Text")) daten.eMail_Status_Betreff = VarToStr(dr.Item("eMail_Status_Betreff")) daten.eMail_Status_Text = VarToStr(dr.Item("eMail_Status_Text")) End If dr.Close() End Using End Using conn.Close() Return daten End Function Public Function Anzeigen_Standorte(hSQL As String) As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_Standorte'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Function Anzeigen_cboStandorte() As DataTable While True 'Endlosschleife; wird verlassen durch Return oder Application.Exit() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() Dim sql As String sql = "SELECT StandortID, Standort FROM Standorte ORDER BY Standort" Using cmd As New SqlCommand(sql, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'Anzeigen_cboStandort'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() End While Return Nothing End Function Public Sub SpeichernStandort(ByVal d As cStandort) Dim hAuswahl As String If d.StandortID = 0 Then 'Neuanlage hAuswahl = "INSERT INTO Standorte " & "(Standort, Standort_Text, Info, eMail_Ankunft_Betreff, eMail_Ankunft_Text, eMail_Freigabe_Betreff, eMail_Freigabe_Text,eMail_Zollbeleg_Betreff,eMail_Zollbeleg_Text,eMail_Status_Betreff,eMail_Status_Text) VALUES (" & "@Standort, @Standort_Text, @Info, @eMail_Ankunft_Betreff, @eMail_Ankunft_Text, @eMail_Freigabe_Betreff, @eMail_Freigabe_Text,@eMail_Zollbeleg_Betreff,@eMail_Zollbeleg_Text,@eMail_Status_Betreff,@eMail_Status_Text)" Else 'Änderung hAuswahl = String.Format( "UPDATE Standorte SET Standort = @Standort, Standort_Text=@Standort_Text, Info=@Info, eMail_Ankunft_Betreff=@eMail_Ankunft_Betreff, eMail_Ankunft_Text=@eMail_Ankunft_Text, eMail_Freigabe_Betreff=@eMail_Freigabe_Betreff, eMail_Freigabe_Text=@eMail_Freigabe_Text , eMail_Zollbeleg_Betreff=@eMail_Zollbeleg_Betreff , eMail_Zollbeleg_Text=@eMail_Zollbeleg_Text,eMail_Status_Betreff=@eMail_Status_Betreff,eMail_Status_Text=@eMail_Status_Text " & "WHERE StandortID = @StandortID") End If Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Standort", d.Standort) cmd.Parameters.AddWithValue("@Standort_Text", d.Standort_Text) cmd.Parameters.AddWithValue("@Info", d.Info) cmd.Parameters.AddWithValue("@eMail_Ankunft_Betreff", d.eMail_Ankunft_Betreff) cmd.Parameters.AddWithValue("@eMail_Ankunft_Text", d.eMail_Ankunft_Text) cmd.Parameters.AddWithValue("@eMail_Freigabe_Betreff", d.eMail_Freigabe_Betreff) cmd.Parameters.AddWithValue("@eMail_Freigabe_Text", d.eMail_Freigabe_Text) cmd.Parameters.AddWithValue("@eMail_Zollbeleg_Betreff", d.eMail_Zollbeleg_Betreff) cmd.Parameters.AddWithValue("@eMail_Zollbeleg_Text", d.eMail_Zollbeleg_Text) cmd.Parameters.AddWithValue("@eMail_Status_Betreff", d.eMail_Status_Betreff) cmd.Parameters.AddWithValue("@eMail_Status_Text", d.eMail_Status_Text) cmd.Parameters.AddWithValue("@StandortID", d.StandortID) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Standort") End Try End Using conn.Close() End Sub Public Sub LöschenStandort(ByVal hID As Integer) Dim sql = String.Format("DELETE FROM Standorte WHERE StandortID = {0}", hID) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Standort kann nicht gelöscht werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Löschen") End Try End Using conn.Close() End Sub End Class Public Class Statistik Public Function getKunden(hSQL As String) As DataTable Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Try Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'getKunden'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() ' End While Return Nothing End Function Public Function getAVG(ByVal datumVon As DateTime, ByVal datumBis As DateTime, ByVal DauerVon As String, ByVal DauerBis As String) As Long If DauerVon = "" Then DauerBis = "0" If DauerBis = "" Then DauerBis = "999999" Dim sql As String = "SELECT avg(Dauer) " & " FROM Aviso WHERE ( Datum BETWEEN '" & datumVon.ToShortDateString & "' AND '" & datumBis.ToShortDateString & "') AND ( Dauer BETWEEN '" & DauerVon & "' AND '" & DauerBis & "') AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " ' Dim sql As String = "SELECT * " & ' " FROM Aviso" ' MsgBox(sql) ' Dim daten As New List(Of cEntry) Dim dr As SqlDataReader 'Using conn As SqlConnection = cDatenbank.GetNewOpenConnection() Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() ' MsgBox(conn.ConnectionString) Using cmd As New SqlCommand(sql, conn) dr = cmd.ExecuteReader() Try Dim cnt As Integer = 0 If dr.Read Then If Not dr.GetValue(0) Is DBNull.Value Then Return CLng(dr.GetValue(0)) End If End If conn.Close() Return 0 Catch ex As Exception MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler") Finally dr.Close() End Try 'end Using End Using Return -1 End Function Public Function getAVGMa(ByVal datumVon As DateTime, ByVal datumBis As DateTime, ByVal DauerVon As String, ByVal DauerBis As String) As List(Of listMaAVG) If DauerVon = "" Then DauerBis = "0" If DauerBis = "" Then DauerBis = "999999" Dim sql As String = "SELECT LetzterMitarbeiterId,avg(Dauer) as avg,mit_nname + ' ' + mit_vname as name, count([LetzterMitarbeiterId]) as count " & " FROM Aviso INNER JOIN ADMIN.dbo.tblMitarbeiter ON mit_id=LetzterMitarbeiterId WHERE ( Datum BETWEEN '" & datumVon.ToShortDateString & "' AND '" & datumBis.ToShortDateString & "') AND ( Dauer BETWEEN '" & DauerVon & "' AND '" & DauerBis & "') AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' GROUP BY LetzterMitarbeiterId,mit_nname,mit_vname" Dim dr As SqlDataReader Dim ll As New List(Of listMaAVG) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) dr = cmd.ExecuteReader() Try Dim cnt As Integer = 0 If dr.HasRows Then While dr.Read If Not dr.Item("LetzterMitarbeiterId") Is DBNull.Value Then Dim l As New listMaAVG l.mit_id = CInt(dr.Item("LetzterMitarbeiterId")) l.mit_name = CStr(dr.Item("name")) l.mit_avg = CInt(dr.Item("avg")) l.mit_count = CInt(dr.Item("count")) ll.Add(l) End If End While Return ll End If conn.Close() Catch ex As Exception MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler") Finally dr.Close() End Try 'end Using End Using Return Nothing End Function End Class Public Class StatDB Public Function getAnzahlLkwAnkunft(art As String, ByVal datTmp As Date, i As Integer, firma As String, CLUSTER As String) As Integer Dim lkws As Integer = 0 Try Dim cn As New SqlConnection() ' cn.ConnectionString = "Data Source=BUCHHALTUNG\SQLEXPRESS;Initial Catalog=AVISO;Integrated Security=false;User ID=sa;Password=BmWr501956;" ' cn.Open() cn = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand("SELECT COUNT(*) FROM [Aviso] where " & art & " between @DatVon and @DatBis " & If(firma <> "", " AND Firma='" & firma & "' ", "") & If(CLUSTER <> "", " AND CLUSTER='" & CLUSTER & "' ", "") & " ", cn) 'DATEADD(dd, 0, DATEDIFF(dd, 0, [Ankunft]))=DATEADD(dd, 0, DATEDIFF(dd, 0, [Freigabe])) AND Dim VonStr = "" Dim BisStr = "" If i = 6 Then VonStr = datTmp.ToString("yyyy-MM-dd ") & "00:00:00" Else VonStr = datTmp.ToString("yyyy-MM-dd ") & i & ":00:00" End If If i = 22 Then BisStr = datTmp.ToString("yyyy-MM-dd ") & "23:59:59" Else BisStr = datTmp.ToString("yyyy-MM-dd ") & i & ":59:59" End If cmd.Parameters.AddWithValue("@DatVon", VonStr) cmd.Parameters.AddWithValue("@DatBis", BisStr) ' MsgBox(VonStr) Dim dr = cmd.ExecuteReader() If dr.HasRows Then dr.Read() lkws = CInt(dr.Item(0)) End If dr.Close() cn.Close() End Using Return lkws Catch ex As Exception MsgBox(ex.Message) End Try Return 0 End Function Public Function getAnzahlLkwAnkunft(art As String, ByVal datTmp As Date, firma As String) As Integer Dim lkws As Integer = 0 Try Dim cn As New SqlConnection() ' cn.ConnectionString = "Data Source=BUCHHALTUNG\SQLEXPRESS;Initial Catalog=AVISO;Integrated Security=false;User ID=sa;Password=BmWr501956;" ' cn.Open() cn = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand("SELECT COUNT(*) FROM [Aviso] where " & art & " between @DatVon and @DatBis AND Firma='" & If(firma <> "", firma, VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA) & "' ", cn) 'DATEADD(dd, 0, DATEDIFF(dd, 0, [Ankunft]))=DATEADD(dd, 0, DATEDIFF(dd, 0, [Freigabe])) AND Dim VonStr = "" Dim BisStr = "" VonStr = datTmp.ToString("yyyy-MM-dd ") & "00:00:00" BisStr = datTmp.ToString("yyyy-MM-dd ") & "23:59:59" cmd.Parameters.AddWithValue("@DatVon", VonStr) cmd.Parameters.AddWithValue("@DatBis", BisStr) ' MsgBox(VonStr) Dim dr = cmd.ExecuteReader() If dr.HasRows Then dr.Read() lkws = CInt(dr.Item(0)) End If dr.Close() cn.Close() End Using Return lkws Catch ex As Exception MsgBox(ex.Message) End Try Return 0 End Function Public Function getAnzahlLkwDauer(ByVal datumVon As DateTime, ByVal datumBis As DateTime, ByVal DauerVon As String, ByVal DauerBis As String, ByVal DauerEinschrVon As String, ByVal DauerEinschrBis As String, Optional where As String = "") As Integer Dim sql As String = "SELECT count(*) as count " & " FROM Aviso WHERE ( Datum BETWEEN '" & datumVon.ToShortDateString & "' AND '" & datumBis.ToShortDateString & "') AND ( Dauer BETWEEN '" & DauerVon & "' AND '" & DauerBis & "') AND ( Dauer BETWEEN '" & DauerEinschrVon & "' AND '" & DauerEinschrBis & "') AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " & where Dim dr As SqlDataReader 'MsgBox(sql) Dim anz As Integer = 0 Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) dr = cmd.ExecuteReader() Try Dim cnt As Integer = 0 If dr.HasRows Then dr.Read() anz = CInt(dr.Item(0)) End If conn.Close() Return anz Catch ex As Exception MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler") Finally dr.Close() End Try 'end Using End Using Return 0 End Function Public Function getAnzahlAvisoProbleme(ByVal kdNr As String, ByVal datumVon As DateTime, ByVal datumBis As DateTime, ByVal DauerVon As String, ByVal DauerBis As String, Optional where As String = "") As List(Of listStatAvisoProleme) 'ZWEICHFACE SELECT, um Doppelte Einträge mit selber AvisoId zu umgehen Dim sql As String = " SELECT VermerkeCode,[Bezeichnung], count(*) as anzahlVermerk " & " FROM " & " (SELECT aviso.avisoid, VermerkeCode,[Bezeichnung] " & " FROM [AVISO].[dbo].[Vermerke] " & " INNER JOIN [Aviso] ON [Vermerke].[AvisoID]=[AVISO].[AvisoID] " & " INNER JOIN [AVISO].[dbo].[VermerkeCodes] ON VermerkeCode=VermerkCodeId " & " where AVISO.Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND /*([Auftraggeber_KdNr] = @kdNr) " & " AND */ ( Aviso.Datum BETWEEN @datumVon AND @datumBis) AND ( Aviso.Dauer BETWEEN @DauerVon AND @DauerBis ) " & where & " group by aviso.avisoid,VermerkeCode,[Bezeichnung] " & " ) AS tbl " & " WHERE VermerkeCode IN (1,3,5,7,9,11,13,15,16,25) " & " group by VermerkeCode,[Bezeichnung] " & " ORDER BY anzahlVermerk DESC " Dim dr As SqlDataReader Dim data As New List(Of listStatAvisoProleme) Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@kdNr", kdNr) cmd.Parameters.AddWithValue("@datumVon", datumVon.ToShortDateString) cmd.Parameters.AddWithValue("@datumBis", datumBis.ToShortDateString) cmd.Parameters.AddWithValue("@DauerVon", DauerVon) cmd.Parameters.AddWithValue("@DauerBis", DauerBis) 'cmd.Parameters.AddWithValue("@DauerEinschrVon", DauerEinschrVon) 'cmd.Parameters.AddWithValue("@DauerEinschrBis", DauerEinschrBis) dr = cmd.ExecuteReader() Try Dim cnt As Integer = 0 While dr.Read() Dim d As New listStatAvisoProleme d.VermerkeCode = CInt(dr.Item("VermerkeCode")) d.Bezeichnung = CStr(dr.Item("Bezeichnung")) d.AnzahlVermerke = CInt(dr.Item("anzahlVermerk")) data.Add(d) End While conn.Close() Catch ex As Exception MsgBox(System.Reflection.MethodInfo.GetCurrentMethod.Name & ": Fehler mit der Datenbankverbindung:" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Datenbankfehler") Finally dr.Close() End Try 'end Using End Using Return data End Function End Class Public Class adminfunc Public Function getDatatable(connstr As String, hSQL As String) As DataTable Dim conn As SqlConnection = Nothing Try conn = New SqlConnection(connstr) conn.Open() Dim myTable = New DataTable() 'Dim sql As String 'sql = hSQL Using cmd As New SqlCommand(hSQL, conn) Using dr As SqlDataReader = cmd.ExecuteReader() myTable.Load(dr) dr.Close() End Using End Using Return myTable 'While Schleife wird hier verlassen Catch ex As Exception Dim antwort As MsgBoxResult = MsgBox(ex.Message, CType(MsgBoxStyle.RetryCancel + MsgBoxStyle.Exclamation, MsgBoxStyle), "Problem in Function 'getKunden'") If antwort <> MsgBoxResult.Retry Then 'Programm wird beendet MsgBox("Programm wird aufgrund eines kritischen Problems beendet.", vbInformation) Environment.Exit(0) End If End Try conn.Close() ' End While Return Nothing End Function Public Sub setAuftraggber(ByVal Auftraggeber As String, ByVal Auftraggeber_KdNr As String) Dim hAuswahl As String hAuswahl = String.Format( "UPDATE Aviso SET [Auftraggeber_KdNr] = @Auftraggeber_KdNr " & "WHERE [Auftraggeber] = @Auftraggeber") Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Auftraggeber", Auftraggeber) cmd.Parameters.AddWithValue("@Auftraggeber_KdNr", Auftraggeber_KdNr) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Firma") End Try End Using conn.Close() End Sub Public Sub setFirmenKdNr(ByVal Firma As String, ByVal KundenNr As String) Dim sql = "UPDATE Firmen SET KundenNr = @KundenNr " & "WHERE [Firma] like @Firma " ' MsgBox("UPDATE Firmen SET KundenNr = '" & KundenNr & "' " & ' "WHERE [Firma] like '" & Firma & "' ") Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Firma", Firma) cmd.Parameters.AddWithValue("@KundenNr", KundenNr) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Firma") End Try End Using conn.Close() End Sub Public Sub setFraechter(ByVal Frächter As String, ByVal Frächter_KdNr As String) Dim hAuswahl As String hAuswahl = String.Format( "UPDATE Aviso SET [Frächter_KdNr] = @Frächter_KdNr " & "WHERE [Frächter] = @Frächter") Dim sql = hAuswahl Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnection() Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@Frächter", Frächter) cmd.Parameters.AddWithValue("@Frächter_KdNr", Frächter_KdNr) Try cmd.ExecuteNonQuery() Catch ex As SqlException MsgBox("Datensatz kann nicht gespeichert werden!" & vbCrLf & vbCrLf & ex.Message, vbExclamation, "Fehler beim Speichern Firma") End Try End Using conn.Close() End Sub End Class