Files
AVISO/Aviso/frmEintragVermerk.vb

480 lines
22 KiB
VB.net

Imports Gemeinsames
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO
Public Class frmEintragVermerk
Dim AvisoDAL As New cAvisoDAL
Dim myAviso As New cAviso
Dim VermerkeDAL As New cVermerkeDAL
Dim aktChanged As Boolean = False
Dim Neuanlage As Boolean = False
Dim hStatus As Integer
Public Sub New()
InitializeComponent()
Icon = cMeineFunktionenAVISO.GetProgrammIcon
End Sub
Private Sub frmEintragVermerk_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
End Sub
Dim listentoCheckChange As Boolean = True
Sub selectionChanged(sender As Object, e As EventArgs)
If listentoCheckChange Then
listentoCheckChange = False
For Each c In Me.Controls
If c.GetType.Name.ToString = "RadioButton" Then
' DirectCast(c, RadioButton).Checked = False
End If
Next
' DirectCast(sender, RadioButton).Checked = True
listentoCheckChange = True
End If
End Sub
Private Sub frmEintragVermerk_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
cboDokumente.Items.Clear()
cboDokumente.Items.Add(New MyListItem("nachgefordert", CStr(0)))
cboDokumente.Items.Add(New MyListItem("erhalten", CStr(1)))
cboDokumente.SelectedIndex = 0
Me.CenterToParent()
If My.Computer.Screen.WorkingArea.Height < Me.Height Then
Me.Height = My.Computer.Screen.WorkingArea.Height
End If
For Each c In Me.Controls
If c.GetType.Name.ToString = "RadioButton" Then
AddHandler DirectCast(c, RadioButton).CheckedChanged, AddressOf selectionChanged
End If
Next
optKeineAuswahl.Checked = True
'Daten zu Aviso werden geladen
myAviso = AvisoDAL.LesenAviso(VERAG_PROG_ALLGEMEIN.cglobal.Aktive_ID, "")
'Werte(zuweisen)
txtDatum.Text = Format(myAviso.Datum, "dd.MM.yyyy")
txtFrächter.Text = myAviso.Frächter
txtAuftraggeber.Text = myAviso.Auftraggeber
txtLKW_Nr.Text = myAviso.LKW_Nr
hStatus = myAviso.Status
Select Case hStatus
Case VERAG_PROG_ALLGEMEIN.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 VERAG_PROG_ALLGEMEIN.cglobal.Status_Erfasst
lblStatus.Text = "Erfasst"
lblStatus.ForeColor = Color.Red
Case VERAG_PROG_ALLGEMEIN.cglobal.Status_Vorbereitet
lblStatus.Text = "Vorbereitet"
lblStatus.ForeColor = Color.Brown
Case VERAG_PROG_ALLGEMEIN.cglobal.Status_Freigegeben
lblStatus.Text = "Freigabe " & Format(myAviso.Freigabe, "dd.MM. HH:mm")
lblStatus.ForeColor = Color.Green
Case VERAG_PROG_ALLGEMEIN.cglobal.Status_NichtEingetroffen
lblStatus.Text = "LKW nicht eingetroffen"
lblStatus.ForeColor = Color.DarkGray
Case VERAG_PROG_ALLGEMEIN.cglobal.Status_Vorgeschrieben
lblStatus.Text = "Vorgeschrieben"
lblStatus.ForeColor = Color.Purple
Case Else
lblStatus.Text = ""
End Select
lblStatus.Text = " " & lblStatus.Text & " " 'für bessere farbliche Hervorhebung
If hStatus = VERAG_PROG_ALLGEMEIN.cglobal.Status_Vorbereitet Or hStatus = VERAG_PROG_ALLGEMEIN.cglobal.Status_Vorgeschrieben Or hStatus = VERAG_PROG_ALLGEMEIN.cglobal.Status_Erfasst Then
optSendungInVorbereitung.Visible = True
optSendungVorbereitet.Visible = True
' txtSendungAllg.Visible = True
' Label19.Visible = True
PictureBox2.Visible = True
Label10.Visible = True
Label11.Visible = True
If hStatus = VERAG_PROG_ALLGEMEIN.cglobal.Status_Vorgeschrieben Then
optSendungInVorbereitung.Visible = False
End If
Else
optSendungInVorbereitung.Visible = False
Label10.Visible = False
Label11.Visible = False
optSendungVorbereitet.Visible = False
' txtSendungAllg.Visible = False
' Label19.Visible = False
PictureBox2.Visible = False
End If
'bereits vorhandene Vermerke laden
txtInfo.Text = VermerkeDAL.Vermerke_einlesen(myAviso.AvisoID)
optKeineAuswahl.Checked = True
Me.Text = "AKT " & myAviso.LKW_Nr & ""
With dgvAbfertigung
.DataSource = AvisoDAL.loadDataTableBySQL("SELECT art.[QS_Abfertigungsart_ID], abf.QS_Abfertigungsart_Anzahl as Anzahl, [QS_Abfertigungsart_Bezeichnung] " &
" FROM [tblQS_Abfertigungsarten] as art LEFT JOIN (select * from tblQS_Auftragspositionen where AvisoID=" & VERAG_PROG_ALLGEMEIN.cglobal.Aktive_ID & ") as abf on art.QS_Abfertigungsart_ID=abf.QS_Abfertigungsart_ID " &
" ORDER BY [QS_Abfertigungsart_Bezeichnung]")
.ReadOnly = False
.Columns("QS_Abfertigungsart_ID").Visible = False
.Columns("QS_Abfertigungsart_Bezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("QS_Abfertigungsart_Bezeichnung").HeaderText = "Abfertigungsart"
.Columns("Anzahl").Width = 40
.Columns("Anzahl").HeaderText = "Anz."
.Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
End With
cbxSammelakt.Checked = myAviso.Sammelakt
cbxHandling.Checked = myAviso.Handling
txtSendungen.Text = myAviso.Sendungen_Gesamtanzahl
AddHandler dgvAbfertigung.CellValueChanged, Sub()
aktChanged = True : Button1.Enabled = True
End Sub
AddHandler cbxHandling.CheckStateChanged, Sub()
aktChanged = True : Button1.Enabled = True
End Sub
AddHandler cbxSammelakt.CheckStateChanged, Sub()
aktChanged = True : Button1.Enabled = True
End Sub
AddHandler txtSendungen.TextChanged, Sub()
aktChanged = True : Button1.Enabled = True
End Sub
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 txtFreierText.GotFocus, txtSendung.GotFocus, txtSpedition.GotFocus
CType(sender, TextBox).SelectAll()
End Sub
Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click, Button2.Click
If optKeineAuswahl.Checked Then
MsgBox("Es wurde kein Vermerk ausgewählt. Der Datensatz kann nicht gespeichert werden.", vbInformation)
optKeineAuswahl.Focus()
Exit Sub
End If
If txtDetail.Text <> "" Then
If txtDetail.Text.Length > 240 Then
showErr(lblErr240Zeichen)
txtDetail.Focus()
Exit Sub
End If
End If
'Plausibilität prüfen
If optFreierText.Checked Then
If txtFreierText.Text.Trim = "" Then
showErr(lblErrGrund)
txtFreierText.Focus()
Exit Sub
End If
insertVermerk(txtFreierText.Text.Trim, 45)
ElseIf optAvisoNichtEingelangt.Checked Then
insertVermerk("Aviso nicht eingelangt", 15)
ElseIf optAvisoZuKurz.Checked Then
insertVermerk("Aviso eingelangt kurz vor Eintreffen des LKWs - keine Vorbereitung möglich", 16)
ElseIf optDEeingereicht.Checked = True Then
insertVermerk("DE Zoll eingereicht", 17)
' ElseIf optDEfertig.Checked Then
' insertVermerk("DE Zoll fertig", 18)
ElseIf optATEingereicht.Checked Then
insertVermerk("AT Zoll eingereicht", 19)
'ElseIf optATfertig.Checked Then
' insertVermerk("AT Zoll fertig", 20)
ElseIf optLKW_Wochenende.Checked Then
insertVermerk("LKW Standzeit Wochenende", 21)
ElseIf optLKW_Feiertage.Checked Then
insertVermerk("LKW Standzeit Feiertag(e)", 22)
ElseIf optDokumente.Checked = True Then
If txtSendung.Text.Trim = "" Then
showErr(lblErrSendungProbleme)
txtSendung.Focus()
Exit Sub
End If
If DirectCast(cboDokumente.SelectedItem, MyListItem).Value = "0" Then 'angefordert
If cbxAuftrag.Checked Then insertVermerk("Auftrag für Sendung '" & txtSendung.Text.Trim & "' fehlt - angefordert", 1)
If cbxRechnung.Checked Then insertVermerk("Rechnung für Sendung '" & txtSendung.Text.Trim & "' fehlt / mangelhaft - angefordert", 3)
If cbxLS.Checked Then insertVermerk("Lieferschein für Sendung '" & txtSendung.Text.Trim & "' fehlt - angefordert", 5)
If cbxATR.Checked Then insertVermerk("ATR für Sendung '" & txtSendung.Text.Trim & "' fehlt - angefordert", 7)
If cbxVollmacht.Checked Then insertVermerk("Vollmacht für Sendung '" & txtSendung.Text.Trim & "' fehlt - angefordert", 9)
If cbxCMR.Checked Then insertVermerk("CMR für Fiskal VZ bei Sendung '" & txtSendung.Text.Trim & "' angefordert", 11)
If cbxSonstDok.Checked Then
If txtSonstigesDokumentFehlt.Text.Trim = "" Then
showErr(lblErrDokument) : txtSonstigesDokumentFehlt.Focus() : Exit Sub
End If
insertVermerk("Dokument '" & txtSonstigesDokumentFehlt.Text.Trim & "' bei Sendung '" & txtSendung.Text.Trim & "' fehlt - angefordert.", 25)
End If
ElseIf DirectCast(cboDokumente.SelectedItem, MyListItem).Value = "1" Then ' erhalten
If cbxAuftrag.Checked Then insertVermerk("Auftrag für Sendung '" & txtSendung.Text.Trim & "' fehlt - erhalten", 2)
If cbxRechnung.Checked Then insertVermerk("Rechnung für Sendung '" & txtSendung.Text.Trim & "' fehlt / mangelhaft - erhalten", 4)
If cbxLS.Checked Then insertVermerk("Lieferschein für Sendung '" & txtSendung.Text.Trim & "' fehlt - erhalten", 6)
If cbxATR.Checked Then insertVermerk("ATR für Sendung '" & txtSendung.Text.Trim & "' fehlt - erhalten", 8)
If cbxVollmacht.Checked Then insertVermerk("Vollmacht für Sendung '" & txtSendung.Text.Trim & "' fehlt - erhalten", 10)
If cbxCMR.Checked Then insertVermerk("CMR für Fiskal VZ bei Sendung '" & txtSendung.Text.Trim & "' erhalten", 12)
If cbxSonstDok.Checked Then
If txtSonstigesDokumentFehlt.Text.Trim = "" Then
showErr(lblErrDokument) : txtSonstigesDokumentFehlt.Focus() : Exit Sub
End If
insertVermerk("Dokument '" & txtSonstigesDokumentFehlt.Text.Trim & "' bei Sendung '" & txtSendung.Text.Trim & "' fehlt - erhalten.", 30)
End If
End If
If cbxNichtLeserlich.Checked Then insertVermerk("Dokument(e) nachgefordert, da nicht leserlich.", 42)
ElseIf optVorkasseAngefordert.Checked = True Then
If txtSendung.Text.Trim = "" Then
showErr(lblErrSendungProbleme)
txtSendung.Focus()
Exit Sub
End If
insertVermerk("Vorauskasse bei Sendung " & txtSendung.Text.Trim & " angefordert", 13)
' ElseIf optVorkasseErhalten.Checked = True Then
' If txtSendung.Text.Trim = "" Then
' showErr(lblErrSendungProbleme)
' txtSendung.Focus()
' Exit Sub
' End If
' insertVermerk("Vorauskasse bei Sendung " & txtSendung.Text.Trim & " erhalten", 14)
ElseIf optSpeditionWeitergeleitet.Checked = True Then
If txtSendungSpedition.Text.Trim = "" Then
showErr(lblErrSendungSpedition)
txtSendungSpedition.Focus()
Exit Sub
End If
If txtSpedition.Text.Trim = "" Then
showErr(lblErrSpedition)
txtSpedition.Focus()
Exit Sub
End If
insertVermerk("Fahrer muss Sendung " & txtSendungSpedition.Text.Trim & " bei Spedition " & txtSpedition.Text.Trim & " abfertigen - weitergeleitet", 28)
'ElseIf optSpeditionErledigt.Checked = True Then
' If txtSendungSpedition.Text.Trim = "" Then
' showErr(lblErrSendungSpedition)
' txtSendungSpedition.Focus()
' Exit Sub
' End If
' If txtSpedition.Text.Trim = "" Then
' showErr(lblErrSpedition)
' txtSpedition.Focus()
' Exit Sub
' End If
' insertVermerk("Fahrer mit Sendung " & txtSendungSpedition.Text.Trim & " von Spedition " & txtSpedition.Text.Trim & " abgefertigt - zurück", 29)
ElseIf optSendungInVorbereitung.Checked = True Then
If txtSendung.Text.Trim = "" Then
showErr(lblErrSendungProbleme)
txtSendung.Focus()
Exit Sub
End If
insertVermerk("Sendung '" & txtSendung.Text.Trim & "' in Vorbereitung.", 31)
ElseIf optSendungVorbereitet.Checked = True Then
If txtSendung.Text.Trim = "" Then
showErr(lblErrSendungProbleme)
txtSendung.Focus()
Exit Sub
End If
insertVermerk("Sendung '" & txtSendung.Text.Trim & "' Vorbereitung abgeschlossen.", 32)
ElseIf optATAangefordert.Checked = True Then
If txtSendung.Text.Trim = "" Then
showErr(lblErrSendungProbleme)
txtSendung.Focus()
Exit Sub
End If
insertVermerk("ATA-Nr. bei Sendung " & txtSendung.Text.Trim & " angefordert", 33)
' ElseIf optATAerhalten.Checked = True Then
' If txtSendung.Text.Trim = "" Then
'showErr(lblErrSendungProbleme)
' txtSendung.Focus()
' Exit Sub
' End If
'insertVermerk("ATA-Nr. bei Sendung " & txtSendung.Text.Trim & " erhalten", 34)
ElseIf optFach.Checked = True Then
If txtFach.Text.Trim = "" Then
showErr(lblErrFach)
txtFach.Focus()
Exit Sub
End If
insertVermerk("Akt liegt im Fach '" & txtFach.Text.Trim & "'", 35)
ElseIf optWeitergeleitetSBG.Checked = True Then
insertVermerk("Nach SBG weitergegeben", 38)
VermerkeDAL.UpdateGrenzstelle(myAviso.AvisoID, "SBG")
ElseIf optWeitergeleitetWAI.Checked = True Then
insertVermerk("Nach WAI weitergegeben", 39)
VermerkeDAL.UpdateGrenzstelle(myAviso.AvisoID, "WAI")
ElseIf optWeitergeleitetNKD.Checked = True Then
insertVermerk("Nach NKD weitergegeben", 40)
ElseIf optWeitergeleitetSFD.Checked = True Then
insertVermerk("Nach Spielfeld (Lex) weitergegeben", 41)
ElseIf optWeitergeleitetQS.Checked = True Then
insertVermerk("Akt wurde in die QS-Abteilung gegeben", 43)
End If
If txtDetail.Text <> "" Then
If txtDetail.Text.Length <= 80 Then
insertVermerk(txtDetail.Text, 44)
ElseIf txtDetail.Text.Length <= 160 Then
insertVermerk(txtDetail.Text.Substring(0, 80), 44)
insertVermerk(txtDetail.Text.Substring(80, 80), 44)
ElseIf txtDetail.Text.Length <= 240 Then
insertVermerk(txtDetail.Text.Substring(0, 80), 44)
insertVermerk(txtDetail.Text.Substring(80, 80), 44)
insertVermerk(txtDetail.Text.Substring(160, 80), 44)
End If
End If
If Button1.Enabled Then
Select Case MsgBox("Aktendaten wurden verändert. Möchten Sie diese speichern?", vbYesNo)
Case vbYes
Button1.PerformClick()
'vbNo = nichts tun
End Select
End If
'Jetzt wird Fenster geschlossen
frmHauptfenster.avisoAktualisierenAktiveIdBehalten(myAviso.AvisoID)
Me.Close()
If sender Is Button2 Then
Dim frmEintragVermerk As New frmEintragVermerk
frmEintragVermerk.ShowDialog(Me.Owner)
End If
End Sub
Sub insertVermerk(Text As String, VermerkCodeId As Integer, Optional Beschreibung As String = "")
'Daten zuweisen und speichern
Dim myVermerk As New cVermerk
myVermerk.VermerkID = 0
myVermerk.AvisoID = myAviso.AvisoID
myVermerk.Datum = Now
myVermerk.Mitarbeiter = VERAG_PROG_ALLGEMEIN.cglobal.AktiverMitarbeiter.Mitarbeiter
myVermerk.MitarbeiterId = VERAG_PROG_ALLGEMEIN.cglobal.AktiverMitarbeiter.MitarbeiterID
myVermerk.Hinweis_Vermerk = Text
myVermerk.VermerkCodeId = VermerkCodeId
VermerkeDAL.SpeichernVermerk(myVermerk)
If myVermerk.VermerkCodeId = 18 Then
VermerkeDAL.UpdateLKW(myVermerk.AvisoID, False)
frmHauptfenster.avisoAktualisierenAktiveIdBehalten(myVermerk.AvisoID)
End If
End Sub
Sub showErr(l As Label)
lblErrDokument.Visible = False
lblErrFach.Visible = False
lblErrGrund.Visible = False
lblErrSendungProbleme.Visible = False
lblErrSendungSpedition.Visible = False
'lblErrSendungVorbereitung.Visible = False
lblErrSpedition.Visible = False
l.Visible = True
End Sub
Private Sub Label10_Click(sender As Object, e As EventArgs) Handles Label12.Click
End Sub
Private Sub Label14_Click(sender As Object, e As EventArgs) Handles Label14.Click, Label16.Click, Label15.Click
End Sub
Private Sub txtFreierText_TextChanged(sender As Object, e As EventArgs) Handles txtFreierText.TextChanged
If txtFreierText.Text <> "" Then
optFreierText.Checked = True
End If
End Sub
Private Sub cboDokumente_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboDokumente.Click
cboDokumente.SelectedIndex = CInt(Not cboDokumente.SelectedIndex = 0) + 1
cbxAuftrag.Focus()
optDokumente.Checked = True
End Sub
Private Sub cbxAuftrag_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAuftrag.CheckedChanged, cbxRechnung.CheckedChanged, cbxLS.CheckedChanged,
cbxCMR.CheckedChanged, cbxATR.CheckedChanged, cbxVollmacht.CheckedChanged, cbxSonstDok.CheckedChanged, cbxNichtLeserlich.CheckedChanged
optDokumente.Checked = True
End Sub
Private Sub SonstChanged(sender As Object, e As EventArgs) Handles txtSonstigesDokumentFehlt.TextChanged
optDokumente.Checked = True
cbxSonstDok.Checked = (sender.text <> "")
End Sub
Private Sub txtSendungSpedition_TextChanged(sender As Object, e As EventArgs) Handles txtSendungSpedition.TextChanged, txtSpedition.TextChanged
optSpeditionWeitergeleitet.Checked = True
End Sub
Private Sub txtFach_TextChanged(sender As Object, e As EventArgs) Handles txtFach.TextChanged
optFach.Checked = True
End Sub
Private Sub txtDetail_TextChanged(sender As Object, e As EventArgs) Handles txtDetail.TextChanged
If txtDetail.Text.Length = 240 Then
showErr(lblErr240Zeichen)
End If
End Sub
Private Sub Panel4_Paint(sender As Object, e As PaintEventArgs) Handles Panel4.Paint
End Sub
Private Sub cbxSammelakt_CheckedChanged(sender As Object, e As EventArgs) Handles cbxSammelakt.CheckedChanged
If cbxSammelakt.Checked Then
txtSendungen.Enabled = True
lnlSendungText.Text = "Sendungen"
txtSendungen.Focus()
txtSendungen.Select()
Else
txtSendungen.Text = "1"
txtSendungen.Enabled = False
lnlSendungText.Text = "Sendung"
End If
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
'Die QS-Aufträge eintragen:
Dim daten As New List(Of cQSAufträge)
For Each r As DataGridViewRow In dgvAbfertigung.Rows
Dim d As New cQSAufträge
d.AvisoID = myAviso.AvisoID
If IsNumeric(r.Cells("QS_Abfertigungsart_ID").Value) Then d.QS_Abfertigungsart_ID = r.Cells("QS_Abfertigungsart_ID").Value
If IsNumeric(r.Cells("Anzahl").Value) Then d.QS_Abfertigungsart_Anzahl = r.Cells("Anzahl").Value
daten.Add(d)
Next
AvisoDAL.setQSAufträge(daten) ' INSERT / UPDATE
myAviso.Sammelakt = cbxSammelakt.Checked
myAviso.Handling = cbxHandling.Checked
myAviso.Sendungen_Gesamtanzahl = txtSendungen.Text
AvisoDAL.SpeichernAviso(myAviso)
Button1.Enabled = False
End Sub
End Class