MDM Datenverarbeitung, automailfakt.

This commit is contained in:
2025-04-18 15:37:01 +02:00
parent 9df391eebe
commit 6d48a78f84
7 changed files with 88 additions and 69 deletions

View File

@@ -1,7 +1,5 @@

Imports GrapeCity.DataVisualization.TypeScript
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Outlook
Imports VERAG_PROG_ALLGEMEIN
Public Class cAutomailversand
@@ -117,7 +115,7 @@ Public Class cAutomailversand
If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoCC = "") Then
If Not (MailTo = "" AndAlso MailtoCC = "" AndAlso MailtoBCC = "") Then
Dim Mailsubject As String = ""
Dim HTMLMail As String = ""
@@ -128,9 +126,11 @@ Public Class cAutomailversand
If doRechnung(row.Item("RechnungsKundenNr"), FirmaID, SammelrechungArt, Rechnungsdatum, RechnungsNr, DruckDatumZeit, MDMKopiedrucken, listPDFs) Then
loadAndSetAnhaenge(SR_DT, ATTACHMENTS, listPDFs)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then Mailsubject &= " TEST"
If mailoeffnen Then
Dim Mail = createMail(Mailsubject, HTMLMail, ATTACHMENTS, MailTo, MailtoCC, MailtoBCC, FirmaID)
If setLog(row.Item("RechnungsKundenNr"),,,,,,, Mail) Then
If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum,,,,,,, Mail) Then
Mail.Display()
End If
@@ -138,27 +138,20 @@ Public Class cAutomailversand
Dim TextHTML = ""
TextHTML &= HTMLMail
TextHTML &= "<br>"
TextHTML &= "<br>"
TextHTML &= "Mit freundlichen Grüßen<br>"
TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
TextHTML &= "<br>"
TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True)
TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True)
HTMLMail = "<div style=""font-family:Calibri, Arial"">" & TextHTML & "</div>"
If setLog(row.Item("RechnungsKundenNr"), ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC) Then
If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC) Then
End If
End If
End If
End If
End If
Next
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
@@ -279,9 +272,11 @@ Public Class cAutomailversand
End Sub
Private Function setLog(kdNr As Integer, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean
Private Function setLog(SR_DT As DataTable, row As DataRow, FirmaID As Integer, Sammelrechnungsart As Integer, Rechnungsdatum As Date, Optional ATTACHMENTS As List(Of cFakt_MailATTach) = Nothing, Optional Mailsubject As String = "", Optional Mailhtml As String = "", Optional MailTo As String = "", Optional MailtoCC As String = "", Optional MailtoBCC As String = "", Optional Mail As Microsoft.Office.Interop.Outlook.MailItem = Nothing) As Boolean
Dim mailcreated As Boolean = False
Dim sql As New VERAG_PROG_ALLGEMEIN.SQL
Dim EMails As String = ""
Dim EMails_CC As String = ""
@@ -307,8 +302,20 @@ Public Class cAutomailversand
End If
Dim AbfertigungsNr As Integer
Dim FilialenNr As Integer
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.AVISO_OUT_BELEGMAIL, "SAMMELRECHNUNG-MDM",,, kdNr)
If SR_DT.Rows.Count > 0 Then
For Each r As DataRow In SR_DT.Rows
AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0)
FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0)
Next
End If
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "SAMMELRECHNUNG-MDM",,, row.Item("RechnungsKundenNr"), , , FilialenNr, AbfertigungsNr)
API.api_EMail = EMails
API.api_EMailCC = EMails_CC
@@ -334,11 +341,16 @@ Public Class cAutomailversand
mailcreated = True
Else
API.UPDTAE_ERR()
sql.doSQL("update Rechnungsausgang set Status = 2 where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "'
And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4", "FMZOLL")
Return mailcreated
End If
End If
Return mailcreated

View File

@@ -2466,14 +2466,16 @@ Public Class cFakturierung
Return getSignature(RECHNUNG.RechnungsLandKz, RECHNUNG.Firma_ID)
End Function
Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False) As String
Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False, Optional firmenSignature = False) As String
getSignature = ""
firma = getFirmaNr(firma)
Dim imgsrc = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\").Replace("\", "/")
Dim emailindividuell = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email
Dim emailindividuell As String = ""
If Not firmenSignature Then emailindividuell = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email
If additionalLine <> "" Then additionalLine = "<div style=""font-size:12px"">" & additionalLine & "</div>"
@@ -2524,7 +2526,7 @@ Public Class cFakturierung
Case 19 'VERAG360
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG_360.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG 360 GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 100 <br><b>T</b> +43 7711 2777-0 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, emailindividuell, "mmd@verag.ag") & " | www.verag.ag | FN 544732b</div>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 100 <br><b>T</b> +43 7711 2777-0 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, If(firmenSignature, "mmdabrechnung@verag.ag", emailindividuell), "mmd@verag.ag") & " | www.verag.ag | FN 544732b</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 26 'VERAG-UNISPED
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG-UNISPED-Logo.jpg""/>"

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.3.8.8")>
<Assembly: AssemblyFileVersion("1.3.8.8")>
<Assembly: AssemblyVersion("1.3.8.9")>
<Assembly: AssemblyFileVersion("1.3.8.9")>

View File

@@ -889,10 +889,6 @@
<Compile Include="mdm\Besuchsberichte\usrCntlBesuchsberichte.vb">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="mdm\frmDatumsabfrage.Designer.vb">
<DependentUpon>frmDatumsabfrage.vb</DependentUpon>
</Compile>
<Compile Include="mdm\frmDatumsabfrage.vb" />
<Compile Include="mdm\frmMDMLieferantenrechnungen.Designer.vb">
<DependentUpon>frmMDMLieferantenrechnungen.vb</DependentUpon>
</Compile>
@@ -3419,9 +3415,6 @@
<EmbeddedResource Include="mdm\Besuchsberichte\usrCntlBesuchsberichte.resx">
<DependentUpon>usrCntlBesuchsberichte.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="mdm\frmDatumsabfrage.resx">
<DependentUpon>frmDatumsabfrage.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="mdm\frmMDMLieferantenrechnungen.resx">
<DependentUpon>frmMDMLieferantenrechnungen.vb</DependentUpon>
</EmbeddedResource>

View File

@@ -77,7 +77,7 @@ Public Class frmLogin
ElseIf PARAM = "SAMMELRECHNUNG_AUTOSENT" Then
Dim SRT_ART As Integer = 6
Dim REDat As Date
Dim REDat As New Date(2025, 3, 15)
Dim FirmaID As Integer = 19
If (parameter.Count - 1) >= 4 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
@@ -91,10 +91,6 @@ Public Class frmLogin
Dim func As New cAutomailversand
func.sendMailSammelrechnung(REDat, SRT_ART, FirmaID)
'Dim f As New c()
'f.sendMailSammelrechnung(,,)
End If

View File

@@ -1,5 +1,6 @@
Imports System.Data.OleDb
Imports System.IO
Imports com.sun.xml.internal.ws.api.message
Imports itextsharp.text.pdf
Imports MDM_Worker
Imports VERAG_PROG_ALLGEMEIN
@@ -1127,7 +1128,7 @@ Public Class frmMDMDatenverarbetiung
INNER JOIN (((Adressen INNER JOIN tblUTAImportNew ON Adressen.UTAKundenNr = tblUTAImportNew.Kundennummer)
INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr)
INNER JOIN tblUTALeistungen ON (tblUTALeistungen.VERAG_LeistungsNr = Offertenpositionen.LeistungsNr) AND (tblUTALeistungen.VERAG_OffertenNr = Offertenpositionen.OffertenNr) AND (tblUTAImportNew.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImportNew.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart
where isnull(charged,0) = 0 and cast([Rechnungsdatum] as date) = '" & DateTimePicker2.Text & "' and Adressen.AdressenNr not in(756150, 711104) " & IIf(test, " and KundenNr = 450018 ", "") &
where isnull(charged,0) = 0 and cast([Rechnungsdatum] as date) = '" & DateTimePicker2.Text & "' and Adressen.AdressenNr not in(756150, 711104) " & IIf(test, " and KundenNr = 402352 or KundenNr = 402421 ", "") &
" group by Kundennummer, KundenNr, UTAExportCSV,Rechnungsdruck"
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param(SQLStr, "FMZOLL", 1200)
@@ -1203,9 +1204,24 @@ Public Class frmMDMDatenverarbetiung
If Not gen_RECHNUNG_BySPEDBUCH(uta("Customer Nr"), SPEDBUCH, "UTA",,,, RECHNUNG) Then verarbOK = False
Dim pathFile = genUTAAttachmentByKdNr(uta("Customer Nr"), uta("Customer ID"), dir, datPloseAnhang.Value)
If Not AddAttachementToRE(pathFile, uta("Customer Nr"), RECHNUNG, "UTA") Then verarbOK = False
Dim customerNrwithCSV As Integer = distinctDT_CSV.AsEnumerable().Where(Function(res) res.Field(Of Integer)("Customer ID") = uta("Customer ID")).Select(Function(res) res.Field(Of Integer)("Customer Nr")).FirstOrDefault()
If customerNrwithCSV > 0 Then
For Each f In Directory.GetFiles(dir)
If f.Contains(customerNrwithCSV & "_Maut_UTA.csv") Then
Dim FileCSV = New FileInfo(f)
If Not AddAttachementToRE(FileCSV.FullName, uta("Customer Nr"), RECHNUNG, "UTA") Then
verarbOK = False
Else
Exit For
End If
End If
Next
End If
If verarbOK Then
'UPDATE Fakturiert
SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL")
@@ -1220,7 +1236,6 @@ Public Class frmMDMDatenverarbetiung
End If
cnt += 1
Next
If test Then Return True
' ANHÄNGE WERDEN NCIHT BENÖTIGT::

View File

@@ -26,6 +26,7 @@ Public Enum cAPI_ART
AVISO_IN_MSE = 80
SDL_OUT_FA = 81
SDL_OUT_SAMMELRECHNUNG = 82
End Enum