AAS (AvisoAlertSystem)

This commit is contained in:
2023-09-20 10:55:00 +02:00
parent 8f8a18cce0
commit e6fcd7f4f9
3 changed files with 475 additions and 258 deletions

View File

@@ -3441,4 +3441,147 @@ Public Class frmStartOptions
Dim f As New frmDatenarchivarchiv
f.ShowDialog()
End Sub
Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
doAASVermerke_Schwelle()
End Sub
Function doAASVermerke_Schwelle()
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt = SQL.loadDgvBySql("
SELECT TOP 1000 aviso.AvisoID,Vermerke.[Hinweis_Vermerk]
,CASE WHEN Vermerke.SendungID is not null THEN(SELECT FilialenNr from tblSendungen WHERE tblSnd_SendungID=Vermerke.SendungID) ELSE NULL END FilialenNr
FROM [Aviso]
inner join Vermerke on [Aviso].AvisoID=Vermerke.AvisoID
inner join VermerkeCodes on Vermerke.VermerkeCode=VermerkeCodes.VermerkCodeId
WHERE [Aviso].Status NOT IN (1,2) AND AAS_Warnsystem=1 and AAS_Warnstufe=0 and DATEDIFF(HOUR,Vermerke.Datum,GETDATE())>AAS_SchwelleStunden and [VermerkIDAufgehoben] is null
and (Auftraggeber_KdNr IN (901043,100950,700945) or Frächter_KdNr IN (901043,100950,700945))
AND Aviso.Datum > DATEADD( day,-1,GETDATE())
", "AVISO")
If dt IsNot Nothing Then
For Each r In dt.Rows
insertBenachrichtigung_AAS(r("AvisoId"), r("SendungsId"), VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(r("FilialenNr")), VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.AAE_Benachrichtigung, "REMINDER", "REMINDER: " & r("Hinweis_Vermerk"), 1)
Next
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
Return True
End Function
Function doAASVermerke_24h()
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt = SQL.loadDgvBySql("
SELECT TOP 1000 aviso.AvisoID, Datum
FROM [Aviso]
WHERE [Aviso].Status NOT IN (1,2)
and DATEDIFF(HOUR, (select top 1 Datum from Vermerke where Vermerke.AvisoID=aviso.AvisoID order by Vermerke.Datum desc),GETDATE())>24
and DATEDIFF(HOUR, (select top 1 Datum from Aenderungen where Aenderungen.AvisoID=aviso.AvisoID order by Aenderungen.Datum desc),GETDATE())>24
AND Datum > DATEADD( day,-2,GETDATE())
", "AVISO")
If dt IsNot Nothing Then
For Each r In dt.Rows
insertBenachrichtigung_AAS(r("AvisoId"), r("SendungsId"), VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(r("FilialenNr")), VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.AAE_Benachrichtigung, "REMINDER w4h", "REMINDER: " & r("Hinweis_Vermerk"), 0)
Next
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
Return True
End Function
Function doAASVermerke_Ankunft() ' 4 Stunden
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt = SQL.loadDgvBySql("
SELECT TOP 1000 aviso.AvisoID, Datum
FROM [Aviso]
WHERE [Aviso].Status IN (3)
and DATEDIFF(HOUR, (select top 1 Datum from Vermerke where Vermerke.AvisoID=aviso.AvisoID order by Vermerke.Datum desc),GETDATE())>4
and DATEDIFF(HOUR, (select top 1 Datum from Aenderungen where Aenderungen.AvisoID=aviso.AvisoID order by Aenderungen.Datum desc),GETDATE())>4
AND Datum > DATEADD( day,-2,GETDATE())
", "AVISO")
If dt IsNot Nothing Then
For Each r In dt.Rows
insertBenachrichtigung_AAS(r("AvisoId"), r("SendungsId"), VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(r("FilialenNr")), VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungenCodes.AAE_Benachrichtigung, "REMINDER", "REMINDER: " & r("Hinweis_Vermerk"), 0)
Next
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
Return True
End Function
Function insertBenachrichtigung_AAS(AvisoId, SendungsId, firma, code, TXT_AAS_HEAD, TXT_AAS_BODY, prio)
'
'Benachrichtigung
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sendToID As String = SQL.DLookup("tblSnd_VG_MA", "tblSendungen", "tblSnd_SendungID='" & SendungsId & "'", "AVISO", -1)
Dim art = "B"
'Wenn Benutzer vorschreiben nicht online, dann Benutzer der Sendung...
If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
sendToID = SQL.DLookup("LetzterMitarbeiterId", "tblSendungen", "tblSnd_SendungID='" & SendungsId & "'", "AVISO", -1)
art = "B"
End If
'Wenn Benutzer der Sendung nicht online, dann Benutzer des LKW ..
If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & AvisoId & "'", "AVISO", -1)
art = "B"
End If
'Wenn Benutzer des LKWs nicht online, Team...
If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & SendungsId & "'", "AVISO", -1)
art = "T"
End If
'Wenn TEAM nicht gefunden, Firma...
If sendToID <= 0 Then
If firma IsNot Nothing AndAlso firma <> "" Then
sendToID = firma
art = "F"
End If
End If
'Wenn gefunden
If (art = "F" AndAlso If(sendToID, "") <> "") OrElse sendToID >= 0 Then
Dim statusAVISO = SQL.DLookup("Status", "Aviso", "AvisoID='" & AvisoId & "'", "AVISO")
Dim GrenzstelleAVISO = SQL.DLookup("Grenzstelle", "Aviso", "AvisoID='" & AvisoId & "'", "AVISO")
If GrenzstelleAVISO = "???" Then
Select Case statusAVISO
Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
'Nicht
Case Else
VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(AvisoId, SendungsId, code, art, sendToID, TXT_AAS_HEAD, prio, , TXT_AAS_BODY.Trim,,, firma)
End Select
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Return False
End Try
Return True
End Function
Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
doAASVermerke_24h()
End Sub
Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click
doAASVermerke_Ankunft()
End Sub
End Class