283 lines
11 KiB
VB.net
283 lines
11 KiB
VB.net
Imports System.Linq.Expressions
|
|
Imports System.Security.Cryptography
|
|
Imports DocumentFormat.OpenXml.Drawing
|
|
Imports DocumentFormat.OpenXml.Office.MetaAttributes
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmFrachtkostenBerechnen
|
|
|
|
Sub New()
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
Dim ustcntl As New usrcntlFrachtkostenberechnung()
|
|
End Sub
|
|
|
|
'Dim absenderID As Integer = -1
|
|
'Dim empfaengerID As Integer = -1
|
|
'Dim origin As String
|
|
'Dim destination As String
|
|
'Public EUAnteil As Double
|
|
'Public nichtEUAnteil As Double
|
|
'Dim gewicht As Double
|
|
'Dim gesamtFrachtkosten As Double
|
|
'Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
|
|
'Sub New(absID As String, empfID As String, gewichtInput As String, gesamtfrachtkostenInput As String, ware As String)
|
|
|
|
' InitializeComponent()
|
|
' Try
|
|
' Dim ustcntl As New usrcntlFrachtkostenberechnung()
|
|
|
|
' Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
' End Try
|
|
|
|
'End Sub
|
|
|
|
|
|
'Private Sub frmFrachtkotenBerechnen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
|
|
|
|
|
|
' 'cbxLandVon.fillWithSQL("SELECT Distinct(ISNULL([LandKz],'')) as LandKZ FROM [Adressen] order by LandKz asc", False, "FMZOLL", True, True)
|
|
' cbxLandVon.fillWithSQL(" select distinct landkz, Währungstabelle.Land from Währungstabelle where landkz is not null order by LandKz", True, "FMZOLL", True)
|
|
|
|
' cbxLandVon.changeItem(sql.DLookup("[LandKz]", "[Adressen]", "[AdressenNr]='" & absenderID & "'", "FMZOLL", ""))
|
|
' txbVonPLZ.fillWithSQL("SELECT ISNULL([PLZ],'') FROM [Adressen] where AdressenNr = '" & absenderID & "'", "FMZOLL")
|
|
' txbVonOrt.fillWithSQL("SELECT ISNULL([Ort],'') FROM [Adressen] where AdressenNr = '" & absenderID & "'", "FMZOLL")
|
|
|
|
' cbxLandNach.Items.AddRange(cbxLandVon.Items.Cast(Of VERAG_PROG_ALLGEMEIN.MyListItem).ToArray())
|
|
' cbxLandNach.changeItem(sql.DLookup("[LandKz]", "[Adressen]", "[AdressenNr]='" & empfaengerID & "'", "FMZOLL", ""))
|
|
' txbNachPLZ.fillWithSQL("SELECT ISNULL([PLZ],'-') FROM [Adressen] where AdressenNr = '" & empfaengerID & "'", "FMZOLL")
|
|
' txbNachOrt.fillWithSQL("SELECT ISNULL([Ort],'') FROM [Adressen] where AdressenNr = '" & empfaengerID & "'", "FMZOLL")
|
|
|
|
' ckbManAnteilsermittlung.Checked = True
|
|
|
|
' tbEUAnteil._value = 0
|
|
' tbNichtEUAnteil._value = 0
|
|
' txbGewicht._value = gewicht.ToString
|
|
' txbFactor._value = 0.15
|
|
' checkInputFields()
|
|
|
|
|
|
'End Sub
|
|
|
|
'Sub calculateFreight()
|
|
|
|
' 'resetInputFields()
|
|
' setControlEUAnteile()
|
|
|
|
' origin = IIf(cbxLandVon._value <> "", cbxLandVon.Text.Replace(cbxLandVon._value & " -", "").Trim(), "") & " " & IIf(txbVonPLZ._value <> "", txbVonPLZ._value, "") & " " & IIf(txbVonOrt._value <> "", txbVonOrt._value, "")
|
|
' destination = IIf(cbxLandNach._value <> "", cbxLandNach.Text.Replace(cbxLandNach._value & " -", "").Trim(), "") & " " & IIf(txbNachPLZ._value <> "", txbNachPLZ._value, "") & " " & IIf(txbNachOrt._value <> "", txbNachOrt._value, "")
|
|
|
|
' Dim getValues = True
|
|
' Dim twoRouteRequest As Boolean = False
|
|
' Dim duration = ""
|
|
' Dim distance = ""
|
|
' Dim durationEU = ""
|
|
' Dim distanceEU = ""
|
|
|
|
|
|
' If cbxLandVon._value = "TR" AndAlso ckbManAnteilsermittlung.Checked Then
|
|
|
|
' twoRouteRequest = True
|
|
' 'Kapitan Andreevo ist EU Grenze für Lieferungen aus der Türkei
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance(origin, "Kapitan Andreevo", duration, distance,, getValues)
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance("Kapitan Andreevo", destination, durationEU, distanceEU,, getValues)
|
|
|
|
' ElseIf cbxLandVon._value = "SRB" AndAlso ckbManAnteilsermittlung.Checked Then
|
|
' twoRouteRequest = True
|
|
' 'Horgoš ist EU Grenze für Lieferungen aus Serbien
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance(origin, "Horgoš", duration, distance,, getValues)
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance("Horgoš", destination, durationEU, distanceEU,, getValues)
|
|
|
|
' ElseIf cbxLandNach._value = "GB" AndAlso ckbManAnteilsermittlung.Checked Then
|
|
' twoRouteRequest = True
|
|
' 'Dover ist EU Grenze für Lieferungen nach England
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance(origin, "Dover", durationEU, distanceEU,, getValues)
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance("Dover", destination, duration, distance,, getValues)
|
|
|
|
' ElseIf cbxLandVon._value = "GB" AndAlso ckbManAnteilsermittlung.Checked Then
|
|
' twoRouteRequest = True
|
|
' 'Dover ist EU Grenze für Lieferungen aus England
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance(origin, "Dover", duration, distance,, getValues)
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance("Dover", destination, durationEU, distanceEU,, getValues)
|
|
|
|
' End If
|
|
|
|
' If twoRouteRequest = True AndAlso ckbManAnteilsermittlung.Checked Then
|
|
|
|
' lblDistanzEU.Text = "EU-Distanz"
|
|
' lblDistanzNichtEU.Visible = True
|
|
' txbCalcDistanceNichtEU.Visible = True
|
|
|
|
' Try
|
|
|
|
' If (IsNumeric(distanceEU)) Then
|
|
' IIf(distanceEU > 1000, Math.Round(distanceEU / 1000, 0), distanceEU)
|
|
' txbCalcDistanceEU._value = IIf(distanceEU > 1000, Math.Round(distanceEU / 1000, 0), distanceEU)
|
|
' Else
|
|
' distanceEU = "0"
|
|
|
|
' MsgBox("Standort vom Bestimmungsort kann nicht ermittelt werden!" & vbCr & "Bitte Eingabe " & txbNachPLZ._value & " " & txbNachOrt._value & " prüfen")
|
|
' Exit Sub
|
|
|
|
' End If
|
|
|
|
' If (IsNumeric(distance)) Then
|
|
' txbCalcDistanceNichtEU._value = IIf(CInt(distance) > 1000, Math.Round(CInt(distance) / 1000, 0), CInt(distance))
|
|
' Else
|
|
' distance = "0"
|
|
' MsgBox("Standort vom Abgangsort kann nicht ermittelt werden!" & vbCr & "Bitte Eingabe " & txbVonPLZ._value & " " & txbVonOrt._value & " prüfen")
|
|
' Exit Sub
|
|
' End If
|
|
|
|
' Dim totalDistance = CDbl(distance) + CDbl(distanceEU)
|
|
|
|
' Dim distanceNotEUpercent = CDbl(distance) * 100 / totalDistance
|
|
' Dim distanceEUpercent = CDbl(distanceEU) * 100 / totalDistance
|
|
|
|
' Math.Round(distanceNotEUpercent, 2)
|
|
' Math.Round(distanceEUpercent, 2)
|
|
|
|
' tbEUAnteil._value = CDbl(distanceEUpercent) / 100
|
|
' tbNichtEUAnteil._value = CDbl(distanceNotEUpercent) / 100
|
|
|
|
' Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
' End Try
|
|
|
|
|
|
' ElseIf ckbManAnteilsermittlung.Checked Then
|
|
|
|
' VERAG_PROG_ALLGEMEIN.cGoogleAPI.GoogleDistance(origin, destination, duration, distance)
|
|
|
|
' tbEUAnteil._value = 0.6
|
|
' tbNichtEUAnteil._value = 0.4
|
|
' If distance = "0" Or distance = "" Then
|
|
' MsgBox("Standort vom Abgangsort/Bestimmungsort kann nicht ermittelt werden!" & vbCr & "Bitte Eingabe prüfen")
|
|
' End If
|
|
' lblDistanzEU.Text = "Distanz"
|
|
' txbCalcDistanceEU._value = distance
|
|
' lblDistanzNichtEU.Visible = False
|
|
' txbCalcDistanceNichtEU.Visible = False
|
|
|
|
' Else
|
|
|
|
' lblDistanzEU.Text = "Distanz"
|
|
' txbCalcDistanceEU._value = distance
|
|
' lblDistanzNichtEU.Visible = False
|
|
' txbCalcDistanceNichtEU.Visible = False
|
|
|
|
' End If
|
|
|
|
|
|
'End Sub
|
|
|
|
'Sub calculateFreightCosts()
|
|
|
|
' Try
|
|
|
|
' If gesamtFrachtkosten = 0 Then
|
|
|
|
' gesamtFrachtkosten = gewicht * CDbl(txbFactor._value)
|
|
' tbxGesamtfrachtkosten._value = gesamtFrachtkosten
|
|
|
|
' End If
|
|
|
|
|
|
' tbxGesamtfrachtkosten._value = gesamtFrachtkosten
|
|
' EUAnteil = gesamtFrachtkosten * tbEUAnteil._value
|
|
' nichtEUAnteil = gesamtFrachtkosten * CDbl(tbNichtEUAnteil._value)
|
|
' tbEUAnteilberechnet._value = CStr(EUAnteil)
|
|
' tbNichtEUAnteilberechnet._value = CStr(nichtEUAnteil)
|
|
|
|
' Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
' End Try
|
|
|
|
'End Sub
|
|
|
|
'Function checkInputFields() As Boolean
|
|
|
|
' Dim isFilled As Boolean = True
|
|
|
|
' lblWarningAbgangort.Visible = False
|
|
' lblWarningBestimmungsort.Visible = False
|
|
' lblWarningEUAnteil.Visible = False
|
|
' lblWarningNichtEUAnteil.Visible = False
|
|
' btnOK.DialogResult = DialogResult.OK
|
|
|
|
' If (tbEUAnteil._value = "" Or Not IsNumeric(tbEUAnteil._value)) Then
|
|
' lblWarningEUAnteil.Visible = True
|
|
' btnOK.DialogResult = DialogResult.OK
|
|
' isFilled = False
|
|
' End If
|
|
|
|
' If (tbNichtEUAnteil._value = "" Or Not IsNumeric(tbNichtEUAnteil._value)) Then
|
|
' lblWarningNichtEUAnteil.Visible = True
|
|
' btnOK.DialogResult = DialogResult.OK
|
|
' isFilled = False
|
|
' End If
|
|
|
|
' If (txbFactor._value = "" Or Not IsNumeric(txbFactor._value)) Then
|
|
' 'Hinweis INPUT false
|
|
' End If
|
|
|
|
' If (txbVonOrt._value = "" And txbVonPLZ._value = "") Then
|
|
' lblWarningAbgangort.Visible = True
|
|
' btnOK.DialogResult = DialogResult.OK
|
|
' isFilled = False
|
|
' End If
|
|
|
|
' If (txbNachOrt._value = "" And txbNachPLZ._value = "") Then
|
|
' lblWarningBestimmungsort.Visible = True
|
|
' btnOK.DialogResult = DialogResult.OK
|
|
' isFilled = False
|
|
' End If
|
|
|
|
' Return isFilled
|
|
|
|
'End Function
|
|
|
|
|
|
'Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
|
|
|
|
' If (checkInputFields() = False) Then Exit Sub
|
|
' calculateFreight()
|
|
' If (checkInputFields() = False) Then Exit Sub
|
|
' calculateFreightCosts()
|
|
|
|
'End Sub
|
|
|
|
|
|
|
|
'Private Sub resetInputFields()
|
|
' txbCalcDistanceEU.Clear()
|
|
' txbCalcDistanceNichtEU.Clear()
|
|
' tbEUAnteilberechnet.Clear()
|
|
' tbNichtEUAnteilberechnet.Clear()
|
|
' If tbEUAnteil._value = "" Then tbEUAnteil._value = 0
|
|
' If tbNichtEUAnteil._value = "" Then tbNichtEUAnteil._value = 0
|
|
|
|
'End Sub
|
|
|
|
'Private Sub setControlEUAnteile()
|
|
' If ckbManAnteilsermittlung.Checked Then
|
|
' tbEUAnteil.Enabled = False
|
|
' tbNichtEUAnteil.Enabled = False
|
|
' Else
|
|
' tbEUAnteil.Enabled = True
|
|
' tbNichtEUAnteil.Enabled = True
|
|
' resetInputFields()
|
|
' End If
|
|
'End Sub
|
|
|
|
'Private Sub ckbManAnteilsermittlung_CheckStateChanged(sender As Object, e As EventArgs) Handles ckbManAnteilsermittlung.CheckStateChanged
|
|
' setControlEUAnteile()
|
|
'End Sub
|
|
End Class |