Imports System.Text.RegularExpressions Public Class frmGVMSNew Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim RouteId As Integer = -1 Public GVMS As VERAG_PROG_ALLGEMEIN.cGVMS = Nothing Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. End Sub Sub New(GVMS As VERAG_PROG_ALLGEMEIN.cGVMS) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() Me.GVMS = GVMS End Sub Private Sub frmGVMSNew_Load(sender As Object, e As EventArgs) Handles Me.Load cboCarrier.fillWithSQL("SELECT [carrierId],[carrierName] + '(' + [countryCode] + ')' carrierName FROM [tblGVMS_Carriers]", False, "FMZOLL", True) cboDirection.fillWithSQL("SELECT distinct([routeDirection]) FROM [VERAG].[dbo].[tblGVMS_Routes] where [routeEffectiveFrom] <= GETDATE() and ([routeEffectiveTo]<= GETDATE() OR [routeEffectiveTo] is null) ORDER BY [routeDirection] DESC", False, "FMZOLL", True) cboPortVon.fillWithSQL("SELECT [portId],[portDescription]+ '(' + [portcountryCode] + ')' portDescription FROM [tblGVMS_Ports] WHERE [portEffectiveFrom] <= GETDATE() and ([portEffectiveTo]<= GETDATE() OR [portEffectiveTo] is null) ORDER BY [portDescription] ", False, "FMZOLL", True) cboPortNach.fillWithSQL("SELECT [portId],[portDescription]+ '(' + [portcountryCode] + ')' portDescription FROM [tblGVMS_Ports] WHERE [portEffectiveFrom] <= GETDATE() and ([portEffectiveTo]<= GETDATE() OR [portEffectiveTo] is null) ORDER BY [portDescription] ", False, "FMZOLL", True) If GVMS IsNot Nothing Then setGVMS() End If End Sub Private Sub cboCarrier_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboCarrier.SelectedIndexChanged, cboDirection.SelectedIndexChanged, cboPortVon.SelectedIndexChanged, cboPortNach.SelectedIndexChanged findRoute() End Sub Function findRoute() As Boolean RouteId = -1 lblRoute.Text = "-" PictureBox1.Image = Nothing If cboCarrier._value = "" Then Return False If cboDirection._value = "" Then Return False If cboPortVon._value = "" Then Return False If cboPortNach._value = "" Then Return False Dim dt As DataTable = SQL.loadDgvBySql("SELECT [routeId] FROM [tblGVMS_Routes] where [routeEffectiveFrom] <= GETDATE() and ([routeEffectiveTo]<= GETDATE() OR [routeEffectiveTo] is null) AND [routeDirection]='" & cboDirection._value & "' AND [departurePortId]='" & cboPortVon._value & "' AND [arrivalPortId]='" & cboPortNach._value & "' AND CarrierId='" & cboCarrier._value & "' ", "FMZOLL") If dt Is Nothing Then Return False If dt.Rows.Count = 1 Then RouteId = dt(0)("routeId") lblRoute.Text = RouteId PictureBox1.Image = My.Resources.ok Return True ElseIf dt.Rows.Count > 1 Then PictureBox1.Image = My.Resources.del End If Return False End Function Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click If createGMR() Then Me.DialogResult = DialogResult.OK Else Me.DialogResult = DialogResult.None End If End Sub Function loadDGVPOS(ByRef GVMS As VERAG_PROG_ALLGEMEIN.cGVMS) As Boolean Dim formtErr As Boolean = False For Each r As DataGridViewRow In dgvDeclarations.Rows For Each C As DataGridViewCell In r.Cells C.Style.BackColor = Color.White Next Next For Each r As DataGridViewRow In dgvDeclarations.Rows If r.Cells("clmnArt").Value <> "" Then Dim POS As New VERAG_PROG_ALLGEMEIN.cGVMS_POS POS.gvms_art = getArt(r.Cells("clmnArt").Value) POS.gvms_RefNum = r.Cells("clmnRef").Value POS.gvms_SS = If(r.Cells("clmnss").Value <> "", r.Cells("clmnss").Value, Nothing) Dim RegExRef = "" Dim RegExSS = "^[A-Z0-9-)(/]{1,200}$" Select Case POS.gvms_art Case "EIDR" : RegExRef = "^[A-Z]{2}[0-9]{12,15}$" Case "EXPORT", "IMPORT" : RegExRef = "^[A-Z0-9-)(/]{1,200}$" 'Case "IMPORT": RegExRef = "^[A-Z0-9-)(/]{1,200}$" Case "TAD" : RegExRef = "^\d{2}[A-Z]{2}[A-Z0-9]{14}$" Case "TSAD" : RegExRef = "^\d{2}[A-Z]{2}[A-Z0-9]{14}$" Case "ATA" : RegExRef = "^.{1,200}$" Case "TIR" : RegExRef = "^.{1,200}$" ' Case "ORAL" : RegExRef = "" ' Case "INDIRECT" : RegExRef = "" End Select If RegExRef <> "" AndAlso Not Regex.IsMatch(POS.gvms_RefNum, RegExRef) Then r.Cells("clmnRef").Style.BackColor = Color.PapayaWhip formtErr = True End If If RegExSS <> "" AndAlso Not Regex.IsMatch(POS.gvms_RefNum, RegExSS) Then r.Cells("clmnRef").Style.BackColor = Color.PapayaWhip formtErr = True End If GVMS.GVMS_POSITIONEN.Add(POS) End If Next If formtErr Then Return False Return True End Function Function getArt(art As String) As String Select Case True Case art Like "EIDR" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.EIDR Case art Like "EXPORT*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.EXPORT Case art Like "IMPORT*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.IMPORT Case art Like "*TAD*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TAD Case art Like "*TSAD*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TSAD Case art Like "ATA*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.ATA Case art Like "TIR*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TIR Case art Like "ORAL*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.ORAL Case art Like "INDIRECT*" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.INDIRECT End Select 'Select Case art ' Case "EIDR" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.EIDR ' Case "EXPORT (CDS / CHIEF)" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.EXPORT ' Case "IMPORT (CDS / CHIEF)" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.IMPORT ' Case "TRANSIT (TAD)" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TAD ' Case "TRANSIT (TSAD)" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TSAD ' Case "ATA CARNET" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.ATA ' Case "TIR CARNET" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.TIR ' Case "ORAL Or BY CONDUCT" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.ORAL ' Case "INDIRECT EXPORT DECLARATION" : Return VERAG_PROG_ALLGEMEIN.cGVMS_POS_DecArt.INDIRECT 'End Select Return "" End Function Function setArt(art As String) As String 'For Each i In DirectCast(dgvDeclarations.Columns(""), DataGridViewComboBoxColumn).Items ' 'Dim ii = DirectCast(dgvDeclarations.Columns(""), DataGridViewComboBoxColumn).Items(0) ' Dim item = i ' If art Like "" Then ' Select Case True ' Case art Like "EIDR" : Return item ' Case art Like "EXPORT*" : Return item ' Case art Like "IMPORT*" : Return item ' Case art Like "*TAD*" : Return item ' Case art Like "*TSAD*" : Return item ' Case art Like "ATA*" : Return item ' Case art Like "TIR*" : Return item ' Case art Like "ORAL*" : Return item ' Case art Like "INDIRECT*" : Return item ' End Select 'Next Return "" End Function Function createGMR() As Boolean If cbxUngebleitet.Checked Then If txtTrailor.Text.Trim = "" Then MsgBox("Anhänger angeben!") : Return False End If If RouteId <= 0 Then MsgBox("Route fehlt!") : Return False If txtKennzeichen.Text = "" Then MsgBox("Kennzeichen angeben!") : Return False If Not Regex.IsMatch(txtKennzeichen.Text, "^[A-Z0-9-](?:[A-Z0-9 -]{1,30})?$") Then MsgBox("Formatfehler: Kennzeichen Fahrzeug.") : Return False End If If txtTrailor.Text <> "" AndAlso Not Regex.IsMatch(txtTrailor.Text, "^[A-Z0-9-](?:[A-Z0-9 -]{1,199})?$") Then MsgBox("Formatfehler: Kennzeichen Anhänger.") : Return False End If If txtSS.Text <> "" AndAlso Not Regex.IsMatch(txtSS.Text, "^[A-Z0-9-)(/]{1,200}$") Then MsgBox("Formatfehler: S&S MRN") : Return False End If If datAbfahrt._value = "" Or datAbfahrtTime._value = "" Then MsgBox("Datum/Uhrzeit angeben!") : Return False If Not cbxLeer.Checked Then If dgvDeclarations.Rows.Count <= 1 Then MsgBox("Keine Positionen!") : Return False End If If GVMS Is Nothing Then GVMS = New VERAG_PROG_ALLGEMEIN.cGVMS If Not loadDGVPOS(GVMS) Then Return False GVMS.gvms_firma = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA ' GVMS.gvms_notification_id As Object = Nothing ' GVMS.gvms_notification_boxid As Object = Nothing ' GVMS.gvms_status As Object = Nothing ' GVMS.gvms_GMR As Object = Nothing ' GVMS.gvms_gmr_creationDate As Object = Nothing ' GVMS.gvms_gmr_statusVersion As Object = Nothing GVMS.gvms_routeId = RouteId GVMS.gvms_direction = cboDirection._value GVMS.gvms_vehicleRegNum = txtKennzeichen.Text If txtTrailor.Text <> "" Then GVMS.gvms_trailorRegNum = txtTrailor.Text GVMS.gvms_isUnaccompanied = cbxUngebleitet.Checked GVMS.gvms_empty = cbxLeer.Checked If GVMS.gvms_empty Then GVMS.gvms_emptyisOwn = Not cboLeerVertrag.Checked GVMS.gvms_locateDateTimeOfDeparture = CDate(datAbfahrt._value).ToShortDateString & " " & datAbfahrtTime.Text If txtSS.Text <> "" Then GVMS.gvms_SS = txtSS.Text If GVMS.SAVE() Then If If(GVMS.gvms_GMR, "") <> "" Then VERAG_PROG_ALLGEMEIN.cHMRC.SEND_GVMS(GVMS, GVMS.gvms_GMR) 'UPDATE Else VERAG_PROG_ALLGEMEIN.cHMRC.SEND_GVMS(GVMS) End If Return True End If Return False End Function Sub setGVMS() If GVMS Is Nothing OrElse Not GVMS.hasEntry Then Exit Sub cboDirection.changeItem(GVMS.gvms_direction) txtKennzeichen.Text = If(GVMS.gvms_vehicleRegNum, "") txtTrailor.Text = If(GVMS.gvms_trailorRegNum, "") cbxUngebleitet.Checked = If(GVMS.gvms_isUnaccompanied, False) cbxLeer.Checked = If(GVMS.gvms_empty, False) If GVMS.gvms_empty Then cboLeerVertrag.Checked = If(GVMS.gvms_emptyisOwn, False) End If If IsDate(If(GVMS.gvms_locateDateTimeOfDeparture, "")) Then datAbfahrt._value = CDate(GVMS.gvms_locateDateTimeOfDeparture).ToShortDateString datAbfahrtTime._value = CDate(GVMS.gvms_locateDateTimeOfDeparture).ToString("HH:mm") End If For Each POS In GVMS.GVMS_POSITIONEN dgvDeclarations.Rows.Add({POS.gvms_art, POS.gvms_RefNum, POS.gvms_SS}) Next txtSS.Text = If(GVMS.gvms_SS, "") End Sub Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles cbxLeer.CheckedChanged 'dgvSfd.Visible = Not cbxLeer.Checked 'dgvTAD.Visible = Not cbxLeer.Checked 'dgvEIDR.Visible = Not cbxLeer.Checked 'dgvATA.Visible = Not cbxLeer.Checked dgvDeclarations.Visible = Not cbxLeer.Checked cboLeerVertrag.Visible = cbxLeer.Checked End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click cboPortVon._value = "7054" cboPortNach._value = "1401" cboDirection._value = "UK_OUTBOUND" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click cboPortVon._value = "1401" cboPortNach._value = "7054" cboDirection._value = "UK_INBOUND" End Sub End Class