From 8fdf2b46d18df901422d61b786f782a021fdacda Mon Sep 17 00:00:00 2001 From: Andreas Luxbauer Date: Tue, 24 Feb 2026 13:54:29 +0100 Subject: [PATCH] VK Cbam Save, Vollm.ind. --- .../FormulareBaukasten/frmVorauskasse_CBAM.vb | 159 +++++++++++++++++- .../FormulareBaukasten/usrcntlVorauskasse.vb | 17 +- SDL/Formulare/KDFormulare/frmFormulare.vb | 3 +- .../usrCntlSpeditionsBuchSuche.vb | 18 +- VERAG_PROG_ALLGEMEIN/Classes/cVorauskasse.vb | 2 + .../DATENSERVER/frmVorlagen.Designer.vb | 13 ++ .../DATENSERVER/frmVorlagen.vb | 13 +- 7 files changed, 212 insertions(+), 13 deletions(-) diff --git a/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_CBAM.vb b/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_CBAM.vb index fdc7faa5..f87883ea 100644 --- a/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_CBAM.vb +++ b/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_CBAM.vb @@ -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 \ No newline at end of file diff --git a/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVorauskasse.vb b/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVorauskasse.vb index cf5f6ffc..0a3435c2 100644 --- a/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVorauskasse.vb +++ b/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVorauskasse.vb @@ -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 diff --git a/SDL/Formulare/KDFormulare/frmFormulare.vb b/SDL/Formulare/KDFormulare/frmFormulare.vb index 33d2af5d..e6afa6af 100644 --- a/SDL/Formulare/KDFormulare/frmFormulare.vb +++ b/SDL/Formulare/KDFormulare/frmFormulare.vb @@ -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)) diff --git a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb index afba80b8..2ee0f24f 100644 --- a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb +++ b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb @@ -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) diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cVorauskasse.vb b/VERAG_PROG_ALLGEMEIN/Classes/cVorauskasse.vb index 0c36ef4f..0fe6e281 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cVorauskasse.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cVorauskasse.vb @@ -68,6 +68,7 @@ Public Class cVorauskasse Property vk_SendungId As Object = Nothing Property vk_AvisoId As Object = Nothing Property vk_VermerkId As Object = Nothing + Property vk_serializedData_CBAM As Object = Nothing Dim SQL As New SQL @@ -143,6 +144,7 @@ Public Class cVorauskasse list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vk_SendungId", vk_SendungId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vk_AvisoId", vk_AvisoId)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vk_VermerkId", vk_VermerkId)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("vk_serializedData_CBAM", vk_serializedData_CBAM)) Return list End Function diff --git a/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.Designer.vb b/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.Designer.vb index a9483200..045c7609 100644 --- a/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.Designer.vb +++ b/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.Designer.vb @@ -31,6 +31,7 @@ Partial Class frmVorlagen Me.Label2 = New System.Windows.Forms.Label() Me.lblCount = New System.Windows.Forms.Label() Me.dgvVolagen = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.Button2 = New System.Windows.Forms.Button() CType(Me.dgvVolagen, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' @@ -105,12 +106,23 @@ Partial Class frmVorlagen Me.dgvVolagen.Size = New System.Drawing.Size(1094, 569) Me.dgvVolagen.TabIndex = 9 ' + 'Button2 + ' + Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button2.Location = New System.Drawing.Point(833, 609) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(225, 44) + Me.Button2.TabIndex = 14 + Me.Button2.Text = "Vorlage direkt öffnen" + Me.Button2.UseVisualStyleBackColor = True + ' 'frmVorlagen ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.Color.White Me.ClientSize = New System.Drawing.Size(1117, 665) + Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.lblCount) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.txtSuche) @@ -134,4 +146,5 @@ Partial Class frmVorlagen Friend WithEvents txtSuche As Windows.Forms.TextBox Friend WithEvents Label2 As Windows.Forms.Label Friend WithEvents lblCount As Windows.Forms.Label + Friend WithEvents Button2 As Windows.Forms.Button End Class diff --git a/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.vb b/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.vb index c424431d..91e2932f 100644 --- a/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.vb +++ b/VERAG_PROG_ALLGEMEIN/DATENSERVER/frmVorlagen.vb @@ -34,7 +34,6 @@ Public Class frmVorlagen If dgvVolagen.SelectedRows.Count = 0 Then Exit Sub Dim r As DataGridViewRow = dgvVolagen.SelectedRows(0) Dim cDATENSERVER As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(r.Cells("da_kategorie").Value, r.Cells("da_ordner").Value, r.Cells("da_uOrdner1").Value, r.Cells("da_uOrdner2").Value, r.Cells("da_uOrdner3").Value, r.Cells("da_name").Value) - MsgBox(cDATENSERVER.DATA_LIST.LIST.Count) cDATENSERVER.OPEN_SINGLE() End Sub @@ -66,4 +65,16 @@ Public Class frmVorlagen End If End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + + If dgvVolagen.SelectedRows.Count = 0 Then Exit Sub + Try + Dim r As DataGridViewRow = dgvVolagen.SelectedRows(0) + Dim cDATENSERVER As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(r.Cells("da_kategorie").Value, r.Cells("da_ordner").Value, r.Cells("da_uOrdner1").Value, r.Cells("da_uOrdner2").Value, r.Cells("da_uOrdner3").Value, r.Cells("da_name").Value) + cDATENSERVER.OPEN_SINGLE_ORIG() + Catch ex As Exception + MsgBox(ex.Message) + End Try + End Sub End Class \ No newline at end of file