391 lines
17 KiB
VB.net
391 lines
17 KiB
VB.net
Imports System.Data.SqlClient
|
|
Imports System.Reflection
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class cDakosy_Zollanmeldungen
|
|
|
|
Property dy_Id As Integer = -1
|
|
Property dy_ART As String = ""
|
|
Property dy_BezugsNr As String = ""
|
|
Property dy_Status As Integer
|
|
Property dy_Status_KEWILL_Equivalent As Integer
|
|
Property dy_AvisoId As Object = Nothing
|
|
Property dy_SendungsId As Object = Nothing
|
|
Property dy_Erstellung As DateTime = Now
|
|
Property dy_Erstellung_SB As Object = Nothing
|
|
Property dy_LetzteBearbeitung As DateTime = Now
|
|
Property dy_LetzteBearbeitung_SB As Object = Nothing
|
|
Property dy_Steuerbescheid_dsId As Object = Nothing
|
|
Property dy_VBD_dsId As Object = Nothing
|
|
Property dy_ABD_dsId As Object = Nothing
|
|
Property dy_AVM_dsId As Object = Nothing
|
|
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
'Sub New()
|
|
' End Sub
|
|
|
|
Sub New(dy_ART, dy_BezugsNr, dy_AvisoId, dy_SendungsId)
|
|
Me.dy_ART = dy_ART
|
|
Me.dy_BezugsNr = dy_BezugsNr
|
|
Me.dy_AvisoId = dy_AvisoId
|
|
Me.dy_SendungsId = dy_SendungsId
|
|
Me.dy_Erstellung_SB = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
|
|
Me.dy_LetzteBearbeitung_SB = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
|
|
SAVE()
|
|
End Sub
|
|
|
|
Sub New()
|
|
End Sub
|
|
|
|
|
|
Sub New(dy_Id)
|
|
Me.dy_Id = dy_Id
|
|
LOAD()
|
|
End Sub
|
|
|
|
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Id", dy_Id, , True, True))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_ART", dy_ART))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_BezugsNr", dy_BezugsNr))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Status", dy_Status))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Status_KEWILL_Equivalent", dy_Status_KEWILL_Equivalent))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_AvisoId", dy_AvisoId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_SendungsId", dy_SendungsId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Erstellung", dy_Erstellung))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Erstellung_SB", dy_Erstellung_SB))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_LetzteBearbeitung", dy_LetzteBearbeitung))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_LetzteBearbeitung_SB", dy_LetzteBearbeitung_SB))
|
|
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Steuerbescheid_dsId", dy_Steuerbescheid_dsId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_VBD_dsId", dy_VBD_dsId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_ABD_dsId", dy_ABD_dsId))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_AVM_dsId", dy_AVM_dsId))
|
|
|
|
Return list
|
|
End Function
|
|
|
|
|
|
|
|
Public Function SAVE() As Boolean
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblDakosy_Zollanmeldungen WITH(updlock,serializable) WHERE dy_Id=@dy_Id) " &
|
|
" BEGIN " & getUpdateCmd() & " END " &
|
|
" Else " &
|
|
" BEGIN " & getInsertCmd() & " END " &
|
|
" commit tran "
|
|
|
|
dy_Id = SQL.doSQLVarListID(dy_Id, sqlstr, "FMZOLL", , list)
|
|
Return dy_Id > 0
|
|
End Function
|
|
|
|
|
|
Public Function tryFindAviso() As Boolean
|
|
Dim srchStrFiliale = ""
|
|
Dim srchStrAbf = ""
|
|
If Me.dy_BezugsNr.Contains("/") Then
|
|
Dim split = Me.dy_BezugsNr.Split("/")
|
|
If split.Length >= 2 Then
|
|
srchStrFiliale = split(0)
|
|
|
|
'Wenn Abfertigungsnummer korrekt gefunden wurde...
|
|
If IsNumeric(split(1)) Then
|
|
srchStrAbf = split(1)
|
|
Else
|
|
Dim tmp = ""
|
|
'Bis zum ersten Buchstaben...
|
|
For Each s In split(1)
|
|
If IsNumeric(s) Then : tmp &= s
|
|
Else : Exit For : End If
|
|
Next
|
|
srchStrAbf = tmp
|
|
End If
|
|
|
|
' ElseIf Then
|
|
' srchStrAbf = split(X)
|
|
Else
|
|
' Return False
|
|
End If
|
|
|
|
End If
|
|
|
|
If IsNumeric(srchStrFiliale) AndAlso IsNumeric(srchStrAbf) AndAlso srchStrFiliale.Length = 4 Then
|
|
'If srchStrAbf.Length > 8 Then srchStrAbf = srchStrAbf.Substring(0, 8)
|
|
If srchStrAbf.Length < 8 Then srchStrAbf = Me.dy_Erstellung.ToString("yy") & CInt(srchStrAbf).ToString("000000")
|
|
|
|
Dim sqlstr = " select [tblSnd_SendungID],[tblSnd_AvisoID] FROM [tblSendungen] where '" & srchStrAbf & "' like ('%' + cast(AbfertigungsNr as varchar(10))+ '%') and FilialenNr ='" & srchStrFiliale & "' and AbfertigungsNr >0"
|
|
|
|
Dim dt2 As DataTable = SQL.loadDgvBySql(sqlstr, "AVISO")
|
|
If dt2 IsNot Nothing AndAlso dt2.Rows.Count > 0 Then
|
|
Me.dy_SendungsId = dt2.Rows(0)("tblSnd_SendungID")
|
|
Me.dy_AvisoId = dt2.Rows(0)("tblSnd_AvisoID")
|
|
Return True
|
|
End If
|
|
End If
|
|
|
|
'UNISPED:
|
|
Dim sqlstr2 = " select [tblSnd_SendungID],[tblSnd_AvisoID] FROM [tblSendungen] where '" & Me.dy_BezugsNr & "' like ( cast(tblSnd_DakosyRef as varchar(20))+ '%') AND tblSnd_DakosyRef is not null AND len(tblSnd_DakosyRef) > 10 "
|
|
Dim dt = SQL.loadDgvBySql(sqlstr2, "AVISO")
|
|
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
|
|
Me.dy_SendungsId = dt.Rows(0)("tblSnd_SendungID")
|
|
Me.dy_AvisoId = dt.Rows(0)("tblSnd_AvisoID")
|
|
Return True
|
|
End If
|
|
|
|
Return False
|
|
End Function
|
|
|
|
|
|
Public Sub LOAD()
|
|
Try
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT * FROM tblDakosy_Zollanmeldungen WHERE dy_Id=@dy_Id ", conn)
|
|
cmd.Parameters.AddWithValue("@dy_Id", dy_Id)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each l In getParameterList()
|
|
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(l.Scalarvariable)
|
|
|
|
If dr.Item(l.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(Me, Nothing)
|
|
Else
|
|
propInfo.SetValue(Me, dr.Item(l.Text))
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
Public Function UPDATE_Status(status As Integer) As String
|
|
If dy_Id > 0 Then
|
|
Try
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Id", dy_Id, , True))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Status_KEWILL_Equivalent", status, , True))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Status", status, , True))
|
|
dy_Status_KEWILL_Equivalent = status
|
|
dy_Status = status
|
|
|
|
Return SQL.doSQLVarList(" UPDATE [tblDakosy_Zollanmeldungen] SET dy_Status_KEWILL_Equivalent=@dy_Status_KEWILL_Equivalent,dy_Status=@dy_Status WHERE dy_Id=@dy_Id ", "FMZOLL", , list)
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End If
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
Shared Function UPDATE_StatusById(dy_Id As Integer, status As Integer) As String
|
|
If dy_Id > 0 Then
|
|
Try
|
|
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Id", dy_Id, , True))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Status_KEWILL_Equivalent", status, , True))
|
|
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dy_Status", status, , True))
|
|
'dy_Status_KEWILL_Equivalent = status
|
|
'dy_Status = status
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
Return SQL.doSQLVarList(" UPDATE [tblDakosy_Zollanmeldungen] SET dy_Status_KEWILL_Equivalent=@dy_Status_KEWILL_Equivalent,dy_Status=@dy_Status WHERE dy_Id=@dy_Id ", "FMZOLL", , list)
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End If
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
|
|
Shared Function LOADById(dy_Id As String) As cDakosy_Zollanmeldungen
|
|
Try
|
|
Dim NCTS As New cDakosy_Zollanmeldungen
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblDakosy_Zollanmeldungen WHERE dy_Id=@dy_Id ", conn)
|
|
cmd.Parameters.AddWithValue("@dy_Id", dy_Id)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each l In NCTS.getParameterList()
|
|
Dim propInfo As PropertyInfo = NCTS.GetType.GetProperty(l.Scalarvariable)
|
|
|
|
If dr.Item(l.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(NCTS, Nothing)
|
|
Else
|
|
propInfo.SetValue(NCTS, dr.Item(l.Text))
|
|
End If
|
|
|
|
Next
|
|
|
|
dr.Close()
|
|
Return NCTS
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return Nothing
|
|
End Function
|
|
|
|
|
|
Shared Function LOADByBezugsNr(bezugsNr As String) As cDakosy_Zollanmeldungen
|
|
Try
|
|
Dim NCTS As New cDakosy_Zollanmeldungen
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
If bezugsNr = "" Then Return Nothing
|
|
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT TOP 1 * FROM tblDakosy_Zollanmeldungen WHERE dy_BezugsNr=@bezugsNr ", conn)
|
|
cmd.Parameters.AddWithValue("@bezugsNr", bezugsNr)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
For Each l In NCTS.getParameterList()
|
|
Dim propInfo As PropertyInfo = NCTS.GetType.GetProperty(l.Scalarvariable)
|
|
|
|
If dr.Item(l.Text) Is DBNull.Value Then
|
|
propInfo.SetValue(NCTS, Nothing)
|
|
Else
|
|
propInfo.SetValue(NCTS, dr.Item(l.Text))
|
|
End If
|
|
|
|
Next
|
|
|
|
dr.Close()
|
|
Return NCTS
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
|
|
End Try
|
|
Return Nothing
|
|
End Function
|
|
|
|
Shared Function ExistsBezugsNr(bezugsNr As String) As Boolean
|
|
Try
|
|
Dim NCTS As New cDakosy_Zollanmeldungen
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
|
Using cmd As New SqlCommand("SELECT TOP 1 dy_id FROM tblDakosy_Zollanmeldungen WHERE dy_BezugsNr=@bezugsNr ", conn)
|
|
cmd.Parameters.AddWithValue("@bezugsNr", bezugsNr)
|
|
Dim dr = cmd.ExecuteReader()
|
|
If dr.Read Then
|
|
Return True
|
|
End If
|
|
dr.Close()
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
Public Sub UPDATE_AVISO_SND(dy_SendungsId)
|
|
|
|
'Beim Senden soll die Sendung überhnommen + tblSnd_VG_MA gesetzt werden --> damit gleich gesehen wird, dass der Akt in Bearbeitung ist.
|
|
If dy_SendungsId IsNot Nothing AndAlso dy_SendungsId > 0 Then
|
|
Dim SND As New VERAG_PROG_ALLGEMEIN.cSendungen(dy_SendungsId)
|
|
If SND.tblSnd_VG_MA <> VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then ' Nur wenn nicht bereits übernommen
|
|
SND.tblSnd_VG_MA = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
|
|
SND.LetzterMitarbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
|
|
SND.LetzterMitarbeiterId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
|
|
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then ' nur, wenn BO, dann darf das Team geändert werden... Damit das zuständige Team nachvollzeiehn kann, was mit dem LKW ist...
|
|
SND.tblSnd_TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
|
|
End If
|
|
If SND.SAVE() Then
|
|
Dim AvisoDAL As New cAvisoDAL
|
|
AvisoDAL.addAenderung(SND.tblSnd_AvisoID, "Sendung übernommen", "Sendung Nr. " & SND.tblSnd_PosUnterNr & " übernommen von " & VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & " am " & Format(Now, "dd.MM.yyyy HH:mm") & " (AUTO - DY/Send)")
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
Public Sub UPDATE_DATA()
|
|
Try
|
|
Select Case dy_ART
|
|
Case "T1", "T2"
|
|
'SQL, die daten aus den jeweiligen tabellen ausliest und hier aktualisiert
|
|
Dim Dakosy_NCTSOut As New DAKOSY_Worker.cDakosyNCTSOut
|
|
Dakosy_NCTSOut.LOADByAnmID(dy_Id, False)
|
|
If Dakosy_NCTSOut IsNot Nothing Then
|
|
Me.dy_BezugsNr = Dakosy_NCTSOut.ncts_ObjectName
|
|
Me.dy_Status = Dakosy_NCTSOut.ncts_Status
|
|
Me.dy_Status_KEWILL_Equivalent = Dakosy_NCTSOut.ncts_Status_KEWILL_Equivalent
|
|
Me.dy_Erstellung = Dakosy_NCTSOut.ncts_Erstellung
|
|
Me.dy_Erstellung_SB = Dakosy_NCTSOut.ncts_Erstellung_SB
|
|
Me.dy_LetzteBearbeitung = Dakosy_NCTSOut.ncts_LetzteBearbeitung
|
|
Me.dy_LetzteBearbeitung_SB = Dakosy_NCTSOut.ncts_LetzteBearbeitung_SB
|
|
End If
|
|
|
|
End Select
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Public Function getUpdateCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
|
|
Dim str As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
Return (" UPDATE [tblDakosy_Zollanmeldungen] SET " & str & " WHERE dy_Id=@dy_Id ")
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
Public Function getInsertCmd() As String
|
|
Try
|
|
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
|
|
Dim str As String = ""
|
|
Dim values As String = ""
|
|
For Each i In list
|
|
If Not i.isPrimaryParam Then
|
|
str &= "[" & i.Text & "],"
|
|
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
|
|
End If
|
|
Next
|
|
str = str.Substring(0, str.Length - 1) 'wg. ','
|
|
values = values.Substring(0, values.Length - 1) 'wg. ','
|
|
Return (" INSERT INTO tblDakosy_Zollanmeldungen (" & str & ") VALUES(" & values & ") ")
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
|
|
|
|
End Class
|