284 lines
12 KiB
VB.net
284 lines
12 KiB
VB.net
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
|
|
cHMRC.SEND_GVMS(GVMS, GVMS.gvms_GMR) 'UPDATE
|
|
Else
|
|
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
|