Cambios OP Cancelacion

This commit is contained in:
Luis Quijada
2025-05-13 09:13:17 -07:00
parent cd2b52e5d8
commit 22888e4b8f
4 changed files with 420 additions and 393 deletions

View File

@@ -2,8 +2,8 @@
<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:LinkButton ID="LnkExportarPDF" runat="server" OnClick="LnkExportarPDF_Click"> <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">
@@ -817,10 +817,20 @@
.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;
width: 125px !important;
min-width: 125px !important;
max-width: 125px !important;
text-align: right !important;
padding-right: 8px !important;
}
/* Alinear encabezados de columnas numéricas */
.custom-grid th:nth-child(2),
.custom-grid th:nth-child(3),
.custom-grid th:nth-child(4),
.custom-grid th:nth-child(5) {
text-align: center !important;
}
/* Asegurar ancho libre para primera columna */
@@ -872,17 +882,12 @@
margin-bottom: 0 !important;
padding-bottom: 0 !important;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPDashboard" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<asp:UpdatePanel ID="UPDashboard" runat="server">
<ContentTemplate>
<div class="row filter-row">
<div class="col-md-2"></div>
@@ -913,398 +918,354 @@
</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">
<div class="row gx-3" id="DivIndicadoresLeft" runat="server"></div>
<asp:Panel ID="pnlDashboard" runat="server">
<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">
<div class="row gx-3" id="DivIndicadoresLeft" runat="server"></div>
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<i class="icon-bar-chart font-dark hide"></i>
<span class="caption-subject font-dark bold">Utilidad</span>
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<i class="icon-bar-chart font-dark hide"></i>
<span class="caption-subject font-dark bold">Utilidad</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvResumenSucursales"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%"
OnRowCreated="gvResumenSucursales_RowCreated">
<Columns>
<asp:BoundField DataField="Sucursal" HeaderText="Sucursal" />
<asp:BoundField DataField="VentaAnual" HeaderText="Venta" DataFormatString="{0:N2}" />
<asp:BoundField DataField="UtilidadAnual" HeaderText="Utilidad" DataFormatString="{0:N2}" />
<asp:BoundField DataField="VentaMensual" HeaderText="Venta" DataFormatString="{0:N2}" />
<asp:BoundField DataField="UtilidadMensual" HeaderText="Utilidad" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvResumenSucursales"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false" Width="100%">
<Columns>
</div>
<asp:TemplateField HeaderStyle-HorizontalAlign="Center">
<HeaderTemplate>
<div class="col-lg-6 mb-4">
<asp:Label runat="server" Text="Sucursal" CssClass="header-group" />
<div class="row gx-3" id="DivIndicadoresRight" runat="server"></div>
<div class="sub-columns">
<div class="sub-header">&nbsp;</div>
<div class="sub-header">&nbsp;</div>
</div>
</HeaderTemplate>
<ItemStyle Width="150px" Font-Bold="True" />
<ItemTemplate>
<%# Eval("Sucursal") %>
</ItemTemplate>
</asp:TemplateField>
<div id="divVentasMensuales" class="mt-3" style="width: 100%; height: 300px;"></div>
</div>
<asp:TemplateField HeaderText="Año"
HeaderStyle-HorizontalAlign="Center">
<HeaderTemplate>
<asp:Label runat="server"
Text="Año"
CssClass="header-group" />
<div class="sub-columns">
<div class="sub-header">Venta</div>
<div class="sub-header">Utilidad</div>
</div>
</HeaderTemplate>
<ItemTemplate>
<div class="sub-columns">
<div class="sub-data"><%# String.Format("{0:N2}", Eval("VentaAnual")) %></div>
<div class="sub-data"><%# String.Format("{0:N2}", Eval("UtilidadAnual")) %></div>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes"
HeaderStyle-HorizontalAlign="Center">
<HeaderTemplate>
<asp:Label runat="server"
Text="Mes"
CssClass="header-group" />
<div class="sub-columns">
<div class="sub-header">Venta</div>
<div class="sub-header">Utilidad</div>
</div>
</HeaderTemplate>
<ItemTemplate>
<div class="sub-columns">
<div class="sub-data"><%# String.Format("{0:N2}", Eval("VentaMensual")) %></div>
<div class="sub-data"><%# String.Format("{0:N2}", Eval("UtilidadMensual")) %></div>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por sucursal</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorSucursal"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Sucursal">
<ItemTemplate><%# Eval("Sucursal") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por vendedor</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorVendedor"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Vendedor">
<ItemTemplate><%# Eval("Vendedor") %></ItemTemplate>
<div class="row gx-3" id="DivIndicadoresRight" runat="server"></div>
<div id="divVentasMensuales" class="mt-3" style="width: 100%; height: 300px;"></div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por sucursal</span>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorSucursal"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Sucursal">
<ItemTemplate><%# Eval("Sucursal") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por clasificación</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorClasificacion"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Clasificación">
<ItemTemplate><%# Eval("Clasificacion") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por marca</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorMarca"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Marca">
<ItemTemplate><%# Eval("Marca") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por PS</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorPS"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="PS">
<ItemTemplate><%# Eval("ProductoServicio") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por Cliente</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorCliente"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Cliente">
<ItemTemplate><%# Eval("NombreCliente") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por Proveedor</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorProveedor"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Proveedor">
<ItemTemplate><%# Eval("NombreProveedor") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por vendedor</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorVendedor"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Vendedor">
<ItemTemplate><%# Eval("Vendedor") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</asp:View>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por clasificación</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorClasificacion"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Clasificación">
<ItemTemplate><%# Eval("Clasificacion") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<asp:View ID="viewRecuperacion" runat="server">
</asp:View>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por marca</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorMarca"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Marca">
<ItemTemplate><%# Eval("Marca") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por PS</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorPS"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="PS">
<ItemTemplate><%# Eval("ProductoServicio") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por Cliente</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorCliente"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Cliente">
<ItemTemplate><%# Eval("NombreCliente") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="portlet light">
<div class="portlet-title">
<div class="caption caption-md">
<span class="caption-subject font-dark bold">Ventas por Proveedor</span>
</div>
</div>
<div class="portlet-body table-responsive">
<asp:GridView ID="gvVentasPorProveedor"
runat="server"
CssClass="table table-hover table-light custom-grid"
AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Proveedor">
<ItemTemplate><%# Eval("NombreProveedor") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Año">
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Semana">
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Día">
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</asp:View>
<asp:View ID="viewCompras" runat="server">
</asp:View>
<asp:View ID="viewRecuperacion" runat="server">
</asp:View>
<asp:View ID="viewGasto" runat="server">
</asp:View>
<asp:View ID="viewCompras" runat="server">
</asp:View>
<asp:View ID="viewCuentasPagar" runat="server">
</asp:View>
<asp:View ID="viewGasto" runat="server">
</asp:View>
<asp:View ID="viewInventario" runat="server">
</asp:View>
<asp:View ID="viewCuentasPagar" runat="server">
</asp:View>
<asp:View ID="viewUtilidad" runat="server">
</asp:View>
<asp:View ID="viewInventario" runat="server">
</asp:View>
<asp:View ID="viewImpuestos" runat="server">
</asp:View>
<asp:View ID="viewUtilidad" runat="server">
</asp:View>
<asp:View ID="viewCRM" runat="server">
</asp:View>
<asp:View ID="viewImpuestos" runat="server">
</asp:View>
<asp:View ID="viewRH" runat="server">
<!-- Placeholder para RH -->
</asp:View>
<asp:View ID="viewCRM" runat="server">
</asp:View>
<asp:View ID="viewRH" runat="server">
<!-- Placeholder para RH -->
</asp:View>
<asp:View ID="viewAF" runat="server">
</asp:View>
</asp:MultiView>
<asp:View ID="viewAF" runat="server">
</asp:View>
</asp:MultiView>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">

View File

@@ -17,6 +17,7 @@ Partial Class General_Dashboard
ddlDashboardOption.SelectedValue = "1" ' Opción por defecto: Ingresos
LoadDashboard()
End If
ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkExportarPDF)
End Sub
Protected Sub ddlDashboardOption_SelectedIndexChanged(sender As Object, e As EventArgs)
@@ -28,6 +29,11 @@ Partial Class General_Dashboard
' Aquí podrías cargar dinámicamente si lo deseas en el futuro
End Sub
Public Overrides Sub VerifyRenderingInServerForm(control As Control)
' No hagas nada aquí. Sólo con esta firma el GridView deja de quejarse.
End Sub
Private Sub LoadDashboard()
Dim opcion As Integer = Integer.Parse(ddlDashboardOption.SelectedValue)
Dim hoy As DateTime = DateTime.Now
@@ -89,17 +95,13 @@ Partial Class General_Dashboard
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")
DivIndicadoresLeft.InnerHtml &= DivIndicadoresRight.InnerHtml
DivIndicadoresRight.InnerHtml = String.Empty
pnlDashboard.GenerarReportePDF("Reporte Resumen de Indicadores")
End Sub
Private Sub CargarIndicadores(dt As DataTable)
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
ProcesarDatosIndicadores(dt)
@@ -234,6 +236,53 @@ Partial Class General_Dashboard
End Sub
Protected Sub gvResumenSucursales_RowCreated(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.Header Then
' Limpiar celdas originales
e.Row.Cells.Clear()
' Crear primera fila de encabezado (grupos)
Dim headerRow As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
' Celda para "Sucursal" (ocupa 2 filas)
Dim cellSucursal As New TableHeaderCell()
cellSucursal.RowSpan = 2
cellSucursal.Text = "Sucursal"
headerRow.Cells.Add(cellSucursal)
' Celda para "Año" (abarca 2 columnas)
Dim cellAño As New TableHeaderCell()
cellAño.ColumnSpan = 2
cellAño.Text = "Año"
headerRow.Cells.Add(cellAño)
' Celda para "Mes" (abarca 2 columnas)
Dim cellMes As New TableHeaderCell()
cellMes.ColumnSpan = 2
cellMes.Text = "Mes"
headerRow.Cells.Add(cellMes)
' Añadir fila al GridView
Dim grid As GridView = DirectCast(sender, GridView)
grid.Controls(0).Controls.AddAt(0, headerRow)
' Crear segunda fila de encabezado (subtítulos)
Dim subHeaderRow As New GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Normal)
' Subtítulos para "Año"
subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Venta"})
subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Utilidad"})
' Subtítulos para "Mes"
subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Venta"})
subHeaderRow.Cells.Add(New TableHeaderCell() With {.Text = "Utilidad"})
grid.Controls(0).Controls.AddAt(1, subHeaderRow)
End If
End Sub
Private Sub CargarVentasPorSucursal(dt As DataTable)
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
Return