2034 lines
118 KiB
Plaintext
2034 lines
118 KiB
Plaintext
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Dashboard.aspx.vb" Inherits="General_Dashboard" %>
|
|
|
|
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
|
|
<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">
|
|
@import url("https://code.highcharts.com/css/highcharts.css");
|
|
@import url("https://code.highcharts.com/dashboards/css/datagrid.css");
|
|
@import url("https://code.highcharts.com/dashboards/css/dashboards.css");
|
|
|
|
.table-bordered thead th {
|
|
background-color: #f8f9fa;
|
|
vertical-align: middle;
|
|
text-align: center;
|
|
}
|
|
|
|
.table-striped tbody tr:nth-of-type(odd) {
|
|
background-color: rgba(0,0,0,.05);
|
|
}
|
|
|
|
.table td, .table th {
|
|
padding: 2px;
|
|
}
|
|
|
|
.dashboard-stat {
|
|
padding: 15px;
|
|
margin-bottom: 20px;
|
|
border-radius: 4px;
|
|
color: white;
|
|
}
|
|
|
|
.dashboard-stat .visual > i {
|
|
font-size: 35px;
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.dashboard-stat .details {
|
|
padding-right: 15px;
|
|
}
|
|
|
|
.Link {
|
|
color: #0000b9;
|
|
}
|
|
|
|
.portlet.light > .portlet-title > .caption > .caption-subject {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.dashboard-container {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.resumen-grid {
|
|
border-collapse: collapse;
|
|
width: 100%;
|
|
}
|
|
|
|
|
|
|
|
.sucursal-header {
|
|
vertical-align: middle !important;
|
|
background-color: #f8f9fa;
|
|
}
|
|
|
|
.header-group {
|
|
display: block;
|
|
font-weight: bold;
|
|
padding: 2px;
|
|
}
|
|
|
|
|
|
.sub-columns {
|
|
display: flex !important;
|
|
justify-content: space-between;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.sub-columns > div {
|
|
flex: 1 1 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
.sub-header {
|
|
padding: 2px;
|
|
}
|
|
|
|
.sub-data {
|
|
padding: 2px;
|
|
text-align: right;
|
|
border-left: 1px solid #dee2e6;
|
|
}
|
|
|
|
.sub-data:first-child {
|
|
border-left: none;
|
|
}
|
|
|
|
|
|
|
|
.dashboard-stat {
|
|
padding: 1.5rem;
|
|
border-radius: 4px;
|
|
color: white;
|
|
}
|
|
|
|
|
|
.custom-grid {
|
|
-webkit-text-size-adjust: 100%;
|
|
line-height: 1.42857;
|
|
font-family: "Open Sans", sans-serif;
|
|
color: #333;
|
|
font-size: 14px;
|
|
box-sizing: border-box;
|
|
border-radius: 0 !important;
|
|
float: left;
|
|
position: relative;
|
|
min-height: 1px;
|
|
padding-left: 15px;
|
|
padding-right: 15px;
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
|
|
.custom-grid th {
|
|
text-transform: capitalize;
|
|
}
|
|
|
|
.custom-grid th,
|
|
.custom-grid td {
|
|
border: none !important;
|
|
}
|
|
|
|
|
|
|
|
|
|
.custom-grid thead th {
|
|
padding: 2px !important;
|
|
}
|
|
|
|
|
|
.custom-grid,
|
|
.resumen-grid {
|
|
border-collapse: collapse !important;
|
|
border: none !important;
|
|
width: 100% !important;
|
|
}
|
|
|
|
|
|
|
|
|
|
.custom-grid thead th,
|
|
.resumen-grid thead th {
|
|
border-bottom: 2px solid #dee2e6 !important;
|
|
}
|
|
|
|
|
|
.custom-grid tbody tr + tr td,
|
|
.resumen-grid tbody tr + tr td {
|
|
border-top: 1px solid #dee2e6 !important;
|
|
}
|
|
|
|
|
|
.custom-grid th,
|
|
.resumen-grid th {
|
|
text-transform: capitalize !important;
|
|
}
|
|
|
|
|
|
.custom-grid {
|
|
table-layout: fixed;
|
|
}
|
|
|
|
|
|
.custom-grid td,
|
|
.custom-grid th {
|
|
white-space: normal !important;
|
|
word-wrap: break-word !important;
|
|
}
|
|
|
|
.custom-grid,
|
|
.resumen-grid {
|
|
font-size: 8px !important;
|
|
}
|
|
|
|
|
|
.custom-grid th,
|
|
.custom-grid td {
|
|
padding: 2px !important;
|
|
}
|
|
|
|
|
|
|
|
.portlet {
|
|
height: 200px !important;
|
|
}
|
|
|
|
.row.gx-4.gy-4 {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.row,
|
|
.portlet,
|
|
.portlet-title,
|
|
.portlet-body,
|
|
.dashboard-stat,
|
|
.custom-grid,
|
|
.resumen-grid
|
|
.highcharts-container,
|
|
#divVentasMensuales {
|
|
padding: 2px !important;
|
|
}
|
|
|
|
|
|
|
|
|
|
.resumen-grid,
|
|
.custom-grid {
|
|
border-collapse: collapse;
|
|
width: 100% !important;
|
|
table-layout: fixed;
|
|
font-size: 8px !important;
|
|
}
|
|
|
|
.resumen-grid th,
|
|
.resumen-grid td {
|
|
border: none !important;
|
|
padding: 2px !important;
|
|
white-space: normal !important;
|
|
word-wrap: break-word !important;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#gvResumenSucursales .sub-columns,
|
|
#gvResumenSucursales .sub-columns > div {
|
|
padding: 2px !important;
|
|
margin: 0 !important;
|
|
}
|
|
|
|
|
|
.custom-grid td,
|
|
.custom-grid th,
|
|
.resumen-grid td,
|
|
.resumen-grid th {
|
|
padding: 2px !important;
|
|
vertical-align: middle !important;
|
|
}
|
|
|
|
|
|
.portlet-body {
|
|
padding: 2px !important;
|
|
max-height: 170px !important;
|
|
}
|
|
|
|
|
|
|
|
#gvResumenSucursales .sub-data {
|
|
padding: 2px !important;
|
|
border-left: 1px solid #dee2e6 !important;
|
|
}
|
|
|
|
|
|
#gvResumenSucursales .sub-columns > div {
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
}
|
|
|
|
.custom-grid td:first-child,
|
|
.custom-grid th:first-child {
|
|
width: auto !important;
|
|
min-width: auto !important;
|
|
max-width: none !important;
|
|
}
|
|
|
|
.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: 125px !important;
|
|
min-width: 125px !important;
|
|
max-width: 125px !important;
|
|
text-align: right !important;
|
|
padding-right: 8px !important;
|
|
}
|
|
|
|
|
|
.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;
|
|
}
|
|
|
|
|
|
.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;
|
|
padding: 2px 0 !important;
|
|
}
|
|
|
|
.portlet-title .caption-subject {
|
|
font-size: 14px !important;
|
|
}
|
|
|
|
|
|
|
|
|
|
.portlet.light > .portlet-body.table-responsive {
|
|
padding-top: 0 !important;
|
|
margin-top: -16px !important;
|
|
}
|
|
|
|
|
|
.portlet.light > .portlet-title {
|
|
position: relative;
|
|
margin-bottom: 0 !important;
|
|
padding-bottom: 0 !important;
|
|
}
|
|
|
|
.portlet.light > .portlet-title::after {
|
|
content: "";
|
|
position: absolute;
|
|
bottom: 14px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 2px;
|
|
background-color: #dee2e6;
|
|
pointer-events: none;
|
|
z-index: 1;
|
|
}
|
|
|
|
.portlet > .portlet-title {
|
|
border-bottom: none !important;
|
|
margin-bottom: 0 !important;
|
|
padding-bottom: 0 !important;
|
|
}
|
|
|
|
|
|
.kpi-titulo {
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
text-align: left;
|
|
margin-bottom: 10px;
|
|
padding-left: 10px;
|
|
position: relative;
|
|
padding-right: 180px;
|
|
line-height: 1.3;
|
|
}
|
|
|
|
.kpi-valor {
|
|
font-size: 50px;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
line-height: 1.2;
|
|
margin: 15px 0;
|
|
}
|
|
|
|
.divContainerads {
|
|
max-height: 170px;
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Estilos para el header */
|
|
th {
|
|
position: relative;
|
|
text-align: center;
|
|
vertical-align: middle !important;
|
|
padding: 8px 5px !important;
|
|
}
|
|
|
|
.grafica-icon {
|
|
cursor: pointer;
|
|
font-size: 16px;
|
|
color: #337ab7;
|
|
margin-left: 5px;
|
|
display: inline-block;
|
|
}
|
|
|
|
.grafica-icon:hover {
|
|
color: #23527c;
|
|
}
|
|
|
|
.header-checkbox {
|
|
display: inline-block;
|
|
margin-left: 5px;
|
|
transform: scale(1.2);
|
|
}
|
|
|
|
/* Asegurar que los subheaders sean visibles */
|
|
th table th {
|
|
background-color: #f8f9fa !important;
|
|
font-weight: bold;
|
|
}
|
|
/*
|
|
.gvMaxHeight{
|
|
max-height: 160px;
|
|
overflow: auto;
|
|
}
|
|
*/
|
|
</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">
|
|
<ContentTemplate>
|
|
<div class="row filter-row">
|
|
<div class="col-md-2"></div>
|
|
<div class="col-md-3">
|
|
<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">Cuentas por Pagar</asp:ListItem>
|
|
<asp:ListItem Value="5">Inventario</asp:ListItem>
|
|
<asp:ListItem Value="6">Utilidad</asp:ListItem>
|
|
<asp:ListItem Value="7">Impuestos</asp:ListItem>
|
|
<asp:ListItem Value="8">CRM</asp:ListItem>
|
|
<asp:ListItem Value="9">RH</asp:ListItem>
|
|
<asp:ListItem Value="10">AF</asp:ListItem>
|
|
</asp:DropDownList>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<asp:Panel ID="pnlDashboard" runat="server">
|
|
<asp:MultiView ID="mvDashboard" runat="server" ActiveViewIndex="0">
|
|
<asp:View ID="viewIngresos" runat="server">
|
|
<div class="content">
|
|
<div class="row">
|
|
|
|
|
|
<div class="col-md-6">
|
|
<div id="DivIndicadoresIngresosLeft" runat="server"></div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div id="DivIndicadoresIngresosRight" runat="server"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<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">
|
|
|
|
<asp:GridView ID="gvResumenSucursales" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
data-rows="2"
|
|
data-cols="1"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvResumenSucursales_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Sucursal</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl="javascript:void(0);" onclick="return generarGraficaSucursales();">
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Sucursal") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Venta Anual</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkVentaAnual" runat="server" CssClass="header-checkbox" data-field="VentaAnual" />
|
|
<label for="chkVentaAnual">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="Label2" runat="server" Text='<%# Bind("VentaAnual", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Utilidad Anual</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkUtilidadAnual" runat="server" CssClass="header-checkbox" data-field="UtilidadAnual" />
|
|
<label for="chkUtilidadAnual">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="Label3" runat="server" Text='<%# Bind("UtilidadAnual", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Venta Mensual</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkVentaMensual" runat="server" CssClass="header-checkbox" data-field="VentaMensual" />
|
|
<label for="chkVentaMensual">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="Label4" runat="server" Text='<%# Bind("VentaMensual", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Utilidad Mensual</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkUtilidadMensual" runat="server" CssClass="header-checkbox" data-field="UtilidadMensual" />
|
|
<label for="chkUtilidadMensual">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="Label5" runat="server" Text='<%# Bind("UtilidadMensual", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div id="divVentasMensuales" class="mt-3" style="width: 100%; height: 300px;"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorSucursal"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorSucursal_RowCreated">
|
|
<Columns>
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Sucursal</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorSucursal.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSucursal" runat="server" Text='<%# Bind("Sucursal") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorVendedor"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorVendedor_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Vendedor</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorVendedor.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblVendedor" runat="server" Text='<%# Bind("Vendedor") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorClasificacion"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorClasificacion_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Clasificación</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorClasificacion.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblClasificacion" runat="server" Text='<%# Bind("Clasificacion") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorMarca"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorMarca_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Marca</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorMarca.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMarca" runat="server" Text='<%# Bind("Marca") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorPS"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorPS_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>PS</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorPS.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblPS" runat="server" Text='<%# Bind("ProductoServicio") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorCliente"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorCliente_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Cliente</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorCliente.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblPS" runat="server" Text='<%# Bind("NombreCliente") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<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">
|
|
<asp:GridView ID="gvVentasPorProveedor"
|
|
runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvVentasPorProveedor_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Proveedor</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvVentasPorProveedor.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblPS" runat="server" Text='<%# Bind("NombreProveedor") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Año</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkAño" runat="server" CssClass="header-checkbox"
|
|
data-field="Año" />
|
|
<label for="chkAño">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("Año", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Mes</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkMes" runat="server" CssClass="header-checkbox"
|
|
data-field="Mes" />
|
|
<label for="chkMes">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblMes" runat="server"
|
|
Text='<%# Bind("Mes", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Semana</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkSemana" runat="server" CssClass="header-checkbox"
|
|
data-field="Semana" />
|
|
<label for="chkSemana">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSemana" runat="server"
|
|
Text='<%# Bind("Semana", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Día</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkDia" runat="server" CssClass="header-checkbox"
|
|
data-field="Dia" />
|
|
<label for="chkDia">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblDia" runat="server"
|
|
Text='<%# Bind("Día", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewRecuperacion" runat="server">
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div id="DivIndicadoresRecuperacionLeft" runat="server"></div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div id="DivIndicadoresRecuperacionRight" runat="server"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div id="divCxCMensual" style="width: 204%; height: 300px;"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Cartera por Sucursal</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvCarteraPorSucursal" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvCarteraPorSucursal_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Sucursal</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvCarteraPorSucursal.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblSucursal" runat="server" Text='<%# Bind("Sucursal") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Total CxC</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkTotalCxC" runat="server" CssClass="header-checkbox"
|
|
data-field="TotalCxC" />
|
|
<label for="chkTotalCxC">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("TotalCxC", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Vencido</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkVencido" runat="server" CssClass="header-checkbox"
|
|
data-field="Vencido" />
|
|
<label for="chkVencido">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblVencido" runat="server"
|
|
Text='<%# Bind("Vencido", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Por Vencer</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkPorVencer" runat="server" CssClass="header-checkbox"
|
|
data-field="PorVencer" />
|
|
<label for="chkPorVencer">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblPorVencer" runat="server"
|
|
Text='<%# Bind("PorVencer", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Cartera por Vendedor</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvCarteraPorVendedor" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%"
|
|
OnRowCreated="gvCarteraPorVendedor_RowCreated">
|
|
<Columns>
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; align-items: center;">
|
|
<span>Vendedor</span>
|
|
<asp:HyperLink ID="HypGraficaHeader" runat="server" CssClass="pull-right"
|
|
NavigateUrl='<%# "javascript:generarGrafica(\""" & Me.gvCarteraPorVendedor.ClientID & "\"");" %>'>
|
|
<i class="fa fa-bar-chart"></i>
|
|
</asp:HyperLink>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblVendedor" runat="server" Text='<%# Bind("Vendedor") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Total CxC</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkTotalCxC" runat="server" CssClass="header-checkbox"
|
|
data-field="TotalCxC" />
|
|
<label for="chkTotalCxC">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblAño" runat="server"
|
|
Text='<%# Bind("TotalCxC", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Vencido</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkVencido" runat="server" CssClass="header-checkbox"
|
|
data-field="Vencido" />
|
|
<label for="chkVencido">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblVencido" runat="server"
|
|
Text='<%# Bind("Vencido", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
|
|
|
|
<asp:TemplateField>
|
|
<HeaderTemplate>
|
|
<div style="display: flex; flex-direction: column; align-items: center;">
|
|
<span>Por Vencer</span>
|
|
<div>
|
|
<asp:CheckBox ID="chkPorVencer" runat="server" CssClass="header-checkbox"
|
|
data-field="PorVencer" />
|
|
<label for="chkPorVencer">Graficar</label>
|
|
</div>
|
|
</div>
|
|
</HeaderTemplate>
|
|
<ItemTemplate>
|
|
<asp:Label ID="lblPorVencer" runat="server"
|
|
Text='<%# Bind("PorVencer", "{0:N2}") %>'></asp:Label>
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Recuperación por Sucursal</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvRecuperacionPorSucursal" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="Sucursal" HeaderText="Sucursal" />
|
|
<asp:BoundField DataField="Recuperado" HeaderText="Recuperado" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="PromedioDiasRecuperacion" HeaderText="Avg. Días Recuperación" DataFormatString="{0:N1}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Recuperación por Cliente</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvRecuperacionPorCliente" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="Cliente" HeaderText="Cliente" />
|
|
<asp:BoundField DataField="Recuperado" HeaderText="Recuperado" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="PromedioDiasRecuperacion" HeaderText="Avg. Días Recuperación" DataFormatString="{0:N1}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</asp:View>
|
|
|
|
<asp:View ID="viewCompras" runat="server">
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Compras por Clasificación</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvComprasPorClasificacion" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="Clasificacion" HeaderText="Clasificación" />
|
|
<asp:BoundField DataField="Año" HeaderText="Año" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Mes" HeaderText="Mes" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Semana" HeaderText="Semana" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Dia" HeaderText="Día" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Compras por Marca</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvComprasPorMarca" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="Marca" HeaderText="Marca" />
|
|
<asp:BoundField DataField="Año" HeaderText="Año" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Mes" HeaderText="Mes" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Semana" HeaderText="Semana" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Dia" HeaderText="Día" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Compras por PS</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvComprasPorPS" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="ProductoServicio" HeaderText="PS" />
|
|
<asp:BoundField DataField="Año" HeaderText="Año" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Mes" HeaderText="Mes" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Semana" HeaderText="Semana" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Dia" HeaderText="Día" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Compras por Proveedor</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvComprasPorProveedor" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="NombreProveedor" HeaderText="Proveedor" />
|
|
<asp:BoundField DataField="Año" HeaderText="Año" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Mes" HeaderText="Mes" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Semana" HeaderText="Semana" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Dia" HeaderText="Día" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewCuentasPagar" runat="server">
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div id="DivIndicadoresCxPLeft" runat="server"></div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div id="DivIndicadoresCxPRight" runat="server"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div id="divCxPMensual" style="width: 204%; height: 300px;"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">CxP por Sucursal</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvCxPPorSucursal" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="Sucursal" HeaderText="Sucursal" />
|
|
<asp:BoundField DataField="Vencido" HeaderText="Vencido" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="PorVencer" HeaderText="Por Vencer" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Total" HeaderText="Total CxP" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">CxP por Proveedor</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvCxPPorProveedor" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="RazonSocial" HeaderText="Proveedor" />
|
|
<asp:BoundField DataField="Vencido" HeaderText="Vencido" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="PorVencer" HeaderText="Por Vencer" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="Total" HeaderText="Total CxP" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Pagos por Sucursal</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body">
|
|
<asp:GridView ID="gvPagosPorSucursal" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="Sucursal" HeaderText="Sucursal" />
|
|
<asp:BoundField DataField="Recuperado" HeaderText="Pagado" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="PromedioDias" HeaderText="Avg. Días" DataFormatString="{0:N1}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="portlet light">
|
|
<div class="portlet-title">
|
|
<div class="caption caption-md">
|
|
<span class="caption-subject font-dark bold">Pagos por Proveedor</span>
|
|
</div>
|
|
</div>
|
|
<div class="portlet-body table-responsive">
|
|
<asp:GridView ID="gvPagosPorProveedor" runat="server"
|
|
CssClass="adssigrid-scroll adssigrid-order table table-hover table-light custom-grid"
|
|
AutoGenerateColumns="false"
|
|
Width="100%">
|
|
<Columns>
|
|
<asp:BoundField DataField="RazonSocial" HeaderText="Proveedor" />
|
|
<asp:BoundField DataField="Recuperado" HeaderText="Pagado" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
|
|
<asp:BoundField DataField="PromedioDias" HeaderText="Avg. Días" DataFormatString="{0:N1}" ItemStyle-HorizontalAlign="Right" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewInventario" runat="server">
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewUtilidad" runat="server">
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewImpuestos" runat="server">
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewCRM" runat="server">
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewRH" runat="server">
|
|
</asp:View>
|
|
|
|
|
|
<asp:View ID="viewAF" runat="server">
|
|
</asp:View>
|
|
</asp:MultiView>
|
|
</asp:Panel>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
<div id="DivModalGrafica" class="modal fade" role="dialog">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal">×</button>
|
|
<h4 class="modal-title" id="modalTitulo">Comparativo de Sucursales</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div id="chartContainer" style="width: 100%; height: 500px;"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</asp:Content>
|
|
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
|
<script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script>
|
|
<script src="/Scripts/Highcharts/layout.js"></script>
|
|
<script type="text/javascript">
|
|
function pageLoad() {
|
|
$(document).ready(function () {
|
|
// Inicializar tooltips
|
|
$('.tooltips').tooltip();
|
|
});
|
|
}
|
|
|
|
|
|
function generarGraficaSucursales() {
|
|
// 1) Obtener la tabla completa
|
|
var $grid = $('table[id$="gvResumenSucursales"]');
|
|
|
|
// 2) Buscar TODOS los checkbox marcados
|
|
var $checks = $grid.find('input.header-checkbox:checked');
|
|
if ($checks.length === 0) {
|
|
alert('Por favor, seleccione al menos una columna para graficar.');
|
|
return false;
|
|
}
|
|
|
|
// 3) Filas de datos: todas las <tr> que tengan <td>
|
|
var $dataRows = $grid.find('tr').has('td');
|
|
|
|
// 4) Categorías = texto de la primera celda (Sucursal)
|
|
var categorias = $dataRows.map(function () {
|
|
return $(this).find('td').eq(0).text().trim();
|
|
}).get();
|
|
|
|
// 5) Localizar tus subheaders (segunda fila de encabezado)
|
|
var $headerRows = $grid.find('tr').filter(function () {
|
|
return $(this).find('th').length > 1;
|
|
});
|
|
var $subThs = $headerRows.eq(1).find('th'); // esos 4 <th>
|
|
|
|
// 6) Construir las series
|
|
var series = $checks.map(function () {
|
|
var $chk = $(this);
|
|
var $th = $chk.closest('th');
|
|
// idxSub = posición dentro de los 4 subheaders (0..3)
|
|
var idxSub = $subThs.index($th);
|
|
// +1 porque la columna 0 es "Sucursal"
|
|
var colIndex = idxSub + 1;
|
|
// Leer data-field (VentaAnual, UtilidadAnual, etc.) y formatear nombre
|
|
var field = $chk.data('field');
|
|
var name = field.replace(/([a-z])([A-Z])/g, '$1 $2');
|
|
// Mapear los valores de cada fila para esta columna
|
|
var data = $dataRows.map(function () {
|
|
var txt = $(this).find('td').eq(colIndex).text().replace(/,/g, '');
|
|
return parseFloat(txt) || 0;
|
|
}).get();
|
|
return { name: name, data: data };
|
|
}).get();
|
|
|
|
// 7) Dibujar Highcharts
|
|
Highcharts.chart('chartContainer', {
|
|
chart: { type: 'line' },
|
|
title: { text: 'Comparativo por Sucursal' },
|
|
xAxis: {
|
|
categories: categorias,
|
|
title: { text: 'Sucursal' }
|
|
},
|
|
yAxis: {
|
|
title: { text: 'Monto' },
|
|
labels: {
|
|
formatter: function () {
|
|
return '$' + Highcharts.numberFormat(this.value, 0);
|
|
}
|
|
}
|
|
},
|
|
tooltip: {
|
|
headerFormat: '<b>{series.name}</b><br />',
|
|
pointFormat: 'Sucursal: <b>{point.category}</b><br />Valor: <b>${point.y:,.2f}</b>'
|
|
},
|
|
plotOptions: {
|
|
series: { marker: { enabled: true } }
|
|
},
|
|
series: series
|
|
});
|
|
|
|
// 8) Mostrar el modal
|
|
$('#DivModalGrafica').modal('show');
|
|
return false;
|
|
}
|
|
|
|
function generarGrafica(gridId) {
|
|
var $grid = $('#' + gridId);
|
|
|
|
// Encuentra las filas de encabezado (donde están los checkboxes)
|
|
var $headerRows = $grid.find('tr:has(th)');
|
|
var $subHeader = $headerRows.length > 1 ? $headerRows.eq(1) : $headerRows.eq(0);
|
|
var $subThs = $subHeader.find('th');
|
|
|
|
// Buscar checkboxes marcados
|
|
var $checks = $grid.find('input.header-checkbox:checked');
|
|
if ($checks.length === 0) {
|
|
alert('Por favor, seleccione al menos una columna para graficar.');
|
|
return false;
|
|
}
|
|
|
|
// Filas de datos
|
|
var $dataRows = $grid.find('tr').has('td');
|
|
|
|
// Categorías (eje X)
|
|
var categorias = $dataRows.map(function () {
|
|
return $(this).find('td').eq(0).text().trim();
|
|
}).get();
|
|
|
|
// Construir series
|
|
var series = [];
|
|
$checks.each(function () {
|
|
var $chk = $(this);
|
|
var field = $chk.data('field');
|
|
|
|
// Buscar el índice de la columna que tiene ese data-field
|
|
var colIndex = -1;
|
|
$subThs.each(function (i) {
|
|
var $input = $(this).find('input.header-checkbox');
|
|
if ($input.length && $input.data('field') === field) {
|
|
colIndex = i + 1; // +1 porque la primera columna es la de las categorías
|
|
}
|
|
});
|
|
|
|
if (colIndex === -1) return; // No encontrado, saltar
|
|
|
|
var name = field.replace(/([a-z])([A-Z])/g, '$1 $2');
|
|
var data = $dataRows.map(function () {
|
|
var txt = $(this).find('td').eq(colIndex).text().replace(/,/g, '');
|
|
return parseFloat(txt) || 0;
|
|
}).get();
|
|
|
|
series.push({ name: name, data: data });
|
|
});
|
|
|
|
// Título dinámico
|
|
var titulo = $grid.closest('.portlet').find('.caption-subject').text();
|
|
var modalTitulo = document.getElementById('modalTitulo');
|
|
if (modalTitulo) modalTitulo.innerText = 'Comparativo: ' + titulo;
|
|
|
|
// Dibujar gráfica
|
|
Highcharts.chart('chartContainer', {
|
|
chart: { type: 'line' },
|
|
title: { text: titulo }, // Usar el título dinámico
|
|
xAxis: {
|
|
categories: categorias,
|
|
title: { text: 'Categoría' } // Título genérico para el eje X
|
|
},
|
|
yAxis: {
|
|
title: { text: 'Monto (MXN)' },
|
|
labels: {
|
|
formatter: function () {
|
|
return '$' + Highcharts.numberFormat(this.value, 0);
|
|
}
|
|
}
|
|
},
|
|
tooltip: {
|
|
headerFormat: '<b>{series.name}</b><br />',
|
|
pointFormat: 'Categoría: <b>{point.category}</b><br />Valor: <b>${point.y:,.2f}</b>'
|
|
},
|
|
plotOptions: {
|
|
series: { marker: { enabled: true } }
|
|
},
|
|
series: series
|
|
});
|
|
|
|
$('#DivModalGrafica').modal('show');
|
|
return false;
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
</asp:Content>
|
|
|