Imports System.Windows.Forms Public Class cMeineFunktionenAVISO 'Diese Klasse beinhaltet alle meine Funktionen, die in allen Projekten verwendet werden können Public Shared Function grayoutForm() As Form Dim f As New frmGrayOut f.Show() Return f End Function Public Const LeerDatum As Date = #12/30/1899# 'wird als leerer Datumswert verwendet, da sonst Probleme bei Null/Date Public Shared Function SQLDatum(dat As Date) As String 'Datum für SQLAbfrage umwandeln (31.01.1998 --> #1/31/1998#) SQLDatum = "" If Not IsDate(dat) Then Exit Function SQLDatum = "'" & DateAndTime.Day(dat) & "." & DateAndTime.Month(dat) & "." & DateAndTime.Year(dat) & " 00:00:00'" 'SQLDatum = dat.ToString End Function Public Shared Function SQLDatumZeit(dat As Date) As String 'Datum inklusive Zeit für SQLAbfrage umwandeln (31.01.1998 10:15 Uhr --> #1/31/1998 10:15:00#) SQLDatumZeit = "" If Not IsDate(dat) Then Exit Function SQLDatumZeit = "'" & DateAndTime.Day(dat) & "." & DateAndTime.Month(dat) & "." & DateAndTime.Year(dat) & " " & DateAndTime.Hour(dat) & ":" & DateAndTime.Minute(dat) & "'" End Function Public Shared Function SQLDatumZeitSekunden(dat As Date) As String 'Datum inklusive Zeit für SQLAbfrage umwandeln (31.01.1998 10:15 Uhr --> #1/31/1998 10:15:00#) SQLDatumZeitSekunden = "" If Not IsDate(dat) Then Exit Function SQLDatumZeitSekunden = "'" & DateAndTime.Day(dat) & "." & DateAndTime.Month(dat) & "." & DateAndTime.Year(dat) & " " & DateAndTime.Hour(dat) & ":" & DateAndTime.Minute(dat) & ":" & DateAndTime.Second(dat) & "'" End Function Public Shared Function SQLNullDate(d As Date) As Object 'Wenn Datum 00.00.0000, dann wird dbnull zurückgegeben If d = New Date Then : SQLNullDate = DBNull.Value Else : SQLNullDate = d : End If End Function Public Shared Function GetProgrammIcon() As Drawing.Icon Return My.Resources.Aviso End Function Public Shared Function VarToInt(ByVal wert As Object) As Integer Try If wert Is Nothing OrElse wert Is DBNull.Value Then Return 0 Else Return CInt(wert) End If Catch generatedExceptionName As Exception Return 0 End Try End Function Public Shared Function VarToInt2(ByVal wert As Object) As Integer Try If wert Is Nothing OrElse wert Is DBNull.Value OrElse Not IsNumeric(wert) Then Return -1 Else Return CInt(wert) End If Catch generatedExceptionName As Exception Return -1 End Try End Function Public Shared Function VarToLng(ByVal wert As Object) As Long Try If wert Is Nothing OrElse wert Is DBNull.Value Then Return 0 Else Return CLng(wert) End If Catch generatedExceptionName As Exception Return 0 End Try End Function Public Shared Function VarToDbl(ByVal wert As Object) As Double Try If wert Is Nothing OrElse wert Is DBNull.Value Then Return 0 Else Return CDbl(wert) End If Catch generatedExceptionName As Exception Return 0 End Try 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 VarToBool(ByVal wert As Object) As Boolean Try If wert Is Nothing OrElse wert Is DBNull.Value Then Return False Else Return CBool(wert) End If Catch generatedExceptionName As Exception Return False End Try End Function Public Shared Function VarToStr(ByVal wert As Object) As String Try If wert Is Nothing OrElse wert Is DBNull.Value Then Return "" Else Return Trim(DirectCast(wert, String)) End If Catch generatedExceptionName As Exception Return "" End Try End Function Public Shared Function VarToDate(ByVal wert As Object) As Nullable(Of DateTime) Try If wert Is Nothing OrElse wert Is DBNull.Value Then Return LeerDatum 'Nothing Else Return DirectCast(wert, DateTime) End If Catch generatedExceptionName As Exception Return Nothing End Try End Function Public Shared Function IstGleich(i As Integer, ParamArray list As Integer()) As Boolean 'prüft, ob ein Wert in einer Liste enthalten ist - z.B. i = 5 or 7 or 11 or 29 For x As Integer = 0 To list.Length - 1 If list(x) = i Then Return True End If On Error Resume Next Next Return False End Function Public Shared Function Minuten_auf_Text(hMinuten As Long) As String If hMinuten <= 0 Then Return "" Dim hStunden As Long Dim hMinus As Boolean Dim hMin As Long Minuten_auf_Text = "" hMin = hMinuten If hMin = 0 Then Minuten_auf_Text = "0:00" Exit Function End If If hMin < 0 Then hMinus = True hMin = hMin * -1 End If hStunden = CLng(Fix(hMin / 60)) hMin = hMin - (hStunden * 60) If hMinus Then Minuten_auf_Text = "-" 'Minus wird nur bei Stunden angezeigt Minuten_auf_Text = Minuten_auf_Text & hStunden & ":" & Format(hMin, "00") End Function Public Shared Function ZeitInMinuten(hDat As Date) As Long ZeitInMinuten = 0 If Not IsDate(hDat) Then Exit Function ZeitInMinuten = Hour(hDat) * 60 + Minute(hDat) End Function Public Shared Function GetNewMaxPosNr(ByVal FilialeNr As Integer, Optional Year As Integer = -1) As Integer Return VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(FilialeNr, CInt(IIf(Year > 0, Year, Now.Year))) End Function Public Shared Function LKWFertig(AvisoID, Optional newLKWOK = Nothing) As Boolean Dim AvisoDAL As New VERAG_PROG_ALLGEMEIN.cAvisoDAL Dim VermerkeDAL As New VERAG_PROG_ALLGEMEIN.cVermerkeDAL If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then MsgBox("Keine Berechtigung!") Return False End If 'falls keine Auswahl bzw. kein Datensatz, dann nichts machen If AvisoID <= 0 Then MsgBox("Kein Aviso ausgewählt!") Return False End If 'jetzt ausgewählten Datensatz einlesen Dim Aviso As New cAviso Aviso = AvisoDAL.LesenAviso(AvisoID, "") If Aviso Is Nothing Then Return False If Aviso.Abgeschlossen Then MsgBox("Der Akt wurde bereichts abgeschlossen.", vbInformation) : Return False If newLKWOK Is Nothing Then newLKWOK = Not Aviso.LKW_fertig Else If newLKWOK = Aviso.LKW_fertig Then Return True 'Wenn schon OK ist End If Dim msg As String Dim antwort As MsgBoxResult 'Taste LKW ist fertig If Aviso.Status <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then MsgBox("Es kann nur ein LKW mit Status ANKUNFT auf 'FERTIG/nicht FERTIG' gesetzt werden.", vbInformation) Return False End If Dim aendArt As String = "" Dim aendText As String = "" 'Status ist Ankunft - LKW wird je nach Eintrag auf Fertig/nicht fertig gesetzt Aviso.letzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter Aviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId Dim hVermerk As New cVermerk 'bei Fertig zusätzlich einen Vermerk setzen hVermerk.AvisoID = Aviso.AvisoID hVermerk.Datum = Now hVermerk.Mitarbeiter = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter hVermerk.MitarbeiterId = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.MitarbeiterID If newLKWOK Then Aviso.LKW_fertig = True Aviso.Änderungen = "LKW ist fertig - gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen)) hVermerk.Hinweis_Vermerk = "LKW ist fertig!" hVermerk.VermerkCodeId = 26 VermerkeDAL.SpeichernVermerk(hVermerk) aendArt = "LKW ist fertig - gesetzt" aendText = "LKW ist fertig - gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") Else Aviso.LKW_fertig = False Aviso.Änderungen = "LKW ist nicht fertig - gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & Trim(VarToStr(Aviso.Änderungen)) hVermerk.Hinweis_Vermerk = "LKW ist nicht fertig." hVermerk.VermerkCodeId = 27 VermerkeDAL.SpeichernVermerk(hVermerk) aendArt = "LKW ist nicht fertig - gesetzt" aendText = "LKW ist nicht fertig - gesetzt von " & VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") End If Dim tmpid = AvisoDAL.SpeichernAviso(Aviso) AvisoDAL.addAenderung(tmpid, aendArt, aendText) Return (tmpid > 0) End Function End Class