Files
SIG/OS/RepServicioDomicilio.aspx.vb
2023-01-26 11:57:33 -07:00

1397 lines
52 KiB
VB.net

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 DtColor As DataTable
Get
Return DirectCast(ViewState("DtColor"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtColor") = 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") = DateTime.Now
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
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
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
'RegistraScript(" PrimeraCargaCalendario = true;")
End If
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 = 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 = 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
<WebMethod()> <Script.Services.ScriptMethodAttribute()>
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
<WebMethod()> <Script.Services.ScriptMethodAttribute()>
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 = Now.Hour
'TSTimeSelector.Minute = Now.Minute
CveTecnicoAsignarOrioginal = -1
FechaInicioOriginal = DateTime.Now
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 = Now.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}"
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
'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
RegistraScript("$('#DVModalOS').modal('show');")
End If
ObjOS.Dispose()
LblModalOStitulo.Text = "Actualizar Orden de Servicio"
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 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} <b><a href='/OS/OrdenesServicios.aspx?CveOS={CveOS}' target='_blank' class='Texto' >Orden de servicio {FolioAsignar} </a></b>"
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", Now.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", Now.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 = 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
End Class