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