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.

497 lines
21 KiB

Imports System.Data
Imports System.Data.SqlTypes
Imports System.Data.SqlClient
Imports System.ComponentModel
Imports UtilityLibrary.Win32
Public Class frmStatuswechsel
Inherits System.Windows.Forms.Form
#Region " Vom Windows Form Designer generierter Code "
Public Sub New()
MyBase.New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
End Sub
' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' Für Windows Form-Designer erforderlich
Private components As System.ComponentModel.IContainer
'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
'Sie kann mit dem Windows Form-Designer modifiziert werden.
'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents cbStatus As System.Windows.Forms.ComboBox
Friend WithEvents cbMitarbeiter As System.Windows.Forms.ComboBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Button3 As System.Windows.Forms.Button
Friend WithEvents cbmoeglicheStati As System.Windows.Forms.ComboBox
Friend WithEvents cbsave As System.Windows.Forms.ComboBox
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents txtstatus As System.Windows.Forms.Label
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents txtBemerkung As System.Windows.Forms.TextBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmStatuswechsel))
Me.Button1 = New System.Windows.Forms.Button()
Me.Button2 = New System.Windows.Forms.Button()
Me.cbStatus = New System.Windows.Forms.ComboBox()
Me.cbMitarbeiter = New System.Windows.Forms.ComboBox()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Button3 = New System.Windows.Forms.Button()
Me.cbmoeglicheStati = New System.Windows.Forms.ComboBox()
Me.cbsave = New System.Windows.Forms.ComboBox()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.txtstatus = New System.Windows.Forms.Label()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.txtBemerkung = New System.Windows.Forms.TextBox()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(8, 232)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 0
Me.Button1.Text = "&Abbruch"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(304, 232)
Me.Button2.Name = "Button2"
Me.Button2.TabIndex = 1
Me.Button2.Text = "&OK"
'
'cbStatus
'
Me.cbStatus.Location = New System.Drawing.Point(112, 16)
Me.cbStatus.Name = "cbStatus"
Me.cbStatus.Size = New System.Drawing.Size(264, 21)
Me.cbStatus.TabIndex = 2
Me.cbStatus.Text = "ComboBox1"
'
'cbMitarbeiter
'
Me.cbMitarbeiter.Location = New System.Drawing.Point(112, 48)
Me.cbMitarbeiter.Name = "cbMitarbeiter"
Me.cbMitarbeiter.Size = New System.Drawing.Size(240, 21)
Me.cbMitarbeiter.TabIndex = 3
Me.cbMitarbeiter.Text = "ComboBox1"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 16)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(96, 23)
Me.Label1.TabIndex = 4
Me.Label1.Text = "Dokumentstatus"
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(8, 48)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(80, 23)
Me.Label2.TabIndex = 5
Me.Label2.Text = "Verantwortlich"
'
'Button3
'
Me.Button3.Image = CType(resources.GetObject("Button3.Image"), System.Drawing.Bitmap)
Me.Button3.Location = New System.Drawing.Point(176, 264)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(24, 24)
Me.Button3.TabIndex = 6
Me.Button3.Visible = False
'
'cbmoeglicheStati
'
Me.cbmoeglicheStati.Items.AddRange(New Object() {"abc", "def", "gagas d sd", "sdf sdf sfd "})
Me.cbmoeglicheStati.Location = New System.Drawing.Point(354, 48)
Me.cbmoeglicheStati.Name = "cbmoeglicheStati"
Me.cbmoeglicheStati.Size = New System.Drawing.Size(21, 21)
Me.cbmoeglicheStati.TabIndex = 7
Me.cbmoeglicheStati.Text = "ComboBox1"
'
'cbsave
'
Me.cbsave.Items.AddRange(New Object() {"abc", "def", "gagas d sd", "sdf sdf sfd "})
Me.cbsave.Location = New System.Drawing.Point(352, 48)
Me.cbsave.Name = "cbsave"
Me.cbsave.Size = New System.Drawing.Size(21, 21)
Me.cbsave.TabIndex = 8
Me.cbsave.Text = "ComboBox1"
Me.cbsave.Visible = False
'
'Panel1
'
Me.Panel1.Location = New System.Drawing.Point(374, 8)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(16, 100)
Me.Panel1.TabIndex = 9
'
'txtstatus
'
Me.txtstatus.Location = New System.Drawing.Point(112, 80)
Me.txtstatus.Name = "txtstatus"
Me.txtstatus.Size = New System.Drawing.Size(224, 23)
Me.txtstatus.TabIndex = 10
Me.txtstatus.Text = "Label3"
Me.txtstatus.Visible = False
'
'Label3
'
Me.Label3.Location = New System.Drawing.Point(8, 72)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(96, 32)
Me.Label3.TabIndex = 11
Me.Label3.Text = "Berechtigt für Folgestatus"
Me.Label3.Visible = False
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(8, 104)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(192, 16)
Me.Label4.TabIndex = 12
Me.Label4.Text = "Bemerkung für den Verantwortlichen"
'
'txtBemerkung
'
Me.txtBemerkung.Location = New System.Drawing.Point(8, 120)
Me.txtBemerkung.Multiline = True
Me.txtBemerkung.Name = "txtBemerkung"
Me.txtBemerkung.Size = New System.Drawing.Size(368, 104)
Me.txtBemerkung.TabIndex = 13
Me.txtBemerkung.Text = ""
'
'frmStatuswechsel
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(384, 263)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtBemerkung, Me.Label4, Me.Label3, Me.txtstatus, Me.Panel1, Me.cbsave, Me.Button3, Me.Label2, Me.Label1, Me.cbMitarbeiter, Me.cbStatus, Me.Button2, Me.Button1, Me.cbmoeglicheStati})
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmStatuswechsel"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Status / Verantwortlicher wechseln"
Me.ResumeLayout(False)
End Sub
#End Region
Dim m_dokumentid As String
Property Dokumentid() As String
Get
Return m_dokumentid
End Get
Set(ByVal Value As String)
m_dokumentid = Value
End Set
End Property
Dim m_mitarbeiternr As Integer
Property Mitarbeiternr() As Integer
Get
Return m_mitarbeiternr
End Get
Set(ByVal Value As Integer)
m_mitarbeiternr = Value
End Set
End Property
Dim m_currentstatus As Integer
Property currentstatus() As Integer
Get
Return m_currentstatus
End Get
Set(ByVal Value As Integer)
m_currentstatus = Value
End Set
End Property
Dim WithEvents mcbstatus As New MultiComboBox()
Dim WithEvents mcbmitarbeiter As New MultiComboBox()
Dim moeglichstati As DataTable
Dim Funktionsliste As String
Dim selectedstatus As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.mcbstatus = New MultiComboBox(Me.cbStatus)
Me.mcbstatus.CheckNullValue = True
Me.mcbstatus.NullValueMessage = MyTxt.gettext(18)
Me.mcbstatus.DisplayColumnName = "Bezeichnung"
Me.mcbstatus.ValueColumnName = "dokumentstatusnr"
Me.mcbstatus.Fill_Data(Generic_Select(2), False)
Me.mcbstatus.SelectedValue = Me.currentstatus
Me.moeglichstati = Generic_Select(6)
Me.cbmoeglicheStati.Items.Clear()
Dim i As Integer
For i = 0 To Me.moeglichstati.Rows.Count - 1
Me.cbmoeglicheStati.Items.Add(Me.moeglichstati.Rows(i).Item("bezeichnung"))
Next
Me.Funktionsliste = ""
mcbmitarbeiter = New MultiComboBox(Me.cbMitarbeiter)
fill_mcbmitarbeiter()
Dim ttip As New ToolTip()
ttip.SetToolTip(Me.cbmoeglicheStati, Globals.MyTxt.gettext(22000))
End Sub
Private Sub fill_mcbmitarbeiter()
Me.mcbmitarbeiter.DataSource = Nothing
Me.mcbmitarbeiter.Items.Clear()
Me.mcbmitarbeiter.CheckNullValue = True
Me.mcbmitarbeiter.NullValueMessage = MyTxt.gettext(18)
Me.mcbmitarbeiter.DisplayColumnName = "mitarbeiter"
Me.mcbmitarbeiter.ValueColumnName = "mitarbeiternr"
Me.mcbmitarbeiter.Fill_Data(DivFnkt.Berechtigte_Mitarbeiter(0, 0, 0, Me.Dokumentid, 3, 0, 0, 0, Me.Funktionsliste), False)
' Me.mcbmitarbeiter.Fill_Data(DivFnkt.Berechtigte_Mitarbeiter(0, 0, 0, Me.Dokumentid, 3, 0, 0, 0, Me.Funktionsliste), False)
Me.mcbmitarbeiter.SelectedValue = Me.Mitarbeiternr
End Sub
Private Function Generic_Select(ByVal typ As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Select Case typ
Case 2
scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_statuswechsel"
Case 3
scmCmdToExecute.CommandText = "SP_Dokumentbearbeitung_Mitarbeiter"
Case 4
scmCmdToExecute.CommandText = "SP_message_generate_verantwortlicher_wechsel"
Case 6
scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_statuswechsel"
Case 7
scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_statuswechsel_funktionen"
Case 13
scmCmdToExecute.CommandText = "sp_dokumentbearbeitung_ist_kundenberater"
Case Else
End Select
scmCmdToExecute.CommandType = CommandType.StoredProcedure
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.Connection = conn.scoDBConnection
Try
Select Case typ
Case 2
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@currentstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
Case 4
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.mcbstatus.SelectedValue))
scmCmdToExecute.Parameters.Add(New SqlParameter("@verantwortlicher", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.mcbmitarbeiter.SelectedValue))
Case 6
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
scmCmdToExecute.Parameters.Add(New SqlParameter("@currentstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
Case 7
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@currentstatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.selectedstatus))
Case 13
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.Dokumentid))
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrpar00", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiternr", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.MitarbeiterNr))
Case Else
End Select
If typ = 1 Then
End If
sdaAdapter.Fill(dtToReturn)
If typ = 2 Then
Me.currentstatus = scmCmdToExecute.Parameters("@currentstatus").Value
End If
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
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'26.10.03 - Hutter
Dim statuswechsel As Boolean = False
Dim verantwechsel As Boolean = False
If Me.mcbstatus.Text = "In Bearbeitung" Then
If Archivfnkt.check_bereits_archiviert(Me.Dokumentid, False) = False Then
Windows.Forms.Application.DoEvents()
Me.Cursor = Cursors.Default
Exit Sub
Else
If Globals.dokumentid_changed Then
Me.Dokumentid = Globals.DokumentID_New_Copy
End If
End If
End If
'26.10.03
Dim sth As New Statushandling()
Dim doc As New edokadb.clsDokument()
doc.cpMainConnectionProvider = conn
conn.OpenConnection()
doc.sDokumentid = New SqlString(CType(Me.Dokumentid, String))
doc.SelectOne()
Dim statush As New Statushandling()
statush.NeuerStatus = Me.mcbstatus.SelectedValue
statush.Check_Neuer_Status()
If statush.Folgestatus = True And Me.mcbmitarbeiter.SelectedValue = Me.Mitarbeiternr Then
MyMsg.show_standardmessage(21, MsgBoxStyle.Critical)
Me.mcbmitarbeiter.Focus()
statush.Dispose()
doc.Dispose()
Exit Sub
End If
If UCase(Me.mcbstatus.Text) <> "KONTROLLIERT (JEDERZEIT)" Then
doc.bBereit_zur_archivierung = New SqlBoolean(CType(False, Boolean))
End If
If statush.Ausgangsarchivierung = True Then
doc.bBereit_zur_archivierung = New SqlBoolean(CType(True, Boolean))
End If
If doc.iVerantwortlich.Value <> Me.mcbmitarbeiter.SelectedValue Then
'26.10.03 - hutter
verantwechsel = True
'26.10.03
doc.iVerantwortlich = New SqlInt32(CType(Me.mcbmitarbeiter.SelectedValue, Int32))
sth.BemerkungVerantwortlicher = Me.txtBemerkung.Text
sth.Meldung_Verantwortlicher(Me.Dokumentid, Me.mcbmitarbeiter.SelectedValue)
End If
If statush.Ablgeschossen = True Or Me.mcbstatus.Text = "Abgeschlossen" Then
doc.iVerantwortlich = New SqlInt32(CType(9998, Int32))
End If
If doc.iStatusnr.Value <> Me.mcbstatus.SelectedValue Then
'26.10.03
statuswechsel = True
'26.10.03
Dim st As New SqlDataAdapter("Select status_bezeichnungnr from dokument_status where dokument_statusnr=" & Me.mcbstatus.SelectedValue, Globals.sConnectionString)
Dim std As New DataSet()
st.Fill(std, "bez")
If std.Tables(0).Rows(0).Item(0) <> 8 Then
doc.iStatusnr = New SqlInt32(CType(Me.mcbstatus.SelectedValue, Int32))
End If
sth.Meldung_Status(Me.Dokumentid, Me.mcbstatus.SelectedValue)
std.Dispose()
st.Dispose()
End If
doc.iMutierer = New SqlInt32(CType(Globals.MitarbeiterNr, Int32))
doc.daMutiertam = New SqlDateTime(CType(Now, DateTime))
If Not doc.iDokdurchkubeweitergegeben.Value = 1 Then
Dim tx As DataTable
tx = Generic_Select(13)
If tx.Rows(0).Item(0) = 1 Then
doc.iDokdurchkubeweitergegeben = New SqlInt32(CType(1, Int32))
Else
doc.iDokdurchkubeweitergegeben = New SqlInt32(CType(0, Int32))
End If
tx.Dispose()
End If
'26.10.03 - Hutter
If Me.mcbstatus.Text = "In Bearbeitung" Then
doc.bAusgangsarchiviert = New SqlBoolean(CType(False, Boolean))
doc.bEingangsarchiviert = New SqlBoolean(CType(False, Boolean))
End If
doc.Update()
conn.CloseConnection(True)
If statuswechsel Or verantwechsel Then
statush.insert_history_status(CType(Me.mcbstatus.SelectedValue, Int32), Me.Dokumentid, Me.mcbmitarbeiter.SelectedValue)
End If
statush.check_abschluss(Me.Dokumentid, Me.mcbmitarbeiter.SelectedValue)
Me.Close()
doc.Dispose()
statush.Dispose()
'26.10.03
End Sub
Private Sub cbmoeglicheStati_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.DropDown
Me.cbmoeglicheStati.Width = 200
Me.cbsave.Visible = True
End Sub
Private Sub cbmoeglicheStati_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.Leave
Me.cbsave.Visible = False
Me.cbmoeglicheStati.Width = 21
End Sub
Private Sub cbmoeglicheStati_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.SelectedValueChanged
Dim i As Integer
Dim DATA As DataTable
Me.cbsave.Visible = False
Me.cbmoeglicheStati.Width = 21
Me.txtstatus.Text = Me.cbmoeglicheStati.Text
Me.Label3.Visible = True
Me.txtstatus.Visible = True
If Me.txtstatus.Text = Me.mcbstatus.Text Then
Me.Label3.Visible = False
Me.txtstatus.Visible = False
Me.Funktionsliste = ""
Me.selectedstatus = 0
Else
For i = 0 To Me.moeglichstati.Rows.Count - 1
If Me.txtstatus.Text = Me.moeglichstati.Rows(i).Item("bezeichnung") Then
Me.selectedstatus = Me.moeglichstati.Rows(i).Item("nr")
End If
Next
End If
Me.Funktionsliste = ""
DATA = Generic_Select(7)
For i = 0 To DATA.Rows.Count - 1
If Me.Funktionsliste <> "" Then Me.Funktionsliste = Me.Funktionsliste + ";"
Me.Funktionsliste = Me.Funktionsliste + LTrim(DATA.Rows(i).Item("funktionnr"))
Next
fill_mcbmitarbeiter()
Me.mcbmitarbeiter.Focus()
End Sub
Private Sub cbsave_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbsave.SelectedIndexChanged
End Sub
Private Sub cbmoeglicheStati_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbmoeglicheStati.SelectedIndexChanged
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBemerkung.TextChanged
End Sub
End Class