Gestellung, etc.
This commit is contained in:
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("4.2.8.5")>
|
||||
<Assembly: AssemblyFileVersion("4.2.8.5")>
|
||||
<Assembly: AssemblyVersion("4.2.8.6")>
|
||||
<Assembly: AssemblyFileVersion("4.2.8.6")>
|
||||
|
||||
@@ -306,19 +306,46 @@ Public Class frmSendungsdetailsNEU
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim isVerimex As Boolean = (VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERIMEX")
|
||||
|
||||
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERIMEX" Then
|
||||
Dim invalidPrepaper As Boolean =
|
||||
(cboVorpapier.Text.Trim <> "" AndAlso Not IsValid18AlphaNumericCode(cboVorpapier.Text) AndAlso txtVorpapierPos.Text.Trim = "") OrElse
|
||||
(cboVorpapier2.Text.Trim <> "" AndAlso Not IsValid18AlphaNumericCode(cboVorpapier2.Text) AndAlso txtVorpapier2Pos.Text.Trim = "") OrElse
|
||||
(cboVorpapier3.Text.Trim <> "" AndAlso Not IsValid18AlphaNumericCode(cboVorpapier3.Text) AndAlso txtVorpapier3Pos.Text.Trim = "")
|
||||
|
||||
If (cboVorpapier.Text.Trim <> String.Empty And txtVorpapierPos.Text.Trim = String.Empty) Or
|
||||
(cboVorpapier2.Text.Trim <> String.Empty And txtVorpapier2Pos.Text.Trim = String.Empty) Or
|
||||
(cboVorpapier3.Text.Trim <> String.Empty And txtVorpapier3Pos.Text.Trim = String.Empty) Then
|
||||
If showErr AndAlso MsgBox("Pre-Paper Position is not filled. Really continue?", vbYesNoCancel) <> vbYes Then
|
||||
Dim missingPosition As Boolean =
|
||||
(cboVorpapier.Text.Trim <> "" AndAlso txtVorpapierPos.Text.Trim = "" Or cboVorpapier.Text.Trim = "" AndAlso txtVorpapierPos.Text.Trim <> "") OrElse
|
||||
(cboVorpapier2.Text.Trim <> "" AndAlso txtVorpapier2Pos.Text.Trim = "" Or cboVorpapier2.Text.Trim = "" AndAlso txtVorpapier2Pos.Text.Trim <> "") OrElse
|
||||
(cboVorpapier3.Text.Trim <> "" AndAlso txtVorpapier3Pos.Text.Trim = "" Or cboVorpapier3.Text.Trim = "" AndAlso txtVorpapier3Pos.Text.Trim <> "")
|
||||
|
||||
Dim hasIssue As Boolean
|
||||
|
||||
If isVerimex Then
|
||||
hasIssue = (invalidPrepaper OrElse missingPosition)
|
||||
Else
|
||||
hasIssue = (invalidPrepaper OrElse missingPosition)
|
||||
End If
|
||||
|
||||
Dim InfoMsg As String
|
||||
|
||||
If isVerimex Then
|
||||
InfoMsg = "Pre-Paper/PosNr data is invalid or incomplete. Continue?"
|
||||
Else
|
||||
InfoMsg = "Vorpapier-Nr/PosNr ist ungültig oder nicht vollständig, fortfahren?"
|
||||
End If
|
||||
|
||||
If hasIssue Then
|
||||
|
||||
If showErr Then
|
||||
If MsgBox(InfoMsg, vbYesNoCancel) <> vbYes Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If cntlAvisierer_Abf.Visible = False And
|
||||
cntlAuftr_Abf.Visible = False And
|
||||
cntlEmpf_Abf.Visible = False And
|
||||
@@ -8231,4 +8258,12 @@ Public Class frmSendungsdetailsNEU
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function IsValid18AlphaNumericCode(value As String) As Boolean
|
||||
value = value.Trim()
|
||||
|
||||
If value.Length <> 18 Then Return False
|
||||
|
||||
Return value.All(Function(c) Char.IsLetterOrDigit(c))
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -37,32 +37,38 @@ Public Class usrCntlSND_ATBGestellung
|
||||
Dim f As frmSendungsdetailsNEU = Me.FindForm
|
||||
If f.SAVE_ME() Then
|
||||
|
||||
Dim INfoVorpapier As String = ""
|
||||
|
||||
If Not checkSendungenVorpapierte(f.SENDUNG_LIST, INfoVorpapier) Then MsgBox(INfoVorpapier) : Exit Sub
|
||||
|
||||
SND = f.SENDUNG_LIST(f.CURRENT_INDEX)
|
||||
|
||||
If Not IsNumeric(SND.AbfertigungsNr) OrElse CInt(SND.AbfertigungsNr) < 100000 Then MsgBox("Abfertigungsnummer angeben!") : Exit Sub
|
||||
If Not IsNumeric(SND.AbfertigungsNr) OrElse CInt(SND.AbfertigungsNr) < 100000 Then MsgBox("Abfertigungsnummer angeben!") : Exit Sub
|
||||
|
||||
If Not IsNumeric(SND.tblSnd_Warenwert) OrElse CInt(SND.tblSnd_Warenwert) < 0 Then MsgBox("Warenwert angeben!") : Exit Sub
|
||||
If Not IsNumeric(SND.tblSnd_Warenwert) OrElse CInt(SND.tblSnd_Warenwert) < 0 Then MsgBox("Warenwert angeben!") : Exit Sub
|
||||
|
||||
If (SND.tblSnd_WarenwertWaehrung) Is Nothing Then MsgBox("Währungseinheit angeben!") : Exit Sub
|
||||
If (SND.tblSnd_WarenwertWaehrung) Is Nothing Then MsgBox("Währungseinheit angeben!") : Exit Sub
|
||||
|
||||
If SND.tblSnd_WarenwertWaehrung <> "EUR" Then
|
||||
Dim kurs As New cFremdwaehrungskurse(SND.tblSnd_WarenwertWaehrung)
|
||||
If kurs.hasEntry Then
|
||||
WarenwertEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(SND.tblSnd_Warenwert, SND.tblSnd_WarenwertWaehrung, CDate(Today)), 2)
|
||||
Else
|
||||
MsgBox("Umrechnungskurs kann nicht ermittelt werden, bitte EUR-Betrag eingeben!")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If SND.tblSnd_WarenwertWaehrung <> "EUR" Then
|
||||
Dim kurs As New cFremdwaehrungskurse(SND.tblSnd_WarenwertWaehrung)
|
||||
If kurs.hasEntry Then
|
||||
WarenwertEUR = Math.Round(kurs.EXCHANGE_CURTOEUR(SND.tblSnd_Warenwert, SND.tblSnd_WarenwertWaehrung, CDate(Today)), 2)
|
||||
Else
|
||||
MsgBox("Umrechnungskurs kann nicht ermittelt werden, bitte EUR-Betrag eingeben!")
|
||||
Exit Sub
|
||||
WarenwertEUR = SND.tblSnd_Warenwert
|
||||
End If
|
||||
|
||||
Else
|
||||
WarenwertEUR = SND.tblSnd_Warenwert
|
||||
End If
|
||||
If If(SND.tblSnd_ATB_T1, "") = "" Then MsgBox("T1/Vorpapier angeben!") : Exit Sub
|
||||
|
||||
If If(SND.tblSnd_ATB_T1, "") = "" Then MsgBox("MRN (Gestellung) angeben!") : Exit Sub
|
||||
If Not IsValid18AlphaNumericCode(If(SND.tblSnd_ATB_T1, "")) Then MsgBox("T1/Vorpapier nicht korrekt (18-stellig)!") : Exit Sub
|
||||
|
||||
If If(SND.tblSnd_Zollsystem_Land, "") = "" Then MsgBox("Abf-Land muss angegeben werden!") : Exit Sub
|
||||
|
||||
If SND.tblSnd_T1_Frist IsNot Nothing AndAlso IsDate(SND.tblSnd_T1_Frist) Then
|
||||
If SND.tblSnd_T1_Frist IsNot Nothing AndAlso IsDate(SND.tblSnd_T1_Frist) Then
|
||||
If CDate(SND.tblSnd_T1_Frist) >= Today() Then
|
||||
'-> OK
|
||||
Else
|
||||
@@ -81,62 +87,62 @@ Public Class usrCntlSND_ATBGestellung
|
||||
|
||||
End If
|
||||
|
||||
Dim Standort As String = ""
|
||||
Dim firmaID As Integer = -1
|
||||
|
||||
Select Case SND.FilialenNr
|
||||
Case 4803, 4809
|
||||
Standort = Sicherheiten_Standort.VERAG_AG : firmaID = 1
|
||||
Case 5601
|
||||
Standort = Sicherheiten_Standort.UNISPED : firmaID = 21
|
||||
Case 5701
|
||||
Standort = Sicherheiten_Standort.AMBAR : firmaID = 24
|
||||
Case 4810, 5103, 5901
|
||||
Standort = Sicherheiten_Standort.VERAG_GMBH : firmaID = 2
|
||||
Case 5501
|
||||
Standort = Sicherheiten_Standort.IMEX : firmaID = 20
|
||||
End Select
|
||||
|
||||
'sonderfälle lt. Mestan
|
||||
If SND.tblSnd_Zollsystem_Land = "DE" Then
|
||||
Dim Standort As String = ""
|
||||
Dim firmaID As Integer = -1
|
||||
|
||||
Select Case SND.FilialenNr
|
||||
Case 5501, 4803, 4809, 5103
|
||||
Case 4803, 4809
|
||||
Standort = Sicherheiten_Standort.VERAG_AG : firmaID = 1
|
||||
Case 5601
|
||||
Standort = Sicherheiten_Standort.UNISPED : firmaID = 21
|
||||
Case 5701
|
||||
Standort = Sicherheiten_Standort.AMBAR : firmaID = 24
|
||||
Case 4810, 5103, 5901
|
||||
Standort = Sicherheiten_Standort.VERAG_GMBH : firmaID = 2
|
||||
Case 5501
|
||||
Standort = Sicherheiten_Standort.IMEX : firmaID = 20
|
||||
End Select
|
||||
|
||||
ElseIf SND.tblSnd_Zollsystem_Land = "AT" Then
|
||||
'sonderfälle lt. Mestan
|
||||
If SND.tblSnd_Zollsystem_Land = "DE" Then
|
||||
|
||||
If SND.tblSnd_Abfertigungsart_ID = 1 Then 'ZA
|
||||
Standort = Sicherheiten_Standort.VERAG_CS : firmaID = 11
|
||||
ElseIf SND.tblSnd_Abfertigungsart_ID = 38 Then 'EV-Verz
|
||||
Select Case SND.FilialenNr
|
||||
Case 4803, 5303, 4809, 5103
|
||||
Standort = Sicherheiten_Standort.VERAG_CS : firmaID = 11
|
||||
Case 5501, 4803, 4809, 5103
|
||||
Standort = Sicherheiten_Standort.VERAG_GMBH : firmaID = 2
|
||||
End Select
|
||||
|
||||
ElseIf SND.tblSnd_Zollsystem_Land = "AT" Then
|
||||
|
||||
If SND.tblSnd_Abfertigungsart_ID = 1 Then 'ZA
|
||||
Standort = Sicherheiten_Standort.VERAG_CS : firmaID = 11
|
||||
ElseIf SND.tblSnd_Abfertigungsart_ID = 38 Then 'EV-Verz
|
||||
Select Case SND.FilialenNr
|
||||
Case 4803, 5303, 4809, 5103
|
||||
Standort = Sicherheiten_Standort.VERAG_CS : firmaID = 11
|
||||
End Select
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
If isZollern(SND) Then
|
||||
|
||||
If isZollern(SND) Then
|
||||
Standort = Sicherheiten_Standort.ZOLLERN : firmaID = 99
|
||||
|
||||
Standort = Sicherheiten_Standort.ZOLLERN : firmaID = 99
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(Standort, firmaID)
|
||||
If GesSichRef Is Nothing Then MsgBox("Verwahrungsreferenz kann nicht ermittelt werden!") : Exit Sub
|
||||
Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(Standort, firmaID)
|
||||
If GesSichRef Is Nothing Then MsgBox("Verwahrungsreferenz kann nicht ermittelt werden!") : Exit Sub
|
||||
|
||||
Dim saldo = CDbl(GesSichRef.CalcSaldo())
|
||||
|
||||
Dim sicherheitsbertrag As Double = WarenwertEUR * (GesSichRef.brgakto_gs_zollsatz / 100)
|
||||
Dim sicherheitsbertrag As Double = WarenwertEUR * (GesSichRef.brgakto_gs_zollsatz / 100)
|
||||
|
||||
If sicherheitsbertrag > saldo Then
|
||||
If MsgBox(Standort & vbNewLine & "Gestellung kann NICHT durchgeführt werden!" & vbNewLine & "Eingetragener Warenwert in EUR: " & WarenwertEUR & " (Sicherheitsbetrag: " & sicherheitsbertrag & ") übersteigt den vorhandenen Sicherheitssaldo von: " & saldo & vbNewLine & "Trotzdem fortfahren", vbYesNoCancel) <> vbYes Then Exit Sub
|
||||
End If
|
||||
If sicherheitsbertrag > saldo Then
|
||||
If MsgBox(Standort & vbNewLine & "Gestellung kann NICHT durchgeführt werden!" & vbNewLine & "Eingetragener Warenwert in EUR: " & WarenwertEUR & " (Sicherheitsbetrag: " & sicherheitsbertrag & ") übersteigt den vorhandenen Sicherheitssaldo von: " & saldo & vbNewLine & "Trotzdem fortfahren", vbYesNoCancel) <> vbYes Then Exit Sub
|
||||
End If
|
||||
|
||||
Dim frMZA As New SDL.frmZollanmeldung("AA", Nothing, AVISO, SND, Now.ToString("yy"), GesSichRef, Standort, WarenwertEUR, gsnr_proLKW_global)
|
||||
|
||||
@@ -395,4 +401,50 @@ Public Class usrCntlSND_ATBGestellung
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Private Function IsValid18AlphaNumericCode(value As String) As Boolean
|
||||
value = value.Trim()
|
||||
|
||||
If value.Length <> 18 Then Return False
|
||||
|
||||
Return value.All(Function(c) Char.IsLetterOrDigit(c))
|
||||
End Function
|
||||
|
||||
|
||||
Private Function checkSendungenVorpapierte(list As List(Of cSendungen), ByRef MsgInfo As String) As Boolean
|
||||
|
||||
Dim index As Integer = 1
|
||||
Dim existingVorpapier As Boolean = False
|
||||
|
||||
For Each SND As cSendungen In list
|
||||
|
||||
Dim existing As Boolean =
|
||||
(SND.tblSnd_Vorpapier.ToString.Trim <> "") OrElse
|
||||
(SND.tblSnd_Vorpapier2.ToString.Trim <> "") OrElse
|
||||
(SND.tblSnd_Vorpapier3.ToString.Trim <> "")
|
||||
|
||||
If existing Then existingVorpapier = existing
|
||||
|
||||
|
||||
Dim invalidPrepaper As Boolean =
|
||||
(SND.tblSnd_Vorpapier.ToString.Trim <> "" AndAlso Not IsValid18AlphaNumericCode(SND.tblSnd_Vorpapier.ToString.Trim)) OrElse
|
||||
(SND.tblSnd_Vorpapier2.ToString.Trim <> "" AndAlso Not IsValid18AlphaNumericCode(SND.tblSnd_Vorpapier2.ToString.Trim)) OrElse
|
||||
(SND.tblSnd_Vorpapier3.ToString.Trim <> "" AndAlso Not IsValid18AlphaNumericCode(SND.tblSnd_Vorpapier3.ToString.Trim))
|
||||
|
||||
If invalidPrepaper Then
|
||||
MsgInfo = "Vorpapier-Nr bei Sendung " & index & " ist ungültig!"
|
||||
Return False
|
||||
End If
|
||||
|
||||
index += 1
|
||||
|
||||
Next
|
||||
|
||||
If Not existingVorpapier Then
|
||||
MsgInfo = "keine Vorpapier-Nr bei den Sendung(en) hinterlegt!"
|
||||
End If
|
||||
|
||||
Return existingVorpapier
|
||||
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user