Option Explicit On
Option Strict On
Imports Extensiones
Imports System.IO
Imports System.Data
Imports Telerik.Web.UI
Imports System.Data.SqlClient
Imports Stimulsoft.Report.StiOptions.Export
Imports Modelos
Partial Class OS_OrdenesServicios
Inherits ClsPaginas
#Region "Propiedades"
Private Shared missing As Object = System.Reflection.Missing.Value
Private Property CveCliente As Integer
Get
Return ViewState("CveCliente").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCliente") = value
End Set
End Property
Private Property TipoEstatus As Integer
Get
Return ViewState("TipoEstatus").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("TipoEstatus") = value
End Set
End Property
Private Property CveFolio As Integer
Get
Return ViewState("CveFolio").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveFolio") = value
End Set
End Property
Private Property CveSub As Integer
Get
Return ViewState("CveSub").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveSub") = value
End Set
End Property
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 DTPS As DataTable
Get
Return CType(ViewState("DTPS"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTPS") = value
End Set
End Property
Private Property DtSubProyectos As DataTable
Get
Return CType(ViewState("DtSubProyectos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtSubProyectos") = value
End Set
End Property
Private Property CveOS As Integer
Get
If ViewState("CveOS") Is Nothing Then
ViewState("CveOS") = -1
End If
Return ViewState("CveOS").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveOS") = value
End Set
End Property
Private Property CveVenta As Integer
Get
If ViewState("CveVenta") Is Nothing Then
ViewState("CveVenta") = -1
End If
Return ViewState("CveVenta").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveVenta") = value
End Set
End Property
Private Property CveOsDetalle As Integer
Get
Return ViewState("CveOsDetalle").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveOsDetalle") = value
End Set
End Property
Private Property CveCaracteristicaValor As Integer
Get
Return ViewState("CveCaracteristicaValor").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCaracteristicaValor") = value
End Set
End Property
Private Property CveConsecutivo As Integer
Get
Return ViewState("CveConsecutivo").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveConsecutivo") = value
End Set
End Property
Private Property CveUsuarioAtendio As Integer
Get
Return ViewState("CveUsuarioAtendio").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveUsuarioAtendio") = value
End Set
End Property
Private Property CveUsuarioAtendioCount As Integer
Get
Return ViewState("CveUsuarioAtendioCount").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveUsuarioAtendioCount") = value
End Set
End Property
Private Property NombreCliente As String
Get
Return ViewState("NombreCliente").ToString
End Get
Set(value As String)
ViewState("NombreCliente") = value
End Set
End Property
Private Property ClienteDireccion As String
Get
Return ViewState("ClienteDireccion").ToString
End Get
Set(value As String)
ViewState("ClienteDireccion") = value
End Set
End Property
Private Property ClienteColonia As String
Get
Return ViewState("ClienteColonia").ToString
End Get
Set(value As String)
ViewState("ClienteColonia") = value
End Set
End Property
Private Property ClienteCiudad As String
Get
Return ViewState("ClienteCiudad").ToString
End Get
Set(value As String)
ViewState("ClienteCiudad") = value
End Set
End Property
Private Property ClienteEstado As String
Get
Return ViewState("ClienteEstado").ToString
End Get
Set(value As String)
ViewState("ClienteEstado") = value
End Set
End Property
Private Property TelefonoCliente As String
Get
Return ViewState("TelefonoCliente").ToString
End Get
Set(value As String)
ViewState("TelefonoCliente") = value
End Set
End Property
Private Property Materiales As String
Get
Return ViewState("Materiales").ToString
End Get
Set(value As String)
ViewState("Materiales") = value
End Set
End Property
Private Property CveCotizacion As Integer
Get
Return ViewState("CveCotizacion").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCotizacion") = value
End Set
End Property
Private Property TmpDTCaracteristica As DataTable
Get
Return CType(ViewState("TmpDTCaracteristica"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDTCaracteristica") = value
End Set
End Property
Private Property TmpDTCuentaCaracteristica As DataTable
Get
Return CType(ViewState("TmpDTCuentaCaracteristica"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDTCuentaCaracteristica") = value
End Set
End Property
Private Property TmpDTMaterialesDetalle As DataTable
Get
Return CType(ViewState("TmpDTMaterialesDetalle"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDTMaterialesDetalle") = value
End Set
End Property
Private Property TmpDTSolicitarMaterial As DataTable
Get
Return CType(ViewState("TmpDTSolicitarMaterial"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDTSolicitarMaterial") = value
End Set
End Property
Private Property TmpDTCuentaEquipo As DataTable
Get
Return CType(ViewState("TmpDTCuentaEquipo"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDTCuentaEquipo") = value
End Set
End Property
Private Property EstatusOSDelUsuario As DataTable
Get
Return CType(ViewState("EstatusOSDelUsuario"), DataTable)
End Get
Set(value As DataTable)
ViewState("EstatusOSDelUsuario") = value
End Set
End Property
Private Property MensajeAlert As StringBuilder
Get
Return CType(ViewState("MensajeAlert"), StringBuilder)
End Get
Set(value As StringBuilder)
ViewState("MensajeAlert") = value
End Set
End Property
Private Property CveTecnico As Integer
Get
Return ViewState("CveTecnico").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveTecnico") = value
End Set
End Property
Private Property ClienteRFC As String
Get
Return ViewState("ClienteRFC").ToString
End Get
Set(value As String)
ViewState("ClienteRFC") = value
End Set
End Property
Private Property ClienteMail As String
Get
Return ViewState("ClienteMail").ToString
End Get
Set(value As String)
ViewState("ClienteMail") = value
End Set
End Property
Private Property DTSolicitudDev As DataTable
Get
Return If(ViewState("DTSolicitudDev") Is Nothing, New DataTable, DirectCast(ViewState("DTSolicitudDev"), DataTable))
End Get
Set(value As DataTable)
ViewState("DTSolicitudDev") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'DATOS CLIENTE
CveCliente = 0
NombreCliente = ""
ClienteDireccion = ""
ClienteCiudad = ""
ClienteEstado = ""
Materiales = "-1"
TipoEstatus = 1
CveConsecutivo = 0
CveOsDetalle = -1
CveVenta = -1
CveUsuarioAtendioCount = 0
ImgImprimir.Visible = False
CargaSubProyecto()
CargaTiposOrden()
CargaTecnico()
CargaPS(-1, DdlPSDetalle)
CargaPsMateriales()
'CargaClasificaciones()
CargaPSCaracteristicasOpciones()
CargaCuentasCaracteristicas()
CargaAlmacen()
CargaModelos()
CreaDT()
CreaDTPS()
CreaDtMaterialesDetalle()
CreaDtSolicitarMateriales()
CargaAgentes()
CargaProcedimientos()
CargaTiposVenta()
CveSub = -1
'Carga cliente
If Request("CveCliente") IsNot Nothing AndAlso IsNumeric(Request("CveCliente")) AndAlso Request("CveCliente").ToEntero > 0 Then
ViewState("CveCliente") = Request("CveCliente")
HdnCveCliente.Value = Request("CveCliente")
CargaCliente(CveCliente)
CargarCuentasEquipos(CveCliente)
Else
ViewState("CveCliente") = -1
HdnCveCliente.Value = "-1"
End If
If Request("CveOS") IsNot Nothing AndAlso IsNumeric(Request("CveOS")) AndAlso Request("CveOS").ToEntero > 0 Then
ViewState("CveOS") = Request("CveOS")
Else
ViewState("CveOS") = -1
End If
If Request("CveCotizacion") IsNot Nothing AndAlso IsNumeric(Request("CveCotizacion")) AndAlso Request("CveCotizacion").ToEntero > 0 Then
CveCotizacion = Request("CveCotizacion").ToEntero
CargaVenta()
Else
CveCotizacion = -1
End If
If Request("CveVenta") IsNot Nothing AndAlso IsNumeric(Request("CveVenta")) AndAlso Request("CveVenta").ToEntero > 0 Then
CveCotizacion = Request("CveVenta").ToEntero
CargaVenta()
Else
CveCotizacion = -1
End If
'Carga OS
If CveOS > 0 Then
'CargaEstatusOS()
CargaDatos()
'PermisosSegunEstatus()
CargaDetalles()
CargaMateriales()
DivSeFactura.Visible = True
BtnGuardar.Text = "Guardar Cambios"
LtlTitulo.Text = "Consulta del Orden de Servicio"
TxtFecha.Text = NowADS().ToString("dd/MM/yyy")
If UsuarioActual.TienePermisoProceso(198) Then
ChkSeFacturara.Visible = True
ChkSeFacturara.Checked = True
Else
ChkSeFacturara.Visible = False
ChkSeFacturara.Checked = False
End If
Else
DivSeFactura.Visible = False
TxtFechaRecibido.Text = NowADS().ToString("dd/MM/yyy")
ViewState("CveOS") = -1
DdlEstatusOS.Enabled = False
CargaEstatusOS()
End If
hdnEsThickbox.Value = "S"
hdnClientIDLink.Value = "NoDefinido"
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
DVDatosAdicionalesAcum1.Visible = True
DVDatosAdicionalesAcum2.Visible = True
DVDatosAdicionalesAcum3.Visible = True
If CveOS = -1 Then
CargaCliente(-1, 1, True)
End If
Else
LblCuentaEquipoTH.Visible = False
DdlCuentaEquipo.Visible = False
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
DivMateriales.Attributes.Add("style", "display:none") 'No se usa .visible = false pora que la llamada a updatepanel no cause errores de js en el cliente
TREstatus.Visible = False
LblCuentaEquipoTH.Visible = False
DdlCuentaEquipo.Visible = False
TREstatus2.Visible = If(TipoEstatus.Contiene(4, 5), False, True)
DdlPsModalFinalizar.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPsModalFinalizar.SelectedText = ""
DdlPsModalFinalizar.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPsModalFinalizar.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPsModalFinalizar.ddl.DataBind()
DdlPsModalFinalizar.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
End If
If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
DVAMedicoProcedimiento.Visible = True
DVTipoVenta.Visible = True
DvFechaRecivido1.Visible = False
DvFechaRecivido2.Visible = False
DVFechaCita1.Visible = True
DVFechaCita2.Visible = True
DVEpisodioPaciente.Visible = True
End If
End If
End Sub
Private Sub CargaTiposVenta()
DdlTipoVenta.DataSource = GlobalDTTipoVenta().FiltraParametros("Estatus = 'True' ")
DdlTipoVenta.DataBind()
End Sub
Private Sub CargaProcedimientos()
DdlMedico.DataSource = GlobalDTMedicos(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True' ")
DdlMedico.DataBind()
End Sub
Private Sub CargaAgentes()
DdlProcedimiento.DataSource = GlobalDTProcedimientos(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True' ")
DdlProcedimiento.DataBind()
End Sub
#Region "DDL'S "
Protected Sub DdlPSDetalle_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPSDetalle.SelectedIndexChanged
If CveCliente > 0 OrElse DdlPSDetalle.SelectedValue = "-2" Then
If DdlPSDetalle.SelectedIndex > 1 Then
Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSDetalle.SelectedValue.ToEntero).FiltroPrimero("")
CargaPSCaracteristicas()
End If
End If
UpDetalleOS.Update()
End Sub
'Protected Sub DdlCCEdit_SelectedIndexChanged(sender As Object, e As System.EventArgs)
' Dim gvr As GridViewRow = DirectCast(DirectCast(sender, DropDownList).BindingContainer, GridViewRow)
' Dim CveProyecto As String = DirectCast(sender, DropDownList).SelectedValue
' gvr.FCDropDownList("DDlSubProyecto").Items.Clear()
' gvr.FCDropDownList("DDlSubProyecto").DataSource = GlobalDTSubProyectos(CveProyecto.ToEntero)
' gvr.FCDropDownList("DDlSubProyecto").DataBind()
' gvr.FCDropDownList("DDlSubProyecto").Items.Insert(0, New ListItem("Sin SubProyecto Asignado", "-1"))
'End Sub
Protected Sub DdlFR_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim DdlFR_Gv As DropDownList = CType(sender, DropDownList)
Dim index As Integer = CType(DdlFR_Gv.NamingContainer, GridViewRow).FCLiteral("LtlConsecutivo").Text.ToString.ToEntero
If UsuarioActual.Empresa.UsaAC Then
TmpDT(index - 1)("CvePresupuestoIngreso") = DdlFR_Gv.SelectedValue
End If
TmpDT.AcceptChanges()
End Sub
Protected Sub DdlEstatusOS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEstatusOS.SelectedIndexChanged
'Dim tipoDeEstatusSeleccionado As String = EstatusOSDelUsuario.FiltroPrimero(String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue)).Item("TipoEstatusTexto").ToString
'Select Case tipoDeEstatusSeleccionado
' Case "Inicial"
' 'Proceso
' Case "Terminado"
' 'Terminada
' 'Checar que todos los detalles esten terminados para poder cambiar a terminada
' If TmpDT.COUNT("Estatus", "Estatus = 'False'").ToEntero > 0 Then
' Alert("No se puede cambiar a Terminada, aún tiene Detalles de Orden de Servicio por Atender", TipoMensaje.MsgAdvertencia)
' 'Regresar a estatus Atendiendo
' 'DdlEstatusOS.SelectedValue = "2"
' End If
' ' Case 4
' ' 'Cancelada
' ' Case 5
' ' 'Entregada
' ' Guardar(True)
' Case "Cancelada"
' Dim CanceladoOrdenMinimo As String = EstatusOSDelUsuario.FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 5", "Orden ASC").ToString
' DdlEstatusOS.SelectedValue = CanceladoOrdenMinimo
' 'DdlEstatusOS.SelectedIndex = CanceladoOrdenMinimo
'End Select
''CargaEstatusOS(DdlEstatusOS.SelectedValue.ToEntero)
'PermisosSegunEstatus()
'GvPS.DataSource = TmpDT
'GvPS.DataBind()
Dim tmpTipoEstatus As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", $" CveEstatusOrdenServicio = {DdlEstatusOS.SelectedValue}").ToEntero
Select Case tmpTipoEstatus
Case 1, 2, 3
'Proceso
Case 4
'Terminada
'Checar que todos los detalles esten terminados para poder cambiar a terminada
If TmpDT.COUNT("Estatus", "Estatus = 'False'").ToEntero > 0 Then
Alert("No se puede cambiar a Terminada, aún tiene Detalles de Orden de Servicio por Atender", TipoMensaje.MsgAdvertencia)
'Regresar a estatus Atendiendo
'DdlEstatusOS.SelectedValue = "2"
End If
' Case 4
' 'Cancelada
' Case 5
' 'Entregada
' Guardar(True)
Case 5
Dim CanceladoOrdenMinimo As String = EstatusOSDelUsuario.FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 5", "Orden ASC").ToString
DdlEstatusOS.SelectedValue = CanceladoOrdenMinimo
'DdlEstatusOS.SelectedIndex = CanceladoOrdenMinimo
End Select
End Sub
#End Region
#Region "C A R G A S"
Private Sub CargaSubProyecto(Optional CveSubProyecto As Integer = -1)
'Dim ObjOS As New ClsOS
'If ObjOS.GetSubProyectosEstatusInicial(UsuarioActual.CveUsuario, 1, UsuarioActual.CveEmpresa) Then
' DdlSubProyecto.Items.Clear()
' DdlSubProyecto.SelectedValue = Nothing
' DdlSubProyecto.DataSource = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
' If CveSubProyecto > 0 Then DdlSubProyecto.SelectedValueExist(CveSubProyecto)
' DdlEstatusOS.DataSource = ObjOS.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0}", CveSubProyecto), "", {"CveEstatusOrdenServicio", "EstatusOrdenServicio"})
'End If
'ObjOS.Dispose()
'DdlSubProyecto.DataBind()
'DdlEstatusOS.DataBind()
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto, AplicaTodos:="Seleccione Uno")
End Sub
Private Sub CargaTiposOrden()
Dim ObjOS As New ClsOS
DdlTipoOrdenOS.Items.Clear()
If ObjOS.GetTipoOrdenesServicios(UsuarioActual.CveEmpresa) Then
DdlTipoOrdenOS.DataSource = ObjOS.DtResultados
Else
DdlTipoOrdenOS.DataSource = Nothing
End If
ObjOS.Dispose()
DdlTipoOrdenOS.DataBind()
DdlTipoOrdenOS.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub CargaDatos()
Dim ObjOS As New ClsOS()
Dim IDOSDetalle As Integer = 1
Dim SeFacturara As String = ""
If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
If ObjOS.DtResultados.Rows.Count > 0 Then
'Pestaña Datos Generales
ViewState("CveCliente") = ObjOS.CveCliente.ToString
CargaCliente(CveCliente)
TxtDescripcion.Text = ObjOS.Descripcion
TxtSolicito.Text = ObjOS.PersonaSolicito
CveOsDetalle = ObjOS.CveOSDetalle
TxtFechaRecibido.Text = ObjOS.FechaRecepcion.ToString("dd/MM/yyyy")
TxtFechaCita.Text = ObjOS.FechaCita.ToDateTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(" ", "T")
CveFolio = ObjOS.Folio
LblFolio.Text = ObjOS.Folio.ToString
DdlSubProyecto.SelectedValueExist(ObjOS.CveSubProyecto)
DdlTipoOrdenOS.SelectedValueExist(ObjOS.CveOSTipo)
DdlSucursalCliente.SelectedValueExist(ObjOS.CveClienteSucursal)
TxtDireccion.Text = ObjOS.DtResultados.Rows(0)("DireccionOS").ToString
TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero
SeFacturara = GlobalDTTipoOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("SeFacturara", String.Format("CveOrdenServicioTipo = {0}", ObjOS.CveOSTipo))
CveTecnico = ObjOS.CveUsuarioAtendio
CargarEstatusDelUsuario(TipoEstatus)
CveVenta = ObjOS.CveVenta
'Dim validacionTieneEstatus As Integer = EstatusOSDelUsuario.FiltraParametros(String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio)).Rows.Count
'If validacionTieneEstatus > 0 Then
' DdlEstatusOS.Items.Clear()
' DdlEstatusOS.DataSource = EstatusOSDelUsuario
' DdlEstatusOS.DataBind()
'Else
CargaEstatusOS()
'DdlEstatusOS.Enabled = False
'End If
DdlEstatusOS.SelectedValue = ObjOS.CveEstatusOrdenServicio.ToString
'If TipoEstatus = 2 Then
' LnkTecnico.Visible = True
'End If
If TipoEstatus = 3 Then
'DisableAll()
'If SeFacturara = "True" Then
' HplFacturar.Visible = True
' If ObjOS.CveCotizacion > 0 Then
' HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", ObjOS.CveCotizacion)
' Else
' HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveOS={0}", CveOS)
' End If
'End If
ElseIf TipoEstatus = 4 Then
'DisableAll()
If SeFacturara = "True" Then
HplFacturar.Visible = True
If ObjOS.CveCotizacion > 0 Then
HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", ObjOS.CveCotizacion)
Else
HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveOS={0}", CveOS)
End If
End If
End If
DivCliente.Attributes.Add("class", "col-md-8")
DivFolio.Visible = True
DivEstatus.Visible = True
DivMateriales.Visible = True
ImgImprimir.Visible = True
TxtTelefono.Text = ObjOS.Telefono
DdlModeloAuto.SelectedValueExist(ObjOS.CveModeloAuto)
TxtAnio.Text = ObjOS.Año
DdlMedico.SelectedValueExist(ObjOS.CveMedico)
DdlProcedimiento.SelectedValueExist(ObjOS.CveProcedimiento)
DdlTipoVenta.SelectedValueExist(ObjOS.CveTipoVenta)
TxtPaciente.Text = ObjOS.Paciente
TxtIdentificadorCliente.Text = ObjOS.IdentificadorCliente
CargaEventoBitacora()
CargaHistorial()
If TipoEstatus.Contiene(1, 2, 3) Then
LnkAccionesMaterialUtilizado.Visible = True
End If
Else
Alert("La Orden de Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
BtnGuardar.Enabled = False
End If
End If
ObjOS.Dispose()
End Sub
Private Sub CargaVenta()
Dim ObjVentas As New ClsVentas
If ObjVentas.GetVenta(CveCotizacion, UsuarioActual.CveEmpresa) Then
If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
ViewState("CveCliente") = ObjVentas.DtResultados.Rows(0)("CveCliente").ToString.ToEntero
CargaCliente(CveCliente)
Dim Drow As DataRow = ObjVentas.DtResultados.Rows(0)
If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then
TxtDescripcion.Text = Drow("SerieFolio").ToString
TxtSolicito.Text = UsuarioActual.Nombre
DdlMedico.SelectedValueExist(Drow("CveMedico").ToString)
DdlProcedimiento.SelectedValueExist(Drow("CveProcedimiento").ToString)
DdlTipoVenta.SelectedValueExist(Drow("CveTipoVenta").ToString)
DdlSubProyecto.SelectedValueExist(Drow("CveSubProyecto").ToString)
'If dr("CveTipoPS").ToString.ToEntero = 2 Then
Dim CvePSDetalle As Integer = UsuarioActual.Empresa.Funcionalidad(708).ToEntero
Dim CodigoPS As String = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("PSCodigo", $"CvePS={CvePSDetalle}")
TxtFechaCita.Text = NowADS.ToString("yyyy-MM-dd HH:mm:ss").Replace(" ", "T")
Dim drt As DataRow = TmpDT.NewRow
drt("Consecutivo") = 1
drt("CveOSDetalle") = -1
drt("CvePS") = CvePSDetalle
drt("PS") = CodigoPS
drt("Cantidad") = 1
drt("Observaciones") = $"Venta: {Drow("SerieFolio").ToString}"
drt("SeFacturara") = True
drt("SeSuperviso") = False
drt("Archivo") = -1
drt("CveCuentaEquipo") = "-1"
drt("CuentaEquipoMostrar") = ""
drt("Especificaciones") = "-1"
TmpDT.Rows.Add(drt)
GvPS.DataSource = TmpDT
GvPS.DataBind()
Else
If ObjVentas.GetVentaDetalle(CveCotizacion) Then
Dim Cons As Integer = 1
For Each dr As DataRow In ObjVentas.DtResultados.Rows
Dim drt As DataRow = TmpDT.NewRow
If dr("CveTipoPS").ToString.ToEntero = 2 Then
drt("Consecutivo") = Cons
drt("CveOSDetalle") = -1
drt("CvePS") = dr("CvePS")
drt("PS") = dr("PS")
drt("Cantidad") = dr("Cantidad")
drt("Observaciones") = dr("Obs")
drt("SeFacturara") = True
drt("SeSuperviso") = False
drt("Archivo") = -1
drt("CveCuentaEquipo") = "-1"
drt("CuentaEquipoMostrar") = "Cuentas y/o Equipos"
drt("Especificaciones") = "-1"
TmpDT.Rows.Add(drt)
Cons = Cons + 1
End If
Next
GvPS.DataSource = TmpDT
GvPS.DataBind()
End If
End If
End If
'CargaDetalle
End If
'BtnVerCotizacion.Visible = True
ObjVentas.Dispose()
End Sub
Private Sub CargaDetalles()
Dim ObjOrdenServicio As New ClsOS()
Dim IDOSDetalle As Integer = 1
CreaDT()
If ObjOrdenServicio.GetOrdenesServiciosDetalle(CveOS) Then
If ObjOrdenServicio.DtResultados IsNot Nothing Then
For Each Row As DataRow In ObjOrdenServicio.DtResultados.Rows
CveOsDetalle = Row("CveOSDetalle").ToString.ToEntero
Dim ComentarioTecnico As String = Row("ComentarioTecnico").ToString
Dim Especificaciones As String = "-1"
Dim EspecificacionesLink As String = ""
Dim SeFacturara As Boolean
Dim Estatus As Boolean
Dim SeSuperviso As Boolean
If Row("SeFacturaraTexto").ToString = "Sí" Then SeFacturara = True Else SeFacturara = False
If Row("Estatus").ToString = "Activo" Then Estatus = True Else Estatus = False
If Row("SeSuperviso").ToString = "Sí" Then SeSuperviso = True Else SeSuperviso = False
CargaMaterialesDetalle(CveOsDetalle, IDOSDetalle, IDOSDetalle)
For Each R As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", IDOSDetalle)).Rows
If Materiales = "-1" Then Materiales = "" Else Materiales = Materiales + "
"
Materiales = Materiales + String.Format("{0} {1}", R("Cantidad").ToString, R("PS").ToString)
Next
CargaEspecificaciones(CveOsDetalle, IDOSDetalle, IDOSDetalle)
For Each R As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", IDOSDetalle)).Rows
If Especificaciones = "-1" Then Especificaciones = "" Else Especificaciones = Especificaciones + ","
Especificaciones = Especificaciones + String.Format("{0}:{1}:{2}:{3}:{4}:{5}", R("CveCaracteristica").ToString, R("Caracteristica").ToString, R("CveCaracteristicaTipo"), R("CveOpcion").ToString, R("Opcion").ToString, R("Valor").ToString)
Next
RegistraScript(String.Format("CargaEspecificacionesPop('{0}');", Especificaciones))
AddPS(IDOSDetalle, Row("CveOSDetalle").ToString.ToEntero, Row("CvePS").ToString.ToEntero, Row("PS").ToString, Row("Cantidad").ToString.ToEntero, Row("ObservacionesServicio").ToString, Especificaciones, EspecificacionesLink, ComentarioTecnico,
Row("CveCuentaEquipo").ToString.ToEntero, Row("CuentaEquipo").ToString, Row("FechaAtencion").ToString, Row("CveUsuarioAtendio").ToString.ToEntero, Row("UsuarioAtendio").ToString, Row("FechaTermino").ToString, Row("FechaEntrega").ToString, Row("CveUsuarioEntrego").ToString.ToEntero,
Row("UsuarioEntrego").ToString, SeFacturara, SeSuperviso, Estatus, Row("Archivo").ToString, If(Materiales = "-1", "", Materiales), Row("CveUsuarioRecibio").ToString.ToEntero)
IDOSDetalle = IDOSDetalle + 1
Next
End If
End If
ObjOrdenServicio.Dispose()
End Sub
Private Sub CargaEspecificaciones(CveOsDetalle As Integer, Consecutivo As Integer, CveConsecutivoDetalle As Integer)
Dim ObjEspecificaciones As New ClsGenerales
If ObjEspecificaciones.GetCaracteristicasValores(-1, -1, -1, CveOsDetalle, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then
For Each RowE As DataRow In ObjEspecificaciones.DtResultados.Rows
Dim Row As DataRow = Nothing
Row = TmpDTCaracteristica.NewRow()
Row("CveCaracteristicaValor") = RowE("CveCaracteristicaValor").ToString.ToEntero
Row("CveConsecutivo") = Consecutivo
Row("CveConsecutivoDetalle") = CveConsecutivoDetalle
Row("CveOSDetalle") = CveOsDetalle
Row("CveConsecutivo") = Consecutivo
Row("CveCaracteristica") = RowE("CveCaracteristica")
Row("Caracteristica") = RowE("Caracteristica")
Row("CveCaracteristicaTipo") = RowE("CveCaracteristicaTipo")
Row("CveOpcion") = RowE("CveCaracteristicaOpcion")
Row("Opcion") = RowE("CaracteristicaOpcion")
Row("Valor") = RowE("CaracteristicaValor")
TmpDTCaracteristica.Rows.Add(Row)
Consecutivo = Consecutivo + 1
Next
End If
UpBodyGv.Update()
ObjEspecificaciones.Dispose()
End Sub
Private Sub CargaMaterialesDetalle(CveOsDetalle As Integer, Consecutivo As Integer, CveConsecutivoDetalle As Integer)
Dim ObjMateriales As New ClsOS
If ObjMateriales.GetDetalleMateriales(CveOsDetalle, CveOS) Then
For Each RowE As DataRow In ObjMateriales.DtResultados.Rows
Dim Row As DataRow = Nothing
Row = TmpDTMaterialesDetalle.NewRow()
Row("CveConsecutivo") = Consecutivo
Row("CveConsecutivoDetalle") = CveConsecutivoDetalle
Row("CveOSDetalle") = CveOsDetalle
Row("CveMaterial") = RowE("CveMaterial")
Row("Cantidad") = RowE("Cantidad")
Row("CveClasificacion") = RowE("CveClasificacion")
Row("CvePS") = RowE("CvePS")
Row("CveUM") = RowE("CveUM")
Row("CveMovimiento") = RowE("CveMovimiento")
Row("Clasificacion") = RowE("Clasificacion")
Row("PS") = RowE("PS")
Row("UM") = RowE("UM")
TmpDTMaterialesDetalle.Rows.Add(Row)
Consecutivo = Consecutivo + 1
Next
End If
UpAddMateriales.Update()
ObjMateriales.Dispose()
End Sub
Private Sub CargaMateriales()
Dim objOS As New ClsOS
If objOS.GetDetalleMateriales(-1, CveOS) Then
GvMateriales.DataSource = objOS.DtResultados
End If
objOS.Dispose()
GvMateriales.DataBind()
If (GvMateriales.Rows.Count > 0) Then
GvMateriales.UseAccessibleHeader = True
GvMateriales.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGVMateriales();")
End If
End Sub
Private Sub CargaEstatusOS()
DdlEstatusOS.Items.Clear()
DdlEstatusOS.DataSource = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa)
DdlEstatusOS.DataBind()
'DdlEstatusOS.SelectedValue = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "Orden ASC")
End Sub
Private Sub CargaPS(CveClasificacion As Integer, Objeto As DropDownList)
Objeto.Items.Clear()
Objeto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1, AplicaParaVenta:=1).FiltraParametros(" CveTipoPS=1")
Objeto.DataBind()
Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
Objeto.Items.Insert(0, New ListItem("Seleccione el Servicio", "-1"))
End Sub
Private Sub CargaPsMateriales()
'Objeto.Items.Clear()
'Objeto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1)
'Objeto.DataBind()
'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
'Objeto.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
'Carga Productos
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
'DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = ""
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
'DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
End Sub
Private Sub CargaCliente(CveCliente As Integer, Optional Estatus As Integer = 1, Optional CargaPublicoGeneral As Boolean = False)
Dim ObjCliente As New ClsClientes()
Dim NombreCliente As String = "-1"
If CargaPublicoGeneral Then
NombreCliente = "PUBLICO EN GENERAL"
End If
If ObjCliente.GetClientes(CveCliente, NombreCliente, "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, Estatus) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
If CargaPublicoGeneral Then
Me.CveCliente = ObjCliente.CveCliente
End If
TxtCodigo.Text = ObjCliente.Codigo
LblCliente.Text = String.Format("{1}", CveCliente, ObjCliente.Nombre)
NombreCliente = ObjCliente.Nombre
ClienteDireccion = ObjCliente.Direccion
ClienteCiudad = ObjCliente.Ciudad
ClienteColonia = ObjCliente.Colonia
ClienteEstado = ObjCliente.Estado
TelefonoCliente = ObjCliente.Telefono
TxtSolicito.Text = ObjCliente.Contacto
ClienteRFC = ObjCliente.RFC
ClienteMail = ObjCliente.Mail
If ObjCliente.GetSucursales(CveCliente) Then
DdlSucursalCliente.DataSource = ObjCliente.DtResultados
DdlClienteSucursalCuenta.DataSource = ObjCliente.DtResultados
If ObjCliente.DtResultados.Rows.Count > 0 Then
DivClienteSucursal.Visible = True
DivClienteSucursalCuenta.Visible = True
Else
DivClienteSucursal.Visible = False
DivClienteSucursalCuenta.Visible = False
End If
Else
DivClienteSucursal.Visible = False
DdlSucursalCliente.DataSource = Nothing
DivClienteSucursalCuenta.Visible = False
DdlClienteSucursalCuenta.DataSource = Nothing
End If
DdlSucursalCliente.DataBind()
DdlClienteSucursalCuenta.DataBind()
CargarCuentasEquipos(CveCliente)
CargaCuentas()
Else
Alert("El cliente solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgError)
End If
End If
ObjCliente.Dispose()
UpDetalleOS.Update()
End Sub
Private Sub CreaDT()
TmpDT = New DataTable
TmpDT.Columns.Add("Consecutivo", GetType(Integer))
TmpDT.Columns.Add("CveOSDetalle", GetType(Integer))
TmpDT.Columns.Add("CvePS", GetType(Integer))
TmpDT.Columns.Add("Cantidad", GetType(Integer))
TmpDT.Columns.Add("PS", GetType(String))
TmpDT.Columns.Add("CveCuentaEquipo", GetType(Integer))
TmpDT.Columns.Add("CuentaEquipoMostrar", GetType(String))
TmpDT.Columns.Add("FechaAtencion", GetType(String))
TmpDT.Columns.Add("CveUsuarioAtendio", GetType(Integer))
TmpDT.Columns.Add("UsuarioAtendio", GetType(String))
TmpDT.Columns.Add("FechaTermino", GetType(String))
TmpDT.Columns.Add("FechaEntrega", GetType(String))
TmpDT.Columns.Add("CveUsuarioEntrego", GetType(Integer))
TmpDT.Columns.Add("CveUsuarioRecibio", GetType(Integer))
TmpDT.Columns.Add("UsuarioEntrego", GetType(String))
TmpDT.Columns.Add("SeFacturara", GetType(String))
TmpDT.Columns.Add("SeSuperviso", GetType(String))
TmpDT.Columns.Add("Archivo", GetType(String))
TmpDT.Columns.Add("Especificaciones", GetType(String))
TmpDT.Columns.Add("EspecificacionesLink", GetType(String))
TmpDT.Columns.Add("EspecificacionesMostrar", GetType(String))
TmpDT.Columns.Add("Materiales", GetType(String))
TmpDT.Columns.Add("MaterialesLink", GetType(String))
TmpDT.Columns.Add("Observaciones", GetType(String))
TmpDT.Columns.Add("Estatus", GetType(String))
TmpDT.Columns.Add("ComentarioTecnico", GetType(String))
End Sub
Private Sub AddPS(Consecutivo As Integer, CveOSDetalle As Integer, CvePS As Integer, PS As String, Cantidad As Integer, Observaciones As String, Especificaciones As String, EspecificacionesLink As String, ComentarioTecnico As String,
CveCuentaEquipo As Integer, CuentaEquipoMostrar As String, FechaAtencion As String, CveUsuarioAtendio As Integer, UsuarioAtendio As String, FechaTermino As String, FechaEntrega As String, CveUsuarioEntrego As Integer,
UsuarioEntrego As String, SeFacturara As Boolean, SeSuperviso As Boolean, Estatus As Boolean, Archivo As String, Materiales As String, CveUsuarioRecibio As Integer)
Dim Row As DataRow = Nothing
Row = TmpDT.NewRow()
Row("Consecutivo") = Consecutivo
Row("CveOSDetalle") = CveOSDetalle
Row("CvePS") = CvePS
Row("Cantidad") = Cantidad
Row("PS") = PS
Row("CveCuentaEquipo") = If(CveCuentaEquipo > 0, CveCuentaEquipo, -1)
If CveCuentaEquipo <> -1 Then Row("CuentaEquipoMostrar") = CuentaEquipoMostrar Else Row("CuentaEquipoMostrar") = "Cuentas y/o Equipos"
Row("FechaAtencion") = FechaAtencion
Row("CveUsuarioAtendio") = CveUsuarioAtendio
Row("UsuarioAtendio") = UsuarioAtendio
Row("FechaTermino") = FechaTermino
Row("FechaEntrega") = FechaEntrega
Row("CveUsuarioRecibio") = CveUsuarioRecibio
Row("CveUsuarioEntrego") = CveUsuarioEntrego
Row("UsuarioEntrego") = UsuarioEntrego
Row("SeFacturara") = SeFacturara.ToString
Row("SeSuperviso") = SeSuperviso.ToString
Row("Archivo") = Archivo
Row("Observaciones") = Observaciones
If Especificaciones <> "-1" Then
Row("EspecificacionesMostrar") = EspecificacionesParaMostrar(Especificaciones, "
")
End If
Row("Especificaciones") = Especificaciones
Row("ComentarioTecnico") = ComentarioTecnico
Row("Estatus") = Estatus.ToString
Row("Materiales") = Materiales
CveConsecutivo = Consecutivo
TmpDT.Rows.Add(Row)
'Dim DR = TmpDT.Select($"CveOSDetalle = {CveOSDetalle}")
'DR(0)("Observaciones") = String.Format("{0}
{1}", DR(0)("Observaciones"), ComentarioTecnico)
'TmpDT.AcceptChanges()
If CveOSDetalle > 0 Then
GvPSTecnico.DataSource = TmpDT
GvPSTecnico.DataBind()
End If
If UsuarioActual.Empresa.Funcionalidad(151).ToString = "1" Then
LblTecnicoActual.Text = TmpDT.MAX("UsuarioAtendio")
DivTecnicoGV.Visible = False
Else
DivTecnicoGV.Visible = True
End If
GvPS.DataSource = TmpDT
GvPS.DataBind()
End Sub
'Private Sub CargaClasificaciones()
' DdlClasificacion.DataSource = GlobalDTClasificaciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
' DdlClasificacion.DataBind()
' '' DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación", "-1"))
'End Sub
Private Sub CargaFolios(CveSub As Integer)
Dim ObjFolios As New ClsGralFolios()
If ObjFolios.GetFolios() Then
Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa & " AND CveSubProyecto = " & CveSub & " AND TipoDocto = 'OS' AND Estado = 'Activo'")
If DT.Rows.Count > 0 Then
ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero
ViewState("FolioActual") = DT.Rows(0)("FActual").ToString
'ltlFolio.Text = DT.Rows(0)("FActual").ToString
'BtnEmitirImprimir.Enabled = True
'UpFacturar.Update()
Else
Alert("No tiene registrados Folios para Órdenes de Servicio en este subproyecto.", TipoMensaje.MsgAdvertencia)
'BtnEmitir.Enabled = False
'UpFacturar.Update()
End If
DT.Dispose()
End If
ObjFolios.Dispose()
End Sub
Private Sub UpdatePS(Consecutivo As Integer, CveOSDetalle As Integer, CvePS As Integer, PS As String, Cantidad As Integer, Observaciones As String, Especificaciones As String, EspecificacionesLink As String, Materiales As String, MaterialesLink As String,
ComentarioTecnico As String, CveCuentaEquipo As Integer, CuentaEquipoMostrar As String, FechaAtencion As String, CveUsuarioAtendio As Integer, UsuarioAtendio As String, FechaTermino As String, FechaEntrega As String, CveUsuarioEntrego As Integer,
UsuarioEntrego As String, SeFacturara As Boolean, SeSuperviso As Boolean, Estatus As Boolean, Archivo As String)
TmpDT.Rows(Consecutivo)("CveOSDetalle") = CveOSDetalle
TmpDT.Rows(Consecutivo)("CvePS") = CvePS
TmpDT.Rows(Consecutivo)("PS") = PS
TmpDT.Rows(Consecutivo)("Observaciones") = Observaciones
TmpDT(Consecutivo)("EspecificacionesMostrar") = EspecificacionesParaMostrar(Especificaciones, "
")
TmpDT.Rows(Consecutivo)("Especificaciones") = Especificaciones
TmpDT.Rows(Consecutivo)("EspecificacionesLink") = EspecificacionesLink.Replace("EsThickbox", "ClientIDLink=@ClientIDLink&EsThickbox")
If Materiales <> "-1" Then
TmpDT.Rows(Consecutivo)("MaterialesMostrar") = MaterialesParaMostrar(Materiales, "
")
Else
TmpDT.Rows(Consecutivo)("Materiales") = ""
End If
TmpDT.Rows(Consecutivo)("ComentarioTecnico") = ComentarioTecnico
TmpDT.Rows(Consecutivo)("CveCuentaEquipo") = If(CveCuentaEquipo > 0, CveCuentaEquipo, -1)
If CveCuentaEquipo <> -1 Then TmpDT(Consecutivo)("CuentaEquipoMostrar") = CuentaEquipoMostrar Else TmpDT(Consecutivo)("CuentaEquipoMostrar") = "Cuentas y/o Equipos"
TmpDT.Rows(Consecutivo)("FechaAtencion") = FechaAtencion
TmpDT.Rows(Consecutivo)("CveUsuarioAtendio") = CveUsuarioAtendio
TmpDT.Rows(Consecutivo)("UsuarioAtendio") = UsuarioAtendio
TmpDT.Rows(Consecutivo)("FechaTermino") = FechaTermino
TmpDT.Rows(Consecutivo)("FechaEntrega") = FechaEntrega
TmpDT.Rows(Consecutivo)("CveUsuarioEntrego") = CveUsuarioEntrego
TmpDT.Rows(Consecutivo)("UsuarioEntrego") = UsuarioEntrego
TmpDT.Rows(Consecutivo)("SeFacturara") = SeFacturara.ToString
TmpDT.Rows(Consecutivo)("SeSuperviso") = SeSuperviso.ToString
TmpDT.Rows(Consecutivo)("Estatus") = Estatus.ToString
TmpDT.Rows(Consecutivo)("Archivo") = Archivo
TmpDT.Rows(Consecutivo)("Cantidad") = Cantidad
GvPS.DataSource = TmpDT
GvPS.DataBind()
End Sub
Private Sub CargarEstatusDelUsuario(tipoEstatus As Integer)
'Dim ObjEstatusPermisos As New ClsOS
'If ObjEstatusPermisos.GetEstatusUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero) Then
' EstatusOSDelUsuario = ObjEstatusPermisos.DtResultados
' Dim PermisoEstatus As New DataTable
' PermisoEstatus = ObjEstatusPermisos.DtResultados.FiltraParametros("TipoEstatus = 1")
' If PermisoEstatus.Rows.Count = 0 Then
' UpGuardar.Visible = False
' End If
'End If
'ObjEstatusPermisos.Dispose()
'OS Estatus Inicial
If tipoEstatus = 1 And UsuarioActual.TienePermisoProceso(366) Then
Exit Sub
End If
'OS Estatus Asignación
If tipoEstatus = 2 And UsuarioActual.TienePermisoProceso(367) Then
Exit Sub
End If
'OS Estatus Proceso
If tipoEstatus = 3 And UsuarioActual.TienePermisoProceso(368) Then
Exit Sub
End If
'OS Estatus Terminado
If tipoEstatus = 4 And UsuarioActual.TienePermisoProceso(369) Then
Exit Sub
End If
'OS Estatus Cancelada
If tipoEstatus = 5 And UsuarioActual.TienePermisoProceso(370) Then
Exit Sub
End If
UpGuardar.Visible = False
End Sub
#End Region
#Region "BUSCAR CLIENTE "
Protected Sub BtnBuscarCliente_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnBuscarCliente.Click
ViewState("CveCliente") = HdnCveCliente.Value.ToEntero
CargaCliente(HdnCveCliente.Value.ToEntero)
If DdlPSDetalle.SelectedIndex > 0 Then
DdlPSDetalle_SelectedIndexChanged(sender, e)
DdlPSDetalle.Focus()
Else
TxtCantidad.Focus()
End If
End Sub
#End Region
#Region "P E R M I S O S"
Private Sub PermisosSegunEstatus()
Dim TipoEstatus As String = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor(String.Format("TipoEstatus", "CveEstatusOrdenServicio = {0}", "CveEstatusOrdenServicio ASC", DdlEstatusOS.SelectedValue.ToEntero))
Select Case TipoEstatus.ToEntero
Case 1
'Inicial
Case 2
'Proceso
Case 3
'Terminada
GvPS.Columns(10).Visible = False
Case 4, 5
'4-Cancelada, 5-Entregada
BtnGuardar.Enabled = False
GvPS.Enabled = False
BtnBuscarCliente.Enabled = False
TxtSolicito.Enabled = False
TxtDescripcion.Enabled = False
TxtFechaRecibido.Enabled = False
DdlPSDetalle.Enabled = False
TxtObservacionesServicioDetalle.Enabled = False
TxtComentarioTecnico.ReadOnly = True
BtnComentarioTecnico.Enabled = False
GvPS.Columns(6).Visible = False
GvPS.Columns(7).Visible = False
GvPS.Columns(8).Visible = False
GvPS.Columns(9).Visible = False
GvPS.Columns(10).Visible = False
GvPS.Columns(11).Visible = False
GvPS.Columns(12).Visible = False
GvPS.Columns(13).Visible = False
End Select
'permitir avanzar el estatus solo uno adelante
For i As Integer = 0 To DdlEstatusOS.Items.Count - 1
If DdlEstatusOS.Items.IndexOf(DdlEstatusOS.Items(i)) <> DdlEstatusOS.SelectedIndex And
DdlEstatusOS.Items.IndexOf(DdlEstatusOS.Items(i)) <> DdlEstatusOS.SelectedIndex + 1 Then
DdlEstatusOS.Items(i).Enabled = False
End If
Next
End Sub
#End Region
#Region "M E T O D O S"
Protected Sub Guardar(Entregar As Boolean)
Dim FechaCita As DateTime = MinFecha
If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
If Not IsDate(TxtFechaCita.Text.Replace(",", "")) Then
Alert("El campo Fecha De Cita no es valido.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
FechaCita = TxtFechaCita.Text.Replace(",", "").ToDateTime
End If
Dim ObjOrdenServicio As New ClsOS()
Dim ObjGenerales As New ClsGenerales(ObjOrdenServicio.IniciaTransacSQL)
MensajeAlert = New StringBuilder
Dim Errores As Boolean = False
Dim EstatusOrdenServicio As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1").ToEntero
Dim DirectorioEmpresa As String = UsuarioActual.Empresa.Ruta
If Not CveOS > 0 Then
Dim bandera As Integer = DdlEstatusOS.SelectedValue.ToEntero
If Not ObjOrdenServicio.AddOrdenesServicios(CveCliente, DdlSubProyecto.SelectedValue.ToEntero, TxtSolicito.Text, TxtFechaRecibido.Text.ToDateTime, TxtDescripcion.Text, UsuarioActual.CveUsuario, EstatusOrdenServicio,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCotizacion, -1, -1, DdlTipoOrdenOS.SelectedValue.ToEntero, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero,
Direccion:=TxtDireccion.Text, Telefono:=TxtTelefono.Text, CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, CveMedico:=DdlMedico.SelectedValue.ToEntero,
CveProcedimiento:=DdlProcedimiento.SelectedValue.ToEntero, CveTipoVenta:=DdlTipoVenta.SelectedValue.ToEntero, FechaCita:=FechaCita,
Paciente:=TxtPaciente.Text.Trim, IdentificadorCliente:=TxtIdentificadorCliente.Text.Trim) Then
Errores = True
End If
CargaCliente(CveCliente)
For Each Row As DataRow In TmpDT.Rows
If Not Errores Then
Dim Consecutivo As Integer = Row("Consecutivo").ToString.ToEntero
Dim CvePS As Integer = Row("CvePS").ToString.ToEntero
Dim Observaciones As String = Row("Observaciones").ToString
Dim SeFacturara As Boolean = CBool(Row("SeFacturara").ToString)
Dim CveCuentaEquipo As Integer = Row("CveCuentaEquipo").ToString.ToEntero
Dim ComentarioTecnico As String = Row("ComentarioTecnico").ToString
Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero
Dim Archivo As New System.IO.FileInfo(String.Format("{0}OS\Temp\{1}", UsuarioActual.Empresa.Ruta, Row("Archivo").ToString))
CveOsDetalle = ObjOrdenServicio.AddOrdenesServiciosDetalle(ObjOrdenServicio.CveOS, CvePS, Cantidad, -1, -1, Observaciones, False, True, False, CveCuentaEquipo, "-1", "-1", "-1", ComentarioTecnico, UsuarioActual.CveUsuario, Archivo:=Archivo.Name)
If CveOsDetalle > 0 Then
If Archivo.Name <> "-1" AndAlso Archivo.Exists Then
'Cambiar el nombre del archivo de CveUsuario-Consecutivo.ext a CveOS-Consecutivo.ext
Dim ArchivoFinal As String = String.Format("OS{0}-{1}{2}", ObjOrdenServicio.CveOS, Consecutivo, System.IO.Path.GetExtension(Archivo.Extension))
'Mover el archivo de los temporales a OS
System.IO.File.Move(UsuarioActual.Empresa.Ruta & "\OS\Temp\" & Archivo.Name, UsuarioActual.Empresa.Ruta & "\OS\Archivos\" & ArchivoFinal)
If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalleArchivo(ArchivoFinal, ObjOrdenServicio.CveOSDetalle) Then
Errores = True
End If
End If
For Each RowE As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows
Dim CveCaracteristica As Integer = RowE("CveCaracteristica").ToString.ToEntero
Dim CveOpcion As Integer = RowE("CveOpcion").ToString.ToEntero
Dim Valor As String = RowE("Valor").ToString
If Not ObjGenerales.AddUpdateCaracteristicasValores(CveCaracteristica, CveOpcion, Valor, UsuarioActual.CveUsuario, CveOSDetalle:=CveOsDetalle, CvePs:=CvePS) Then
Errores = True
End If
Next
If UsuarioActual.Empresa.Funcionalidad(578) = "" Then
For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows
Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero
Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero
Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero
Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero
If Not ObjOrdenServicio.AddUpdateDetalleMateriales(-1, CveOsDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, True) Then
Errores = True
End If
Next
End If
Else
Errores = True
End If
End If
Next
'If Not Errores Then
' Dim TipoEstatusSeleccionado As Integer = EstatusOSDelUsuario.FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue), "Orden ASC").ToEntero
' If TipoEstatusSeleccionado = 3 Then
' Dim objEventos As New ClsOIEventos(ObjOrdenServicio.IniciaTransacSQL)
' If Not objEventos.FinalizaEvento(NowADS(), 3, "", -1, CveOS) Then
' Errores = True
' End If
' End If
'End If
If Not Errores Then
ViewState("CveOS") = ObjOrdenServicio.CveOS
ViewState("Folio") = ObjOrdenServicio.Folio
CveFolio = ObjOrdenServicio.Folio
'MENSAJE PRINCIPAL
MensajeAlert.AppendFormat(String.Format("
La Orden de Servicio: {0} se generó correctamente.
", ObjOrdenServicio.Folio))
MensajeAlert.AppendFormat("