Files
SIG/OC/PopUpBuscarReq.aspx.vb

320 lines
15 KiB
VB.net

Option Explicit On
Option Strict On
Imports Extensiones
Partial Class OC_PopUpBuscarReq
Inherits ClsPaginas
#Region "PROPIEDADES"
Private ReadOnly Property VinculacionOC As String
Get
Return ViewState("VinculacionOC").ToString
End Get
End Property
Private ReadOnly Property CveProveedor As String
Get
Return ViewState("CveProveedor").ToString
End Get
End Property
Private ReadOnly Property CveProveedorMultiple As String
Get
Return ViewState("CveProveedorMultiple").ToString
End Get
End Property
Private ReadOnly Property Ruta As String
Get
Return UsuarioActual.Empresa.Ruta
End Get
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CType(Me.Master, BaseMasterPage).EsPopup = True
Dim UsaParametros As Boolean = False
ViewState("VinculacionOC") = ""
ViewState("CveProveedor") = ""
DivDatos.Attributes.Add("style", "overflow-y: auto; width: 750px; height: 220px;")
GV.Width = 750
If Request("V") IsNot Nothing AndAlso Request("V").ToString <> "" Then
If Request("P") IsNot Nothing AndAlso Request("P").ToString <> "" Then
ViewState("VinculacionOC") = Request("V")
ViewState("CveProveedor") = Request("P")
UPFiltros.Visible = False
Dim NombreProv As String = GlobalDTCompProveedores(UsuarioActual.CveEmpresa, ViewState("CveProveedor").ToString.ToEntero).FiltroPrimeroValor("RazonSocial")
LbTitulo.Text = String.Format("Órdenes de Compra - {0}", NombreProv)
If UsuarioActual.Empresa.Funcionalidad(267) = "1" Then
UPProveedorCompra.Visible = True
'DdlProveedorMultiple.setEsWebService(True)
'DdlProveedorMultiple.Attributes.Add("data-metodo", "getproveedores") ' proveedores tipo productores // proveedores
DdlProveedorMultiple.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros("ProveedorClasificacion like '%PRODUCTOR%'")
DdlProveedorMultiple.DataBind()
DdlProveedorMultiple.Items.Insert(0, New ListItem("-", "-1"))
End If
CargarVinculacionCompras()
DivDatos.Attributes.Add("style", "overflow-y: auto; width: 950px; height: 700px;")
GV.Width = 930
GV.Columns(1).Visible = False ' folio req
GV.Columns(2).Visible = False ' tipo 'oc/req
GV.Columns(5).Visible = False ' nombre proveedor
GV.Columns(9).Visible = False ' descarga pdf
If UsuarioActual.Empresa.MetodoOC <> 2 Then
BtnVincularOC.Visible = True
End If
UsaParametros = True
End If
End If
If Request("Op") IsNot Nothing AndAlso Request("Op").ToString <> "" Then
ViewState("VinculacionOC") = Request("Op").ToString
If ViewState("VinculacionOC").ToString = "FactFle" Then
DdlTipo.SelectedValue = "OC"
DdlTipo.Enabled = False
End If
End If
If Not UsaParametros Then
GV.Columns(7).Visible = False
CargaURLParametros()
End If
End If
End Sub
#Region " CARGA URL PARAMETROS "
Private Sub CargaURLParametros()
txtFechaI.Text = NowADS().FirstDayOfMonth.AddMonths(-3).ToShortDateString
CargaEstatus()
CargarCentrosDeCosto(DdlProyectos, DdlSubProyectos, LblProyecto, LtSubProyecto)
'DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
DdlProveedor.setEsWebService(True)
DdlProveedor.Attributes.Add("data-metodo", "getproveedores")
DdlProveedor.SelectedText = "Todos"
DdlProveedor.SelectedValue = "-1"
'DdlSubProyectos.DataSource = DtEstatusUsuarios.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) 'GlobalDTSubProyectos(DdlProyectos.SelectedValue.ToEntero).FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa))
DdlSubProyectos.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110),
GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1))
DdlSubProyectos.DataBind()
DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
#Region " DDLS "
Private Sub DdlTipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipo.SelectedIndexChanged
CargaEstatus()
End Sub
Private Sub CargaEstatus()
DdlEstatus.DataSource = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format(" (Tipo = '{0}' OR '{0}' = '-1')", DdlTipo.SelectedValue.ToString))
DdlEstatus.DataBind()
If DdlTipo.SelectedValue = "-1" Or DdlTipo.SelectedValue = "REQ" Then DdlEstatus.Items.Insert(0, New ListItem("Pre Requisicion", "0"))
DdlEstatus.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub DdlProyectos_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaSubProyectos(DdlProyectos.SelectedValue.ToEntero)
End Sub
Private Sub CargaSubProyectos(CveProyecto As Integer)
DdlSubProyectos.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110),
GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto, UsuarioActual.CveEmpresa, -1, 1),
GlobalDTSubProyectos(CveProyecto, -1, UsuarioActual.CveEmpresa, 1))
DdlSubProyectos.DataBind()
DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub CargarVinculacionCompras() ' CUANDO VIENE DESDE COMPRAS
Dim tCveProveedor As Integer = ViewState("CveProveedor").ToString.ToEntero
If DdlProveedorMultiple.SelectedValue.ToEntero > 0 Then
ViewState("CveProveedorMultiple") = DdlProveedorMultiple.SelectedValue
ViewState("CveProveedor") = DdlProveedorMultiple.SelectedValue
tCveProveedor = DdlProveedorMultiple.SelectedValue.ToEntero
End If
'Cargar Datos
Dim ObjOC As New ClsOC
ObjOC.GetOrdenesCompraRep("OC", -1, -1, -1, -1, MinFecha, MaxFecha, -1, tCveProveedor, -1, -1, -1, UsuarioActual.CveEmpresa, -1)
Dim DtOC As Data.DataTable = ObjOC.DtResultados.FiltraParametros("TipoTermino = 3") ' tipotermino, esattus inicial
ObjOC.Dispose()
If DtOC.Rows.Count > 0 Then ' tipotermino, esattus inicial
BtnVincularOC.Visible = True
End If
'SOLO CARGAMOS OC'S QUE ESTEN PENDIENTES POR SURTIR
GV.DataSource = DtOC.FiltraParametros("CveOrdenCompraDisponible > 0")
GV.DataBind()
LblTotalRegistros.Text = "Número de registros: " & GV.Rows.Count.ToString
UPDatos.Update()
End Sub
Protected Sub BtnBuscar_Click(sender As Object, e As EventArgs)
Dim CveProyecto As Integer = -1
Dim CveSubProyecto As Integer = -1
If LblProyecto.Visible Then
CveProyecto = DdlProyectos.SelectedValue.ToEntero
CveSubProyecto = DdlSubProyectos.SelectedValue.ToEntero
Else
CveSubProyecto = DdlSubProyectos.SelectedValue.ToEntero
End If
Dim FI As Date = If(txtFechaI.Text.Trim = "", MinFecha, txtFechaI.Text.Trim.ToDate)
Dim guia As String = If(TxtGuia.Text.Trim = "", "-1", TxtGuia.Text)
'Cargar Datos
If ValidarFiltrosSeleccionado() Then
Dim CveProveedor As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1)
Dim ObjOC As New ClsOC
ObjOC.GetOrdenesCompraRep(DdlTipo.SelectedValue, CveProyecto, CveSubProyecto, -1, DdlEstatus.SelectedValue.ToEntero, FI, MaxFecha, -1, CveProveedor,
If(TxtFolio.Text.ToEntero <= 0, -1, TxtFolio.Text.ToEntero), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, Guia:=guia,
SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), TopSelect:=100)
Dim DtOC As Data.DataTable = ObjOC.DtResultados ' tipotermino, esattus inicial
ObjOC.Dispose()
GV.DataSource = DtOC
GV.DataBind()
LtlTotalRegistros.Text = GV.Rows.Count.ToString
LblTotalRegistros.Text = "Número de registros: "
UPDatos.Update()
Else
Alert("Asigne un valor a cualquiera de los filtros", TipoMensaje.MsgAdvertencia)
End If
End Sub
Protected Sub GV_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
'Si la empresa es MetodoOC 2 habilitamos la opcion de Hyperlink para vincular OC
If ViewState("VinculacionOC").ToString = "VOCCOMP" AndAlso UsuarioActual.Empresa.MetodoOC = 2 Then
GV.Columns(2).Visible = False
e.Row.FCHyperLink("HLFolio").Visible = True
e.Row.FCLabel("LbFolio").Visible = False
e.Row.FCHyperLink("HLDescripcion").Visible = True
e.Row.FCLabel("LbDescripcion").Visible = False
Dim Link As String = String.Format("javascript:Ir3('{0}','{1}','{2}');", e.Row.DBCampo("CveOrdenCompra"), e.Row.DBCampo("Folio"), e.Row.DBCampo("CveEstatusSiguiente"), e.Row.DBCampo("CveProveedor"))
e.Row.FCHyperLink("HLFolio").NavigateUrl = Link
e.Row.FCHyperLink("HLDescripcion").NavigateUrl = Link
ElseIf ViewState("VinculacionOC").ToString = "FactFle" Then
e.Row.FCHyperLink("HLFolio").Visible = True
e.Row.FCLabel("LbFolio").Visible = False
e.Row.FCHyperLink("HLDescripcion").Visible = True
e.Row.FCLabel("LbDescripcion").Visible = False
Dim Link As String = String.Format("javascript:Ir4('{0}');", e.Row.DBCampo("CveOrdenCompra"))
e.Row.FCHyperLink("HLFolio").NavigateUrl = Link
e.Row.FCHyperLink("HLDescripcion").NavigateUrl = Link
ElseIf ViewState("VinculacionOC").ToString = "" Then
e.Row.FCHyperLink("HLFolio").Visible = True
e.Row.FCLabel("LbFolio").Visible = False
e.Row.FCHyperLink("HLDescripcion").Visible = True
e.Row.FCLabel("LbDescripcion").Visible = False
Dim Link As String = String.Format("javascript:Ir(""{0}"");", e.Row.DBCampo("CveOrdenCompra"))
e.Row.FCHyperLink("HLFolio").NavigateUrl = Link
e.Row.FCHyperLink("HLDescripcion").NavigateUrl = Link
e.Row.FCHyperLink("HplPDF").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OC&CVEOC={0}", e.Row.DBCampo("CveOrdenCompra"))))
'HLImprimir.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=OC&CVEOC={0}", CveOrdenCompra)))
End If
If e.Row.DataKey("FolioREQ").ToString.Trim.Length > 0 Then
Dim LbFolio As Label = e.Row.FCLabel("LbFolio")
LbFolio.Attributes.Add("data-toggle", "tooltip")
LbFolio.Attributes.Add("data-placement", "top")
LbFolio.Attributes.Add("title", "REQ: " & e.Row.DataKey("FolioREQ").ToString)
End If
If ViewState("CveProveedor").ToString <> "" And UsuarioActual.CveEmpresa.Contiene(72) Then
GV.Columns(2).Visible = False
End If
e.Row.Cells(6).Text = e.Row.DBCampo("DetallePS").Replace("^", "<br />")
End If
End Sub
Private Function ValidarFiltrosSeleccionado() As Boolean
If DdlTipo.SelectedValue = "REQ" OrElse DdlTipo.SelectedValue = "OC" Then Return True
If DdlEstatus.SelectedValue.ToEntero > 0 Then Return True
If DdlProveedor.SelectedValue.ToEntero > 0 Then Return True
If TxtFolio.Text.ToEntero > 0 Then Return True
If DdlSubProyectos.SelectedValue.ToEntero > 0 Then Return True
If DdlProyectos.SelectedValue.ToEntero > 0 Then Return True
Return False
End Function
#End Region
Protected Sub DdlProveedoresmultiple_selectedindexchange(sender As Object, e As EventArgs)
CargarVinculacionCompras()
End Sub
#Region " VINCULA CON COMPRAS "
Protected Sub BtnVincularOC_Click(sender As Object, e As EventArgs)
Dim CveOC As String = ""
Dim Folio As String = ""
Dim CveEstatus As String = ""
For i As Integer = 0 To (GV.Rows.Count - 1)
If GV.Rows(i).FCCheckBox("CheckVincular").Checked = True Then
If CveOC <> "" Then
CveOC &= String.Format(", {0}", GV.Rows(i).DataKey("CveOrdenCompra").ToString)
Folio &= String.Format(", {0}", GV.Rows(i).DataKey("Folio").ToString)
CveEstatus &= String.Format(", {0}", GV.Rows(i).DataKey("CveEstatusSiguiente").ToString)
'código para cambiar de proveedor a la oc, para caso 172
'If UsuarioActual.Empresa.Funcionalidad(267) = "1" AndAlso CveProveedorMultiple.ToEntero <> 0 Then
' Dim OC As New ClsOC
' If OC.UpdateProveedorOrdenCompra(CveProveedor.ToEntero, GV.Rows(i).DataKey("CveOrdenCompra").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
' End If
' OC.Dispose()
'End If
Else
CveOC = GV.Rows(i).DataKey("CveOrdenCompra").ToString
Folio = GV.Rows(i).DataKey("Folio").ToString
CveEstatus = GV.Rows(i).DataKey("CveEstatusSiguiente").ToString
End If
End If
Next
If CveOC <> "" AndAlso CveOC.Length > 0 Then
RegistraScript(String.Format("javascript: Ir3('{0}','{1}','{2}','{3}');", CveOC, Folio, CveEstatus, CveProveedor))
Else
Alert("No seleccionó ninguna Orden de Compra, Por lo cual no se puede vincular.", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class