Option Explicit On Imports Microsoft.Reporting.WebForms Imports Extensiones Imports System.Data Partial Class RepCxPDetalle Inherits ClsPaginas #Region "PROPIEDADES" Public Property SePersonalizo() As Integer Get Return ViewState("SePersonalizo").ToString.ToEntero End Get Set(value As Integer) ViewState("SePersonalizo") = value End Set End Property Public Property CveProveedor() As Integer Get Return ViewState("CveProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveProveedor") = value End Set End Property Public Property CveProveedorClasificacion() As Integer Get Return ViewState("CveProveedorClasificacion").ToString.ToEntero End Get Set(value As Integer) ViewState("CveProveedorClasificacion") = value End Set End Property Public Property Serie() As String Get Return ViewState("Serie").ToString End Get Set(value As String) ViewState("Serie") = value End Set End Property Public Property Anio() As Integer Get Return ViewState("Anio").ToString.ToEntero End Get Set(value As Integer) ViewState("Anio") = value End Set End Property Public Property Mes() As Integer Get Return ViewState("Mes").ToString.ToEntero End Get Set(value As Integer) ViewState("Mes") = value End Set End Property Public Property AnioMes() As String Get Return ViewState("AnioMes").ToString End Get Set(value As String) ViewState("AnioMes") = value End Set End Property Public Property Fecha() As String Get Return ViewState("Fecha").ToString End Get Set(value As String) ViewState("Fecha") = value End Set End Property Public Property FechaInicio() As String Get Return ViewState("FechaInicio").ToString End Get Set(value As String) ViewState("FechaInicio") = value End Set End Property Public Property FechaFin() As String Get Return ViewState("FechaFin").ToString End Get Set(value As String) ViewState("FechaFin") = value End Set End Property Public Property FechaVInicio() As String Get Return ViewState("FechaVInicio").ToString End Get Set(value As String) ViewState("FechaVInicio") = value End Set End Property Public Property FechaVFin() As String Get Return ViewState("FechaVFin").ToString End Get Set(value As String) ViewState("FechaVFin") = value End Set End Property Public Property FechaCorte() As String Get Return ViewState("FechaCorte").ToString End Get Set(value As String) ViewState("FechaCorte") = value End Set End Property Public Property CveMoneda() As Integer Get Return ViewState("CveMoneda").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property Public Property CveUsuario() As Integer Get Return ViewState("CveUsuario").ToString.ToEntero End Get Set(value As Integer) ViewState("CveUsuario") = value End Set End Property Public Property Agrupador() As Integer Get Return ViewState("Agrupador").ToString.ToEntero End Get Set(value As Integer) ViewState("Agrupador") = value End Set End Property Public Property Opcion() As String Get Return ViewState("Opcion").ToString End Get Set(value As String) ViewState("Opcion") = value End Set End Property Public Property CveEstatusFactura() As Integer Get Return ViewState("CveEstatusFactura").ToString.ToEntero End Get Set(value As Integer) ViewState("CveEstatusFactura") = value End Set End Property Public Property CveSubProyecto() As Integer Get Return ViewState("CveSubProyecto").ToString.ToEntero End Get Set(value As Integer) ViewState("CveSubProyecto") = value End Set End Property Public Property CveProyecto() As Integer Get Return ViewState("CveProyecto").ToString.ToEntero End Get Set(value As Integer) ViewState("CveProyecto") = value End Set End Property 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 Public Property CveProveedorSucursal() As Integer Get Return ViewState("CveProveedorSucursal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveProveedorSucursal") = value End Set End Property Public Property CveTipoProveedor() As Integer Get Return ViewState("CveTipoProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveTipoProveedor") = value End Set End Property Private Property TCEspecifico As Double Public Property DTCuentasContables() As DataTable Get If ViewState("DTCuentasContables") Is Nothing Then Return New DataTable Else Return DirectCast(ViewState("DTCuentasContables"), DataTable) End If End Get Set(value As DataTable) ViewState("DTCuentasContables") = value End Set End Property Private Property DTTangos As DataTable Get If ViewState("DTTangos") Is Nothing Then ViewState("DTTangos") = New DataTable End If Return DirectCast(ViewState("DTTangos"), DataTable) End Get Set(value As DataTable) ViewState("DTTangos") = value End Set End Property Public ReadOnly Property GvCountColumnasIniciales As Integer Get Return 26 End Get End Property #End Region 'Private ReadOnly Property ColumnasVisibles As Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load AgregarChecksRangos() 'Esto requiere generarse en cada postaback If Not IsPostBack Then SePersonalizo = 0 ViewState("Opcion") = IfNull(Request("Op"), "S") 'GvCountColumnasIniciales = GvDatos.Columns.Count MostrarOcultarColumnas() CargaCombos() If Request("Op") IsNot Nothing Then CargaDatos() End If End If End Sub #Region "CARGAS" Private Sub CargaCombos() CargaProveedores() Dim CveProveedor As Integer = IfNull(Request("CveProveedor"), -1).ToString.ToEntero DdlProveedores.SelectedValue = CveProveedor.ToString Me.CveProveedor = CveProveedor If DdlProveedores.SelectedValue.ToEntero > 0 Then DdlProveedores.SelectedText = GlobalDTCompProveedores(UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor).FiltroPrimeroValor("RazonSocial").ToString Else DdlProveedores.SelectedText = "-" End If CveProveedorClasificacion = IfNull(Request("CveProveedorClasificacion"), -1).ToString.ToEntero Dim ProveedorClasificacion As Integer = IfNull(Request("CveProveedorClasificacion"), -1).ToString.ToEntero DdlProveedoresClasificaciones.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) DdlProveedoresClasificaciones.DataBind() DdlProveedoresClasificaciones.Items.Insert(1, New ListItem("Sin Clasificación", "0")) DdlProveedoresClasificaciones.SelectedValueExist(ProveedorClasificacion) 'CargaUsuarios Dim UsuarioResponsable As Integer = IfNull(Request("CveUsuarioResponsable"), -1).ToString.ToEntero DdlUsuarioResponsable.DataSource = GlobalDTUsuarioResponsable(UsuarioActual.CveEmpresa) DdlUsuarioResponsable.DataBind() DdlUsuarioResponsable.SelectedValueExist(UsuarioResponsable) Dim UsuarioRegistro As Integer = IfNull(Request("CveUsuario"), -1).ToString.ToEntero DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre") 'GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlUsuarioRegistro.DataBind() DdlUsuarioRegistro.Items.Insert(0, New ListItem("Todos", "-1")) DdlUsuarioRegistro.SelectedValueExist(UsuarioRegistro) Dim CveSucursal As Integer = IfNull(Request("CveSubProyecto"), -1).ToString.ToEntero If UsuarioActual.Empresa.Funcionalidad(713) <> "" Then ChkIEPS.Visible = True ChkIEPSPend.Visible = True End If CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyectofiltro) DdlSubProyecto.Items.Insert(1, New ListItem("Sin Sucursal", "0")) 'CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectofiltro) Dim TipoMoneda As Integer = IfNull(Request("TipoMoneda"), 1).ToString.ToEntero RblTipoCambio.SelectedValue = TipoMoneda.ToString If RblTipoCambio.SelectedValue = "3" Then LiEspecifico.Visible = True End If Dim TCEspecifico As String = IfNull(Request("TCEspecifico"), 1).ToString TxtEspecifico.Text = TCEspecifico 'Carga Agrupador Dim GPO As Integer = IfNull(Request("GPO"), 5).ToString.ToEntero DdlGrupo.SelectedValueExist(GPO) Agrupador = GPO 'CargaFechas FechaInicio = IfNull(Request("FechaI"), "-1").ToString FechaFin = IfNull(Request("FechaF"), "-1").ToString FechaVInicio = IfNull(Request("FechaVI"), "-1").ToString FechaVFin = IfNull(Request("FechaVF"), "-1").ToString FechaCorte = IfNull(Request("FechaCorte"), NowADS().ToDate.ToString).ToString txtCorteA.Text = $"31/12/{NowADS().Year}" If Request("FechaI") <> "-1" AndAlso IsDate(Request("FechaI")) Then txtFechaI.Text = Request("FechaI") If Request("FechaF") <> "-1" AndAlso IsDate(Request("FechaF")) Then txtFechaF.Text = Request("FechaF") If Request("FechaVI") <> "-1" AndAlso IsDate(Request("FechaVI")) Then txtFechaVI.Text = Request("FechaVI") If Request("FechaVF") <> "-1" AndAlso IsDate(Request("FechaVF")) Then txtFechaVF.Text = Request("FechaVF") If Request("FechaCorte") <> "-1" AndAlso IsDate(Request("FechaCorte")) Then txtCorteA.Text = Request("FechaCorte") Anio = IfNull(Request("Anio"), -1).ToString.ToEntero Mes = IfNull(Request("Mes"), -1).ToString.ToEntero AnioMes = IfNull(Request("AnioMes"), "-1").ToString CveMoneda = IfNull(Request("CveMoneda"), -1).ToString.ToEntero Fecha = IfNull(Request("Fecha"), "-1").ToString CveProveedorSucursal = IfNull(Request("CveProveedorSucursal"), -1).ToString.ToEntero CveUsuario = IfNull(Request("CveUsuario"), -1).ToString.ToEntero CveEstatusFactura = IfNull(Request("CveEstatusFactura"), -1).ToString.ToEntero CveSubProyecto = IfNull(Request("CveSubProyecto"), -1).ToString.ToEntero CveProyecto = IfNull(Request("CveProyecto"), -1).ToString.ToEntero DdlProyecto.SelectedValueExist(CveProyecto) DdlSubProyecto.SelectedValueExist(CveSubProyecto) DdlEstatusCompra.DataSource = GlobalDTCompEstatusFactura.FiltraParametros("CveEstatusFactura IN (1, 2)") DdlEstatusCompra.DataBind() DdlEstatusCompra.SelectedValueExist(CveEstatusFactura) CveTipoProveedor = IfNull(Request("CveTipoProveedor"), -1).ToString.ToEntero DdlTipoProveedor.SelectedValueExist(CveTipoProveedor) Dim Comprobaciones As Integer = IfNull(Request("Comprobaciones"), -1).ToString.ToEntero DdlComprobacion.SelectedValueExist(Comprobaciones) Ddlmoneda.DataSource = GlobalDTMonedas Ddlmoneda.DataBind() Ddlmoneda.Items.Insert(0, New ListItem("Todas", "-1")) Ddlmoneda.SelectedValueExist(CveMoneda) GvDatos.Columns(11).Visible = (UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 Or UsuarioActual.Empresa.Funcionalidad(134).ToEntero > 0) For Each lItem As ListItem In DdlGrupo.Items If lItem.Value.ToEntero = 9 Then lItem.Text = LblSubProyectofiltro.Text & "-Sucursal" End If Next End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, CveEstatus:=1) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) UPFiltros.Update() End Sub Private Sub CargaDatos() Dim ObjMovtos As New ClsMovimientos() Try If RblTipoCambio.SelectedValue.ToEntero = 3 Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 End If Dim FechaI, FechaF, FechaVI, FechaVF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") FechaVI = If(IsDate(txtFechaVI.Text.Trim()), txtFechaVI.Text.Trim(), "-1") FechaVF = If(IsDate(txtFechaVF.Text.Trim()), txtFechaVF.Text.Trim(), "-1") Dim TipoDocto As String = IfNull(Request("TipoDocto"), "-1").ToString CveTipoProveedor = DdlTipoProveedor.SelectedValue.ToEntero If ObjMovtos.GetCxPDetalle(FechaI, FechaF, DdlProveedores.SelectedValue.ToEntero, DdlProveedoresClasificaciones.SelectedValue.ToEntero, CveProveedorSucursal, CveUsuario, DdlUsuarioResponsable.SelectedValue.ToEntero, Anio, Mes, AnioMes, Ddlmoneda.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero(), DdlEstatusCompra.SelectedValue.ToEntero, Fecha, DdlGrupo.SelectedValue.ToEntero, Opcion, UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, FechaVI, FechaVF, FechaCorte:=txtCorteA.Text.ToDate, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveTipoProveedor:=If(CveTipoProveedor = 3, -1, CveTipoProveedor), Comprobaciones:=DdlComprobacion.SelectedValue.ToEntero, AplicaNC:=DdlAplicaNC.SelectedValue.ToEntero(), TipoDocto:=TipoDocto, CveProyecto:=DdlProyecto.SelectedValue.ToEntero()) Then Dim TMP_DTDatos As New DataTable TMP_DTDatos = ObjMovtos.DtResultados TMP_DTDatos.Columns.Add("Cuenta") If DdlGrupo.SelectedValue.ToEntero = 5 And UsuarioActual.Empresa.TipoContabilidad = 2 Then 'cuando es grupo por proveedor, se muestra la cuneta contable 'TMP_DTDatos = CargaCuentasContables(TMP_DTDatos) GvDatos.Columns(13).Visible = True Else GvDatos.Columns(13).Visible = False End If DTGvSourcePersonalizaRangos(DtDatos:=TMP_DTDatos) DtDatos = TMP_DTDatos GvDatos.DataSource = DtDatos HplProgramar.NavigateUrl = $"/Bancos/RepProgramarRecursos.aspx{HttpContext.Current.Request.Url.PathAndQuery.Replace("/Compras/RepCxPDetalle.aspx", "")}" Else GvDatos.DataSource = Nothing End If Catch ex As Exception OnError("Ocurrió un error al obtener el reporte de CxP detalle", ex) End Try ObjMovtos.Dispose() GvDatos.DataBind() ' GvDatosPersonalizaRangos() RangosOcultarMostrar() GvDatos.DataBind() RangosOcultarMostrar() 'GvDatosPersonalizaRangosAsignadatos() UPDatos.Update() End Sub Private Sub DTGvSourcePersonalizaRangos(ByRef DtDatos As DataTable) DtDatos.Columns.Add("R1", GetType(Decimal)) DtDatos.Columns.Add("R2", GetType(Decimal)) DtDatos.Columns.Add("R3", GetType(Decimal)) DtDatos.Columns.Add("R4", GetType(Decimal)) DtDatos.Columns.Add("R5", GetType(Decimal)) DtDatos.Columns.Add("R6", GetType(Decimal)) DtDatos.Columns.Add("R7", GetType(Decimal)) DtDatos.Columns.Add("R8", GetType(Decimal)) DtDatos.AcceptChanges() Dim startIndex As Integer = GvCountColumnasIniciales '- 1 Dim indexcontcol As Integer = startIndex Dim NumColActual As Integer = 1 For Each drow As DataRow In DTTangos.Rows Dim CveCxPColumna As Integer = drow("CveCxPColumna").ToString.ToEntero Dim RangoInicial As Integer = drow("RangoInicial").ToString.ToEntero Dim RangoFinal As Integer = drow("RangoFinal").ToString.ToEntero Dim Tipo As Integer = drow("Tipo").ToString.ToEntero Dim ChkID = $"Chk_{CveCxPColumna}_{RangoInicial}_{RangoFinal}_{Tipo}" ' Asignar un ID único Dim chk As CheckBox = TryCast(TPersonalizar.FindControl(ChkID), CheckBox) If chk.Checked Then For Each dRowDT As DataRow In DtDatos.Rows Dim DiasVencidos As Integer = dRowDT("DiasVencidos").ToString.ToEntero If Tipo = 1 And DiasVencidos > 0 Then If RangoFinal = 0 And DiasVencidos >= RangoInicial Then dRowDT($"R{NumColActual}") = dRowDT("Saldo") End If If DiasVencidos >= RangoInicial And DiasVencidos <= RangoFinal Then dRowDT($"R{NumColActual}") = dRowDT("Saldo") End If ElseIf Tipo = 2 And DiasVencidos < 0 Then If RangoFinal = 0 And Math.Abs(DiasVencidos) >= RangoInicial Then dRowDT($"R{NumColActual}") = dRowDT("Saldo") End If If Math.Abs(DiasVencidos) >= RangoInicial And Math.Abs(DiasVencidos) <= RangoFinal Then dRowDT($"R{NumColActual}") = dRowDT("Saldo") End If End If Next NumColActual = NumColActual + 1 End If Next End Sub #End Region #Region "CONSULTAR" Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() ConfiguraEmpresa() 'UPDatos.Update() End Sub #End Region #Region "CONFIGURACIONES" Private Function AddRows(ByRef DT As DataTable) As DataTable 'Dim i As Integer = 0 'Dim Ultima As String = String.Empty 'Dim Rows As Integer = 0 'Dim dbRow As DataRow 'While i < DT.Rows.Count ' If DT.Rows(i)("GPO").ToString <> "" AndAlso DT.Rows(i)("CveVenta").ToString = "" AndAlso Ultima <> DT.Rows(i)("GPO").ToString Then ' dbRow = DT.NewRow() ' dbRow("GPO") = DT.Rows(i)("GPO") : Ultima = DT.Rows(i)("GPO").ToString ' DT.Rows.InsertAt(dbRow, i) ' End If ' i += 1 'End While Return DT End Function Private Sub ConfiguraEmpresa() 'Dim ObjEmpresa As New ClsEmpresas() 'If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then 'If Opcion <> "S" Then ' If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(7).Visible = False ' If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(8).Visible = False 'End If 'End If 'ObjEmpresa.Dispose() End Sub #End Region Private Sub CargaProveedores() If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Seleccione" DdlProveedores.SelectedValue = "-1" Else DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() DdlProveedores.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) End If End Sub #Region "GRIDVIEW" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If DdlGrupo.SelectedValue.ToEntero = 11 Then If e.Row.DBCampo("CveSubProyecto") = "" And e.Row.DBCampo("CveSubProyecto") <> "0" Then e.Row.CssClass = "Totales" ElseIf e.Row.DBCampo("RazonSocial") = "" Then e.Row.CssClass = "SubTotales" End If Else If e.Row.DBCampo("RazonSocial") = "" And e.Row.DBCampo("SerieFolio") = "" Then e.Row.CssClass = "SubTotales" End If If e.Row.DBCampo("Agrupador") = "" And e.Row.DBCampo("TipoDocto") <> "Ant" Then e.Row.CssClass = "Totales" e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center e.Row.FCHyperLink("HplFolio").ForeColor = Drawing.Color.White If e.Row.DBCampo("CveMoneda") = "1" Then e.Row.FCHyperLink("HplFolio").Text = "Total Pesos" ElseIf e.Row.DBCampo("CveMoneda") = "2" Then e.Row.FCHyperLink("HplFolio").Text = "Total Dólares" Else e.Row.FCHyperLink("HplFolio").Text = "Total" End If End If End If If e.Row.DBCampo("CveCompra") = "" Then e.Row.FCLabel("LblMoneda").Text = "" End If If e.Row.DBCampo("CveCompra") = "" And e.Row.DBCampo("Agrupador") <> "" Then e.Row.FCHyperLink("HplFolio").Text = e.Row.DBCampo("Agrupador") e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left If e.Row.DBCampo("Agrupador").Length > 25 Then e.Row.FCHyperLink("HplFolio").Text = String.Format("{0}...", e.Row.DBCampo("Agrupador").Substring(0, 25)) End If Else If (e.Row.DBCampo("TipoDocto").ToString = "Ant") Then e.Row.FCHyperLink("HplFolio").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveCompra")) Else e.Row.FCHyperLink("HplFolio").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DBCampo("CveCompra")) End If If UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 Or UsuarioActual.Empresa.Funcionalidad(134).ToEntero > 0 Then Dim Str As New StringBuilder Str.AppendFormat("Importe Almacen: ${0} ({1}%)
", e.Row.DBCampo("ImporteAlmacen").FormatoNumero, e.Row.DBCampo("ImporteAlmacenPorcentaje")) If e.Row.DBCampo("ImporteServicios").ToDouble > 0 Then Str.AppendFormat("Importe Servicios: ${0} ({1}%)
", e.Row.DBCampo("ImporteServicios").FormatoNumero, e.Row.DBCampo("ImporteServiciosPorcentaje")) If e.Row.DBCampo("ImporteDevolucion").ToDouble > 0 Then Str.AppendFormat("Importe Devuelto: ${0} ({1}%)
", e.Row.DBCampo("ImporteDevolucion").FormatoNumero, e.Row.DBCampo("ImporteDevolucionPorcentaje")) Str.AppendFormat(" Importes SIN IVA") e.Row.FCLabel("LbEstatusInv").Attributes.Add("title", Str.ToString) Select Case e.Row.DBCampo("EstatusInventario").ToEntero Case 1 e.Row.FCLabel("LbEstatusInv").Text = "" e.Row.FCLabel("LbEstatusInv").ForeColor = Drawing.Color.Red Case 2 e.Row.FCLabel("LbEstatusInv").Text = "" e.Row.FCLabel("LbEstatusInv").ForeColor = Drawing.Color.DarkOrange Case 3 e.Row.FCLabel("LbEstatusInv").Text = "" e.Row.FCLabel("LbEstatusInv").ForeColor = Drawing.Color.Green End Select End If End If End If End Sub #End Region #Region "PERSONALIZAR" Protected Sub MostrarOcultarColumnas() ActivaColumna(0, ChkTipoDocto.Checked) ActivaColumna(1, ChkFolio.Checked) ActivaColumna(3, ChkSubTotal.Checked) ActivaColumna(4, ChkIVA.Checked) ActivaColumna(5, ChkIEPS.Checked) ActivaColumna(6, ChkDescuento.Checked) ActivaColumna(7, ChkTotal.Checked) ActivaColumna(8, ChkMoneda.Checked) ActivaColumna(9, ChkSaldo.Checked) ActivaColumna(10, ChkFechaVencimiento.Checked) ActivaColumna(11, ChkDiasVencidos.Checked) ActivaColumna(12, ChkProveedor.Checked) ActivaColumna(13, ChkCuenta.Checked) ActivaColumna(14, ChkObservaciones.Checked) ActivaColumna(15, UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 Or UsuarioActual.Empresa.Funcionalidad(134).ToEntero > 0) ActivaColumna(16, ChkDescripcion.Checked) ActivaColumna(17, ChkSubTotalPend.Checked) ActivaColumna(18, ChkIVAPend.Checked) ActivaColumna(19, ChkIEPSPend.Checked) ActivaColumna(20, ChkRetIVAPendiente.Checked) ActivaColumna(21, ChkRetIVAPendiente.Checked) ActivaColumna(22, ChkRetIVAPendiente.Checked) ActivaColumna(23, ChkRetISRPendiente.Checked) ActivaColumna(24, ChkRetISRPendiente.Checked) ActivaColumna(25, ChkRetISRPendiente.Checked) If SePersonalizo = 1 Then ImgExcelPersonalizado.Visible = True Else ImgExcelPersonalizado.Visible = False End If UPAcciones.Update() UPDatos.Update() End Sub Private Sub ActivaColumna(Indice As Integer, Activo As Boolean) GvDatos.Columns(Indice).Visible = Activo If Activo Then SePersonalizo = 1 End Sub Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click MostrarOcultarColumnas() CargaDatos() 'Esto se requiere por las columnas dinamicas de rangos RegistraScript("$('#DivPersonalizar').modal('hide');") End Sub Private Sub RangosOcultarMostrar() Dim startIndex As Integer = GvCountColumnasIniciales ' - 1 'startIndex = startIndex + 1 For x As Integer = startIndex To GvDatos.Columns.Count - 1 GvDatos.Columns(x).Visible = False Next For Each drow As DataRow In DTTangos.Rows Dim CveCxPColumna As Integer = drow("CveCxPColumna").ToString.ToEntero Dim RangoInicial As Integer = drow("RangoInicial").ToString.ToEntero Dim RangoFinal As Integer = drow("RangoFinal").ToString.ToEntero Dim Tipo As Integer = drow("Tipo").ToString.ToEntero Dim ChkID = $"Chk_{CveCxPColumna}_{RangoInicial}_{RangoFinal}_{Tipo}" ' Asignar un ID único Dim chk As CheckBox = TryCast(TPersonalizar.FindControl(ChkID), CheckBox) If chk.Checked Then GvDatos.Columns(startIndex).Visible = True If Tipo = 1 Then GvDatos.Columns(startIndex).HeaderText = If(RangoFinal = 0, $"Ven {RangoInicial} + ", $"Ven {RangoInicial} - {RangoFinal}") Else GvDatos.Columns(startIndex).HeaderText = If(RangoFinal = 0, $"Por Ven {RangoInicial} + ", $"Por Ven {RangoInicial} - {RangoFinal}") End If startIndex = startIndex + 1 End If Next UPDatos.Update() End Sub Protected Sub AgregarChecksRangos() DTTangos = New DataTable Dim ObjComp As New ClsCompras If ObjComp.GetRepCxPColumnas(UsuarioActual.CveEmpresa) Then DTTangos = ObjComp.DtResultados.Copy End If ObjComp.Dispose() Dim newRowVencidoCabecera As New HtmlTableRow() Dim newCellVencidoCabecera As New HtmlTableCell() newCellVencidoCabecera.ColSpan = 4 newCellVencidoCabecera.InnerHtml = "Vencido" newRowVencidoCabecera.Cells.Add(newCellVencidoCabecera) TPersonalizar.Rows.Add(newRowVencidoCabecera) Dim newRowVencido As New HtmlTableRow() For Each DROW As DataRow In DTTangos.FiltraParametros(" Tipo = 1").Rows Dim CveCxPColumna As Integer = DROW("CveCxPColumna").ToString.ToEntero Dim RangoInicial As Integer = DROW("RangoInicial").ToString.ToEntero Dim RangoFinal As Integer = DROW("RangoFinal").ToString.ToEntero Dim Tipo As Integer = DROW("Tipo").ToString.ToEntero Dim newCell As New HtmlTableCell() Dim chk As New CheckBox() chk.ID = $"Chk_{CveCxPColumna}_{RangoInicial}_{RangoFinal}_{Tipo}" ' Asignar un ID único chk.Text = $"De {RangoInicial} a {If(RangoFinal = 0, "-", RangoFinal.ToString)}" ' Texto del CheckBox chk.Checked = False ' Valor inicial del CheckBox chk.ClientIDMode = ClientIDMode.Static newCell.Controls.Add(chk) newRowVencido.Cells.Add(newCell) Next TPersonalizar.Rows.Add(newRowVencido) Dim newRowPorVencerCavecera As New HtmlTableRow() Dim newCellPorVencerCabecera As New HtmlTableCell() newCellPorVencerCabecera.ColSpan = 4 newCellPorVencerCabecera.InnerHtml = "Por Vencer" newRowPorVencerCavecera.Cells.Add(newCellPorVencerCabecera) TPersonalizar.Rows.Add(newRowPorVencerCavecera) Dim newRowPorVencer As New HtmlTableRow() For Each DROW As DataRow In DTTangos.FiltraParametros(" Tipo = 2").Rows Dim CveCxPColumna As Integer = DROW("CveCxPColumna").ToString.ToEntero Dim RangoInicial As Integer = DROW("RangoInicial").ToString.ToEntero Dim RangoFinal As Integer = DROW("RangoFinal").ToString.ToEntero Dim Tipo As Integer = DROW("Tipo").ToString.ToEntero Dim newCell As New HtmlTableCell() Dim chk As New CheckBox() chk.ID = $"Chk_{CveCxPColumna}_{RangoInicial}_{RangoFinal}_{Tipo}" ' Asignar un ID único chk.Text = $"De {RangoInicial} a {If(RangoFinal = 0, "-", RangoFinal.ToString)}" ' Texto del CheckBox chk.Checked = False ' Valor inicial del CheckBox newCell.Controls.Add(chk) newRowPorVencer.Cells.Add(newCell) Next TPersonalizar.Rows.Add(newRowPorVencer) UPPersonalizar.Update() End Sub #End Region #Region "IMPRESIONES" Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click GenerarPDF("EXCEL") End Sub Protected Sub ImgExcelPersonalizado_Click(sender As Object, e As EventArgs) Handles ImgExcelPersonalizado.Click 'GvVsh.Visible = True 'GvVsh.ExportToExcel("DetalleVentas_" & NowADS().ToShortDateString) 'GvVsh.Visible = False GvDatos.ExportToExcel("DetalleCompras_" & NowADS().ToShortDateString & ".xls") 'GvDatos.ExportToExcelG("DetalleVentas_" & NowADS().ToShortDateString & ".xlsx") End Sub Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click GenerarPDF() End Sub Private Sub GenerarPDF(Optional Formato As String = "PDF") If RblTipoCambio.SelectedValue.ToEntero = 3 Then TCEspecifico = TxtEspecifico.Text.ToDouble Else TCEspecifico = -1 End If Dim FechaI, FechaF, FechaVI, FechaVF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") FechaVI = If(IsDate(txtFechaVI.Text.Trim()), txtFechaVI.Text.Trim(), "-1") FechaVF = If(IsDate(txtFechaVF.Text.Trim()), txtFechaVF.Text.Trim(), "-1") Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim params As New List(Of ReportParameter) 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", NowADS().ToDateTime.ToShortDateString)) 'PARA REPORTE Dim Sucursal As String = If(DdlSubProyecto.SelectedValue = "-1", "", $" Sucursal: {DdlSubProyecto.SelectedItem.Text}") Dim Proveedor As String = If(DdlProveedores.SelectedValue = "-1", "", $" Proveedor: {DdlProveedores.SelectedText}") Dim Grupo As String = If(DdlGrupo.SelectedValue = "-1", "", $" Grupo: {DdlGrupo.SelectedItem.Text}") Dim FechaIn As String = If(txtFechaI.Text = "", "", $" Fecha Inicio: {txtFechaI.Text}") Dim FechaFn As String = If(txtFechaF.Text = "", "", $" Fecha Fin: {txtFechaF.Text}") Dim FechaInV As String = If(txtFechaVI.Text = "", "", $" Fecha Inicio Venc: {txtFechaVI.Text}") Dim FechaFnV As String = If(txtFechaVF.Text = "", "", $" Fecha Fin Venc: {txtFechaVF.Text}") Dim Responsable As String = If(DdlUsuarioResponsable.SelectedValue = "-1", "", $" Responsable: {DdlUsuarioResponsable.SelectedItem.Text}") Dim Estatus As String = If(DdlEstatusCompra.SelectedValue = "-1", "", $" Estatus: {DdlEstatusCompra.SelectedItem.Text}") Dim Registro As String = If(DdlUsuarioRegistro.SelectedValue = "-1", "", $" Registró: {DdlUsuarioRegistro.SelectedItem.Text}") Dim Clasificacion As String = If(DdlProveedoresClasificaciones.SelectedValue = "-1", "", $" Clasificación: {DdlProveedoresClasificaciones.SelectedItem.Text}") Dim TipoMoneda As String = If(RblTipoCambio.SelectedValue = "-1", "", $" Tipo Moneda: {RblTipoCambio.SelectedItem.Text}") params.Add(New ReportParameter("AgrupadoPor", $"{Grupo}{Proveedor}{FechaIn}{FechaFn}{FechaInV}{FechaFnV}{Responsable}{Estatus}{Registro}{Clasificacion}{Sucursal}{TipoMoneda}")) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepCxPDetalle.rdlc", DtDatos, params, "ReporteCxPDetalle", Formato) End Sub #End Region #Region "TIPO DE CAMBIO" Private Sub DdlTipoCambio_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(NowADS()) TxtEspecifico.Text = TipoCambio.ToString Else LiEspecifico.Visible = False End If UPFiltros.Update() End Sub #End Region Protected Sub LnkPersonalizar_Click(sender As Object, e As EventArgs) RegistraScript("$('#DivPersonalizar').modal({ backdrop: 'static', keyboard: false});") End Sub End Class