Files
ADMIN/MailSender/MAILSender.vb
2019-09-10 13:46:18 +02:00

1346 lines
56 KiB
VB.net

Imports System.Net.Mail
Imports System.IO
Imports System.Data.SqlClient
Imports ClosedXML.Excel
Imports DocumentFormat
Imports System.Net
Module Mail
Dim sPath As String = System.AppDomain.CurrentDomain.BaseDirectory
Dim options As String = sPath & "OPTIONS.txt" '" & Now.ToString("ddMMyyyyHHmmss") & ".csv"
Dim last_sent As String = sPath & "last_sent.txt" '" & Now.ToString("ddMMyyyyHHmmss") & ".csv"
Dim betragOpTr = 1000
Sub Main()
Dim PARAM = ""
Dim parameter() As String = Environment.GetCommandLineArgs().ToArray
If (parameter.Count - 1) >= 1 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
PARAM = parameter(1)
'For i = 1 To parameter.Count - 1
' 'If parameter(i) = "HISTORY" Then PARAM = True
' Next
End If
System.Console.WriteLine("MailSender gestartet ...")
' If IO.File.Exists(options) Then
'If Not IO.File.Exists(last_sent) Then
'IO.File.Create(last_sent)
' End If
' Dim o As String = getOption()
If PARAM = "" Then
System.Console.WriteLine("OPTION nicht erkannt!")
Exit Sub
End If
Dim cnt = 0
' MsgBox(DoesProcessExists("MailSender"))
While DoesProcessExists("MailSender") Or cnt > 20
System.Console.WriteLine("MailSender wurde nicht beendet, warten ...")
Threading.Thread.Sleep(1000)
cnt += 1
End While
If cnt >= 20 Then
System.Console.WriteLine("MailSender konnte nicht gestartet werden, da eine Insatanz noch läuft...")
Else
' PARAM = "BRG_AUSWERTUNG_STANDARD"
'Select Case firma
' Case "ATILLA"
' Msg.Subject = "Kunden TR - Offene Rechnungen - ATILLA"
' ' Msg.To.Add("mestan@verag.ag")
' Msg.To.Add("verimex@verimex360.com")
' Msg.Bcc.Add("al@verag.ag")
' Case "IMEX"
' Msg.Subject = "Kunden TR - Offene Rechnungen - IMEX"
' Msg.Bcc.Add("al@verag.ag")
' Msg.To.Add("mario.hoefer@imex-group.at")
' Msg.CC.Add("viktoria.leirich@imex-group.at")
' Msg.CC.Add("verimex@verimex360.com")
' Case "VERAG"
' Msg.Subject = "Kunden TR - Offene Rechnungen"
' Msg.To.Add("mestan@verag.ag")
' Msg.CC.Add("verimex@verimex360.com")
' Msg.Bcc.Add("al@verag.ag")
' End Select
Select Case PARAM
Case "KD_OP5000"
System.Console.WriteLine("OPTION erkannt: KD_TR_OP5000 _ Erstellt eine Liste türkischer Kunden und versendet diese AL.")
If SendEmail_OP5000("VERAG", "", {"al@verag.ag"}, {}, {}, "VERAG - Offene Posten") Then
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "KD_TR_OP5000"
System.Console.WriteLine("OPTION erkannt: KD_TR_OP5000 _ Erstellt eine Liste türkischer Kunden und versendet diese an Mestan und Bahadir.")
If SendEmail_OP5000("VERAG", "'TR'", {"mestan@verag.ag"}, {"verimex@verimex360.com"}, {"al@verag.ag"}, "Kunden TR - Offene Rechnungen") Then
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "KD_TR_OP5000_ATILLA"
System.Console.WriteLine("OPTION erkannt: KD_TR_OP5000_ATILLA _ Erstellt eine Liste türkischer Kunden von ATILLA.")
If SendEmail_OP5000("ATILLA", "'TR'", {"verimex@verimex360.com"}, {}, {"al@verag.ag"}, "Kunden TR - Offene Rechnungen - ATILLA") Then
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "KD_TR_OP5000_IMEX"
System.Console.WriteLine("OPTION erkannt: KD_TR_OP5000_IMEX _ Erstellt eine Liste türkischer Kunden von IMEX.")
If SendEmail_OP5000("IMEX", "'TR'", {"mario.hoefer@imex-group.at"}, {"viktoria.leirich@imex-group.at", "verimex@verimex360.com"}, {"al@verag.ag"}, "Kunden TR - Offene Rechnungen - IMEX") Then
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "BRG_AUSWERTUNG_STANDARD"
System.Console.WriteLine("OPTION erkannt: BRG_AUSWERTUNG_STANDARD _ Erstellt die Auswertung der Bürgschaften.")
System.Console.WriteLine("Einlesen der Bürgschaftsdaten aus ATLAS und E-ZOLL...")
einlesenBRG()
System.Console.WriteLine("Einlesen abgeschlossen...")
System.Console.WriteLine("Auswertung gestartet...")
If SendEmail_BRG_Auswertung(IIf(Now.DayOfWeek = 1, True, False)) Then
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "BRG_AUSWERTUNG_DETAILS"
System.Console.WriteLine("OPTION erkannt: BRG_AUSWERTUNG_DETAILS _ Erstellt die Auswertung der Bürgschaften mit Details.")
System.Console.WriteLine("Einlesen der Bürgschaftsdaten aus ATLAS und E-ZOLL...")
einlesenBRG()
System.Console.WriteLine("Einlesen abgeschlossen...")
System.Console.WriteLine("Auswertung Details gestartet...")
If SendEmail_BRG_Auswertung(IIf(Now.DayOfWeek = 1, True, False), True) Then 'für Andreas Details
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "WOELFL"
System.Console.WriteLine("OPTION erkannt: WOELFL ")
System.Console.WriteLine("Starte Wölfl-Mail...")
If SendEmail_WOELFL() Then
Try
Dim outFile As IO.StreamWriter = Nothing
outFile = My.Computer.FileSystem.OpenTextFileWriter(last_sent, False)
outFile.Write(Now.AddDays(-1).ToShortDateString)
outFile.Close()
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
Case "QS_AUFTEILUNG"
System.Console.WriteLine("OPTION erkannt: QS_AUFTEILUNG _ Erstellt die Auswertung der QS-AUFTEILUNG.")
System.Console.WriteLine("Auswertung gestartet...")
If SendEmail_QS_Auswertung() Then 'für Andreas Details
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "CS_AUFTEILUNG"
System.Console.WriteLine("OPTION erkannt: CS_AUFTEILUNG _ Erstellt die Auswertung der FISKAL-AUFTEILUNG.")
System.Console.WriteLine("Auswertung gestartet...")
If SendEmail_CS_Auswertung() Then 'für Andreas Details
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "MDM_Zollbuero_Verguetung"
System.Console.WriteLine("OPTION erkannt: MDM_Zollbuero_Verguetung _ Erstellt die Auswertung der durchgeführten MWST-Auszahlungen und MD-Kartenausgabe.")
System.Console.WriteLine("Auswertung gestartet...")
If MDM_Zollbuero_Verguetung() 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...")
If SendEmail_Kassenbuch_Zufall() Then 'für Andreas Details
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If
Case "DEPOT_Kunden_Auswertung"
System.Console.WriteLine("OPTION erkannt: DEPOT_Kunden_Auswertung")
System.Console.WriteLine("Vorgang gestartet...")
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt As DataTable = SQL.loadDgvBySql("SELECT KundenNrZentrale FROM [tblKundenErweitert] INNER JOIN Kunden on kundennr= kde_KundenNr where Depot_Kunde = 1", "FMZOLL")
If dt IsNot Nothing Then
For Each r In dt.Rows
DEPOT_Kunden_Auswertung(r("KundenNrZentrale"))
Next
End If
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
Case Else
System.Console.WriteLine("OPTION nicht erkannt!")
End Select
End If
' Else
' System.Console.WriteLine("OPTIONS-Datei nicht gefunden! " & options)
' End If
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 Sub
Function getOption() As String
Try
Dim instr = New StreamReader(options)
Dim d = instr.ReadLine
instr.Close()
Return d
Catch ex As Exception
Return ""
End Try
End Function
Private Function DoesProcessExists(ByVal PName As String) As Boolean
Dim cnt = 0
For Each p As Process In System.Diagnostics.Process.GetProcessesByName(PName)
'MsgBox("found" & p.StartInfo.UserName)
'If p.StartInfo.UserName = Environment.UserName Then
cnt += 1
'End If
Next
If cnt > 1 Then Return True
Return False
End Function
Private Function SendEmail_Kassenbuch_Zufall() As Boolean
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "support@verag.ag"
myCredentials.Password = "support"
' myCredentials.UserName = "testmail@verag.ag"
' myCredentials.Password = "testmail"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
' mySmtpsvr.Host = "192.168.0.107" 'bei web.de
' mySmtpsvr.Port = 25 '587 '25
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("Sende E-Mail...")
Msg.From = New MailAddress("support@verag.ag")
Msg.IsBodyHtml = True
Msg.To.Add("al@verag.ag")
' Msg.CC.Add("al@verag.ag")
Msg.Subject = "Kassenprüfung - Zufallsziehung"
Msg.Body &= "<span style=""font-family:Arial"">"
Msg.Body = "Folgende Kasse ist zu kontrollieren und ein Kassensturz durchzuführen:"
Msg.Body &= "<br><br>"
Msg.Body &= "Per Zufallsgenerator gezogene Kasse: <b>" & (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySql("Select TOP 1 [Name] + ', KB-Nr.: ' + cast([KassenbuchNr] as varchar) FROM [VERAG].[dbo].[Personal] where Mandant='VERA' AND [Status]='A' AND BLC='R' AND SBSichtbar=1 and KassenbuchNr is not null ORDER BY NEWID()", "FMZOLL") & "</b>"
Msg.Body &= "<br><br><br>"
Msg.Body &= "Automatisch generiertes E-Mail."
Msg.Body &= "</span>"
mySmtpsvr.Send(Msg)
System.Console.WriteLine("E-Mail gesendet.")
System.Console.WriteLine("Erfolgreich!")
Return True
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 DEPOT_Kunden_Auswertung(KundenNr) As Boolean
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "support@verag.ag"
myCredentials.Password = "support"
' myCredentials.UserName = "testmail@verag.ag"
' myCredentials.Password = "testmail"
Msg.IsBodyHtml = True
Dim mySmtpsvr As New SmtpClient()
' mySmtpsvr.Host = "192.168.0.107" 'bei web.de
' mySmtpsvr.Port = 25 '587 '25
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
System.Console.WriteLine("Erstelle EXCEL...")
Dim excel As String = genEXCEL_DEPOT(KundenNr)
MsgBox(excel)
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("al@verag.ag") 'Detailierter Bericht nur an al@verag.ag
Msg.Subject = "Auswertung DEPOT"
Msg.Body = "<p style='12pt Arial'>"
Msg.Body &= "Anbei befinden sich die Auswertung Ihres Depot-Kontos<br><br>Erstellt am: " & Now.ToShortDateString & ", um " & Now.ToShortTimeString
Msg.Body &= "<br><br><br>Automatisch generiertes E-Mail."
Msg.Body &= "</p>"
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_BRG_Auswertung(Optional wochenAuswertung As Boolean = False, Optional details As Boolean = False) As Boolean
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "al@verag.ag"
myCredentials.Password = "verag#2"
' myCredentials.UserName = "testmail@verag.ag"
' myCredentials.Password = "testmail"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
' mySmtpsvr.Host = "192.168.0.107" 'bei web.de
' mySmtpsvr.Port = 25 '587 '25
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_BRG(details)
Dim excelKW As String = IIf(wochenAuswertung, genEXCEL_BRGKW(), "")
System.Console.WriteLine("EXCEL erstellt...")
If excel <> "" And Not excel.StartsWith("ERROR: ") And Not excelKW.StartsWith("ERROR: ") Then
System.Console.WriteLine("Sende E-Mail...")
Msg.From = New MailAddress("al@verag.ag")
If details Then
Msg.To.Add("al@verag.ag") 'Detailierter Bericht nur an al@verag.ag
Else
Msg.To.Add("jl@verag.ag") 'Standardberichte an jl@verag.ag; al@verag.ag
Msg.CC.Add("al@verag.ag")
End If
Msg.Subject = IIf(wochenAuswertung, "Auswertungen der Bürgschaften", "Auswertung der Bürgschaften") & IIf(details, " - Details", "")
Msg.Body = IIf(wochenAuswertung, "Anbei befinden sich die Auswertungen der Bürgschaften", "Anbei befindet sich die Auswertung der Bürgschaften") &
"." & 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)
If wochenAuswertung Then
Dim attachment2 As Attachment = New Attachment(File.OpenRead(excelKW), "Auswertung_Atilla_Durmaz.xlsx")
Msg.Attachments.Add(attachment2)
End If
mySmtpsvr.Send(Msg)
System.Console.WriteLine("E-Mail gesendet.")
System.Console.WriteLine("Erfolgreich!")
Return True
Else
System.Console.WriteLine(excel)
System.Console.WriteLine(excelKW)
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_QS_Auswertung() As Boolean
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "al@verag.ag"
myCredentials.Password = "verag#2"
' myCredentials.UserName = "testmail@verag.ag"
' myCredentials.Password = "testmail"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
' mySmtpsvr.Host = "192.168.0.107" 'bei web.de
' mySmtpsvr.Port = 25 '587 '25
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_QS()
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("jl@verag.ag")
Msg.Bcc.Add("al@verag.ag")
' Msg.Bcc.Add("ga@verag.ag")
Msg.Subject = "Auswertung QS-Aufteilung"
Msg.Body = "Anbei befindet sich die Auswertung der QS-Aufteilung" &
"." & 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_CS_Auswertung() 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_CS()
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("jl@verag.ag")
Msg.Bcc.Add("al@verag.ag")
Msg.Bcc.Add("cw@verag.ag")
Msg.Subject = "Auswertung FISKAL-Aufteilung (Customs Service GmbH)"
Msg.Body = "Anbei befindet sich die Auswertung der FISKAL-Aufteilung (Customs Service GmbH)" &
"." & 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 MDM_Zollbuero_Verguetung() 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_ZOLL()
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("al@verag.ag")
' Msg.To.Add("jl@verag.ag")
' Msg.Bcc.Add("al@verag.ag")
' Msg.Bcc.Add("cw@verag.ag")
Msg.Subject = "Auswertung MDM-ZOLL Vergütung"
Msg.Body = "Anbei befindet sich die Auswertung der MDM-ZOLL 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()
' Exit Function
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
'myCredentials.UserName = "al@verag.ag"
'myCredentials.Password = "Luxandreas#2"
' myCredentials.UserName = "al@verag.ag"
' myCredentials.Password = "verag#2"
'myCredentials.UserName = "al@verag.ag"
'myCredentials.Password = "verag#2"
myCredentials.UserName = "support@verag.ag"
myCredentials.Password = "support"
' myCredentials.UserName = "testmail@verag.ag"
' myCredentials.Password = "testmail"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
' mySmtpsvr.Host = "192.168.0.107" 'bei web.de
' mySmtpsvr.Port = 25 '587 '25
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 = ""
Select Case firma
Case "ATILLA"
excel = genEXCEL_TR_ATILLA(LandEinschr)
Case "IMEX"
excel = genEXCEL_TR_IMEX(LandEinschr)
Case "VERAG"
excel = genEXCEL_TR(LandEinschr)
End Select
System.Console.WriteLine("EXCEL erstellt...")
If excel <> "" And Not excel.StartsWith("ERROR: ") Then
System.Console.WriteLine("Sende E-Mail...")
Msg.From = New MailAddress("support@verag.ag")
For Each m In Mail_to : Msg.To.Add(m) : Next
For Each m In Mail_cc : Msg.CC.Add(m) : Next
For Each m In Mail_bcc : Msg.Bcc.Add(m) : Next
Msg.Subject = Mail_Subject
' Msg.To.Add("al@verag.ag")
Msg.Body = "Anbei befindet sich die Liste der türkischen Kunden mit einem offenen Rechnungsbetrag von über 1.000,- EUR." & vbNewLine & vbNewLine & "Stand: " & Now.ToShortDateString & " " & Now.ToShortTimeString & vbNewLine & vbNewLine & vbNewLine & "Automatisch generiertes E-Mail."
Dim attachment As Attachment = New Attachment(File.OpenRead(excel), "Kundenliste.xlsx")
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(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 Sub send()
Dim message As New MailMessage("al@verag.ag", "al@verag.ag", "Test", "Testmail")
Dim client As New SmtpClient("http://192.168.0.107/")
client.Credentials = New NetworkCredential("al@verag.ag", "verag#2")
client.Send(message)
End Sub
Private Function SendEmail_WOELFL() As Boolean
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "support@verag.ag"
myCredentials.Password = "support"
' myCredentials.UserName = "testmail@verag.ag"
' myCredentials.Password = "testmail"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
' mySmtpsvr.Host = "192.168.0.107" 'bei web.de
' mySmtpsvr.Port = 25 '587 '25
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
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("support@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)
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
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
Sub genExcel(dt As DataTable)
Dim wb As New XLWorkbook()
' Dim wb As New ClosedXML.Excel.XLWorkbook
wb.Worksheets.Add(dt, "Kundenliste")
wb.SaveAs(sPath & "TMP.xlsx")
End Sub
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 = loadDgvBySqlFMZOLL(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 genEXCEL_BRG(Optional details As Boolean = False) As String
Try
Dim cProgramFunctions As New ADMIN.cProgramFunctions
' cProgramFunctions.EINLESEN(Now.AddDays(-8).ToShortDateString, Now.ToShortDateString)
Dim tage As Integer = 7
Dim startdate As Date = Now.AddDays(-1)
' Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\Bürgschaften\" ' My.Computer.FileSystem.GetTempFileName
'If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
'My.Computer.FileSystem.CreateDirectory(sPath)
'End If
Return cProgramFunctions.genEXCEL_Auswertungen(sPath, tage, startdate, details, details, False)
Catch ex As Exception
' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message)
Return "ERROR 03: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Public Function genEXCEL_QS() As String
Try
Dim sqlstr As String = ""
Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year)
Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1)
sqlstr &= " SELECT Aviso.[Grenzstelle], SUM(Speditionsbuch.Abfertigungsanzahl) as Anzahl FROM Speditionsbuch INNER JOIN [BUCHHALTUNG\SQLEXPRESS].AVISO.dbo.AVISO on Aviso.avisoid=Speditionsbuch.AvisoID WHERE PersonalnummerQS is not null "
sqlstr &= " and FilialenNr NOT IN ( 4801,4806,5501 ) "
sqlstr &= " and Abfertigungsdatum between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' " &
" GROUP BY Aviso.[Grenzstelle]" &
" ORDER BY Anzahl DESC"
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'as WorkSheet
exclApp = CreateObject("Excel.Application")
With exclApp
.Visible = False
Dim filepath = sPath & "QS_Auswertung.xlsx"
Try
My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.QS_Aufteilung, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace
End Try
Datei = .Workbooks.Open(filepath) 'Anpassen
Blatt = Datei.Worksheets("QS") 'Anpassen
Dim cnt = 0
For Each r In dt.Rows
Blatt.Range("A" & (4 + cnt)).Value = r("Grenzstelle")
Blatt.Range("B" & (4 + cnt)).Value = r("Anzahl")
cnt += 1
Next
Blatt.Range("D1").Value = von.ToShortDateString
Blatt.Range("F1").Value = bis.ToShortDateString
Datei.Save()
.DisplayAlerts = False
.quit()
Try : Datei.close(True) : Catch : End Try
Return filepath
End With
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Public Function genEXCEL_CS() As String
Try
Dim sqlstr As String = ""
Dim von = CDate("01." & Now.AddMonths(-1).Month & "." & Now.AddMonths(-1).Year)
Dim bis = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1)
sqlstr &= " SELECT Aviso.[Grenzstelle], SUM(Speditionsbuch.Abfertigungsanzahl) as Anzahl FROM Speditionsbuch INNER JOIN [BUCHHALTUNG\SQLEXPRESS].AVISO.dbo.AVISO on Aviso.avisoid=Speditionsbuch.AvisoID WHERE Abfertigungsart IN (26,28) "
sqlstr &= " AND Aviso.[Grenzstelle] <> 'SFD' and FilialenNr NOT IN ( 4801,4806 ) "
sqlstr &= " and Abfertigungsdatum between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' " &
" GROUP BY Aviso.[Grenzstelle]" &
" ORDER BY Anzahl DESC"
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'as WorkSheet
exclApp = CreateObject("Excel.Application")
With exclApp
.Visible = False
Dim filepath = sPath & "CS_Auswertung.xlsx"
Try
My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.cs_Aufteilung, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace
End Try
Datei = .Workbooks.Open(filepath) 'Anpassen
Blatt = Datei.Worksheets("CS") 'Anpassen
Dim cnt = 0
For Each r In dt.Rows
Blatt.Range("A" & (4 + cnt)).Value = r("Grenzstelle")
Blatt.Range("B" & (4 + cnt)).Value = r("Anzahl")
cnt += 1
Next
Blatt.Range("D1").Value = von.ToShortDateString
Blatt.Range("F1").Value = bis.ToShortDateString
Datei.Save()
.DisplayAlerts = False
.quit()
Try : Datei.close(True) : Catch : End Try
Return filepath
End With
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Public Function genEXCEL_MDM_ZOLL() As String
Try
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'as WorkSheet
exclApp = CreateObject("Excel.Application")
With exclApp
.Visible = False
Dim filepath = sPath & "MDM_ZOLL_Verguetung.xlsx"
Try
My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.MDM_ZOLL_Verguetung, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace
End Try
Datei = .Workbooks.Open(filepath) 'Anpassen
Blatt = Datei.Worksheets("CS") 'Anpassen
Blatt.Range("E1").Value = Now.Year
' Dim von = CDate("01." & Now.AddMonths(-1) & "." & Now.AddMonths(-1).Year)
For i = 1 To Now.AddMonths(-1).Month
Dim year = Now.AddMonths(-1).Year
Dim sqlstr As String = ""
' Dim bis = von.AddMonths(1).AddDays(-1)
Dim von = CDate("01." & i & "." & year)
Dim bis = CDate("01." & i & "." & year).AddMonths(1).AddDays(-1)
sqlstr &= " SELECT count(*)"
sqlstr &= " FROM tblEABelegnummer as EAB inner join tblEABelegposition as POS on EAB.Mandant=POS.Mandant and EAB.[Niederlassung]=POS.[Niederlassung] and EAB.[Benutzer]=POS.[Benutzer] and EAB.[BelegDat]=POS.[BelegDat] and EAB.[BelegNr]=POS.[BelegNr]"
sqlstr &= " where LeistungsNr=480 and [EAB].BelegDat between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' and gebucht=1 and storniert=0 "
Dim anzahl = 0
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
anzahl = dt.Rows(0)(0)
End If
Blatt.Range("D" & (7 + i)).Value = anzahl
sqlstr = " SELECT COUNT(*) FROM [tblSDLAbholung] where sdlAb_Storniert=0 and sdlAb_FahrerAbholAuftrag=1 and sdlAb_Abholung between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' "
anzahl = 0
Dim dt2 = loadDgvBySqlSDL(sqlstr)
If dt2 IsNot Nothing AndAlso dt2.Rows.Count > 0 Then
anzahl = dt2.Rows(0)(0)
End If
Blatt.Range("B" & (7 + i)).Value = anzahl
Next
Datei.Save()
.DisplayAlerts = False
.quit()
Try : Datei.close(True) : Catch : End Try
Return filepath
End With
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Public Function genEXCEL_DEPOT(KundenNr) As String
Try
Dim sqlstr As String = ""
sqlstr &= " Select [Belegnummer] As [Rechnungsnummer/BelegNr], CONVERT(Date,[Belegdatum] ,4) As Belegdatum "
sqlstr &= " ,[Gesamtausstand] as Betrag,[Buchungstext],Rechnungsausgang.Abfertigungsdatum "
sqlstr &= " , (SELECT TOP 1 Abfertigungsbezeichnung FROM Speditionsbuch INNER JOIN Abfertigungsarten ON Abfertigungsarten.Abfertigungsart= Speditionsbuch.Abfertigungsart WHERE Speditionsbuch.AbfertigungsNr=[Rechnungsausgang].AbfertigungsNr And Speditionsbuch.FilialenNr=[Rechnungsausgang].FilialenNr) as Abfertigungsart "
sqlstr &= " ,Rechnungsausgang.[Packstücke und Warenbezeichnung] "
sqlstr &= " FROM [Offene Posten] "
sqlstr &= " Left Join [Rechnungsausgang] on [Rechnungsausgang].RechnungsNr=(case WHEN isnumeric(Belegnummer)=1 THEN Belegnummer ELSE -1 END ) "
sqlstr &= " where Kontonummer = 716257 And [Offene Posten].Firma_ID=1 "
sqlstr &= " order by Belegdatum, op_id "
' sqlstr &= " SELECT * FROM [Offene Posten] where Kontonummer= " & KundenNr
' sqlstr &= " ORDER BY SSMA_TimeStamp"
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'as WorkSheet
exclApp = CreateObject("Excel.Application")
With exclApp
.Visible = False
Dim filepath = sPath & "\Depot.xlsx"
Try
My.Computer.FileSystem.WriteAllBytes(filepath, My.Resources.depot, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace
End Try
MsgBox(filepath)
Datei = .Workbooks.Open(filepath) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
Dim cnt = 0
For Each r In dt.Rows
Blatt.Range("A" & (4 + cnt)).Value = r("Belegdatum")
Blatt.Range("B" & (4 + cnt)).Value = r("Belegnummer")
Blatt.Range("C" & (4 + cnt)).Value = r("Bruttobetrag")
Blatt.Range("D" & (4 + cnt)).Value = r("Waehrung")
Blatt.Range("E" & (4 + cnt)).Value = r("Buchungstext")
Blatt.Range("F" & (4 + cnt)).Value = r("KumSaldoEUR")
Blatt.Range("G" & (4 + cnt)).Value = r("Bemerkung")
cnt += 1
Next
Blatt.Range("E1").Value = Now.ToShortDateString
Datei.Save()
.DisplayAlerts = False
.quit()
Try : Datei.close(True) : Catch : End Try
Return filepath
End With
Catch ex As System.Exception
' MsgBox(ex.Message)
Return "ERROR 02: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Sub einlesenBRG()
Dim cProgramFunctions As New ADMIN.cProgramFunctions
cProgramFunctions.EINLESEN(Now.AddDays(-8).ToShortDateString, Now.ToShortDateString)
End Sub
Public Function genEXCEL_BRGKW() As String
Try
Dim cProgramFunctions As New ADMIN.cProgramFunctions
' cProgramFunctions.EINLESEN(Now.AddDays(-8), Now)
Dim tage As Integer = 7
Dim startdate As Date = Now.AddDays(-1)
' Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\Bürgschaften\" ' My.Computer.FileSystem.GetTempFileName
'If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
'My.Computer.FileSystem.CreateDirectory(sPath)
'End If
Return cProgramFunctions.genEXCEL_AuswertungenKW(sPath, cProgramFunctions.getKW(Now.AddDays(-7)), Now.AddDays(-7).Year, False)
Catch ex As Exception
' MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message)
Return "ERROR 03: " & ex.Message & vbNewLine & ex.StackTrace
End Try
End Function
Public Function genEXCEL_TR(LandEinschr) As String
Try
If LandEinschr <> "" Then LandEinschr = " AND LandKz IN (" & LandEinschr & ") "
Dim sqlstr = " SELECT [Kontonummer] as KdNr,cast(SUM([Gesamtausstand]) as decimal(12,2)) as Summe,max([Waehrung]) as Währung ,max(LandKz) as Land, max(Ordnungsbegriff) as Firma,max(Ort) as Ort,max(Straße) as Straße,max([E-Mail]) as [E-Mail],max(Telefon) as Telefon, min([Fälligkeitsdatum]) as [Fälligkeitsdatum] " &
"FROM [Offene Posten] INNER JOIN Adressen ON AdressenNr=Kontonummer " &
"WHERE 1=1 " & LandEinschr & " AND Firma_ID NOT IN (7,15) " &
"GROUP BY [Kontonummer] " &
"HAVING SUM([Gesamtausstand]) > " & betragOpTr &
"ORDER BY Firma asc"
' MsgBox(sqlstr)
' Dim SQL As New System.Data.Sql
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count)
genExcel(dt)
Return sPath & "TMP.xlsx"
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 genEXCEL_TR_IMEX(LandEinschr) As String
Try
If LandEinschr <> "" Then LandEinschr = " AND LandKz IN (" & LandEinschr & ") "
Dim sqlstr = " SELECT [KundenNr] as KdNr,cast(SUM(Saldo) as decimal(12,2)) as Summe/*,max([Waehrung]) as Währung */,max(LandKz) as Land, max(Ordnungsbegriff) as Firma,max(Ort) as Ort,max(Straße) as Straße,max([E-Mail]) as [E-Mail],max(Telefon) as Telefon " &
" FROM Offene_Posten_DVO INNER JOIN Adressen ON AdressenNr=[KundenNr] " &
"WHERE 1=1 " & LandEinschr &
"GROUP BY [KundenNr] " &
"HAVING SUM([Saldo]) > " & betragOpTr &
"ORDER BY Firma asc"
' MsgBox(sqlstr)
' Dim SQL As New System.Data.Sql
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count)
genExcel(dt)
Return sPath & "TMP.xlsx"
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 genEXCEL_TR_ATILLA(LandEinschr) As String
Try
If LandEinschr <> "" Then LandEinschr = " AND LandKz IN (" & LandEinschr & ") "
Dim sqlstr = " SELECT [Kontonummer] as KdNr,cast(SUM([Gesamtausstand]) as decimal(12,2)) as Summe,max([Waehrung]) as Währung ,max(LandKz) as Land, max(Ordnungsbegriff) as Firma,max(Ort) as Ort,max(Straße) as Straße,max([E-Mail]) as [E-Mail],max(Telefon) as Telefon " &
"FROM [Offene Posten] INNER JOIN Adressen ON AdressenNr=Kontonummer " &
"WHERE 1=1 " & LandEinschr & " AND Firma_ID = 7 " &
"GROUP BY [Kontonummer] " &
"HAVING SUM([Gesamtausstand]) > " & betragOpTr &
"ORDER BY Firma asc"
' MsgBox(sqlstr)
' Dim SQL As New System.Data.Sql
Dim dt As DataTable = loadDgvBySqlFMZOLL(sqlstr)
System.Console.WriteLine("Vorhandene Datensätze: " & dt.Rows.Count)
genExcel(dt)
Return sPath & "TMP.xlsx"
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 loadDgvBySqlFMZOLL(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
Public Function loadDgvBySqlSDL(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=SDL;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