Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Imports MKB.TimePicker Partial Class OS_Asignaciones Inherits ClsPaginas #Region "PROPIEDADES" Private Property TmpDT As DataTable Get Return CType(ViewState("TmpDT"), DataTable) End Get Set(value As DataTable) ViewState("TmpDT") = value End Set End Property Private Property DtOSSubProyectos As DataTable Get Return CType(ViewState("DtOSSubProyectos"), DataTable) End Get Set(value As DataTable) ViewState("DtOSSubProyectos") = value End Set End Property Private Property DtTecnicosSubProyectos As DataTable Get Return CType(ViewState("DtTecnicosSubProyectos"), DataTable) End Get Set(value As DataTable) ViewState("DtTecnicosSubProyectos") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then GvNA_ConfiguraColumnas() CargaEstatusOS() CargaUsuarios() CargaClientes() CargaSubProyecto() If UsuarioActual.TienePermisoProceso(171) Then CargaOrdenesServiciosAsignadasXPersona() CargaOrdenesServiciosNoAsignadas() Else DivAsignar.Visible = False DdlEstatusOS.SelectedValueExist(GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC")) DdlPersonas.SelectedValueExist(UsuarioActual.CveUsuario) DdlEstatusOS_SelectedIndexChanged(sender, New EventArgs) DdlPersonas.Enabled = False DivAsignacionPersona.Visible = False 'CargaOrdenesServiciosAsignadas() End If Dim ObjEstatusPermisos As New ClsOS If ObjEstatusPermisos.GetEstatusUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then Dim Permisos As New DataTable Permisos = ObjEstatusPermisos.DtResultados.FiltraParametros("TipoEstatus = 2") If Permisos.Rows.Count = 0 Then DdlTecnico.Visible = False BtnAsignar.Visible = False End If End If ObjEstatusPermisos.Dispose() End If RegistraScript(" $('#GvNA tr').each(function() { $(this).find('td:eq(7) input').each(function() { if($(this).val()!=':'){ $(this).attr('style', 'width: 20px;'); }else{ $(this).attr('style', 'width: 10px;'); } }); }); ") End Sub Private Sub GvNA_ConfiguraColumnas() If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then GvNA.Columns(3).Visible = False GvNA.Columns(4).Visible = False GvNA.Columns(5).Visible = False GvNA.Columns(6).Visible = False GvNA.Columns(7).Visible = True GvNA.Columns(8).Visible = True GvNA.Columns(9).Visible = True GvNA.Columns(12).Visible = True GvNA.Columns(2).HeaderText = "Hospital" GvNA.Columns(10).HeaderText = "Fecha Cirugía" GvNA.Columns(11).HeaderText = "Hora Cirugía" End If End Sub #Region "C A R G A S " Private Sub CargaSubProyecto() DdlSubProyecto.Items.Clear() DdlSubProyecto.SelectedValue = Nothing DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa, Estatus:=1) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaUsuarios() DdlPersonas.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) DdlPersonas.DataBind() DdlPersonas.Items.Insert(0, New ListItem("Todos", "-1")) DdlTecnico.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) DdlTecnico.DataBind() DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaOrdenesServiciosNoAsignadas() Dim ObjOS As New ClsOS Dim FechaI, FechaF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") If ObjOS.GetOrdenesServiciosNoAsignadas(DdlCliente.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaI, FechaF) Then DtOSSubProyectos = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) GvNA.DataSource = ObjOS.DtResultados TmpDT = ObjOS.DtResultados Else GvNA.DataSource = Nothing End If GvNA.DataBind() ObjOS.Dispose() UpOS.Update() CargarTecnico() End Sub Private Sub CargaOrdenesServiciosAsignadas() Dim ObjOS As New ClsOS Dim FechaI, FechaF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") If ObjOS.GetOrdenesServiciosAsignadas(DdlCliente.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPersonas.SelectedValue.ToEntero, FechaI, FechaF) Then GvNA.DataSource = ObjOS.DtResultados TmpDT = ObjOS.DtResultados Else GvNA.DataSource = Nothing End If GvNA.DataBind() ObjOS.Dispose() UpOS.Update() End Sub Private Sub CargaOrdenesServiciosAsignadasXPersona() Dim ObjOS As New ClsOS If ObjOS.GetOSAsignadas(UsuarioActual.CveEmpresa) Then GvA.DataSource = ObjOS.DtResultados If ObjOS.DtResultados.Rows.Count = 0 Then DivAsignacionPersona.Visible = False End If Else GvA.DataSource = Nothing DivAsignacionPersona.Visible = False End If ObjOS.Dispose() GvA.DataBind() End Sub Private Sub CargaClientes() DdlCliente.DataSource() = GlobalDTCliente(UsuarioActual.CveEmpresa) DdlCliente.DataBind() DdlCliente.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaEstatusOS() DdlEstatusOS.DataSource = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) DdlEstatusOS.DataBind() End Sub Private Sub DdlEstatusOS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEstatusOS.SelectedIndexChanged Dim TipoEstatus As String = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue)) If TipoEstatus.ToEntero = 1 Then DivTecnico.Visible = False Else DivTecnico.Visible = True End If UPFiltros.Update() End Sub Private Sub CargarTecnico() Dim ObjOS As New ClsOS Dim TecnicosSubProyectos As New DataTable Dim TecnicosResultado As New DataTable If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then TecnicosSubProyectos = ObjOS.DtResultados.FiltraParametros(" Estatus = 'True' ") End If If DtOSSubProyectos IsNot Nothing Then For Each SubProyecto As DataRow In DtOSSubProyectos.Rows Dim TecnicosSubProyectoAux As DataTable = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}'", SubProyecto.Item("SubProyecto"))) If TecnicosSubProyectoAux.Rows.Count > 0 Then Dim EstatusDeTipoProcesoMenor As Integer = TecnicosSubProyectoAux.Rows(0).Item("CveEstatusOrdenServicio").ToString.ToEntero Dim dtAuxiliar As New DataTable dtAuxiliar = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}' AND CveEstatusOrdenServicio = {1}", SubProyecto.Item("SubProyecto"), EstatusDeTipoProcesoMenor), "", {"CveUsuario", "Nombre"}) TecnicosResultado.Merge(dtAuxiliar) End If Next End If DtTecnicosSubProyectos = TecnicosResultado DdlTecnico.DataSource = TecnicosResultado DdlTecnico.DataBind() DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1")) ObjOS.Dispose() End Sub #End Region #Region "BTN'S" Protected Sub BtnAsignar_Click(sender As Object, e As EventArgs) Handles BtnAsignar.Click Dim TieneError As Boolean = False Dim CveEstatusOS As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero Dim time As DateTime Dim contadorOrdenesAsignadas As Integer = 0 Dim ObjOS As New ClsOS Dim ObjEventos As New ClsOIEventos(ObjOS.IniciaTransacSQL()) Try For Each row As GridViewRow In GvNA.Rows If row.RowType = DataControlRowType.DataRow Then Dim picker As MKB.TimePicker.TimeSelector = DirectCast(row.FindControl("TimeSelector"), MKB.TimePicker.TimeSelector) If row.FCCheckBox("ChbxAsignar").Checked Then time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", row.FCTextBox("FechaOS").Text, picker.Hour, picker.Minute, picker.AmPm)) contadorOrdenesAsignadas += 1 If ObjOS.GetSubProyectosEstatusInicial(DdlTecnico.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then Dim subProyectoDelTecnico As DataTable subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0}", row.DataKey("CveSubProyecto"))) If subProyectoDelTecnico.Rows.Count > 0 Then If Not ObjOS.UpdateOrdenesServiciosAsignadas(row.DataKey("CveOSDetalle").ToEntero, DdlTecnico.SelectedValue.ToEntero, row.FCTextBox("FechaOS").Text.ToDate, time, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then TieneError = True End If Else Alert("El técnico y la Orden de Servicio deben pertenecer al mismo subProyecto", TipoMensaje.MsgAdvertencia) TieneError = True End If End If If Not TieneError Then If Not ObjOS.UpdateOrdenesServiciosEstatus(CveEstatusOS.ToEntero, UsuarioActual.CveUsuario, row.DataKey("CveOS").ToEntero) Then TieneError = True End If Dim OIDescripcion As String = "" If Not TieneError Then Dim RecurrenciaTipo As Integer = 0, Frecuencia As Integer = -1, DiasSemana As String = "-1", Dias As Integer = -1, Mes As Integer = -1, RecurrenciaFin As String = "-1" Dim Fecha As DateTime = time OIDescripcion = $"Orden de servicio {row.DataKey("Folio")} " If Not ObjEventos.AddEventoAgenda(2, DdlTecnico.SelectedItem.Text, $"{DdlTecnico.SelectedItem.Text} {OIDescripcion}", 2, time, time.AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2, Importe:=0, CveOS:=row.DataKey("CveOS").ToEntero, CveSubProyecto:=row.DataKey("CveSubProyecto").ToEntero) Then TieneError = True End If End If If Not TieneError Then If Not AgendarCirugia(ObjEventos, row.DataKey("CveOS").ToEntero, time, DdlTecnico.SelectedValue.ToEntero(), row.DataKey("Medico"), row.DataKey("Procedimiento"), row.DataKey("Nombre"), OIDescripcion) Then TieneError = True End If End If Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnico.SelectedValue.ToEntero).Rows(0)("Correo").ToString If Not TieneError Then MandaCorreOS(row.DataKey("CveOS").ToEntero, CorreoAsignado, TrasaccionSql:=ObjOS.IniciaTransacSQL) End If End If End If End If Next Catch ex As Exception TieneError = True OnError("Ocurrió un error al asignar", ex) End Try If contadorOrdenesAsignadas > 0 Then If Not TieneError Then ObjOS.Commit() Alert("Se asignaron las ordenes de servicio correctamente", TipoMensaje.MsgInformacion) CargaOrdenesServiciosAsignadasXPersona() CargaOrdenesServiciosNoAsignadas() Else ObjOS.RollBack() Alert("Ocurrió un error al asignar", TipoMensaje.MsgAdvertencia) End If Else ObjOS.RollBack() Alert("No se han seleccionado ordenes de servicio para asignar", TipoMensaje.MsgAdvertencia) End If ObjOS.Dispose() UpAsignacionPersona.Update() UpOS.Update() End Sub Protected Function AgendarCirugia(ByRef ObjEventos As ClsOIEventos, CveOS As Integer, FechaCirugia As DateTime, CveUsuarioAgendar As Integer, Medico As String, Procedimiento As String, Hospital As String, OIDescripcion As String) As Boolean Dim TieneError As Boolean = False Try If FechaCirugia > MinFecha Then If CveUsuarioAgendar > 0 Then Dim Descripcion As New StringBuilder Descripcion.AppendFormat("Dr {0} {1}", Medico, "
") Descripcion.AppendFormat("Cirugía {0} {1}", Procedimiento, "
") Descripcion.AppendFormat("Fecha de Cirugía {0} {1}", FechaCirugia.ToString("dd/MM/yyyy HH:mm"), "
") Descripcion.AppendFormat("{0} {1}", Hospital, "
") Descripcion.AppendFormat("{0} {1}", OIDescripcion, "
") Dim Asunto As String = $"Cirugía - {Hospital}" If Not ObjEventos.AddEventoAgenda(4, Asunto, Descripcion.ToString(), 3, FechaCirugia, FechaCirugia, CveUsuarioAgendar, UsuarioActual.CveEmpresa, RecurrenciaTipo:=0, CveTipoEvento:=2, CveOS:=CveOS) Then TieneError = True End If End If End If Catch ex As Exception TieneError = True OnError("Ocurrió un error al generar la agenda", ex) End Try Return Not TieneError End Function Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, ByRef TrasaccionSql As SqlClient.SqlTransaction) Dim ObjOS As New ClsOS(TrasaccionSql) Dim params As New List(Of ReportParameter) Dim CveFolio As String = "" Dim TmpDTOS As New DataTable TmpDTOS.Columns.Add("CveOSDetalle", GetType(Integer)) TmpDTOS.Columns.Add("CveClasificacion", GetType(Integer)) TmpDTOS.Columns.Add("Clasificacion", GetType(String)) TmpDTOS.Columns.Add("CvePS", GetType(Integer)) TmpDTOS.Columns.Add("CveUM", GetType(Integer)) TmpDTOS.Columns.Add("UM", GetType(String)) TmpDTOS.Columns.Add("Cantidad", GetType(Integer)) TmpDTOS.Columns.Add("PS", GetType(String)) TmpDTOS.Columns.Add("Especificaciones", GetType(String)) TmpDTOS.Columns.Add("Materiales", GetType(String)) TmpDTOS.Columns.Add("CveCuentaEquipo", GetType(Integer)) TmpDTOS.Columns.Add("Observaciones", GetType(String)) TmpDTOS.Columns.Add("FechaAtencion", GetType(String)) TmpDTOS.Columns.Add("CveUsuarioAtendio", GetType(Integer)) TmpDTOS.Columns.Add("UsuarioAtendio", GetType(String)) TmpDTOS.Columns.Add("FechaTermino", GetType(String)) TmpDTOS.Columns.Add("FechaEntrega", GetType(String)) TmpDTOS.Columns.Add("CveUsuarioEntrego", GetType(Integer)) TmpDTOS.Columns.Add("UsuarioEntrego", GetType(String)) TmpDTOS.Columns.Add("SeFacturara", GetType(String)) TmpDTOS.Columns.Add("SeSuperviso", GetType(String)) TmpDTOS.Columns.Add("Estatus", GetType(String)) TmpDTOS.Columns.Add("Archivo", GetType(String)) TmpDTOS.Columns.Add("ComentarioTecnico", GetType(String)) Dim TmpDTMaterialesOS As New DataTable TmpDTMaterialesOS.Columns.Add("CveOSDetalle", GetType(Integer)) TmpDTMaterialesOS.Columns.Add("CveConsecutivo", GetType(Integer)) TmpDTMaterialesOS.Columns.Add("CveConsecutivoDetalle", GetType(Integer)) TmpDTMaterialesOS.Columns.Add("CveMaterial", GetType(Integer)) TmpDTMaterialesOS.Columns.Add("Cantidad", GetType(Integer)) TmpDTMaterialesOS.Columns.Add("CveClasificacion", GetType(Integer)) TmpDTMaterialesOS.Columns.Add("CvePS", GetType(String)) TmpDTMaterialesOS.Columns.Add("CveUM", GetType(String)) TmpDTMaterialesOS.Columns.Add("Clasificacion", GetType(String)) TmpDTMaterialesOS.Columns.Add("PS", GetType(String)) TmpDTMaterialesOS.Columns.Add("UM", GetType(String)) Dim FolioOS As String = "" Dim RutaReporte As New System.IO.FileInfo(String.Format("{0}Formatos/OrdenServicio.rdlc", UsuarioActual.Empresa.Ruta)) If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then If ObjOS.DtResultados.Rows.Count > 0 Then Dim dtOS As DataTable = ObjOS.DtResultados Dim dr As DataRow = dtOS.Rows(0) params.Add(New ReportParameter("Cliente", dr("Cliente").ToString)) params.Add(New ReportParameter("Solicito", dr("PersonaSolicito").ToString)) params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) params.Add(New ReportParameter("Recibio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaRecibido", dr("FechaRecepcion").ToString)) params.Add(New ReportParameter("FolioOS", dr("Folio").ToString)) FolioOS = dr("Folio").ToString params.Add(New ReportParameter("ClienteTelefono", dr("Telefono").ToString)) params.Add(New ReportParameter("ClienteCalle", dr("Direccion").ToString)) params.Add(New ReportParameter("ClienteColonia", dr("Colonia").ToString)) params.Add(New ReportParameter("ClienteCiudad", dr("Ciudad").ToString)) params.Add(New ReportParameter("ClienteEstado", dr("Estado").ToString)) CveFolio = dr("Folio").ToString If RutaReporte.Exists Then params.Add(New ReportParameter("NoDeCliente", dr("CveCliente").ToString)) params.Add(New ReportParameter("RFC", dr("RFC").ToString)) params.Add(New ReportParameter("Vendedor", " ")) params.Add(New ReportParameter("Correo", dr("Correo").ToString)) params.Add(New ReportParameter("CodigoDeServicio", dr("CveOS").ToString)) params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString)) params.Add(New ReportParameter("TipoServicio", dr("TipoServicio").ToString)) params.Add(New ReportParameter("TipoEquipo", dr("TipoEquipo").ToString)) params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) params.Add(New ReportParameter("Copia", "Copia: Original")) params.Add(New ReportParameter("Equipo", dr("Equipo").ToString)) End If End If End If Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") If Not RutaReporte.Exists Then RutaReporte = New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\OrdenServicio.rdlc", ModExtensiones.DirectorioBaseEmpresas)) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) End If If ObjOS.GetOrdenesServiciosDetalle(CveOS) Then TmpDTOS = ObjOS.DtResultados End If If ObjOS.GetDetalleMateriales(-1, CveOS) Then TmpDTMaterialesOS = ObjOS.DtResultados End If Dim lrds As New List(Of ReportDataSource) Dim rds As New ReportDataSource With {.Name = "DataSet2", .Value = TmpDTMaterialesOS} Dim rds2 As New ReportDataSource With {.Name = "DataSet1", .Value = TmpDTOS} lrds.Add(rds) lrds.Add(rds2) Dim ReporteByte As Byte() = StreamPDF(RutaReporte.FullName, lrds, params, NombreArchivo:=String.Format("OrdenServicio-{0}", CveFolio)) If ReporteByte IsNot Nothing Then Try ViewState("Para") = CorreoUsuarioAsignado ViewState("ArrayCC") = "" ViewState("Asunto") = "Asinación Orden de Servicio" ViewState("FolioOSMail") = FolioOS ViewState("Body") = "Asinación Orden de Servicio" ViewState("bytesOS") = ReporteByte Dim Hilo As New Threading.Thread(AddressOf SendmailOS) Hilo.Start() Catch ex As Exception GuardaLogAD($"Error al enviar correo de OS {ex.StackTrace}") End Try End If End Sub Private Sub SendmailOS() Dim Asunto, Para, ArrayCC, Body As String Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString) Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString) ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString) Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString) Dim Mail As New ClsSisMail() Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.NombreArchivo = $"OS_{ViewState("FolioOSMail") }.pdf", .ArchivoBinario = DirectCast(ViewState("bytesOS"), Byte())}) Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail) End Sub Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click Dim TipoEstatus As String = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue)) If TipoEstatus.ToEntero <= 1 Then CargaOrdenesServiciosNoAsignadas() Else CargaOrdenesServiciosAsignadas() End If End Sub #End Region #Region "GV" Private Sub GvNA_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvNA.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DataKey("CveUsuarioAtendio") <> "" Then e.Row.FCCheckBox("ChbxAsignar").Visible = False e.Row.FCTextBox("FechaOS").Visible = False e.Row.FCLinkButton("imgCalendario").Visible = False e.Row.FCLiteral("LtlFechaServicio").Visible = True e.Row.FCLiteral("LtlHoraServicio").Visible = True e.Row.FindControl("TimeSelector").Visible = False Else e.Row.FCLiteral("LtlFechaServicio").Visible = False e.Row.FCCheckBox("ChbxAsignar").Checked = False e.Row.FCCheckBox("ChbxAsignar").Visible = True e.Row.FCTextBox("FechaOS").Visible = True e.Row.FCTextBox("FechaOS").Text = NowADS().ToString("dd/MM/yyy") e.Row.FCLinkButton("imgCalendario").Visible = True e.Row.FCLiteral("LtlHoraServicio").Visible = False e.Row.FindControl("TimeSelector").Visible = True End If If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then Dim FechaCita = e.Row.DataKey("FechaCitaOS").ToDateTime e.Row.FCTextBox("FechaOS").Text = FechaCita.ToString("dd/MM/yyyy") e.Row.FCTextBox("FechaOS").Visible = True e.Row.FindControl("TimeSelector").Visible = True Dim TMSelector = DirectCast(e.Row.FindControl("TimeSelector"), TimeSelector) TMSelector.Date = FechaCita e.Row.Cells(10).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.Ticks.ToString) e.Row.Cells(11).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.ToString("HHmm")) End If End If UpOS.Update() End Sub #End Region #Region "IMPRIMIR PDF" Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click Dim params As New List(Of ReportParameter) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim dt As DataTable = TmpDT params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("FechaInicio", txtFechaI.Text)) params.Add(New ReportParameter("FechaFin", txtFechaF.Text)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepOSAsignacion.rdlc", dt, params, "OrdenesServicio") End Sub #End Region Protected Sub GvA_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then e.Row.FCHyperLink("HplNombre").NavigateUrl = $"/OS/RepOSMedicas.aspx?CveUsuarioTecnico={e.Row.DBCampo("CveUsuarioAtendio")}" End If End If End Sub End Class