From 09ce4ef8f0d44d892533d4d41701f40df8337d92 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Mon, 11 Aug 2025 16:36:21 +0200 Subject: [PATCH] Kundenblatt, etc. --- SDL/My Project/AssemblyInfo.vb | 4 +- .../usrCntlSpeditionsBuchSuche.vb | 8 +- SDL/kunden/frmKundenblatt.Designer.vb | 4 +- SDL/mdm/usrCntlMDMAuswertungen.vb | 52 ++++++++++-- VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb | 82 +++++++++++++++++-- .../Schnittstellen/cSyska_Interface.vb | 7 +- 6 files changed, 133 insertions(+), 24 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 9609bff9..70432ce7 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb index f875c356..6b1b2be2 100644 --- a/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb +++ b/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb @@ -2186,8 +2186,8 @@ Public Class usrCntlSpeditionsBuchSuche For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows Dim ZollInProzent As Double = 0 - If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then - ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100 + If If(ZOLLANMELDUNG.Rechnungspreis, "") <> "" Then + ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.Rechnungspreis * 100 End If Blatt.Range("A" & cnt).Value = cnt - 1 @@ -2227,8 +2227,8 @@ Public Class usrCntlSpeditionsBuchSuche Next Else Dim ZollInProzent As Double = 0 - If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then - ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100 + If If(ZOLLANMELDUNG.Rechnungspreis, "") <> "" Then + ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.Rechnungspreis * 100 End If Blatt.Range("A" & cnt).Value = cnt - 1 diff --git a/SDL/kunden/frmKundenblatt.Designer.vb b/SDL/kunden/frmKundenblatt.Designer.vb index eef7fb00..b73ecb1b 100644 --- a/SDL/kunden/frmKundenblatt.Designer.vb +++ b/SDL/kunden/frmKundenblatt.Designer.vb @@ -2446,7 +2446,7 @@ Partial Class frmKundenblatt ' Me.btnFirmendatenFormularSpeichern.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnFirmendatenFormularSpeichern.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnFirmendatenFormularSpeichern.Location = New System.Drawing.Point(-2849, 18) + Me.btnFirmendatenFormularSpeichern.Location = New System.Drawing.Point(1490, 21) Me.btnFirmendatenFormularSpeichern.Name = "btnFirmendatenFormularSpeichern" Me.btnFirmendatenFormularSpeichern.Size = New System.Drawing.Size(71, 52) Me.btnFirmendatenFormularSpeichern.TabIndex = 17 @@ -2724,7 +2724,7 @@ Partial Class frmKundenblatt ' Me.cntxtCntxtMDM.ImageScalingSize = New System.Drawing.Size(24, 24) Me.cntxtCntxtMDM.Name = "cntxtCntxtMDM" - Me.cntxtCntxtMDM.OwnerItem = Me.ToolStripMenuItem8 + Me.cntxtCntxtMDM.OwnerItem = Me.ToolStripMenuItem4 Me.cntxtCntxtMDM.Size = New System.Drawing.Size(61, 4) Me.cntxtCntxtMDM.Text = "cntxtMDM" ' diff --git a/SDL/mdm/usrCntlMDMAuswertungen.vb b/SDL/mdm/usrCntlMDMAuswertungen.vb index 958c7497..f9ec29b7 100644 --- a/SDL/mdm/usrCntlMDMAuswertungen.vb +++ b/SDL/mdm/usrCntlMDMAuswertungen.vb @@ -124,12 +124,8 @@ Public Class usrCntlMDMAuswertungen " ,[FilialenNr],[AbfertigungsNr],[UnterNr] " & " ,CONVERT(VARCHAR(10), [Abfertigungsdatum], 104) as [Abfertigungsdatum] " & " ,isnull(Adressen.WölflKundenNr,'') as WölflKundenNr " & - " ,CASE WHEN [EmpfängerStraße] IS NULL THEN [EmpfängerName 1] " & - " ELSE [EmpfängerName 1] + ' ' +[EmpfängerName 2] " & - " END AS [Empfänger] " & - " ,CASE WHEN [EmpfängerStraße] IS NULL THEN [EmpfängerName 2] " & - " ELSE [EmpfängerStraße] " & - " END AS [EmpfängerAdresse 1] " & + " ,CASE WHEN [EmpfängerName 2] IS NULL THEN isnull([EmpfängerName 1],'') ELSE isnull([EmpfängerName 1],'') + ' ' + ISNULL([EmpfängerName 2],'') END AS [Empfänger] " & + " ,CASE WHEN [EmpfängerStraße] IS NULL THEN isnull([EmpfängerName 2],'') ELSE [EmpfängerStraße] END AS [EmpfängerAdresse 1] " & " ,[EmpfängerOrt] as [EmpfängerAdresse 2] " & " ,[Packstücke und Warenbezeichnung] as Beschreibung,[LeistungsNr],[LeistungsBez],[Steuersatz %] ,[SteuerpflichtigerGesamtbetrag] as [SteuerpflichtigerGesamtbetrag Netto] " & " ,[SteuerfreierGesamtbetrag],[SteuerpflichtigerBetrag] as [SteuerpflichtigerBetrag Netto] ,[SteuerfreierBetrag] " & @@ -154,9 +150,50 @@ Public Class usrCntlMDMAuswertungen End Try Dim clmns As String = "" + For Each r As DataRow In dt.Rows + + If r.Item("LeistungsBez").ToString.Contains("00/23") Or r.Item("LeistungsBez").ToString.Contains("DL/23") Then + + Dim antragsID As Integer = CInt(SQL.getValueTxtBySql("SELECT UStVAn_ID FROM tblUStVAntrag WHERE FilialenNr = " & r.Item("FilialenNr").ToString & " AND AbfertigungsNr = " & r.Item("AbfertigungsNr").ToString, "FMZOLL")) + + If antragsID > 0 Then + Dim MWSTAntrag As New cUSTVAntrag(antragsID) + + Dim MonthStart As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatVon).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatVon).Month + Dim MonthEnd As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatBis).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatBis).Month + + Dim LeistungsBez As String = "" + LeistungsBez = r.Item("LeistungsBez").ToString() + + If LeistungsBez.Contains("00-00/23") Then + LeistungsBez = LeistungsBez.Replace("00/23", "/" & CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) + ElseIf LeistungsBez.Contains("DL/23") Then + LeistungsBez = LeistungsBez.Replace("DL/23", "/" & CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) + Else + LeistungsBez = LeistungsBez.Replace("/23", "/" & CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) + End If + + If LeistungsBez.Contains("-00") Then + LeistungsBez = LeistungsBez.Replace("-00", MonthStart & "-" & MonthEnd) + ElseIf LeistungsBez.Contains("00-") Then + LeistungsBez = LeistungsBez.Replace("00-", MonthStart & "-" & MonthEnd) + ElseIf LeistungsBez.Contains("00") Then + LeistungsBez = LeistungsBez.Replace("00", MonthStart & "-" & MonthEnd) + End If + + r.Item("LeistungsBez") = LeistungsBez + + End If + + + End If + + Next + For i = 0 To dt.Columns.Count - 1 clmns &= dt.Columns(i).ColumnName.ToString().Replace(";", ",") & ";" + Next outFile.WriteLine(clmns) @@ -164,7 +201,10 @@ Public Class usrCntlMDMAuswertungen clmns = "" For j = 0 To dt.Columns.Count - 1 Dim o As Object = dt.Rows(i).Item(j).ToString + + clmns &= dt.Rows(i).Item(j).ToString().Replace(vbNewLine, "").Replace(vbCr, "").Replace(vbLf, "").Replace("\n", "").Replace("\r", "").Replace(vbCrLf, "") & ";" + ' If Not o Is Nothing AndAlso Not o.value Is Nothing Then 'clmns &= o.Value.ToString().Replace(";", ",") & ";" ' Else diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb index 3b2064ad..a255659a 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb @@ -271,8 +271,8 @@ Public Class cOfferte 'P.PreisänderungProzent = XXXXXXXXX 'P.PreisAlt = XXXXXXXXX - P.Land = setLand(P.OffertenNr, P.LeistungsNr, P.LeistungsBez) - P.VZ = setVZ(P.OffertenNr, P.LeistungsNr, P.LeistungsBez) + P.Land = setLand(P.OffertenNr, P.LeistungsNr, r("LeistungsBez")) + P.VZ = setVZ(P.OffertenNr, P.LeistungsNr, r("LeistungsBez")) If Not P.INSERT() Then Return False @@ -367,8 +367,11 @@ Public Class cOfferte If LandISO <> "EU" And LandISO <> "RG" Then Return LandISO Else - Return LandISO + LandISO = "" End If + Else + + LandISO = "" End If Return LandISO @@ -382,7 +385,7 @@ Public Class cOfferte Case 31, 15, 14 If (LeistungsNr = 117 Or LeistungsNr = 118 Or LeistungsNr = 119) Then - If LeistungsBez.ToString.Contains("ZV") Then + If LeistungsBez.ToString.Contains("ZV") Or LeistungsBez.ToString.Contains("Vorauszahlung") Then Return True Else Return False @@ -436,14 +439,53 @@ Public Class cOffertPosition Sub New() End Sub + Sub New(KundenNr, OffertenNr, LeistungsNr, LeistungsBez) + Me.KundenNr = KundenNr + Me.OffertenNr = OffertenNr + Me.LeistungsNr = LeistungsNr + Me.LeistungsBez = LeistungsBez + LOAD() + End Sub - Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Public Sub LOAD() + Try + Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM Offertenpositionen WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr and LeistungsNr=@LeistungsNr and LeistungsBez=@LeistungsBez ", conn) + cmd.Parameters.AddWithValue("@KundenNr", KundenNr) + cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr) + cmd.Parameters.AddWithValue("@LeistungsNr", LeistungsNr) + cmd.Parameters.AddWithValue("@LeistungsBez", LeistungsBez) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + For Each i In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(i.Scalarvariable) + + If dr.Item(i.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(i.Text)) + End If + + Next + + End If + dr.Close() + End Using + End Using + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + End Sub + + + Function getParameterList(Optional onlyUpdate As Boolean = False) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KundenNr", KundenNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsNr", LeistungsNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez", LeistungsBez)) + If onlyUpdate Then Return list list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartNr", BerechnungsartNr)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preis", Preis)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl", Anzahl)) @@ -467,9 +509,18 @@ Public Class cOffertPosition Public Function INSERT() As Boolean Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() - Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list) + Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", False, list) End Function + Public Function UPDATE(LEISTUNGSBEZ_ORG As String) As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList(True) + + + Return SQL.doSQLVarList(getUpdateCmd(LEISTUNGSBEZ_ORG), "FMZOLL", False, list) + End Function + + + Public Function getInsertCmd() As String Try @@ -492,6 +543,25 @@ Public Class cOffertPosition Return "" End Function + Public Function getUpdateCmd(LEISTUNGSBEZ_ORG As String) As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList(True) + + Dim str As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + Return (" UPDATE [Offertenpositionen] SET " & str & " WHERE KundenNr=@KundenNr and OffertenNr=@OffertenNr and LeistungsNr=@LeistungsNr and LeistungsBez= '" & LEISTUNGSBEZ_ORG & "'") + + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + End Class Public Class cOfferteArchiv diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb index cdb29df3..079b4058 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb @@ -748,13 +748,12 @@ Public Class cSyska_Interface Dim FiBuSollkontonummer As Integer Dim FiBuHabenkontonummer As Integer - Dim FiBuWährung = "EUR" Select Case row("BelegartenNr") Case 70 'Rechnung FiBuSollkontonummer = "0" - FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ") + FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0) If row("WährungFremd") Is DBNull.Value Then curNettobetrag = row("BetragLokal") Else @@ -762,7 +761,7 @@ Public Class cSyska_Interface End If Case 71 'Gutschrift If Not ambargubuchungen Then - FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ") + FiBuSollkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0) FiBuHabenkontonummer = "0" If row("WährungFremd") Is DBNull.Value Then curNettobetrag = 0 - row("BetragLokal") @@ -771,7 +770,7 @@ Public Class cSyska_Interface End If Else FiBuSollkontonummer = "0" - FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ") + FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value AndAlso IsNumeric(row("Sachkonto")), row("Sachkonto"), 0) If row("WährungFremd") Is DBNull.Value Then curNettobetrag = 0 - row("BetragLokal") Else