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ü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ö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ö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