Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports System.IO Imports MKB.TimePicker Partial Class OI_EventoDetalle Inherits ClsPaginas #Region "Propiedades" Private Property CveEvento As Integer Get Return ViewState("CveEvento").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEvento") = value End Set End Property Private Property CveEventoPadre As Integer Get Return ViewState("CveEventoPadre").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEventoPadre") = value End Set End Property Private Property CveUsuarioPadre As Integer Get Return ViewState("CveUsuarioPadre").ToString.ToEntero End Get Set(value As Integer) ViewState("CveUsuarioPadre") = value End Set End Property Private Property OrdenEstatus As Integer Get Return ViewState("OrdenEstatus").ToString.ToEntero End Get Set(value As Integer) ViewState("OrdenEstatus") = value End Set End Property Private Property CveEventoEstatusSiguiente As Integer Get Return ViewState("CveEventoEstatusSiguiente").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEventoEstatusSiguiente") = value End Set End Property Private Property EventoEstatusSiguiente As String Get Return ViewState("EventoEstatusSiguiente").ToString End Get Set(value As String) ViewState("EventoEstatusSiguiente") = value End Set End Property Private Property CveEventoEstatusAnterior As Integer Get Return ViewState("CveEventoEstatusAnterior").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEventoEstatusAnterior") = value End Set End Property Private Property EventoEstatusAnterior As String Get Return ViewState("EventoEstatusAnterior").ToString End Get Set(value As String) ViewState("EventoEstatusAnterior") = value End Set End Property Private Property CveTipoEvento As Integer Get Return ViewState("CveTipoEvento").ToString.ToEntero End Get Set(value As Integer) ViewState("CveTipoEvento") = value End Set End Property Private Property Nuevo As Boolean Get Return CType(ViewState("Nuevo"), Boolean) End Get Set(value As Boolean) ViewState("Nuevo") = value End Set End Property Private Property CveSeguimiento As Integer Get Return ViewState("CveSeguimiento").ToString.ToEntero End Get Set(value As Integer) ViewState("CveSeguimiento") = value End Set End Property Private ReadOnly Property ArchConsecutivo As String Get Return ViewState("ArchConsecutivo").ToString End Get End Property Private Property DTComentarios As DataTable Get Return CType(ViewState("DTComentarios"), DataTable) End Get Set(value As DataTable) ViewState("DTComentarios") = value End Set End Property Private Property ArchivoReenvio As String Get Return ViewState("ArchivoReenvio").ToString End Get Set(value As String) ViewState("ArchivoReenvio") = value End Set End Property Private Property ArchivoActual As String Get Return ViewState("ArchivoActual").ToString End Get Set(value As String) ViewState("ArchivoActual") = value End Set End Property #End Region #Region "Propiedades Correo" Private Property EnviarCorreoTerminada() As Boolean Get Return CBool(ViewState("EnviarCorreoTerminada")) End Get Set(ByVal value As Boolean) ViewState("EnviarCorreoTerminada") = value End Set End Property Private Property EnviarCorreoRegresada() As Boolean Get Return CBool(ViewState("EnviarCorreoRegresada")) End Get Set(ByVal value As Boolean) ViewState("EnviarCorreoRegresada") = value End Set End Property Private Property UsuarioDe() As String Get Return ViewState("UsuarioDe").ToString() End Get Set(ByVal value As String) ViewState("UsuarioDe") = value End Set End Property Private Property TipoCorreo As Integer Get Return ViewState("TipoCorreo").ToString.ToEntero End Get Set(ByVal value As Integer) ViewState("TipoCorreo") = value End Set End Property Private Property CveUsuarioDe() As Integer Get Return CType(ViewState("CveUsuarioDe").ToString(), Integer) End Get Set(ByVal value As Integer) ViewState("CveUsuarioDe") = value End Set End Property Private Property CorreoDe() As String Get Return ViewState("CorreoDe").ToString() End Get Set(ByVal value As String) ViewState("CorreoDe") = value End Set End Property Private Property UsuarioPara() As String Get Return ViewState("UsuarioPara").ToString() End Get Set(ByVal value As String) ViewState("UsuarioPara") = value End Set End Property Private Property CveUsuarioPara() As Integer Get Return CType(ViewState("CveUsuarioPara").ToString(), Integer) End Get Set(ByVal value As Integer) ViewState("CveUsuarioPara") = value End Set End Property Private Property CorreoPara() As String Get Return ViewState("CorreoPara").ToString() End Get Set(ByVal value As String) ViewState("CorreoPara") = value End Set End Property Private Property UsuariosCCP() As List(Of String) Get Return CType(ViewState("UsuarioCCP"), List(Of String)) End Get Set(ByVal value As List(Of String)) ViewState("UsuarioCCP") = value End Set End Property Private Property CorreosCCP() As List(Of String) Get Return CType(ViewState("CorreosCCP"), List(Of String)) End Get Set(ByVal value As List(Of String)) ViewState("CorreosCCP") = value End Set End Property Private Property Titulo() As String Get Return ViewState("Titulo").ToString() End Get Set(ByVal value As String) ViewState("Titulo") = value End Set End Property Private Property Fecha() As String Get Return ViewState("Fecha").ToString() End Get Set(ByVal value As String) ViewState("Fecha") = value End Set End Property Private Property TipoNotificacion As Integer Get Return ViewState("TipoNotificacion").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoNotificacion") = value End Set End Property Private Property Prioridad() As Integer Get Return CType(ViewState("Prioridad"), Integer) End Get Set(ByVal value As Integer) ViewState("Prioridad") = value End Set End Property Private ReadOnly Property Attchment() As String Get Return ViewState("Attachment").ToString() End Get End Property Private Property Descripcion() As String Get Return ViewState("Descripcion").ToString() End Get Set(ByVal value As String) ViewState("Descripcion") = value End Set End Property Private ReadOnly Property EsBitacora() As Boolean Get Return CBool(ViewState("EsBitacora")) End Get End Property Private Property Referencia() As String Get Return ViewState("REFERENCIA").ToString() End Get Set(value As String) ViewState("REFERENCIA") = value End Set End Property Private ReadOnly Property CveUsuarioRealizo() As Integer Get Return ViewState("CveUsuarioRealizo").ToString().ToEntero() End Get End Property Private Property TipoEvento As String Get Return ViewState("TipoEvento").ToString() End Get Set(value As String) ViewState("TipoEvento") = value End Set End Property Private ReadOnly Property CvePendientePadre As Integer Get Return ViewState("CvePendientePadre").ToString.ToEntero End Get End Property Private Property ReferenciaDescripcion As String Get Return ViewState("ReferenciaDescripcion").ToString() End Get Set(value As String) ViewState("ReferenciaDescripcion") = value End Set End Property Private ReadOnly Property URL As String Get Return ViewState("URL").ToString() End Get End Property Private ReadOnly Property Variables As String Get Return ViewState("Variables").ToString() End Get End Property #End Region 'Private Property UsuarioPara() As String = String.Empty 'Private Property UsuariosCCP() As String = String.Empty 'Private Property CorreoPara() As String = String.Empty 'Private Property CorreosCCP() As String = String.Empty Private Property StrPrioridad() As String = String.Empty Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load If Not IsPostBack Then Dim calendarios As New AjaxControlToolkit.CalendarExtender ViewState("FName") = "" CveEvento = -1 CveEventoPadre = -1 ArchivoReenvio = "-1" TxtFechaInicio.Text = DateTime.Now.ToShortDateString TxtFechaFin.Text = DateTime.Now.ToShortDateString Dim am_pm As MKB.TimePicker.TimeSelector.AmPmSpec Dim hora As DateTime = Now.AddMinutes(15) If hora.ToString("tt") = "AM" Then am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.AM Else am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.PM TxtHoraFin.SetTime(hora.Hour, hora.Minute, am_pm) Nuevo = True UsuarioDe = "" CveUsuarioDe = -1 CveUsuarioPara = -1 CveTipoEvento = 1 UsuariosCCP = New List(Of String) UsuarioPara = "" CargaRevision() CargaAgendaTipo() CargaEstatusEventos(-1) CveUsuarioPadre = -1 'If Request("FI") IsNot Nothing AndAlso Request("FI").ToEntero > 0 Then ' TxtFechaInicio.Text = Request("FI").ToString.ToDate.ToString("dd-MM-YYYY") 'End If 'Alert("CveEvento" & Request("CveTipoEvento").ToEntero & " FechaIncicio= " & Request("FI").ToString.ToDate.ToString("dd-MM-yyyy") & "FF= " & Request("FF").ToString.ToDate.ToString("dd-MM-yyyy"), TipoMensaje.MsgInformacion, "") 'Alert("CveTipoEvento = " & Request("CveTipoEvento").ToEntero & "Fecha Inicio = " & Request("FI").ToString & " Fecha Fin = " & Request("FF").ToString & "", TipoMensaje.MsgInformacion, "") If Request("CveTipoEvento") IsNot Nothing AndAlso Request("CveTipoEvento").ToEntero > 0 Then CveTipoEvento = Request("CveTipoEvento").ToEntero 'Tarea = 1 Agenda = 2 Proyecto = 3 ControlVersiones = 4 Minuta = 5 Bitacora = 6 Select Case CveTipoEvento Case 1 CargaFolios() Tarea() LblTitulo.Text = "Tarea" Case 2 Agenda() LblTitulo.Text = "Agenda" Case 3 Proyecto() LblTitulo.Text = "Proyecto" Case 4 ControlVersiones() LblTitulo.Text = "Control de Versiones" Case 5 Minuta() LblTitulo.Text = "Minuta" Case 6 Bitacora() LblTitulo.Text = "Bitacora" End Select End If If Request("CveEvento") IsNot Nothing AndAlso IsNumeric(Request("CveEvento")) AndAlso Request("CveEvento").ToEntero > 0 Then CveEvento = Request("CveEvento").ToEntero 'btnGuardar.Visible = False CargaDatos() A1.Visible = False TxtOBs.Attributes.Add("onclick", "MostrarOpcionesObs();") TxtOBs.Attributes.Add("onfocus", "idConFocus='" + TxtOBs.ClientID + "'") TxtOBs.Attributes.Add("onmouseover", "this.style.cursor='pointer';") TxtOBs.Attributes.Add("onmouseout", "this.style.cursor='default';") ' TxtOBs.Attributes.Add("onblur", "$get('divObs').focus();") 'TxtOBs.Attributes.Add("onblur", "setTimeout(OcultarOpcionesObs, 500);")} ChkPasarEstatusSiguiente.Attributes.Add("onfocus", "idConFocus='" + ChkPasarEstatusSiguiente.ClientID + "'") ChkPasarEstatusSiguiente.Attributes.Add("onblur", "setTimeout(OcultarOpcionesObs, 100);") ChkPasarEstatusSiguiente.Attributes.Add("onclick", "idConFocus='" + ChkPasarEstatusSiguiente.ClientID + "'") ChkRegresaraEstatusAnterior.Attributes.Add("onfocus", "MostrarOpcionesObs();idConFocus='" + ChkRegresaraEstatusAnterior.ClientID + "'") ChkRegresaraEstatusAnterior.Attributes.Add("onclick", "idConFocus='" + ChkRegresaraEstatusAnterior.ClientID + "'") ChkPasarEstatusCancelado.Attributes.Add("onclick", "idConFocus='" + ChkRegresaraEstatusAnterior.ClientID + "'") ChkRegresaraEstatusAnterior.Attributes.Add("onchange", "chkCambioEstatus('ChkRegresaraEstatusAnterior');") ChkPasarEstatusSiguiente.Attributes.Add("onchange", "chkCambioEstatus('ChkPasarEstatusSiguiente');") ChkPasarEstatusCancelado.Attributes.Add("onchange", "chkCambioEstatus('ChkPasarEstatusCancelado');") 'Configuración de Modalidad Update btnGuardar.Text = "Guardar Cambios" 'deshabilitar los campos que no se pueden editar 'LtlTitulo.Text = "Consulta del Evento:" Else DdlEventoEstatus.Enabled = False lbCambiaEstatus.Visible = False HabilitaTipoEvento(CveTipoEvento) LblEstatusEvento.Text = DdlEventoEstatus.SelectedItem.Text If Request("R") IsNot Nothing AndAlso IsNumeric(Request("R")) AndAlso Request("R").ToEntero > 0 AndAlso Request("U") IsNot Nothing AndAlso IsNumeric(Request("U")) AndAlso Request("U").ToEntero >= 0 Then CveEventoPadre = Request("R").ToEntero ' CveUsuarioPadre = Request("U").ToEntero CargaReenvio() End If GetUsuarios() End If End If End Sub Private Sub CargaReenvio() Dim ObjEventos As New ClsOIEventos Dim Msg As New StringBuilder If ObjEventos.GetEvento(CveEventoPadre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then TxtAsunto.Text = ObjEventos.Asunto TxtDescripcion.Text = ObjEventos.Descripcion DdlPrioridad.SelectedValue = ObjEventos.CvePrioridad.ToString UsuarioDe = ObjEventos.UsuarioDe CorreoDe = ObjEventos.CorreoDe 'CveUsuarioPara = ObjEventos.CveUsuarioPara UsuarioPara = ObjEventos.UsuarioPara CorreoPara = ObjEventos.CorreoPara Descripcion = ObjEventos.Descripcion Prioridad = ObjEventos.CvePrioridad If ObjEventos.CveRevision > 0 Then DdlRevision.SelectedValue = ObjEventos.CveRevision.ToString 'Mostrar Archivo Adjunto TxtArchivo.Enabled = False A1.Visible = False If Not IsDBNull(ObjEventos.Archivo) AndAlso ObjEventos.Archivo <> "" AndAlso ObjEventos.Archivo <> "-1" Then A2.HRef = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OI&CveEmpresa={0}&Archivo={1}", If(ObjEventos.RolIngreso = 1037, 70, ObjEventos.CveEmpresa), ObjEventos.Archivo))) : A2.Visible = True Else A1.Visible = True ArchivoReenvio = ObjEventos.Archivo TxtFechaInicio.Text = ObjEventos.FechaInicio.ToShortDateString If ObjEventos.FechaInicio.Year > 1900 Then TxtFechaInicio.Text = ObjEventos.FechaInicio.ToString Dim am_pm As MKB.TimePicker.TimeSelector.AmPmSpec If ObjEventos.FechaInicio.ToString("tt") = "AM" Then am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.AM Else am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.PM TxtHoraInicio.settime(ObjEventos.FechaInicio.Hour, ObjEventos.FechaInicio.Minute, am_pm) End If TxtFechaFin.Text = ObjEventos.FechaFin.ToShortDateString If ObjEventos.FechaFin.Year > 1900 Then TxtFechaFin.Text = ObjEventos.FechaFin.ToString Dim am_pm As MKB.TimePicker.TimeSelector.AmPmSpec If ObjEventos.FechaFin.ToString("tt") = "AM" Then am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.AM Else am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.PM TxtHoraFin.SetTime(ObjEventos.FechaFin.Hour, ObjEventos.FechaFin.Minute, am_pm) End If End If ObjEventos.Dispose() End Sub Private Sub CargaFolios() RowFolio.Visible = True Dim ObjFolios As New ClsGralFolios() If ObjFolios.GetFolios("OI", UsuarioActual.CveEmpresa) Then Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("Estado = 'Activo'") 'Verificar primero en la sucursal del usuario If DT.FiltraParametros("CveSucursal = " + UsuarioActual.CveSucursal.ToString).Rows.Count > 0 Then ViewState("CveFolio") = DT.FiltraParametros("CveSucursal = " + UsuarioActual.CveSucursal.ToString).Rows(0)("CveFolio").ToString.ToEntero ViewState("FolioActual") = DT.FiltraParametros("CveSucursal = " + UsuarioActual.CveSucursal.ToString).Rows(0)("FActual").ToString lblFolio.Text = DT.Rows(0)("FActual").ToString ElseIf DT.Rows.Count > 0 Then ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero ViewState("FolioActual") = DT.Rows(0)("FActual").ToString lblFolio.Text = DT.Rows(0)("FActual").ToString Else Alert("No tiene registrados Folios en esta sucursal.", TipoMensaje.MsgAdvertencia) End If DT.Dispose() End If ObjFolios.Dispose() End Sub #Region "C A R G A - T I P O - E V E N T O" Private Sub Tarea() '1 CveTipoEvento = 1 'TrAgendaTipo.Visible = True TrAsunto.Visible = True TrDescripcion.Visible = True TrPrioridad.Visible = True TrFechaInicio.Visible = True TrFechaFin.Visible = True TrArchivo.Visible = True TdUsuarios.Visible = True TrRevision.Visible = True End Sub Private Sub Agenda() '2 CveTipoEvento = 2 TrAgendaTipo.Visible = True TrAsunto.Visible = True TrDescripcion.Visible = True TrPrioridad.Visible = True TrFechaInicio.Visible = True TrFechaFin.Visible = True End Sub Private Sub Proyecto() '3 CveTipoEvento = 3 TrAsunto.Visible = True TrDescripcion.Visible = True TrPrioridad.Visible = True TdUsuarios.Visible = True TrFechaInicio.Visible = True TrFechaFin.Visible = True 'TrRevision.Visible = True TrArchivo.Visible = True End Sub Private Sub ControlVersiones() '4 CveTipoEvento = 4 TrAsunto.Visible = True TrDescripcion.Visible = True TrArchivo.Visible = True End Sub Private Sub Minuta() '5 CveTipoEvento = 5 TrAsunto.Visible = True TrPrioridad.Visible = True TrDescripcion.Visible = True TdUsuarios.Visible = True TrFechaInicio.Visible = True TrArchivo.Visible = True End Sub Private Sub Bitacora() '6 CveTipoEvento = 6 TrDescripcion.Visible = True TrFechaInicio.Visible = True TrFechaFin.Visible = True End Sub #End Region Private Sub CargaDatos() If CveEvento <= 0 Then Exit Sub Dim ObjEventos As New ClsOIEventos With ObjEventos 'If ObjEventos.GetEventos(CveEvento, -1, "-1", "-1", -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, "01/01/1900".ToDateTime, "01/01/2030".ToDateTime, "01/01/2030".ToDateTime) Then If ObjEventos.GetEvento(CveEvento, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then If ObjEventos.DtResultados.Rows.Count > 0 Then Nuevo = False CveTipoEvento = .CveTipoEvento LblTitulo.Text = .TipoEvento Titulo = .Asunto If CveTipoEvento = 1 Then RowFolio.Visible = True : lblFolio.Text = .Folio.ToString TxtAsunto.Text = .Asunto TxtDescripcion.Text = .Descripcion DdlPrioridad.SelectedValue = .CvePrioridad.ToString UsuarioDe = .UsuarioDe CveUsuarioDe = .CveUsuarioDe CorreoDe = .CorreoDe CveUsuarioPara = .CveUsuarioPara UsuarioPara = .UsuarioPara CorreoPara = .CorreoPara Descripcion = .Descripcion Prioridad = .CvePrioridad lblUsuarioDe.Text = .UsuarioDe lblUsuarioPara.Text = .UsuarioPara CveSeguimiento = .CveSeguimiento TxtFechaInicio.Text = .FechaInicio.ToShortDateString TxtOrden.Text = .Orden.ToString If .CveOC > 0 Then LnkLigaCve.Text = "OC" LnkLigaCve.PostBackUrl = $"/OC/OC.aspx?OC={ .CveOC}" End If If .CveActivoFijo > 0 Then LnkLigaCve.Text = "AF" LnkLigaCve.PostBackUrl = $"/AF/AF.aspx?CveActivoFijo={ .CveActivoFijo}" End If If .CveIE > 0 Then LnkLigaCve.Text = "IE" LnkLigaCve.PostBackUrl = $"/Bancos/IE.aspx?CveIE={ .CveIE}" End If If .CveCliente > 0 Then LnkLigaCve.Text = "Cliente" LnkLigaCve.PostBackUrl = $"/Ventas/Clientes.aspx?CveCliente={ .CveCliente}" End If If .CveOS > 0 Then LnkLigaCve.Text = "OS" LnkLigaCve.PostBackUrl = $"/OS/OrdenesServicios.aspx?CveOS={ .CveOS}" End If If .CvePersonal > 0 Then LnkLigaCve.Text = "Personal" LnkLigaCve.PostBackUrl = $"/RH/Personal.aspx?CvePersonal={ .CvePersonal}" End If If .CveProveedor > 0 Then LnkLigaCve.Text = "Proveedor" LnkLigaCve.PostBackUrl = $"/Compras/Proveedores.aspx?CveProveedor={ .CveProveedor}" End If If .CveCompra > 0 Then LnkLigaCve.Text = "Compra" LnkLigaCve.PostBackUrl = $"/Compras/Compras.aspx?CveCompra={ .CveCompra}" End If If .CveVenta > 0 Then LnkLigaCve.Text = "Venta" LnkLigaCve.PostBackUrl = $"/Ventas/Ventas.aspx?CveVenta={ .CveVenta}" End If If .CveVenta > 0 Then LnkLigaCve.Text = "Venta" LnkLigaCve.PostBackUrl = $"/Ventas/Ventas.aspx?CveVenta={ .CveVenta}" End If If .CveContrato > 0 Then LnkLigaCve.Text = "Contrato" LnkLigaCve.PostBackUrl = $"/Contratos/Contrato.aspx?CveContrato={ .CveContrato}" End If If ObjEventos.FechaInicio.Year > 1900 Then TxtFechaInicio.Text = ObjEventos.FechaInicio.ToString Dim am_pm As MKB.TimePicker.TimeSelector.AmPmSpec If ObjEventos.FechaInicio.ToString("tt") = "AM" Then am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.AM Else am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.PM TxtHoraInicio.SetTime(ObjEventos.FechaInicio.Hour, ObjEventos.FechaInicio.Minute, am_pm) End If TxtFechaFin.Text = .FechaFin.ToShortDateString If ObjEventos.FechaFin.Year > 1900 Then TxtFechaFin.Text = ObjEventos.FechaFin.ToString Dim am_pm As MKB.TimePicker.TimeSelector.AmPmSpec If ObjEventos.FechaFin.ToString("tt") = "AM" Then am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.AM Else am_pm = MKB.TimePicker.TimeSelector.AmPmSpec.PM TxtHoraFin.SetTime(ObjEventos.FechaFin.Hour, ObjEventos.FechaFin.Minute, am_pm) End If TxtFechaRealTermino.Text = .FechaRealTermino.ToShortDateString TxtTipoReferencia.Text = .TipoReferencia TxtReferencia.Text = .Referencia 'Mostrar Archivo Adjunto If Not IsDBNull(ObjEventos.Archivo) AndAlso ObjEventos.Archivo <> "" AndAlso ObjEventos.Archivo <> "-1" Then A2.HRef = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OI&Archivo=\Empresas\{0}\OI\{1}", If(ObjEventos.RolIngreso = 1037, 70, ObjEventos.CveEmpresa), ObjEventos.Archivo))) : A2.Visible = True Else A1.Visible = True ' If Not IsDBNull(.Archivo) AndAlso .Archivo <> "" AndAlso .Archivo <> "-1" Then A2.HRef = String.Format("\Empresas\{0}\OI\{1}", If(.RolIngreso = 1037, 70, .CveEmpresa), .Archivo) : A2.Visible = True Else A1.Visible = True ArchivoActual = ObjEventos.Archivo If .CveRevision > 0 Then If DdlRevision.Items.FindByValue(.CveRevision.ToString) Is Nothing Then DdlRevision.Items.Insert(1, New ListItem(.Revision.ToString, .CveRevision.ToString)) End If DdlRevision.SelectedValue = .CveRevision.ToString End If If .CveAgendaTipo > 0 Then DdlAgendaTipo.SelectedValue = .CveAgendaTipo.ToString DdlPrioridad.SelectedValue = .CvePrioridad.ToString 'Dejar en la lista de Estatus solo el Anterior y el Siguiente CargaEstatusEventos(.CveEventoEstatus) DdlEventoEstatus.SelectedValue = .CveEventoEstatus.ToString LblEstatusEvento.Text = String.Format("Estatus: {0}", .EventoEstatus) uppEstatus.Update() TrEstatus.Visible = True If .CveOC > 0 Then TrReferenciaLiga.Visible = True HplReferencia.Text = "Requisición" HplReferencia.NavigateUrl = String.Format("/OC/OC.aspx?OC={0}", .CveOC) End If ViewState("OrdenEstatus") = GlobalDTOIEstatusEventos().FiltraParametros(String.Format("CveEventoEstatus = {0}", .CveEventoEstatus)).Rows(0)("Orden") 'Sacar el estatus siguiente Dim EstatusAdelante As Integer = GlobalDTOIEstatusEventos().FiltraParametros(String.Format("Orden > {0} AND CveEventoEstatus <> 5", OrdenEstatus), "Orden").Rows.Count EnviarCorreoTerminada = If(EstatusAdelante = 2, True, False) EnviarCorreoRegresada = If(EstatusAdelante = 1, True, False) If EstatusAdelante > 0 Then Dim drEstatusSiguiente As DataRow = GlobalDTOIEstatusEventos().FiltraParametros(String.Format("Orden > {0}", OrdenEstatus), "Orden").Rows(0) ViewState("CveEventoEstatusSiguiente") = drEstatusSiguiente("CveEventoEstatus") ViewState("EventoEstatusSiguiente") = drEstatusSiguiente("EventoEstatus") ChkPasarEstatusSiguiente.Text = "Pasar a " + EventoEstatusSiguiente ChkPasarEstatusSiguiente.Visible = True If (EstatusAdelante = 1 And CveUsuarioDe = UsuarioActual.CveUsuario) Or (EstatusAdelante > 1 And CveUsuarioPara = UsuarioActual.CveUsuario) Then ChkPasarEstatusSiguiente.Visible = True Else ChkPasarEstatusSiguiente.Visible = False Else ChkPasarEstatusSiguiente.Visible = False End If 'Sacar el estatus anterior If GlobalDTOIEstatusEventos().FiltraParametros(String.Format("Orden < {0}", OrdenEstatus), "Orden Desc").Rows.Count > 0 Then Dim drEstatusSiguiente As DataRow = GlobalDTOIEstatusEventos().FiltraParametros(String.Format("Orden < {0}", OrdenEstatus), "Orden Desc").Rows(0) ViewState("CveEventoEstatusAnterior") = drEstatusSiguiente("CveEventoEstatus") ViewState("EventoEstatusAnterior") = drEstatusSiguiente("EventoEstatus") 'ChkRegresaraEstatusAnterior.Text = "Regresar a " + EventoEstatusAnterior ChkRegresaraEstatusAnterior.Visible = True If (EstatusAdelante = 1 And CveUsuarioDe = UsuarioActual.CveUsuario) Or (EstatusAdelante > 1 And CveUsuarioPara = UsuarioActual.CveUsuario) Then ChkRegresaraEstatusAnterior.Visible = True Else ChkRegresaraEstatusAnterior.Visible = False Else ChkRegresaraEstatusAnterior.Visible = False End If ChkRegresaraEstatusAnterior.Checked = False ChkPasarEstatusSiguiente.Checked = False 'Si es el Usuario que la ingreso la podra cancelar, pero no podra usar el Combo del estatus ChkPasarEstatusCancelado.Visible = If(.CveUsuarioIng = UsuarioActual.CveUsuario, True, False) TxtOBs.Enabled = If(.CveEventoEstatus = 5, False, True) 'Select Case .CveEventoEstatus ' Case 1 'En Revision ' Select Case UsuarioActual.CveUsuario ' Case .CveUsuarioPara ' 'btnTerminada.Visible = True ' Select Case .CveTipoEvento ' Case 4 'Control de Versiones ' 'ChkPublicar.Visible = True ' 'btnTerminada.Visible = False ' End Select ' End Select ' Case 2 'Concluida ' Select Case UsuarioActual.CveUsuario ' Case .CveUsuarioDe ' ' btnRevisada.Visible = True ' ' btnRevision.Visible = True ' Select Case .CveTipoEvento ' Case 4 'Control de Versiones ' 'ChkPublicar.Visible = True ' ' btnRevisada.Text = "Publicar" ' ChkRegresaraEstatusAnterior.Visible = True : ChkRegresaraEstatusAnterior.Text = "Regresar a Revisión" ' End Select ' End Select ' Case 3 'Revisada 'End Select 'cargo los ususarios If .GetEventosUsuario(CveEvento, UsuarioActual.CveEmpresa) Then divUsuarios.Visible = True divSeleccionUsuarios.Visible = False gvUsuariosVista.DataSource = .DtResultados.FiltraParametros(String.Format("CveUsuario <> {0}", CveUsuarioDe)) gvUsuariosVista.DataBind() 'GVUsuarios.DataSource = AgregaGrupos(.DtResultados) 'GVUsuarios.DataBind() 'CARGALOS DATOS USUARIOSCCP For Each Dr As DataRow In .DtResultados.FiltraParametros("CveEvento > 0").Rows If UsuariosCCP Is Nothing Then UsuariosCCP = New List(Of String) UsuariosCCP.Add(Dr("Nombre").ToString) If CorreosCCP Is Nothing Then CorreosCCP = New List(Of String) CorreosCCP.Add(Dr("Correo").ToString) Next End If ' TdObservaciones.Visible = True PnlEncObs.Visible = True UPPObs.Update() ' SI es el Usuario que la ingreso la podra cancelar, pero no podra usar el Combo del estatus 'O SI, los checkbox pasar a siguiente o pasar a anterior estan desabilitados es un usuario al que no le pertenece la tarea 'O SI, ya esta cancelada If (.CveUsuarioIng = UsuarioActual.CveUsuario And .CveUsuarioIng <> .CveUsuarioPara) Or (ChkPasarEstatusSiguiente.Visible = False And ChkRegresaraEstatusAnterior.Visible = False) Or (.CveEventoEstatus = 5) Then DdlEventoEstatus.Enabled = False lbCambiaEstatus.Visible = False Else DdlEventoEstatus.Enabled = True lbCambiaEstatus.Visible = True End If lblFechaObs.Text = Now.ToString("dd/MM/yyyy") lblUsuarioObs.Text = UsuarioActual.Nombre If .GetEventosComentarios(CveEvento) Then DTComentarios = ObjEventos.DtResultados GvObservaciones.DataSource = .DtResultados GvObservaciones.DataBind() UPPDatosObs.Update() End If 'LinkReenviar.DescriptionUrl = String.Format("EventoDetalle.aspx?CveTipoEvento={0}&R={1}&U={2}", CveTipoEvento, CveEvento, CveUsuarioDe) End If If Not UsuarioDe = UsuarioActual.Nombre Then TxtAsunto.Enabled = False TxtDescripcion.Enabled = False DdlPrioridad.Enabled = False TxtFechaInicio.Enabled = False TxtFechaFin.Enabled = False TxtHoraInicio.ReadOnly = False TxtHoraFin.Enabled = False ImgCalendario.Visible = False ImgCalFechaFin.Visible = False DdlRevision.Enabled = False TxtArchivo.Enabled = False A1.Visible = False End If HabilitaTipoEvento(.CveTipoEvento) 'SI ES TAREA PARA MI NO PUEDO ADJUNTAR ARCHIVO If UsuarioPara = UsuarioActual.Nombre And Not UsuarioDe = UsuarioActual.Nombre Then A1.Visible = False End If 'SI ES TAREA ECHA POR MI Y ESTATUS <> "PENDIENTE" NO LA PUEDO REENVIAR If UsuarioDe = UsuarioActual.Nombre AndAlso DdlEventoEstatus.SelectedValue <> "1" Then LinkReenviar.Visible = False Else If CveTipoEvento = 1 Then LinkReenviar.Visible = True End If End If 'SI ES TAREA ECHA POR MI Y ESTATUS = (TERMINADA O CANCELADA O REVISADA) PUEDO CAMBIAR ESTATUS DESDE DDL If UsuarioDe = UsuarioActual.Nombre AndAlso (DdlEventoEstatus.SelectedValue = "3" Or DdlEventoEstatus.SelectedValue = "5" Or DdlEventoEstatus.SelectedValue = "4") Then DdlEventoEstatus.Enabled = True lbCambiaEstatus.Visible = True ChkPasarEstatusSiguiente.Visible = True ChkRegresaraEstatusAnterior.Visible = True If DdlEventoEstatus.SelectedValue = "4" Then DdlEventoEstatus.Items.Remove(DdlEventoEstatus.Items.FindByValue("5")) ChkPasarEstatusSiguiente.Visible = False End If End If ImgAddRevision.Visible = False End If End With ObjEventos.Dispose() End Sub Private Sub HabilitaTipoEvento(pCveTipoEvento As Integer) CveTipoEvento = pCveTipoEvento 'Tarea = 1 Agenda = 2 Proyecto = 3 ControlVersiones = 4 Minuta = 5 Bitacora = 6 Select Case pCveTipoEvento Case 1 Tarea() LblTitulo.Text = "Tarea" Case 2 Agenda() LblTitulo.Text = "Agenda" Case 3 Proyecto() LblTitulo.Text = "Proyecto" Case 4 ControlVersiones() LblTitulo.Text = "Control de Versiones" TrRevision.Visible = False TrArchivo.Visible = False 'btnRevision.Text = "Regresar a Revisión" ' btnTerminada.Text = "Por Aprobar" 'btnRevisada.Text = "Revisada" Case 5 Minuta() LblTitulo.Text = "Minuta" Case 6 Bitacora() LblTitulo.Text = "Bitácora" End Select End Sub Private Sub GetUsuarios() Dim tCveEmpresa As Integer = UsuarioActual.CveEmpresa 'CveUsuarioAsistencia If UsuarioActual.CveRol = 1037 Then tCveEmpresa = 70 'Filtro Especial Dim FiltroAD = "" 'If UsuarioActual.CveEmpresa = 66 Then ' If Not (UsuarioActual.CveUsuario = 1347 Or UsuarioActual.CveUsuario = 304) Then ' FiltroAD = String.Format("AND CveRol <> 1") ' End If 'End If Dim DT As DataTable = GlobalDTUsuarios.FiltraParametros(String.Format("CveEmpresa = {0} AND Estatus =1 {1}", tCveEmpresa, FiltroAD), "Rol ASC") GVUsuarios.DataSource = AgregaGrupos(DT) DT.Dispose() GVUsuarios.DataBind() End Sub Private Function AgregaGrupos(ByRef DT As DataTable) As DataTable If Not DT Is Nothing AndAlso DT.Rows.Count > 0 Then DT.Columns.Add(New DataColumn("Grupo", GetType(String))) Dim i As Integer = 0 Dim Gpo As String = String.Empty Dim dbRow As DataRow While i < DT.Rows.Count dbRow = DT.NewRow() If i = 0 Then Gpo = DT.Rows(0)("Rol").ToString() dbRow("Rol") = DT.Rows(i)("Rol") dbRow("Grupo") = "S" DT.Rows.InsertAt(dbRow, i) Gpo = DT.Rows(i)("Rol").ToString() Else If Gpo <> DT.Rows(i)("Rol").ToString() Then dbRow("Rol") = DT.Rows(i)("Rol") dbRow("Grupo") = "S" DT.Rows.InsertAt(dbRow, i) End If Gpo = DT.Rows(i)("Rol").ToString() End If i += 1 End While End If Return DT End Function Protected Sub gvUsuarios_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GVUsuarios.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If (Not IsDBNull(DataBinder.Eval(e.Row.DataItem, "Grupo"))) AndAlso CStr(DataBinder.Eval(e.Row.DataItem, "Grupo")) = "S" Then e.Row.CssClass = "SubTotales" e.Row.Attributes.Add("style", "background:#CCCCCC !important") e.Row.Cells(0).Visible = False e.Row.Cells(1).Visible = False e.Row.Cells(2).Visible = False e.Row.Cells(3).ColumnSpan = 3 Else e.Row.Cells(3).Visible = False End If If Not Nuevo AndAlso e.Row.DBCampo("Empresa").ToString <> "" AndAlso e.Row.DBCampo("CveUsuario") = CveUsuarioPara.ToString Then e.Row.Cells(0).Enabled = False e.Row.FCCheckBox("ChkPara").Checked = True End If If Nuevo = True AndAlso e.Row.DBCampo("CveUsuario") = UsuarioActual.CveUsuario.ToString Then e.Row.Cells(1).Enabled = False e.Row.FCCheckBox("ChkCCP").Checked = True End If If Nuevo = True AndAlso e.Row.DBCampo("CveUsuario").ToEntero = CveUsuarioPadre Then e.Row.Cells(1).Enabled = False e.Row.FCCheckBox("ChkCCP").Checked = True End If If CveEvento > 0 And divSeleccionUsuarios.Visible = False Then 'viene de BD e.Row.FCCheckBox("ChkPara").Enabled = False e.Row.FCCheckBox("ChkCCP").Enabled = False 'si se cumple esta condición que decir que fue selecccionado If e.Row.DBCampo("CveEvento") <> "" Then e.Row.FCCheckBox("ChkCCP").Checked = True ElseIf Nuevo = False And e.Row.DBCampo("CveUsuario").ToEntero <> CveUsuarioPara Then e.Row.Visible = False End If End If End If End Sub Protected Sub gvUsuariosVista_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvUsuariosVista.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If CveEvento > 0 Then 'viene de BD 'si se cumple esta condición que decir que fue selecccionado If e.Row.DBCampo("CveEvento").ToEntero = 0 Then e.Row.Visible = False End If End If End If End Sub Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGuardar.Click Dim Asunto As String = TxtAsunto.Text.Trim Descripcion = TxtDescripcion.Text.Trim 'Dim CveUsuarioPara As Integer = CveUsuarioPara.ToString.ToEntero 'Dim FechaInicio As DateTime = TxtFechaInicio.Text.ToDateTime Dim FechaInicio As String = "" Dim FechaFin As String = "" If TxtFechaInicio.Text <> String.Empty Then FechaInicio = String.Format("{0} {1}:{2} {3}", TxtFechaInicio.Text, TxtHoraInicio.Hour, TxtHoraInicio.Minute, TxtHoraInicio.AmPm) If TxtFechaFin.Text <> String.Empty Then FechaFin = String.Format("{0} {1}:{2} {3}", TxtFechaFin.Text, TxtHoraFin.Hour, TxtHoraFin.Minute, TxtHoraFin.AmPm) Dim Attachment As String = String.Empty Dim CveUsuarioCCP As Integer = -1 Dim CveUsuarioPara As Integer = -1 Dim CveUsuarioIng As Integer = UsuarioActual.CveUsuario 'Dim FechaFin As DateTime = TxtFechaFin.Text.ToDateTime 'Dim Orden As Integer = TxtOrden.Text.ToString.ToEntero Dim CveRevision As Integer = DdlRevision.SelectedValue.ToString.ToEntero Dim Archivo As String = TxtArchivo.Text Dim CveEmpresa As Integer = UsuarioActual.CveEmpresa '----------------------------------------- 'Dim CveTipoEvento As Integer Dim CveAgendaTipo As Integer = DdlAgendaTipo.SelectedValue.ToEntero Dim Prioridad As Integer Dim CveUsuarioDe As Integer = UsuarioActual.CveUsuario 'Dim CveEventoEstatus As Integer ' Dim FechaRealTermino As Integer ' Dim CveEventoPadre As Integer ' Dim Orden As Integer ' Dim Acuerdos As Integer ' Dim CveEventoComentario As Integer ' Dim Geom As Integer Dim CveActivoFijo As Integer = -1 Dim CveIE As Integer = -1 Dim CveProspecto As Integer = -1 Dim CveCliente As Integer = -1 Dim CveOS As Integer = -1 Dim CveOC As Integer = -1 Dim CvePersonal As Integer = -1 Dim CveProveedor As Integer = -1 Dim CveUsuario As Integer = -1 '------------------------------------------ 'Recorrro Grid para obtener el usuario PARA For Each RowPara As GridViewRow In GVUsuarios.Rows If RowPara.FCCheckBox("ChkPara").Checked Then CveUsuarioPara = GVUsuarios.DataKeys(RowPara.RowIndex).Values("CveUsuario").ToString.ToEntero UsuarioPara = GVUsuarios.DataKeys(RowPara.RowIndex).Values("Nombre").ToString Exit For End If Next If (CveUsuarioPara = -1 And divSeleccionUsuarios.Visible = False) Or (CveUsuarioPara = -1 And divSeleccionUsuarios.Visible = True) Then Alert("Debe Seleccionar a quien se le asigna la tarea", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjEventos As New ClsOIEventos() Dim HuboError As Boolean = False ObjEventos.IniciaTransacSQL() Titulo = TxtAsunto.Text.Trim() UsuarioDe = UsuarioActual.Nombre Prioridad = DdlPrioridad.SelectedValue.ToEntero CveRevision = DdlRevision.SelectedValue.ToEntero Fecha = Now.ToLongDateString 'CveUsuarioPara = DdlUsuarioPara.SelectedValue.ToEntero 'UsuarioPara = DdlUsuarioPara.SelectedItem.Text Dim dru As DataRow = GlobalDTUsuarios(CveUsuarioPara).FiltroPrimero("") If dru IsNot Nothing Then CorreoPara = dru("Correo").ToString Dim RutaGuardar = "" RutaGuardar = String.Format("{0}OI\", UsuarioActual.Empresa.Ruta) Dim RutaArchivo = "" Dim EsNuevo = False If CveEvento = -1 Then 'Dim RutaGuardar As String = String.Format("{0}Empresas\{1}\OI\", GlobalDTParametros(SisParametros.DirectorioSitio).Cadena1, UsuarioActual.CveEmpresa) 'Dim RutaArchivo As String = String.Format("{0}Empresas\{1}\OI\Temp\{2}", GlobalDTParametros(SisParametros.DirectorioSitio).Cadena1, UsuarioActual.CveEmpresa, Session("Eventos")) EsNuevo = True 'CUANDO ES REENVIO If CveEventoPadre > 0 Then If A2.HRef <> "" Then RutaArchivo = String.Format("{0}{1}", ModExtensiones.DirectorioBaseEmpresas, A2.HRef.Substring(1)) If File.Exists(RutaArchivo) Then Archivo = Path.GetExtension(ArchivoReenvio) End If If UsuarioActual.CveRol = 1037 Then RutaGuardar = String.Format("{0}Empresas\70\OI\", ModExtensiones.DirectorioBaseEmpresas) RutaGuardar.DirectoryExistsCreate End If Else RutaArchivo = String.Format("{0}OI\Temp\{1}", UsuarioActual.Empresa.Ruta, ViewState("FName").ToString) If Session("Eventos") IsNot Nothing AndAlso File.Exists(RutaArchivo) Then If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar) Archivo = Path.GetExtension(Session("Eventos").ToString) End If End If Select Case CveTipoEvento Case 1 If ObjEventos.AddEventoTarea(Asunto, Descripcion, Prioridad, CveUsuarioDe, CveUsuarioPara, FechaInicio.ToDateTime, FechaFin.ToDateTime, CveEventoPadre, TxtOrden.Text.ToDouble, CveRevision, Archivo, CveActivoFijo, CveIE, CveProspecto, CveCliente, CveOS, CveOC, CvePersonal, CveProveedor, CveUsuarioIng, CveUsuario, CveEmpresa) Then CveEvento = ObjEventos.CveEvento Alert("La Nueva Tarea se guardó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/OI/RepTareas.aspx"";") Else HuboError = True End If Case 2 If ObjEventos.AddEventoAgenda(CveAgendaTipo, Asunto, Descripcion, Prioridad, FechaInicio.ToDateTime, FechaFin.ToDateTime, CveUsuarioIng, CveEmpresa, CveActivoFijo, CveIE, CveProspecto, CveCliente, CveOS, CveOC, CvePersonal, CveProveedor) Then CveEvento = ObjEventos.CveEvento Alert("La Nueva Agenda se guardó correctamente.", TipoMensaje.MsgInformacion) Else HuboError = True End If Case 3 If ObjEventos.AddEventoProyecto(Asunto, Descripcion, Prioridad, CveUsuarioDe, CveUsuarioPara, FechaInicio.ToDateTime, FechaFin.ToDateTime, CveEventoPadre, CveRevision, Archivo, CveActivoFijo, CveIE, CveProspecto, CveCliente, CveOS, CveOC, CvePersonal, CveProveedor, CveUsuarioIng, CveUsuario, CveEmpresa) Then CveEvento = ObjEventos.CveEvento Alert("El Nuevo Proyecto se guardó correctamente.", TipoMensaje.MsgInformacion) Else HuboError = True End If Case 4 If ObjEventos.AddEventoControlVersionesDoctos(Asunto, Descripcion, Archivo, CveUsuarioIng, CveEmpresa) Then CveEvento = ObjEventos.CveEvento Alert("La Nueva Versión se guardó correctamente.", TipoMensaje.MsgInformacion) Else HuboError = True End If Case 5 If ObjEventos.AddEventoMinuta(Asunto, Descripcion, "", CveUsuarioDe, CveUsuarioPara, FechaInicio.ToDateTime, Archivo, CveUsuarioIng, CveEmpresa) Then CveEvento = ObjEventos.CveEvento Alert("La Nueva Minuta se guardó correctamente.", TipoMensaje.MsgInformacion) Else HuboError = True End If Case 6 If ObjEventos.AddEventoBitacora(Descripcion, "", CveUsuarioIng, CveEmpresa, CveActivoFijo:=CveActivoFijo, CveIE:=CveIE, CveProspecto:=CveProspecto, CveCliente:=CveCliente, CveOS:=CveOS, CveOC:=CveOC, CvePersonal:=CvePersonal, CveProveedor:=CveProveedor) Then CveEvento = ObjEventos.CveEvento Alert("La Nueva Bitacora se guardó correctamente.", TipoMensaje.MsgInformacion) Else HuboError = True End If End Select If HuboError = False And CveEvento > 0 Then If Archivo <> "" Then If CveEventoPadre > 0 Then File.Copy(RutaArchivo, String.Format("{0}OI{1}{2}", RutaGuardar, CveEvento, Archivo)) Else File.Move(RutaArchivo, String.Format("{0}OI{1}{2}", RutaGuardar, CveEvento, Path.GetExtension(Archivo))) Session("Eventos") = "" End If End If TipoNotificacion = 1 For Each RowCCP As GridViewRow In GVUsuarios.Rows If HuboError = False And RowCCP.FCCheckBox("ChkCCP").Checked Then CveUsuarioPara = GVUsuarios.DataKeys(RowCCP.RowIndex).Values("CveUsuario").ToString.ToEntero If ObjEventos.AddEventoUsuario(CveEvento, CveUsuarioPara) Then 'Genero las claves, nombres y correos aquíen se le enviará correo CveUsuarioCCP = RowCCP.DataKey("CveUsuario").ToString().ToEntero() If CveUsuarioCCP <> UsuarioActual.CveUsuario Then If UsuariosCCP Is Nothing Then UsuariosCCP = New List(Of String) UsuariosCCP.Add(RowCCP.DataKey("Nombre").ToString) If CorreosCCP Is Nothing Then CorreosCCP = New List(Of String) CorreosCCP.Add(RowCCP.DataKey("Correo").ToString) End If Else HuboError = True Exit For End If End If Next If HuboError = False Then Dim Cadena As String = String.Format("location.href='/OI/EventoDetalle.aspx?CveEvento={0}'", CveEvento) Select Case CveTipoEvento Case 4 : Cadena = "location.href='/OI/RepDocumentos.aspx'" End Select 'Alert("El Nuevo Evento se guardó correctamente.", TipoMensaje.MsgInformacion, Cadena) End If End If Else RutaArchivo = String.Format("{0}OI\Temp\{1}", UsuarioActual.Empresa.Ruta, Session("Eventos")) If Session("Eventos") IsNot Nothing AndAlso File.Exists(RutaArchivo) Then If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar) Archivo = Path.GetExtension(Session("Eventos").ToString) End If If ObjEventos.UpdateEvento(Asunto, Descripcion, Prioridad, -1, CveUsuarioPara, FechaInicio.ToDateTime, FechaFin.ToDateTime, CveRevision, Archivo, CveEvento, Orden:=TxtOrden.Text.ToDouble) Then 'UpAsunto.Update() 'ViewState("DTEventos") = ObjEventos.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) 'GlobalDTEventos = ObjEventos.DtResultados ' '' '' ''Manda llamar DELETE FROM EventosUsuarios WHERE CveEvento = Evento Actual '' '' ''For Each Row As GridViewRow In GVUsuarios.Rows '' '' '' If Row.FCCheckBox("ChkCCP").Checked Then '' '' '' 'Manda llamar INSERT '' '' '' If ObjEventos.a Then '' '' '' 'Mandar parametro CveEvento CveUsuario (GVUsuario.DataKeys(Row.RowIndex).Values("CveUsuario").ToString.ToEntero) '' '' '' End If '' '' ''Next If divSeleccionUsuarios.Visible Then If ObjEventos.RemoveEventoUsuario(CveEvento) Then For Each RowCCP As GridViewRow In GVUsuarios.Rows If RowCCP.FCCheckBox("ChkCCP").Checked Then CveUsuarioPara = GVUsuarios.DataKeys(RowCCP.RowIndex).Values("CveUsuario").ToString.ToEntero If ObjEventos.AddEventoUsuario(CveEvento, CveUsuarioPara) Then 'Genero las claves, nombres y correos aquíen se le enviará correo CveUsuarioCCP = RowCCP.DataKey("CveUsuario").ToString().ToEntero() If CveUsuarioCCP <> UsuarioActual.CveUsuario Then If UsuariosCCP Is Nothing Then UsuariosCCP = New List(Of String) UsuariosCCP.Add(RowCCP.DataKey("Nombre").ToString) If CorreosCCP Is Nothing Then CorreosCCP = New List(Of String) CorreosCCP.Add(RowCCP.DataKey("Correo").ToString) End If Else HuboError = True Exit For End If End If Next Else HuboError = True End If End If Else HuboError = True End If If HuboError = False Then If Archivo <> "" Then 'ELIMINA ARCHIVO If ArchivoActual <> "" Then If File.Exists(String.Format("{0}{1}", RutaGuardar, ArchivoActual)) Then File.Delete(String.Format("{0}{1}", RutaGuardar, ArchivoActual)) End If End If If CveEventoPadre > 0 Then File.Copy(RutaArchivo, String.Format("{0}OI{1}{2}", RutaGuardar, CveEvento, Archivo)) Else File.Move(RutaArchivo, String.Format("{0}OI{1}{2}", RutaGuardar, CveEvento, Path.GetExtension(Archivo))) Session("Eventos") = "" End If End If End If End If If HuboError = False Then ObjEventos.Commit() EnviarCorreoNueva(True) If Not EsNuevo Then Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) End If Else ObjEventos.RollBack() Alert("Ocurrió un error al guardar los cambios. Por favor vuelva a intentar", TipoMensaje.MsgError) End If ObjEventos.Dispose() CargaDatos() End Sub 'Protected Sub BtnCargarArchivo_Click(sender As Object, e As System.EventArgs) Handles BtnCargarArchivo.Click ' If Session("FileUpload").ToString <> String.Empty AndAlso File.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\" & Session("FileUpload").ToString) Then ' Dim Extension As String = Path.GetExtension(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\" & Session("FileUpload").ToString) ' If Not Directory.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Eventos\Archivos") Then Directory.CreateDirectory(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Eventos\Archivos") ' File.Move(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Temp\" & Session("FileUpload").ToString, ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Eventos\" & CveEvento & "_" & ArchConsecutivo & Extension) ' Session("FileUpload") = "" ' If File.Exists(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Eventos\Archivos" & CveEvento & "_" & ArchConsecutivo & Extension) Then ' Dim ObjActivosFijos As New ClsActivosFijos ' If ObjActivosFijos.AddActivosFijosImagenes(CveEvento, CveEvento & "_" & ArchConsecutivo & Extension, UsuarioActual.CveUsuario) Then ' 'CargarArchivo() ' Else ' File.Delete(ModExtensiones.DirectorioBaseEmpresas + "Empresas\" & UsuarioActual.CveEmpresa & "\Eventos\Archivos" & CveEvento & "_" & ArchConsecutivo & Extension) ' End If ' ObjActivosFijos.Dispose() ' End If ' End If 'End Sub Private Sub CargaRevision() DdlRevision.DataSource = GlobalDTOIRevision(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveUsuario = {0}", UsuarioActual.CveUsuario)) DdlRevision.DataBind() DdlRevision.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub CargaAgendaTipo() DdlAgendaTipo.DataSource = GlobalDTOIAgendaTipo DdlAgendaTipo.DataBind() End Sub Private Sub CargaEstatusEventos(CveEventoEstatus As Integer) Dim Dt As DataTable = GlobalDTOIEstatusEventos.FiltraParametros("CveEventoEstatus = 0") If CveEventoEstatus = -1 Then Dt = GlobalDTOIEstatusEventos Else Dim Orden As Integer Dim Row As DataRow = GlobalDTOIEstatusEventos.FiltroPrimero(String.Format("CveEventoEstatus = {0}", CveEventoEstatus)) Dim RowA As DataRow = Dt.NewRow RowA("CveEventoEstatus") = Row("CveEventoEstatus") RowA("EventoEstatus") = Row("EventoEstatus") RowA("Orden") = Row("Orden") Dt.Rows.Add(RowA) Orden = Row("Orden").ToString.ToEntero Row = GlobalDTOIEstatusEventos.FiltroPrimero(String.Format("Orden < {0}", Orden)) If Not Row Is Nothing Then RowA = Dt.NewRow RowA("CveEventoEstatus") = Row("CveEventoEstatus") RowA("EventoEstatus") = Row("EventoEstatus") RowA("Orden") = Row("Orden") Dt.Rows.Add(RowA) End If Row = GlobalDTOIEstatusEventos.FiltroPrimero(String.Format("Orden > {0}", Orden)) If Not Row Is Nothing Then RowA = Dt.NewRow RowA("CveEventoEstatus") = Row("CveEventoEstatus") RowA("EventoEstatus") = Row("EventoEstatus") RowA("Orden") = Row("Orden") Dt.Rows.Add(RowA) End If 'If CveEventoEstatus <> -1 Then ' 'Dejar solo el estatus actual y el siguiente ' Dim EventoEstatusAnt As DataRow ' Dim Eliminar As Boolean = False ' For Each Row As DataRow In Dt.Rows ' If Eliminar = True Then ' Dt.Rows.Remove(Row) ' Else ' If Not EventoEstatusAnt Is Nothing Then ' If Row("CveEventoEstatus").ToString.ToEntero <> CveEventoEstatus Then ' Dt.Rows.Remove(EventoEstatusAnt) ' End If ' If EventoEstatusAnt("CveEventoEstatus").ToString.ToEntero = Row("CveEventoEstatus").ToString.ToEntero Then ' Eliminar = True ' End If ' End If ' End If ' EventoEstatusAnt = Row ' Next 'End If End If DdlEventoEstatus.DataSource = Dt.FiltraParametros("", "Orden") DdlEventoEstatus.DataBind() End Sub 'Private Sub CargarArchivo() ' Dim StrBuilder As New StringBuilder ' Dim TmpDT As DataTable = Nothing ' Dim ObjEvento As New ClsActivosFijos ' If ObjEvento.GetActivosFijosImagenes(CveEvento) Then ' TmpDT = ObjEvento.DtResultados ' Else ' TmpDT = Nothing ' End If ' ObjEvento.Dispose() ' myGallery.InnerHtml = "" ' If TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count > 0 Then ' For Each Row As DataRow In TmpDT.Rows ' StrBuilder.Append(Row("URL")) ' Next ' myGallery.InnerHtml = StrBuilder.ToString ' ViewState("ArchConsecutivo") = TmpDT.Rows(0)("ArchConsecutivo").ToString ' TmpDT.Dispose() ' RegistraScript("$(function () { $('#myGallery').galleryView(); });") ' Else ' ViewState("ArchConsecutivo") = "1" ' End If 'End Sub Protected Sub BtnAddObs_Click(sender As Object, e As EventArgs) Handles BtnAddObs.Click 'Dim RutaGuardar As String = String.Format("{0}Empresas\{1}\OI\", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa) 'Dim RutaGuardar As String = String.Format("{0}Empresas\{1}\OI\", GlobalDTParametros(SisParametros.DirectorioSitio).Cadena1, UsuarioActual.CveEmpresa) 'Dim RutaArchivo As String = String.Format("{0}Empresas\{1}\OI\Temp\{2}", GlobalDTParametros(SisParametros.DirectorioSitio).Cadena1, UsuarioActual.CveEmpresa, Session("Eventos2")) Dim OI As New ClsOIEventos OI.IniciaTransacSQL() Dim RutaGuardar As String = String.Format("{0}OI\Comentarios\", UsuarioActual.Empresa.Ruta) Dim RutaArchivo As String = String.Format("{0}OI\Temp\{1}", UsuarioActual.Empresa.Ruta, Session("Eventos2")) Dim tCveSeguimiento As Integer Dim Archivo As String = "" Dim TieneError = False If TxtOBs.Text.Trim = "" AndAlso Not File.Exists(RutaArchivo) Then Alert("Indique una Observación o Adjunte un Archivo", TipoMensaje.MsgAdvertencia) Exit Sub End If If Session("Eventos2") IsNot Nothing AndAlso File.Exists(RutaArchivo) Then If Not Directory.Exists(RutaGuardar) Then Directory.CreateDirectory(RutaGuardar) Archivo = Path.GetExtension(Session("Eventos2").ToString) End If tCveSeguimiento = OI.AddEventoComentario(CveEvento, TxtOBs.Text, Archivo, UsuarioActual.CveUsuario) If tCveSeguimiento > 0 Then If Archivo <> "" Then If File.Exists(RutaGuardar & Archivo) Then File.Delete(RutaGuardar & Archivo) File.Move(RutaArchivo, RutaGuardar & "OI" & tCveSeguimiento & Path.GetExtension(Archivo)) Session("Eventos2") = "" End If If ChkRegresaraEstatusAnterior.Checked Then CveEventoEstatusAnterior = 1 If Not OI.UpdateEstatusEvento(CveEventoEstatusAnterior, tCveSeguimiento, CveEvento, UsuarioActual.CveUsuario) Then TieneError = True End If End If If ChkPasarEstatusSiguiente.Checked Then If Not OI.UpdateEstatusEvento(CveEventoEstatusSiguiente, tCveSeguimiento, CveEvento, UsuarioActual.CveUsuario) Then TieneError = True End If End If If ChkPasarEstatusCancelado.Checked Then If Not OI.UpdateEstatusEvento(5, tCveSeguimiento, CveEvento, UsuarioActual.CveUsuario) Then TieneError = True End If End If 'If ChkPasarEstatusSiguiente.Checked And CveUsuarioDe = UsuarioActual.CveUsuario Then ' If Not OI.UpdateEstatusEvento(3, CveSeguimiento, CveEvento, UsuarioActual.CveUsuario) Then ' OI.RollBack() ' Else ' 'hago una copia del archivo del comentario ' 'File.Copy(RutaArchivo, RutaGuardar & tCveSeguimiento & Path.GetExtension(Archivo)) ' End If 'End If Fecha = Now.ToLongDateString Alert("La observación se guardó correctamente.", TipoMensaje.MsgInformacion) TxtOBs.Text = "" 'registrascript la imagen DTComentarios = OI.DtResultados 'GvObservaciones.DataSource = DTComentarios.FiltraParametros("", "FechaIng Desc") 'GvObservaciones.DataBind() 'UPPObs.Update() 'UPPDatosObs.Update() Else TieneError = True End If If Not TieneError Then OI.Commit() OI.Dispose() 'Enviar correo If (EnviarCorreoTerminada = True And ChkPasarEstatusSiguiente.Checked = True) Or (EnviarCorreoRegresada = True And ChkRegresaraEstatusAnterior.Checked = True) Then EnviarCorreoCambioEstatus(False) End If CargaDatos() Else OI.RollBack() OI.Dispose() End If End Sub Protected Sub GvObservaciones_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvObservaciones.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("Archivo") <> "" Then 'ANTERIOR 20 FEBRERO 'e.Row.FCHyperLink("HplA").NavigateUrl = String.Format("\Empresas\{0}\OI\Comentarios\OI{1}", e.Row.DBCampo("CveEmpresa"), e.Row.DBCampo("Archivo")) e.Row.FCHyperLink("HplA").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OI&Archivo=\Empresas\{0}\OI\Comentarios\OI{1}", e.Row.DBCampo("CveEmpresa"), e.Row.DBCampo("Archivo")))) End If End If End Sub Protected Sub lbCambiaEstatus_Click(sender As Object, e As System.EventArgs) Handles lbCambiaEstatus.Click Dim objOI As New ClsOIEventos If objOI.UpdateEstatusEvento(DdlEventoEstatus.SelectedValue.ToEntero, -1, CveEvento, UsuarioActual.CveUsuario) Then CargaEstatusEventos(DdlEventoEstatus.SelectedValue.ToEntero) If DdlEventoEstatus.SelectedValue.ToEntero = 3 Or DdlEventoEstatus.SelectedValue.ToEntero = 1 Then EnviarCorreoCambioEstatus(False) CargaDatos() Alert("Se cambio el Estatus", TipoMensaje.MsgInformacion) End If objOI.Dispose() End Sub Protected Sub BtnAgregarRevision_Click(sender As Object, e As EventArgs) Dim ObjEventos As New ClsOIEventos If ObjEventos.AddRevisionesEventos(TxtDescripcionRevision.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then Alert("Revisión agregada con éxito.", TipoMensaje.MsgInformacion) RegistraScript("$get('DivRevision').style.display='none';") TxtDescripcionRevision.Text = "" GlobalDTOIRevision(-1) = ObjEventos.DtResultados CargaRevision() UpRevision.Update() Else Alert("Ocurrió un error al agregar la revisión. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If ObjEventos.Dispose() End Sub Protected Sub LinkReenviar_Click(sender As Object, e As ImageClickEventArgs) Response.Redirect(String.Format("EventoDetalle.aspx?CveTipoEvento={0}&R={1}&U={2}", CveTipoEvento, CveEvento, CveUsuarioDe)) End Sub #Region " ENVIAR CORREO " Private Sub MandarMailsX(ByVal ObjTipo As Object) Dim Tipo As Integer = ObjTipo.ToString().ToEntero() If Prioridad = 1 Then StrPrioridad = "Baja" ElseIf Prioridad = 2 Then StrPrioridad = "Media" ElseIf Prioridad = 3 Then StrPrioridad = "Alta" Else StrPrioridad = "No definida" End If Dim OI As New ClsOIEventos Dim DT As DataTable = Nothing If OI.GetEventosUsuario(CveEvento, UsuarioActual.CveEmpresa) Then DT = OI.DtResultados.FiltraParametros("CveEvento > 0") End If OI.Dispose() ' Dim Mail As New ClsSisMail() If Nuevo Then 'Mail.Mandacorreo(UsuarioActual.Empresa, CorreoPara, ": Te asignó una tarea " & UsuarioActual.Nombre & " en SIG.", GeneraContenido(CveEvento, Titulo, UsuarioDe, UsuarioPara, UsuariosCCP.ToString, Fecha, StrPrioridad, Descripcion, "", Tipo).ToString) 'Manda correo CCP. 'If CorreosCCP.Length >= 1 Then CorreosCCP = CorreosCCP.Substring(0, CorreosCCP.Length - 1) If CorreosCCP IsNot Nothing AndAlso CorreosCCP.Count > 1 Then Dim ArrCCP As String() = CorreosCCP.ToArray If ArrCCP.Length > 0 Then 'Dim SB As StringBuilder = GeneraContenido(CveEvento, Titulo, UsuarioActual.Nombre, UsuarioPara, UsuariosCCP, Now.ToString(), StrPrioridad, Descripcion, "", 1) For i As Integer = 0 To ArrCCP.Length - 1 If ArrCCP(i) <> "" Then 'Mail.Mandacorreo(UsuarioActual.Empresa, , ArrCCP(i), " " & UsuarioActual.Nombre & " le asignó una tarea a " & UsuarioPara & " en SIG.", SB.ToString) End If Next End If End If Else If DT.Rows.Count > 0 Then Dim Str As String = "" Select Case Tipo Case 1 : Str = "El usuario: " & UsuarioActual.Nombre & " registró una tarea: " & Titulo Case 2 : Str = "El usuario: " & UsuarioActual.Nombre & " agregó una observación en la tarea: " & Titulo Case 3 : Str = "El usuario: " & UsuarioActual.Nombre & " concluyó la tarea: " & Titulo Case 4 : Str = "El usuario: " & UsuarioActual.Nombre & "regresó a estatus pendiente la tarea: " & Titulo Case 5 : Str = "El usuario: " & UsuarioActual.Nombre & " revisó la tarea: " & Titulo End Select 'If UsuarioActual.CveUsuario <> CveUsuarioDe Then Mail.Mandacorreo(UsuarioActual.Empresa.SendMail, UsuarioActual.Empresa.SendMailPassword, CorreoDe, Str, GeneraContenido(CveEvento, Titulo, UsuarioDe, UsuarioPara, UsuariosCCP.ToString, Fecha, StrPrioridad, Descripcion, "", Tipo).ToString) 'If UsuarioActual.CveUsuario <> CveUsuarioPara Then Mail.Mandacorreo(UsuarioActual.Empresa.SendMail, UsuarioActual.Empresa.SendMailPassword, CorreoPara, Str, GeneraContenido(CveEvento, Titulo, UsuarioDe, UsuarioPara, UsuariosCCP.ToString, Fecha, StrPrioridad, Descripcion, "", Tipo).ToString) For i As Integer = 0 To DT.Rows.Count - 1 If Not DT.Rows(i)("CveUsuario").ToString.ToEntero.Contiene(UsuarioActual.CveUsuario, CveUsuarioDe, CveUsuarioPara) Then ' Mail.Mandacorreo(UsuarioActual.Empresa.SendMail, UsuarioActual.Empresa.SendMailPassword, DT.Rows(i)("Correo").ToString(), Str, GeneraContenido(CveEvento, Titulo, UsuarioDe, UsuarioPara, UsuariosCCP, Fecha, StrPrioridad, Descripcion, "", Tipo).ToString) End If Next End If End If End Sub Protected Sub EnviarCorreoNueva(IncluirCCP As Boolean) Dim Body As StringBuilder Try TipoCorreo = 1 Body = GeneraContenido(CveEvento) ''String.Join(";", CorreosCCP.Distinct().ToArray) ViewState("Para") = CorreoPara ViewState("ArrayCC") = If(IncluirCCP = True And Not CorreosCCP Is Nothing, String.Join(";", CorreosCCP.Distinct().ToArray), "") 'ViewState("ArrayCC") = CorreosCCP.Distinct().ToArray ViewState("Asunto") = String.Format("Te asignó una tarea {0} en SIG.", UsuarioActual.Nombre) ViewState("Body") = Body Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) Hilo.Start() Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) End Try End Sub Protected Sub EnviarCorreoCambioEstatus(IncluirCCP As Boolean) Dim Body As StringBuilder Try TipoCorreo = 2 Body = GeneraContenido(CveEvento) ViewState("Para") = If(EnviarCorreoRegresada = True, CorreoPara, CorreoDe) ViewState("ArrayCC") = If(IncluirCCP = True, String.Join(";", CorreosCCP.Distinct().ToArray), "") ViewState("Asunto") = String.Format("Cambio de Estatus en una tarea, {0} la cambio.", UsuarioActual.Nombre) ViewState("Body") = Body Dim Hilo As New System.Threading.Thread(AddressOf MandaCorreo) Hilo.Start() Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) End Try End Sub Private Function GeneraContenido(CveEvento As Integer) As StringBuilder Dim StrSB As New StringBuilder() Dim DireccionURL As String = GlobalDTParametros(SisParametros.URL).Cadena1 Dim Variables As String = "" Dim Tarea As String Dim De As String Dim Para As String 'Dim CCP As String Dim Fecha As String Dim Prioridad As String Dim Descripcion As String Dim Tipo As Integer Dim objEvento As New ClsOIEventos If objEvento.GetEvento(CveEvento, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then Tarea = objEvento.Asunto De = objEvento.UsuarioDe Para = objEvento.UsuarioPara Fecha = objEvento.FechaIng.ToString("dd/MM/yyyy") Prioridad = objEvento.Prioridad Descripcion = objEvento.Descripcion Tipo = objEvento.CveTipoEvento StrSB.Append(" ") StrSB.Append("
") 'StrSB.AppendFormat(" ", DireccionURL) StrSB.Append(" ") StrSB.Append(" ") StrSB.Append(" ") StrSB.Append("