+
+ "
+
+
+
+ If MyTextBox2.Text <> "" Then
+ mailtext &= "
+
+
+ " & MyTextBox2.Text & "
+
+ |
+ "
+ End If
+ mailtext &= ""
+
+ Return mailtext
+
+ End Function
+
+
+ Function getMailtext_NewsletterTop()
+ Dim mailtext As String = ""
+ mailtext &= "
+
+
+
+
+ "
+
+
+
+ If MyTextBox2.Text <> "" Then
+ mailtext &= "
+
+
+ " & MyTextBox2.Text & "
+
+ |
+ "
+ End If
+ mailtext &= "| "
+
+ Return mailtext
+
+ End Function
+
+ Function getMailtext_NewsletterBottom()
+ Dim mailtext As String = ""
+ mailtext &= " |
+
+ |
+
+
+
+ "
+ Return mailtext
+
+ End Function
+
+ Private Sub cbxNewsletter_CheckedChanged(sender As Object, e As EventArgs) Handles cbxNewsletter.CheckedChanged
+ MyTextBox2.Enabled = cbxNewsletter.Checked
+ End Sub
+
+ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+
+ End Sub
+
+ Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
+ MyDatagridview1.Rows.Clear()
+ End Sub
+
+ Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
+ MyDatagridview1.SelectAll()
+ End Sub
+
+ Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
+ MyDatagridview1.ClearSelection()
+ End Sub
+
+
+End Class
+
+
+
+'Public Class RichTextBoxHtmlImageExporter
+
+' Private ReadOnly _images As New List(Of ImageInfo)
+
+' Private Class ImageInfo
+' Public Property Token As String
+' Public Property FilePath As String
+' Public Property ContentId As String
+' Public Property MimeType As String
+' End Class
+
+' ' Beim Einfügen (Ctrl+V) aufrufen
+' Public Sub HandlePaste(rtb As RichTextBox)
+' If Not Clipboard.ContainsImage() Then Return
+
+' Dim img As Image = Clipboard.GetImage()
+
+' ' Wichtig: Guid NICHT als Variable überschreiben.
+' Dim id As String = System.Guid.NewGuid().ToString("N")
+
+' Dim token As String = $"[IMG_{id}]"
+' Dim filePath As String = Path.Combine(Path.GetTempPath(), $"rtb_img_{id}.png")
+
+' img.Save(filePath, ImageFormat.Png)
+
+' _images.Add(New ImageInfo With {
+' .Token = token,
+' .FilePath = filePath,
+' .ContentId = id,
+' .MimeType = "image/png"
+' })
+
+' ' Token an Cursorposition einfügen (Bild selbst bleibt nicht im RTF)
+' rtb.SelectedText = token & Environment.NewLine
+' End Sub
+
+' ' HTML + AlternateView (mit LinkedResources) erzeugen
+' Public Function BuildHtmlView(rtb As RichTextBox) As AlternateView
+' Dim htmlBody As String = rtb.Text
+
+' ' Minimal-HTML-Escaping + Zeilenumbrüche
+' htmlBody = htmlBody.Replace("&", "&").Replace("<", "<").Replace(">", ">")
+' htmlBody = htmlBody.Replace(Environment.NewLine, " ")
+
+' ' Tokens durch CID-Images ersetzen
+' For Each img In _images
+' htmlBody = htmlBody.Replace(
+' img.Token,
+' $" "
+' )
+' Next
+
+' Dim fullHtml As String =
+' $"
+'
+'
+'
+' {htmlBody}
+'
+' "
+
+' Dim view As AlternateView =
+' AlternateView.CreateAlternateViewFromString(fullHtml, Nothing, MediaTypeNames.Text.Html)
+
+' ' LinkedResources hinzufügen (Inline Attachments)
+' For Each img In _images
+' Dim lr As New LinkedResource(img.FilePath, img.MimeType)
+' lr.ContentId = img.ContentId
+' lr.TransferEncoding = TransferEncoding.Base64
+' view.LinkedResources.Add(lr)
+' Next
+
+' Return view
+' End Function
+
+' ' Temp-Dateien löschen (optional)
+' Public Sub Cleanup()
+' For Each img In _images
+' Try
+' If File.Exists(img.FilePath) Then File.Delete(img.FilePath)
+' Catch
+' ' optional: Logging
+' End Try
+' Next
+' _images.Clear()
+' End Sub
+
+'End Class
+Public Class RichTextBoxHtmlExporter
+
+ Private ReadOnly _images As New List(Of ImageInfo)
+
+ Private Class ImageInfo
+ Public Property Token As String
+ Public Property FilePath As String
+ End Class
+
+ ' Beim Einfügen eines Bildes (Ctrl+V)
+ Public Sub HandlePaste(rtb As RichTextBox)
+ If Not Clipboard.ContainsImage() Then Return
+
+ Dim img As Image = Clipboard.GetImage()
+
+ Dim id As String = System.Guid.NewGuid().ToString("N")
+ Dim token As String = $"[IMG_{id}]"
+ Dim filePath As String =
+ Path.Combine(Path.GetTempPath(), $"rtb_img_{id}.png")
+
+ img.Save(filePath, ImageFormat.Png)
+
+ _images.Add(New ImageInfo With {
+ .Token = token,
+ .FilePath = filePath
+ })
+
+ rtb.SelectedText = token & Environment.NewLine
+ End Sub
+
+ ' HTML-Text erzeugen
+ Public Function BuildHtml(html) As String
+ 'Dim html As String = rtb.Text
+
+ ' Grundlegendes Escaping
+ 'html = html.Replace("&", "&").
+ ' Replace("<", "<").
+ ' Replace(">", ">")
+
+ 'html = html.Replace(Environment.NewLine, " ")
+
+ ' Tokens durch IMG-Tags ersetzen
+ For Each img In _images
+ Dim uri As String = New Uri(img.FilePath).AbsoluteUri
+ html = html.Replace(
+ img.Token,
+ $" "
+ )
+ Next
+
+ Return WrapHtml(html)
+ End Function
+
+ Private Function WrapHtml(body As String) As String
+ Return $"
+
+
+
+
+
+
+{body}
+
+"
+ End Function
+
+ ' Optional: Temp-Dateien löschen
+ Public Sub Cleanup()
+ For Each img In _images
+ Try
+ If File.Exists(img.FilePath) Then File.Delete(img.FilePath)
+ Catch
+ End Try
+ Next
+ _images.Clear()
+ End Sub
+
End Class
\ No newline at end of file
diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
index 2bd9c2e5..059eaa1e 100644
--- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
+++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
@@ -123,6 +123,7 @@ Public Class cRechnungsausgang
Property Rechnungsart As String = "RG" ' RG=Rechnung; RU=Rechnung Unvollständig; RK=RechnungKopf -> bei unvollständiger Rechnung ein Kopf benötigt (zB Staffelabrechnung)
Property Vorlageprovision_Mindestbetrag As Object = Nothing
+ Property dsId As Object = Nothing
' FROM [VERAG as object=nothing.[dbo as object=nothing.[Rechnungsausgang as object=nothing
@@ -369,6 +370,7 @@ Public Class cRechnungsausgang
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Automailversand", Automailversand))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnungsart", Rechnungsart))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorlageprovision_Mindestbetrag", Vorlageprovision_Mindestbetrag))
+ list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("dsId", dsId))
Return list
End Function
@@ -460,12 +462,25 @@ Public Class cRechnungsausgang
Return RK_ID > 0
End Function
+
Public Function SAVE_DruckDatumZeit() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " UPDATE Rechnungsausgang SET DruckDatumZeit=@DruckDatumZeit WHERE RK_ID=@RK_ID "
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function
+ Public Function SAVE_DsId(DsId) As Boolean
+ Me.dsId = DsId
+ Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
+ Dim sqlstr = " UPDATE Rechnungsausgang SET DsId=@DsId WHERE RK_ID=@RK_ID "
+ Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
+ End Function
+
+ Public Shared Function SAVE_DsId(RK_ID, DsId) As Boolean
+ Dim sqlstr = " UPDATE Rechnungsausgang SET DsId='" & DsId & "' WHERE RK_ID='" & RK_ID & "' "
+ Return SQL.doSQL(sqlstr, "FMZOLL")
+ End Function
+
Public Sub doVorzeichen()
Dim vz = If(Vorzeichen = "-", -1, 1)
diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_CBAM_CostCalculation.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_CBAM_CostCalculation.vb
index fb5ca46e..f7a0c649 100644
--- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_CBAM_CostCalculation.vb
+++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/GREENPULSE/cATEZ_Greenpulse_CBAM_CostCalculation.vb
@@ -173,7 +173,7 @@ Public Class cATEZ_Greenpulse_CBAM_CostCalculation
Dim req As New cCBAM_CostCalculation_Request With {
.cn_code = cn_code,
.weight = CDbl(weight), ' Tonnen
- .see_total = If(see_total = "", Nothing, see_total), ' optionale echte Emissionen
+ .see_total = If(see_total = "", Nothing, see_total), ' optionale echte Emissionen
.year = If(year = "", Nothing, CInt(year)) ' Phase-in Jahr
}
diff --git a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
index 4c66932b..14b063c3 100644
--- a/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
+++ b/VERAG_PROG_ALLGEMEIN/cProgramFunktions.vb
@@ -511,7 +511,7 @@ BindingFlags.Instance Or BindingFlags.NonPublic, Nothing, [Control], New Object(
mySmtpsvr.Credentials = myCredentials
Try
'Msg.BodyEncoding = System.Text.Encoding.GetEncoding("UTF-8")
- Msg.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
+ Msg.BodyEncoding = System.Text.Encoding.UTF8 'System.Text.Encoding.GetEncoding("ISO-8859-1")
Msg.From = New MailAddress(eMailfrom)
If eMailTo IsNot Nothing Then
| |