Files
SDL/VERAG_PROG_ALLGEMEIN/AVISO/cMeineFunktionenAVISO.vb
2024-10-02 08:59:41 +00:00

259 lines
9.7 KiB
VB.net

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