Files
DISPO/UID/cTrips.vb
2024-03-14 13:22:51 +01:00

179 lines
6.9 KiB
VB.net

Imports System.Reflection
Public Class cTrips
Dim vpasql As New VERAG_PROG_ALLGEMEIN.SQL
Property tripNr As String = ""
Property trip_Aufträge As DataTable = Nothing '() As List(Of String)
Property trip_Transporter As String = ""
Property trip_FilNr As Integer = Nothing
Property trip_Datum As Date
Property trip_start As String = ""
Property trip_end As String = ""
Dim LoadString As String = "SELECT * FROM dbo.tblTrips WHERE trip_tripNr = '{0}'"
Dim LoadAufträgeString As String = "SELECT
atr_id, atr_frachtpos, atr_FilialenNr, atr_TransportauftragArt, atr_frachtf_firma, atr_frachtfAb_firma,
case
when atr_TransportauftragArt = 'NACH' then atr_frachtfab_firma
when atr_TransportauftragArt = 'VOR' then atr_frachtf_firma
when atr_TransportauftragArt = '' and atr_AuftragsArt = 'Transport' then '--na--'
when atr_AuftragsArt = 'Handling' then '-'
end as Frächter,
atr_ladest_firma, atr_entladest_firma, atr_tripNr, atr_tripStopNr
FROM tblAuftraege WHERE atr_tripNr = '{0}' ORDER BY atr_tripStopNr"
Dim SaveAufträgeString As String = "UPDATE tblAuftraege SET atr_tripStopNr = '{0}' WHERE atr_tripNr = '{1}' AND atr_frachtpos = '{2}'"
Dim TripsUpdateString As String = "UPDATE tblTrips SET {0} WHERE trip_tripNr = '{1}'"
Function getparameterlist() As List(Of SQLVariable)
Dim list As New List(Of SQLVariable)
list.Add(New SQLVariable("trip_tripNr", tripNr))
'Aufträge sind nicht Teil des Tables
list.Add(New SQLVariable("trip_Transporter", trip_Transporter))
list.Add(New SQLVariable("trip_FilNr", trip_FilNr))
list.Add(New SQLVariable("trip_Datum", trip_Datum))
list.Add(New SQLVariable("trip_start", trip_start))
list.Add(New SQLVariable("trip_end", trip_end))
Return list
End Function
Function LoadTrip(Optional ByVal overrideTripNr As Integer = -1)
Dim TripNummer As New Integer
If overrideTripNr = -1 Then
TripNummer = Me.tripNr
Else
TripNummer = overrideTripNr
End If
Dim dt As New DataTable
dt = vpasql.loadDgvBySql(String.Format(LoadString, TripNummer), "DISPO")
If dt.Rows.Count > 0 Then
For Each c As DataColumn In dt.Columns
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName)
If propInfo IsNot Nothing Then
If Not IsDBNull(c.Table.Rows(0).Item(c)) Then
propInfo.SetValue(Me, c.Table.Rows(0).Item(c))
End If
End If
Next
Else
Return False
Exit Function
End If
LoadTripAuftraege()
Return True
End Function
Function SaveTripAsNew()
tripNr = CreateNewTripNr()
LoadTripAuftraege()
getStartAndEnd()
Dim Spalten As String = ""
Dim Werte As String = ""
Dim List As List(Of SQLVariable) = getparameterlist()
For Each i In List
Spalten &= i.SQLText & ","
Werte &= "'" & i.SQLValue.replace("'", "") & "',"
Next
Spalten = Spalten.Substring(0, Spalten.Length - 1)
Werte = Werte.Substring(0, Werte.Length - 1)
Dim sqlstring As String = "INSERT INTO dbo.tblTrips (" & Spalten & ") VALUES (" & Werte & ")"
vpasql.doSQLVarList(sqlstring, "DISPO")
End Function
Function CreateNewTripNr()
Dim dt As New DataTable
dt = vpasql.loadDgvBySql("SELECT MAX(trip_tripNr) as maxtrip from dbo.tblTrips", "DISPO")
Dim maxtrip As Integer = vpasql.VarToDbl(dt.Rows(0).Item(0))
If Not maxtrip = -1 Then
Return maxtrip + 1
tripNr = maxtrip + 1
Else
Return 0
tripNr = 0
End If
End Function
Function CreateNextStop()
Dim dt As New DataTable
dt = vpasql.loadDgvBySql("SELECT MAX(atr_tripStopNr) as maxtripStopNr from dbo.tblAuftraege WHERE atr_tripNr = '" & Me.tripNr & "'", "DISPO")
Dim maxtripstop As Integer = vpasql.VarToDbl(dt.Rows(0).Item(0))
If Not maxtripstop = -1 Then
Return maxtripstop + 1
Else
Return 0
End If
End Function
Function DeleteTrip()
If MsgBox("Trip komplett löschen?", MsgBoxStyle.OkCancel, "Trip löschen!") = MsgBoxResult.Cancel Then Exit Function
For Each row As DataRow In trip_Aufträge.Rows
RemoveAuftragFromTrip(row.Item("atr_ID"), True)
Next
End Function
Function RemoveAuftragFromTrip(ByVal AufID As Integer, Optional ByVal Silent As Boolean = False)
LoadTripAuftraege()
If trip_Aufträge.Rows.Count = 1 Then
If Not Silent Then If MsgBox("Letzer Auftrag des Trips! Trip wird mit Bestätigung ebenfalls gelöscht!", MsgBoxStyle.OkCancel, "Letzter Auftrag!") = MsgBoxResult.Cancel Then Exit Function
vpasql.doSQLVarList("delete from tblTrips where trip_tripNr = '" & Me.tripNr & "'", "DISPO")
End If
Dim sqlstring As String = "update tblAuftraege set atr_tripNr = null, atr_tripStopNr = null where atr_id = '" & AufID & "' "
vpasql.doSQLVarList(sqlstring, "DISPO")
End Function
Function LoadTripAuftraege()
trip_Aufträge = vpasql.loadDgvBySql(String.Format(LoadAufträgeString, Me.tripNr), "DISPO")
End Function
Function SaveTripAuftraege()
For Each row As DataRow In trip_Aufträge.Rows
vpasql.doSQL(String.Format(SaveAufträgeString, row.Item("atr_tripStopNr").ToString, row.Item("atr_tripNr").ToString, row.Item("atr_frachtpos").ToString), "DISPO")
Next
getStartAndEnd()
update()
End Function
Function update()
Dim UpdateString As String = ""
Dim WhereString As String = ""
Dim list As List(Of SQLVariable) = getparameterlist()
For Each i In list
If Not i.SQLText = "trip_tripNr" Then UpdateString &= "[" & i.SQLText & "]='" & i.SQLValue & "',"
Next
UpdateString = UpdateString.Substring(0, UpdateString.Length - 1) 'wg. ','
vpasql.doSQL(String.Format(TripsUpdateString, UpdateString, tripNr), "DISPO")
End Function
Function getStartAndEnd()
trip_start = trip_Aufträge.Rows(0).Item("atr_ladest_firma").ToString
trip_end = trip_Aufträge.Rows(trip_Aufträge.Rows.Count - 1).Item("atr_entladest_firma").ToString
'Select Case trip_Aufträge.Rows(0).Item("atr_TransportauftragArt").ToString
' Case "NACH"
' trip_Transporter = trip_Aufträge.Rows(0).Item("atr_frachtfAb_firma").ToString
' Case "VOR"
' trip_Transporter = trip_Aufträge.Rows(0).Item("atr_frachtf_firma").ToString
' Case Else
' trip_Transporter = "---"
'End Select
trip_Transporter = trip_Aufträge.Rows(0).Item("Frächter").ToString
End Function
End Class
'atr_frachtf_firma, atr_frachtfAb_firma