Option Strict On Imports System.Data Imports Extensiones Imports GemBox.Presentation Imports GemBox.Presentation.Tables Imports System.IO Imports Microsoft.Reporting.WebForms Partial Class RH_CatCursos Inherits ClsPaginas Private Property CveCurso As Integer Get If Not ViewState("CveCurso") Is Nothing Then Return ViewState("CveCurso").ToString.ToEntero Else Return 0 End If End Get Set(value As Integer) ViewState("CveCurso") = value End Set End Property Private Property Curso As String Get If Not ViewState("Curso") Is Nothing Then Return ViewState("Curso").ToString Else Return "" End If End Get Set(value As String) ViewState("Curso") = value End Set End Property Private Property ConstanciaDC3 As Boolean Get If ViewState("ConstanciaDC3") Is Nothing Then Return False Else Return DirectCast(ViewState("ConstanciaDC3"), Boolean) End If End Get Set(value As Boolean) ViewState("ConstanciaDC3") = value End Set End Property Private Property Capacitador As String Get If Not ViewState("Capacitador") Is Nothing Then Return ViewState("Capacitador").ToString Else Return "" End If End Get Set(value As String) ViewState("Capacitador") = value End Set End Property Private Property Actualizar As Boolean Get If Not ViewState("Actualizar") Is Nothing Then Return DirectCast(ViewState("Actualizar"), Boolean) Else Return False End If End Get Set(value As Boolean) ViewState("Actualizar") = value End Set End Property Private Sub RH_CatCursos_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then CargadatosCursos() LoadCombos() End If End Sub Private Sub LoadCombos() Dim objRH As New ClsRH If objRH.TemasGet(1, UsuarioActual.Empresa.CveEmpresa) Then DDlTema.DataSource = objRH.DtResultados DDlTema.DataBind() DDlTema.Items.Insert(0, New ListItem("Seleccione uno", "-1")) Else DDlTema.DataSource = Nothing End If If objRH.CapacitadoresGet(-1, 1, -1, UsuarioActual.Empresa.CveEmpresa) Then DDLCapacitador.DataSource = objRH.DtResultados Else DDLCapacitador.DataSource = Nothing End If DDLCapacitador.DataBind() DDLCapacitador.Items.Insert(0, New ListItem("Seleccione uno", "-1")) If objRH.CatalogoNacionalOcupacionesCombosGet() Then DDLAreaTematica.DataSource = objRH.DtResultados Else DDLAreaTematica.DataSource = Nothing End If DDLAreaTematica.DataBind() DDLAreaTematica.Items.Insert(0, New ListItem("Seleccione una opción", "-1")) objRH.Dispose() End Sub Protected Sub DDlTema_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDlTema.SelectedIndexChanged Dim objRH As New ClsRH If DDlTema.SelectedIndex > 0 Then If objRH.SubtemasGet(DDlTema.SelectedValue.ToEntero, 1, UsuarioActual.Empresa.CveEmpresa) Then DDLSubtema.DataSource = objRH.DtResultados DDLSubtema.DataBind() DDLSubtema.Items.Insert(0, New ListItem("Seleccione uno", "-1")) Else DDLSubtema.DataSource = Nothing End If End If UpModalCurso.Update() objRH.Dispose() End Sub Private Sub CargadatosCursos() Dim objRH As New ClsRH If objRH.CursoGet(-1, -1, -1, -1, -1, -1, UsuarioActual.Empresa.CveEmpresa) Then GvCurso.DataSource = objRH.DtResultados Else GvCurso.DataSource = Nothing End If objRH.Dispose() GvCurso.DataBind() UpGral.Update() End Sub Protected Sub BtnAgregarCurso_Click(sender As Object, e As EventArgs) Handles BtnAgregarCurso.Click LtlTituloModalCapacitadores.Text = "Agregar Curso" BtnAgregarCursosModal.Text = "Agregar" Dim objRH As New ClsRH If objRH.CursoGrupoGet(-1, UsuarioActual.Empresa.CveEmpresa) Then GvParticipantes.DataSource = objRH.DtResultados Else GvParticipantes.DataSource = Nothing End If objRH.Dispose() GvParticipantes.DataBind() CveCurso = 0 Actualizar = False ResetControles() UpGral.Update() RegistraScript(String.Format("$('#{0}').modal();", "divAgregarCurso")) End Sub Protected Sub BtnAgregarCursoModal_Click(sender As Object, e As EventArgs) Handles BtnAgregarCursosModal.Click Dim objRH As New ClsRH Dim Estatus As Integer = 0 Dim Externo As Integer = 0 Dim _ConstanciaDC3 As Integer If ChkConstancias.Checked Then _ConstanciaDC3 = 1 Else _ConstanciaDC3 = 0 End If If ChkEstatus.Checked Then Estatus = 1 Else Estatus = 0 End If RegistraScript(String.Format("$('#{0}').modal('hide');", "divAgregarCurso"), "jsHideModalCapacitador") UpGral.Update() If Not Actualizar Then If objRH.CursoAdd(TxtCurso.Text, DDlTema.SelectedValue.ToEntero, DDLSubtema.SelectedValue.ToEntero, TxtDuracion.Text.ToEntero, DDLCapacitador.SelectedValue.ToEntero, TxtObservaciones.Text, Estatus, _ConstanciaDC3, DDLAreaTematica.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa, txtInicio.Text.ToDate, TxtHoraEntrada.Text, TxtUbicacion.Text) Then CveCurso = objRH.DtResultados(0)(0).ToString.ToEntero CargadatosCursos() ActualizarGrupo(CveCurso) Alert("Curso Agregado Correctamente", TipoMensaje.MsgInformacion, "descargainvitados();") Else Alert("Ocurrio un error al guardar el Curso", TipoMensaje.MsgError) End If Else If objRH.CursoUpdate(CveCurso, TxtCurso.Text, DDlTema.SelectedValue.ToEntero, DDLSubtema.SelectedValue.ToEntero, TxtDuracion.Text.ToEntero, DDLCapacitador.SelectedValue.ToEntero, TxtObservaciones.Text, Estatus, _ConstanciaDC3, DDLAreaTematica.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa, txtInicio.Text.ToDate, TxtHoraEntrada.Text, TxtUbicacion.Text) Then ActualizarGrupo(CveCurso) CargadatosCursos() UpModalCurso.Update() Alert("Curso Actualizado Correctamente", TipoMensaje.MsgInformacion, "descargainvitados();") Else Alert("Ocurrio un error al Actualizar el Curso", TipoMensaje.MsgError) End If End If Actualizar = False objRH.Dispose() End Sub Public Sub Edit_ClickCursos(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim objRH As New ClsRH Dim activo As Boolean = False Dim constancia As Boolean = False If objRH.SubtemasGet(-1, 1, UsuarioActual.Empresa.CveEmpresa) Then DDLSubtema.DataSource = objRH.DtResultados Else DDLSubtema.DataSource = Nothing End If objRH.Dispose() DDLSubtema.DataBind() DDLSubtema.Items.Insert(0, New ListItem("Seleccione uno", "-1")) LtlTituloModalCapacitadores.Text = "Editar Curso" Actualizar = True CveCurso = GvRow.DataKey("CveCurso").ToString.ToEntero Curso = GvRow.DataKey("Curso") Capacitador = GvRow.DataKey("Capacitador") ChkConstancias.Checked = Boolean.Parse(GvRow.DataKey("ConstanciaDC3")) TxtCurso.Text = GvRow.DataKey("Curso") TxtDuracion.Text = GvRow.DataKey("Duracion") TxtObservaciones.Text = GvRow.DataKey("Observaciones") ChkEstatus.Checked = Boolean.Parse(GvRow.DataKey("Estatus")) DDlTema.SelectedValueExist(GvRow.DataKey("CveTema")) DDLSubtema.SelectedValueExist(GvRow.DataKey("CveSubtema")) DDLCapacitador.SelectedValueExist(GvRow.DataKey("CveCapacitador")) DDLAreaTematica.SelectedValueExist(GvRow.DataKey("CveAreaTematica")) txtInicio.Text = GvRow.DataKey("Fecha").ToDate.ToString("dd/MM/yyyy") TxtHoraEntrada.Text = GvRow.DataKey("Hora").ToString() TxtUbicacion.Text = GvRow.DataKey("Ubicacion").ToString() Me.DVGvGrupos.Visible = True BtnAgregarCursosModal.Text = "Actualizar" UpModalCurso.Update() UpGral.Update() CargaParticiopantesGV(CveCurso) RegistraScript("$('#divAgregarCurso').modal({ backdrop: 'static', keyboard: false}); ") End Sub Private Sub DescargaReporte() Dim RpNombreCurso As String = TxtCurso.Text Dim RpFechas As String = Now.ToString("dd/MM/yyyy") Dim RpTema As String = DDlTema.SelectedItem.Text Dim RpSubTema As String = DDLSubtema.SelectedItem.Text Dim RpCapacitador As String = DDLCapacitador.SelectedItem.Text Dim Hora As String = TxtHoraEntrada.Text Dim Ubicacion As String = TxtUbicacion.Text Dim RpDuracion As String = $"{TxtDuracion.Text} hrs." Dim RpDocumento As String = If(ChkConstancias.Checked, "Formato DC-3", "Reconocimiento") Dim objRH As New ClsRH Dim DatosAsistencia As New DataTable If objRH.CursoGrupoGet(CveCurso, UsuarioActual.Empresa.CveEmpresa, 3) Then DatosAsistencia = objRH.DtResultados End If objRH.Dispose() CveCurso = -1 If DatosAsistencia.Rows.Count > 0 Then Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim params As New List(Of ReportParameter) Dim Archivo As String = $"Empresas/{UsuarioActual.CveEmpresa}/Formatos/CursosInvitados.rdlc" If Not File.Exists($"{Server.MapPath("~")}/{Archivo}") Then Archivo = "Empresas/Grales/Formatos/CursosInvitados.rdlc" End If Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("Capacitador", DDLCapacitador.SelectedItem.Text)) params.Add(New ReportParameter("Curso", TxtCurso.Text)) params.Add(New ReportParameter("Fecha", txtInicio.Text)) params.Add(New ReportParameter("Ubicacion", TxtUbicacion.Text)) params.Add(New ReportParameter("Hora", Hora)) params.Add(New ReportParameter("Tema", DDlTema.SelectedItem.Text)) params.Add(New ReportParameter("SubTema", DDLSubtema.SelectedItem.Text)) params.Add(New ReportParameter("Duracion", $"{TxtDuracion.Text} hrs.")) params.Add(New ReportParameter("Documento", If(ChkConstancias.Checked, "Formato DC-3", "Reconocimiento"))) ResetControles() ImprimirPDF(Archivo, DatosAsistencia, params, "AsistenciasInvitados") End If End Sub Public Sub Asistencias_ClickCursos(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim objRH As New ClsRH Dim activo As Boolean = False CveCurso = GvRow.DataKey("CveCurso").ToEntero Curso = GvRow.DataKey("Curso") Capacitador = GvRow.DataKey("Capacitador") ConstanciaDC3 = Boolean.Parse(GvRow.DataKey("ConstanciaDC3")) If objRH.CursoGrupoGet(CveCurso, UsuarioActual.Empresa.CveEmpresa, 2) Then GvAsistenciaCurso.DataSource = objRH.DtResultados Else GvAsistenciaCurso.DataSource = Nothing End If objRH.Dispose() GvAsistenciaCurso.DataBind() UpAsistenciasCurso.Update() LtlAsistenciaCursoModal.Text = "Asistencias Curso - " & Curso UpModalCurso.Update() UpGral.Update() CargaParticiopantesGV(CveCurso) RegistraScript("$('#divAsistenciasCurso').modal({ backdrop: 'static', keyboard: false});") End Sub Public Sub Remove_ClickCursos(sender As Object, e As EventArgs) Dim objRH As New ClsRH Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim activo As Boolean = False Dim CveCursoI As Integer = GvRow.DataKey("CveCurso").ToEntero If objRH.CursoRemove(CveCursoI, UsuarioActual.Empresa.CveEmpresa) Then CargadatosCursos() Alert("Curso Elimino Correctamente ", TipoMensaje.MsgInformacion) Else Alert("Ocurrio un error al Eliminar el Curso", TipoMensaje.MsgError) End If CveCurso = 0 End Sub Private Sub ResetControles() TxtCurso.Text = "" TxtObservaciones.Text = "" TxtDuracion.Text = "" DDlTema.SelectedIndex = 0 DDLSubtema.Items.Clear() DDLSubtema.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DDLCapacitador.SelectedIndex = 0 ChkEstatus.Checked = True ChkConstancias.Checked = False txtInicio.Text = Now.ToString("dd/MM/yyyy") TxtHoraEntrada.Text = "" TxtUbicacion.Text = "" End Sub Private Sub CargaParticiopantesGV(CveCursoGrupo As Integer) Dim objRH As New ClsRH If objRH.CursoGrupoGet(CveCursoGrupo, UsuarioActual.Empresa.CveEmpresa) Then GvParticipantes.DataSource = objRH.DtResultados Else GvParticipantes.DataSource = Nothing End If objRH.Dispose() GvParticipantes.DataBind() UpGral.Update() End Sub Protected Sub GvParticipantes_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvParticipantes.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim chk As CheckBox = e.Row.FCCheckBox("chkGrupo") If e.Row.DBCampo("CveCurso").ToString.ToEntero > 0 Then chk.Checked = True Else chk.Checked = False End If e.Row.Height = 15 End If End Sub Private Sub ActualizarGrupo(CveCursoGrupo As Integer) Dim objRH As New ClsRH Dim existeError As Boolean = True For Each row As GridViewRow In GvParticipantes.Rows Dim CvePersonal As Integer = row.DataKey("CvePersonal").ToEntero Dim CveCursoPersonal As Integer = row.DataKey("CveCursoPersonal").ToEntero Dim _Curso As String = row.DataKey("Curso") Dim _Tema As String = row.DataKey("Tema") Dim _Subtema As String = row.DataKey("Subtema") Dim Correo As String = row.DataKey("Correo") Dim _Nombres As String = row.DataKey("Nombres") Dim _CvePersonal As Integer = row.DataKey("CvePersonal").ToString.ToEntero Dim chkGrupo As CheckBox = row.FCCheckBox("chkGrupo") Dim Contenido As String = "Buen día
Estimado(a) " & _Nombres & "
Por medio de la presente, el departamento de Capital Humano de " & UsuarioActual.Empresa.Empresa & " le hace la cordial invitación para asistir al curso " & Curso & " Impartido por el capacitador " & Capacitador & ".Esperamos contar con su asistencia." If CveCursoPersonal = -1 Then If chkGrupo.Checked = True Then If Not objRH.CursoGrupoAdd(CveCursoGrupo, CvePersonal, 0, UsuarioActual.Empresa.CveEmpresa, UsuarioActual.CveUsuario) Then Exit For Else ' If Correo.Trim.Length > 0 Then 'Cambiar validacion a true para realizar pruebas(Cambiar para) 'Dim BytesDocumento As Byte() = GenerarImvitacion(Curso, Capacitador, _Nombres, _CvePersonal) 'MandaCorreo("Invitación a Curso " & Curso, "rakcsle.rakcsle@gmail.com", "", Contenido, BytesDocumento) 'Para pruebas 'MandaCorreo("Invitación a Curso " & Curso, Correo, "", Contenido, BytesDocumento) 'End If End If End If Else If chkGrupo.Checked = False Then If Not objRH.CursoPersonalRemove(CveCursoPersonal, UsuarioActual.Empresa.CveEmpresa) Then Exit For End If End If End If Next objRH.Dispose() EnviarcorreoInvitacionCurso(CveCursoGrupo) End Sub Protected Sub BtnAsistenciasCursosModal_Click(sender As Object, e As EventArgs) Handles BtnAsistenciasCursosModal.Click Dim objRH As New ClsRH Dim existeError As Boolean = True For Each row As GridViewRow In GvAsistenciaCurso.Rows Dim CvePersonal As Integer = row.DataKey("CvePersonal").ToEntero Dim CveCursoPersonal As Integer = row.DataKey("CveCursoPersonal").ToEntero Dim Correo As String = row.DataKey("Correo") Dim Nombres As String = row.DataKey("Nombres") Dim Asistencia As Integer Dim chkAsistencia As CheckBox = row.FCCheckBox("chkAsistencia") If chkAsistencia.Checked = True Then Asistencia = 1 Else Asistencia = 0 End If If Not objRH.CursoGrupoUpdate(CveCursoPersonal, CveCurso, CvePersonal, Asistencia, UsuarioActual.Empresa.CveEmpresa, UsuarioActual.CveUsuario) Then End If Next RegistraScript("$('#divAsistenciasCurso').modal('hide');") objRH.Dispose() End Sub Protected Sub GvAsistenciaCurso_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAsistenciaCurso.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim chk As CheckBox = e.Row.FCCheckBox("chkAsistencia") Dim Asistencia As Boolean = Boolean.Parse(e.Row.DBCampo("Asistencia")) Dim lnkCursoConstancia As LinkButton = e.Row.FCLinkButton("lnkCursoConstancia") Dim RFC As String = e.Row.DataKey("RFC") If Asistencia Then chk.Checked = True If ConstanciaDC3 Then If RFC.Trim.Length > 11 And RFC.Trim.Length < 14 Then lnkCursoConstancia.Visible = True ScriptManager.GetCurrent(Me).RegisterPostBackControl(lnkCursoConstancia) Else lnkCursoConstancia.Visible = False End If Else ScriptManager.GetCurrent(Me).RegisterPostBackControl(lnkCursoConstancia) lnkCursoConstancia.Visible = True End If Else chk.Checked = False lnkCursoConstancia.Visible = False End If e.Row.Height = 15 End If End Sub Private Sub GvCursosCreaEventoDescarga() For Each dRow As GridViewRow In GvAsistenciaCurso.Rows Dim Asistencia As Boolean = Boolean.Parse(dRow.DataKey("Asistencia")) Dim lnkCursoConstancia As LinkButton = dRow.FCLinkButton("lnkCursoConstancia") Dim RFC As String = dRow.DataKey("RFC") If Asistencia Then If ConstanciaDC3 Then If RFC.Trim.Length > 11 And RFC.Trim.Length < 14 Then lnkCursoConstancia.Visible = True ScriptManager.GetCurrent(Me).RegisterPostBackControl(lnkCursoConstancia) Else lnkCursoConstancia.Visible = False End If Else ScriptManager.GetCurrent(Me).RegisterPostBackControl(lnkCursoConstancia) lnkCursoConstancia.Visible = True End If Else lnkCursoConstancia.Visible = False End If Next End Sub Public Sub ImprimirConstancia_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim objConstancias As New ClsConstancias Dim DocumenBitArray As Byte() = Nothing Dim RutaBase As String = Server.MapPath("~") Dim CvePersonal As Integer = GvRow.DataKey("CvePersonal").ToEntero 'RutaDocumento = Path.Combine(RutaDocumento, "Empresas\Grales\FormatoDC3.docx") Dim _CveCurso As Integer = GvRow.DataKey("CveCurso").ToEntero DocumenBitArray = objConstancias.PersonalConstanciaGenera(CvePersonal, _CveCurso, UsuarioActual.CveEmpresa, RutaBase, UsuarioActual.Empresa) GvCursosCreaEventoDescarga() If Not DocumenBitArray Is Nothing Then Response.Clear() Response.ContentType = "application/force-download" Response.AddHeader("content-disposition", "attachment; filename=" & CvePersonal & "_Constancia_Curso_" & _CveCurso & "_" & Now.ToString("yyyyMMddhhmmss") & ".docx") Response.BinaryWrite(DocumenBitArray) Response.End() End If End Sub Private Function GenerarImvitacion(_Curso As String, _Capacitador As String, _Nombres As String, _CvePersonal As Integer, _Fecha As String, _Ubicacion As String) As Byte() 'Darle formato a la fecha Dim FechaAux As Date = Date.Parse(_Fecha) Dim dia As Integer = Day(FechaAux) Dim mes As Integer = Month(FechaAux) Dim mesArray = New String() {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"} Dim año As Integer = Year(FechaAux) Dim RutaArchivo As String = UsuarioActual.Empresa.Ruta & "\Formatos\CursoInvitacion.docx" Dim RutaLogo As String = Path.Combine(UsuarioActual.Empresa.Ruta, "Logo.png") Dim Contenido As String = "Buen día. Estimado(a) " & _Nombres & vbLf & vbLf & vbLf & vbLf & " Por medio de la presente, el departamento de Capital Humano de esta " & UsuarioActual.Empresa.Empresa & " le hace la cordial invitación para asistir al curso " & _Curso & " impartido por el capacitador " & _Capacitador & ", el día " & dia & " de " & mesArray(mes - 1) & " de " & año & " en lugar " & _Ubicacion & "." & vbLf & vbLf & vbLf & vbLf & "Esperamos contar con su asistencia." If Not File.Exists(RutaArchivo) Then RutaArchivo = $"{Server.MapPath("~")}\Empresas\Grales\Formatos\CursoInvitacion.docx" End If Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("Curso", _Curso)) params.Add(New ReportParameter("Contenido", Contenido)) params.Add(New ReportParameter("Fecha", Today.ToString)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) Dim DtDatos As New DataTable Return StreamPDF("Empresas/72/Formatos/CursoInvitacion.rdlc", DtDatos, params, "Invitación a curso", "PDF") 'Dim objGemBoxDocument As New clsGemBoxDocument(RutaArchivo) 'Dim Tags As New List(Of TagsDocumentos) 'Tags.Add(New TagsDocumentos("{Curso}", _Curso)) 'Tags.Add(New TagsDocumentos("{Contenido}", Contenido)) ''objGemBoxDocument.AgregarImagen(RutaLogo, 61.0, 53.0) 'objGemBoxDocument.SustituirTags(Tags) 'objGemBoxDocument.GuardarStream() 'Return objGemBoxDocument.GetBytesDocumento End Function Private Sub MandaCorreo(Asunto As String, Para As String, ArrayCC As String, body As String, ArchivoBinario As Byte()) Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC) a.GuardaLog() Dim Mail As New ClsSisMail() Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) Dim itemMail As New ClsSisMail.ArchivoMail With itemMail itemMail.ArchivoBinario = ArchivoBinario itemMail.NombreArchivo = "Invitación.pdf" End With LSRutasMail.Add(itemMail) Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, body, ArrayCC, LSRutasMail) Mail = Nothing End Sub Protected Sub LnkDescargaInvitados_Click(sender As Object, e As EventArgs) DescargaReporte() End Sub Protected Sub ImgSendMails_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim activo As Boolean = False Dim constancia As Boolean = False ' ChkConstancias.Checked = Boolean.Parse(GvRow.DataKey("ConstanciaDC3")) Dim _CveCurso As Integer = GvRow.DataKey("CveCurso").ToEntero EnviarcorreoInvitacionCurso(_CveCurso) End Sub Private Sub EnviarcorreoInvitacionCurso(_CveCurso As Integer) Dim Enviar As Boolean = False Dim _Curso As String = "" Dim _Duracion As String = "" 'ChkEstatus.Checked = Boolean.Parse(GvRow.DataKey("Estatus")) Dim _Tema As String = "" Dim _SubTema As String = "" Dim _Capacitador As String = "" Dim _Fecha As String = "" Dim _Hora As String = "" Dim _Ubicacion As String = "" For Each GvRow As GridViewRow In GvCurso.Rows If _CveCurso = GvRow.DataKey("CveCurso").ToEntero Then Enviar = True _Curso = GvRow.DataKey("Curso") _Duracion = GvRow.DataKey("Duracion") & " hrs" 'ChkEstatus.Checked = Boolean.Parse(GvRow.DataKey("Estatus")) _Tema = GvRow.DataKey("Tema").ToString _SubTema = GvRow.DataKey("Subtema").ToString _Capacitador = GvRow.DataKey("Capacitador") _Fecha = GvRow.DataKey("Fecha").ToDate.ToString("dd/MM/yyyy") _Hora = GvRow.DataKey("Hora").ToString() _Ubicacion = GvRow.DataKey("Ubicacion").ToString() End If Next Dim Contador As Integer Dim objRH As New ClsRH If objRH.CursoGrupoGet(_CveCurso, UsuarioActual.Empresa.CveEmpresa) AndAlso Enviar Then For Each row As DataRow In objRH.DtResultados.Rows Dim _Correo As String = row("Correo").ToString If row("CveCurso").ToString.ToEntero > 0 And _Correo.Trim.Length > 0 Then Dim CvePersonal As Integer = row("CvePersonal").ToString.ToEntero Dim CveCursoPersonal As Integer = row("CveCursoPersonal").ToString.ToEntero Dim _Nombres As String = row("Nombres").ToString Dim _CvePersonal As Integer = row("CvePersonal").ToString.ToEntero Dim ContenidoSB As New StringBuilder ContenidoSB.Append("Buen día.
Estimado(a) " & _Nombres & "
Por medio de la presente el departamento de Capital Humano de la empresa le hace la cordial invitación para asistir al curso " & _Curso & " Impartido por " & _Capacitador & ". Esperamos contar con su asistencia.") ContenidoSB.Append("

") ContenidoSB.AppendLine("") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine($"") ContenidoSB.AppendLine("") ContenidoSB.AppendLine("
Tema:{_Tema}
Subtema:{_SubTema}
Curso:{_Curso}
Fecha:{_Fecha}
Hora:{_Hora}
Duración:{_Duracion}
Ubicación:{_Ubicacion}
Capacitador:{_Capacitador}
") Dim BytesDocumento As Byte() = GenerarImvitacion(_Curso, _Capacitador, _Nombres, _CvePersonal, _Fecha, _Ubicacion) MandaCorreo("Invitación a Curso " & Curso, _Correo, "", ContenidoSB.ToString, BytesDocumento) Contador = Contador + 1 Dim valor As Boolean = False End If Next End If objRH.Dispose() If Contador > 0 Then Alert($"Proceso terminado se enviaron {Contador} Invitaciones") End If End Sub Protected Sub ImgReimprimir_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim objRH As New ClsRH Dim activo As Boolean = False Dim constancia As Boolean = False If objRH.SubtemasGet(-1, 1, UsuarioActual.Empresa.CveEmpresa) Then DDLSubtema.DataSource = objRH.DtResultados Else DDLSubtema.DataSource = Nothing End If objRH.Dispose() DDLSubtema.DataBind() DDLSubtema.Items.Insert(0, New ListItem("Seleccione uno", "-1")) LtlTituloModalCapacitadores.Text = "Editar Curso" Actualizar = True CveCurso = GvRow.DataKey("CveCurso").ToString.ToEntero Curso = GvRow.DataKey("Curso") Capacitador = GvRow.DataKey("Capacitador") ChkConstancias.Checked = Boolean.Parse(GvRow.DataKey("ConstanciaDC3")) TxtCurso.Text = GvRow.DataKey("Curso") TxtDuracion.Text = GvRow.DataKey("Duracion") TxtObservaciones.Text = GvRow.DataKey("Observaciones") ChkEstatus.Checked = Boolean.Parse(GvRow.DataKey("Estatus")) DDlTema.SelectedValueExist(GvRow.DataKey("CveTema")) DDLSubtema.SelectedValueExist(GvRow.DataKey("CveSubtema")) DDLCapacitador.SelectedValueExist(GvRow.DataKey("CveCapacitador")) DDLAreaTematica.SelectedValueExist(GvRow.DataKey("CveAreaTematica")) txtInicio.Text = GvRow.DataKey("Fecha").ToDate.ToString("dd/MM/yyyy") TxtHoraEntrada.Text = GvRow.DataKey("Hora").ToString() TxtUbicacion.Text = GvRow.DataKey("Ubicacion").ToString() Me.DVGvGrupos.Visible = True BtnAgregarCursosModal.Text = "Actualizar" UpModalCurso.Update() UpGral.Update() CargaParticiopantesGV(CveCurso) RegistraScript("descargainvitados()") End Sub End Class