Compare commits
2 Commits
da56e73859
...
2e0b0a6b2a
| Author | SHA1 | Date | |
|---|---|---|---|
| 2e0b0a6b2a | |||
| 83026b1ca9 |
@@ -62,7 +62,7 @@ Module Mail
|
||||
|
||||
'------------------------------------------------------------------------------------
|
||||
' PARAM = "NCTSLIST_TOBB"
|
||||
' PARAM = "NCTSLIST_TOBB"
|
||||
'PARAM = "KD_DroppedJobs"
|
||||
'------------------------------------------------------------------------------------
|
||||
|
||||
If PARAM = "" Then
|
||||
@@ -440,6 +440,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...")
|
||||
@@ -1391,6 +1413,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
|
||||
|
||||
@@ -119,6 +119,7 @@
|
||||
<None Include="App.config" />
|
||||
<None Include="Resources\Auswertung_divers.xlsx" />
|
||||
<None Include="Resources\Detailauswertung_divers.xlsx" />
|
||||
<None Include="Resources\KD_DroppedJobs.xlsx" />
|
||||
<None Include="Resources\MDM_AI_Verguetung.xlsx" />
|
||||
<None Include="Resources\MDM_IT_Verguetung.xlsx" />
|
||||
<None Include="Resources\MDM_ZOLL_Verguetung.xlsx">
|
||||
|
||||
10
MailSender/My Project/Resources.Designer.vb
generated
10
MailSender/My Project/Resources.Designer.vb
generated
@@ -100,6 +100,16 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property KD_DroppedJobs() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("KD_DroppedJobs", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
|
||||
'''</summary>
|
||||
|
||||
@@ -130,6 +130,9 @@
|
||||
<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="KD_DroppedJobs" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\KD_DroppedJobs.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>
|
||||
|
||||
BIN
MailSender/Resources/KD_DroppedJobs.xlsx
Normal file
BIN
MailSender/Resources/KD_DroppedJobs.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user