You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

781 lines
36 KiB

Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Imports System.ComponentModel
Public Class Statushandling
#Region "Deklarationen"
Dim m_aktuellerstatus As Integer
Dim m_neuerstatus As Integer
Dim m_abgeschlossen As Boolean
Dim m_ausgangsarchivierung As Boolean
Dim m_eingangsarchivierung As Boolean
Dim m_folgestatus As Boolean
Dim m_dokumentid As String
'SHU 2004-12-01
Dim m_datum_erneute_bearbeitung As DateTime
Dim m_erneute_bearbeitung As Boolean = False
Property Erneute_Bearbeitung() As Boolean
Get
Return m_erneute_bearbeitung
End Get
Set(ByVal Value As Boolean)
m_erneute_bearbeitung = Value
End Set
End Property
Dim m_erneut_bza As Integer = 0
Property Erneut_BZA() As Integer
Get
Return m_erneut_bza
End Get
Set(ByVal Value As Integer)
m_erneut_bza = Value
End Set
End Property
Property Dokumentid() As String
Get
Return m_dokumentid
End Get
Set(ByVal Value As String)
m_dokumentid = Value
End Set
End Property
Property AktullerStatus() As Integer
Get
Return m_aktuellerstatus
End Get
Set(ByVal Value As Integer)
m_aktuellerstatus = Value
End Set
End Property
Property NeuerStatus() As Integer
Get
Return m_neuerstatus
End Get
Set(ByVal Value As Integer)
m_neuerstatus = Value
End Set
End Property
Property Ablgeschossen() As Boolean
Get
Return m_abgeschlossen
End Get
Set(ByVal Value As Boolean)
m_abgeschlossen = Value
End Set
End Property
Property Ausgangsarchivierung() As Boolean
Get
Return m_ausgangsarchivierung
End Get
Set(ByVal Value As Boolean)
m_ausgangsarchivierung = Value
End Set
End Property
Property Eingangsarchivierung() As Boolean
Get
Return m_eingangsarchivierung
End Get
Set(ByVal Value As Boolean)
m_eingangsarchivierung = Value
End Set
End Property
Property Folgestatus() As Boolean
Get
Return m_folgestatus
End Get
Set(ByVal Value As Boolean)
m_folgestatus = Value
End Set
End Property
#End Region
Dim dokumentwerte As DataTable
#Region "Meldungen"
Public Sub Meldung_Verantwortlicher(ByVal dokumentid As String, ByVal verantwortlicher As Integer)
Try
dokumentwerte = GetDokumentwerte(dokumentid, 100, 0)
insert_Message(1, dokumentid, Meldungstext_aufbereiten, parstext(dokumentwerte.Rows(0).Item("betreff")), 9999, verantwortlicher, 0)
Catch
End Try
End Sub
Public Sub Meldung_Verantwortlicher_aufhebung(ByVal dokumentid As String, ByVal verantwortlicher As Integer)
Try
dokumentwerte = GetDokumentwerte(dokumentid, 110, 0)
insert_Message(1, dokumentid, Meldungstext_aufbereiten, parstext(dokumentwerte.Rows(0).Item("betreff")), 9999, verantwortlicher, 0)
Catch
End Try
End Sub
Public Sub Meldung_Status(ByVal dokumentid As String, ByVal status As String)
Try
dokumentwerte = GetDokumentwerte(dokumentid, 0, status)
insert_Message(0, dokumentid, Meldungstext_aufbereiten, parstext(dokumentwerte.Rows(0).Item("betreff")), 9999, 0, status)
Catch
End Try
End Sub
Public Sub Meldung_Eingang(ByVal dokumentid As String, ByVal status As Integer, ByVal empfaenger As Integer)
'BUD - 2006.10.05 - Try
Try
dokumentwerte = GetDokumentwerte(dokumentid, 104, 0)
insert_Message(2, dokumentid, Meldungstext_aufbereiten, parstext(dokumentwerte.Rows(0).Item("betreff")), 9999, empfaenger, 0)
Catch ex As Exception
m_log.Log("Statushandling:Meldung_Eingang:DokID=" & dokumentid & "::" & ex.Message & ex.StackTrace, Common.Common.JournalEntryType.Warning)
End Try
End Sub
Public Sub Meldung_FehlerVerantwortlicher(ByVal dokumentid As String, ByVal Fehlernr As Integer)
dokumentwerte = GetDokumentwerte(dokumentid, Fehlernr, 0)
Try
insert_Message(3, dokumentid, Meldungstext_aufbereiten, parstext(dokumentwerte.Rows(0).Item("betreff")), 9999, 0, 0)
Catch
End Try
End Sub
Public Function Meldungstext_aufbereiten() As String
Dim s As String
s = ""
Try
s = dokumentwerte.Rows(0).Item("meldung") + vbCrLf + dokumentwerte.Rows(0).Item("idvmeldung") + vbCrLf + dokumentwerte.Rows(0).Item("footer")
s = parstext(s)
Catch ex As Exception
End Try
Meldungstext_aufbereiten = s
End Function
Public Function parstext(ByVal s As String) As String
s = s.Replace("&dokumentid&", dokumentwerte.Rows(0).Item("dokumentid"))
s = s.Replace("&nrpar00&", dokumentwerte.Rows(0).Item("nrpar00"))
s = s.Replace("&bkpar00&", dokumentwerte.Rows(0).Item("bkpar00"))
s = s.Replace("&dokumenttyp&", dokumentwerte.Rows(0).Item("bezeichnung"))
s = s.Replace("&status&", dokumentwerte.Rows(0).Item("status"))
s = s.Replace("&statusdatum&", Today)
s = s.Replace("&verantwortlich&", dokumentwerte.Rows(0).Item("verantwortlich"))
s = s.Replace("&absender&", dokumentwerte.Rows(0).Item("absender"))
s = s.Replace("&empfaenger&", dokumentwerte.Rows(0).Item("empfaenger"))
Return s
End Function
Public Function GetDokumentwerte(ByVal Dokumentid As String, ByVal typ As Integer, ByVal status As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.SP_message_getdokumentwerte"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = Globals.conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 9999))
scmCmdToExecute.Parameters.Add(New SqlParameter("@typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, typ))
scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
'MsgBox(ex.Message)
' // some error occured. Bubble it to caller and encapsulate Exception object
Threading.Thread.Sleep(1000)
'Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Return Nothing
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
Public Function insert_Message(ByVal typ As Integer, ByVal Dokumentid As String, ByVal message As String, ByVal betreff As String, _
ByVal absender As Integer, ByVal empfaenger As Integer, ByVal status As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.SP_message_insert"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@absender", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, absender))
scmCmdToExecute.Parameters.Add(New SqlParameter("@empfaenger", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, empfaenger))
scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, betreff))
scmCmdToExecute.Parameters.Add(New SqlParameter("@meldung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, message))
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status))
scmCmdToExecute.Parameters.Add(New SqlParameter("@weiterleiten", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, typ))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
#End Region
#Region "Datenzugriffe"
Private Function Generic_Select(ByVal typ As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Select Case typ
Case 1
scmCmdToExecute.CommandText = "dbo.SP_Dokumentstatus_statushandling_Select"
Case Else
End Select
scmCmdToExecute.CommandType = CommandType.StoredProcedure
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
Select Case typ
Case 1
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid))
Case Else
End Select
If typ = 1 Then
End If
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
#End Region
#Region "Archivierung"
Public Function Set_Ausgangsarchiviert(ByVal dokumentid As String) As Integer
Dim da As DataTable
Dim currentstatus As Integer
Dim i, i1 As Integer
Me.Dokumentid = dokumentid
da = Generic_Select(1)
currentstatus = da.Rows(0).Item("dokument_statusnr")
For i = 0 To da.Rows.Count - 1
If da.Rows(i).Item("status_bezeichnungnr") = 3 Then
For i1 = 0 To da.Rows.Count - 1
If da.Rows(i1).Item("status_bezeichnungnr") = 4 Or _
da.Rows(i1).Item("status_bezeichnungnr") = 5 Then
'SHU 2004-12-01
If Check_Erneute_Bearbeitung(dokumentid) = True Then
Me.Erneute_Bearbeitung = True
Me.insert_history_status(da.Rows(i1).Item("dokument_statusnr"), dokumentid, 9999, Me.m_datum_erneute_bearbeitung)
Me.set_ausgangsarchivierung_ende(dokumentid)
Return 0
'Return da.Rows(i1).Item("dokument_statusnr")
Else
Me.insert_history_status(da.Rows(i1).Item("dokument_statusnr"), dokumentid, 9999)
Me.set_ausgangsarchivierung_ende(dokumentid)
Return da.Rows(i1).Item("dokument_statusnr")
End If
End If
Next
End If
Next
da.Dispose()
End Function
'SHU 2004-12-01
Public Function Check_Erneute_Bearbeitung(ByVal dokumentid As String) As Boolean
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.SP_archiv_check_erneute_bearbeitung"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@erneut_bearbeitet", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@erneut_bza", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@datumzeit", SqlDbType.DateTime, 8, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, Now))
sdaAdapter.Fill(dtToReturn)
If scmCmdToExecute.Parameters("@erneut_bza").Value = 1 Then
Me.Erneut_BZA = 1
Else
Me.Erneut_BZA = 0
End If
If scmCmdToExecute.Parameters("@erneut_bearbeitet").Value > 0 Then
Me.m_datum_erneute_bearbeitung = scmCmdToExecute.Parameters("@datumzeit").Value
Return True
End If
Return False
Catch ex As Exception
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
'SHU 2004-12-01
Public Sub set_ausgangsarchivierung_ende(ByVal dokumentid As String)
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.SP_archiv_set_ausgangsarchivierung_ende"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
sdaAdapter.Fill(dtToReturn)
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Sub
Public Function Set_Eingangsarchiviert(ByVal dokumentid As String) As Integer
'BUD - 2006.10.05 - Try
Try
Dim da As DataTable
Dim currentstatus As Integer
Dim i1 As Integer
Me.Dokumentid = dokumentid
da = Generic_Select(1)
currentstatus = da.Rows(0).Item("dokument_statusnr")
For i1 = 0 To da.Rows.Count - 1
If da.Rows(i1).Item("status_bezeichnungnr") = 6 Or _
da.Rows(i1).Item("status_bezeichnungnr") = 7 Then
' da.Rows(i1).Item("status_bezeichnungnr") = 11 Then
Me.insert_history_status(da.Rows(i1).Item("dokument_statusnr"), dokumentid, 9999)
Return da.Rows(i1).Item("dokument_statusnr")
End If
Next
da.Dispose()
Catch ex As Exception
m_log.Log("Statushandling:Set_Eingangsarchiviert:" & ex.Message & ex.StackTrace, Common.Common.JournalEntryType.Warning)
End Try
End Function
Public Function Set_Eingangsarchiviert(ByVal dokumentid As String, ByVal datum As DateTime) As Integer
'BUD - 2006.10.05 - Try
Try
Dim da As DataTable
Dim currentstatus As Integer
Dim i1 As Integer
Me.Dokumentid = dokumentid
da = Generic_Select(1)
currentstatus = da.Rows(0).Item("dokument_statusnr")
For i1 = 0 To da.Rows.Count - 1
If da.Rows(i1).Item("status_bezeichnungnr") = 6 Or _
da.Rows(i1).Item("status_bezeichnungnr") = 7 Then
' da.Rows(i1).Item("status_bezeichnungnr") = 11 Then
Me.insert_history_status(da.Rows(i1).Item("dokument_statusnr"), dokumentid, 9999, datum)
Return da.Rows(i1).Item("dokument_statusnr")
End If
Next
da.Dispose()
Catch ex As Exception
m_log.Log("Statushandling:Set_Eingangsarchiviert_2Param:" & ex.Message & ex.StackTrace, Common.Common.JournalEntryType.Warning)
End Try
End Function
'EDEX Banklagernd
Public Function Set_Eingangsarchiviert_blindex(ByVal dokumentid As String) As Integer
Dim da As DataTable
Dim currentstatus As Integer
Dim i1 As Integer
Me.Dokumentid = dokumentid
da = Generic_Select(1)
If da.Rows.Count > 0 Then
currentstatus = da.Rows(0).Item("dokument_statusnr")
For i1 = 0 To da.Rows.Count - 1
If da.Rows(i1).Item("status_bezeichnungnr") = 12 Or _
da.Rows(i1).Item("status_bezeichnungnr") = 13 Then
Me.insert_history_status(da.Rows(i1).Item("dokument_statusnr"), dokumentid, 9999)
Return da.Rows(i1).Item("dokument_statusnr")
End If
Next
End If
da.Dispose()
End Function
#End Region
Dim ds As New edokadb.clsDokument_status
Public Sub Dispose()
ds.Dispose()
End Sub
Public Sub Check_Neuer_Status()
ds.cpMainConnectionProvider = conn_edoka
ds.iDokument_statusnr = New SqlInt32(CType(Me.NeuerStatus, Int32))
ds.SelectOne()
If ds.bFolgestatus_durch_anderen_verantwortlichen.Value = True Then
Me.Folgestatus = True
End If
Me.Ausgangsarchivierung = False
If ds.iStatus_bezeichnungnr.Value = 3 Or ds.bDokument_ausgangsarchivierung.Value = True Then
Me.Ausgangsarchivierung = True
End If
If ds.bDokument_bearbeitung_abgeschlossen.Value = True Then
Me.Ablgeschossen = True
End If
End Sub
Public Sub insert_history_status(ByVal statusnr As Integer, ByVal dokumentid As String, ByVal Verantwortlicher As Integer)
Try
Dim sh As New edokadb.clsStatushistory
Dim dbkey As New edokadb.clsMyKey_Tabelle
Dim key As Long
dbkey.cpMainConnectionProvider = conn_edoka
conn_edoka.OpenConnection()
key = dbkey.get_dbkey("statushistory")
Try
conn_edoka.CloseConnection(True)
Catch
End Try
sh.cpMainConnectionProvider = conn_edoka
sh.iStatushistorynr = New SqlInt32(CType(key, Int32))
sh.iStatus = New SqlInt32(CType(statusnr, Int32))
sh.iMandantnr = New SqlInt32(CType(1, Int32))
sh.iMutierer = New SqlInt32(CType(9999, Int32))
sh.bAktiv = New SqlBoolean(True)
sh.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
sh.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
sh.sDokumentid = New SqlString(CType(dokumentid, String))
sh.iVerantwortlich = New SqlInt32(CType(Verantwortlicher, Int32))
conn_edoka.OpenConnection()
sh.Insert()
conn_edoka.CloseConnection(True)
dbkey.Dispose()
sh.Dispose()
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Sub
Public Sub insert_history_status(ByVal statusnr As Integer, ByVal dokumentid As String, ByVal Verantwortlicher As Integer, ByVal datum As DateTime)
Try
Dim sh As New edokadb.clsStatushistory
Dim dbkey As New edokadb.clsMyKey_Tabelle
Dim key As Long
dbkey.cpMainConnectionProvider = conn_edoka
conn_edoka.OpenConnection()
key = dbkey.get_dbkey("statushistory")
Try
conn_edoka.CloseConnection(True)
Catch
End Try
sh.cpMainConnectionProvider = conn_edoka
sh.iStatushistorynr = New SqlInt32(CType(key, Int32))
sh.iStatus = New SqlInt32(CType(statusnr, Int32))
sh.iMandantnr = New SqlInt32(CType(1, Int32))
sh.iMutierer = New SqlInt32(CType(9999, Int32))
sh.bAktiv = New SqlBoolean(True)
sh.daErstellt_am = New SqlDateTime(CType(datum, DateTime))
sh.daMutiert_am = New SqlDateTime(CType(datum, DateTime))
sh.sDokumentid = New SqlString(CType(dokumentid, String))
sh.iVerantwortlich = New SqlInt32(CType(Verantwortlicher, Int32))
conn_edoka.OpenConnection()
sh.Insert()
conn_edoka.CloseConnection(True)
dbkey.Dispose()
sh.Dispose()
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
End Try
End Sub
Public Function Alle_Status(ByVal Dokumentid As String) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.SP_Trefferliste_Select_Status"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
Public Function Status_Erstellen(ByVal dokumentid As String) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_dokumentberabeigung_status_erstellen"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@bck", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
Public Function check_abschluss(ByVal dokumentid As String, ByVal mitarbeiternr As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim i As Integer
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_dokumentberarbeitung_abschluss"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@abschlussstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
sdaAdapter.Fill(dtToReturn)
i = scmCmdToExecute.Parameters.Item("@abschlussstatus").Value
If i <> 0 Then
insert_history_status(i, dokumentid, mitarbeiternr)
If Globals.Excellib.Check_Excel(dokumentid) = True Then
Globals.Excellib.Get_Excel_Values(dokumentid)
End If
Dokument_Abschliessen(dokumentid, i)
End If
Return dtToReturn
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
'Public Function Dokument_Abschliessen(ByVal dokumentid As String, ByVal status As Integer)
' Dim dok As New edokadb.clsDokument()
' dok.cpMainConnectionProvider = conn_edoka
' dok.sDokumentid = New SqlString(CType(dokumentid, String))
' Try
' dok.SelectOne()
' conn_edoka.OpenConnection()
' dok.iStatusnr = New SqlInt32(CType(status, Integer))
' dok.iVerantwortlich = New SqlInt32(CType(9999, Integer))
' dok.Update()
' conn_edoka.CloseConnection(True)
' Meldung_Status(dokumentid, status)
' Catch ex As Exception
' MsgBox(ex.Message)
' End Try
'End Function
Public Sub Dokument_Abschliessen(ByVal dokumentid As String, ByVal status As Integer)
'Excel-Werte auslesen und Dokumentwerge bef<65>llen
Excel_Werte_Auslesen(dokumentid)
Dim dok As New edokadb.clsDokument
Dim dt As New edokadb.clsDokumenttyp
Dim par As New edokadb.clsPartner
Dim loeschung As Boolean = False
Dim verantwortlich As Integer = 0
dok.cpMainConnectionProvider = conn_edoka
par.cpMainConnectionProvider = conn_edoka
dt.cpMainConnectionProvider = conn_edoka
dok.sDokumentid = New SqlString(CType(dokumentid, String))
Try
dok.SelectOne()
par.iNRPAR00 = New SqlInt32(CType(dok.iNrpar00.Value, Int32))
par.SelectOne()
If par.bSaldiert.Value = True Then
'Meldung_Aufhebung(dok.sDokumentid.Value, Globals.MitarbeiterNr)
loeschung = True
End If
conn_edoka.OpenConnection()
dok.iStatusnr = New SqlInt32(CType(status, Integer))
verantwortlich = dok.iVerantwortlich.Value
dok.iVerantwortlich = New SqlInt32(CType(9999, Integer))
dok.Update()
conn_edoka.CloseConnection(True)
Meldung_Status(dokumentid, status)
dt.iDokumenttypnr = New SqlInt32(CType(dok.iDokumenttypnr.Value, Int32))
dt.SelectOne()
If dt.bVertrag.Value = True Then
If loeschung Then
If loeschart(dok.sDokumentid.Value) = 1 Then
Insert_Note(dok.sDokumentid.Value, "Dokument automatisch aufgehoben, da Partner saldiert ist.")
set_aufgehoben(dok.sDokumentid.Value)
Else
Insert_Note(dok.sDokumentid.Value, "Dokument automatisch gel<65>scht, da Partner saldiert ist.")
set_geloescht(dok.sDokumentid.Value)
End If
Me.Meldung_Verantwortlicher_aufhebung(dok.sDokumentid.Value, verantwortlich)
End If
End If
Catch ex As Exception
'MsgBox(ex.Message)
End Try
Try
dok.Dispose()
par.Dispose()
dt.Dispose()
Catch
End Try
End Sub
Sub Excel_Werte_Auslesen(ByVal Dokumentid As String)
End Sub
Private Function loeschart(ByVal dokid As String) As Integer
Dim scmCmdToExecute As SqlCommand = New SqlCommand
scmCmdToExecute.CommandText = "dbo.SP_check_aufhebung_loeschung"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
conn_edoka.OpenConnection()
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@res", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.ExecuteNonQuery()
Return scmCmdToExecute.Parameters("@res").Value
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
conn_edoka.CloseConnection(True)
End Try
End Function
Private Sub set_geloescht(ByVal dokid As String)
Dim archivfnkt As New EDOKA.clsarchivfnkt
Dim scmCmdToExecute As SqlCommand = New SqlCommand
scmCmdToExecute.CommandText = "dbo.SP_Dokument_delete"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
conn_edoka.OpenConnection()
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiter", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 9999))
scmCmdToExecute.Parameters.Add(New SqlParameter("@loeschgrund", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, "Gel<EFBFBD>scht, da Partner saldiert ist"))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
conn_edoka.CloseConnection(True)
Dim dt As DataTable
dt = get_coldindex_and_statusnr(dokid, False, False)
archivfnkt.insert_coldupdate_status(dt, dokid, "Alt")
End Try
archivfnkt = Nothing
End Sub
Public Sub set_aufgehoben(ByVal dokumentid As String)
Dim archivfnkt As New EDOKA.clsarchivfnkt
Dim dt As DataTable
dt = get_coldindex_and_statusnr(dokumentid, True, False)
archivfnkt.insert_coldupdate_status(dt, dokumentid, "Alt")
archivfnkt = Nothing
End Sub
Public Function get_coldindex_and_statusnr(ByVal dokumentid As String, ByVal aufheben As Boolean, ByVal reaktivieren As Boolean) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand
Dim i As Integer
Dim dtToReturn As DataTable = New DataTable
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.CommandText = "dbo.sp_get_coldindex_and_aufhebungsstatus"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@reaktivieren", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, reaktivieren))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aufhebungsstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
sdaAdapter.Fill(dtToReturn)
i = scmCmdToExecute.Parameters.Item("@aufhebungsstatus").Value
If (i <> 0 And aufheben) Or (i <> 0 And reaktivieren) Then
insert_history_status(i, dokumentid, 9999)
Dim d As New edokadb.clsDokument
d.cpMainConnectionProvider = conn_edoka
d.sDokumentid = New SqlString(CType(dokumentid, String))
d.SelectOne()
d.iStatusnr = New SqlInt32(CType(i, Int32))
conn_edoka.OpenConnection()
d.Update()
conn_edoka.CloseConnection(True)
d.Dispose()
End If
Return dtToReturn
Catch ex As Exception
Threading.Thread.Sleep(1000)
'MsgBox(ex.Message)
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
Private Sub Insert_Note(ByVal dokumentid As String, ByVal meldung As String)
Dim scmCmdToExecute As SqlCommand = New SqlCommand
scmCmdToExecute.CommandText = "dbo.SP_Dokument_Notizen"
scmCmdToExecute.CommandType = CommandType.StoredProcedure
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
scmCmdToExecute.Connection.Open()
Try
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@notiznr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, meldung))
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, meldung))
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.ExecuteNonQuery()
Catch ex As Exception
'MsgBox(ex.Message)
' // some error occured. Bubble it to caller and encapsulate Exception object
Threading.Thread.Sleep(1000)
'Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Connection.Close()
scmCmdToExecute.Dispose()
End Try
End Sub
End Class