1397 lines
52 KiB
VB.net
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
|