Mails in USVT, cFakt, etc.

This commit is contained in:
2025-08-28 15:33:23 +02:00
parent adc5186648
commit 62a0c6f6c2
4 changed files with 243 additions and 17 deletions

View File

@@ -1636,11 +1636,10 @@ Public Class cFakturierung
ElseIf rpt.txtLeistung.Text.Contains("00") Then
rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("00", MonthStart & IIf(MonthEnd <> "", "-" & MonthEnd, ""))
End If
End If
End If
End If
End If
@@ -2649,7 +2648,36 @@ Public Class cFakturierung
Dim list As New List(Of String)
If RG.ANHAENGE IsNot Nothing AndAlso RG.ANHAENGE.Count > 0 Then
For Each ANH In RG.ANHAENGE
If ANH.dsId > 0 Then list.Add(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId))
Dim path As String = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId)
If RG IsNot Nothing AndAlso RG.Firma_ID = 19 Then
If path.Contains("POS_LISTE") Or path.Contains("POS-LISTE") Then
Dim PATH_Org = path
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(PATH_Org)
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
For page As Integer = 1 To pdfReader.NumberOfPages
If page = 1 Then
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RG.RechnungsNr, 7, 23.5, 100, 20, "bold", 12, , itextsharp.text.Element.ALIGN_LEFT, page))
Else
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RG.RechnungsNr, 7, 0.5, 100, 20, "bold", 10, , itextsharp.text.Element.ALIGN_LEFT, page))
End If
Next
pdfReader.Close()
path = fm.fillPDFVorhandenesLokalesPDF_Path(PATH_Org, listTowrite, , ,, False)
End If
End If
If ANH.dsId > 0 Then list.Add(path)
Next
End If
Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("RG_Anhänge_" & Now.ToString("ddMMyyyyHHmmss") & ".pdf", ".pdf", False, False)

View File

@@ -1074,7 +1074,12 @@ Public Class frmFaktEmail
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
For page As Integer = 1 To pdfReader.NumberOfPages
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RECHNUNG.RechnungsNr, 7, 23.5, 100, 20, "bold", 12, , itextsharp.text.Element.ALIGN_LEFT, page))
If page = 1 Then
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RECHNUNG.RechnungsNr, 7, 23.5, 100, 20, "bold", 12, , itextsharp.text.Element.ALIGN_LEFT, page))
Else
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RECHNUNG.RechnungsNr, 7, 0.5, 100, 20, "bold", 10, , itextsharp.text.Element.ALIGN_LEFT, page))
End If
Next
pdfReader.Close()

View File

@@ -141,6 +141,7 @@ Partial Class frmMDM_USTVAntrag
Me.FakturiertToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.UstCntlUSTV_AntragPosition1 = New SDL.ustCntlUSTV_AntragPosition()
Me.UstCntlUSTV_AntragErstattungen1 = New SDL.ustCntlUSTV_ErstattungPosition()
Me.pbMail = New System.Windows.Forms.PictureBox()
Me.pnlBottom.SuspendLayout()
CType(Me.pb_Beleg, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picExcel, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -165,12 +166,14 @@ Partial Class frmMDM_USTVAntrag
Me.Panel1.SuspendLayout()
Me.cns_vorauszahlen.SuspendLayout()
Me.ncs_Belege.SuspendLayout()
CType(Me.pbMail, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'pnlBottom
'
Me.pnlBottom.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.pnlBottom.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.pnlBottom.Controls.Add(Me.pbMail)
Me.pnlBottom.Controls.Add(Me.pb_Beleg)
Me.pnlBottom.Controls.Add(Me.Button5)
Me.pnlBottom.Controls.Add(Me.txtSumme)
@@ -1721,7 +1724,7 @@ Partial Class frmMDM_USTVAntrag
'
Me.cns_vorauszahlen.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.VorauszahlungToolStripMenuItem, Me.FakturiertZurücksetzenToolStripMenuItem})
Me.cns_vorauszahlen.Name = "cns_vorauszahlen"
Me.cns_vorauszahlen.Size = New System.Drawing.Size(212, 70)
Me.cns_vorauszahlen.Size = New System.Drawing.Size(212, 48)
'
'VorauszahlungToolStripMenuItem
'
@@ -1796,6 +1799,16 @@ Partial Class frmMDM_USTVAntrag
Me.UstCntlUSTV_AntragErstattungen1.Size = New System.Drawing.Size(1280, 259)
Me.UstCntlUSTV_AntragErstattungen1.TabIndex = 2
'
'pbMail
'
Me.pbMail.Image = Global.SDL.My.Resources.Resources.email_big1
Me.pbMail.Location = New System.Drawing.Point(1110, 17)
Me.pbMail.Name = "pbMail"
Me.pbMail.Size = New System.Drawing.Size(35, 35)
Me.pbMail.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.pbMail.TabIndex = 52
Me.pbMail.TabStop = False
'
'frmMDM_USTVAntrag
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -1840,6 +1853,7 @@ Partial Class frmMDM_USTVAntrag
Me.Panel1.ResumeLayout(False)
Me.cns_vorauszahlen.ResumeLayout(False)
Me.ncs_Belege.ResumeLayout(False)
CType(Me.pbMail, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
@@ -1959,4 +1973,5 @@ Partial Class frmMDM_USTVAntrag
Friend WithEvents cbxSicherheit As CheckBox
Friend WithEvents FakturiertToolStripMenuItem As ToolStripMenuItem
Friend WithEvents FakturiertZurücksetzenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents pbMail As PictureBox
End Class

View File

@@ -1,6 +1,7 @@
Imports System.IO
Imports System.Reflection
Imports System.Windows.Documents
Imports GrapeCity.SpreadBuilder
Imports itextsharp.text.pdf
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
@@ -2015,11 +2016,17 @@ Public Class frmMDM_USTVAntrag
If Not cns_neAntraege.Items.ContainsKey("mail") Then
Dim mail = New ToolStripMenuItem() With {.Text = "Email generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
Dim mail = New ToolStripMenuItem() With {.Text = "Email (POS-Liste) generieren", .Name = "mail", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mail.Click, AddressOf mnuItem_Clicked
cns_neAntraege.Items.Add(mail)
End If
If Not cns_neAntraege.Items.ContainsKey("mailPDF") Then
Dim mailPDF = New ToolStripMenuItem() With {.Text = "Email (PDF-RE) generieren", .Name = "mailPDF", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler mailPDF.Click, AddressOf mnuItem_Clicked
cns_neAntraege.Items.Add(mailPDF)
End If
If Not cns_neAntraege.Items.ContainsKey("offeneAntraege") Then
Dim oa = New ToolStripMenuItem() With {.Text = "nicht eingearbeitet USTV-Anträge", .Name = "offeneAntraege", .Font = New Font(Me.Font.FontFamily, Me.Font.Size)}
AddHandler oa.Click, AddressOf mnuItem_Clicked
@@ -2046,7 +2053,10 @@ Public Class frmMDM_USTVAntrag
excelAuswertung()
ElseIf item.Name = "mail" Then
mailmitExcelauswertung()
mailmitExcelauswertung(False)
ElseIf item.Name = "mailPDF" Then
mailmitExcelauswertung(True)
ElseIf item.Name = "zuwenig" Then
zuwenigMail()
@@ -2193,7 +2203,7 @@ Public Class frmMDM_USTVAntrag
End Function
Private Sub mailmitExcelauswertung()
Private Sub mailmitExcelauswertung(Optional withPDF As Boolean = False)
Try
Dim outl As New Outlook.Application
@@ -2208,6 +2218,8 @@ Public Class frmMDM_USTVAntrag
End If
If withPDF Then Mail.Attachments.Add(PDFInvoicesPath(""), Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
Dim subject As String = ""
subject &= IIf(USTV_ANTRAG.UStVAn_Name <> "", USTV_ANTRAG.UStVAn_Name & "_", "")
subject &= IIf(Antrag_LandKz <> "", Antrag_LandKz & "_", "")
@@ -2903,11 +2915,10 @@ Public Class frmMDM_USTVAntrag
If frmNacherfassung.txtErfassungsnummer.Text = "" OrElse frmNacherfassung.txtErfassungsnummer.Text <> USTV_ANTRAG.UStVAn_ID Then
MsgBox("Antrags-ID: " & USTV_ANTRAG.UStVAn_ID & " wurde falsch gesetzt!")
End If
Exit Sub
End If
End If
If DiffernezbetragEUR = 0 Then
If DiffernezbetragEUR = 0 Then
If Not vbYes = MsgBox("Der Erstattungsbetrag beträgt 0 EUR." & vbNewLine & "Fortfahren?", vbYesNo) Then Exit Sub
End If
@@ -2924,20 +2935,17 @@ Public Class frmMDM_USTVAntrag
If USTV_ANTRAG.UStVAn_AntragArt = "MÖST" Then
Select Case kunde_erw.kde_Fakturierung_Sprache
Case "EN" : BezAntrag = "Excise duty "
Case "EN", "TR" : BezAntrag = "Excise duty "
Case "RO" : BezAntrag = "Rambursare acciza "
End Select
Else
Select Case kunde_erw.kde_Fakturierung_Sprache
Case "EN" : BezAntrag = "VAT refund "
Case "EN", "TR" : BezAntrag = "VAT refund "
Case "RO" : BezAntrag = "Rambursare TVA "
End Select
End If
@@ -3434,7 +3442,7 @@ Public Class frmMDM_USTVAntrag
End If
End If
End Sub
@@ -3623,6 +3631,74 @@ Public Class frmMDM_USTVAntrag
End Sub
Private Sub pbMail_Click(sender As Object, e As EventArgs) Handles pbMail.Click
If dgvUSTVPositionen.SelectedRows.Count = 0 Then Exit Sub
Try
Dim listOfTextconserven As cTextkonserve_LIST = New cTextkonserve_LIST(7, "", 19)
Dim mailText As String = ""
Dim spracheRechnung As String = "EN" 'Defaultsprache
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim posID As String = ""
Dim KUNDE_ERW As New cKundenErweitert(USTV_ANTRAG.UStVAn_KuNr)
Dim KUNDE As New cKunde(USTV_ANTRAG.UStVAn_KuNr)
Dim AD As New cAdressen(USTV_ANTRAG.UStVAn_KuNr)
If KUNDE_ERW IsNot Nothing AndAlso KUNDE_ERW.kde_Fakturierung_Sprache <> "" Then
If listOfTextconserven.LIST.Any(Function(c) c.txt_sprache = spracheRechnung) Then spracheRechnung = KUNDE_ERW.kde_Fakturierung_Sprache
Dim r As cTextkonserve = listOfTextconserven.LIST.Find(Function(c) c.txt_sprache = spracheRechnung)
If r IsNot Nothing Then
Mail.Subject = r.txt_betreff
Mail.Subject = Mail.Subject.Replace("%KdNr%", USTV_ANTRAG.UStVAn_KuNr)
Mail.Subject = Mail.Subject.Replace("%KdName%", USTV_ANTRAG.UStVAn_Name)
mailText = r.txt_text
End If
End If
Dim path As String = PDFInvoicesPath(posID)
Mail.Attachments.Add(path, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
'NOCH DEAKTIVIERT
If vbYes = MsgBox("Möchten Sie die Positionsliste an die Mail hinzufügen?", vbYesNoCancel) Then
Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr, 0)
If Not spedBuch.ErfassungsNr = "" Then
Dim pathPosList As String = generatePOSListe(spedBuch, posID, False)
If pathPosList <> "" Then Mail.Attachments.Add(pathPosList, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue)
End If
End If
Dim TextHTML = ""
If mailText <> "" Then
TextHTML = "<div style=""font-family:Calibri, Arial"">" & mailText.Replace(ControlChars.Lf, "<br>") & cFakturierung.getSignature(AD.LandKz, 19,,,,,, ) & "</div>"
Mail.HTMLBody = TextHTML
End If
Mail.Display()
Me.Cursor = Cursors.Default
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default
End Try
End Sub
Private Function checkSpedbuchEintrag(ByRef Fehlertext As String)
Dim spedBuch As New cSpeditionsbuch(USTV_ANTRAG.FilialenNr, USTV_ANTRAG.AbfertigungsNr, 0)
@@ -3648,5 +3724,107 @@ Public Class frmMDM_USTVAntrag
End Function
Private Function generatePOSListe(SPEDBUCH As cSpeditionsbuch, pos_id As String, onlyVZ As Boolean) As String
Dim func As New cMDMFunctionsAllgemein()
Dim dtPOSList As New DataTable
Dim prt As String = func.generatePosList(USTV_ANTRAG, pos_id, "", "", False, "prt", dtPOSList, onlyVZ, -1)
If prt <> "" Then
Try
Dim rpt As New rptMWSTListe
rpt.DataSource = dtPOSList
rpt.GroupHeader1.DataField = "Firma_ID" 'Gruppierung
If rpt.DataSource.rows.count > 0 Then
Dim AD As New cAdressen(USTV_ANTRAG.UStVAn_KuNr)
Dim sum As Double = 0
rpt.lblVatNo.Text = USTV_ANTRAG.UStVAn_Steuernummer
rpt.lblCompanyname.Text = AD.Name_1 & " " & AD.Name_2
rpt.lblDat.Text = Now.ToShortDateString
AddHandler rpt.Detail.Format, Sub()
rpt.lblNumber.Text = rpt.Fields.Item("Number").Value()
rpt.lblGoods.Text = rpt.Fields.Item("Name of service").Value()
rpt.lblName.Text = rpt.Fields.Item("Name of supplier").Value()
rpt.lblTax.Text = CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2")
rpt.lblDate.Text = CDate((rpt.Fields.Item("Date of Invoice").Value())).ToShortDateString
rpt.lblInvoiceNo.Text = rpt.Fields.Item("Number of invoice").Value()
sum += CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2")
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
rpt.lblSumme.Text = sum.ToString("N2")
rpt.lblWahrung.Text = USTV_ANTRAG.UStVAn_Währungscode
End Sub
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(SPEDBUCH.AbfertigungsNr, ".pdf", , False)
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
rpt.Run(False)
p.NeverEmbedFonts = ""
p.Export(rpt.Document, tmpPath)
rpt.Dispose()
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV_ANTRAG.UStVAn_KuNr, False)
If DS.uploadDataToDATENSERVER(tmpPath,,, False,,, True) Then Return tmpPath
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End If
Return ""
End Function
Private Function PDFInvoicesPath(ByRef posId As String) As String
Dim list As New List(Of String)
If dgvUSTVPositionen.SelectedRows.Count > 0 Then
Dim nummerierung As Boolean = False
Dim counter = 0
For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index)
posId &= "'" & row.Cells("UStVPo_ID").Value & "'"
counter = counter + 1
If (dgvUSTVPositionen.SelectedRows.Count <> 1 And counter <> dgvUSTVPositionen.SelectedRows.Count) Then posId &= ","
Dim pdf As String = ""
pdf = func.getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1), True, Antrag_LandKz, USTV_ANTRAG, New cFakturierung, False)
If pdf <> "" Then list.Add(pdf)
Next
End If
If list.Count = 0 Then Me.Cursor = Cursors.Default : Return ""
If list.Count > 1 Then
Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("RG_" & Now.ToString("ddMMyyyyHHmmss") & ".pdf", ".pdf", False, False)
If FormularManagerNEU.MergePdfFiles(list, pathPDF) Then
Return pathPDF
End If
Else
Dim PDFFile As String = ""
PDFFile = list(0)
Return PDFFile
End If
End Function
End Class