Files
ADMIN/DAKOSY_Worker/DAKOSY/cDakosy_Zollanmeldungen.vb
2019-08-08 12:44:50 +02:00

345 lines
14 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Reflection
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
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))
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)
srchStrAbf = split(1)
' ElseIf Then
' srchStrAbf = split(X)
Else
Return False
End If
End If
If Not IsNumeric(srchStrFiliale) Or Not IsNumeric(srchStrAbf) Then Return False
If srchStrFiliale.Length <> 4 Then Return False
'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 dt As DataTable = SQL.loadDgvBySql(sqlstr, "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_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