Mail Sender DroppedJobs
This commit is contained in:
@@ -62,7 +62,7 @@ Module Mail
|
||||
|
||||
'------------------------------------------------------------------------------------
|
||||
' PARAM = "NCTSLIST_TOBB"
|
||||
' PARAM = "NCTSLIST_TOBB"
|
||||
'PARAM = "KD_DroppedJobs"
|
||||
'------------------------------------------------------------------------------------
|
||||
|
||||
If PARAM = "" Then
|
||||
@@ -429,6 +429,28 @@ Module Mail
|
||||
If MDM_IT_Verguetung(Jahr) Then 'für Andreas Details
|
||||
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
|
||||
End If
|
||||
Case "KD_DroppedJobs" 'Rückgang Abfertigungszahlen
|
||||
System.Console.WriteLine("OPTION erkannt: KD_DroppedJobs _ Erstellt die Auswertung der Kunden mit rückläufigen Zahlen")
|
||||
System.Console.WriteLine("Auswertung gestartet...")
|
||||
Dim FirmaTmp = ""
|
||||
If (parameter.Count - 1) >= 2 Then
|
||||
FirmaTmp = parameter(2)
|
||||
System.Console.WriteLine("Parameter 'FirmaTmp' erkannt: " & FirmaTmp)
|
||||
End If
|
||||
|
||||
If FirmaTmp <> "" Then
|
||||
KD_DroppedJobs(FirmaTmp, "EMPFÄNGER")
|
||||
KD_DroppedJobs(FirmaTmp, "AVISIERER")
|
||||
System.Console.WriteLine("Vorgang abgeschlossen ...")
|
||||
Else
|
||||
KD_DroppedJobs("VERAG", "EMPFÄNGER")
|
||||
KD_DroppedJobs("VERAG", "AVISIERER")
|
||||
KD_DroppedJobs("IMEX", "EMPFÄNGER")
|
||||
KD_DroppedJobs("IMEX", "AVISIERER")
|
||||
KD_DroppedJobs("UNISPED", "EMPFÄNGER")
|
||||
KD_DroppedJobs("UNISPED", "AVISIERER")
|
||||
System.Console.WriteLine("Vorgang abgeschlossen ...")
|
||||
End If
|
||||
Case "Kassenbuch_Zufall"
|
||||
System.Console.WriteLine("OPTION erkannt: Kassenbuch_Zufall - Zufallsziehung zur Kassenkontrolle.")
|
||||
System.Console.WriteLine("Vorgang gestartet...")
|
||||
@@ -1380,6 +1402,192 @@ Module Mail
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Private Function KD_DroppedJobs(Firma, Art) As Boolean
|
||||
|
||||
Dim [To] = ""
|
||||
Dim CC = ""
|
||||
Dim Bcc = ""
|
||||
Select Case Firma
|
||||
Case "VERAG"
|
||||
[To] = "kundenservice@verag.ag"
|
||||
CC = "cf@verag.ag;al@verag.ag;ml@verag.ag"
|
||||
Case "IMEX"
|
||||
[To] = "kundenservice@verag.ag"
|
||||
CC = "cf@verag.ag;al@verag.ag;ml@verag.ag"
|
||||
Case "UNISPED"
|
||||
[To] = "kundenservice@verag.ag"
|
||||
CC = "cf@verag.ag;al@verag.ag;ml@verag.ag"
|
||||
End Select
|
||||
|
||||
'''''''''''''''''''''''''''
|
||||
'[To] = "al@verag.ag"
|
||||
'CC = ""
|
||||
'''''''''''''''''''''''''''
|
||||
'''
|
||||
System.Console.WriteLine("E-Mail Daten initialisiert...")
|
||||
Try
|
||||
|
||||
|
||||
System.Console.WriteLine("SQL Abfrage / Daten laden...")
|
||||
' --- SQL 1x laden: alle Monate / Datenquellen ---
|
||||
Dim sqlstr As String = ""
|
||||
|
||||
Select Case Art
|
||||
Case "EMPFÄNGER"
|
||||
sqlstr =
|
||||
"SELECT *
|
||||
FROM dbo.ufn_KundenDropoff_Empfaenger
|
||||
(
|
||||
'" & Firma & "', -- Firma
|
||||
DEFAULT, -- Stichtag der Analyse ('2026-03-09')
|
||||
150, -- Mindest-Risikoscore für Anzeige
|
||||
52, -- Referenzzeitraum (Wochen)
|
||||
4, -- aktuelle Vergleichsperiode (Wochen)
|
||||
100, -- Mindestanzahl Vorgänge pro Jahr
|
||||
0.25, -- minimaler Drop (25%)
|
||||
21, -- Inaktivitätsgrenze (Tage)
|
||||
10.0, -- Gewicht absoluter Mengenrückgang
|
||||
5.0, -- Gewicht prozentualer Rückgang !!!!!!!!!
|
||||
20.0, -- Strafgewicht wenn letzte Woche 0
|
||||
50, -- Bonus wenn Kunde >21 Tage inaktiv
|
||||
20 -- Bonus wenn Kunde >14 Tage inaktiv
|
||||
)
|
||||
ORDER BY
|
||||
RiskScore DESC,
|
||||
ImpactPerWeek DESC,
|
||||
DropPct_RecentVsBaseline DESC,
|
||||
DaysSinceLast DESC,
|
||||
BaselineAvgPerWeek DESC;"
|
||||
Case "AVISIERER"
|
||||
sqlstr =
|
||||
"SELECT *
|
||||
FROM dbo.ufn_KundenDropoff_Avisierer
|
||||
(
|
||||
'" & Firma & "', -- Firma
|
||||
DEFAULT, -- Stichtag der Analyse ('2026-03-09')
|
||||
150, -- Mindest-Risikoscore für Anzeige
|
||||
52, -- Referenzzeitraum (Wochen)
|
||||
4, -- aktuelle Vergleichsperiode (Wochen)
|
||||
100, -- Mindestanzahl Vorgänge pro Jahr
|
||||
0.25, -- minimaler Drop (25%)
|
||||
21, -- Inaktivitätsgrenze (Tage)
|
||||
10.0, -- Gewicht absoluter Mengenrückgang
|
||||
5.0, -- Gewicht prozentualer Rückgang !!!!!!!!!
|
||||
20.0, -- Strafgewicht wenn letzte Woche 0
|
||||
50, -- Bonus wenn Kunde >21 Tage inaktiv
|
||||
20 -- Bonus wenn Kunde >14 Tage inaktiv
|
||||
)
|
||||
ORDER BY
|
||||
RiskScore DESC,
|
||||
ImpactPerWeek DESC,
|
||||
DropPct_RecentVsBaseline DESC,
|
||||
DaysSinceLast DESC,
|
||||
BaselineAvgPerWeek DESC;"
|
||||
End Select
|
||||
|
||||
|
||||
Dim dt As DataTable = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(sqlstr, "FMZOLL")
|
||||
|
||||
|
||||
|
||||
System.Console.WriteLine("Erstelle EXCEL...")
|
||||
Dim excel As String = ""
|
||||
|
||||
'---------------------------------------------------
|
||||
Dim exclApp As Object = Nothing
|
||||
Dim Datei As Object = Nothing
|
||||
Dim Blatt As Object = Nothing
|
||||
|
||||
Dim filepath As String = ""
|
||||
|
||||
Try
|
||||
|
||||
exclApp = CreateObject("Excel.Application")
|
||||
With exclApp
|
||||
.Visible = False
|
||||
.DisplayAlerts = False
|
||||
|
||||
Dim filepathTmp = sPath & "KD_DroppedJobs_" & Art & "_" & Format(Now, "yyyyMMdd_HHmmss") & ".xlsx"
|
||||
|
||||
' Template aus Resources schreiben
|
||||
Try
|
||||
My.Computer.FileSystem.WriteAllBytes(filepathTmp, My.Resources.KD_DroppedJobs, False)
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
|
||||
Return False
|
||||
End Try
|
||||
|
||||
Datei = .Workbooks.Open(filepathTmp)
|
||||
Blatt = Datei.Worksheets(1)
|
||||
|
||||
Blatt.Range("D1").Value = Art
|
||||
Blatt.Range("F1").Value = Now.ToShortDateString
|
||||
|
||||
Dim r As Integer = 4
|
||||
Dim c As Integer = 1
|
||||
|
||||
If dt IsNot Nothing Then
|
||||
|
||||
For Each row As DataRow In dt.Rows
|
||||
c = 1
|
||||
' MsgBox("r: " & r)
|
||||
For Each col As DataColumn In dt.Columns
|
||||
' MsgBox("c: " & c)
|
||||
|
||||
Blatt.Cells(r, c).Value = row(col)
|
||||
c += 1
|
||||
Next
|
||||
r += 1
|
||||
Next
|
||||
|
||||
Datei.SaveAs(filepathTmp)
|
||||
Datei.Close(False)
|
||||
exclApp.Quit()
|
||||
|
||||
filepath = filepathTmp
|
||||
|
||||
End If
|
||||
End With
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message & ex.StackTrace)
|
||||
|
||||
Return False
|
||||
Finally
|
||||
|
||||
Blatt = Nothing
|
||||
Datei = Nothing
|
||||
exclApp = Nothing
|
||||
|
||||
GC.Collect()
|
||||
GC.WaitForPendingFinalizers()
|
||||
GC.Collect()
|
||||
End Try
|
||||
'---------------------------------------------------
|
||||
|
||||
Dim From = "al@verag.ag"
|
||||
If filepath <> "" Then
|
||||
System.Console.WriteLine("EXCEL erstellt...")
|
||||
|
||||
System.Console.WriteLine("Sende E-Mail...")
|
||||
|
||||
Dim ANHANG As List(Of String) = New List(Of String)
|
||||
ANHANG.Add(filepath)
|
||||
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail([To], "Auswertung Dropped Jobs: " & Art & " - " & Firma, "Anbei befindet sich die Auswertung der Dropped Jobs von " & Firma & ".", From,,, CC, Bcc, ANHANG)
|
||||
Return True
|
||||
Else
|
||||
System.Console.WriteLine("EXCEL Error - Pfad leer...")
|
||||
System.Console.WriteLine("Sende Error E-Mail...")
|
||||
VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail([To], "Auswertung Dropped Jobs - kein Anhang", "Fehler beim Erstellen für " & Firma & ".", From,,, CC, Bcc)
|
||||
Return False
|
||||
End If
|
||||
Catch ex3 As Exception
|
||||
MsgBox(ex3.Message & ex3.StackTrace)
|
||||
Return False
|
||||
End Try
|
||||
Return False
|
||||
|
||||
End Function
|
||||
Private Function MDM_IT_Verguetung(Jahr) As Boolean
|
||||
Dim Msg As New MailMessage
|
||||
Dim myCredentials As New System.Net.NetworkCredential
|
||||
|
||||
Reference in New Issue
Block a user