diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx
index 9777b70b6..23abfb27d 100644
--- a/Ashx/CargaEventos.ashx
+++ b/Ashx/CargaEventos.ashx
@@ -41,10 +41,64 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
context.Response.Write(sJSON)
End If
-
End If
+ Exit Select
+ Case "servicio_medicos"
+ If context.Request("U").ToEntero > 0 Then
+
+ CveUsuario = context.Request("U").ToEntero
+ CveEmpresa = context.Request("E").ToEntero
+
+ Dim CveSubProyecto As Integer = If(context.Request("CveSubProyecto") IsNot Nothing, context.Request("CveSubProyecto").ToEntero, -1)
+ Dim CveUsuarioPara As Integer = If(context.Request("CveUsuarioPara") IsNot Nothing, context.Request("CveUsuarioPara").ToEntero, -1)
+ Dim FechaI As Date = context.Request("start").ToDate
+ Dim FechaF As Date = context.Request("end").ToDate
+ Dim Cvecliente As Integer = -1 'DdlClienteSucursalCliente()
+ Dim CveClienteSucursal As Integer = -1 ' DdlClienteSucursalSucursal()
+ Dim CveVendedor As Integer = -1
+ Dim CveEstatus As Integer = -1
+ Dim ObjOS As New ClsOS
+
+ If ObjOS.GetRepOrdenesServicioMedicasRep(FechaI, FechaF, Cvecliente, CveVendedor, CveEstatus, CveUsuarioPara, -1, CveEmpresa,
+ CveMedico:=-1, CveProcedimiento:=-1, CveEspecialidad:=-1,
+ CveClienteSucursal:=CveClienteSucursal, CveUsuario:=CveUsuario) Then
+
+ If ObjOS.DtResultados IsNot Nothing AndAlso ObjOS.DtResultados.Rows.Count > 0 Then
+ events = New List(Of CalendarEvent)
+ For Each dr As DataRow In ObjOS.DtResultados.Rows
+ Dim cevent As CalendarEvent = New CalendarEvent()
+ cevent.id = dr("CveOS").ToString.ToEntero
+ cevent.title = $" {dr("Tecnico")}-{dr("NombreCliente")}"
+ cevent.description = $" {dr("Tecnico")} -{dr("NombreCliente")} OS# {dr("Folio")}"
+ cevent.start = String.Format("{0:s}", dr("FechaCita").ToString.ToDateTime)
+ cevent.end = String.Format("{0:s}", dr("FechaCita").ToString.ToDateTime.AddHours(1))
+ cevent.CveOS = dr("CveOS").ToString.ToEntero
+ cevent.allDay = False
+ If dr("EstatusOSGral").ToString.Contiene("Levantamiento") Then
+ cevent.backgroundColor = "#006699"
+ ElseIf dr("EstatusOSGral").ToString.Contiene("Surtido") Then
+ cevent.backgroundColor = "#002699"
+ ElseIf dr("EstatusOSGral").ToString.Contiene("Asignado") Then
+ cevent.backgroundColor = "#025716"
+ ElseIf dr("EstatusOSGral").ToString.Contiene("Finalizado") Then
+ cevent.backgroundColor = "#730505"
+ ElseIf dr("EstatusOSGral").ToString.Contiene("Facturado") Then
+ cevent.backgroundColor = "#006699"
+ ElseIf dr("EstatusOSGral").ToString.Contiene("Cobrado") Then
+ cevent.backgroundColor = "#007699"
+ ElseIf dr("EstatusOSGral").ToString.Contiene("Cancelado") Then
+ End If
+ events.Add(cevent)
+ Next
+
+ context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(events))
+ End If
+ End If
+ ObjOS.Dispose()
+
+ End If
Exit Select
Case "contrato_transportes"
@@ -67,17 +121,12 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
context.Response.Write(sJSON)
End If
-
End If
-
-
Exit Select
Case Else
Exit Select
End Select
-
-
Else
If context.Request("U").ToEntero > 0 Then
CveUsuario = context.Request("U").ToEntero
@@ -105,23 +154,19 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
Private Function GetEventos(CveUsuario As Integer, CveEmpresa As Integer, pFI As Date, pFF As Date, Optional CveOS As Integer = -1, Optional CveUsuarioPara As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional context As HttpContext = Nothing) As Boolean
- Dim ObjEventos As New ClsOIEventos
+
Dim ErrorEventos As Boolean = False
Dim CveEmpresaCRM As Integer = 0
-
Dim DT_SubProyectos As New System.Data.DataTable
-
DT_SubProyectos.Columns.Add("CveSubProyecto", GetType(Integer))
DT_SubProyectos.Columns.Add("backgroundColor")
-
Dim DT_EstatusOS As New DataTable
DT_EstatusOS.Columns.Add("", GetType(Integer))
-
+ Dim ObjEventos As New ClsOIEventos
'son 26
Dim Colores() As String = {"#006699", "#0099cc", "#0066cc", "#0033cc", "#0000ff", "#3333ff", "#3333ff", "#6600ff", "#9933ff", "#cc00ff", "#cc00cc", "#cc0099", "#cc3399", "#cc6699", "#cc0066", "#009933", "#00cc00", "#00cc66", "#009999", "#669900", "#99cc00", "#cccc00", "#cc9900", "#ff9900", "#006666", "#669999"}
-
If CveOS = -2 Then
Dim objSub As New ClsSubProyectos
@@ -135,8 +180,6 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
Dim ColorIndex As Integer = 0
-
-
If DtTempSubproyectos.Rows.Count > 0 Then
For Each drow As DataRow In DtTempSubproyectos.Rows
@@ -164,9 +207,6 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
End If
End If
-
-
-
If ObjEventos.GetEventos(-1, -1, -1, "-1", "-1", -1, CveUsuario, CveUsuarioPara, -1, -1, -1, "-1", -1, -1, -1, -1, CveOS, -1, -1, -1, -1, -1, CveUsuario, CveUsuario, CveUsuario, CveEmpresa, pFI, pFF, CveSubProyecto:=CveSubProyecto, EsCoordinador:=EsCoordinador) Then
If ObjEventos.DtResultados.Rows.Count > 0 Then
@@ -447,8 +487,6 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
DT_SubProyectos.Columns.Add("backgroundColor")
DT_EstatusOS.Columns.Add("", GetType(Integer))
-
-
If ObjContratos.GetContratos(-1, usuarioActual_.CveEmpresa, TipoContrato:=34) Then
If ObjContratos.DtResultados.Rows.Count > 0 Then
diff --git a/OS/RepServiciosMedicos.aspx b/OS/RepServiciosMedicos.aspx
new file mode 100644
index 000000000..9dcc831c9
--- /dev/null
+++ b/OS/RepServiciosMedicos.aspx
@@ -0,0 +1,944 @@
+<%@ Page Title="Reporte Ordenes Médicas" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepServiciosMedicos.aspx.vb" Inherits="OS_RepServiciosMedicos" %>
+
+<%@ Register Assembly="TimePicker" Namespace="MKB.TimePicker" TagPrefix="cc1" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reporte Órdenes Médicas
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Os:
+
+
+
+
+
+ Asignar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cirugías
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Servicios a Domicilio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cada:
+
+
+
+
+
+
+ <%--
+
+
--%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Veces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%--
+ --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%----%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cliente:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%--DESCRIPCION--%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%--
+ --%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancelar Orden de Servicio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OS/RepServiciosMedicos.aspx.vb b/OS/RepServiciosMedicos.aspx.vb
new file mode 100644
index 000000000..4d33a8f19
--- /dev/null
+++ b/OS/RepServiciosMedicos.aspx.vb
@@ -0,0 +1,1232 @@
+Option Explicit On
+Option Strict On
+
+Imports Extensiones
+Imports System.Data
+Imports Microsoft.Reporting.WebForms
+Imports System.Web.Services
+Partial Class OS_RepServiciosMedicos
+ Inherits ClsPaginas
+
+#Region "PROPIEDADES"
+
+ Private Property DtDatos As DataTable
+ Get
+ DtDatos = DirectCast(ViewState("DtDatos"), DataTable)
+ End Get
+
+ Set(ByVal value As DataTable)
+ ViewState("DtDatos") = value
+ End Set
+ End Property
+ Private Property Agrupador As String
+ Get
+ Return ViewState("Agrupador").ToString
+ End Get
+
+ Set(value As String)
+ ViewState("Agrupador") = value
+ End Set
+ End Property
+ Private Property TCEspecifico As Double
+ Get
+ Return ViewState("TCEspecifico").ToString.ToDouble
+ End Get
+
+ Set(value As Double)
+ ViewState("TCEspecifico") = value
+ End Set
+ End Property
+ Private Property TipoCambio As Integer
+ Get
+ Return ViewState("TipoCambio").ToString.ToEntero
+ End Get
+
+ Set(value As Integer)
+ ViewState("TipoCambio") = value
+ End Set
+ End Property
+
+
+ Private Property DT_OSSubProyectos As DataTable
+ Get
+ If ViewState("DT_OSSubProyectos") Is Nothing Then
+ ViewState("DT_OSSubProyectos") = New DataTable
+ End If
+ Return DirectCast(ViewState("DT_OSSubProyectos"), DataTable)
+
+ End Get
+
+ Set(value As DataTable)
+ ViewState("DT_OSSubProyectos") = value
+ End Set
+ End Property
+
+ Private Property DT_OSNoAsignadas As DataTable
+ Get
+ If ViewState("DT_OSNoAsignadas") Is Nothing Then
+ ViewState("DT_OSNoAsignadas") = New DataTable
+ End If
+ Return DirectCast(ViewState("DT_OSNoAsignadas"), DataTable)
+
+ End Get
+
+ Set(value As DataTable)
+ ViewState("DT_OSNoAsignadas") = value
+ End Set
+ End Property
+
+ Private Property CveOSDetalleAsignar As Integer
+ Get
+ If ViewState("CveOSDetalleAsignar") Is Nothing Then
+ ViewState("CveOSDetalleAsignar") = -1
+ End If
+ Return ViewState("CveOSDetalleAsignar").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveOSDetalleAsignar") = value
+ End Set
+ End Property
+
+ Private Property CveSubProyectoAsignar As Integer
+ Get
+ If ViewState("CveSubProyectoAsignar") Is Nothing Then
+ ViewState("CveSubProyectoAsignar") = -1
+ End If
+ Return ViewState("CveSubProyectoAsignar").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveSubProyectoAsignar") = value
+ End Set
+ End Property
+
+ Private Property CveOrdenServicioTipo As Integer
+ Get
+ If ViewState("CveOrdenServicioTipo") Is Nothing Then
+ ViewState("CveOrdenServicioTipo") = -1
+ End If
+ Return ViewState("CveOrdenServicioTipo").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveOrdenServicioTipo") = value
+ End Set
+ End Property
+
+ Private Property FolioAsignar As String
+ Get
+ If ViewState("FolioAsignar") Is Nothing Then
+ ViewState("FolioAsignar") = ""
+ End If
+ Return ViewState("FolioAsignar").ToString
+ End Get
+ Set(value As String)
+ ViewState("FolioAsignar") = value
+ End Set
+ End Property
+ Private Property ConceptoAsignar As String
+ Get
+ If ViewState("ConceptoAsignar") Is Nothing Then
+ ViewState("ConceptoAsignar") = ""
+ End If
+ Return ViewState("ConceptoAsignar").ToString
+ End Get
+ Set(value As String)
+ ViewState("ConceptoAsignar") = value
+ End Set
+ End Property
+ Private Property ClienteAsignar As String
+ Get
+ If ViewState("ClienteAsignar") Is Nothing Then
+ ViewState("ClienteAsignar") = ""
+ End If
+ Return ViewState("ClienteAsignar").ToString
+ End Get
+ Set(value As String)
+ ViewState("ClienteAsignar") = value
+ End Set
+ End Property
+ Private Property SubProyectoAsignar As String
+ Get
+ If ViewState("SubProyectoAsignar") Is Nothing Then
+ ViewState("SubProyectoAsignar") = ""
+ End If
+ Return ViewState("SubProyectoAsignar").ToString
+ End Get
+ Set(value As String)
+ ViewState("SubProyectoAsignar") = value
+ End Set
+ End Property
+ Private Property CveOSAsignar As Integer
+ Get
+ If ViewState("CveOSAsignar") Is Nothing Then
+ ViewState("CveOSAsignar") = -1
+ End If
+ Return ViewState("CveOSAsignar").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveOSAsignar") = value
+ End Set
+ End Property
+ Private Property TipoAccion As OSModalTipoAccion
+ Get
+ If ViewState("TipoAccion") Is Nothing Then
+ ViewState("TipoAccion") = OSModalTipoAccion.Agregar
+ End If
+ Return DirectCast(ViewState("TipoAccion"), OSModalTipoAccion)
+ End Get
+ Set(value As OSModalTipoAccion)
+ ViewState("TipoAccion") = value
+ End Set
+ End Property
+
+
+
+ Private Property CveTecnicoAsignarOrioginal As Integer
+ Get
+ If ViewState("CveTecnicoAsignarOrioginal") Is Nothing Then
+ ViewState("CveTecnicoAsignarOrioginal") = -1
+ End If
+ Return ViewState("CveTecnicoAsignarOrioginal").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveTecnicoAsignarOrioginal") = value
+ End Set
+ End Property
+
+ Private Property FechaInicioOriginal As DateTime
+ Get
+ If ViewState("FechaInicioOriginal") Is Nothing Then
+ ViewState("FechaInicioOriginal") = NowADS()
+ End If
+ Return ViewState("FechaInicioOriginal").ToString.ToDateTime
+ End Get
+ Set(value As DateTime)
+ ViewState("FechaInicioOriginal") = value
+ End Set
+ End Property
+
+
+ Private Property CveClientePublicoGeneral As Integer
+ Get
+ If ViewState("CveClientePublicoGeneral") Is Nothing Then
+ ViewState("CveClientePublicoGeneral") = -1
+ End If
+ Return ViewState("CveClientePublicoGeneral").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveClientePublicoGeneral") = value
+ End Set
+ End Property
+
+ Private Property NombreClientePublicoGeneral As String
+ Get
+ If ViewState("NombreClientePublicoGeneral") Is Nothing Then
+ ViewState("NombreClientePublicoGeneral") = ""
+ End If
+ Return ViewState("NombreClientePublicoGeneral").ToString
+ End Get
+ Set(value As String)
+ ViewState("NombreClientePublicoGeneral") = value
+ End Set
+ End Property
+
+
+ Private Property DTTecnicos As DataTable
+ Get
+ If ViewState("DTTecnicos") Is Nothing Then
+ ViewState("DTTecnicos") = New DataTable
+ End If
+
+ Return DirectCast(ViewState("DTTecnicos"), DataTable)
+ End Get
+
+ Set(ByVal value As DataTable)
+ ViewState("DTTecnicos") = value
+ End Set
+ End Property
+
+ Enum OSModalTipoAccion
+ Agregar
+ Actualizacion
+ Asignacion
+ End Enum
+
+
+
+#End Region
+
+ Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
+ If Not IsPostBack Then
+ CargaUsuariosTecnicos()
+ CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyectoEtiqueta)
+ LblSubProyectoFiltro.Text = LblSubProyectoEtiqueta.Text
+ ' LblModalSubProyectoLabel.Text = LblSubProyectoEtiqueta.Text
+ CargaTecnicos()
+ ConsultaOrdenesServiciosNoAsignadas()
+ CargaOrdenesServiciosNoAsignadas()
+ CargaTecnicosAsignar()
+ InicializaCalendar()
+ GetCargaTiposOrden()
+ cargaDropsModal()
+ CargaClientePublicoGeneral()
+
+ If UsuarioActual.TienePermisoProceso(348) Then
+ DVModalAsignacion.Visible = True
+ End If
+
+ If UsuarioActual.TienePermisoProceso(352) Then
+ LnkCancelarOrden.Visible = True
+ End If
+
+ End If
+ End Sub
+
+ Private Sub CargaUsuariosTecnicos()
+ Dim DTTecnicosresultado As DataTable = Nothing
+ DTTecnicos = New DataTable
+ Dim ObjOS As New ClsOS
+ If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then
+ DTTecnicosresultado = ObjOS.DtResultados.FiltraParametros(" Estatus = 'True' ")
+ End If
+
+ If DTTecnicosresultado IsNot Nothing Then
+ For Each SubProyecto As DataRow In DTTecnicosresultado.Rows
+ Dim TecnicosSubProyectoAux As DataTable = DTTecnicosresultado.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 = DTTecnicosresultado.FiltraParametros(String.Format("SubProyecto = '{0}' AND CveEstatusOrdenServicio = {1}", SubProyecto.Item("SubProyecto"), EstatusDeTipoProcesoMenor), "", {"CveUsuario", "Nombre"})
+ DTTecnicos.Merge(dtAuxiliar)
+ End If
+ Next
+ End If
+ ObjOS.Dispose()
+
+ 'Dim ObjUsuarios As New ClsSisUsuarios
+ 'If ObjUsuarios.GetPermisosPorUsuarioProcesos(-1, -1, -1, -1, 351, UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) Then
+ ' If UsuarioActual.CveRol = 1 Then
+ ' DTTecnicos = ObjUsuarios.DtResultados.FiltraParametros(" CveProcesoUsuarioAcceso > 0")
+ ' Else
+ ' DTTecnicos = ObjUsuarios.DtResultados.FiltraParametros(" CveProcesoUsuarioAcceso > 0 and CveUsuario <> 100")
+ ' End If
+
+ 'End If
+ 'ObjUsuarios.Dispose()
+
+ End Sub
+
+#Region "CARGAS"
+
+#End Region
+
+#Region " FULL CALENDAR "
+ Private Sub InicializaCalendar()
+ RegistraScript("InitCalendar();")
+
+ HdnU.Value = UsuarioActual.CveUsuario.ToString
+ HdnE.Value = UsuarioActual.CveEmpresa.ToString
+
+ DirectCast(Master.FindControl("TSM"), ScriptManager).EnablePageMethods = True
+ CargaTiposAgenda()
+ CheckRecurrencia.Attributes.Add("onclick", "CheckAdd(this);")
+ End Sub
+ Private Sub CargaTiposAgenda()
+ Dim ObjEventos As New ClsOIEventos
+
+ If ObjEventos.GetAgendaTipo() Then
+ DdlAgedaTipo.DataSource = ObjEventos.DtResultados
+ DdlAgedaTipo.DataBind()
+ DdlAgedaTipo.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ Else
+ Alert("Ocurrió un error al obtener los tipos de agenda. Por favor recargue la página", TipoMensaje.MsgError)
+ End If
+
+ ObjEventos.Dispose()
+ End Sub
+
+ Private Sub CargaTecnicos()
+ DdlTecnico.DataSource = DTTecnicos 'GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
+ DdlTecnico.DataBind()
+ DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1"))
+ End Sub
+
+ Private Sub CargaTecnicosAsignar()
+
+
+ '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
+ 'End If
+
+ 'For Each SubProyecto As DataRow In DT_OSSubProyectos.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
+ ''DtTecnicosSubProyectos = TecnicosResultado
+
+ 'ObjOS.Dispose()
+
+ DdlTecnicoAsignar.DataSource = DTTecnicos 'GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True'")
+ DdlTecnicoAsignar.DataBind()
+ DdlTecnicoAsignar.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
+
+ UpModalOS.Update()
+
+ End Sub
+
+
+ Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
+ Dim ObjEventos As New ClsOIEventos
+
+ Dim FechaInicio = TxtFechaInicioAgenda.Text.ToDateTime()
+ Dim FechaFin = TxtFechaFinAgenda.Text.ToDateTime()
+
+ RegistraScript("GetView();")
+
+ Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1"
+ If CheckRecurrencia.Checked Then
+ RecurrenciaTipo = RBLRecurrencia.SelectedValue.ToEntero
+ Frecuencia = TxtFrecuencia.Text.ToEntero
+
+ 'OBTENEMOS LOS DIAS SELECCIONADOS EN LA OPCION DE RECURRENCIA POR SEMANA
+ Select Case RecurrenciaTipo
+ Case 3
+ Dim StringDias = ""
+ For Each item As ListItem In CheckDiasSemana.Items
+ If item.Selected Then
+ If StringDias.Length > 0 Then
+ StringDias += ","
+ End If
+ StringDias += item.Value
+ End If
+ Next
+ If StringDias.Length > 0 Then
+ DiasSemana = StringDias
+ End If
+ End Select
+
+
+ 'If RBSinFechaFinAdd.Checked Then
+ ' RecurrenciaFin = "-1"
+ 'Else
+ If RBNumeroOcurrencias.Checked Then
+ RecurrenciaFin = TxtNumeroOcurrencias.Text
+ ElseIf RBFechaFin.Checked Then
+ RecurrenciaFin = TxtFechaFinRecurrencia.Text
+ Else
+ RecurrenciaFin = "-1"
+ End If
+ Else
+ If HdnCveEvento.Value.ToEntero > 0 Then
+ Frecuencia = -2 : DiasSemana = "-2" : Dias = -2 : Mes = -2 : RecurrenciaFin = "-2"
+ End If
+ End If
+
+ '11/05/2018 - GASTO RECURRENTE
+ Dim CveTipoEvento As Integer = IIf(ChkGastoRecurrente.Checked, 10, 2).ToString().ToEntero()
+ Dim Importe As Double = Convert.ToDouble(IIf(ChkGastoRecurrente.Checked, TxtImporteGastoRecurrente.Text, "-1"))
+
+ If HdnCveEvento.Value.ToEntero > 0 Then
+ If ObjEventos.UpdateEvento(TxtAsuntoAgenda.Text, TxtDescripcionAgenda.Text, DdlPrioridad.SelectedValue.ToEntero, DdlAgedaTipo.SelectedValue.ToEntero, -1, FechaInicio, FechaFin, -1, "-1", HdnCveEvento.Value.ToEntero, "-1",
+ RecurrenciaTipo, Frecuencia, DiasSemana, Dias, Mes, RecurrenciaFin, Importe:=Importe) Then
+ Alert("El Evento se actualizó correctamente", TipoMensaje.MsgInformacion)
+ Else
+ Alert("Ocurrió un error al actualizar el evento", TipoMensaje.MsgAdvertencia)
+ End If
+ Else
+ If ObjEventos.AddEventoAgenda(DdlAgedaTipo.SelectedValue.ToEntero, TxtAsuntoAgenda.Text, TxtDescripcionAgenda.Text, DdlPrioridad.SelectedValue.ToEntero, FechaInicio, FechaFin, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
+ RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=CveTipoEvento, Importe:=Importe) Then
+
+ Alert("El Evento se guardó correctamente", TipoMensaje.MsgInformacion)
+ Else
+ Alert("Ocurrió un error al Guardar el evento", TipoMensaje.MsgAdvertencia)
+ End If
+ End If
+
+ ObjEventos.Dispose()
+ RegistraScript("Calendario();SetView();$('#ModalAgenda').modal('hide');", "1234")
+ LimpiaModalAgenda()
+
+ End Sub
+ Private Sub LimpiaModalAgenda()
+ TxtDescripcionAgenda.Text = ""
+ TxtAsuntoAgenda.Text = ""
+ DdlPrioridad.SelectedValue = "1"
+ TxtNumeroOcurrencias.Text = ""
+ TxtFechaFinRecurrencia.Text = ""
+ RBFechaFin.Checked = False
+ RBNumeroOcurrencias.Checked = False
+ RBLRecurrencia.SelectedValue = "1"
+ CheckDiasSemana.ClearSelection()
+ RBLRecurrencia_SelectedIndexChanged(RBLRecurrencia, EventArgs.Empty)
+ TxtFrecuencia.Text = "1"
+ LblEmpresaCRM.Text = ""
+ End Sub
+
+ Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs)
+
+ Dim ObjEventos As New ClsOIEventos
+ RegistraScript("GetView();")
+
+ If ObjEventos.RemoveEvento(HdnCveEvento.Value.ToEntero, UsuarioActual.CveEmpresa) Then
+ RegistraScript("Calendario();SetView();$('#ModalAgenda').modal('hide');", "1234")
+ Alert("El evento se eliminó correctamente", TipoMensaje.MsgInformacion)
+ Else
+ Alert("Ocurrió un error al eliminar el evento, por favor intente de nuevo.", TipoMensaje.MsgError)
+ End If
+
+ ObjEventos.Dispose()
+ End Sub
+
+
+ Public Shared Function EliminaEvento(CveEvento As Integer, CveEmpresa As Integer) As String
+ Dim ObjEventos As New ClsOIEventos
+
+ ObjEventos.RemoveEvento(CveEvento, CveEmpresa)
+
+ ObjEventos.Dispose()
+ Return CveEvento.ToString
+ End Function
+
+
+ Public Shared Function ActualizaEvento(ClsEvent As CalendarEvent) As String
+ Dim ObjEventos As New ClsOIEventos
+
+ Dim FechaInicio = DateTimeOffset.Parse(ClsEvent.start).DateTime
+ Dim FechaFin = DateTimeOffset.Parse(ClsEvent.end).DateTime
+
+ If ObjEventos.UpdateEvento("-1", "-1", -1, -1, -1, FechaInicio, FechaFin, -1, "-1", ClsEvent.id) Then
+ End If
+
+ ObjEventos.Dispose()
+ Return "a"
+ End Function
+ Protected Sub RBLRecurrencia_SelectedIndexChanged(sender As Object, e As EventArgs)
+ Select Case RBLRecurrencia.SelectedValue.ToEntero
+ Case 1
+ LblTextoFrecuencia.Text = "Hora(s)"
+ TrDiasSemanaAdd.Style("display") = "none"
+ Case 2
+ LblTextoFrecuencia.Text = "Dia(s)"
+ TrDiasSemanaAdd.Style("display") = "none"
+ Case 3
+ LblTextoFrecuencia.Text = "Semana(s)"
+ TrDiasSemanaAdd.Style("display") = "block"
+
+ 'Chequea los dias seleccionados en la recurrencia
+ For Each item As ListItem In CheckDiasSemana.Items
+ If HdnDiasSemanaAgendar.Value.Contains(item.Value) Then
+ item.Selected = True
+ Else
+ item.Selected = False
+ End If
+ Next
+ Case 4
+ LblTextoFrecuencia.Text = "Mes(es)"
+ TrDiasSemanaAdd.Style("display") = "none"
+ Case 5
+ LblTextoFrecuencia.Text = "Año(s)"
+ TrDiasSemanaAdd.Style("display") = "none"
+ Case Else
+ End Select
+ UpRecurrencia.Update()
+ End Sub
+ Protected Sub BtnActualizaAdd_Click(sender As Object, e As EventArgs)
+ RBLRecurrencia_SelectedIndexChanged(RBLRecurrencia, EventArgs.Empty)
+ End Sub
+#End Region
+
+ Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
+ RegistraScript("Calendario();")
+ End Sub
+
+ Private Sub CargaOrdenesServiciosNoAsignadas()
+
+ DdlOrdenesSinAsignar.DataSource = DT_OSNoAsignadas
+ DdlOrdenesSinAsignar.DataBind()
+ DdlOrdenesSinAsignar.Items.Insert(0, New ListItem("Seleccione Uno", "-1"))
+
+ UpOrdenesSinAsignar.Update()
+
+ End Sub
+ Private Sub ConsultaOrdenesServiciosNoAsignadas()
+
+ Dim CveEstatusOrdenServicio As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus=1").ToEntero
+
+ If CveEstatusOrdenServicio = 0 Then
+ Alert("No se pudo carga el estatus", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim ObjOS As New ClsOS
+
+ If ObjOS.GetOrdenesServiciosNoAsignadas(-1, -1, CveEstatusOrdenServicio, UsuarioActual.CveEmpresa, "-1", "-1") Then
+ DT_OSSubProyectos = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
+ DT_OSNoAsignadas = ObjOS.DtResultados
+ Else
+ DT_OSSubProyectos = New DataTable
+ DT_OSNoAsignadas = New DataTable
+ End If
+ ObjOS.Dispose()
+
+ 'If DT_OSNoAsignadas.Rows.Count > 0 Then
+ ' DVOSPendientes.Visible = True
+ 'Else
+ ' DVOSPendientes.Visible = False
+ 'End If
+ UpOrdenesSinAsignar.Update()
+
+ End Sub
+
+ Private Sub cargaDropsModal()
+
+ 'DdlClientesWS.ddl.Items.Clear()
+ 'DdlClientesWS.txtText.Value = ""
+ 'DdlClientesWS.txtValue.Value = ""
+
+ If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
+ DdlClientesWS.setEsWebService(True)
+ Else
+ DdlClientesWS.setEsWebService(False)
+ CargaClientes()
+ End If
+
+ End Sub
+
+ Private Sub CargaClientes()
+ If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
+ DdlClientesWS.ddl.Items.Clear()
+ DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
+ DdlClientesWS.DataBind()
+ DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
+ End If
+ End Sub
+
+ Private Sub LipiaModalOS()
+
+ TxtSolicito.Text = ""
+ TxtDescripcion.Text = ""
+ TxtFechaOS.Text = ""
+
+ DdlClientesWS.txtText.Value = ""
+ DdlClientesWS.txtValue.Value = ""
+ DdlClientesWS.ddl.SelectedValueExist("-1")
+ DdlTecnicoAsignar.SelectedValueExist("-1")
+
+ 'TSTimeSelector.Hour = NowADS().Hour
+ 'TSTimeSelector.Minute = NowADS().Minute
+
+ CveTecnicoAsignarOrioginal = -1
+ FechaInicioOriginal = NowADS()
+
+ DVFolio.Visible = False
+ DvModalSubProyecto.Visible = False
+
+ End Sub
+
+ Protected Sub LnkOrdenesSinAsignarMostarModal_Click(sender As Object, e As EventArgs)
+ TipoAccion = OSModalTipoAccion.Asignacion
+ HFCveOS.Value = "-1"
+ MostarModal()
+ End Sub
+ Private Sub MostarModal()
+
+ LipiaModalOS()
+ If TipoAccion = OSModalTipoAccion.Agregar Then
+
+ If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
+ DdlClientesWS.txtValue.Value = CveClientePublicoGeneral.ToString
+ DdlClientesWS.txtText.Value = NombreClientePublicoGeneral
+ Else
+ DdlClientesWS.ddl.SelectedValueExist(CveClientePublicoGeneral)
+ End If
+
+ TxtFechaOS.Text = NowADS().ToString("dd/MM/yyyy")
+ RegistraScript("$('#DVModalOS').modal('show');")
+ LblModalOStitulo.Text = "Agregar Orden de Servicio"
+
+ ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Or TipoAccion = OSModalTipoAccion.Asignacion Then
+
+ 'cargaDropsModal()
+ LblModalOStitulo.Text = "Actualizar Orden de Servicio"
+
+
+ Dim IDOSDetalle As Integer = 1
+ Dim SeFacturara = ""
+ Dim CveOsConsultar As Integer = HFCveOS.Value.ToEntero
+
+ 'If Not CveOsConsultar > 0 AndAlso Not DdlOrdenesSinAsignar.SelectedValue.ToEntero > 0 Then
+ ' Alert("clave de orden de servicio no encontrada.", TipoMensaje.MsgAdvertencia)
+ ' Exit Sub
+ 'End If
+
+ If CveOsConsultar > 0 Then
+ DdlOrdenesSinAsignar.SelectedValueExist(-1)
+ End If
+ Dim ObjOS As New ClsOS()
+ If ObjOS.GetOrdenesServicios(CveOsConsultar, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOSDetalle:=DdlOrdenesSinAsignar.SelectedValue.ToEntero) Then
+
+ DVFolio.Visible = True
+ HLkFolio.Text = ObjOS.Folio.ToString
+ HLkFolio.NavigateUrl = $"/OS/OrdenesServicios.aspx?CveOS={ObjOS.CveOS}"
+
+ HLKPDF.NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=OS&CVEOS={0}", ObjOS.CveOS))}"
+
+
+ HFCveOS.Value = ObjOS.CveOS.ToString
+ HFCveOsDetalle.Value = ObjOS.CveOSDetalle.ToString
+ TxtDescripcion.Text = ObjOS.Descripcion
+ TxtSolicito.Text = ObjOS.PersonaSolicito
+ TxtFechaOS.Text = ObjOS.FechaRecepcion.ToString("dd/MM/yyyy")
+ 'DdlSubProyectoOS.SelectedValueExist(ObjOS.CveSubProyecto)
+ DdlClientesWS.txtText.Value = ObjOS.Cliente
+ DdlClientesWS.txtValue.Value = ObjOS.CveCliente.ToString
+ DdlClientesWS.ddl.SelectedValueExist(ObjOS.CveCliente.ToString)
+
+ If TipoAccion = OSModalTipoAccion.Actualizacion Then
+ DdlTecnicoAsignar.SelectedValueExist(ObjOS.CveUsuarioAtendio)
+ CveTecnicoAsignarOrioginal = ObjOS.CveUsuarioAtendio
+ FechaInicioOriginal = ObjOS.FechaInicio
+
+ DvModalSubProyecto.Visible = True
+ LblModalOStitulo.Text = "Actualizar Orden de Servicio"
+ 'TSTimeSelector.Hour = If(ObjOS.FechaInicio.Hour > 12, ObjOS.FechaInicio.Hour - 12, ObjOS.FechaInicio.Hour)
+ 'TSTimeSelector.Minute = ObjOS.FechaInicio.Minute
+ 'TSTimeSelector.AmPm = If(ObjOS.FechaInicio.Hour > 12, MKB.TimePicker.TimeSelector.AmPmSpec.PM, MKB.TimePicker.TimeSelector.AmPmSpec.AM)
+ End If
+
+
+ Dim TipoEstatus As Integer = 0
+ TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero
+
+ 'LnkModalAsignar.Visible = If(TipoEstatus.Contiene(4, 5), False, True)
+ LnkCancelarOrden.Visible = If(TipoEstatus.Contiene(4, 5), False, True)
+
+ If (TipoEstatus = 5) Then
+ LblModalOStitulo.Text = "Orden Cancelada"
+ End If
+
+ RegistraScript("$('#DVModalOS').modal('show');")
+
+ End If
+ ObjOS.Dispose()
+
+ ElseIf False Then ' Anterior
+
+ CveOSDetalleAsignar = -1
+ CveOSAsignar = -1
+ CveSubProyectoAsignar = -1
+ Dim DTable As DataTable = DT_OSNoAsignadas.FiltraParametros($"CveOSDetalle={DdlOrdenesSinAsignar.SelectedValue}")
+
+ If DTable.Rows.Count = 1 Then
+
+ CveOSDetalleAsignar = DTable.Rows(0)("CveOSDetalle").ToString.ToEntero
+ CveSubProyectoAsignar = DTable.Rows(0)("CveSubProyecto").ToString.ToEntero
+ CveOSAsignar = DTable.Rows(0)("CveOS").ToString.ToEntero
+ FolioAsignar = DTable.Rows(0)("Folio").ToString
+
+ 'LblModalConcepto.Text = DTable.Rows(0)("Concepto").ToString
+ 'LblModalCliente.Text = DTable.Rows(0)("Nombre").ToString
+ 'LblModalSubProyecto.Text = DTable.Rows(0)("SubProyecto").ToString
+
+ LblModalOStitulo.Text = "Asignar Orden de Servicio"
+
+ RegistraScript("$('#DVModalOS').modal('show');")
+ Else
+ Alert("Error al cargar datos.")
+ End If
+
+ End If
+
+
+ UpModalOS.Update()
+
+ End Sub
+
+
+ Protected Sub LnkModalAsignar_Click(sender As Object, e As EventArgs)
+
+ Dim TieneError As Boolean = False
+ Dim CveEstatusSolicidato = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "CveEstatusOrdenServicio ASC").ToEntero
+ Dim CveEstatusAsiganada = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero
+
+ Dim CveCliente As Integer = If(Not DdlClientesWS.SelectedValue.ToEntero > 0, DdlClientesWS.txtValue.Value.ToString.ToEntero, DdlClientesWS.SelectedValue.ToEntero)
+ Dim CvePSDetalle As Integer = UsuarioActual.Empresa.Funcionalidad(708).ToEntero
+ Dim EsNueva As Boolean = False
+
+
+ Dim CveOS As Integer = HFCveOS.Value.ToEntero
+ Dim CveOsDetalle As Integer = HFCveOsDetalle.Value.ToEntero
+
+
+ Dim CveSubProyectoTecnico As Integer = If(DdlTecnicoAsignar.SelectedValue.ToEntero > 0, GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0 ").ToEntero, -1)
+
+ If CveSubProyectoTecnico = 0 And DdlTecnicoAsignar.SelectedValue.ToEntero = 100 Then
+ CveSubProyectoTecnico = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1).FiltroPrimeroValor("CveSubProyecto").ToEntero
+ End If
+
+
+ If TipoAccion = OSModalTipoAccion.Asignacion AndAlso Not CveSubProyectoTecnico > 0 Then
+ Alert("No se encontro el subproyecto o centro de costo del tecnico seleccionado.")
+ Exit Sub
+ End If
+
+ If Not CvePSDetalle > 0 Then
+ Alert("No esta asiganado el producto del detalle a la funcionalidad.")
+ Exit Sub
+ End If
+
+ If Not CveCliente > 0 Then
+ Alert("Debe seleccionar una cliente.")
+ Exit Sub
+ End If
+
+ If TipoAccion = OSModalTipoAccion.Asignacion Then
+
+ If Not DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
+ Alert("El tecnico es requerido", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+
+
+ End If
+
+ Dim ObjOS As New ClsOS
+ ObjOS.IniciaTransacSQL()
+
+ If CveOS > 0 Then
+
+ Dim CveEstatusOrden = CveEstatusSolicidato
+ If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
+ CveEstatusOrden = CveEstatusAsiganada
+ End If
+
+ If TipoAccion = OSModalTipoAccion.Asignacion Then
+ CveEstatusOrden = CveEstatusAsiganada
+ End If
+
+ CveOS = HFCveOS.Value.ToEntero
+ CveOsDetalle = HFCveOsDetalle.Value.ToEntero
+
+ If CveOS > 0 Then
+
+ If Not ObjOS.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaOS.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatusOrden, CveOS, UsuarioActual.CveUsuario,
+ -1, CveClienteSucursal:=-1, Direccion:="", Telefono:="",
+ CveSubProyecto:=CveSubProyectoTecnico, Correo:="") Then
+ TieneError = True
+ End If
+ Else
+ TieneError = True
+ End If
+
+ End If
+
+ 'Dim picker As MKB.TimePicker.TimeSelector = TSTimeSelector
+ 'Dim time As DateTime
+ 'time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtModalFechaOS.Text, picker.Hour, picker.Minute, picker.AmPm))
+
+ If Not TieneError AndAlso CveOS > 0 AndAlso CveOsDetalle > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 AndAlso
+ (HFCveUsuarioAtendio.Value.ToEntero <> DdlTecnicoAsignar.SelectedValue.ToEntero) Then
+
+
+ 'If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
+ ' TieneError = True
+ 'End If
+
+
+ 'If ObjOS.GetSubProyectosEstatusInicial(DdlTecnicoAsignar.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then
+ ' Dim subProyectoDelTecnico As DataTable
+ ' subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoTecnico}")
+
+ ' If subProyectoDelTecnico.Rows.Count > 0 Then
+ ' If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) 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(CveEstatusAsiganada, UsuarioActual.CveUsuario, CveOS) Then
+ TieneError = True
+ End If
+
+ If Not TieneError Then
+
+
+ Dim ObjEventos As New ClsOIEventos(ObjOS.IniciaTransacSQL())
+
+ If HFOCveOIEvento.Value.ToEntero > 0 Then
+
+ If Not ObjEventos.RemoveAgendaBitacora(HFOCveOIEvento.Value.ToEntero, UsuarioActual.CveEmpresa) Then
+ TieneError = True
+ End If
+
+ End If
+
+
+ Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1"
+ Dim OIDescripcion As String = $"{DdlTecnicoAsignar.SelectedItem.Text} Orden de servicio {FolioAsignar} "
+ If Not ObjEventos.AddEventoAgenda(2, DdlTecnicoAsignar.SelectedItem.Text, OIDescripcion, 2, TxtFechaOS.Text.ToDateTime(), TxtFechaOS.Text.ToDateTime().AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
+ RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2,
+ Importe:=0, CveOS:=CveOS, CveSubProyecto:=CveSubProyectoTecnico, CveUsuarioPara:=DdlTecnicoAsignar.SelectedValue.ToEntero) Then
+ TieneError = True
+ End If
+ End If
+ End If
+ End If
+
+ If Not TieneError Then
+ ObjOS.Commit()
+ Else
+ ObjOS.RollBack()
+ End If
+ ObjOS.Dispose()
+
+ Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString
+ If Not TieneError And CorreoAsignado.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
+ CorreoAsignado = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString
+ MandaCorreOS(CveOS, CorreoAsignado)
+ End If
+
+ 'If Not TieneError And TxtEmail.Text.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
+ ' MandaCorreOS(CveOS, TxtEmail.Text, True)
+ 'End If
+
+ If Not TieneError Then
+
+ ConsultaOrdenesServiciosNoAsignadas()
+ CargaOrdenesServiciosNoAsignadas()
+
+ If TipoAccion = OSModalTipoAccion.Asignacion Then
+ Alert("Orden asignada correctamente.")
+ ElseIf TipoAccion = OSModalTipoAccion.Agregar Then
+ Alert("Orden Guardada correctamente.")
+ ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Then
+ Alert("Orden actualizada correctamente.")
+ End If
+
+ RegistraScript("$('#DVModalOS').modal('hide');Calendario();")
+
+ End If
+
+ End Sub
+
+ Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, Optional EsCliente As Boolean = False)
+
+ Dim ObjOS As New ClsOS()
+ Dim params As New List(Of ReportParameter)
+ Dim CveFolio = ""
+
+ Dim TmpDTOS = 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 = 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.ToDate.ToString("dd/MM/yyyy")))
+ params.Add(New ReportParameter("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))
+
+ params.Add(New ReportParameter("DireccionOS", dr("DireccionOS").ToString))
+ params.Add(New ReportParameter("Telefono", dr("Telefono").ToString))
+ params.Add(New ReportParameter("CorreoOS", dr("CorreoOS").ToString))
+
+ params.Add(New ReportParameter("ModeloMarca", dr("ModeloMarca").ToString))
+ params.Add(New ReportParameter("Año", dr("Año").ToString))
+ params.Add(New ReportParameter("TelefonoContacto", dr("TelefonoContacto").ToString))
+
+ params.Add(New ReportParameter("FechaImpresion", NowADS().ToString("dd/MM/yyyy")))
+ params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
+ params.Add(New ReportParameter("Condiciones", dr("Condiciones").ToString))
+ params.Add(New ReportParameter("FechaAtencion", If(dr("FechaInicio").ToString.Length > 0, dr("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy hh:mm tt"), "")))
+ params.Add(New ReportParameter("TecnicoAsignado", dr("UsuarioAtendio").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
+ 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 = TmpDTMaterialesOS}
+
+ lrds.Add(rds)
+ lrds.Add(rds2)
+ ObjOS.Dispose()
+
+ 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 GetCargaTiposOrden()
+ Dim ObjOS As New ClsOS
+
+ If ObjOS.GetTipoOrdenesServicios(UsuarioActual.CveEmpresa) AndAlso ObjOS.DtResultados IsNot Nothing AndAlso ObjOS.DtResultados.Rows.Count > 0 Then
+ CveOrdenServicioTipo = ObjOS.DtResultados.FiltroPrimeroValor("CveOrdenServicioTipo").ToEntero
+ Else
+ CveOrdenServicioTipo = -1
+ End If
+ ObjOS.Dispose()
+
+ End Sub
+
+
+ Protected Sub LnkCommando_Click(sender As Object, e As EventArgs)
+
+ ' Alert($"HFCveOS:{HFCveOS.Value}, HFCveOsDetalle:{HFCveOsDetalle.Value }, HFCveOIEvento:{HFOCveOIEvento.Value}")
+ TipoAccion = OSModalTipoAccion.Actualizacion
+ 'RegistraScript("$('#DVModalOS').modal('show');")
+ MostarModal()
+
+ End Sub
+
+ Protected Sub DdlTecnicoAsignar_SelectedIndexChanged(sender As Object, e As EventArgs)
+
+
+ If TipoAccion = OSModalTipoAccion.Asignacion Then
+
+
+ 'DdlTecnicoAsignar.Visible = True
+ 'RfvDdlTecnicoAsignar.Visible = True
+ 'VCERfvDdlTecnicoAsignar.Visible = True
+
+ 'RfvTxtModalFechaOS.Visible = True
+ 'VceRfvTxtModalFechaOS.Enabled = True
+ ElseIf TipoAccion = OSModalTipoAccion.Agregar Or TipoAccion = OSModalTipoAccion.Actualizacion Then
+
+ 'DdlTecnicoAsignar.Visible = False
+ 'RfvDdlTecnicoAsignar.Visible = False
+ ' VCERfvDdlTecnicoAsignar.Visible = False
+
+ 'RfvTxtModalFechaOS.Visible = False
+ 'VceRfvTxtModalFechaOS.Enabled = False
+
+ End If
+
+ UpModalOS.Update()
+
+ End Sub
+
+ Private Sub CargaClientePublicoGeneral()
+
+ Dim ObjCliente As New ClsClientes()
+
+ If ObjCliente.GetClientes(-1, "PUBLICO EN GENERAL", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then
+
+ If ObjCliente.DtResultados.Rows.Count > 0 Then
+ Me.CveClientePublicoGeneral = ObjCliente.CveCliente
+ Me.NombreClientePublicoGeneral = ObjCliente.Nombre
+ End If
+ End If
+ ObjCliente.Dispose()
+
+ End Sub
+
+
+ Protected Sub DdlTecnicoAsignar_SelectedIndexChanged1(sender As Object, e As EventArgs)
+ ValidaHorarioNoOperativo()
+ End Sub
+
+ Protected Sub LnkValidaHorarioNoOperativo_Click(sender As Object, e As EventArgs)
+ ValidaHorarioNoOperativo()
+ End Sub
+
+ Private Sub ValidaHorarioNoOperativo()
+ If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
+
+ Dim objOS As New ClsOS
+ Dim DTHorarios As New DataTable
+
+ If objOS.GetOrdenesServiciosTecnicoHorarioNoOperativo(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
+ DTHorarios = objOS.DtResultados
+ End If
+ objOS.Dispose()
+
+ If DTHorarios IsNot Nothing AndAlso DTHorarios.Rows.Count > 0 Then
+
+ Dim HoraInicio As TimeSpan = DTHorarios.Rows(0)("HoraInicio").ToString.ToDate.TimeOfDay
+ Dim HoraFin As TimeSpan = DTHorarios.Rows(0)("HoraFin").ToString.ToDate.TimeOfDay
+ Dim HoraAsignacion As TimeSpan = TxtFechaOS.Text.ToDate.TimeOfDay
+
+ If HoraAsignacion >= HoraInicio And HoraAsignacion <= HoraFin Then
+ Alert($"La hora especificada esta dentro del horario no operativo del Técnico {HoraInicio.ToString()} a {HoraFin.ToString()} .", TipoMensaje.MsgAdvertencia)
+ End If
+ End If
+ 'ViewState("Validando") = Nothing
+
+ End If
+ End Sub
+
+ Protected Sub LnkCancelarOrden_Click(sender As Object, e As EventArgs)
+
+ RegistraScript($"$('#{TxtModalCancelarOrdenMotivo.ClientID}').focus();;$('#DVModalCancelacionOrden').modal('show');")
+
+ TxtModalCancelarOrdenMotivo.Focus()
+ TxtModalCancelarOrdenMotivo.Text = ""
+ UpmodalCacelaOrden.Update()
+
+ End Sub
+
+
+
+ Protected Sub LnkmodalCancelarORdenServicio_Click(sender As Object, e As EventArgs)
+
+ Dim TieneError As Boolean = True
+ Dim CveOS As Integer = HFCveOS.Value.ToEntero
+ Dim objOS As New ClsOS
+ Dim ObjEventoBitacora As New ClsOIEventos(objOS.IniciaTransacSQL)
+ If objOS.UpdateOrdenesServiciosFinaliza(CveOS, -1, -1, UsuarioActual.CveEmpresa, Opcion:=2) Then 'Opcion:=2 Es para cancelar
+ If ObjEventoBitacora.AddEventoBitacora($"Motivo Cancelación: {TxtModalCancelarOrdenMotivo.Text.Trim}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveOS, -1, -1, -1, -1) Then
+ TieneError = False
+ End If
+ End If
+
+ If TieneError Then
+ objOS.RollBack()
+ Else
+ objOS.Commit()
+ End If
+
+ objOS.Dispose()
+
+
+ If Not TieneError Then
+ Alert("Orden Cancelada Correctamente", TipoMensaje.MsgInformacion, "location.reload(true);")
+ RegistraScript("$('#DVModalCancelacionOrden').modal('hide');")
+ RegistraScript("$('#DVModalFinalizarOrden').modal('hide');")
+ End If
+ End Sub
+End Class