Files
SIG/Compras/RepComprasAFDetalle.aspx.vb

480 lines
19 KiB
VB.net

Option Strict On
Option Explicit On
Imports Microsoft.Reporting.WebForms
Imports Extensiones
Imports System.Data
Imports System.IO
Partial Class Compras_RepComprasAFDetalle
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property DTDatos As DataTable
Get
If ViewState("DTDatos") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTDatos"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTDatos") = value
End Set
End Property
Private Property TCEspecifico As Double
Get
If ViewState("TCEspecifico") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("TCEspecifico"), Double)
End If
End Get
Set(value As Double)
ViewState("TCEspecifico") = value
End Set
End Property
Private Property CveMoneda As Integer
Get
Return ViewState("CveMoneda").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveMoneda") = value
End Set
End Property
Private Property Grupo As Integer
Get
Return ViewState("Grupo").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("Grupo") = value
End Set
End Property
Private Property Anio As String
Get
Return ViewState("Anio").ToString
End Get
Set(value As String)
ViewState("Anio") = value
End Set
End Property
Private Property Mes As String
Get
Return ViewState("Mes").ToString
End Get
Set(value As String)
ViewState("Mes") = value
End Set
End Property
Private Property AnioMes As String
Get
Return ViewState("AnioMes").ToString
End Get
Set(value As String)
ViewState("AnioMes") = value
End Set
End Property
#End Region
Private Personalizado As Boolean = False
Private Sub Compras_RepComprasAFDetalle_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaCombos()
'ImgPersonalizar.Attributes.Add("onclick", "javascript:$('#DivPersonalizar').show(1000); PosicionaObjeto(this.id,'DivPersonalizar');")
GvDatos.DataBind(True)
Try
Dim Fecha, FechaI, FechaF As String
'txtFechaI.Text = If(Request.QueryString("FechaI").ToString = "-1", "", Request.QueryString("FechaI").ToString)
'txtFechaF.Text = If(Request.QueryString("FechaF").ToString = "-1", "", Request.QueryString("FechaF").ToString)
'DdlGrupo.SelectedValueExist(Request.QueryString("GPO").ToString)
DdlTipoActivoFijo.SelectedValueExist(Request.QueryString("CveTipoActivoFijo").ToString)
DdlSubTipoActivoFijo.SelectedValueExist(Request.QueryString("CveSubTipoActivofijo").ToString)
DdlActivoFijo.SelectedValueExist(Request.QueryString("CveActivoFijo").ToString)
DdlMonedas.SelectedValueExist(Request.QueryString("CveMoneda").ToString)
DdlProyecto.SelectedValueExist(Request.QueryString("CveProyecto").ToString)
DdlSubProyecto.SelectedValueExist(Request.QueryString("CveSubProyecto").ToString)
DdlProveedores.SelectedValueExist(Request.QueryString("CveProveedor").ToString)
DdlTipoCompra.SelectedValueExist(Request.QueryString("CveTipoCompraAF").ToString)
DdlClasificacion.SelectedValueExist(Request.QueryString("CveClasificacion").ToString)
DdlClasificacion2.SelectedValueExist(Request.QueryString("CveClasificacion2").ToString)
If Request.QueryString("CvePS").ToString.Length > 0 Then
DdlPS.txtText.Value = Request.QueryString("PS").ToString
DdlPS.txtValue.Value = If(Request.QueryString("CvePS").ToString = "-1", "", Request.QueryString("CvePS").ToString)
End If
Anio = Request.QueryString("Anio").ToString()
Mes = Request.QueryString("Mes").ToString()
AnioMes = Request.QueryString("AnioMes").ToString()
Fecha = Request.QueryString("Fecha").ToString()
Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString
Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString
AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString
Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString
FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString
FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString
txtFechaI.Text = If(Anio <> "-1", String.Format("01/01/{0}", Anio), txtFechaI.Text)
txtFechaI.Text = If(Mes <> "-1", String.Format("01/{0}/0001", Mes), txtFechaI.Text)
txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", AnioMes.Substring(5, 2).PadLeft(2, "0"c), AnioMes.Substring(0, 4)), txtFechaI.Text)
If Fecha <> "-1" Then
txtFechaI.Text = Fecha
txtFechaF.Text = Fecha
ElseIf FechaI <> "-1" Then
txtFechaI.Text = FechaI
If FechaF <> "-1" Then
txtFechaF.Text = FechaF
End If
ElseIf FechaF <> "-1" Then
txtFechaF.Text = FechaF
End If
CargaDatos()
Catch ex As Exception
Dim asd As Integer = 1
End Try
If UsuarioActual.CveEmpresa = 72 Then
GvDatos.FBColumn("NoSerie").Visible = True
End If
UPDatos.Update()
End If
End Sub
Private Sub CargaCombos()
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto)
DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedores.DataBind()
If Request.QueryString("CveProveedor") IsNot Nothing AndAlso Request.QueryString("CveProveedor").ToEntero = -3 Then
DdlProveedores.Items.Add(New ListItem("Consumo Interno", "-3"))
End If
DdlMonedas.DataSource = GlobalDTMonedas()
DdlMonedas.DataBind()
DdlTipoActivoFijo.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo")
DdlTipoActivoFijo.DataBind()
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
DdlClasificacion.DataBind()
'DdlClasificacion2.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
'DdlClasificacion2.DataBind()
Dim ObjClasificacion As New ClsClasificaciones
If ObjClasificacion.GetClasificacion2ProductoServicio(UsuarioActual.CveEmpresa) Then
DdlClasificacion2.DataSource = ObjClasificacion.DtResultados
Else
DdlClasificacion2.DataSource = Nothing
End If
ObjClasificacion.Dispose()
DdlClasificacion2.DataBind()
DdlClasificacion2.Items.Insert(0, New ListItem("Todas", "-1"))
DdlClasificacion2.Items.Insert(1, New ListItem("Sin Clasificación", "-2"))
DdlClasificacion2.SelectedValueExist(-1)
DdlActivoFijo.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa)
DdlActivoFijo.DataBind()
DdlActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If DdlPS.UsaWebService Then
DdlPS.ddlWS.Attributes.Add("data-Estatus", "-1")
DdlPS.ddlWS.Attributes.Add("data-pagina", "Inventarios")
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
'DdlClasificacion.AutoPostBack = False
Else
DdlPS.ddl.Items.Add(New ListItem("Seleccione", "-1"))
DdlPS.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
End If
End Sub
Private Sub DdlTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoActivoFijo.SelectedIndexChanged
DdlSubTipoActivoFijo.Items.Clear()
DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoActivoFijo = {DdlTipoActivoFijo.SelectedValue}", "SubTipoActivoFijo")
DdlSubTipoActivoFijo.DataBind()
DdlSubTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlSubTipoActivoFijo.SelectedIndex = 0
End Sub
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue)
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
CargaDatos()
UPDatos.Update()
End Sub
Private Sub CargaDatos()
Dim ObjCompras As New ClsCompras()
Dim FechaI, FechaF As String
Dim CvePS As Integer = If(DdlPS.txtValue.Value = "", -1, DdlPS.txtValue.Value.ToString.ToEntero)
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then
TCEspecifico = TxtEspecifico.Text.ToDouble
Else
TCEspecifico = -1
End If
If ObjCompras.GetRepComprasAFDetalle(FechaI, FechaF, DdlProveedores.SelectedValue.ToEntero, DdlMonedas.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1,
DdlProyecto.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico,
DdlClasificacion.SelectedValue.ToEntero, DdlActivoFijo.SelectedValue.ToEntero, DdlTipoActivoFijo.SelectedValue.ToEntero, DdlSubTipoActivoFijo.SelectedValue.ToEntero,
CvePS, Anio.ToEntero, Mes.ToEntero, AnioMes, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveClasificacion2:=DdlClasificacion2.SelectedValue.ToEntero, CveTipoCompraAF:=DdlTipoCompra.SelectedValue.ToEntero) Then
DTDatos = ObjCompras.DtResultados
GvDatos.DataSource = DTDatos
End If
ObjCompras.Dispose()
GvDatos.DataBind(True)
UPDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.Header Then
' e.Row.Cells(0).Text = DdlGrupo.SelectedItem.Text
End If
If e.Row.RowType = DataControlRowType.DataRow Then
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")
Dim Liga As String = ""
If e.Row.DBCampo("CveCompra").ToEntero > 0 Then
Liga = $"/Compras/Compras.aspx?CveCompra={e.Row.DBCampo("CveCompra")}"
Else
Liga = $"/Inventarios/EntradasSalidas.aspx?CveMovimiento={e.Row.DBCampo("CveMovimiento")}"
End If
If e.Row.DBCampo("Orden") = "1" Then
e.Row.Cells(0).Text = String.Format("<a Class='{0}' target='_blank' href='{1}'>{2}</a>", "Texto", Liga, e.Row.DBCampo("SerieFolio").ToString)
Else
e.Row.BackColor = Drawing.Color.LightGray
e.Row.Font.Bold = True
End If
End If
End Sub
#Region "I M P R I M I R P D F/Excel"
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GenerarPDF("Excel")
End Sub
Private Sub LinkPDF_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click
GenerarPDF()
End Sub
Private Sub LnkExcelPersonalizado_Click(sender As Object, e As EventArgs) Handles LnkExcelPersonalizado.Click
GvDatos.ExportToExcel("ComprasDetalle_" + DdlPS.txtValue.Value + Now.ToShortDateString)
End Sub
Private Sub GenerarPDF(Optional Formato As String = "PDF")
Dim ObjTareas As New ClsOIEventos
Dim RutaPDF As String
Dim Ruta As String = UsuarioActual.Empresa.Ruta
RutaPDF = $"{Ruta}\Formatos\RepComprasAFDetalle.rdlc"
If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas\Grales\Formatos\RepComprasAFDetalle.rdlc"
End If
Dim params As New List(Of ReportParameter)
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim FechaI, FechaF As String
FechaI = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", "-1", txtFechaI.Text)
FechaF = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", "-1", txtFechaF.Text)
params.Add(New ReportParameter("AgrupadoPor", FiltrosUsados()))
'params.Add(New ReportParameter("GPO", DdlGrupo.SelectedItem.Text))
params.Add(New ReportParameter("Titulo", "REPORTE COMPRAS ACTIVOS FIJOS DETALLE"))
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaI))
params.Add(New ReportParameter("FechaFin", FechaF))
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}", "")))
ImprimirPDF(RutaPDF, DTDatos, params, "ReporteComprasAFDetalle_" & Now.ToString("yyyyMMddmmss"), Formato:=Formato)
End Sub
#End Region
Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged
If RblTipoCambio.SelectedValue.ToEntero = 3 Then
Dim TipoCambio As Double
LiEspecifico.Visible = True
TipoCambio = GlobalTipoCambio(Now)
TxtEspecifico.Text = TipoCambio.ToString
Else
LiEspecifico.Visible = False
End If
UpBodyTipoCambio.Update()
End Sub
Private Function FiltrosUsados() As String
Dim filtro As String = "<b>Filtros:</b> "
Dim ListaFiltros As New List(Of String)
Dim Contador As Integer = 0
If txtFechaI.Text.Length > 0 Then
ListaFiltros.Add("<b>FechaI:</b> " & txtFechaI.Text)
End If
If txtFechaF.Text.Length > 0 Then
ListaFiltros.Add("<b>FechaF:</b> " & txtFechaF.Text)
End If
If DdlTipoActivoFijo.SelectedIndex > 0 Then
ListaFiltros.Add("<b>Tipo:</b> " & DdlTipoActivoFijo.SelectedItem.Text)
End If
If DdlSubTipoActivoFijo.SelectedIndex > 0 Then
ListaFiltros.Add("<b>SubTipo:</b> " & DdlSubTipoActivoFijo.SelectedItem.Text)
End If
If DdlActivoFijo.SelectedIndex > 0 Then
ListaFiltros.Add("<b>AF:</b> " & DdlActivoFijo.SelectedItem.Text)
End If
If DdlMonedas.SelectedIndex > 0 Then
ListaFiltros.Add("<b>Moneda:</b> " & DdlMonedas.SelectedItem.Text)
End If
If DdlProyecto.SelectedIndex > 0 Then
ListaFiltros.Add("<b>Proyecto:</b> " & DdlProyecto.SelectedItem.Text)
End If
If DdlSubProyecto.SelectedIndex > 0 Then
ListaFiltros.Add("<b>SubProyecto:</b> " & DdlSubProyecto.SelectedItem.Text)
End If
If DdlProveedores.SelectedIndex > 0 Then
ListaFiltros.Add("<b>Proveedor:</b> " & DdlProveedores.SelectedItem.Text)
End If
If DdlPS.txtValue.Value.ToEntero > 0 Then
ListaFiltros.Add("<b>Producto:</b> " & DdlPS.txtText.Value)
End If
If DdlClasificacion.SelectedIndex > 0 Then
ListaFiltros.Add("<b>Clasificación:</b> " & DdlClasificacion.SelectedItem.Text)
End If
If DdlClasificacion2.SelectedIndex > 0 Then
ListaFiltros.Add("<b>Clasificación 2:</b> " & DdlClasificacion2.SelectedItem.Text)
End If
For Each s As String In ListaFiltros
If Contador > 0 Then
filtro = filtro & ", " & s
Else
filtro = filtro & " " & s
End If
Contador = Contador + 1
Next
Return filtro
End Function
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged
CargaPS(DdlClasificacion.SelectedValue.ToEntero)
End Sub
Private Sub CargaPS(CveClasificacion As Integer)
DdlPS.setEsWebService(If(UsuarioActual.Empresa.Funcionalidad(105).ToString = "1", True, False))
If Not UsuarioActual.Empresa.Funcionalidad(105).ToString = "1" Then
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
Else
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = "Todos"
DdlPS.SelectedValue = "-1"
End If
End Sub
Protected Sub PersonalizarColumnas()
GvDatos.FBColumn("SerieFolio").Visible = ChkFactura.Checked
GvDatos.FBColumn("SubProyecto").Visible = ChkSubProyecto.Checked
GvDatos.FBColumn("CodigoAF").Visible = ChkAF.Checked
GvDatos.FBColumn("NoSerie").Visible = ChkNS.Checked
GvDatos.FBColumn("CodigoPS").Visible = ChkPS.Checked
GvDatos.FBColumn("NombreCompleto").Visible = ChkResp.Checked
GvDatos.FBColumn("AFMedida").Visible = ChkMedidaAF.Checked
GvDatos.FBColumn("AFTipoMantenimientoStr").Visible = ChkTipoMant.Checked
GvDatos.FBColumn("TipoActivoFijo").Visible = ChkTipoAF.Checked
GvDatos.FBColumn("SubTipoActivoFijo").Visible = ChkSubTipoAF.Checked
GvDatos.FBColumn("Clasificacion").Visible = ChkClasif.Checked
GvDatos.FBColumn("Clasificacion2").Visible = ChkClasif2.Checked
GvDatos.FBColumn("UnidadMedida").Visible = ChkUM.Checked
GvDatos.FBColumn("Cantidad").Visible = ChkCant.Checked
GvDatos.FBColumn("PU").Visible = ChkPU.Checked
GvDatos.FBColumn("Total").Visible = ChkTotal.Checked
GvDatos.FBColumn("Cuenta").Visible = ChkCuenta.Checked
UPDatos.Update()
If Personalizado Then
LnkExcelPersonalizado.Visible = True
Else
LnkExcelPersonalizado.Visible = False
End If
UPAcciones.Update()
End Sub
Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click
Personalizado = True
PersonalizarColumnas()
End Sub
End Class