From 317fff10fc35e5ffbc775d361472b9619c9db0e0 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Wed, 10 Apr 2024 15:11:49 +0200 Subject: [PATCH] =?UTF-8?q?Bugfix=20Emailversand,=20kurli.=20Schriftart=20?= =?UTF-8?q?aus=20Email/Anhang=20entfernen,=20Pr=C3=BCfung=20f=C3=BCr=20dop?= =?UTF-8?q?p.=20Positionen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/Fakturierung/frmAbrechnungsMaske.vb | 1 + SDL/Fakturierung/frmFaktEmail.vb | 2 +- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 3 +- .../Classes/cRechnungsausgang.vb | 34 +++++++++++++++++-- .../DATENSERVER/cDATENSERVER.vb | 24 ++++++++++++- 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index 1dcf0ca0..d58392c8 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -709,4 +709,5 @@ Public Class frmAbrechnungsMaske srcTAG = srcTAG.AddDays(1) initBtns("Tag") End Sub + End Class \ No newline at end of file diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index e679c542..3bed6d20 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -557,7 +557,7 @@ Public Class frmFaktEmail Try Dim additionalLine = "" - If RECHNUNG.FakturierungsGruppe <> "" Then + If RECHNUNG.FakturierungsGruppe IsNot Nothing AndAlso RECHNUNG.FakturierungsGruppe <> "" Then additionalLine = "Abrechnungsstelle: " & RECHNUNG.FakturierungsGruppe.Replace("WAI", "Waidhaus") End If diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index 7036144b..a90c254e 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -2804,12 +2804,11 @@ Public Class usrCntlFaktAbrechnung End If End If - getValues() Dim errMsg = "" setError(errMsg) - If RECHNUNG.CHECK_Validation(errMsg) Then + If RECHNUNG.CHECK_Validation(errMsg, dgvRechnungenPositionen) Then If RECHNUNG.SAVE(True) Then RECHNUNG.setSPEDBUCH_FAKTURIERT() 'Fakturiert wird in SpedBuch geschrieben diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb index 4081aa41..4dcfdee2 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb @@ -1,5 +1,7 @@ Imports System.Data.SqlClient Imports System.Reflection +Imports System.Windows.Forms +Imports DocumentFormat.OpenXml.Spreadsheet Public Class cRechnungsausgangLIST @@ -467,7 +469,7 @@ Public Class cRechnungsausgang Next End Sub - Public Function CHECK_Validation(ByRef errMsg As String) As Boolean + Public Function CHECK_Validation(ByRef errMsg As String, dgv As MyDatagridview) As Boolean If Firma_ID <= 0 Then errMsg = "ERROR: Firma auswählen!" : Return False If Rechnung_an = 0 OrElse CStr(Rechnung_an) = "" Then errMsg = "ERROR: Rechnungsempfänger auswählen!" : Return False If SpeditionsbuchUnterNr Is Nothing Then errMsg = "ERROR: Speditionsbuch-UnterNr auswählen!" : Return False @@ -486,13 +488,41 @@ Public Class cRechnungsausgang If RechnungsLandKz = FIRMA.Firma_LandKz Then If Steuersatz_Proz = 0 Then - If vbYes <> MsgBox("Es wurde kein Steuerschlüssel angegeben." & vbNewLine & vbNewLine & "Sind siw wicher, dass Sie ohne Steuerschlüssel fortfahren möchten.", vbYesNoCancel) Then + If vbYes <> MsgBox("Es wurde kein Steuerschlüssel angegeben." & vbNewLine & vbNewLine & "Sind Sie sicher, dass Sie ohne Steuerschlüssel fortfahren möchten.", vbYesNoCancel) Then errMsg = "ERROR: Steuerschlüssel angegeben!" Return False End If End If End If + If dgv Is Nothing Then + errMsg = "ERROR: Keine Positionen angegeben!" : Return False + Else + If dgv.Rows.Count > 1 Then + 'Prüfung für doppelte Positionen mit PK: Bezeichnung und LeistungNr! + Dim dt As New DataTable + dt.Columns.Add("name", GetType(String)) + + For Each row As DataGridViewRow In dgv.Rows + Dim R As DataRow = dt.NewRow + R("name") = row.Cells(0).Value + dt.Rows.Add(R) + Next + Dim dv As New DataView(dt) + Dim distinct As DataTable = dv.ToTable(True, New String() {"name"}) + + If distinct.Rows.Count <> dt.Rows.Count Then + errMsg = "ERROR: Doppelte Positionen vorhanden!" : Return False + End If + + End If + End If + + + + + + Return True End Function diff --git a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb index 64373309..1d0d06da 100644 --- a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb +++ b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb @@ -13,6 +13,8 @@ Imports System.Threading Imports System.Net Imports Spire.Pdf.Tables Imports System.Windows.Forms.VisualStyles +Imports System.Text.RegularExpressions +Imports System.Runtime.InteropServices.ComTypes Public Class cDATENSERVER @@ -270,7 +272,18 @@ Public Class cDATENSERVER s = s.Replace("Ì", ".") s = s.Replace("Ü", "U") ' .... das zum Beispiel + s = s.Replace("А", "A") 'cyrillic A + s = s.Replace("Р", "P") 'cyrillic P + s = s.Replace("С", "C") 'cyrillic C + s = s.Replace("Т", "T") 'cyrillic T + s = s.Replace("Ѕ", "S") 'cyrillic S + s = s.Replace("І", "I") 'cyrillic I + s = s.Replace("Ј", "J") 'cyrillic J + s = s.Replace("Е", "E") 'cyrillic E + Dim temp = s + s = Regex.Replace(s, "[бБвгГдДёЁжЖзЗиИйЙкКлЛмнпПртфФхХцЦчЧшШщЩъЪыЫьЬэЭюЮяЯ]", "").Replace("""", "") 'REMOVE cyrillic letters + 'If s = "" Then s = temp Dim tempBytes = System.Text.Encoding.GetEncoding("ISO-8859-8").GetBytes(s) s = System.Text.Encoding.UTF8.GetString(tempBytes) @@ -1862,7 +1875,16 @@ Public Class DATENVERVER_OPTIONS My.Computer.FileSystem.CreateDirectory(TMP_PATH2) End If If delete Then clearTMPPath(unterOrdner) - If name = "" Then name = "TMP" + + If name = "" Then + name = "TMP" + Else + name = VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(name) + name = name.Replace("?", "") + End If + + + Dim destPath = TMP_PATH2 & name If special Then destPath = TMP_PATH2 & name & "_" & Now.ToString("yyyyMMddHHmmssfff") & extension