Files
SIG/OS/Asignaciones.aspx.vb

272 lines
12 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class OS_Asignaciones
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property TmpDT As DataTable
Get
Return CType(ViewState("TmpDT"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDT") = value
End Set
End Property
Private Property DtOSSubProyectos As DataTable
Get
Return CType(ViewState("DtOSSubProyectos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtOSSubProyectos") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaEstatusOS()
'CargaUsuarios()
CargaClientes()
CargaSubProyecto()
If UsuarioActual.TienePermisoProceso(171) Then
CargaOrdenesServiciosAsignadasXPersona()
CargaOrdenesServiciosNoAsignadas()
Else
DivAsignar.Visible = False
DdlEstatusOS.SelectedValueExist(GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC"))
DdlPersonas.SelectedValueExist(UsuarioActual.CveUsuario)
DdlEstatusOS_SelectedIndexChanged(sender, New EventArgs)
DdlPersonas.Enabled = False
DivAsignacionPersona.Visible = False
'CargaOrdenesServiciosAsignadas()
End If
CargarTecnico()
Dim ObjEstatusPermisos As New ClsOS
If ObjEstatusPermisos.GetEstatusUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Dim Permisos As New DataTable
Permisos = ObjEstatusPermisos.DtResultados.FiltraParametros("TipoEstatus = 2")
If Permisos.Rows.Count = 0 Then
DdlTecnico.Visible = False
BtnAsignar.Visible = False
End If
End If
ObjEstatusPermisos.Dispose()
End If
End Sub
#Region "C A R G A S "
Private Sub CargaSubProyecto()
DdlSubProyecto.Items.Clear()
DdlSubProyecto.SelectedValue = Nothing
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa, Estatus:=1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaUsuarios()
DdlPersonas.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
DdlPersonas.DataBind()
DdlPersonas.Items.Insert(0, New ListItem("Todos", "-1"))
DdlTecnico.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
DdlTecnico.DataBind()
DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaOrdenesServiciosNoAsignadas()
Dim ObjOS As New ClsOS
Dim FechaI, FechaF As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
If ObjOS.GetOrdenesServiciosNoAsignadas(DdlCliente.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaI, FechaF) Then
DtOSSubProyectos = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
GvNA.DataSource = ObjOS.DtResultados
TmpDT = ObjOS.DtResultados
Else
GvNA.DataSource = Nothing
End If
GvNA.DataBind()
ObjOS.Dispose()
UpOS.Update()
End Sub
Private Sub CargaOrdenesServiciosAsignadas()
Dim ObjOS As New ClsOS
Dim FechaI, FechaF As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
If ObjOS.GetOrdenesServiciosAsignadas(DdlCliente.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPersonas.SelectedValue.ToEntero, FechaI, FechaF) Then
GvNA.DataSource = ObjOS.DtResultados
TmpDT = ObjOS.DtResultados
Else
GvNA.DataSource = Nothing
End If
GvNA.DataBind()
ObjOS.Dispose()
UpOS.Update()
End Sub
Private Sub CargaOrdenesServiciosAsignadasXPersona()
Dim ObjOS As New ClsOS
If ObjOS.GetOSAsignadas(UsuarioActual.CveEmpresa) Then
GvA.DataSource = ObjOS.DtResultados
If ObjOS.DtResultados.Rows.Count = 0 Then
DivAsignacionPersona.Visible = False
End If
Else
GvA.DataSource = Nothing
DivAsignacionPersona.Visible = False
End If
ObjOS.Dispose()
GvA.DataBind()
End Sub
Private Sub CargaClientes()
DdlCliente.DataSource() = GlobalDTCliente(UsuarioActual.CveEmpresa)
DdlCliente.DataBind()
DdlCliente.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaEstatusOS()
DdlEstatusOS.DataSource = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa)
DdlEstatusOS.DataBind()
End Sub
Private Sub DdlEstatusOS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEstatusOS.SelectedIndexChanged
Dim TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue))
If TipoEstatus.ToEntero = 1 Then
DivTecnico.Visible = False
Else
DivTecnico.Visible = True
End If
UPFiltros.Update()
End Sub
Private Sub CargarTecnico()
Dim ObjOS As New ClsOS
Dim TecnicosSubProyectos As New DataTable
Dim TecnicosResultado As New DataTable
If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then
TecnicosSubProyectos = ObjOS.DtResultados
End If
For Each SubProyecto As DataRow In DtOSSubProyectos.Rows
Dim EstatusDeTipoProcesoMenor As Integer = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}'", SubProyecto.Item("SubProyecto"))).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)
Next
DdlTecnico.DataSource = TecnicosResultado
DdlTecnico.DataBind()
DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1"))
ObjOS.Dispose()
End Sub
#End Region
#Region "BTN'S"
Protected Sub BtnAsignar_Click(sender As Object, e As EventArgs) Handles BtnAsignar.Click
Dim ObjOS As New ClsOS
Dim TieneError = False
Dim CveEstatusOS = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC")
Dim time As DateTime
For Each row As GridViewRow In GvNA.Rows
If row.RowType = DataControlRowType.DataRow Then
Dim picker As MKB.TimePicker.TimeSelector = DirectCast(row.FindControl("TimeSelector"), MKB.TimePicker.TimeSelector)
If row.FCCheckBox("ChbxAsignar").Checked Then
time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", row.FCTextBox("FechaOS").Text, picker.Hour, picker.Minute, picker.AmPm))
If Not ObjOS.UpdateOrdenesServiciosAsignadas(row.DataKey("CveOSDetalle").ToEntero, DdlTecnico.SelectedValue.ToEntero, row.FCTextBox("FechaOS").Text.ToDate, time, UsuarioActual.CveEmpresa) Then
TieneError = True
End If
If Not TieneError Then
If Not ObjOS.UpdateOrdenesServiciosEstatus(CveEstatusOS.ToEntero, UsuarioActual.CveUsuario, row.DataKey("CveOS").ToEntero) Then
TieneError = True
End If
End If
End If
End If
Next
If Not TieneError Then
Alert("Se asignaron las ordenes de servicio correctamente", TipoMensaje.MsgInformacion)
CargaOrdenesServiciosAsignadasXPersona()
CargaOrdenesServiciosNoAsignadas()
End If
ObjOS.Dispose()
UpAsignacionPersona.Update()
UpOS.Update()
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
Dim TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue))
If TipoEstatus.ToEntero <= 1 Then
CargaOrdenesServiciosNoAsignadas()
Else
CargaOrdenesServiciosAsignadas()
End If
End Sub
#End Region
#Region "GV"
Private Sub GvNA_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvNA.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DataKey("CveUsuarioAtendio") <> "" Then
e.Row.FCCheckBox("ChbxAsignar").Visible = False
e.Row.FCTextBox("FechaOS").Visible = False
e.Row.FCLinkButton("imgCalendario").Visible = False
e.Row.FCLiteral("LtlFechaServicio").Visible = True
e.Row.FCLiteral("LtlHoraServicio").Visible = True
e.Row.FindControl("TimeSelector").Visible = False
Else
e.Row.FCLiteral("LtlFechaServicio").Visible = False
e.Row.FCCheckBox("ChbxAsignar").Checked = False
e.Row.FCCheckBox("ChbxAsignar").Visible = True
e.Row.FCTextBox("FechaOS").Visible = True
e.Row.FCTextBox("FechaOS").Text = Now.ToString("dd/MM/yyy")
e.Row.FCLinkButton("imgCalendario").Visible = True
e.Row.FCLiteral("LtlHoraServicio").Visible = False
e.Row.FindControl("TimeSelector").Visible = True
End If
End If
UpOS.Update()
End Sub
#End Region
#Region "IMPRIMIR PDF"
Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click
Dim params As New List(Of ReportParameter)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = TmpDT
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("FechaInicio", txtFechaI.Text))
params.Add(New ReportParameter("FechaFin", txtFechaF.Text))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepOSAsignacion.rdlc", dt, params, "OrdenesServicio")
End Sub
#End Region
End Class