Files
SIG/OS/Asignaciones.aspx.vb

611 lines
28 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports DocumentFormat.OpenXml.Spreadsheet
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(UsuarioActual.CveEmpresa, Estatus:=1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaUsuarios()
DdlPersonas.DataSource = GlobalDTUsuarios(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlPersonas.DataBind()
DdlPersonas.Items.Insert(0, New ListItem("Todos", "-1"))
DdlTecnico.DataSource = GlobalDTUsuarios(-1, 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, If(picker.Hour < 12, TimeSelector.AmPmSpec.AM, TimeSelector.AmPmSpec.PM)))
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 = $"<b><a href='/OS/OrdenesServicios.aspx?CveOS={row.DataKey("CveOS")}' target='_blank' class='Texto' >Orden de servicio {row.DataKey("Folio")} </a></b>"
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, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo").ToString
If Not TieneError AndAlso CorreoAsignado <> "" 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, "<br/>")
Descripcion.AppendFormat("Cirugía {0} {1}", Procedimiento, "<br/>")
Descripcion.AppendFormat("Fecha de Cirugía {0} {1}", FechaCirugia.ToString("dd/MM/yyyy HH:mm"), "<br/>")
Descripcion.AppendFormat("{0} {1}", Hospital, "<br/>")
Descripcion.AppendFormat("{0} {1}", OIDescripcion, "<br/>")
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
'If TMSelector.Hour = 0 And TMSelector.AmPm = TimeSelector.AmPmSpec.AM Or e.Row.DataKey("CveOS").ToEntero = 9004 Then
If FechaCita.Hour = 0 Then
Dim scripttxth As String = " $(document).ready(function() {setTimeout(function() { document.getElementById('" + TMSelector.UniqueID + "_txtHour').value = '00'; }, 100);}); "
RegistraScript(scripttxth)
End If
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