Option Explicit On Option Strict On Imports Extensiones Imports System.Data Imports Microsoft.Reporting.WebForms Imports System.Web.Services Imports Telerik.Web.UI Imports APP_Code_CSharp Imports AjaxControlToolkit.AsyncFileUpload.Constants Imports System Imports System.Globalization Partial Class OS_RepServicioDomicilio 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 'RegistraScript(" PrimeraCargaCalendario = true;") End If End Sub Private Sub CargaUsuariosTecnicos() DTTecnicos = New DataTable 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 Protected Sub LnlAgregarServicioDomiciolio_Click(sender As Object, e As EventArgs) HFCveOS.Value = "-1" HFCveOsDetalle.Value = "-1" HFOCveOIEvento.Value = "-1" HFCveUsuarioAtendio.Value = "-1" DdlOrdenesSinAsignar.SelectedValueExist(-1) LipiaModalOS() TipoAccion = OSModalTipoAccion.Agregar MostarModal() 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 'DdlSubProyectoOS.Items.Clear() CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoOS) 'DdlModeloAuto.Items.Clear() Dim ObjGral As New ClsGenerales If ObjGral.ModelosAutosGet(1, UsuarioActual.CveEmpresa) Then DdlModeloAuto.DataSource = ObjGral.DtResultados End If ObjGral.Dispose() DdlModeloAuto.DataBind() DdlModeloAuto.Items.Insert(0, New ListItem("Sin Asignar", "-1")) 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 = "" 'DdlSubProyectoOS.SelectedValueExist("-1") TxtDireccion.Text = "" TxtEmail.Text = "" TxtTelefono.Text = "" DdlClientesWS.txtText.Value = "" DdlClientesWS.txtValue.Value = "" DdlClientesWS.ddl.SelectedValueExist("-1") DdlTecnicoAsignar.SelectedValueExist("-1") DdlModeloAuto.SelectedValueExist("-1") TxtAnio.Text = "" TxtModalFechaOS.Text = "" 'TSTimeSelector.Hour = NowADS().Hour 'TSTimeSelector.Minute = NowADS().Minute CveTecnicoAsignarOrioginal = -1 FechaInicioOriginal = NowADS() DVFolio.Visible = False DvModalSubProyecto.Visible = False TxtCondiciones.Text = "" 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 ObjOS As New ClsOS() 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 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) TxtDireccion.Text = ObjOS.DtResultados.Rows(0)("DireccionOS").ToString TxtEmail.Text = ObjOS.CorreoOS TxtTelefono.Text = ObjOS.Telefono DdlClientesWS.txtText.Value = ObjOS.Cliente DdlClientesWS.txtValue.Value = ObjOS.CveCliente.ToString DdlClientesWS.ddl.SelectedValueExist(ObjOS.CveCliente.ToString) DdlModeloAuto.SelectedValueExist(ObjOS.CveModeloAuto) TxtAnio.Text = ObjOS.Año LblModalSubproyecto.Text = ObjOS.SubProyecto TxtCondiciones.Text = ObjOS.Condiciones If TipoAccion = OSModalTipoAccion.Actualizacion Then DdlTecnicoAsignar.SelectedValueExist(ObjOS.CveUsuarioAtendio) CveTecnicoAsignarOrioginal = ObjOS.CveUsuarioAtendio FechaInicioOriginal = ObjOS.FechaInicio TxtModalFechaOS.Text = ObjOS.FechaInicio.ToString.ToDate.ToString("dd/MM/yyyy HH:mm") 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 If TxtModalFechaOS.Text.Length = 0 Then Alert("La Fecha de asiganción es requerida", TipoMensaje.MsgAdvertencia) Exit Sub End If End If Dim ObjOS As New ClsOS ObjOS.IniciaTransacSQL() If Not CveOS > 0 Then EsNueva = True Dim CveEstatosOrdenNueva = CveEstatusSolicidato If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then CveEstatosOrdenNueva = CveEstatusAsiganada End If If ObjOS.AddOrdenesServicios(CveCliente, CveSubProyectoTecnico, TxtSolicito.Text, TxtFechaOS.Text.ToDateTime, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatosOrdenNueva, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, CveOrdenServicioTipo, CveClienteSucursal:=-1, Direccion:=TxtDireccion.Text, Telefono:=TxtTelefono.Text, CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, Correo:=TxtEmail.Text, Condiciones:=TxtCondiciones.Text.Trim) Then CveOS = ObjOS.CveOS CveOsDetalle = ObjOS.AddOrdenesServiciosDetalle(CveOS, CvePSDetalle, 1, -1, -1, "", False, True, False, -1, "-1", "-1", "-1", "", UsuarioActual.CveUsuario, "") If Not CveOsDetalle > 0 Then TieneError = True End If Else TieneError = True End If Else 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:=TxtDireccion.Text, Telefono:=TxtTelefono.Text, CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, CveSubProyecto:=CveSubProyectoTecnico, Correo:=TxtEmail.Text, Condiciones:=TxtCondiciones.Text.Trim) 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 Or TxtModalFechaOS.Text.ToDate <> FechaInicioOriginal.ToString.ToDate Or TxtModalFechaOS.Text.ToDateTime() <> FechaInicioOriginal) Then If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) 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, TxtModalFechaOS.Text.ToDateTime(), TxtModalFechaOS.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 LnkHorariosNoOperativos_Click(sender As Object, e As EventArgs) RegistraScript("$('#DVModalOSHorarioNoOperativo').modal('show');") DdlTecnicoAsignarHorario.Items.Clear() DdlTecnicoAsignarHorario.DataSource = DTTecnicos 'GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True'") DdlTecnicoAsignarHorario.DataBind() DdlTecnicoAsignarHorario.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DdlTecnicoAsignarHorario.SelectedValueExist("-1") TxtHorarioInicio.SetTime(0, 0, 0, MKB.TimePicker.TimeSelector.AmPmSpec.AM) TxtHorarioFin.SetTime(0, 0, 1, MKB.TimePicker.TimeSelector.AmPmSpec.AM) UpModalHorariosNoOperativos.Update() End Sub Protected Sub DdlTecnicoAsignarHorario_SelectedIndexChanged(sender As Object, e As EventArgs) TxtHorarioInicio.SetTime(0, 0, 0, MKB.TimePicker.TimeSelector.AmPmSpec.AM) TxtHorarioFin.SetTime(0, 0, 1, MKB.TimePicker.TimeSelector.AmPmSpec.AM) If DdlTecnicoAsignarHorario.SelectedValue.ToEntero > 0 Then Dim objOS As New ClsOS Dim DTHorarios As New DataTable If objOS.GetOrdenesServiciosTecnicoHorarioNoOperativo(DdlTecnicoAsignarHorario.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 String = DTHorarios.Rows(0)("HoraInicio").ToString Dim HoraFin As String = DTHorarios.Rows(0)("HoraFin").ToString TxtHorarioInicio.SetTime(HoraInicio.ToDateTime.Hour, HoraInicio.ToDateTime.Minute, HoraInicio.ToDateTime.Second, If(HoraInicio.ToDateTime.ToString("tt", CultureInfo.InvariantCulture) = "PM", MKB.TimePicker.TimeSelector.AmPmSpec.PM, MKB.TimePicker.TimeSelector.AmPmSpec.AM)) TxtHorarioFin.SetTime(HoraFin.ToDateTime.Hour, HoraFin.ToDateTime.Minute, HoraFin.ToDateTime.Second, If(HoraFin.ToDateTime.ToString("tt", CultureInfo.InvariantCulture) = "PM", MKB.TimePicker.TimeSelector.AmPmSpec.PM, MKB.TimePicker.TimeSelector.AmPmSpec.AM)) End If End If UpModalHorariosNoOperativos.Update() End Sub Protected Sub LnkGuardarHorarioNoOpeartivo_Click(sender As Object, e As EventArgs) If DdlTecnicoAsignarHorario.SelectedValue.ToEntero > 0 Then Dim HoraInicio = $"{TxtHorarioInicio.Hour}:{TxtHorarioInicio.Minute}:{TxtHorarioInicio.Second} {TxtHorarioInicio.AmPm}".ToDateTime Dim HoraFin = $"{TxtHorarioFin.Hour}:{TxtHorarioFin.Minute}:{TxtHorarioFin.Second} {TxtHorarioFin.AmPm}".ToDateTime If HoraInicio > HoraFin Then Alert("La hora final no debe ser mayor a la hora inicial", TipoMensaje.MsgAdvertencia) Exit Sub End If If HoraFin = HoraInicio Then Alert("la hora de inicio y la hora fin no pueden ser iguales", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim objOS As New ClsOS If objOS.AddOrdenesServiciosTecnicoHorarioNoOperativo(DdlTecnicoAsignarHorario.SelectedValue.ToEntero, HoraInicio, HoraFin, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then Alert("Horario no operativo guardado correntamente.") RegistraScript("$('#DVModalOSHorarioNoOperativo').modal('hide');") End If objOS.Dispose() End If 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 = TxtModalFechaOS.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 BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click ' Dim ObjEventoBitacora As New ClsOIEventos ' Dim FileExtension As String = "-1" ' Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos ' Dim filemove As String = "" ' For Each fileItem As Archivo In filesgral ' FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") ' filemove = fileItem.filename ' Next ' If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveOS, -1, -1, -1, -1) Then ' If filemove <> "" Then ' filemove.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("{0}OI", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase:=False) ' End If ' GvEB.DataSource = ObjEventoBitacora.DtResultados ' TxtEventoDescripcion.Text = "" ' Anexo.Text = "[]" ' Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) ' RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") ' End If ' ObjEventoBitacora.Dispose() ' GvEB.DataBind() ' UPEventoBitacora.Update() ' CargaEventoBitacora() ' UPAddEventoBitacora.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