Files
SDL/VERAG_PROG_ALLGEMEIN/AuditFlow/frmAuditFlow.vb
2025-10-09 11:22:39 +02:00

496 lines
20 KiB
VB.net

Imports System.Drawing
Imports System.Windows.Forms
Imports com.sun.javadoc
Public Class frmAuditFlow
Dim MONAT As Date = CDate("01." & Now.Month & "." & Now.Year) '.AddMonths(-1)
Dim srcTAG As Date = CDate(Now.ToShortDateString)
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim JAHR As Date = CDate("01.01." & Now.Year)
Private Sub frmAuditFlow_Load(sender As Object, e As EventArgs) Handles Me.Load
txtWartungFaelligkeitAbDat._value = Now.ToShortDateString
txtAbfertDat.Text = Now.AddMonths(-2).ToShortDateString 'CDate("01." & Now.ToString("MM.yyyy")).AddMonths(-1).ToShortDateString
txtAbfertDatBis.Text = Now.AddMonths(1).ToShortDateString 'Now.ToShortDateString
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
cboKategorie.Items.Clear()
cboKategorie.fillWithSQL("SELECT wartK_Kategorie,[wartK_KategorieBezeichnung] FROM [tblAuditFlow_Kategorien] order by wartK_KategorieBezeichnung", False, "ADMIN", True)
cboNL.Items.Clear()
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cboNL.SelectedItem = 0
cboStandort.Items.Clear()
cboStandort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cboStandort.SelectedItem = 0
cboFirma.Items.Clear()
cboFirma.fillWithSQL("SELECT distinct(Firma) FROM [Filialen] order by Firma", False, "FMZOLL", True)
cboFirma.changeItem(cAllgemein.FIRMA)
' cboSachbearbeiter.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as Name " &
' " FROM [ADMIN].[dbo].[tblMitarbeiter] WHERE mit_niederlassung IN ('SUB','Suben') AND mit_abteilung='ZOLL' AND [mit_gekuendigt]=0 order by name", False, "ADMIN", True)
End Sub
Private Sub MyComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboStandort.SelectedIndexChanged, cboKategorie.SelectedIndexChanged
loadDGVPuefungsobjekte()
End Sub
Private Sub cboFirma_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged
cboNL.Items.Clear()
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
If cboFirma._value <> "" Then
cboNL.fillWithSQL("SELECT nl_kuerzel,nl_bezeichnung FROM [tblNiederlassungen] where [nl_firma]='" & cboFirma._value & "' order by nl_bezeichnung", False, "ADMIN", False)
End If
loadDGVPuefungsobjekte()
End Sub
Private Sub cboNL_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboNL.SelectedIndexChanged
cboStandort.Items.Clear()
cboStandort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
If cboFirma._value <> "" AndAlso cboNL._value <> "" Then
cboStandort.fillWithSQL("SELECT [wartSt_Id],[wartSt_Standort] FROM [tblAuditFlow_Standorte] where [wartSt_Aktiv]=1 and [wartSt_Firma]='" & cboFirma._value & "' AND [wartSt_Niederlasung]='" & cboNL._value & "' order by wartSt_Standort", False, "ADMIN", True)
End If
End Sub
'-------------------------------------------------------------------
'----DGVPuefungsobjekte---------------------------------------------
'-------------------------------------------------------------------
Sub loadDGVPuefungsobjekte()
Try
Me.Cursor = Cursors.WaitCursor
Dim TopMax = If(IsNumeric(MyTextBox2.Text), " TOP " & MyTextBox2.Text, "")
Dim sqlstr As String = ""
' MsgBox(VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL)
sqlstr &= " SELECT " & TopMax & " [wartPO_Id],[wartPO_Bezeichnung],[wartPO_Kennung],[wartPO_Firma],[wartPO_Niederlasung],wartSt_Standort as wartPO_Standort,[wartPO_Kategorie],
[wartPO_IntervallTyp],[wartPO_IntervallWert],[wartPO_Erinnerung_VorlaufInTagen] ,[wartPO_zustaendigIntern_Name],[wartPO_Aktiv]
FROM [tblAuditFlow_Pruefobjekte] INNER JOIN tblAuditFlow_Standorte ON wartPO_StandortId=wartSt_Id WHERE 1=1 "
With dgvPruefungsobjekte
' .DataSource = myTable
' MsgBox(sqlstr & getWherePruefungsobjekte() & " order by wartPO_Firma ,wartPO_Niederlasung, wartPO_StandortId")
.SET_SQL(sqlstr & getWherePruefungsobjekte() & " order by wartPO_Firma ,wartPO_Niederlasung, wartSt_Standort ", "ADMIN", getListPruefungsobjekte)
.LOAD()
setDGVOptionsPruefungsobjekte()
End With
showDGVPruefungsobjekte()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, "")
End Try
Me.Cursor = Cursors.Default
End Sub
Sub showDGVPruefungsobjekte()
With dgvPruefungsobjekte
If .ColumnCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("wartPO_Id").Visible = False
.Columns("wartPO_Bezeichnung").MinimumWidth = 100
.Columns("wartPO_Bezeichnung").HeaderText = "Bezeichnung"
.Columns("wartPO_Bezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("wartPO_Kennung").Width = 60
.Columns("wartPO_Kennung").HeaderText = "(Kennung)"
.Columns("wartPO_Kategorie").Width = 100
.Columns("wartPO_Kategorie").HeaderText = "Kategorie"
.Columns("wartPO_Firma").Width = 80
.Columns("wartPO_Firma").HeaderText = "Firma"
.Columns("wartPO_Niederlasung").Width = 50
.Columns("wartPO_Niederlasung").HeaderText = "NL"
.Columns("wartPO_Standort").Width = 100
.Columns("wartPO_Standort").HeaderText = "Standort"
.Columns("wartPO_IntervallTyp").Width = 100
.Columns("wartPO_IntervallTyp").HeaderText = "Intervall"
.Columns("wartPO_IntervallWert").Width = 60
.Columns("wartPO_IntervallWert").HeaderText = "Int.-Wert"
.Columns("wartPO_Erinnerung_VorlaufInTagen").Width = 60
.Columns("wartPO_Erinnerung_VorlaufInTagen").HeaderText = "Vorl.Tage"
.Columns("wartPO_zustaendigIntern_Name").Width = 120
.Columns("wartPO_zustaendigIntern_Name").HeaderText = "Mitarbeiter"
.Columns("wartPO_Aktiv").Width = 50
.Columns("wartPO_Aktiv").HeaderText = "Aktiv"
' lblErgebnis.Text = "Ergebnise: " & .RowCount
End With
End Sub
Function getWherePruefungsobjekte() As String
Dim sqlstr = ""
If cboFirma._value <> "" Then sqlstr &= " AND wartPO_Firma LIKE @wartPO_Firma "
If cboNL._value <> "" Then sqlstr &= " AND wartPO_Niederlasung LIKE @wartPO_Niederlasung "
If cboStandort._value <> "" Then sqlstr &= " AND wartPO_StandortId LIKE @wartPO_StandortId "
If cboKategorie._value <> "" Then sqlstr &= " AND wartPO_Kategorie LIKE @wartPO_Kategorie "
Return sqlstr
End Function
Function getListPruefungsobjekte() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("DatVon", txtAbfertDat._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("DatBis", txtAbfertDatBis._value))
Return list
End Function
Sub setDGVOptionsPruefungsobjekte()
Try
Exit Sub
'With dgvPruefungsobjekte
' For Each r As DataGridViewRow In .Rows
' If r.Cells("sdlAb_Storniert").Value IsNot DBNull.Value AndAlso r.Cells("sdlAb_Storniert").Value Then
' r.DefaultCellStyle.ForeColor = Color.Red
' r.DefaultCellStyle.SelectionForeColor = Color.Red
' ' r.DefaultCellStyle.SelectionBackColor = Color.White
' ElseIf r.Cells("sdlAb_Abgeholt").Value IsNot DBNull.Value AndAlso r.Cells("sdlAb_Abgeholt").Value Then
' r.DefaultCellStyle.ForeColor = Color.DarkGreen
' r.DefaultCellStyle.SelectionForeColor = Color.DarkGreen
' ' r.DefaultCellStyle.SelectionBackColor = Color.White
' End If
' Next
'End With
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub dgvPruefungsobjekte_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvPruefungsobjekte.CellDoubleClick
' Falls Kopfzeile doppelt geklickt wird -> ignorieren
If e.RowIndex < 0 Then Exit Sub
' ID der ausgewählten Zeile holen (Spalte "wartPO_Id")
Dim wartPO_Id As Integer = CInt(dgvPruefungsobjekte.Rows(e.RowIndex).Cells("wartPO_Id").Value)
' Hier deine Funktion oder Logik aufrufen
' Beispiel:
Dim f As New frmAuditFlow_Pruefungsojekt(wartPO_Id)
f.ShowDialog(Me)
dgvPruefungsobjekte.RELOAD()
setDGVOptionsPruefungsobjekte()
End Sub
'-------------------------------------------------------------------
'-------------------------------------------------------------------
'-----DGVPrüfungen--------------------------------------------------
'-------------------------------------------------------------------
Function getWherePruefungen() As String
Dim sqlstr = ""
If txtAbfertDat.Text <> "" Then
If txtAbfertDatBis.Text <> "" Then
sqlstr &= " AND ([wartPruef_Faelligkeitsdatum] BETWEEN @DatVon AND @DatBis ) "
Else
sqlstr &= " AND ([wartPruef_Faelligkeitsdatum] BETWEEN @DatVon AND @DatVon ) "
End If
End If
If CheckBox1.CheckState = CheckState.Checked Then
sqlstr &= " AND [wartPruef_Erledigung]=1 "
ElseIf CheckBox1.CheckState = CheckState.Unchecked Then
sqlstr &= " AND [wartPruef_Erledigung]=0 "
Else
sqlstr &= " "
End If
Return sqlstr
End Function
Private Sub dgvPruefungen_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvPruefungen.CellDoubleClick
' Falls Kopfzeile doppelt geklickt wird -> ignorieren
If e.RowIndex < 0 Then Exit Sub
' ID der ausgewählten Zeile holen (Spalte "wartPO_Id")
Dim wartPruef_wartPOId As Integer = CInt(dgvPruefungen.Rows(e.RowIndex).Cells("wartPruef_wartPOId").Value)
Dim wartPruef_Id As Integer = CInt(dgvPruefungen.Rows(e.RowIndex).Cells("wartPruef_Id").Value)
' Hier deine Funktion oder Logik aufrufen
' Beispiel:
Dim f As New frmAuditFlow_Pruefungen(wartPruef_wartPOId, wartPruef_Id)
f.ShowDialog(Me)
dgvPruefungen.RELOAD()
setDGVOptionsPruefungen()
End Sub
'-------------------------------------------------------------------
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click
loadDGVPuefungen()
End Sub
Sub loadDGVPuefungen()
Try
With dgvPruefungen
.Columns.Clear()
If dgvPruefungsobjekte.SelectedRows.Count = 0 Then
Exit Sub
End If
Dim wartPO_Id As Integer = CInt(dgvPruefungsobjekte.SelectedRows(0).Cells("wartPO_Id").Value)
Me.Cursor = Cursors.WaitCursor
Dim TopMax = If(IsNumeric(MyTextBox2.Text), " TOP " & MyTextBox2.Text, "")
Dim sqlstr As String = ""
' MsgBox(VERAG_PROG_ALLGEMEIN.cAllgemein.ERR_OP_GLOBAL)
sqlstr &= "SELECT TOP (1000) [wartPruef_Id],wartPruef_wartPOId ,[wartPruef_Faelligkeitsdatum],[wartPruef_Erledigung],[wartPruef_Erledigung_Datum],[wartPruef_Erledigung_BestaetigtMaName]
,wartPruef_Erledigung_Bemerkung,case when [wartPruef_Anhaenge_Count] >0 then 'Ja' else 'Nein' end as [Anhaenge]
FROM [tblAuditFlow_Pruefungen] WHERE [wartPruef_wartPOId]='" & wartPO_Id & "' "
' .DataSource = myTable
'MsgBox(sqlstr & getWherePruefungen() & " order by wartPruef_Faelligkeitsdatum ")
.SET_SQL(sqlstr & getWherePruefungen() & " order by wartPruef_Faelligkeitsdatum ", "ADMIN", getListPruefungsobjekte)
.LOAD()
setDGVOptionsPruefungen()
End With
showDGVPruefungen()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, "")
End Try
Me.Cursor = Cursors.Default
End Sub
Sub showDGVPruefungen()
With dgvPruefungen
If .ColumnCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("wartPruef_Id").Visible = False
.Columns("wartPruef_wartPOId").Visible = False
.Columns("wartPruef_Faelligkeitsdatum").Width = 90
.Columns("wartPruef_Faelligkeitsdatum").HeaderText = "Fälligkeitsdatum"
.Columns("wartPruef_Erledigung").Width = 60
.Columns("wartPruef_Erledigung").HeaderText = "Erledigung"
.Columns("wartPruef_Erledigung_Datum").Width = 90
.Columns("wartPruef_Erledigung_Datum").HeaderText = "Erl.Dat"
.Columns("wartPruef_Erledigung_BestaetigtMaName").Width = 100
.Columns("wartPruef_Erledigung_BestaetigtMaName").HeaderText = "Erl.MA"
.Columns("wartPruef_Erledigung_Bemerkung").Width = 60
.Columns("wartPruef_Erledigung_Bemerkung").HeaderText = "Erl.Bemerkung."
.Columns("wartPruef_Erledigung_Bemerkung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Anhaenge").Width = 60
.Columns("Anhaenge").HeaderText = "Anh."
' lblErgebnis.Text = "Ergebnise: " & .RowCount
End With
End Sub
Sub setDGVOptionsPruefungen()
Try
Exit Sub
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
srcTAG = srcTAG.AddDays(-1)
initBtns("Tag")
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
srcTAG = srcTAG.AddDays(1)
initBtns("Tag")
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
initBtns("Tag")
End Sub
Private Sub btnMonat_Click(sender As Object, e As EventArgs) Handles btnMonat.Click
initBtns("Monat")
End Sub
Private Sub btnJahr_Click(sender As Object, e As EventArgs) Handles btnJahr.Click
initBtns("Jahr")
End Sub
Private Sub btnBisMonat_Click(sender As Object, e As EventArgs) Handles btnBisMonat.Click
MONAT = MONAT.AddMonths(1)
initBtns("Monat")
End Sub
Private Sub btnVonMonat_Click(sender As Object, e As EventArgs) Handles btnVonMonat.Click
MONAT = MONAT.AddMonths(-1)
initBtns("Monat")
End Sub
Private Sub btnBisJahr_Click(sender As Object, e As EventArgs) Handles btnBisJahr.Click
JAHR = JAHR.AddYears(1)
initBtns("Jahr")
End Sub
Private Sub btnVonJahr_Click(sender As Object, e As EventArgs) Handles btnVonJahr.Click
JAHR = JAHR.AddYears(-1)
initBtns("Jahr")
End Sub '
Sub initBtns(MonatJahr)
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
Select Case MonatJahr
Case "Monat"
DateTimePicker1.Value = MONAT
DateTimePicker2.Value = MONAT.AddMonths(1).AddDays(-1)
Case "Jahr"
' If cbxGeschaftsjahr.Checked Then
'DateTimePicker1.Value = JAHR.AddMonths(1)
' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1)
' Else
DateTimePicker1.Value = JAHR
DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1)
'End If
Case "Tag"
' If cbxGeschaftsjahr.Checked Then
'DateTimePicker1.Value = JAHR.AddMonths(1)
' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1)
' Else
DateTimePicker1.Value = srcTAG
DateTimePicker2.Value = srcTAG
If srcTAG = Now.ToShortDateString Then
Button5.Text = "Heute"
ElseIf srcTAG = Now.AddDays(-1).ToShortDateString Then
Button5.Text = "Gestern"
ElseIf srcTAG = Now.AddDays(-2).ToShortDateString Then
Button5.Text = "Vorgestern"
Else
Button5.Text = srcTAG.ToString("dd.MM")
End If
'End If
Case ""
DateTimePicker1.Value = ("01." & Now.Month & "." & Now.Year)
DateTimePicker2.Value = Now
End Select
loadDGVPuefungen()
End Sub
Private Sub txtAbfertDat_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertDat.Leave
If sender.Text <> "" AndAlso IsDate(sender.Text) Then
DateTimePicker1.Value = CDate(sender.text)
End If
End Sub
Private Sub txtAbfertDatBis_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertDatBis.Leave
If sender.Text <> "" AndAlso IsDate(sender.Text) Then
DateTimePicker2.Value = CDate(sender.text)
End If
End Sub
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
txtAbfertDat._value = CDate(sender.value).ToShortDateString
End Sub
Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged
txtAbfertDatBis._value = CDate(sender.value).ToShortDateString
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim f As New frmAuditFlow_Pruefungsojekt()
f.ShowDialog(Me)
dgvPruefungsobjekte.RELOAD()
setDGVOptionsPruefungsobjekte()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If txtWartungFaelligkeitAbDat._value <> "" Then
cAuditFlow.ErzeugeFaelligePruefungen(txtWartungFaelligkeitAbDat._value)
End If
dgvPruefungsobjekte.RELOAD()
setDGVOptionsPruefungsobjekte()
loadDGVPuefungen()
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckStateChanged
loadDGVPuefungen()
End Sub
Private Sub dgvPruefungsobjekte_SelectionChanged(sender As Object, e As EventArgs) Handles dgvPruefungsobjekte.SelectionChanged
If dgvPruefungsobjekte.SelectedRows.Count > 0 Then
loadDGVPuefungen()
Else
dgvPruefungen.Columns.Clear()
End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim frm As New frmManageTables("tblAuditFlow_Standorte", "ADMIN")
frm.ShowDialog(Me)
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim frm As New frmManageTables("tblAuditFlow_Standorte", "ADMIN")
frm.ShowDialog(Me)
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Dim frm As New frmManageTables("tblAuditFlow_Kategorien", "ADMIN")
frm.ShowDialog(Me)
End Sub
End Class