mailsender
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Runtime.InteropServices
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.IO
|
||||
Imports System.Net
|
||||
Imports System.Net.Mail
|
||||
@@ -50,7 +51,7 @@ Module Mail
|
||||
'Exit Sub
|
||||
|
||||
|
||||
' PARAM = "TETRAPAK_OKT"
|
||||
' PARAM = "MDM_IT_Verguetung"
|
||||
'PARAM = "JAHRESABRECHNUNG AG-ZS"
|
||||
' PARAM = "UID_OPS_SYSKA_ABGLEICH"
|
||||
|
||||
@@ -408,6 +409,17 @@ Module Mail
|
||||
If MDM_Zollbuero_Verguetung(Jahr) Then 'für Andreas Details
|
||||
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
|
||||
End If
|
||||
Case "MDM_IT_Verguetung"
|
||||
System.Console.WriteLine("OPTION erkannt: MDM_IT_Verguetung _ Erstellt die Auswertung der durchgeführten MDM Transaktionen.")
|
||||
System.Console.WriteLine("Auswertung gestartet...")
|
||||
Dim Jahr = -1
|
||||
If (parameter.Count - 1) >= 2 Then
|
||||
Jahr = parameter(2)
|
||||
System.Console.WriteLine("Parameter 'Jahr' erkannt: " & Jahr)
|
||||
End If
|
||||
If MDM_IT_Verguetung(Jahr) Then 'für Andreas Details
|
||||
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
|
||||
End If
|
||||
Case "Kassenbuch_Zufall"
|
||||
System.Console.WriteLine("OPTION erkannt: Kassenbuch_Zufall - Zufallsziehung zur Kassenkontrolle.")
|
||||
System.Console.WriteLine("Vorgang gestartet...")
|
||||
@@ -1359,6 +1371,77 @@ Module Mail
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Private Function MDM_IT_Verguetung(Jahr) As Boolean
|
||||
Dim Msg As New MailMessage
|
||||
Dim myCredentials As New System.Net.NetworkCredential
|
||||
myCredentials.UserName = "al@verag.ag"
|
||||
myCredentials.Password = "verag#2"
|
||||
|
||||
Msg.IsBodyHtml = False
|
||||
Dim mySmtpsvr As New SmtpClient()
|
||||
mySmtpsvr.Host = "owa.verag.ag"
|
||||
mySmtpsvr.Port = 587 '25 '587 '25
|
||||
mySmtpsvr.UseDefaultCredentials = False
|
||||
mySmtpsvr.Credentials = myCredentials
|
||||
System.Console.WriteLine("E-Mail Daten initialisiert...")
|
||||
Try
|
||||
Dim datum As String = Now.AddDays(-1).ToShortDateString
|
||||
System.Console.WriteLine("Erstelle EXCEL...")
|
||||
Dim excel As String = genEXCEL_MDM_IT(Jahr)
|
||||
System.Console.WriteLine("EXCEL erstellt...")
|
||||
If excel <> "" And Not excel.StartsWith("ERROR: ") Then
|
||||
|
||||
System.Console.WriteLine("Sende E-Mail...")
|
||||
Msg.From = New MailAddress("al@verag.ag")
|
||||
|
||||
|
||||
' Msg.To.Add("Viktoria.Leirich@imex-group.at")
|
||||
Msg.To.Add("as@verag.ag")
|
||||
Msg.To.Add("sales@verag.ag")
|
||||
'' Msg.To.Add("jl@verag.ag")
|
||||
'' Msg.Bcc.Add("al@verag.ag")
|
||||
Msg.CC.Add("jl@verag.ag")
|
||||
Msg.CC.Add("al@verag.ag")
|
||||
|
||||
|
||||
Msg.Subject = "Auswertung MDM-IT Vergütung"
|
||||
Msg.Body = "Anbei befindet sich die Auswertung der MDM-IT Vergütung" &
|
||||
"." & vbNewLine & vbNewLine & "Erstellt am: " & Now.ToShortDateString & ", um " & Now.ToShortTimeString &
|
||||
vbNewLine & vbNewLine & vbNewLine & "Automatisch generiertes E-Mail."
|
||||
|
||||
Dim attachment1 As Attachment = New Attachment(File.OpenRead(excel), "Auswertung.xlsx")
|
||||
Msg.Attachments.Add(attachment1)
|
||||
|
||||
mySmtpsvr.Send(Msg)
|
||||
|
||||
System.Console.WriteLine("E-Mail gesendet.")
|
||||
System.Console.WriteLine("Erfolgreich!")
|
||||
Return True
|
||||
Else
|
||||
System.Console.WriteLine(excel)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Try
|
||||
mySmtpsvr.Port = 25
|
||||
mySmtpsvr.Send(Msg)
|
||||
|
||||
Catch ex2 As Exception
|
||||
Try
|
||||
mySmtpsvr.Host = "192.168.0.107"
|
||||
mySmtpsvr.Port = 25
|
||||
mySmtpsvr.Send(Msg)
|
||||
|
||||
Catch ex3 As Exception
|
||||
MsgBox(ex3.Message & ex3.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
End Try
|
||||
|
||||
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
Private Function SendEmail_OP5000(firma As String, LandEinschr As String, Mail_to() As String, Mail_cc() As String, Mail_bcc() As String, Mail_Subject As String) As Boolean
|
||||
' send()
|
||||
@@ -3065,6 +3148,154 @@ Module Mail
|
||||
|
||||
End Function
|
||||
|
||||
Public Function genEXCEL_MDM_IT(ByVal Jahr As Integer) As String
|
||||
Dim exclApp As Object = Nothing
|
||||
Dim Datei As Object = Nothing
|
||||
Dim Blatt As Object = Nothing
|
||||
|
||||
Try
|
||||
Dim yearVal As Integer = If(Jahr > 0, Jahr, Now.AddMonths(-1).Year)
|
||||
|
||||
exclApp = CreateObject("Excel.Application")
|
||||
With exclApp
|
||||
.Visible = False
|
||||
.DisplayAlerts = False
|
||||
|
||||
Dim filepath As String = sPath & "MDM_IT_Verguetung.xlsx"
|
||||
|
||||
'Template aus Resources schreiben
|
||||
Try
|
||||
My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.MDM_it_Verguetung, False)
|
||||
Catch ex As Exception
|
||||
Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace
|
||||
End Try
|
||||
|
||||
Datei = .Workbooks.Open(filepath)
|
||||
Blatt = Datei.Worksheets("CS") ' ggf. anpassen
|
||||
|
||||
' Jahr eintragen (wie bisher)
|
||||
Blatt.Range("G1").Value = yearVal
|
||||
|
||||
' --- Zielbereich leeren (nur Wertebereich, nicht Monatsnamen/Überschriften) ---
|
||||
' Monate sind i.d.R. Zeile 7-18 (12 Monate). Spalten B-F
|
||||
Blatt.Range("B8:F19").ClearContents()
|
||||
|
||||
' --- SQL 1x laden: alle Monate / Datenquellen ---
|
||||
Dim sqlstr As String =
|
||||
"SELECT * FROM (
|
||||
SELECT
|
||||
COUNT(*) AS Anzahl,
|
||||
'IDS' AS Datenquelle,
|
||||
MONTH(t.YearMonthDay) AS [Month],
|
||||
YEAR(t.YearMonthDay) AS [Year]
|
||||
FROM tblIDSTransactionsNew t
|
||||
INNER JOIN tbl_IDS_Länder l ON t.OutletCountryCode = l.OutletCountryCode
|
||||
INNER JOIN tbl_IDS_Produkte p ON t.ProductTypeCode = p.ProductTypeCode
|
||||
WHERE YEAR(t.YearMonthDay) = " & yearVal & "
|
||||
GROUP BY MONTH(t.YearMonthDay), YEAR(t.YearMonthDay)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
COUNT(*) AS Anzahl,
|
||||
Datenquelle,
|
||||
MONTH([Transaction date]) AS [Month],
|
||||
YEAR([Transaction date]) AS [Year]
|
||||
FROM [VERAG].[dbo].[tblMautbericht]
|
||||
WHERE YEAR([Transaction date]) = " & yearVal & "
|
||||
GROUP BY Datenquelle, MONTH([Transaction date]), YEAR([Transaction date])
|
||||
) AS temp
|
||||
ORDER BY Datenquelle, temp.[Year], temp.[Month];"
|
||||
|
||||
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
|
||||
|
||||
' --- Map (Datenquelle, Monat) -> Anzahl ---
|
||||
Dim map As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
|
||||
For Each r As DataRow In dt.Rows
|
||||
Dim src As String = If(r("Datenquelle") Is DBNull.Value, "", CStr(r("Datenquelle")).Trim())
|
||||
|
||||
' Sonderzuordnung
|
||||
If src.Equals("AT", StringComparison.OrdinalIgnoreCase) Then
|
||||
src = "ASFINAG"
|
||||
End If
|
||||
|
||||
Dim m As Integer = If(r("Month") Is DBNull.Value, 0, Convert.ToInt32(r("Month")))
|
||||
Dim cnt As Integer = If(r("Anzahl") Is DBNull.Value, 0, Convert.ToInt32(r("Anzahl")))
|
||||
|
||||
If m >= 1 AndAlso m <= 12 AndAlso src <> "" Then
|
||||
Dim key As String = src & "|" & m.ToString()
|
||||
' Falls doppelte Zeilen vorkommen, addieren wir (sicherer)
|
||||
If map.ContainsKey(key) Then
|
||||
map(key) += cnt
|
||||
Else
|
||||
map(key) = cnt
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
' --- Spaltenmapping Datenquelle -> Excel-Spalte ---
|
||||
Dim col As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase) From {
|
||||
{"IDS", "B"},
|
||||
{"PLOSE", "C"},
|
||||
{"ASFINAG", "D"},
|
||||
{"MSE", "E"},
|
||||
{"UTA", "F"}
|
||||
}
|
||||
|
||||
' --- Schreiben: Monate 1..12 in Zeilen 7..18 ---
|
||||
For monthIdx As Integer = 1 To 12
|
||||
Dim rowExcel As Integer = 7 + monthIdx ' 7..18
|
||||
|
||||
For Each kvp In col
|
||||
Dim src As String = kvp.Key
|
||||
Dim colLetter As String = kvp.Value
|
||||
Dim key As String = src & "|" & monthIdx.ToString()
|
||||
|
||||
Dim value As Integer = 0
|
||||
If map.ContainsKey(key) Then value = map(key)
|
||||
|
||||
Blatt.Range(colLetter & rowExcel.ToString()).Value = value
|
||||
Next
|
||||
Next
|
||||
|
||||
Datei.Save()
|
||||
Try : Datei.Close(True) : Catch : End Try
|
||||
Try : .Quit() : Catch : End Try
|
||||
End With
|
||||
|
||||
Return sPath & "MDM_IT_Verguetung.xlsx"
|
||||
|
||||
Catch ex As Exception
|
||||
Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace
|
||||
|
||||
Finally
|
||||
' COM sauber freigeben (verhindert EXCEL.EXE-Leichen)
|
||||
Try
|
||||
If Blatt IsNot Nothing Then Marshal.FinalReleaseComObject(Blatt)
|
||||
Catch
|
||||
End Try
|
||||
Try
|
||||
If Datei IsNot Nothing Then Marshal.FinalReleaseComObject(Datei)
|
||||
Catch
|
||||
End Try
|
||||
Try
|
||||
If exclApp IsNot Nothing Then Marshal.FinalReleaseComObject(exclApp)
|
||||
Catch
|
||||
End Try
|
||||
|
||||
Blatt = Nothing
|
||||
Datei = Nothing
|
||||
exclApp = Nothing
|
||||
|
||||
GC.Collect()
|
||||
GC.WaitForPendingFinalizers()
|
||||
GC.Collect()
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Function genEXCEL_DEPOT(KundenNr) As String
|
||||
|
||||
@@ -101,9 +101,9 @@
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -119,12 +119,8 @@
|
||||
<None Include="App.config" />
|
||||
<None Include="Resources\Auswertung_divers.xlsx" />
|
||||
<None Include="Resources\Detailauswertung_divers.xlsx" />
|
||||
<None Include="Resources\MDM_AI_Verguetung.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="Resources\MDM_IT_Verguetung.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="Resources\MDM_AI_Verguetung.xlsx" />
|
||||
<None Include="Resources\MDM_IT_Verguetung.xlsx" />
|
||||
<None Include="Resources\MDM_ZOLL_Verguetung.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
||||
20
MailSender/My Project/Resources.Designer.vb
generated
20
MailSender/My Project/Resources.Designer.vb
generated
@@ -100,6 +100,26 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property MDM_AI_Verguetung() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("MDM_AI_Verguetung", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property MDM_IT_Verguetung() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("MDM_IT_Verguetung", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
|
||||
@@ -130,6 +130,12 @@
|
||||
<data name="Detailauswertung_divers" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Detailauswertung_divers.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="MDM_AI_Verguetung" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MDM_AI_Verguetung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="MDM_IT_Verguetung" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MDM_IT_Verguetung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="MDM_ZOLL_Verguetung" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\resources\mdm_zoll_verguetung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
|
||||
Binary file not shown.
@@ -980,6 +980,8 @@
|
||||
<None Include="Resources\DienstplanATILLA.xlsx">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="Resources\MDM_AI_Verguetung.xlsx" />
|
||||
<None Include="Resources\MDM_IT_Verguetung.xlsx" />
|
||||
<None Include="rptIntAusbAG.rpx">
|
||||
<SubType>Component</SubType>
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
|
||||
20
UID/My Project/Resources.Designer.vb
generated
20
UID/My Project/Resources.Designer.vb
generated
@@ -424,6 +424,26 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property MDM_AI_Verguetung() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("MDM_AI_Verguetung", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property MDM_IT_Verguetung() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("MDM_IT_Verguetung", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
||||
'''</summary>
|
||||
|
||||
@@ -316,4 +316,10 @@
|
||||
<data name="sdl_ico1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\sdl_ico2.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MDM_AI_Verguetung" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MDM_AI_Verguetung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="MDM_IT_Verguetung" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\MDM_IT_Verguetung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
||||
BIN
UID/Resources/MDM_AI_Verguetung.xlsx
Normal file
BIN
UID/Resources/MDM_AI_Verguetung.xlsx
Normal file
Binary file not shown.
BIN
UID/Resources/MDM_IT_Verguetung.xlsx
Normal file
BIN
UID/Resources/MDM_IT_Verguetung.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user