commit
This commit is contained in:
@@ -1,185 +0,0 @@
|
||||
Imports System.Net.Mail
|
||||
Imports System.IO
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
Module Mail
|
||||
Dim sPath As String = System.AppDomain.CurrentDomain.BaseDirectory
|
||||
Dim last_sent As String = sPath & "\last_sent.txt" '" & Now.ToString("ddMMyyyyHHmmss") & ".csv"
|
||||
|
||||
Sub Main()
|
||||
If Not IO.File.Exists(last_sent) Then
|
||||
IO.File.Create(last_sent)
|
||||
End If
|
||||
|
||||
System.Console.WriteLine("Starte Wölfl-Mail...")
|
||||
If SendEmail() Then
|
||||
Try
|
||||
Dim outFile As IO.StreamWriter = Nothing
|
||||
outFile = My.Computer.FileSystem.OpenTextFileWriter(last_sent, False)
|
||||
outFile.Write(Now.AddDays(-1).ToShortDateString)
|
||||
outFile.Close()
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Function getDateFromFile() As String
|
||||
Try
|
||||
Dim instr = New StreamReader(last_sent)
|
||||
Dim d As Date = CDate(instr.ReadLine).AddDays(1)
|
||||
instr.Close()
|
||||
Return d
|
||||
Catch ex As Exception
|
||||
Return ""
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function SendEmail() As Boolean
|
||||
Dim Msg As New MailMessage
|
||||
Dim myCredentials As New System.Net.NetworkCredential
|
||||
myCredentials.UserName = "al@verag.ag"
|
||||
myCredentials.Password = "Luxandreas#2"
|
||||
Msg.IsBodyHtml = False
|
||||
Dim mySmtpsvr As New SmtpClient()
|
||||
mySmtpsvr.Host = "smtp.1und1.de" 'bei web.de
|
||||
mySmtpsvr.Port = 587 '25
|
||||
mySmtpsvr.UseDefaultCredentials = False
|
||||
mySmtpsvr.Credentials = myCredentials
|
||||
System.Console.WriteLine("E-Mail Daten initialisiert...")
|
||||
Try
|
||||
Dim datum As String = Now.AddDays(-1).ToShortDateString
|
||||
Dim von = getDateFromFile()
|
||||
If von = "" Then von = datum
|
||||
Dim bis = datum
|
||||
System.Console.WriteLine("Erstelle CSV...")
|
||||
Dim csv As String = genCSV(von, bis)
|
||||
System.Console.WriteLine("CSV erstellt...")
|
||||
If csv <> "" And Not csv.StartsWith("ERROR: ") Then
|
||||
System.Console.WriteLine("Sende E-Mail...")
|
||||
Msg.From = New MailAddress("al@verag.ag")
|
||||
Msg.To.Add("al@verag.ag")
|
||||
Msg.Subject = "VERAG: Gutschriften/Rechnungen " & von & "-" & bis
|
||||
Msg.Body = "Sehr geehrte Damen und Herren," & vbNewLine & vbNewLine & "anbei erhalten Sie die Gutschriften/Rechnungen im Zeitraum: " & von & "-" & bis & ". " & vbNewLine & vbNewLine & "Mit frendlichen Grüßen " & vbNewLine & "Ihr VERAG MDM-TEAM" & vbNewLine & vbNewLine & vbNewLine & "Automatisch generiertes E-Mail."
|
||||
|
||||
Dim attachment As Attachment = New Attachment(File.OpenRead(csv), "WOELFL_" & von & "-" & bis & ".csv")
|
||||
Msg.Attachments.Add(attachment)
|
||||
|
||||
mySmtpsvr.Send(Msg)
|
||||
|
||||
System.Console.WriteLine("E-Mail gesendet.")
|
||||
' MsgBox("E-Mail gesendet.", MsgBoxStyle.Information, Title:="Information")
|
||||
System.Console.WriteLine("Erfolgreich!")
|
||||
Return True
|
||||
Else
|
||||
System.Console.WriteLine(csv)
|
||||
Threading.Thread.Sleep(1000)
|
||||
' System.Console.WriteLine("Programm beendet in 5")
|
||||
' Threading.Thread.Sleep(1000)
|
||||
' System.Console.WriteLine("Programm beendet in 4")
|
||||
' Threading.Thread.Sleep(1000)
|
||||
System.Console.WriteLine("Programm beendet in 3")
|
||||
Threading.Thread.Sleep(1000)
|
||||
System.Console.WriteLine("Programm beendet in 2")
|
||||
Threading.Thread.Sleep(1000)
|
||||
System.Console.WriteLine("Programm beendet in 1")
|
||||
Threading.Thread.Sleep(1000)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein Fehler auftritt wird eine MsgBox angezeigt
|
||||
End Try
|
||||
Return False
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Public Function genCSV(von, bis) As String
|
||||
Try
|
||||
|
||||
|
||||
Dim sqlstr = " SELECT CASE [BelegartenNr] WHEN 71 THEN 'GS' " &
|
||||
" WHEN 70 THEN 'RG' " &
|
||||
" END AS [BelegArt] " &
|
||||
" ,[RechnungsNr] " &
|
||||
" ,CONVERT(VARCHAR(10), [RechnungsDatum], 104) as [RechnungsDatum] " &
|
||||
" ,[FilialenNr],[AbfertigungsNr],[UnterNr] " &
|
||||
" ,CONVERT(VARCHAR(10), [Abfertigungsdatum], 104) as [Abfertigungsdatum] " &
|
||||
" ,isnull(Adressen.WölflKundenNr,'') as WölflKundenNr " &
|
||||
" ,CASE WHEN [EmpfängerStraße] IS NULL THEN [EmpfängerName 1] " &
|
||||
" ELSE [EmpfängerName 1] + ' ' +[EmpfängerName 2] " &
|
||||
" END AS [Empfänger] " &
|
||||
" ,CASE WHEN [EmpfängerStraße] IS NULL THEN [EmpfängerName 2] " &
|
||||
" ELSE [EmpfängerStraße] " &
|
||||
" END AS [EmpfängerAdresse 1] " &
|
||||
" ,[EmpfängerOrt] as [EmpfängerAdresse 2] " &
|
||||
" ,[Packstücke und Warenbezeichnung] as Beschreibung,[LeistungsNr],[LeistungsBez],[Steuersatz %] ,[SteuerpflichtigerGesamtbetrag] as [SteuerpflichtigerGesamtbetrag Netto] " &
|
||||
" ,[SteuerfreierGesamtbetrag],[SteuerpflichtigerBetrag] as [SteuerpflichtigerBetrag Netto] ,[SteuerfreierBetrag] " &
|
||||
" FROM [VERAG].[dbo].[Rechnungsausgang] inner join [VERAG].[dbo].[RechnungsausgangPositionen] on Rechnungsausgang.[RK_ID]=RechnungsausgangPositionen.[RK_ID] " &
|
||||
" inner join [VERAG].[dbo].Adressen on Rechnungsausgang.EmpfängerKundenNr=Adressen.AdressenNr " &
|
||||
" WHERE RechnungsKundenNr = 150000 " &
|
||||
" and RechnungsDatum between '" & von & "' and '" & bis & "'"
|
||||
' MsgBox(sqlstr)
|
||||
' Dim SQL As New System.Data.Sql
|
||||
Dim dt As DataTable = loadDgvBySql(sqlstr)
|
||||
|
||||
|
||||
Dim fn As String = sPath & "WOELFL.csv" '" & Now.ToString("ddMMyyyyHHmmss") & ".csv"
|
||||
Dim outFile As IO.StreamWriter = Nothing
|
||||
Try
|
||||
outFile = My.Computer.FileSystem.OpenTextFileWriter(fn, False)
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message)
|
||||
Return "ERROR: Schreibfehler"
|
||||
End Try
|
||||
|
||||
System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count)
|
||||
|
||||
If dt.Rows.Count = 0 Then
|
||||
Return "ERROR: KEINE DATEN"
|
||||
End If
|
||||
|
||||
Dim clmns As String = ""
|
||||
For i = 0 To dt.Columns.Count - 1
|
||||
clmns &= dt.Columns(i).ColumnName.ToString().Replace(";", ",") & ";"
|
||||
Next
|
||||
|
||||
outFile.WriteLine(clmns)
|
||||
For i = 0 To dt.Rows.Count - 1
|
||||
clmns = ""
|
||||
For j = 0 To dt.Columns.Count - 1
|
||||
Dim o As Object = dt.Rows(i).Item(j).ToString
|
||||
clmns &= dt.Rows(i).Item(j).ToString() & ";"
|
||||
Next
|
||||
outFile.WriteLine(clmns)
|
||||
Next
|
||||
outFile.Close()
|
||||
Return fn
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message)
|
||||
Return "ERROR: " & ex.Message
|
||||
End Try
|
||||
End Function
|
||||
Public Function loadDgvBySql(ByVal sql As String) As DataTable
|
||||
Try
|
||||
Dim myTable = New DataTable()
|
||||
Dim conn As New SqlConnection
|
||||
conn.ConnectionString = "Data Source=192.168.0.91\SQLFMZOLL;Initial Catalog=VERAG;Integrated Security=false;User ID=test;Password=BmWr501956;"
|
||||
conn.Open()
|
||||
|
||||
Using cmd As New SqlCommand(sql, conn)
|
||||
Dim dr As SqlDataReader = cmd.ExecuteReader()
|
||||
myTable.Load(dr)
|
||||
dr.Close()
|
||||
End Using
|
||||
conn.Close()
|
||||
|
||||
Return myTable
|
||||
Catch ex As Exception
|
||||
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message)
|
||||
End Try
|
||||
|
||||
Return Nothing
|
||||
End Function
|
||||
|
||||
End Module
|
||||
Reference in New Issue
Block a user