/
ivan
/
ModMas
Обзор
Документация
Войти
/
ivan
/
ModMas
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ModuleMaster/mach/mailer.aspx.vb
124 строки
6 KB
i.krivokon
Initial commit
13 мар 2026, 13:49
13 мар 2026, 13:49
00d9fb6
Код
Авторство
О чём код?
Imports sharedClasses.dbFunctions Imports System.Data Imports System.Globalization Imports System.Data.SqlClient Imports Newtonsoft.Json Imports System.Net Imports System.IO Partial Class hr_mailer Inherits System.Web.UI.Page Private Function GetMACHDetails(projectId As String) As String Dim wb As WebRequest wb = WebRequest.Create(HttpContext.Current.Request.Url.AbsoluteUri.Replace("mailer", "machdetails") & "?mode=view&projectid=" & projectId) 'New Uri("otrd.aspx", UriKind.Relative)) Dim res As WebResponse = wb.GetResponse Dim sr As New StreamReader(res.GetResponseStream) Return sr.ReadToEnd End Function Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load Dim db As New SqlFunctions Dim sql As New StringBuilder sql.AppendLine("SELECT TOP 1000 [id], [row_id], ") sql.AppendLine(" [step_type], [Step_seq], [single_id], [PROCESS_TYPE] ") sql.AppendLine(" FROM [UserModules].[user].[MACH_Approval] ") sql.AppendLine(" WHERE Active_step = 'Y' ") sql.AppendLine(" AND Notification_sent = 'N' ") Message.Text = DateTime.Now.ToString & "<br/>" Dim dt As DataTable = db.GetData(sql.ToString) For Each dr As DataRow In dt.Rows Dim title As String = "" If dr("PROCESS_TYPE") = "REGISTER_SUBMIT" Then title = "[MACH] New Project waiting your approval to START" Else title = "[MACH] Project waiting your approval to FINISH" End If db.SendEmail(dr("single_id"), title, GetMACHDetails(dr("row_id"))) 'Send Step_seq to MI PIC If dr("step_seq") = 1 Then db.SendEmail("EKATERINA.KH", title, GetMACHDetails(dr("row_id"))) db.SendEmail("M.GOLTSMAN", title, GetMACHDetails(dr("row_id"))) End If '-------------------------------------------- db.NonQuery("UPDATE [UserModules].[user].[MACH_Approval] SET Notification_sent = 'Y' WHERE ID=" & dr("id")) Message.Text &= dr("single_id") & "<br />" Next 'Approval finished notification sql.Clear() sql.AppendLine("SELECT TOP 1000 [id], [row_id], ") sql.AppendLine(" [step_type], [Step_seq], [single_id], [PROCESS_TYPE] ") sql.AppendLine(" FROM [UserModules].[user].[MACH_Approval] ") sql.AppendLine(" WHERE approval_finished = 'Y' ") sql.AppendLine(" AND Notification_sent = 'N' ") dt = db.GetData(sql.ToString) For Each dr As DataRow In dt.Rows db.SendEmail(dr("single_id"), "[MACH] Approval complete", GetMACHDetails(dr("row_id"))) db.NonQuery("UPDATE [UserModules].[user].[MACH_Approval] SET Notification_sent = 'Y' WHERE ID=" & dr("id")) Message.Text &= dr("single_id") & "<br />" Next ''Approval notification for empoyee 'sql.Clear() 'sql.AppendLine("SELECT wfp.id, wfp.object_id, wfp.user_id FROM ") 'sql.AppendLine("hr.[dbo].[OT_REQUEST] otr ") 'sql.AppendLine("left join ") 'sql.AppendLine("hr.dbo.WF_Process wfp ") 'sql.AppendLine("on otr.id = wfp.object_id ") 'sql.AppendLine("where otr.status ='APPROVE' ") 'sql.AppendLine("and wfp.Message_sent = 0 ") 'dt = db.GetData(sql.ToString) 'For Each dr As DataRow In dt.Rows ' db.SendEmail(dr("User_Id"), "Overtime Request approved!", GetMACHDetails(dr("Object_id"))) ' db.NonQuery("UPDATE [hr].[dbo].[WF_Process] SET Message_sent = 1 WHERE ID=" & dr("id")) ' Message.Text &= "Approve notification:" & dr("User_Id") & "<br />" 'Next ''Reject notification for employee 'sql.Clear() 'sql.AppendLine("SELECT wfp.id,wfp.object_id, wfp.user_id FROM ") 'sql.AppendLine("hr.[dbo].[OT_REQUEST] otr ") 'sql.AppendLine("left join ") 'sql.AppendLine("hr.dbo.WF_Process wfp ") 'sql.AppendLine("on otr.id = wfp.object_id ") 'sql.AppendLine("where otr.status ='REJECT' ") 'sql.AppendLine("and wfp.Message_sent = 0 ") 'dt = db.GetData(sql.ToString) 'For Each dr As DataRow In dt.Rows ' db.SendEmail(dr("User_Id"), "Overtime Request rejected!", GetMACHDetails(dr("Object_id"))) ' db.NonQuery("UPDATE [hr].[dbo].[WF_Process] SET Message_sent = 1 WHERE ID=" & dr("id")) ' Message.Text &= "Reject notification:" & dr("User_Id") & "<br />" 'Next ''Approval notification for creator 'sql.Clear() 'sql.AppendLine("SELECT id, created_by FROM ") 'sql.AppendLine("hr.[dbo].[OT_REQUEST] otr ") 'sql.AppendLine("where otr.status ='APPROVE' ") 'sql.AppendLine("and otr.Message_sent = 0 ") 'dt = db.GetData(sql.ToString) 'For Each dr As DataRow In dt.Rows ' db.SendEmail(dr("created_by"), "Overtime Request approved!", GetMACHDetails(dr("id"))) ' db.NonQuery("UPDATE [hr].[dbo].[OT_REQUEST] SET Message_sent = 1 WHERE ID=" & dr("id")) ' Message.Text &= "Approve notification:" & dr("created_by") & "<br />" 'Next ''REject notification for creator 'sql.Clear() 'sql.AppendLine("SELECT id, created_by FROM ") 'sql.AppendLine("hr.[dbo].[OT_REQUEST] otr ") 'sql.AppendLine("where otr.status ='REJECT' ") 'sql.AppendLine("and otr.Message_sent = 0 ") 'dt = db.GetData(sql.ToString) 'For Each dr As DataRow In dt.Rows ' db.SendEmail(dr("created_by"), "Overtime Request approved!", GetMACHDetails(dr("id"))) ' db.NonQuery("UPDATE [hr].[dbo].[OT_REQUEST] SET Message_sent = 1 WHERE ID=" & dr("id")) ' Message.Text &= "Approve notification:" & dr("created_by") & "<br />" 'Next End Sub End Class