Neue Aufgabe, Send Mail Alle Imex Kunden ohne Abfertigung in den letzten 2 Jahren

This commit is contained in:
2024-10-08 09:21:35 +02:00
parent d820af469d
commit 0cdb2671d3

View File

@@ -71,7 +71,7 @@ Module Mail
'PARAM = "THYSSENKRUPP_AUSWERTUNG"
'PARAM = "JAHRESABRECHNUNG AG-ZS"
'PARAM = "AMBAR_Datev_Mailversand_to_HK"
'PARAM = "Imex_Kunden_keine_Abfertigung"
'------------------------------------------------------------------------------------
' PARAM = "NCTSLIST_TOBB"
@@ -283,7 +283,15 @@ Module Mail
System.Console.WriteLine("Vorgang gestartet...")
SendEmail_AMBARTOHKT()
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
Case "Imex_Kunden_keine_Abfertigung"
Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year)
Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1)
System.Console.WriteLine("OPTION erkannt: Imex-Kunden ohne Abfertigung Erstellt eine monatliche Auswertung der Imex-Kunden, die in den letzten 2 Jahren keine Abfertigung hatten")
System.Console.WriteLine("Auswertung Details gestartet...")
If SendEmail_ImexAbfertigung("cf@verag.ag", von, bis) Then
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case Else
System.Console.WriteLine("OPTION nicht erkannt!")
End Select
@@ -587,6 +595,41 @@ Module Mail
End Try
End Function
Private Function SendEmail_ImexAbfertigung(Mailto As String, von As Date, bis As Date) As Boolean
Try
Dim excel As String = genImex_Abfertigung(von, bis)
System.Console.WriteLine("EXCEL erstellt...")
If excel <> "" And Not excel.StartsWith("ERROR: ") Then
System.Console.WriteLine("Sende E-Mail...")
Dim Subject = "Imex-Kunden ohne Abfertigung "
Dim Body = "Anbei befinden sich die Auswertung von " & von.ToShortDateString & " bis " & bis.ToShortDateString & "." &
"<br><br>Erstellt am: " & Now.ToShortDateString & ", um " & Now.ToShortTimeString &
"<br><br><br>Automatisch generiertes E-Mail. Bitte Antworten Sie nicht an diese E-Mail." &
"<br><br>VERAG SPEDITION AG"
Dim anhenge As New List(Of String)
anhenge.Add(excel)
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(Mailto, Subject, Body,,, False,, "m.ilhan@verag.ag", anhenge) Then
System.Console.WriteLine("E-Mail gesendet.")
System.Console.WriteLine("Erfolgreich!")
Else
System.Console.WriteLine("ERROR BEIM SENDEN DER MAIL!")
End If
Return True
Else
System.Console.WriteLine(excel)
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL)
System.Console.WriteLine(ex.Message & ex.StackTrace)
Return False
End Try
End Function
Private Function SendEmail_Jahresauwsertung_AG_ZF(Mailto As String, abfertigungsart As Integer, Filialnr As String, von As Date, bis As Date) As Boolean
Try
Dim excel As String = genEXCEL_ANNA(Filialnr, abfertigungsart, von, bis)
@@ -1554,6 +1597,60 @@ Module Mail
End Function
Public Function genImex_Abfertigung(von As Date, bis As Date) As String
Try
Dim sqlstr As String = ""
sqlstr &= "SELECT * "
sqlstr &= "FROM ( "
sqlstr &= " SELECT [KundenNr], [FilialenNr] "
sqlstr &= " FROM [VERAG].[dbo].[KundenFilialen] "
sqlstr &= " WHERE [FilialenNr] = 5501 "
sqlstr &= ") AS kf "
sqlstr &= "LEFT JOIN ( "
sqlstr &= " SELECT EndempfängerKundenNr, AbsenderKundenNr, EmpfängerKundenNr, [FilialenNr], [FrachtführerKundenNr], AvisiererKundenNr, VermittlerKundenNr "
sqlstr &= " FROM [VERAG].[dbo].[Speditionsbuch] "
sqlstr &= " WHERE [FilialenNr] = '5501' "
sqlstr &= " AND [Abfertigungsdatum] > DATEADD(YEAR, -2, GETDATE()) "
sqlstr &= ") AS sped ON kf.[FilialenNr] = sped.[FilialenNr] "
sqlstr &= "AND ( "
sqlstr &= " sped.EndempfängerKundenNr = kf.[KundenNr] OR "
sqlstr &= " sped.AbsenderKundenNr = kf.[KundenNr] OR "
sqlstr &= " sped.EmpfängerKundenNr = kf.[KundenNr] OR "
sqlstr &= " sped.AvisiererKundenNr = kf.[KundenNr] OR "
sqlstr &= " sped.[FrachtführerKundenNr] = kf.[KundenNr] OR "
sqlstr &= " sped.VermittlerKundenNr = kf.[KundenNr] "
sqlstr &= ") "
sqlstr &= "LEFT JOIN ( "
sqlstr &= " SELECT AdressenNr, Auswahl "
sqlstr &= " FROM [VERAG].[dbo].[Adressen] "
sqlstr &= " WHERE Auswahl = 'A' "
sqlstr &= ") AS Ad ON Ad.AdressenNr = kf.[KundenNr] "
sqlstr &= "LEFT JOIN ( "
sqlstr &= " SELECT KundenNr, [OffertenNr] "
sqlstr &= " FROM [VERAG].[dbo].[Offerten] "
sqlstr &= " WHERE [OffertenNr] = 1 "
sqlstr &= ") AS o ON kf.KundenNr = o.KundenNr "
sqlstr &= "WHERE sped.[FilialenNr] IS NULL "
sqlstr &= "AND Ad.Auswahl = 'A' "
sqlstr &= "AND OffertenNr = 1 "
sqlstr &= "AND LEFT(kf.KundenNr, 1) = '1'; "
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr, 300)
Dim filepath = VERAG_PROG_ALLGEMEIN.cProgramFunctions.genExcelFromDT_NEW(dt,,,,, False, "Report Data_ImexAbfertigung" & "_" & von.ToShortDateString & "-" & bis.ToShortDateString)
If filepath = "" Then Return "ERROR 01: Fehler beim Erzeugen des XLS."
Return filepath
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Public Function genEXCEL_ANNA(FilialenNr As String, abfertigungsart As Integer, von As Date, bis As Date) As String
Try
@@ -2046,7 +2143,7 @@ Module Mail
Return "ERROR: " & ex.Message
End Try
End Function
Public Function loadDgvBySqlFMZOLL(ByVal sql As String) As DataTable
Public Function loadDgvBySqlFMZOLL(ByVal sql As String, Optional CmdChangeTimeout As Integer = 0) As DataTable
Try
Dim myTable = New DataTable()
Dim conn As SqlConnection = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionFMZOLL
@@ -2054,6 +2151,9 @@ Module Mail
'conn.Open()
Using cmd As New SqlCommand(sql, conn)
If (CmdChangeTimeout > 0) Then
cmd.CommandTimeout = CmdChangeTimeout
End If
Dim dr As SqlDataReader = cmd.ExecuteReader()
myTable.Load(dr)
dr.Close()