VK Cbam Save, Vollm.ind.

This commit is contained in:
2026-02-24 13:54:29 +01:00
parent c6205619c6
commit 8fdf2b46d1
7 changed files with 212 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
Imports VERAG_PROG_ALLGEMEIN
Imports System.IO
Imports VERAG_PROG_ALLGEMEIN
Public Class frmVorauskasse_CBAM
Public GesamtBetrag As Double = 0
@@ -31,7 +32,7 @@ Public Class frmVorauskasse_CBAM
cATEZ_Greenpulse_CBAM_CostCalculation.calcCBAM_ByCertificatePrice(r.Cells("clmnTarif").Value, r.Cells("clmnWeight").Value, r.Cells("clmnCountry").Value, txtCalc_Defaut_CertPrice._value, r.Cells("clmnYear").Value, cost, emission, benchmark)
If cost > 0 Then
r.Cells("clmnKosten").Value = cost
r.Cells("clmnKosten").Value = CDbl(cost.ToString("N2"))
r.Cells("cmlnEmission").Value = emission
r.Cells("clmnBenchmark").Value = benchmark
GesamtBetrag += cost
@@ -69,4 +70,158 @@ Public Class frmVorauskasse_CBAM
Next
cProgramFunctions.genExcelFromDT_NEW(dt, {"E:E"},, "CBAM Kosten",,,,,,, True)
End Sub
Public Function getValues() As DataTable
Dim dt As New DataTable()
' Spalten anlegen
For Each col As DataGridViewColumn In MyDatagridview1.Columns
dt.Columns.Add(col.Name, GetType(String)) ' oder passenden Typ setzen
Next
' Zeilen kopieren
For Each row As DataGridViewRow In MyDatagridview1.Rows
If Not row.IsNewRow Then
Dim dr As DataRow = dt.NewRow()
For Each col As DataGridViewColumn In MyDatagridview1.Columns
dr(col.Name) = If(row.Cells(col.Name).Value, DBNull.Value)
Next
dt.Rows.Add(dr)
End If
Next
dt.TableName = "cbamdata"
Return dt
End Function
Public Function getValues_DATA() As String
Try
Dim sw As New StringWriter()
Dim dt = getValues()
dt.WriteXml(sw, XmlWriteMode.WriteSchema)
Return sw.ToString()
Catch ex As Exception
MsgBox("Fehler beim Exportieren der Daten: " & ex.Message & ex.StackTrace, MsgBoxStyle.Critical)
End Try
Return ""
End Function
Public Sub setValues_DATA(data As String)
Try
If data Is Nothing Then Exit Sub
If data = "" Then Exit Sub
Dim dt As New DataTable()
Dim sr As New StringReader(data)
dt.ReadXml(sr)
setValues(dt)
Catch ex As Exception
MsgBox("Fehler beim Laden der Daten: " & ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Public Shared Function DATA_to_String(data As String) As String
Return DataTableToString_First4Cols(DATA_to_dt(data))
End Function
Public Shared Function DATA_to_dt(data As String) As DataTable
Try
If data Is Nothing Then Return Nothing
If data = "" Then Return Nothing
Dim dt As New DataTable()
Dim sr As New StringReader(data)
dt.ReadXml(sr)
Return dt
Catch ex As Exception
MsgBox("Fehler beim Laden der Daten: " & ex.Message, MsgBoxStyle.Critical)
End Try
Return Nothing
End Function
Public Shared Function DataTableToString_First4Cols(dt As DataTable) As String
If dt Is Nothing OrElse dt.Columns.Count = 0 Then
Return String.Empty
End If
Dim sb As New System.Text.StringBuilder()
' Anzahl der zu verwendenden Spalten (max 5)
Dim colCount As Integer = Math.Min(5, dt.Columns.Count)
' ---- Überschrift ----
For i As Integer = 0 To colCount - 1
sb.Append(dt.Columns(i).ColumnName.Replace("clmn", ""))
If i < colCount - 1 Then
sb.Append(" | ")
End If
Next
sb.AppendLine()
sb.AppendLine(New String("-"c, 50))
' ---- Zeilen ----
For Each dr As DataRow In dt.Rows
For i As Integer = 0 To colCount - 1
Dim value As Object = dr(i)
If value Is DBNull.Value OrElse value Is Nothing Then
sb.Append("")
Else
sb.Append(value.ToString())
End If
If i < colCount - 1 Then
sb.Append(" | ")
End If
Next
sb.AppendLine()
Next
Return sb.ToString()
End Function
Public Sub setValues(dt As DataTable)
Try
' WICHTIG: Auto-Generierung verhindern
MyDatagridview1.AutoGenerateColumns = False
' Falls vorher gebunden war: Binding lösen, damit nichts auto-generiert
If MyDatagridview1.DataSource IsNot Nothing Then
MyDatagridview1.DataSource = Nothing
End If
' Nur Zeilen löschen Spalten bleiben
MyDatagridview1.Rows.Clear()
If dt Is Nothing OrElse dt.Rows.Count = 0 Then Return
MyDatagridview1.SuspendLayout()
For Each dr As DataRow In dt.Rows
Dim rowIndex = MyDatagridview1.Rows.Add()
For Each col As DataGridViewColumn In MyDatagridview1.Columns
' getValues() nutzt col.Name -> daher hier auch col.Name
If dt.Columns.Contains(col.Name) Then
Dim v As Object = dr(col.Name)
MyDatagridview1.Rows(rowIndex).Cells(col.Index).Value =
If(v Is DBNull.Value, Nothing, v)
End If
Next
Next
Catch ex As Exception
MsgBox("Fehler beim Laden der Daten: " & ex.Message, MsgBoxStyle.Critical)
Finally
MyDatagridview1.ResumeLayout()
End Try
End Sub
End Class

View File

@@ -18,6 +18,7 @@ Public Class usrcntlVorauskasse
Public ROLLE As String = ""
Dim VK_ID = -1
Dim SQL As New SQL
Dim serializedData_CBAM As String = ""
Sub New()
@@ -421,7 +422,7 @@ Public Class usrcntlVorauskasse
cboSprache.Visible = False
Label17.Visible = False
Select Case cboFirma._value
Case "1"
Case "1", "11"
Button6.Visible = True
Case Else
Button6.Visible = False
@@ -562,6 +563,7 @@ Public Class usrcntlVorauskasse
lklEintragAufheben.Visible = False
End If
initKdNrLbl()
serializedData_CBAM = ""
End Sub
Private Sub lklEintragAufheben_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lklEintragAufheben.LinkClicked
initControlsSave(Nothing)
@@ -684,6 +686,7 @@ Public Class usrcntlVorauskasse
VK.vk_Berechnung_SonstigeKostenText = VERAG_PROG_ALLGEMEIN.SQL.isNullNothing(txtSonstigeKostenText.Text)
VK.vk_Berechnung_PP = VERAG_PROG_ALLGEMEIN.SQL.isNullNothingDbl(txtPapierePorti._value)
VK.vk_serializedData_CBAM = serializedData_CBAM
End Sub
@@ -731,8 +734,12 @@ Public Class usrcntlVorauskasse
txtSonstigeKosten._value = If(VK.vk_Berechnung_SonstigeKosten, "")
txtSonstigeKostenText.Text = If(VK.vk_Berechnung_SonstigeKostenText, "Sonstige Kosten")
cboFiliale.changeItem(If(VK.vk_FilialeNr, ""))
txtAbfertigungsNr.Text = If(VK.vk_AbfertigungsNr, "")
txtPapierePorti._value = If(VK.vk_Berechnung_PP, "")
serializedData_CBAM = If(VK.vk_serializedData_CBAM, "")
End Sub
Sub setDefault()
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
@@ -877,8 +884,15 @@ Public Class usrcntlVorauskasse
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Dim f As New frmVorauskasse_CBAM
' MsgBox(frmVorauskasse_CBAM.DATA_to_String(serializedData_CBAM))
f.setValues_DATA(serializedData_CBAM)
If f.ShowDialog(Me) = DialogResult.OK Then
If f.GesamtBetrag > 0 Then
serializedData_CBAM = f.getValues_DATA
' txtEustSonstText.Text = "ZOLL"
txtAndereAbgabenText.Text = "Est. CBAM Cost"
@@ -887,6 +901,7 @@ Public Class usrcntlVorauskasse
txtAndereAbgabenBetrag._value = f.GesamtBetrag
txtSonstigeKosten._value = f.Aufschlag
initBerechnung()
End If
End If
End Sub

View File

@@ -354,8 +354,9 @@ Public Class frmFormulare
Else
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Vollmacht", FormularManagerArten.DE_Vollmacht))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Vollmacht (indirekt)", FormularManagerArten.DE_Vollmacht_indirekt))
' MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Vollmacht (indirekt)", FormularManagerArten.DE_Vollmacht_indirekt))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE Fiskal-Vollmacht", FormularManagerArten.DE_Fiskal))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE/AT Vollmacht (indirekt)", FormularManagerArten.DE_Vollmacht_indirekt))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht", FormularManagerArten.AT_Vollmacht))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Vollmacht 4200 EV", FormularManagerArten.AT_Vollmacht_EV))
MyListBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AT Fiskal-Vollmacht", FormularManagerArten.AT_Fiskal))

View File

@@ -2433,12 +2433,12 @@ Public Class usrCntlSpeditionsBuchSuche
'Problem mit beträge
If cboFiliale._value = "" Then
rpt.Dispose() : print.Dispose()
MsgBox("Bitte Filiale angeben!")
Exit Sub
End If
''Problem mit beträge
'If cboFiliale._value = "" Then
' rpt.Dispose() : print.Dispose()
' MsgBox("Bitte Filiale angeben!")
' Exit Sub
'End If
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If cboFiliale._value <> "" Then
@@ -2500,7 +2500,8 @@ Public Class usrCntlSpeditionsBuchSuche
inner JOIN leistungen ON RechnungsausgangPositionen.LeistungsNr=leistungen.LeistungsNr
WHERE 1=1
" & SpedBuchWhere & "
and Speditionsbuch.Abfertigungsart=" & rpt.Fields.Item("Abfertigungsart").Value & "
and Speditionsbuch.Abfertigungsart=" & rpt.Fields.Item("Abfertigungsart").Value &
If(CheckBox1.Checked, " and Speditionsbuch.FilialenNr='" & If(rpt.Fields.Item("FilialenNr") IsNot Nothing, rpt.Fields.Item("FilialenNr").Value, "") & "'", "") & "
and leistungen.Abfertigungskosten=1"
Dim RgBetrag As Double = SQL.getValueTxtBySqlVarList(sqlstrRg, "FMZOLL", SpedBuchList, 0)
@@ -2509,7 +2510,8 @@ Public Class usrCntlSpeditionsBuchSuche
inner JOIN Vorkosten ON Vorkosten.FilialenNr=Speditionsbuch.FilialenNr and Vorkosten.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Vorkosten.UnterNr=Speditionsbuch.UnterNr
WHERE 1=1
" & SpedBuchWhere & "
and Speditionsbuch.Abfertigungsart=" & rpt.Fields.Item("Abfertigungsart").Value & ""
and Speditionsbuch.Abfertigungsart=" & rpt.Fields.Item("Abfertigungsart").Value &
If(CheckBox1.Checked, " and Speditionsbuch.FilialenNr='" & If(rpt.Fields.Item("FilialenNr") IsNot Nothing, rpt.Fields.Item("FilialenNr").Value, "") & "'", "") & ""
Dim VkBetrag As Double = SQL.getValueTxtBySqlVarList(sqlstrVK, "FMZOLL", SpedBuchList, 0)