276 lines
13 KiB
VB.net
276 lines
13 KiB
VB.net
'/////////////////////////////////////////////////////////////////////////////////////////////
|
|
'//
|
|
'// AlertControl figyelmeztetõ a következő objektumokra
|
|
'// HRPersonTask
|
|
'//
|
|
'//
|
|
'////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
Imports System
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.ExpressApp.Actions
|
|
Imports DevExpress.Persistent.Base
|
|
|
|
Imports System.Windows.Forms
|
|
Imports DevExpress.XtraBars.Alerter
|
|
Imports DevExpress.ExpressApp.Utils
|
|
Imports DevExpress.Xpo
|
|
Imports DevExpress.Data.Filtering
|
|
Imports DevExpress.Persistent.BaseImpl
|
|
Imports System.Net
|
|
Imports System.IO
|
|
|
|
Public Class AlertWC
|
|
Inherits DevExpress.ExpressApp.WindowController
|
|
Private alertControlCore As AlertControl
|
|
Private alertTimerCore As Timer
|
|
Private alertTimerCoreLoggedOn As Timer
|
|
|
|
Private SISPushActivity As Timer
|
|
Public Sub New()
|
|
MyBase.New()
|
|
|
|
'This call is required by the Component Designer.
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
|
|
TargetWindowType = WindowType.Main
|
|
End Sub
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
'IDEIGLENESEN KIVETTEM !!!
|
|
'InitAlertTimerCore()
|
|
'InitAlertControlCore()
|
|
'InitAlertControlCoreLoggedOn()
|
|
'InitSISPushActivity()
|
|
End Sub
|
|
Private Sub InitSISPushActivity()
|
|
SISPushActivity = New Timer
|
|
AddHandler SISPushActivity.Tick, AddressOf SISPushActivity_Tick
|
|
SISPushActivity.Interval = 900000
|
|
SISPushActivity.Start()
|
|
End Sub
|
|
Protected Overridable Sub InitAlertControlCore()
|
|
alertControlCore = New AlertControl()
|
|
alertControlCore.AllowHtmlText = True
|
|
alertControlCore.AllowHotTrack = True
|
|
AddHandler alertControlCore.AlertClick, AddressOf alertControlCore_AlertClick
|
|
End Sub
|
|
Protected Overridable Sub InitAlertTimerCore()
|
|
alertTimerCore = New Timer()
|
|
AddHandler alertTimerCore.Tick, AddressOf alertTimerCore_Tick
|
|
alertTimerCore.Interval = 20000
|
|
alertTimerCore.Start()
|
|
End Sub
|
|
Protected Overridable Sub InitAlertControlCoreLoggedOn()
|
|
alertTimerCoreLoggedOn = New Timer()
|
|
AddHandler alertTimerCoreLoggedOn.Tick, AddressOf alertTimerCoreLoggedOn_Tick
|
|
alertTimerCoreLoggedOn.Interval = 10
|
|
alertTimerCoreLoggedOn.Start()
|
|
End Sub
|
|
|
|
Private Sub alertTimerCore_Tick(ByVal sender As Object, ByVal e As EventArgs)
|
|
alertTimerCore.Enabled = False
|
|
ActivateAlert_HRPersonTask()
|
|
ActivateAlert_HRPersonTask_Alias()
|
|
ActivateAlert_CRM_Leads_Activity_Task()
|
|
alertTimerCore.Enabled = True
|
|
End Sub
|
|
Private Sub alertTimerCoreLoggedOn_Tick(sender As Object, e As EventArgs)
|
|
alertTimerCoreLoggedOn.Enabled = False
|
|
|
|
InitAlartControlLoggedOn()
|
|
End Sub
|
|
Private Sub ActivateAlert_HRPersonTask()
|
|
If Application Is Nothing Then Exit Sub
|
|
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _CurrentUser = _uow.GetObjectByKey(Of User)(_uow.GetKeyValue(SecuritySystem.CurrentUser))
|
|
Dim _HRPerson As HRPerson = _uow.FindObject(Of HRPerson)(CriteriaOperator.Parse("User=?", _CurrentUser))
|
|
|
|
Dim _HRPersonTasks_Collection As New XPCollection(Of HRPersonTasks)(_uow, CriteriaOperator.Parse("HRPerson=? and Status in ('InProgress','NotStarted','WaitingForSomeoneElse') and isnull(AlertPeriod)=False", _HRPerson))
|
|
Dim _HRPersonTasks As HRPersonTasks
|
|
Dim _AlertMinute As Long = 0
|
|
|
|
If Application Is Nothing Then Exit Sub
|
|
If Application.MainWindow Is Nothing Then Exit Sub
|
|
If Application.MainWindow.Template Is Nothing Then Exit Sub
|
|
|
|
Dim mainForm As Form = CType(Application.MainWindow.Template, Form)
|
|
|
|
Dim i As Long = 0
|
|
|
|
For Each _HRPersonTasks In _HRPersonTasks_Collection
|
|
'// itt kell az ellenõrzés !
|
|
If DateAdd(DateInterval.Day, _HRPersonTasks.AlertPeriod.DateDayBefore, GetSQLTime(_uow)) >= _HRPersonTasks.DueDate Then
|
|
_AlertMinute = (_HRPersonTasks.AlertPeriod.PeriodHour * 60) + _HRPersonTasks.AlertPeriod.PeriodMinute
|
|
If _AlertMinute > 0 Then
|
|
If GetSQLTime(_uow).Minute Mod _AlertMinute = 0 Then
|
|
Dim info As New AlertInfo("Figyelem !", _HRPersonTasks.Subject, _HRPersonTasks.Description, ImageLoader.Instance.GetImageInfo("BO_Task").Image, _HRPersonTasks)
|
|
alertControlCore.Show(mainForm, info)
|
|
i += 1
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
If i > 50 Then Exit For '// Cask az elsõ ötven jön fel !
|
|
Next
|
|
|
|
_HRPersonTasks_Collection = New XPCollection(Of HRPersonTasks)(_uow, CriteriaOperator.Parse("HRPersonAlias=? and Status in ('InProgress','NotStarted','WaitingForSomeoneElse') and isnull(AlertPeriod)=False and DueDate<?", _HRPerson, GetSQLTime(_uow)))
|
|
i = 0
|
|
For Each _HRPersonTasks In _HRPersonTasks_Collection
|
|
_AlertMinute = (_HRPersonTasks.AlertPeriod.PeriodHour * 60) + _HRPersonTasks.AlertPeriod.PeriodMinute
|
|
If _AlertMinute > 0 Then
|
|
If GetSQLTime(_uow).Minute Mod _AlertMinute = 0 Then
|
|
Dim info As New AlertInfo("Figyelem ! Lejárt kiadott feladat !", _HRPersonTasks.Subject, _HRPersonTasks.Description, ImageLoader.Instance.GetImageInfo("warning").Image, _HRPersonTasks)
|
|
alertControlCore.Show(mainForm, info)
|
|
i += 1
|
|
End If
|
|
End If
|
|
If i > 50 Then Exit For
|
|
Next
|
|
End Sub
|
|
Private Sub ActivateAlert_CRM_Leads_Activity_Task()
|
|
If Application Is Nothing Then Exit Sub
|
|
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _CurrentUser = _uow.GetObjectByKey(Of User)(_uow.GetKeyValue(SecuritySystem.CurrentUser))
|
|
Dim _HRPerson As HRPerson = _uow.FindObject(Of HRPerson)(CriteriaOperator.Parse("User=?", _CurrentUser))
|
|
|
|
Dim _CRM_Leads_Activity_Task_Collection As New XPCollection(Of CRM_Leads_Activity_Task)(_uow, CriteriaOperator.Parse("HRPerson=? and Status in ('InProgress','NotStarted','WaitingForSomeoneElse') and isnull(AlertPeriod)=False", _HRPerson))
|
|
Dim _CRM_Leads_Activity_Task As CRM_Leads_Activity_Task
|
|
Dim mainForm As Form = CType(Application.MainWindow.Template, Form)
|
|
|
|
Dim i As Long = 0
|
|
|
|
For Each _CRM_Leads_Activity_Task In _CRM_Leads_Activity_Task_Collection
|
|
'// itt kell az ellenõrzés !
|
|
If DateAdd(DateInterval.Day, _CRM_Leads_Activity_Task.AlertPeriod.DateDayBefore, GetSQLTime(_uow)) >= _CRM_Leads_Activity_Task.DueDate Then
|
|
If _CRM_Leads_Activity_Task.AlertPeriod IsNot Nothing Then
|
|
If _CRM_Leads_Activity_Task.AlertPeriod.PeriodMinute > 0 Then
|
|
If GetSQLTime(_uow).Minute Mod _CRM_Leads_Activity_Task.AlertPeriod.PeriodMinute = 0 Then
|
|
Dim info As New AlertInfo("Figyelem !", _CRM_Leads_Activity_Task.Subject, _CRM_Leads_Activity_Task.Description, ImageLoader.Instance.GetImageInfo("BO_Task").Image, _CRM_Leads_Activity_Task)
|
|
alertControlCore.Show(mainForm, info)
|
|
i += 1
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If i > 50 Then Exit For '// Cask az elsõ ötven jön fel !
|
|
Next
|
|
End Sub
|
|
Private Sub alertControlCore_AlertClick(sender As Object, e As AlertClickEventArgs)
|
|
If Application Is Nothing Then Exit Sub
|
|
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _HRPersonTasks As HRPersonTasks
|
|
Dim _ShowViewParameters As New ShowViewParameters
|
|
Dim _ShowViewSource As New ShowViewSource(Frame, Nothing)
|
|
Dim _CRM_Leads_Activity_Task As CRM_Leads_Activity_Task
|
|
|
|
_HRPersonTasks = TryCast(e.Info.Tag, HRPersonTasks)
|
|
If _HRPersonTasks IsNot Nothing Then
|
|
If _HRPersonTasks.IsView Then
|
|
If _HRPersonTasks.ViewID <> "" Then
|
|
|
|
_ShowViewParameters.CreatedView = Application.CreateDashboardView(_onew, _HRPersonTasks.ViewID, True)
|
|
_ShowViewParameters.NewWindowTarget = NewWindowTarget.MdiChild
|
|
_ShowViewParameters.TargetWindow = TargetWindow.NewWindow
|
|
Application.ShowViewStrategy.ShowView(_ShowViewParameters, _ShowViewSource)
|
|
End If
|
|
Else
|
|
_ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "HRPersonTasks_DetailView", True, _onew.GetObject(_HRPersonTasks))
|
|
_ShowViewParameters.NewWindowTarget = NewWindowTarget.MdiChild
|
|
_ShowViewParameters.TargetWindow = TargetWindow.NewWindow
|
|
|
|
Application.ShowViewStrategy.ShowView(_ShowViewParameters, _ShowViewSource)
|
|
End If
|
|
End If
|
|
_CRM_Leads_Activity_Task = TryCast(e.Info.Tag, CRM_Leads_Activity_Task)
|
|
If _CRM_Leads_Activity_Task IsNot Nothing Then
|
|
_ShowViewParameters.CreatedView = Application.CreateDetailView(_onew, "CRM_Leads_Activity_Task_DetailView", True, _onew.GetObject(_CRM_Leads_Activity_Task))
|
|
_ShowViewParameters.NewWindowTarget = NewWindowTarget.MdiChild
|
|
_ShowViewParameters.TargetWindow = TargetWindow.NewWindow
|
|
|
|
Application.ShowViewStrategy.ShowView(_ShowViewParameters, _ShowViewSource)
|
|
End If
|
|
End Sub
|
|
Private Sub ActivateAlert_HRPersonTask_Alias()
|
|
If Application Is Nothing Then Exit Sub
|
|
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _CurrentUser = _uow.GetObjectByKey(Of User)(_uow.GetKeyValue(SecuritySystem.CurrentUser))
|
|
Dim _HRPerson As HRPerson = _uow.FindObject(Of HRPerson)(CriteriaOperator.Parse("User=?", _CurrentUser))
|
|
|
|
Dim _HRPersonTasks_Collection As New XPCollection(Of HRPersonTasks) _
|
|
(_uow, CriteriaOperator.Parse("DueDate <= ? and HRPersonAlias=? and Status in ('InProgress','NotStarted','WaitingForSomeoneElse') and isnull(AlertPeriodAlias)=False", GetSQLTime(_uow), _HRPerson))
|
|
Dim _HRPersonTasks As HRPersonTasks
|
|
|
|
If Application Is Nothing Then Exit Sub
|
|
If Application.MainWindow Is Nothing Then Exit Sub
|
|
|
|
|
|
Dim mainForm As Form = CType(Application.MainWindow.Template, Form)
|
|
|
|
Dim i As Long = 0
|
|
|
|
For Each _HRPersonTasks In _HRPersonTasks_Collection
|
|
|
|
Dim info As New AlertInfo("Figyelem !", _HRPersonTasks.Subject, _HRPersonTasks.Description, ImageLoader.Instance.GetImageInfo("BO_Task").Image, _HRPersonTasks)
|
|
alertControlCore.Show(mainForm, info)
|
|
i += 1
|
|
|
|
If i > 50 Then Exit For '// Cask az elsõ ötven jön fel !
|
|
Next
|
|
End Sub
|
|
Private Sub InitAlartControlLoggedOn()
|
|
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
|
|
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
|
|
Dim _CurrentUser = _uow.GetObjectByKey(Of User)(_uow.GetKeyValue(SecuritySystem.CurrentUser))
|
|
Dim _HRPerson As HRPerson = _uow.FindObject(Of HRPerson)(CriteriaOperator.Parse("User=?", _CurrentUser))
|
|
Dim _HRPersonTasks_Collection As New XPCollection(Of HRPersonTasks)(_uow, CriteriaOperator.Parse("HRPerson=? AND AlertPeriod.AlertType='eOnLoggedOn' AND Status<>4", _HRPerson))
|
|
|
|
If Application IsNot Nothing Then
|
|
If Application.MainWindow IsNot Nothing Then
|
|
If Application.MainWindow.Template IsNot Nothing Then
|
|
Dim mainForm As Form = CType(Application.MainWindow.Template, Form)
|
|
|
|
For Each _HRPersonTasks As HRPersonTasks In _HRPersonTasks_Collection
|
|
|
|
Dim info As New AlertInfo("Figyelem !", _HRPersonTasks.Subject, _HRPersonTasks.Description, ImageLoader.Instance.GetImageInfo("lock_time").Image, _HRPersonTasks)
|
|
alertControlCore.Show(mainForm, info)
|
|
Next
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub SISPushActivity_Tick(sender As Object, e As EventArgs)
|
|
Dim _infostring As String = GLOBAL_ActivityID
|
|
Try
|
|
_infostring = AESEncrypt(_infostring, "HrX12!!0Zm7764W2", "vXm657YS+!0@mmT")
|
|
_infostring = Convert.ToBase64String(Encoding.UTF8.GetBytes(_infostring))
|
|
|
|
Dim _url = "http://sis-r.hu/SISChat/SISPushActivitySSL.ashx?id=" & _infostring
|
|
Dim _request As HttpWebRequest = TryCast(WebRequest.Create(_url), HttpWebRequest)
|
|
Dim _response As HttpWebResponse = TryCast(_request.GetResponse, HttpWebResponse)
|
|
Dim _reader As StreamReader = New StreamReader(_response.GetResponseStream())
|
|
_infostring = _reader.ReadToEnd
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
End Class
|