Files
DISPO/UID/frmFrachtkosten.vb
2019-08-07 12:29:10 +02:00

257 lines
13 KiB
VB.net

Imports System.Globalization
Public Class frmFrachtkosten
Dim cFrachtkostenSQL As New cFrachtkostenSQL
Dim culture As New CultureInfo("de-DE")
Public frachtfirma_id As Integer = -1
Private Sub Label10_Click(sender As Object, e As EventArgs) Handles Label10.Click, Label11.Click, Label16.Click, Label17.Click, Label21.Click, Label23.Click, Label31.Click
End Sub
Private Sub cbo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirmen.SelectedIndexChanged
If cboFirmen.Items.Count > 0 Then
Dim oItem As MyListItem = CType(cboFirmen.SelectedItem, MyListItem)
Dim frachtosten As cFrachtkosten = cFrachtkostenSQL.getFrachtkosten(oItem.Value)
txtFirmaPreisProM3.Text = frachtosten.frtkst_preisM3.ToString("N", culture)
txtFirmaPreisProLDM.Text = frachtosten.frtkst_preisLDM.ToString("N", culture)
txtFirmaProvision.Text = frachtosten.frtkst_provision.ToString("N", culture)
End If
initRechner()
End Sub
Private Sub frmFrachtkosten_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
' frmMain.BringToFront()
End Sub
Private Sub frmFrachtkosten_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim firmen As List(Of cFrachtkostenFirmen) = cFrachtkostenSQL.getFirmen
If Not firmen Is Nothing AndAlso firmen.Count > 0 Then
For Each f In firmen
cboFirmen.Items.Add(New MyListItem(f.kd_firma, f.kd_id))
Next
cboFirmen.SelectedIndex = 0
End If
If frachtfirma_id >= 0 Then
For Each i In cboFirmen.Items
Dim oItem As MyListItem = CType(i, MyListItem)
If oItem.Value = frachtfirma_id Then
cboFirmen.SelectedItem = i
End If
Next
End If
With dgvFrachtkosten
.Columns(6).ReadOnly = True
.Columns(7).ReadOnly = True
.Columns(9).ReadOnly = True
.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
.Columns(5).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE")
.Columns(5).DefaultCellStyle.Format = "n"
.Columns(6).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE")
.Columns(6).DefaultCellStyle.Format = "n"
.Columns(7).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE")
.Columns(7).DefaultCellStyle.Format = "n"
.Columns(8).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE")
.Columns(8).DefaultCellStyle.Format = "n"
.Columns(9).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE")
.Columns(9).DefaultCellStyle.Format = "n"
.Columns(5).DefaultCellStyle.Font = New Font("Arial", 8.25, FontStyle.Bold)
.Columns(6).DefaultCellStyle.Font = New Font("Arial", 8.25, FontStyle.Bold)
.Columns(7).DefaultCellStyle.Font = New Font("Arial", 8.25, FontStyle.Bold)
.Columns(0).DefaultCellStyle.BackColor = Color.White
.Columns(1).DefaultCellStyle.BackColor = Color.White
.Columns(2).DefaultCellStyle.BackColor = Color.White
.Columns(3).DefaultCellStyle.BackColor = Color.White
.Columns(4).DefaultCellStyle.BackColor = Color.White
.Columns(5).DefaultCellStyle.BackColor = Color.White
.Columns(8).DefaultCellStyle.BackColor = Color.White
.Columns(6).DefaultCellStyle.BackColor = Color.LightGray
.Columns(7).DefaultCellStyle.BackColor = Color.LightGray
.Columns(9).DefaultCellStyle.BackColor = Color.LightGray
End With
End Sub
Sub initRechner()
Dim sumStk As Integer = 0
Dim sumTatGew As Double = 0
Dim sumLdm As Double = 0
Dim sumGewLDM As Double = 0
Dim sumGewM3 As Double = 0
Dim sumBetrag As Double = 0
With dgvFrachtkosten
For i As Integer = 0 To .RowCount - 2
Dim r As DataGridViewRow = .Rows(i)
Try
Dim stueck As Integer = CInt(r.Cells(0).Value)
Dim laenge As Double = CDbl(r.Cells(1).Value)
Dim breite As Double = CDbl(r.Cells(2).Value)
Dim hoehe As Double = CDbl(r.Cells(3).Value)
If IsNumeric(stueck) AndAlso IsNumeric(laenge) AndAlso IsNumeric(breite) AndAlso IsNumeric(hoehe) AndAlso IsNumeric(txtFirmaPreisProM3.Text) Then
r.Cells(6).Value = CDbl((stueck * laenge * breite * hoehe) / 1000000 * txtFirmaPreisProM3.Text).ToString("N", culture)
Else
r.Cells(6).Value = "0.00"
End If
If IsNumeric(r.Cells(4).Value) AndAlso IsNumeric(txtFirmaPreisProLDM.Text) Then
r.Cells(7).Value = CDbl(r.Cells(4).Value * txtFirmaPreisProLDM.Text).ToString("N", culture)
Else
r.Cells(7).Value = "0.00"
End If
If IsNumeric(r.Cells(8).Value) AndAlso IsNumeric(txtFirmaProvision.Text) Then
r.Cells(9).Value = CDbl(r.Cells(8).Value * txtFirmaProvision.Text).ToString("N", culture)
Else
r.Cells(9).Value = "0.00"
End If
If IsNumeric(stueck) Then sumStk += stueck
If IsNumeric(r.Cells(5).Value) Then sumTatGew += r.Cells(5).Value ' : r.Cells(5).Value = String.Format(CDbl(r.Cells(5).Value), "N", culture)
If IsNumeric(r.Cells(4).Value) Then sumLdm += r.Cells(4).Value
If IsNumeric(r.Cells(7).Value) Then sumGewLDM += r.Cells(7).Value ': r.Cells(7).Value = String.Format(CDbl(r.Cells(7).Value), "N", culture)
If IsNumeric(r.Cells(6).Value) Then sumGewM3 += r.Cells(6).Value ': r.Cells(6).Value = String.Format(CDbl(r.Cells(6).Value), "N", culture)
If IsNumeric(r.Cells(9).Value) Then sumBetrag += r.Cells(9).Value
r.Cells(5).Style.BackColor = Color.White
r.Cells(6).Style.BackColor = Color.LightGray
r.Cells(7).Style.BackColor = Color.LightGray
If IsNumeric(r.Cells(5).Value) And IsNumeric(r.Cells(6).Value) And IsNumeric(r.Cells(7).Value) Then
Dim TatGew As Double = CDbl(r.Cells(5).Value)
Dim GewLDM As Double = CDbl(r.Cells(7).Value)
Dim GewM3 As Double = CDbl(r.Cells(6).Value)
r.Cells(5).Style.BackColor = Color.Pink 'LightYellow
r.Cells(6).Style.BackColor = Color.Pink 'LightYellow
r.Cells(7).Style.BackColor = Color.Pink 'LightYellow
If TatGew >= GewM3 And TatGew >= GewLDM Then r.Cells(5).Style.BackColor = System.Drawing.Color.FromArgb(192, 255, 192)
If GewM3 >= TatGew And GewM3 >= GewLDM Then r.Cells(6).Style.BackColor = System.Drawing.Color.FromArgb(192, 255, 192)
If GewLDM >= TatGew And GewLDM >= GewM3 Then r.Cells(7).Style.BackColor = System.Drawing.Color.FromArgb(192, 255, 192)
' If TatGew <= GewM3 And TatGew <= GewLDM Then r.Cells(5).Style.BackColor = Color.Pink
' If GewM3 <= TatGew And GewM3 <= GewLDM Then r.Cells(6).Style.BackColor = Color.Pink
' If GewLDM <= TatGew And GewLDM <= GewM3 Then r.Cells(7).Style.BackColor = Color.Pink
End If
Catch
End Try
Next
End With
txtSumStk.Text = sumStk
txtSumTatGew.Text = sumTatGew
txtSumLdm.Text = sumLdm
txtSumGewLDM.Text = sumGewLDM
txtSumGewM3.Text = sumGewM3
txtSumBetrag.Text = sumBetrag
End Sub
Sub initRechnerold()
If IsNumeric(txtCalcStueck.Text) AndAlso IsNumeric(txtCalcHoehe.Text) AndAlso IsNumeric(txtCalcBreite.Text) AndAlso IsNumeric(txtCalcLaenge.Text) Then
lblCalcM3.Text = CDbl(txtCalcStueck.Text * txtCalcHoehe.Text * txtCalcBreite.Text * txtCalcLaenge.Text / 1000000).ToString("N", culture) & ""
Else
lblCalcM3.Text = "0.00 m³"
End If
If IsNumeric(txtCalcStueck.Text) AndAlso IsNumeric(txtCalcHoehe.Text) AndAlso IsNumeric(txtCalcBreite.Text) AndAlso IsNumeric(txtCalcLaenge.Text) AndAlso IsNumeric(txtFirmaPreisProM3.Text) Then
txtCalcGewichtM3.Text = CDbl(txtCalcStueck.Text * txtCalcHoehe.Text * txtCalcBreite.Text * txtCalcLaenge.Text / 1000000 * txtFirmaPreisProM3.Text).ToString("N", culture)
Else
txtCalcGewichtM3.Text = "0.00"
End If
If IsNumeric(txtCalcLademeter.Text) AndAlso IsNumeric(txtFirmaPreisProLDM.Text) Then
txtCalcGewichtLDM.Text = CDbl(txtCalcLademeter.Text * txtFirmaPreisProLDM.Text).ToString("N", culture)
Else
txtCalcGewichtLDM.Text = "0.00"
End If
If IsNumeric(txtCalcKurs.Text) AndAlso IsNumeric(txtFirmaProvision.Text) Then
txtCalcBetrag.Text = CDbl(txtCalcKurs.Text * txtFirmaProvision.Text).ToString("N", culture)
Else
txtCalcBetrag.Text = "0.00"
End If
End Sub
Private Sub txtCalcTatGewicht_LostFocus(sender As Object, e As EventArgs) Handles txtCalcTatGewicht.LostFocus
Try : txtCalcTatGewicht.Text = CDbl(txtCalcTatGewicht.Text).ToString("N", culture) : Catch : End Try
End Sub
Private Sub txtCalcStueck_TextChanged(sender As Object, e As EventArgs) Handles txtCalcStueck.TextChanged, txtCalcLaenge.TextChanged, txtCalcBreite.TextChanged, txtCalcHoehe.TextChanged, txtCalcLademeter.TextChanged, txtCalcKurs.TextChanged, txtCalcTatGewicht.TextChanged, txtFirmaProvision.TextChanged, txtFirmaPreisProLDM.TextChanged, txtFirmaPreisProM3.TextChanged
initRechner()
End Sub
Private Sub sum_textchanged(sender As Object, e As EventArgs) Handles txtSumLdm.TextChanged, txtSumStk.TextChanged, txtSumBetrag.TextChanged, txtSumGewLDM.TextChanged, txtSumGewM3.TextChanged, txtSumTatGew.TextChanged
Try : sender.text = CDbl(sender.text).ToString("N", culture) : Catch : End Try
End Sub
Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
If cboFirmen.Items.Count > cboFirmen.SelectedIndex + 1 Then
cboFirmen.SelectedIndex += 1
Else
cboFirmen.SelectedIndex = 0
End If
End Sub
Private Sub btnPrev_Click(sender As Object, e As EventArgs) Handles btnPrev.Click
If cboFirmen.SelectedIndex > 0 Then
cboFirmen.SelectedIndex -= 1
Else
cboFirmen.SelectedIndex = cboFirmen.Items.Count - 1
End If
End Sub
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
Me.Close()
End Sub
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Dim cFrachtkosten As New cFrachtkosten
Dim oItem As MyListItem = CType(cboFirmen.SelectedItem, MyListItem)
If cboFirmen.Items.Count > 0 AndAlso cboFirmen.SelectedIndex >= 0 AndAlso IsNumeric(oItem.Value) Then
cFrachtkosten.frtkst_firmaId = oItem.Value
cFrachtkosten.frtkst_preisLDM = txtFirmaPreisProLDM.Text
cFrachtkosten.frtkst_preisM3 = txtFirmaPreisProM3.Text
cFrachtkosten.frtkst_provision = txtFirmaProvision.Text
cFrachtkostenSQL.setFrachtkosten(cFrachtkosten)
End If
frmMain.Tabelle_anzeigen()
End Sub
Private Sub dgvFrachtkosten_CellLeave(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFrachtkosten.CellValidated
Try
Dim c As DataGridViewCell = dgvFrachtkosten.Rows(e.RowIndex).Cells(e.ColumnIndex)
If IsNumeric(c.Value) Then
If e.ColumnIndex >= 4 Then c.Value = CDbl(c.Value).ToString("N", culture)
c.Style.ForeColor = Color.Black
Else
c.Style.ForeColor = Color.DarkRed
End If
Catch ex As Exception : MsgBox(ex.Message) : End Try
End Sub
Private Sub dgvFrachtkosten_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFrachtkosten.CellValueChanged
initRechner()
End Sub
End Class