Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -406,7 +406,7 @@ Public Class ClsPaginas
|
|||||||
End Property
|
End Property
|
||||||
|
|
||||||
#Region "ordenes de producción"
|
#Region "ordenes de producción"
|
||||||
Property GlobalDTOPEstatus(CveEmpresa As Integer, Optional Estatus As Integer = -1) As DataTable
|
Property GlobalDTOPEstatus(CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional CveTipoEstatus As Integer = -1) As DataTable
|
||||||
Get
|
Get
|
||||||
Dim AppNombre As String = $"GlobalDTOPEstatus-{CveEmpresa}"
|
Dim AppNombre As String = $"GlobalDTOPEstatus-{CveEmpresa}"
|
||||||
If HttpContext.Current.Application(AppNombre) Is Nothing Then
|
If HttpContext.Current.Application(AppNombre) Is Nothing Then
|
||||||
@@ -417,6 +417,8 @@ Public Class ClsPaginas
|
|||||||
Dim filtros As New List(Of String)
|
Dim filtros As New List(Of String)
|
||||||
If Estatus <> -1 Then filtros.Add($"Estatus = {Estatus}")
|
If Estatus <> -1 Then filtros.Add($"Estatus = {Estatus}")
|
||||||
|
|
||||||
|
If CveTipoEstatus <> -1 Then filtros.Add($"CveTipoEstatus = {CveTipoEstatus}")
|
||||||
|
|
||||||
If filtros.Count > 0 Then
|
If filtros.Count > 0 Then
|
||||||
Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows)
|
Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows)
|
||||||
GlobalDTOPEstatus = Dv.ToTable
|
GlobalDTOPEstatus = Dv.ToTable
|
||||||
@@ -1020,7 +1022,7 @@ Public Class ClsPaginas
|
|||||||
|
|
||||||
For Each file As String In files
|
For Each file As String In files
|
||||||
Dim fi As IO.FileInfo = New IO.FileInfo(file)
|
Dim fi As IO.FileInfo = New IO.FileInfo(file)
|
||||||
If fi.LastAccessTime < DateTime.Now.AddMonths(-6) Then fi.Delete()
|
If fi.LastAccessTime <DateTime.Now.AddMonths(-6) Then fi.Delete()
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
|
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
|
||||||
<li>
|
<li>
|
||||||
<asp:LinkButton ID="LnkExportarPDF" runat="server"> <i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> Exportar PDF</asp:LinkButton>
|
<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>
|
</li>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
@@ -817,10 +817,20 @@
|
|||||||
.custom-grid td:nth-child(3),
|
.custom-grid td:nth-child(3),
|
||||||
.custom-grid td:nth-child(4),
|
.custom-grid td:nth-child(4),
|
||||||
.custom-grid td:nth-child(5) {
|
.custom-grid td:nth-child(5) {
|
||||||
width: 150px !important;
|
width: 125px !important;
|
||||||
min-width: 150px !important;
|
min-width: 125px !important;
|
||||||
max-width: 150px !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;
|
text-align: center !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Asegurar ancho libre para primera columna */
|
/* Asegurar ancho libre para primera columna */
|
||||||
@@ -872,17 +882,12 @@
|
|||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
padding-bottom: 0 !important;
|
padding-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
|
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
|
<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>
|
<ContentTemplate>
|
||||||
<div class="row filter-row">
|
<div class="row filter-row">
|
||||||
<div class="col-md-2"></div>
|
<div class="col-md-2"></div>
|
||||||
@@ -913,398 +918,354 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<asp:MultiView ID="mvDashboard" runat="server" ActiveViewIndex="0">
|
<asp:Panel ID="pnlDashboard" runat="server">
|
||||||
<asp:View ID="viewIngresos" runat="server">
|
<asp:MultiView ID="mvDashboard" runat="server" ActiveViewIndex="0">
|
||||||
<div class="row gx-4 gy-4">
|
<asp:View ID="viewIngresos" runat="server">
|
||||||
<div class="col-lg-6">
|
<div class="row gx-4 gy-4">
|
||||||
<div class="row gx-3" id="DivIndicadoresLeft" runat="server"></div>
|
<div class="col-lg-6">
|
||||||
|
<div class="row gx-3" id="DivIndicadoresLeft" runat="server"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="portlet light">
|
<div class="portlet light">
|
||||||
<div class="portlet-title">
|
<div class="portlet-title">
|
||||||
<div class="caption caption-md">
|
<div class="caption caption-md">
|
||||||
<i class="icon-bar-chart font-dark hide"></i>
|
<i class="icon-bar-chart font-dark hide"></i>
|
||||||
<span class="caption-subject font-dark bold">Utilidad</span>
|
<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>
|
</div>
|
||||||
<div class="portlet-body table-responsive">
|
|
||||||
|
|
||||||
<asp:GridView ID="gvResumenSucursales"
|
</div>
|
||||||
runat="server"
|
|
||||||
CssClass="table table-hover table-light custom-grid"
|
|
||||||
AutoGenerateColumns="false" Width="100%">
|
|
||||||
<Columns>
|
|
||||||
|
|
||||||
<asp:TemplateField HeaderStyle-HorizontalAlign="Center">
|
<div class="col-lg-6 mb-4">
|
||||||
<HeaderTemplate>
|
|
||||||
|
|
||||||
<asp:Label runat="server" Text="Sucursal" CssClass="header-group" />
|
<div class="row gx-3" id="DivIndicadoresRight" runat="server"></div>
|
||||||
|
|
||||||
<div class="sub-columns">
|
<div id="divVentasMensuales" class="mt-3" style="width: 100%; height: 300px;"></div>
|
||||||
<div class="sub-header"> </div>
|
|
||||||
<div class="sub-header"> </div>
|
|
||||||
</div>
|
|
||||||
</HeaderTemplate>
|
|
||||||
<ItemStyle Width="150px" Font-Bold="True" />
|
|
||||||
<ItemTemplate>
|
|
||||||
<%# Eval("Sucursal") %>
|
|
||||||
</ItemTemplate>
|
|
||||||
</asp:TemplateField>
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<asp:TemplateField HeaderText="Año"
|
<div class="col-lg-6 mb-4">
|
||||||
HeaderStyle-HorizontalAlign="Center">
|
<div class="portlet light">
|
||||||
<HeaderTemplate>
|
<div class="portlet-title">
|
||||||
<asp:Label runat="server"
|
<div class="caption caption-md">
|
||||||
Text="Año"
|
<span class="caption-subject font-dark bold">Ventas por sucursal</span>
|
||||||
CssClass="header-group" />
|
</div>
|
||||||
<div class="sub-columns">
|
</div>
|
||||||
<div class="sub-header">Venta</div>
|
<div class="portlet-body table-responsive">
|
||||||
<div class="sub-header">Utilidad</div>
|
<asp:GridView ID="gvVentasPorSucursal"
|
||||||
</div>
|
runat="server"
|
||||||
</HeaderTemplate>
|
CssClass="table table-hover table-light custom-grid"
|
||||||
<ItemTemplate>
|
AutoGenerateColumns="false"
|
||||||
<div class="sub-columns">
|
Width="100%">
|
||||||
<div class="sub-data"><%# String.Format("{0:N2}", Eval("VentaAnual")) %></div>
|
<Columns>
|
||||||
<div class="sub-data"><%# String.Format("{0:N2}", Eval("UtilidadAnual")) %></div>
|
<asp:TemplateField HeaderText="Sucursal">
|
||||||
</div>
|
<ItemTemplate><%# Eval("Sucursal") %></ItemTemplate>
|
||||||
</ItemTemplate>
|
</asp:TemplateField>
|
||||||
</asp:TemplateField>
|
<asp:TemplateField HeaderText="Año">
|
||||||
|
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="Mes"
|
<asp:TemplateField HeaderText="Mes">
|
||||||
HeaderStyle-HorizontalAlign="Center">
|
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
|
||||||
<HeaderTemplate>
|
</asp:TemplateField>
|
||||||
<asp:Label runat="server"
|
<asp:TemplateField HeaderText="Semana">
|
||||||
Text="Mes"
|
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
|
||||||
CssClass="header-group" />
|
</asp:TemplateField>
|
||||||
<div class="sub-columns">
|
<asp:TemplateField HeaderText="Día">
|
||||||
<div class="sub-header">Venta</div>
|
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
|
||||||
<div class="sub-header">Utilidad</div>
|
</asp:TemplateField>
|
||||||
</div>
|
</Columns>
|
||||||
</HeaderTemplate>
|
</asp:GridView>
|
||||||
<ItemTemplate>
|
</div>
|
||||||
<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>
|
</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>
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField HeaderText="Año">
|
||||||
<div id="divVentasMensuales" class="mt-3" style="width: 100%; height: 300px;"></div>
|
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
</div>
|
<asp:TemplateField HeaderText="Mes">
|
||||||
|
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
|
||||||
<div class="col-lg-6 mb-4">
|
</asp:TemplateField>
|
||||||
<div class="portlet light">
|
<asp:TemplateField HeaderText="Semana">
|
||||||
<div class="portlet-title">
|
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
|
||||||
<div class="caption caption-md">
|
</asp:TemplateField>
|
||||||
<span class="caption-subject font-dark bold">Ventas por sucursal</span>
|
<asp:TemplateField HeaderText="Día">
|
||||||
|
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="portlet-body table-responsive">
|
</div>
|
||||||
<asp:GridView ID="gvVentasPorSucursal"
|
|
||||||
runat="server"
|
|
||||||
CssClass="table table-hover table-light custom-grid"
|
<div class="col-lg-6 mb-4">
|
||||||
AutoGenerateColumns="false"
|
<div class="portlet light">
|
||||||
Width="100%">
|
<div class="portlet-title">
|
||||||
<Columns>
|
<div class="caption caption-md">
|
||||||
<asp:TemplateField HeaderText="Sucursal">
|
<span class="caption-subject font-dark bold">Ventas por clasificación</span>
|
||||||
<ItemTemplate><%# Eval("Sucursal") %></ItemTemplate>
|
</div>
|
||||||
</asp:TemplateField>
|
</div>
|
||||||
<asp:TemplateField HeaderText="Año">
|
<div class="portlet-body table-responsive">
|
||||||
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
|
<asp:GridView ID="gvVentasPorClasificacion"
|
||||||
</asp:TemplateField>
|
runat="server"
|
||||||
<asp:TemplateField HeaderText="Mes">
|
CssClass="table table-hover table-light custom-grid"
|
||||||
<ItemTemplate><%# Eval("Mes", "{0:N2}") %></ItemTemplate>
|
AutoGenerateColumns="false"
|
||||||
</asp:TemplateField>
|
Width="100%">
|
||||||
<asp:TemplateField HeaderText="Semana">
|
<Columns>
|
||||||
<ItemTemplate><%# Eval("Semana", "{0:N2}") %></ItemTemplate>
|
<asp:TemplateField HeaderText="Clasificación">
|
||||||
</asp:TemplateField>
|
<ItemTemplate><%# Eval("Clasificacion") %></ItemTemplate>
|
||||||
<asp:TemplateField HeaderText="Día">
|
|
||||||
<ItemTemplate><%# Eval("Día", "{0:N2}") %></ItemTemplate>
|
</asp:TemplateField>
|
||||||
</asp:TemplateField>
|
<asp:TemplateField HeaderText="Año">
|
||||||
</Columns>
|
<ItemTemplate><%# Eval("Año", "{0:N2}") %></ItemTemplate>
|
||||||
</asp:GridView>
|
</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>
|
||||||
</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 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>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-lg-6 mb-4">
|
<asp:View ID="viewRecuperacion" runat="server">
|
||||||
<div class="portlet light">
|
</asp:View>
|
||||||
<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">
|
<asp:View ID="viewCompras" runat="server">
|
||||||
<div class="portlet light">
|
</asp:View>
|
||||||
<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="viewRecuperacion" runat="server">
|
<asp:View ID="viewGasto" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewCompras" runat="server">
|
<asp:View ID="viewCuentasPagar" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewGasto" runat="server">
|
<asp:View ID="viewInventario" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewCuentasPagar" runat="server">
|
<asp:View ID="viewUtilidad" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewInventario" runat="server">
|
<asp:View ID="viewImpuestos" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewUtilidad" runat="server">
|
<asp:View ID="viewCRM" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewImpuestos" runat="server">
|
<asp:View ID="viewRH" runat="server">
|
||||||
</asp:View>
|
<!-- Placeholder para RH -->
|
||||||
|
</asp:View>
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewCRM" runat="server">
|
<asp:View ID="viewAF" runat="server">
|
||||||
</asp:View>
|
</asp:View>
|
||||||
|
</asp:MultiView>
|
||||||
|
</asp:Panel>
|
||||||
<asp:View ID="viewRH" runat="server">
|
|
||||||
<!-- Placeholder para RH -->
|
|
||||||
</asp:View>
|
|
||||||
|
|
||||||
|
|
||||||
<asp:View ID="viewAF" runat="server">
|
|
||||||
</asp:View>
|
|
||||||
</asp:MultiView>
|
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
|
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ Partial Class General_Dashboard
|
|||||||
ddlDashboardOption.SelectedValue = "1" ' Opción por defecto: Ingresos
|
ddlDashboardOption.SelectedValue = "1" ' Opción por defecto: Ingresos
|
||||||
LoadDashboard()
|
LoadDashboard()
|
||||||
End If
|
End If
|
||||||
|
ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkExportarPDF)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Protected Sub ddlDashboardOption_SelectedIndexChanged(sender As Object, e As EventArgs)
|
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
|
' Aquí podrías cargar dinámicamente si lo deseas en el futuro
|
||||||
End Sub
|
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()
|
Private Sub LoadDashboard()
|
||||||
Dim opcion As Integer = Integer.Parse(ddlDashboardOption.SelectedValue)
|
Dim opcion As Integer = Integer.Parse(ddlDashboardOption.SelectedValue)
|
||||||
Dim hoy As DateTime = DateTime.Now
|
Dim hoy As DateTime = DateTime.Now
|
||||||
@@ -89,17 +95,13 @@ Partial Class General_Dashboard
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Protected Sub LnkExportarPDF_Click(sender As Object, e As EventArgs) Handles LnkExportarPDF.Click
|
Protected Sub LnkExportarPDF_Click(sender As Object, e As EventArgs) Handles LnkExportarPDF.Click
|
||||||
UPDashboard.Update()
|
DivIndicadoresLeft.InnerHtml &= DivIndicadoresRight.InnerHtml
|
||||||
|
DivIndicadoresRight.InnerHtml = String.Empty
|
||||||
' Clonar todo el UpdatePanel
|
pnlDashboard.GenerarReportePDF("Reporte Resumen de Indicadores")
|
||||||
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
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Sub CargarIndicadores(dt As DataTable)
|
Private Sub CargarIndicadores(dt As DataTable)
|
||||||
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
|
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
|
||||||
ProcesarDatosIndicadores(dt)
|
ProcesarDatosIndicadores(dt)
|
||||||
@@ -234,6 +236,53 @@ Partial Class General_Dashboard
|
|||||||
|
|
||||||
End Sub
|
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)
|
Private Sub CargarVentasPorSucursal(dt As DataTable)
|
||||||
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
|
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
|
||||||
Return
|
Return
|
||||||
|
|||||||
@@ -921,12 +921,29 @@ Partial Class OP_OP
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Protected Sub BtnAceptarCancelacion_Click(sender As Object, e As EventArgs)
|
Protected Sub BtnAceptarCancelacion_Click(sender As Object, e As EventArgs)
|
||||||
|
Dim EstatusCancelacion As String = GlobalDTOPEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("EstatusOP", "TipoEstatus=4")
|
||||||
|
Dim CveEstatusCancelacion As Integer = GlobalDTOPEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOP", "TipoEstatus=4").ToEntero()
|
||||||
|
If Not CveEstatusCancelacion > 0 Then
|
||||||
|
Alert("No se encontró el estatus de finalización de la OP.", TipoMensaje.MsgError)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
Dim ObjInventario As New ClsInventarios()
|
Dim ObjInventario As New ClsInventarios()
|
||||||
|
Dim CveMovimientoSalida As Integer = 1
|
||||||
|
Dim CveMovEntradaDev As Integer = 0
|
||||||
|
Dim CveMovMerma As Integer = 1
|
||||||
Dim TieneError As Boolean = False
|
Dim TieneError As Boolean = False
|
||||||
Dim MensajeError As String = ""
|
Dim MensajeError As String = ""
|
||||||
ObjInventario.IniciaTransacSQL()
|
ObjInventario.IniciaTransacSQL()
|
||||||
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
||||||
Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL())
|
Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL())
|
||||||
|
Dim TipoMovimientoSalida As Integer = 26
|
||||||
|
Dim TipoMovimientoEntrada As Integer = 27
|
||||||
|
Dim TotalMP As Decimal = 0
|
||||||
|
Dim TotalDevoluciones As Decimal = 0
|
||||||
|
Dim TotalMermas As Decimal = 0
|
||||||
|
|
||||||
|
Dim Fecha As DateTime = NowADS()
|
||||||
|
|
||||||
Try
|
Try
|
||||||
|
|
||||||
@@ -938,15 +955,10 @@ Partial Class OP_OP
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' 1. Movimiento de Salida MP
|
' 1. Movimiento de Salida MP
|
||||||
Dim CveMovSalida As Integer = ObjInventario.AddMovimiento(
|
CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenSalidaMP.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:="Cancelación OP #" & LblFolio.Text, Modulo:="OP/CancelanciónSalida")
|
||||||
DdlAlmacenSalidaMP.SelectedValue.ToEntero(), 26, 1, NowADS, -1,
|
|
||||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
|
||||||
Observaciones:="Cancelación OP #" & LblFolio.Text)
|
|
||||||
|
|
||||||
' 2. Movimiento de Entrada Devoluciones
|
' 2. Movimiento de Entrada Devoluciones
|
||||||
Dim CveMovEntradaDev As Integer = ObjInventario.AddMovimiento(
|
CveMovEntradaDev = ObjInventario.AddMovimiento(DdlAlmacenDevolucionCancel.SelectedValue.ToEntero(), TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónEntrada", CveMovimientoRelacionado:=CveMovimientoSalida)
|
||||||
DdlAlmacenDevolucionCancel.SelectedValue.ToEntero(), 27, 1, NowADS, -1,
|
|
||||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
||||||
|
|
||||||
' 3. Procesar cada material
|
' 3. Procesar cada material
|
||||||
For Each row As GridViewRow In GvMPCancelacion.Rows
|
For Each row As GridViewRow In GvMPCancelacion.Rows
|
||||||
@@ -958,11 +970,16 @@ Partial Class OP_OP
|
|||||||
Throw New Exception("La suma de merma y devolución no puede exceder la cantidad")
|
Throw New Exception("La suma de merma y devolución no puede exceder la cantidad")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim CvePS As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(0)
|
TotalMP += Cantidad
|
||||||
Dim CveUM As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(1)
|
TotalDevoluciones += Devolucion
|
||||||
|
TotalMermas += Merma
|
||||||
|
|
||||||
|
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
|
||||||
|
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
|
||||||
|
|
||||||
|
|
||||||
' Registrar salida
|
' Registrar salida
|
||||||
ObjInventario.AddMovimientoDetalle(CveMovSalida, Cantidad, CveUM, CvePS, 0)
|
ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, 0)
|
||||||
|
|
||||||
' Registrar devolución
|
' Registrar devolución
|
||||||
If Devolucion > 0 Then
|
If Devolucion > 0 Then
|
||||||
@@ -971,17 +988,15 @@ Partial Class OP_OP
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
' 4. Registrar mermas si existen
|
' 4. Registrar mermas si existen
|
||||||
Dim TotalMermas As Decimal = 0
|
|
||||||
If DdlAlmacenMermas.SelectedValue <> "-1" Then
|
If DdlAlmacenMermas.SelectedValue <> "-1" Then
|
||||||
Dim CveMovMerma As Integer = ObjInventario.AddMovimiento(
|
CveMovMerma = ObjInventario.AddMovimiento(DdlAlmacenMermas.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónMerma", CveMovimientoRelacionado:=CveMovimientoSalida)
|
||||||
DdlAlmacenMermas.SelectedValue.ToEntero(), 26, 1, NowADS, -1,
|
|
||||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
||||||
|
|
||||||
For Each row As GridViewRow In GvMPCancelacion.Rows
|
For Each row As GridViewRow In GvMPCancelacion.Rows
|
||||||
Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal()
|
Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal()
|
||||||
If Merma > 0 Then
|
If Merma > 0 Then
|
||||||
Dim CvePS As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(0)
|
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
|
||||||
Dim CveUM As Integer = GvMPCancelacion.DataKeys(row.RowIndex).Values(1)
|
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
|
||||||
ObjInventario.AddMovimientoDetalle(CveMovMerma, Merma, CveUM, CvePS, 0)
|
ObjInventario.AddMovimientoDetalle(CveMovMerma, Merma, CveUM, CvePS, 0)
|
||||||
TotalMermas += Merma
|
TotalMermas += Merma
|
||||||
End If
|
End If
|
||||||
@@ -989,26 +1004,26 @@ Partial Class OP_OP
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' 5. Generar pólizas contables
|
' 5. Generar pólizas contables
|
||||||
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OP/Cancelacion", 53, 0, 0, 1, NowADS,
|
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OP/Cancelacion", 53, 0, 0, 1, Fecha,
|
||||||
"Cancelación OP #" & LblFolio.Text,
|
"Cancelación OP #" & LblFolio.Text,
|
||||||
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||||
|
|
||||||
' Salida MP (Abono 68)
|
' Salida MP (Abono 68)
|
||||||
ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMP, TotalMP, 68, "Salida MP Cancelación")
|
ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMP, TotalMP, 68, "Cancelación MP OP #" & LblFolio.Text, "Cancelación MP OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoSalida)
|
||||||
|
|
||||||
' Entrada Devoluciones (Cargo 68)
|
' Entrada Devoluciones (Cargo 68)
|
||||||
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalDevoluciones, TotalDevoluciones, 68, "Devoluciones Cancelación")
|
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalDevoluciones, TotalDevoluciones, 68, "Devoluciones Cancelación OP #" & LblFolio.Text, "Devoluciones Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovEntradaDev)
|
||||||
|
|
||||||
If TotalMermas > 0 Then
|
If TotalMermas > 0 Then
|
||||||
' Salida Mermas (Abono 68)
|
' Salida Mermas (Abono 68)
|
||||||
ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMermas, TotalMermas, 68, "Mermas Cancelación")
|
ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMermas, TotalMermas, 68, "Mermas Cancelación OP #" & LblFolio.Text, "Mermas Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovMerma)
|
||||||
' Cargo Mermas (95)
|
' Cargo Mermas (95)
|
||||||
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMermas, TotalMermas, 95, "Ajuste por Mermas")
|
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMermas, TotalMermas, 95, "Ajuste Mermas Cancelación OP #" & LblFolio.Text, "Ajuste Mermas Cancelación OP #" & LblFolio.Text)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' 6. Actualizar estatus OP
|
' 6. Actualizar estatus OP
|
||||||
|
|
||||||
If ObjOP.UpdateEstatusOP(CveOP, 4, UsuarioActual.CveEmpresa) Then
|
If ObjOP.UpdateEstatusOP(CveOP, CveEstatusCancelacion, UsuarioActual.CveEmpresa) Then
|
||||||
ObjInventario.Commit()
|
ObjInventario.Commit()
|
||||||
TxtEstatus.Text = "Cancelado"
|
TxtEstatus.Text = "Cancelado"
|
||||||
BtnCancelarOP.Visible = False
|
BtnCancelarOP.Visible = False
|
||||||
|
|||||||
Reference in New Issue
Block a user