Compare commits

...

2 Commits

5 changed files with 223 additions and 1 deletions

View File

@@ -62,7 +62,7 @@ Module Mail
'------------------------------------------------------------------------------------ '------------------------------------------------------------------------------------
' PARAM = "NCTSLIST_TOBB" ' PARAM = "NCTSLIST_TOBB"
' PARAM = "NCTSLIST_TOBB" 'PARAM = "KD_DroppedJobs"
'------------------------------------------------------------------------------------ '------------------------------------------------------------------------------------
If PARAM = "" Then If PARAM = "" Then
@@ -440,6 +440,28 @@ Module Mail
If MDM_IT_Verguetung(Jahr) Then 'für Andreas Details If MDM_IT_Verguetung(Jahr) Then 'für Andreas Details
System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...") System.Console.WriteLine("Vorgang erfolgreich abgeschlossen ...")
End If 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" Case "Kassenbuch_Zufall"
System.Console.WriteLine("OPTION erkannt: Kassenbuch_Zufall - Zufallsziehung zur Kassenkontrolle.") System.Console.WriteLine("OPTION erkannt: Kassenbuch_Zufall - Zufallsziehung zur Kassenkontrolle.")
System.Console.WriteLine("Vorgang gestartet...") System.Console.WriteLine("Vorgang gestartet...")
@@ -1391,6 +1413,192 @@ Module Mail
Return False Return False
End Function 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 Private Function MDM_IT_Verguetung(Jahr) As Boolean
Dim Msg As New MailMessage Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential Dim myCredentials As New System.Net.NetworkCredential

View File

@@ -119,6 +119,7 @@
<None Include="App.config" /> <None Include="App.config" />
<None Include="Resources\Auswertung_divers.xlsx" /> <None Include="Resources\Auswertung_divers.xlsx" />
<None Include="Resources\Detailauswertung_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_AI_Verguetung.xlsx" />
<None Include="Resources\MDM_IT_Verguetung.xlsx" /> <None Include="Resources\MDM_IT_Verguetung.xlsx" />
<None Include="Resources\MDM_ZOLL_Verguetung.xlsx"> <None Include="Resources\MDM_ZOLL_Verguetung.xlsx">

View File

@@ -100,6 +100,16 @@ Namespace My.Resources
End Get End Get
End Property 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> '''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Byte[]. ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[].
'''</summary> '''</summary>

View File

@@ -130,6 +130,9 @@
<data name="Detailauswertung_divers" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> <value>..\Resources\Detailauswertung_divers.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </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"> <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> <value>..\Resources\MDM_AI_Verguetung.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>

Binary file not shown.