This commit is contained in:
rrene
2020-10-27 23:54:12 -07:00
30 changed files with 3054 additions and 870 deletions

View File

@@ -398,7 +398,7 @@
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Clientes Personal Entrega</span>
<span class="caption-subject bold uppercase">Entregas solo a:</span>
</div>
</div>
<div class="portlet-body form">

View File

@@ -1026,6 +1026,8 @@ Partial Class Inventarios_EntregaAlmacen
AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
End If
GvSerie.Columns(1).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
If AplicaCaducidad Then
GvSerie.Columns(1).Visible = True
TdCaducidad1.Visible = True
@@ -1229,6 +1231,7 @@ Partial Class Inventarios_EntregaAlmacen
Private Sub CargaLote(Optional CerrarCompletado As Boolean = False)
RegistraScript("$('#DivLote').modal('show')")
GvLote.Columns(2).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
GvLote.DataSource = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC")
GvLote.DataBind()

View File

@@ -127,6 +127,9 @@
<li>
<asp:LinkButton ID="LnkSeries" Visible="false" runat="server"><i class="fa fa-list"></i> Series Disponibles</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkCaducidad" Visible="false" runat="server"><i class="fa fa-list"></i> Caducidad de producto</asp:LinkButton>
</li>
<li>
<a target="_blank" class="ayuda" href="../Documentacion/DocumentacionInventarios.aspx#Kardex">&nbsp;</a>
</li>
@@ -543,6 +546,43 @@
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="DivModalCaducidad" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpdatePanel2" UpdateMode="Conditional" RenderMode="Inline" style="width:50%">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Literal ID="Literal1" Text="Producto con caducidad" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row" style="width:100%">
<div style="width:98%;margin-left:1.5%;margin-right:1.5%">
<asp:UpdatePanel ID="UpProductoCaducidad" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<asp:GridView ID="GvProductoCaducidad" Width="98%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False"
ShowFooter="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-advance table-hover ScrollAD" GridLines="None"
DataKeyNames="Almacen,Cantidad,FechaCaducidad">
<Columns>
<asp:BoundField HeaderText="Almacén" DataField="Almacen"/>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:n2}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" DataFormatString="{0:dd/MM/yyyy}"/>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -203,50 +203,52 @@ Partial Class Inventarios_Kardex
GvM.Columns(6).Visible = DtTemp.MAX("FolioRelacionEntrada") <> ""
If AplicaSeccion Then GvM.Columns(8).Visible = True
If AplicaSerie Then GvM.Columns(9).Visible = True
If AplicaLote Then GvM.Columns(10).Visible = True
If AplicaCaducidad Then GvM.Columns(11).Visible = True
If AplicaSerie Then GvM.Columns(9).Visible = True
If AplicaLote Then GvM.Columns(10).Visible = True
If AplicaCaducidad Then GvM.Columns(11).Visible = True
Dim AuxAplicaSerie As Boolean = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimeroValor("AplicaSerie") = "True"
LnkSeries.Visible = AuxAplicaSerie
'CARGA INDICADORES
If UsuarioActual.TienePermisoProceso(201) Then
DivIndicadores.Visible = True
Dim AuxAplicaSerie As Boolean = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimeroValor("AplicaSerie") = "True"
Dim AuxAplicaCad As Boolean = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimeroValor("AplicaCaducidad") = "True"
LnkSeries.Visible = AuxAplicaSerie
LnkCaducidad.Visible = AuxAplicaCad
'CARGA INDICADORES
If UsuarioActual.TienePermisoProceso(201) Then
DivIndicadores.Visible = True
Dim Dr = DtTemp.FiltroUltimo("")
Dim TC = If(GlobalTipoCambio(Now) > 0, GlobalTipoCambio(Now), 1)
Dim Dr = DtTemp.FiltroUltimo("")
Dim TC = If(GlobalTipoCambio(Now) > 0, GlobalTipoCambio(Now), 1)
LtIndicador_Existencia.Text = Dr("Existencias").ToString.FormatoNumero()
LtIndicador_Existencia.Text = Dr("Existencias").ToString.FormatoNumero()
LtIndicador_ValorPesos.Text = Dr("ValorInventario").ToString.FormatoNumero()
LtIndicador_ValorDolares.Text = (Dr("ValorInventario").ToString.ToDouble / TC).FormatoNumero()
LtIndicador_ValorPesos.Text = Dr("ValorInventario").ToString.FormatoNumero()
LtIndicador_ValorDolares.Text = (Dr("ValorInventario").ToString.ToDouble / TC).FormatoNumero()
Dim CostoPromedio = If(Dr("Existencias").ToString.ToDouble > 0, Dr("ValorInventario").ToString.ToDouble / Dr("Existencias").ToString.ToDouble, 0)
LtIndicador_CPPesos.Text = CostoPromedio.FormatoNumero()
LtIndicador_CPDolares.Text = (CostoPromedio / TC).FormatoNumero()
Dim CostoPromedio = If(Dr("Existencias").ToString.ToDouble > 0, Dr("ValorInventario").ToString.ToDouble / Dr("Existencias").ToString.ToDouble, 0)
LtIndicador_CPPesos.Text = CostoPromedio.FormatoNumero()
LtIndicador_CPDolares.Text = (CostoPromedio / TC).FormatoNumero()
LtIndicador_UCPesos.Text = Dr("UltimoCosto").ToString.FormatoNumero()
LtIndicador_UCDolares.Text = Dr("UltimoCostoUSD").ToString.FormatoNumero()
LtIndicador_UCPesos.Text = Dr("UltimoCosto").ToString.FormatoNumero()
LtIndicador_UCDolares.Text = Dr("UltimoCostoUSD").ToString.FormatoNumero()
LtIndicador_Mensaje.Text = $"* Importes calculados con el tipo de cambio del dia <b> $ {TC.FormatoNumero(4)} </b>"
LtIndicador_Mensaje.Text = $"* Importes calculados con el tipo de cambio del dia <b> $ {TC.FormatoNumero(4)} </b>"
If TxtSerie.Text <> "" Then
LtIndicador_MensajeSerie.Text = $"* Existencia y costos calculada por numero de serie: <b> {TxtSerie.Text} </b>"
Else
LtIndicador_MensajeSerie.Text = ""
End If
UpIndicadores.Update()
GvM.Attributes.Add("data-heighterror", "430")
If TxtSerie.Text <> "" Then
LtIndicador_MensajeSerie.Text = $"* Existencia y costos calculada por numero de serie: <b> {TxtSerie.Text} </b>"
Else
GvM.Attributes.Add("data-heighterror", "270")
LtIndicador_MensajeSerie.Text = ""
End If
GvM.DataSource = DtTemp
GvM.DataBind()
UpAcciones.Update()
UpIndicadores.Update()
GvM.Attributes.Add("data-heighterror", "430")
Else
GvM.Attributes.Add("data-heighterror", "270")
End If
Else
GvM.DataSource = DtTemp
GvM.DataBind()
UpAcciones.Update()
End If
Else
Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia)
End If
End Sub
@@ -327,6 +329,19 @@ Partial Class Inventarios_Kardex
ObjInventarios.Dispose()
GvSeries.DataBind()
End Sub
Private Sub CargarCaducidadProducto()
Dim almacenes As String = ddlAlmacen.GetSelectedValues()
If almacenes = "" Then
almacenes = "-1"
End If
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetExistenciasCaducidad(ddlProducto2.SelectedValue.ToEntero(), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, almacenes) Then
GvProductoCaducidad.DataSource = ObjInventarios.DtResultados
End If
ObjInventarios.Dispose()
GvProductoCaducidad.DataBind()
End Sub
#End Region
#Region " IMPRIMIR "
@@ -443,6 +458,12 @@ Partial Class Inventarios_Kardex
UpGridSeries.Update()
RegistraScript(String.Format("$('#{0}').modal('show');", "DivModalSerie"))
End Sub
Protected Sub LnkCaducidad_OnClick(sender As Object, e As EventArgs) Handles LnkCaducidad.Click
CargarCaducidadProducto()
UpProductoCaducidad.Update()
RegistraScript(String.Format("$('#{0}').modal('show');", "DivModalCaducidad"))
End Sub
#End Region

View File

@@ -1824,6 +1824,7 @@ Partial Class Inventarios_RecepcionAlmacen
End Sub
Private Sub CargaLote(Tipo As Integer, Optional CerrarCompletado As Boolean = False)
RegistraScript("$('#DivLote').modal();", "ModalLote")
GvLote.Columns(2).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC")
GvLote.DataBind()

View File

@@ -0,0 +1,104 @@
<%@ Page Title="Compras - Reporte de Productos por Caducar" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepProductosPorCaducar.aspx.cs" Inherits="Inventarios_RepProductosPorCaducar" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Reporte de Productos por Caducar
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpLnkAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkImprimirPDF" runat="server" OnClick="LnkImprimirPDF_Click" Visible="true"><i class="fa fa-file-pdf-o"></i><span style="padding: 10px">PDF</span></asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkImprimirExcel" runat="server" OnClick="LnkImprimirExcel_Click" Visible="true"><i class="fa fa-file-excel-o"></i><span style="padding: 10px">Excel</span></asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkImprimirPDF"/>
<asp:PostBackTrigger ControlID="LnkImprimirExcel"/>
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="PFiltros" class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" OnClick="BtnConsultar_Click" class="btn btn-primary" ValidationGroup="Valida" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row" style="margin-left: 10px;">
<div class="col-sm-1" style="text-align:right">
<label>Proveedor:</label>
</div>
<div class="col-md-1">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" DataValueField="CveProveedor" DataTextField="RazonSocial" CssClassDdl="select2me" Width="100%" CssStyle="width: 100%;"></ADS:Dropdownlost>
</div>
<div class="col-sm-1" style="text-align:right">
<label>Fecha Inicio:</label>
</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="width: 100% !important; padding: 0px;display:flex">
<asp:TextBox ID="TxtFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgCalFechaIEjec" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaIEjec" runat="server" TargetControlID="TxtFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalFechaIEjec" runat="server" TargetControlID="TxtFechaInicio" PopupButtonID="ImgCalFechaIEjec" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-sm-1" style="text-align:right">
<label>Fecha Fin:</label>
</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="width: 100% !important; padding: 0px;display:flex">
<asp:TextBox ID="TxtFechaFin" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LinkButton1" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TxtFechaFin" PopupButtonID="ImgCalFechaIEjec" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-sm-1" style="text-align:right">
<label>Sucursal:</label>
</div>
<div class="col-md-1">
<asp:DropDownList runat="server" ID="DdlSucursal" CssClass="select2me" DataTextField="SubProyecto" DataValueField="CveSubProyecto"></asp:DropDownList>
</div>
<div class="col-sm-1" style="text-align:right">
<label>Clasificación:</label>
</div>
<div class="col-md-1">
<asp:DropDownList runat="server" ID="DdlClasificacion" CssClass="select2me" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="100%"/>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="Cantidad,PS,Lote,FechaCaducidad" EmptyDataText="No se encontraron Tipo Gasto" ToolTip="Reporte de productos caducidad " CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; width: 100%" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:n2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="PS" DataField="PS" />
<asp:BoundField HeaderText="Lote" DataField="Lote" />
<asp:BoundField HeaderText="FechaCaducidad" DataField="FechaCaducidad" DataFormatString = "{0:dd/MM/yyyy}" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using Microsoft.Reporting.WebForms;
using System.Text;
public partial class Inventarios_RepProductosPorCaducar : ClsPaginas
{
private DataTable DTDatos
{
get
{
return (DataTable)ViewState["DTDatos"];
}
set
{
ViewState["DTDatos"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaFiltros();
CargarDatos();
}
}
private void CargarDatos()
{
ClsInventarios ObjInventarios = new ClsInventarios();
if (ObjInventarios.GetProductosCaducidad(DdlProveedor.SelectedValue.ToEntero(),TxtFechaInicio.Text.ToDate(),TxtFechaFin.Text.ToDate(), DdlSucursal.SelectedValue.ToEntero(),
DdlClasificacion.SelectedValue.ToEntero()))
{
GvDatos.DataSource = ObjInventarios.DtResultados;
DTDatos = ObjInventarios.DtResultados;
}
ObjInventarios.Dispose();
GvDatos.DataBind();
}
private void CargaFiltros()
{
CargarFechaText();
CargarProveedores();
CargarSucursales();
CargarClasificaciones();
}
private void CargarFechaText()
{
DateTime date = new DateTime(DateTime.Today.Year, DateTime.Today.Month,1);
TxtFechaInicio.Text = date.ToString("dd/MM/yyyy");
TxtFechaFin.Text = date.AddMonths(1).AddDays(-1).ToString("dd/MM/yyyy");
}
private void CargarProveedores()
{
DdlProveedor.setEsWebService(true);
DdlProveedor.Attributes.Add("data-metodo", "getproveedores");
DdlProveedor.SelectedValue = "-1";
DdlProveedor.SelectedText = "Todos";
}
private void CargarSucursales()
{
ClsSubProyectos ObjSubProyectos = new ClsSubProyectos();
if (ObjSubProyectos.GetSubProyectos(UsuarioActual.CveEmpresa))
{
DdlSucursal.DataSource = ObjSubProyectos.DtResultados;
}
ObjSubProyectos.Dispose();
DdlSucursal.DataBind();
DdlSucursal.Items.Insert(0, new ListItem("Todas", "-1"));
}
private void CargarClasificaciones()
{
ClsClasificaciones ObjClasificacion = new ClsClasificaciones();
if (ObjClasificacion.GetClasificaciones(UsuarioActual.CveEmpresa))
{
DdlClasificacion.DataSource = ObjClasificacion.DtResultados;
}
ObjClasificacion.Dispose();
DdlClasificacion.DataBind();
DdlClasificacion.Items.Insert(0,new ListItem("Todas","-1"));
}
protected void BtnConsultar_Click(object sender, EventArgs e)
{
CargarDatos();
UpDatos.Update();
}
protected void LnkImprimirPDF_Click(object sender, EventArgs e)
{
ImprimirReporte("PDF");
}
protected void LnkImprimirExcel_Click(object sender, EventArgs e)
{
ImprimirReporte("Excel");
}
private void ImprimirReporte(string formato)
{
StringBuilder Filtros = new StringBuilder();
Filtros.AppendFormat("<strong>Proveedor: </strong>{0}&nbsp;&nbsp;&nbsp;&nbsp;", DdlProveedor.SelectedText);
Filtros.AppendFormat("<strong>Fecha Inicio: </strong>{0}&nbsp;&nbsp;&nbsp;&nbsp;", TxtFechaInicio.Text);
Filtros.AppendFormat("<strong>Fecha Fin: </strong>{0}&nbsp;&nbsp;&nbsp;&nbsp;", TxtFechaFin.Text);
Filtros.AppendFormat("<strong>Sucursal: </strong>{0}&nbsp;&nbsp;&nbsp;&nbsp;", DdlSucursal.SelectedItem.Text);
Filtros.AppendFormat("<strong>Clasificación: </strong>{0}&nbsp;&nbsp;&nbsp;&nbsp;", DdlClasificacion.SelectedItem.Text);
List<ReportParameter> @params = new List<ReportParameter>();
@params.Add(new ReportParameter("Filtros", Filtros.ToString()));
@params.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
@params.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa));
var logouri = string.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
System.IO.FileInfo Imagen = new System.IO.FileInfo(string.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta));
if (Imagen.Exists)
{
@params.Add(new ReportParameter("LogoPath", logouri));
}
else
{
@params.Add(new ReportParameter("LogoPath", ""));
}
@params.Add(new ReportParameter("FechaCaducidadHeader", (UsuarioActual.Empresa.Funcionalidad(147) == "Fecha Elaboración" ? "Fecha Elaboración" : "Fecha Caducidad")));
ImprimirPDF("Empresas/Grales/Formatos/RepProductosCaducidad.rdlc", DTDatos, @params, "Reporte de Productos por Caducar", formato);
}
}

View File

@@ -1310,6 +1310,7 @@ Partial Class Inventarios_TraspasoAlmacen
GvDatos.Columns(5).Visible = DtTemp.MAX("Serie").ToString <> ""
GvDatos.Columns(6).Visible = DtTemp.MAX("Lote").ToString <> ""
GvDatos.Columns(7).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
GvDatos.Columns(7).Visible = DtTemp.MAX("FechaCaducidad").ToString.ToDate > MinFecha
GvDatos.Columns(8).Visible = DtTemp.MAX("CveSeccionAlmacen").ToString.ToEntero > 0