Files
AVISO/Aviso/AktenErfassung/frmEintragSammelakt.vb
2026-01-14 08:41:23 +01:00

598 lines
21 KiB
VB.net

Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO
Public Class frmEintragSammelakt
' Public frmHilf As frmMain
Dim Firmen As New cFirmenDAL
Dim AvisoDAL As New cAvisoDAL
Dim myAviso As New cAviso
Dim AVISOFUNC As New AvisoStatusFunctions
Dim ADMIN As New cADMIN
Dim hÄnderung As Boolean = False
Dim Neuanlage As Boolean = False
Public EingangsDatum As Date = CDate("01.01.1990")
Dim hStatus As Integer
Dim showSendungsdetails As Boolean = False
Dim hAdresse As String = ""
Dim hCC As String = ""
Public aktiv As Boolean = False
Public ATT As List(Of String)
Dim PROG As New cProgramFunctions
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public FIRMA_TMP As String = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Public Sub New()
InitializeComponent()
Icon = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.GetProgrammIcon
End Sub
Private Sub frmEintragAviso_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
'Escape händisch abfangen und auf Abbruch-Taste legen
If e.KeyCode = Keys.Escape Then
btnAbbruch.PerformClick()
End If
If e.KeyCode = Keys.Return Then
e.Handled = True
End If
End Sub
Sub initAttachment()
If ATT Is Nothing Then dgvAnhaenge.Visible = False : Exit Sub
dgvAnhaenge.Rows.Clear()
If ATT.Count = 0 Then
' btnSaveAttachments.Enabled = False
Else
dgvAnhaenge.Visible = True
For Each a In ATT
Dim display = a
If a.Contains("\") Then
Dim sp = a.Split("\")
display = sp(sp.Count - 1)
End If
dgvAnhaenge.Rows.Add({display, a})
Next
End If
dgvAnhaenge.ClearSelection()
End Sub
Private Sub frmEintragAviso_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
' MsgBox("Keine Berechtigung!")
' Me.Close()
'End If
Me.CenterToParent()
btnOK.Enabled = False
kdAuftraggeber.initKdBox(Me)
MyComboBox1.Items.Clear()
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("CBAM", "CBAM"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EUDR", "EUDR"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FGAS", "FGAS"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ZOLLBERATUNG", "COMPLIANCE"))
MyComboBox1.changeItem("")
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
ATILLA_NEUERAKTENDECKEL = True
End If
' SDL.cProgramFunctions.initDrucker(cboPrinter)
cboFirma.Items.Clear()
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG", "VERAG"))
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX"))
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISPED"))
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBAR", "AMBAR"))
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATILLA", "ATILLA"))
cboFirma.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FRONTOFFICE"))
cboFirma.changeItem(FIRMA_TMP)
cboFirma.Enabled = False
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VERIMEX", "AVISO") Then
cboFirma.Enabled = True
End If
AddHandler kdAuftraggeber.PropertyChanged, Sub()
If kdAuftraggeber.KdNr_value > 0 Then
btnAuftraggeber.Enabled = True
Else
btnAuftraggeber.Enabled = False
End If
End Sub
btnOK.Enabled = True
Dim bearb As Boolean = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Avisodaten_verwalten", Me.FindForm)
If cGlobal.Aktive_ID = 0 Then
'es erfolgt eine Neuanlage
Neuanlage = True
Me.Text = "Neuanlage LKW-Aviso"
dtpDatum.Value = Now
If Not bearb Then dtpDatum.Enabled = False
txtÄnderungen.Text = "Neuanlage von " & cGlobal.AktiverMitarbeiter.Mitarbeiter
lblStatus.Text = "Neuanlage"
kdAuftraggeber.Text = ""
Else
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("WARENORT", "AVISO") Then
Me.Close()
End If
Me.Text = "Änderung LKW-Aviso"
'If myAviso.Status = cGlobal.Status_Ankunft Or myAviso.Status = cGlobal.Status_Freigegeben Then datVoraussichtlichesEintreffen.Visible = False
'txtInfo.Visible = False
'Label3.Visible = False
''ausgewählter Datensatz wird geladen
'Button3.Visible = False
myAviso = AvisoDAL.LesenAviso(cGlobal.Aktive_ID, "")
'Werte(zuweisen)
dtpDatum.Value = myAviso.Datum
If Not bearb Then dtpDatum.Enabled = False
If myAviso.Auftraggeber_KdNr > 0 Then
kdAuftraggeber.KdNr = myAviso.Auftraggeber_KdNr
Else
kdAuftraggeber.Text = myAviso.Auftraggeber
End If
txtInfo.Text = myAviso.Info.Trim
txtLKW_Nr.Text = myAviso.LKW_Nr
txtÄnderungen.Text = myAviso.Änderungen.Trim
hStatus = myAviso.Status
If myAviso.Status <> cGlobal.Status_Erfasst Then txtInfo.Enabled = False
'optOhneAviso.Checked = txtÄnderungen.Text.Contains("Neuanlage Ankunft ohne Aviso")
'Status anzeigen
Select Case hStatus
Case cGlobal.Status_Ankunft
lblStatus.Text = "Ankunft"
If myAviso.Ankunft <> LeerDatum Then lblStatus.Text += " " & Format(myAviso.Ankunft, "dd.MM. HH:mm")
lblStatus.ForeColor = Color.Blue
Case cGlobal.Status_Erfasst
lblStatus.Text = "erfasst"
lblStatus.ForeColor = Color.Red
Case cGlobal.Status_Freigegeben
lblStatus.Text = "Freigabe " & Format(myAviso.Freigabe, "dd.MM. HH:mm")
lblStatus.ForeColor = Color.Green
btnOK.Enabled = bearb
Case cGlobal.Status_NichtEingetroffen
lblStatus.Text = "LKW nicht eingetroffen"
lblStatus.ForeColor = Color.DarkGray
btnOK.Enabled = bearb
Case cGlobal.Status_Vorbereitet
lblStatus.Text = "Vorbereitet"
lblStatus.ForeColor = Color.Brown
btnOK.Enabled = bearb
Case cGlobal.Status_Vorgeschrieben
lblStatus.Text = "Vorgeschrieben"
lblStatus.ForeColor = Color.Purple
btnOK.Enabled = bearb
Case Else
lblStatus.Text = ""
End Select
lblStatus.Text = " " & lblStatus.Text & " " 'für bessere farbliche Hervorhebung
cboFirma.changeItem("")
cboFirma.changeItem(myAviso.FIRMA)
End If
If bearb Then Me.Text += " (Verwaltung)"
hÄnderung = False
dtpDatum.Enabled = bearb 'nur Administrator darf Erfassungsdatum ändern/bearbeiten
'If Neuanlage Then
' dtpAvisoEingangDatum.Value = Now.Date
' dtpAvisoEingangZeit.Value = LeerDatum
'Else
' dtpAvisoEingangDatum.Enabled = bearb
' dtpAvisoEingangZeit.Enabled = bearb
'End If
initAttachment()
End Sub
Private Sub dgvAnhaenge_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvAnhaenge.KeyDown
If e.KeyCode = Keys.Delete Then
If dgvAnhaenge.SelectedRows.Count > 0 Then
For Each row In dgvAnhaenge.SelectedRows.Cast(Of DataGridViewRow)().OrderByDescending(Function(dgvr) dgvr.Index)
ATT.RemoveAt(row.Index)
Next
'ATT.RemoveAt(dgvAnhaenge.SelectedRows(0).Index) 'Inex-Rows = Index-Att
initAttachment()
End If
End If
End Sub
Private Sub btnAbbruch_Click(sender As System.Object, e As System.EventArgs) Handles btnAbbruch.Click
Me.Close()
End Sub
Private Sub txtFeld_GotFocus(sender As Object, e As System.EventArgs) Handles txtLKW_Nr.GotFocus
CType(sender, TextBox).SelectAll()
End Sub
Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
Try
If Not aktiv Then Exit Sub
lblErrErfasstDat.Visible = False
lblErr_Aktentyp.Visible = False
lblErr_Kunde.Visible = False
lblErr_LKW.Visible = False
If FIRMA_TMP = "VERIMEX" Then
If cboFirma._value = "" Then
MsgBox("Firma auswählen!", vbInformation)
cboFirma.Focus()
Exit Sub
End If
End If
If dtpDatum.Enabled AndAlso CDate(dtpDatum.Value) > Now Then
lblErrErfasstDat.Visible = True
dtpDatum.Focus()
Exit Sub
End If
If MyComboBox1._value.Trim = "" Then
' MsgBox("Bitte die LKW-Nummer eingegeben.", vbInformation)
lblErr_Aktentyp.Visible = True
MyComboBox1.Focus()
Exit Sub
End If
If txtLKW_Nr.Text.Trim = "" Then
' MsgBox("Bitte die LKW-Nummer eingegeben.", vbInformation)
lblErr_LKW.Visible = True
txtLKW_Nr.Focus()
Exit Sub
End If
If kdAuftraggeber.KdNr_value <= 0 Then
lblErr_Kunde.Visible = True
kdAuftraggeber.Focus()
Exit Sub
End If
If Neuanlage Then
'jetzt eine Prüfung, ob dieser LKW bereits vor kurzem erfasst wurde
Dim hLKWCheck2 As String = AvisoDAL.Suche_LKWStatus(txtLKW_Nr.Text.Trim.Replace(" ", "").Replace("-", ""))
If hLKWCheck2 <> "" Then
Dim antwort As MsgBoxResult = MsgBox(hLKWCheck2 & vbCrLf & vbCrLf & "Wollen Sie den Eintrag trotzdem speichern?", CType(MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation, MsgBoxStyle),
"Aviso-Eintrag")
If antwort = vbNo Then
Exit Sub
End If
End If
If hLKWCheck2 = "" Then
'jetzt eine Prüfung, ob dieser LKW bereits vor kurzem erfasst wurde
Dim hLKWCheck As String = AvisoDAL.Suche_LKW(txtLKW_Nr.Text.Trim.Replace(" ", "").Replace("-", ""))
If hLKWCheck <> "" Then
Dim antwort As MsgBoxResult = MsgBox(hLKWCheck & vbCrLf & vbCrLf & "Wollen Sie den Eintrag trotzdem speichern?", CType(MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation, MsgBoxStyle),
"Aviso-Eintrag")
If antwort = vbNo Then
Exit Sub
End If
End If
End If
End If
Me.Cursor = Cursors.WaitCursor
Dim aendart As String = ""
Dim aendText As String = ""
'Werte zuweisen
myAviso.Telefonisch = ""
myAviso.Datum = dtpDatum.Value
myAviso.LKW_Nr = txtLKW_Nr.Text.Trim.Replace(" ", "").Replace("-", "")
If kdAuftraggeber.KdNr_value > 0 Then
myAviso.Auftraggeber = IIf(kdAuftraggeber.KdName <> "", kdAuftraggeber.KdName, kdAuftraggeber.Text)
myAviso.Auftraggeber_KdNr = kdAuftraggeber.KdNr_value
Else
myAviso.Auftraggeber = kdAuftraggeber.Text
myAviso.Auftraggeber_KdNr = -1
End If
If myAviso.Auftraggeber.Length > 50 Then myAviso.Auftraggeber = myAviso.Auftraggeber.Substring(0, 50)
myAviso.Frächter = myAviso.Auftraggeber
myAviso.Frächter_KdNr = myAviso.Auftraggeber_KdNr
myAviso.Grenzstelle = ""
myAviso.Info = ""
If Neuanlage Then
myAviso.letzterMitarbeiter = cGlobal.AktiverMitarbeiter.Mitarbeiter
myAviso.TeamId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_teamId
End If
If Neuanlage Then
myAviso.Änderungen = "Neuanlage von " & cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm")
aendart = "Neuanlage"
aendText = "Neuanlage von " & cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm")
Else
myAviso.Änderungen = "Änderung per Eingabefenster von " & cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm") & vbCrLf & myAviso.Änderungen
aendart = "Änderung per Eingabefenster"
aendText = "Änderung per Eingabefenster von " & cGlobal.AktiverMitarbeiter.Mitarbeiter & " am " & Format(Now, "dd.MM.yyyy HH:mm")
End If
Dim DatAnkunftNow = AVISOFUNC.getAnkunftDateNow()
myAviso.Status = cGlobal.Status_Ankunft
myAviso.Status = cGlobal.Status_Erfasst
myAviso.Ankunft = LeerDatum
myAviso.Freigabe = LeerDatum
myAviso.Vorbereitet = LeerDatum
myAviso.Vorgeschrieben = LeerDatum
myAviso.Dauer = 0
myAviso.FIRMA = If(cboFirma._value <> "", cboFirma._value, FIRMA_TMP)
myAviso.Cluster = If(VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER, "")
Dim tmpId = AvisoDAL.SpeichernAviso(myAviso)
myAviso.AvisoID = tmpId
AvisoDAL.addAenderung(tmpId, aendart, aendText)
'Infotext als Vermerk:
If txtInfo.Text.Trim <> "" Then
If txtInfo.Text.Length <= 80 Then
AvisoStatusFunctions.insertVermerkAllg(tmpId, txtInfo.Text.Trim, 46)
ElseIf txtInfo.Text.Length <= 160 Then
AvisoStatusFunctions.insertVermerkAllg(tmpId, txtInfo.Text.Substring(0, 80), 46)
AvisoStatusFunctions.insertVermerkAllg(tmpId, txtInfo.Text.Substring(80, 80), 46)
ElseIf txtInfo.Text.Length <= 240 Then
AvisoStatusFunctions.insertVermerkAllg(tmpId, txtInfo.Text.Substring(0, 80), 46)
AvisoStatusFunctions.insertVermerkAllg(tmpId, txtInfo.Text.Substring(80, 80), 46)
AvisoStatusFunctions.insertVermerkAllg(tmpId, txtInfo.Text.Substring(160, 80), 46)
End If
End If
Me.Cursor = Cursors.Default
'Jetzt wird Fenster geschlossen
Me.Close()
VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = tmpId
frmHauptfenster.setAktDetails(tmpId, showSendungsdetails)
If showSendungsdetails Then
End If
Catch ex As Exception
Me.Cursor = Cursors.Default
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
''threadsicherer Aufruf
'Delegate Sub setCboEntryCallback(i As String)
'Private Sub setCboEntry(i As String)
' Try
' If Me.InvokeRequired Then
' Dim d As New setCboEntryCallback(AddressOf setCboEntry)
' Me.Invoke(d, New Object() {i})
' Else
' cboPrinter.Items.Add(i)
' End If
' Catch ex As Exception
' End Try
'End Sub
''threadsicherer Aufruf
'Delegate Sub setCboSelectedCallback(standardDrucker As String)
'Private Sub setCboSelected(standardDrucker As String)
' If Me.InvokeRequired Then
' Dim d As New setCboSelectedCallback(AddressOf setCboSelected)
' Me.Invoke(d, New Object() {standardDrucker})
' Else
' Dim found As Boolean = False
' ' For Each i In cboPrinter.Items
' 'If i.ToString.ToUpper.Contains("TALLY") Then
' 'found = True
' ' cboPrinter.SelectedItem = i : Exit For
' ' End If
' ' Next
' If found = False Then 'Falls kein TALLY, Standarddrucker
' cboPrinter.SelectedIndex = 0
' For Each i In cboPrinter.Items
' If i.ToString = standardDrucker Then
' cboPrinter.SelectedItem = i
' Exit For
' End If
' Next
' End If
' End If
'End Sub
Private Function Platzhalter_ersetzen(hText As String, hLKW As String, hGrenzstelle As String) As String
If hText = "" Then
Platzhalter_ersetzen = hText
Exit Function
End If
'hier werden alle möglichen Platzhalter ersetzt
hText = hText.Replace("%LKW%", hLKW)
If hGrenzstelle <> "" Then
Dim Standorte As New cStandorteDAL
Dim Standort As New cStandort
Standort = Standorte.LesenStandort(0, hGrenzstelle, "")
If Not IsNothing(Standort) Then
hGrenzstelle = Standort.Standort_Text.Trim
End If
End If
hText = hText.Replace("%Standort%", hGrenzstelle)
hText = hText.Replace("%Uhrzeit%", Format(Now, "HH:mm"))
hText = hText.Replace("&", "und")
Platzhalter_ersetzen = hText
End Function
Private Sub txtLKW_Nr_TextChanged(sender As Object, e As EventArgs) Handles txtLKW_Nr.Leave
txtLKW_Nr.Text = txtLKW_Nr.Text.ToUpper
End Sub
Private Sub frmEintragAviso_Shown(sender As Object, e As EventArgs) Handles Me.Shown
'dtpAvisoEingangZeit.Focus()
aktiv = True
'If EingangsDatum > CDate("01.01.1990") Then
' dtpAvisoEingangDatum.Value = EingangsDatum
' dtpAvisoEingangZeit.Value = EingangsDatum
'End If
VERAG_PROG_ALLGEMEIN.cAllgemein._TRANSLATE(Me)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If StartFromOUTLOOK Then
MsgBox("Diese Funktion ist im Outlook Addin nicht verfügbar!")
Exit Sub
End If
' Me.showSendungsdetails = True
btnOK.PerformClick()
'If dgvSendungen.SelectedRows.Count > 0 Then
'sendId = dgvSendungen.SelectedRows(0).Cells("tblSnd_SendungID").Value
'End If
If myAviso.AvisoID > 0 Then
If Process.GetCurrentProcess().ProcessName.ToUpper() = "AVISO" Then
Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm()
Dim frmSendungsdetails As New frmSendungsdetailsNEU(myAviso.AvisoID, -1)
frmSendungsdetails.ShowDialog(frmGrayOut)
frmGrayOut.Close()
Else
VERAG_PROG_ALLGEMEIN.cProgramFunctions.SendMessageToAviso("OpenAvisoSnd_" & myAviso.AvisoID)
End If
End If
'initDgvSendungen()
End Sub
Private Sub btnAuftraggeber_Click(sender As Object, e As EventArgs) Handles btnAuftraggeber.Click
If kdAuftraggeber.KdNr > 0 Then
Me.Cursor = Cursors.WaitCursor
AVISOFUNC.showKd(kdAuftraggeber.KdNr)
Me.Cursor = Cursors.Default
End If
End Sub
Private Sub dgvAnhaenge_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAnhaenge.CellDoubleClick, dgvAnhaenge.CellContentDoubleClick
Try
If dgvAnhaenge.SelectedRows.Count > 0 Then
If dgvAnhaenge.SelectedRows(0).Cells(1).Value <> "" Then
Process.Start(dgvAnhaenge.SelectedRows(0).Cells(1).Value)
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox1.SelectedIndexChanged
Select Case MyComboBox1._value
Case "CBAM"
PictureBox1.BackgroundImage = My.Resources.cbam_s
Case "EUDR"
PictureBox1.BackgroundImage = My.Resources.eudr
Case "FGAS"
PictureBox1.BackgroundImage = My.Resources.fgas_s
Case "COMPLIANCE"
PictureBox1.BackgroundImage = My.Resources.compliance_s
Case Else
PictureBox1.BackgroundImage = Nothing
End Select
End Sub
End Class