Gestellung, etc.
This commit is contained in:
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("4.2.8.5")>
|
<Assembly: AssemblyVersion("4.2.8.6")>
|
||||||
<Assembly: AssemblyFileVersion("4.2.8.5")>
|
<Assembly: AssemblyFileVersion("4.2.8.6")>
|
||||||
|
|||||||
@@ -306,19 +306,46 @@ Public Class frmSendungsdetailsNEU
|
|||||||
End If
|
End If
|
||||||
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
|
Dim missingPosition As Boolean =
|
||||||
(cboVorpapier2.Text.Trim <> String.Empty And txtVorpapier2Pos.Text.Trim = String.Empty) Or
|
(cboVorpapier.Text.Trim <> "" AndAlso txtVorpapierPos.Text.Trim = "" Or cboVorpapier.Text.Trim = "" AndAlso txtVorpapierPos.Text.Trim <> "") OrElse
|
||||||
(cboVorpapier3.Text.Trim <> String.Empty And txtVorpapier3Pos.Text.Trim = String.Empty) Then
|
(cboVorpapier2.Text.Trim <> "" AndAlso txtVorpapier2Pos.Text.Trim = "" Or cboVorpapier2.Text.Trim = "" AndAlso txtVorpapier2Pos.Text.Trim <> "") OrElse
|
||||||
If showErr AndAlso MsgBox("Pre-Paper Position is not filled. Really continue?", vbYesNoCancel) <> vbYes Then
|
(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
|
Return False
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
If cntlAvisierer_Abf.Visible = False And
|
If cntlAvisierer_Abf.Visible = False And
|
||||||
cntlAuftr_Abf.Visible = False And
|
cntlAuftr_Abf.Visible = False And
|
||||||
cntlEmpf_Abf.Visible = False And
|
cntlEmpf_Abf.Visible = False And
|
||||||
@@ -8231,4 +8258,12 @@ Public Class frmSendungsdetailsNEU
|
|||||||
End If
|
End If
|
||||||
End Sub
|
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
|
End Class
|
||||||
|
|||||||
@@ -37,32 +37,38 @@ Public Class usrCntlSND_ATBGestellung
|
|||||||
Dim f As frmSendungsdetailsNEU = Me.FindForm
|
Dim f As frmSendungsdetailsNEU = Me.FindForm
|
||||||
If f.SAVE_ME() Then
|
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)
|
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
|
Else
|
||||||
MsgBox("Umrechnungskurs kann nicht ermittelt werden, bitte EUR-Betrag eingeben!")
|
WarenwertEUR = SND.tblSnd_Warenwert
|
||||||
Exit Sub
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
If If(SND.tblSnd_ATB_T1, "") = "" Then MsgBox("T1/Vorpapier angeben!") : Exit Sub
|
||||||
WarenwertEUR = SND.tblSnd_Warenwert
|
|
||||||
End If
|
|
||||||
|
|
||||||
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 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
|
If CDate(SND.tblSnd_T1_Frist) >= Today() Then
|
||||||
'-> OK
|
'-> OK
|
||||||
Else
|
Else
|
||||||
@@ -81,62 +87,62 @@ Public Class usrCntlSND_ATBGestellung
|
|||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim Standort As String = ""
|
Dim Standort As String = ""
|
||||||
Dim firmaID As Integer = -1
|
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
|
|
||||||
|
|
||||||
Select Case SND.FilialenNr
|
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
|
Standort = Sicherheiten_Standort.VERAG_GMBH : firmaID = 2
|
||||||
|
Case 5501
|
||||||
|
Standort = Sicherheiten_Standort.IMEX : firmaID = 20
|
||||||
End Select
|
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
|
Select Case SND.FilialenNr
|
||||||
Case 4803, 5303, 4809, 5103
|
Case 5501, 4803, 4809, 5103
|
||||||
Standort = Sicherheiten_Standort.VERAG_CS : firmaID = 11
|
Standort = Sicherheiten_Standort.VERAG_GMBH : firmaID = 2
|
||||||
End Select
|
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
|
||||||
|
|
||||||
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)
|
Dim GesSichRef = New VERAG_PROG_ALLGEMEIN.cAufschubKonten(Standort, firmaID)
|
||||||
If GesSichRef Is Nothing Then MsgBox("Verwahrungsreferenz kann nicht ermittelt werden!") : Exit Sub
|
If GesSichRef Is Nothing Then MsgBox("Verwahrungsreferenz kann nicht ermittelt werden!") : Exit Sub
|
||||||
|
|
||||||
Dim saldo = CDbl(GesSichRef.CalcSaldo())
|
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 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
|
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
|
End If
|
||||||
|
|
||||||
Dim frMZA As New SDL.frmZollanmeldung("AA", Nothing, AVISO, SND, Now.ToString("yy"), GesSichRef, Standort, WarenwertEUR, gsnr_proLKW_global)
|
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
|
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
|
End Class
|
||||||
|
|||||||
Reference in New Issue
Block a user