Cambios Visualizacion Dashboard

This commit is contained in:
Luis Quijada
2025-05-07 10:15:53 -07:00
parent a0e27a1731
commit 461089ff01
2 changed files with 116 additions and 36 deletions

View File

@@ -1,6 +1,9 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Dashboard.aspx.vb" Inherits="General_Dashboard" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkExportarPDF" runat="server"> <i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> Exportar PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style type="text/css">
@@ -20,7 +23,6 @@
.table td, .table th {
padding: 2px;
border-top: 1px solid #dee2e6;
}
.dashboard-stat {
@@ -643,13 +645,9 @@
.custom-grid th,
.custom-grid td {
border: none !important; /* Quita todas las líneas */
border-bottom: 1px solid #dee2e6 !important; /* Sólo línea horizontal entre filas */
}
.custom-grid thead th {
background-color: transparent !important;
border-bottom: 2px solid #dee2e6 !important; /* Línea más gruesa bajo el título */
}
/* Opcional: quita cualquier padding extra en encabezados */
.custom-grid thead th {
@@ -759,8 +757,6 @@
.resumen-grid td {
/* mismo borde inferior */
border: none !important;
border-bottom: 1px solid #dee2e6 !important;
/* padding reducido a 2px */
padding: 2px !important;
/* mismo wrapping */
white-space: normal !important;
@@ -786,7 +782,7 @@
margin: 0 !important;
}
.custom-grid td,
.custom-grid th,
.resumen-grid td,
@@ -795,14 +791,14 @@
vertical-align: middle !important;
}
.portlet-body.table-responsive {
height: 170px !important; /* Altura exacta */
overflow-y: auto !important; /* Scroll vertical si hay overflow */
padding: 2px !important; /* Padding interno reducido */
}
#gvResumenSucursales .sub-data {
padding: 2px !important; /* Padding igual al resto */
border-left: 1px solid #dee2e6 !important;
@@ -813,43 +809,114 @@
padding: 0 !important;
margin: 0 !important;
}
/*----------------------------------------
ANCHO DE COLUMNAS DE IMPORTES (AÑO, MES, ETC)
-----------------------------------------*/
.custom-grid td:nth-child(2),
.custom-grid td:nth-child(3),
.custom-grid td:nth-child(4),
.custom-grid td:nth-child(5) {
width: 150px !important;
min-width: 150px !important;
max-width: 150px !important;
text-align: center !important;
}
/* Asegurar ancho libre para primera columna */
.custom-grid td:first-child,
.custom-grid th:first-child {
width: auto !important;
min-width: auto !important;
max-width: none !important;
}
.portlet-title {
margin-bottom: 0px !important; /* Reducir espacio inferior */
padding: 2px 0 !important; /* Padding vertical mínimo */
}
.portlet-title .caption-subject {
font-size: 14px !important; /* Tamaño de fuente compacto */
}
/* 1) Restauramos la posición natural de la tabla */
.portlet.light > .portlet-body.table-responsive {
padding-top: 0 !important;
margin-top: -16px !important;
}
/* 2) Dibujamos la línea separadora justo después del título */
.portlet.light > .portlet-title {
position: relative; /* para el pseudo-elemento */
margin-bottom: 0 !important; /* sin espacios extra */
padding-bottom: 0 !important;
}
.portlet.light > .portlet-title::after {
content: "";
position: absolute;
bottom: 14px;
left: 0;
width: 100%;
height: 2px; /* grosor de la línea */
background-color: #dee2e6; /* mismo color que tus tablas */
pointer-events: none;
z-index: 1;
}
.portlet > .portlet-title {
border-bottom: none !important;
margin-bottom: 0 !important;
padding-bottom: 0 !important;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPDashboard" runat="server">
<asp:UpdatePanel ID="UPDashboard" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="padding-bottom: 8px;">
<div class="row filter-row">
<div class="col-md-2"></div>
<div class="col-md-3">
<asp:DropDownList ID="ddlDashboardOption" runat="server" AutoPostBack="True"
CssClass="form-control select2me"
OnSelectedIndexChanged="ddlDashboardOption_SelectedIndexChanged">
<asp:ListItem Value="1">Ingresos</asp:ListItem>
<asp:ListItem Value="2">Recuperación</asp:ListItem>
<asp:ListItem Value="3">Compras</asp:ListItem>
<asp:ListItem Value="4">Gasto</asp:ListItem>
<asp:ListItem Value="5">Cuentas por Pagar</asp:ListItem>
<asp:ListItem Value="6">Inventario</asp:ListItem>
<asp:ListItem Value="7">Utilidad</asp:ListItem>
<asp:ListItem Value="8">Impuestos</asp:ListItem>
<asp:ListItem Value="9">CRM</asp:ListItem>
<asp:ListItem Value="10">RH</asp:ListItem>
<asp:ListItem Value="11">AF</asp:ListItem>
</asp:DropDownList>
<div class="form-group row align-items-center">
<asp:Label ID="lblDashboardOption" runat="server"
Text="Opción"
CssClass="col-form-label col-md-2 mb-0"
AssociatedControlID="ddlDashboardOption"
Style="margin-right: 10px; vertical-align: middle;" />
<div class="col-md-9">
<asp:DropDownList ID="ddlDashboardOption" runat="server" AutoPostBack="True"
CssClass="form-control select2me"
OnSelectedIndexChanged="ddlDashboardOption_SelectedIndexChanged">
<asp:ListItem Value="1">Ingresos</asp:ListItem>
<asp:ListItem Value="2">Recuperación</asp:ListItem>
<asp:ListItem Value="3">Compras</asp:ListItem>
<asp:ListItem Value="4">Gasto</asp:ListItem>
<asp:ListItem Value="5">Cuentas por Pagar</asp:ListItem>
<asp:ListItem Value="6">Inventario</asp:ListItem>
<asp:ListItem Value="7">Utilidad</asp:ListItem>
<asp:ListItem Value="8">Impuestos</asp:ListItem>
<asp:ListItem Value="9">CRM</asp:ListItem>
<asp:ListItem Value="10">RH</asp:ListItem>
<asp:ListItem Value="11">AF</asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
<asp:MultiView ID="mvDashboard" runat="server" ActiveViewIndex="0">
<asp:View ID="viewIngresos" runat="server">
<div class="row gx-4 gy-4">
<div class="col-lg-6 mb-3">
<div class="col-lg-6">
<div class="row gx-3" id="DivIndicadoresLeft" runat="server"></div>

View File

@@ -5,6 +5,7 @@ Imports System.Web.Services
Imports Newtonsoft.Json
Imports ADSNetLibrary.SIGAPI.Models.CRM.Request
Imports ADSNetLibrary.SIGAPI.Services.CRM
Imports MoreLinq
Imports System.Globalization
Partial Class General_Dashboard
@@ -87,6 +88,18 @@ Partial Class General_Dashboard
End Select
End Sub
Protected Sub LnkExportarPDF_Click(sender As Object, e As EventArgs) Handles LnkExportarPDF.Click
UPDashboard.Update()
' Clonar todo el UpdatePanel
Dim clonedPanel As New UpdatePanel()
clonedPanel.ID = "ClonedDashboard"
clonedPanel.ContentTemplateContainer.Controls.Add(UPDashboard.ContentTemplateContainer)
' Usar el método mejorado
clonedPanel.GenerarReportePDF("Reporte_Dashboard")
End Sub
Private Sub CargarIndicadores(dt As DataTable)
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
ProcesarDatosIndicadores(dt)