diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index a3fce594..4881a779 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -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 &= "
" - TextHTML &= "
" - TextHTML &= "Mit freundlichen Grüßen
" - TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
" - TextHTML &= "
" - TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True) + TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True,,,,, True) HTMLMail = "
" & TextHTML & "
" - 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 - - + 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 diff --git a/SDL/Fakturierung/cFakturierung.vb b/SDL/Fakturierung/cFakturierung.vb index 1580d48a..5aec1e4e 100644 --- a/SDL/Fakturierung/cFakturierung.vb +++ b/SDL/Fakturierung/cFakturierung.vb @@ -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 = "
" & additionalLine & "
" @@ -2524,7 +2526,7 @@ Public Class cFakturierung Case 19 'VERAG360 getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG 360 GmbH
" - getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "mmd@verag.ag") & " | www.verag.ag | FN 544732b
" + getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, If(firmenSignature, "mmdabrechnung@verag.ag", emailindividuell), "mmd@verag.ag") & " | www.verag.ag | FN 544732b
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 26 'VERAG-UNISPED getSignature &= "" diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index a7884f1c..64e75b4a 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/SDL.vbproj b/SDL/SDL.vbproj index 30b8a79d..dc93f763 100644 --- a/SDL/SDL.vbproj +++ b/SDL/SDL.vbproj @@ -889,10 +889,6 @@ UserControl - - frmDatumsabfrage.vb - - frmMDMLieferantenrechnungen.vb @@ -3419,9 +3415,6 @@ usrCntlBesuchsberichte.vb - - frmDatumsabfrage.vb - frmMDMLieferantenrechnungen.vb diff --git a/SDL/frmLogin.vb b/SDL/frmLogin.vb index a22df40e..e9d21c22 100644 --- a/SDL/frmLogin.vb +++ b/SDL/frmLogin.vb @@ -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 diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index c516ac8b..429aa15d 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -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,44 +1204,58 @@ 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") - End If - If True Then 'cnt Mod 10 = 0 Then - txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count - Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 - pbPloseAnh_Proz.Value = proz - lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" - 'GroupBox12.Refresh() - My.Application.DoEvents() - End If - cnt += 1 - Next + 'UPDATE Fakturiert + SQL.doSQL("UPDATE [tblUTAImportNew] set chargedDatetime=GETDATE() where chargedDatetime is null and [Rechnungsdatum] = '" & DateTimePicker2.Text & "' and Kundennummer = " & uta("Customer ID"), "FMZOLL") + End If + If True Then 'cnt Mod 10 = 0 Then + txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count + Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 + pbPloseAnh_Proz.Value = proz + lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" + 'GroupBox12.Refresh() + My.Application.DoEvents() + End If + cnt += 1 + Next + If test Then Return True - If test Then Return True - - ' ANHÄNGE WERDEN NCIHT BENÖTIGT:: - 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren - Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) - If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) - For Each f In Directory.GetFiles(dirAnhang) - File.Delete(f) - Next - End If - If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) - For Each f In Directory.GetFiles(dir) - File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) - Next - pbPloseAnh_Proz.Value = 100 - txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count - lblPloseAnh_Proz.Text = "100.00 %" - Return True - End If - Return False + ' ANHÄNGE WERDEN NCIHT BENÖTIGT:: + 'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren + Dim dirAnhang = IIf(test, utaParam.ANLAGEN & "TEST\", utaParam.ANLAGEN) + If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True) + For Each f In Directory.GetFiles(dirAnhang) + File.Delete(f) + Next + End If + If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang) + For Each f In Directory.GetFiles(dir) + File.Copy(f, dirAnhang & (New FileInfo(f)).Name, True) + Next + pbPloseAnh_Proz.Value = 100 + txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count + lblPloseAnh_Proz.Text = "100.00 %" + Return True + End If + Return False End Function Function genRGAtt_MSE(mseParam As cMSEAPI) As Boolean Dim top = "" diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb b/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb index e7c37d0c..c02aa1fb 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cAPI.vb @@ -26,6 +26,7 @@ Public Enum cAPI_ART AVISO_IN_MSE = 80 SDL_OUT_FA = 81 + SDL_OUT_SAMMELRECHNUNG = 82 End Enum