Files
AVISO/Aviso/frmSecretAviso.vb
2020-12-13 21:30:05 +01:00

424 lines
20 KiB
VB.net

Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO
Public Class frmSecretAviso
Dim lkwbackcolor As Color = Color.FromArgb(220, 220, 220)
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim AvisoDAL As New VERAG_PROG_ALLGEMEIN.cAvisoDAL
Dim Details_aktiv = False
Private Sub txt_TextChanged(sender As Object, e As EventArgs) Handles txt.TextChanged
If txt.Text = "" Then
MyDatagridview1.ClearSelection()
End If
End Sub
Private Sub txt_KeyDown(sender As Object, e As KeyEventArgs) Handles txt.KeyDown
If e.KeyCode = Keys.Return Then
initDGV()
End If
End Sub
Sub initDGV()
pnlDetailsRechts.Controls.Clear()
With MyDatagridview1
Dim search = txt.Text
Dim sqlstr = "SELECT TOP (20) AvisoID, Status, LKW_Nr, Auftraggeber, Frächter,VoraussichtlichesEintreffen, AvisoEingang, Ankunft, Dauer, Grenzstelle,letzterMitarbeiter,CASE WHEN [ZOLLDigitalEingereicht] = 1 THEN 'DE' ELSE CASE WHEN [LKW_fertig] = 1 THEN 'OK' ELSE '' END END AS [LKW_fertig], Datum, Vorbereitet, Vorgeschrieben, Freigabe, Telefonisch, Info,Handling,AvisoTVHinweis,DATEDIFF(DAY,getdate(),[VoraussichtlichesEintreffen]) TageBisEintreffen
FROM [Aviso]
WHERE ((LKW_Nr LIKE '%" & search & "%') OR (Frächter LIKE '%" & search & "%') OR (Auftraggeber LIKE '%" & search & "%')) AND Status NOT IN (1,2) AND Datum > DATEADD(MONTH,-1 ,GETDATE())
order by DATUM DESC"
' .SET_SQL(sqlstr, "AVISO")
'.LOAD()
.DataSource = SQL.loadDgvBySql(sqlstr, "AVISO")
If .RowCount = 0 Then
.Columns.Clear() : Exit Sub
End If
'.Columns("AvisoID").Visible = False
'.Columns("LKW").Width = 250
'.Columns("Frächter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
''.loa.Columns("Avisierer").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
'.Columns("Avisierer").Visible = False
gridAviso_SpaltenFestlegen()
End With
End Sub
Private Sub frmSecretAviso_Load(sender As Object, e As EventArgs) Handles Me.Load
txt.Focus()
End Sub
Private Sub grid_CellMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles MyDatagridview1.CellMouseClick
If e.RowIndex < 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt
'If gridVermerke.SelectedRows.Count = 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt
'gridMyAviso.ClearSelection() 'WARUM?
MyDatagridview1.ClearSelection() ': UsrCntlBenachrichtigungen1.gridAvisoBenachrichtigungen.ClearSelection()
' MsgBox(Grid_aktiv)
DirectCast(sender, DataGridView).Rows(e.RowIndex).Selected = True
Dim tmpId = CInt(sender.Rows(e.RowIndex).Cells("AvisoId").Value)
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_SendungsID = -1
If e.Button = MouseButtons.Right Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = tmpId
sender.CurrentCell = sender.Rows(e.RowIndex).Cells(e.ColumnIndex)
' conMenuAviso.Show(Cursor.Position)
Else
setAkive_AuswahlID()
' avisoAktualisierenAktiveIdBehalten(tmpId, , False)
Dim hStatus = AvisoDAL.LesenAviso(tmpId, "").Status
If hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft And hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben And hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst And hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Then
'MsgBox("Ein Vermerk kann nur erfasst werden, wenn der Status des Aviso auf 'Erfasst', 'Vorbereitet', 'Vorgeschrieben' oder 'Ankunft' steht.", vbInformation)
' lblErrVermerk.Width = 300
' lblErrVermerk.Visible = True
' hideErr.Enabled = True
Exit Sub
End If
Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm()
Dim sv As New frmAddAktenvermerkShort(tmpId)
sv.Location = Me.PointToClient(Cursor.Position)
' sv.ShowDialog()
sv.ShowDialog(frmGrayOut)
frmGrayOut.Close()
End If
ElseIf e.Button = MouseButtons.Left Then
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = tmpId
Details_anzeigen(setAkive_AuswahlID())
' avisoAktualisierenAktiveIdBehalten(tmpId, , False)
End If
End Sub
Public Sub avisoAktualisierenAktiveIdBehalten(tmpid As Integer, Optional aktWithoutCheckTime As Boolean = False, Optional Aviso_anzeigenBool As Boolean = True)
Try
'If Not Grid_aktiv Then Exit Sub
Details_aktiv = False
'initEAviso()
'If Aviso_anzeigenBool Then Aviso_anzeigen("", False) ': meineAviso_anzeigen()
' If pnlDetailsRechts.Controls.Count > 0 Then
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA"
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY", Me.FindForm) Then
Dim usrcntl As usrcntlAktDetailsATILLANeu = DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLANeu)
If aktWithoutCheckTime Or usrcntl.AvisoID <> tmpid Then
Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID)
Else
If DateDiff(DateInterval.Second, usrcntl.aktiv, Now) > 60 Then 'Wenn die Details länger als 60 Sek inaktiv sind (Prüfung durch click und keydown)
Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID)
End If
End If
Else
Dim usrcntl As usrcntlAktDetailsATILLA = DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLA)
If aktWithoutCheckTime Or usrcntl.AvisoID <> tmpid Then
Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID)
Else
If DateDiff(DateInterval.Second, usrcntl.aktiv, Now) > 60 Then 'Wenn die Details länger als 60 Sek inaktiv sind (Prüfung durch click und keydown)
Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID)
End If
End If
End If
Case Else
Dim usrcntl As usrcntlAktDetails = DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails)
If aktWithoutCheckTime Or usrcntl.AvisoID <> tmpid Then
Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID)
Else
usrcntl.changeCurrentSndId()
If DateDiff(DateInterval.Second, usrcntl.aktiv, Now) > 60 Then 'Wenn die Details länger als 60 Sek inaktiv sind (Prüfung durch click und keydown)
Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID)
End If
End If
End Select
' End If
Catch ex As Exception
' pic.Visible = True
End Try
End Sub
Public Sub Details_anzeigen(ByVal id As Integer, Optional reloadIfSameId As Boolean = True) ', Optional opensendungsDetails As Boolean = False)
Me.Cursor = Cursors.AppStarting
' If Not Details_aktiv Then Exit Sub
If id > 0 Then
pnlDetailsRechts.Visible = True
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "ATILLA"
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY", Me.FindForm) Then
If pnlDetailsRechts.Controls.Count = 0 Then
Dim usrCntl As New usrcntlAktDetailsATILLANeu(id)
usrCntl.Dock = DockStyle.Fill
pnlDetailsRechts.Controls.Add(usrCntl)
Else
DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLANeu).reload(id)
End If
Else
If pnlDetailsRechts.Controls.Count = 0 Then
Dim usrCntl As New usrcntlAktDetailsATILLA(id)
usrCntl.Dock = DockStyle.Fill
pnlDetailsRechts.Controls.Add(usrCntl)
Else
DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLA).reload(id)
End If
End If
Case Else
If pnlDetailsRechts.Controls.Count = 0 Then
Dim usrCntl As New usrcntlAktDetails(id)
usrCntl.Dock = DockStyle.Fill
pnlDetailsRechts.Controls.Add(usrCntl)
Else
If reloadIfSameId Then
DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails).reload(id)
Else
If DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails).AvisoID <> id Then
DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails).reload(id)
End If
End If
End If
End Select
Else
pnlDetailsRechts.Visible = False
End If
Me.Cursor = Cursors.Default
End Sub
Function setAkive_AuswahlID() As Integer
If MyDatagridview1.SelectedRows.Count > 0 Then
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = CInt(MyDatagridview1.Rows(MyDatagridview1.SelectedRows(0).Index).Cells("AvisoID").Value)
Else
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = -1
End If
Return VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID
End Function
Private Sub gridAviso_SpaltenFestlegen()
If MyDatagridview1.RowCount = 0 Then Exit Sub
Dim bfont = New Font(MyDatagridview1.Font.FontFamily, MyDatagridview1.Font.Size, FontStyle.Bold)
With MyDatagridview1
.Columns("AvisoID").Visible = False 'AvisoID nicht anzeigen
.Columns("Datum").Visible = False 'Mitarb. nicht anzeigen
.Columns("Freigabe").Visible = False 'Mitarb. nicht anzeigen
.Columns("Handling").Visible = False 'Mitarb. nicht anzeigen
.Columns("Vorbereitet").Visible = False
.Columns("Vorgeschrieben").Visible = False
.Columns("TageBisEintreffen").Visible = False
.Columns("Status").Width = 25
.Columns("Status").HeaderText = "St."
.Columns("LetzterMitarbeiter").Width = 135
.Columns("LetzterMitarbeiter").HeaderText = "akt. Mitarb"
.Columns("VoraussichtlichesEintreffen").Width = 95
.Columns("VoraussichtlichesEintreffen").HeaderText = "Vorauss.Eintreffen"
.Columns("VoraussichtlichesEintreffen").DefaultCellStyle.Format = "dd.MM.yyyy"
'.Columns("VoraussichtlichesEintreffen").DefaultCellStyle.Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold)
.Columns("AvisoEingang").Width = 95
.Columns("AvisoEingang").HeaderText = "Av.Eingang"
.Columns("AvisoEingang").DefaultCellStyle.Format = "dd.MM. HH:mm"
.Columns("Datum").Width = 95
.Columns("Datum").HeaderText = "Erfasst"
.Columns("Datum").DefaultCellStyle.Format = "dd.MM. HH:mm"
.Columns("Datum").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("Vorbereitet").Width = 100
.Columns("Vorbereitet").HeaderText = "Vorbereitet"
.Columns("Vorbereitet").DefaultCellStyle.Format = "dd.MM. HH:mm"
.Columns("Vorgeschrieben").Width = 100
.Columns("Vorgeschrieben").HeaderText = "Vorgeschrieben"
.Columns("Vorgeschrieben").DefaultCellStyle.Format = "dd.MM. HH:mm"
.Columns("Ankunft").Width = 100
.Columns("Ankunft").HeaderText = "Ankunft"
.Columns("Ankunft").DefaultCellStyle.Format = "dd.MM. HH:mm"
.Columns("Freigabe").Width = 100
.Columns("Freigabe").HeaderText = "Freigabe"
.Columns("Freigabe").DefaultCellStyle.Format = "dd.MM. HH:mm"
.Columns("Dauer").Width = 60
.Columns("Dauer").HeaderText = "Dauer"
.Columns("Dauer").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("Dauer").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
' If cGlobal.AktiverMitarbeiter.Abteilung = "quick-stop" Then
'.Columns(10).Visible = True
' Else
' .Columns(10).Visible = False
' End If
.Columns("Grenzstelle").Width = 40
.Columns("Grenzstelle").HeaderText = "Grenz."
.Columns("Grenzstelle").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("Grenzstelle").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("LKW_Nr").Width = 150
'.Columns("LKW_Nr").MinimumWidth = 90
.Columns("LKW_Nr").HeaderText = "LKW-Nr"
' .Columns("LKW_Nr").DefaultCellStyle.Font = New Font(.DefaultCellStyle.Font.FontFamily, .DefaultCellStyle.Font.Size, FontStyle.Bold)
'.Columns("LKW_Nr").DefaultCellStyle.BackColor = lkwbackcolor
'.Columns("LKW_Nr").DefaultCellStyle.SelectionBackColor = lkwbackcolor
.Columns("Auftraggeber").MinimumWidth = 150
.Columns("Auftraggeber").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Auftraggeber").HeaderText = "Avisierer"
.Columns("Frächter").MinimumWidth = 150
.Columns("Frächter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Frächter").HeaderText = "Frächter"
.Columns("Telefonisch").Visible = False 'Status Telefon nicht anzeigen
.Columns("AvisoTVHinweis").Visible = False 'Status Telefon nicht anzeigen
.Columns("LKW_fertig").Width = 35
.Columns("LKW_fertig").HeaderText = "OK"
.Columns("LKW_fertig").DefaultCellStyle.ForeColor = Color.White
.Columns("LKW_fertig").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns("LKW_fertig").DefaultCellStyle.Font = bfont
.Columns("Info").Visible = False
.Columns("Info").MinimumWidth = 200
.Columns("Info").HeaderText = "Info (Einträge bis zum Status ERFASST)"
.Columns("Info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Handling").Width = 50
.Columns("Handling").HeaderText = "Handling"
'.Columns(12).Width = 700
'.Columns(12).HeaderText = "Änderungen"
initDauerLKWFertig()
End With
End Sub
Sub initDauerLKWFertig()
Try
'Dauer berechnen:
With MyDatagridview1
For Each r As DataGridViewRow In .Rows
If r.Cells("Dauer").Value Is DBNull.Value Or r.Cells("Dauer").Value = 0 Then
If CInt(r.Cells("Status").Value) = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then
If Not IsDBNull(r.Cells("Ankunft").Value) AndAlso Not CDate(r.Cells("Ankunft").Value) = LeerDatum Then
Dim dauerTmp = DateDiff(DateInterval.Minute, CDate(VarToDate(r.Cells("Ankunft").Value)), Now)
If IsNumeric(dauerTmp) AndAlso dauerTmp > 0 Then
r.Cells("Dauer").Value = dauerTmp
Else
r.Cells("Dauer").Value = "0"
End If
Else
r.Cells("Dauer").Value = "0"
End If
End If
End If
If r.Cells("LKW_fertig").Value = "OK" Then
r.Cells("LKW_fertig").Style.ForeColor = Color.White
r.Cells("LKW_fertig").Style.BackColor = Color.FromArgb(0, 54, 128)
'Else
'r.Cells("LKW_fertig").Style.BackColor = Color.White
End If
If r.Cells("LKW_fertig").Value = "DE" Then
r.Cells("LKW_fertig").Style.ForeColor = Color.White
r.Cells("LKW_fertig").Style.BackColor = Color.Green
'Else
'r.Cells("LKW_fertig").Style.BackColor = Color.White
End If
Next
End With
GridZeichnenAviso()
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Private Sub GridZeichnenAviso()
'hier wird der Grid speziell designed
If MyDatagridview1.RowCount = 0 Then Exit Sub
'Falls Kunde auf inaktiv steht, dann wird Zeile ausgegraut angezeigt
For Each dr As DataGridViewRow In MyDatagridview1.Rows
Select Case VarToInt(dr.Cells("Status").Value)
Case 0 'erfasst
dr.DefaultCellStyle.SelectionBackColor = Color.FromArgb(230, 0, 0)
dr.DefaultCellStyle.ForeColor = Color.FromArgb(230, 0, 0)
dr.DefaultCellStyle.SelectionForeColor = Color.White
Case 1 'freigegeben
dr.DefaultCellStyle.SelectionBackColor = Color.Green
dr.DefaultCellStyle.ForeColor = Color.Green
dr.DefaultCellStyle.SelectionForeColor = Color.White
Case 2 'LKW nicht eingetroffen
dr.DefaultCellStyle.SelectionBackColor = Color.Gray
dr.DefaultCellStyle.ForeColor = Color.Gray
dr.DefaultCellStyle.SelectionForeColor = Color.White
Case 3 'Ankunft
dr.DefaultCellStyle.SelectionBackColor = Color.Blue
dr.DefaultCellStyle.ForeColor = Color.Blue
dr.DefaultCellStyle.SelectionForeColor = Color.White
Case 4 'Vorbereitet
dr.DefaultCellStyle.SelectionBackColor = Color.Brown
dr.DefaultCellStyle.ForeColor = Color.Brown
dr.DefaultCellStyle.SelectionForeColor = Color.White
Case 5 'Vorbereitet
dr.DefaultCellStyle.SelectionBackColor = Color.Purple
dr.DefaultCellStyle.ForeColor = Color.Purple
dr.DefaultCellStyle.SelectionForeColor = Color.White
End Select
dr.Cells("Status").Style.BackColor = dr.DefaultCellStyle.ForeColor
dr.Cells("Status").Style.SelectionForeColor = dr.DefaultCellStyle.ForeColor
dr.Cells("LKW_Nr").Style.BackColor = lkwbackcolor
'dr.Cells("LKW_Nr").Style.SelectionBackColor = lkwbackcolorSel
' dr.Cells("LKW_Nr").Style.SelectionForeColor = Color.Black
Next
End Sub
End Class