Files
AVISO/Aviso/GVMS/frmGVMSNew.vb

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
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