Reporte Existencia Lote

This commit is contained in:
Hector Javier Rodriguez Flores
2021-08-16 13:05:30 -07:00
parent 6edb4368a0
commit 3ca9d53df3
4 changed files with 707 additions and 0 deletions

View File

@@ -0,0 +1,164 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepExistenciaLote.aspx.vb" Inherits="Inventarios_RepExistenciaLote" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead{
background-color:#95A5A6;
color:white;
}
.table-scrollable{
margin-top:0px!important;
margin-bottom:0px!important;
}
.dataTables_scroll{
padding-top:0px;
}
.Totales a{
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Reporte de Existencia Lote
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<%--Tabla con los campos para filtrar--%>
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" /></td>
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1 truncate">Almacén</div>
<div class="col-md-2">
<asp:ListBox ID="DdlAlmacen" SelectionMode="Multiple" CssClass="form-control ddlFiltros input-sm select2me Widthall" DataTextField="Almacen" DataValueField="CveAlmacen" Style="width: 100%;" runat="server"></asp:ListBox>
</div>
<div class="col-md-1 truncate">Fecha Inicio</div>
<div class="col-md-2 col-sm-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVInicio" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicio''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVInicio" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicio''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpConsultar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="CVEIncio1" runat="server" HighlightCssClass="vco" TargetControlID="RFVInicio" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="CVEIncio2" runat="server" HighlightCssClass="vco" TargetControlID="CVInicio" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1 truncate">Fecha Fin</div>
<div class="col-md-2 col-sm-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFin" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Fin''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFin" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Fin''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpConsultar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="CVEFin1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFin" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="CVEFin2" runat="server" HighlightCssClass="vco" TargetControlID="CVFin" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body magindate" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<div class="col-md-1 truncate">Proveedor</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlProveedor" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveProveedor" DataTextField="RazonSocial"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Clasificación</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlClasificacion_SelectedIndexChanged" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveClasificacion" DataTextField="Clasificacion"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="width:50px !important" >PS</div>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
<%--<asp:DropDownList ID="DdlPS" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="PS" DataValueField="CvePS"></asp:DropDownList>--%>
</div>
<div runat="Server" id="DivMarca">
<div class="col-md-1 truncate" style="width:50px !important" >Marca</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMarca" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveMarca" DataTextField="Marca"></asp:DropDownList>
</div>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate">Personal</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlPersonal" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CvePersonal" DataTextField="CodigoNombreCompleto"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Tipo Almacén:</div>
<div class="col-md-2">
<asp:ListBox ID="DdlTipoAlmacen" SelectionMode="Multiple" CssClass="form-control ddlFiltros input-sm select2me Widthall" DataTextField="TipoAlmacen" DataValueField="CveTipoAlmacen" Style="width: 100%;" runat="server"></asp:ListBox>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row" >
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<br />
<div class="row">
<div class="col-md-12" >
<asp:UpdatePanel ID="UPPMov" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvM" Width="100%" runat="server" data-sort="false" GridLines="None" CssClass="table table-smallpadding table-striped table-hover Widthall ScrollAD" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:BoundField DataField="Codigo" HeaderText="Codigo" />
<asp:BoundField DataField="PS" HeaderText="PS" />
<asp:BoundField DataField="Cantidad" HeaderText="Existencia" />
<asp:BoundField DataField="Lote" HeaderText="Lote" />
<asp:BoundField DataField="FechaCaducidad" HeaderText="Fecha Caducidad" DataFormatString = "{0:dd/MM/yyyy}" ItemStyle-Width="100px" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,514 @@
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports System.IO
Partial Class Inventarios_RepExistenciaLote
Inherits ClsPaginas
#Region "propiedades"
'Private ReadOnly Property reporteador As Microsoft.Reporting.WebForms.ReportViewer
' Get
' Return CType(Master.FindControl("ReportMaster"), Microsoft.Reporting.WebForms.ReportViewer)
' End Get
'End Property
Private Property dt As DataTable
Get
Try
dt = DirectCast(ViewState("dt"), DataTable)
Return DirectCast(ViewState("dt"), DataTable)
Catch ex As Exception
Return Nothing
End Try
End Get
Set(value As DataTable)
ViewState("dt") = value
End Set
End Property
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtReporte"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtReporte") = value
End Set
End Property
Public Property FechaInicial As String
Get
Return ViewState("FechaInicial").ToString
End Get
Set(value As String)
ViewState("FechaInicial") = value
End Set
End Property
Public Property FechaFinal As String
Get
Return ViewState("FechaFinal").ToString
End Get
Set(value As String)
ViewState("FechaFinal") = value
End Set
End Property
Private ReadOnly Property PermiteClasificacion2 As Boolean
Get
Return (UsuarioActual.CveEmpresa.Contiene(72, 80))
End Get
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString
TxtFechaF.Text = Now
FechaInicial = "-1"
FechaFinal = "-1"
CargaCombos()
GvM.DataBind()
If Not IsNothing(Request("CveAlmacen")) Then
DdlAlmacen.SelectedValue = Request("CveAlmacen").ToString()
TxtFechaI.Text = "01/01/2000"
If Not IsNothing(Request("FechaCorte")) Then
TxtFechaF.Text = Request("FechaCorte")
End If
If Not IsNothing(Request("FechaInicio")) And IsDate(Request("FechaInicio")) Then
TxtFechaI.Text = Request("FechaInicio")
End If
btConsultar_Click(Nothing, Nothing)
End If
End If
End Sub
Private Sub CargaCombos()
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
If Not IsNothing(Request("CveAlmacen")) Then
If DdlAlmacen.Items.FindByValue(Request("CveAlmacen").ToString) Is Nothing Then
Dim CveAlmacen = Request("CveAlmacen").ToString
Dim Almacen As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {Request("CveAlmacen").ToString}")
DdlAlmacen.Items.Insert(0, New ListItem(Almacen, CveAlmacen))
End If
Else
DdlAlmacen.SelectedValuesIfExistM("-1")
End If
'Llenar dropdownlist de proveedores
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
'CARGA CLASIFICACIONES
Dim ObjClasificaciones As New ClsClasificaciones
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
End If
ObjClasificaciones.Dispose()
DdlClasificacion.DataBind()
DdlClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
'Carga Productos
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = ""
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
'Llenar dropdownlist de personal
DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa)
DdlPersonal.DataBind()
DdlPersonal.Items.Insert(0, New ListItem("Todos", "-1"))
CargarMarcas()
DdlTipoAlmacen.DataSource = GlobalDTTipoAlmacen(1)
DdlTipoAlmacen.DataBind()
DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim Reporte As New ClsInventarios
Dim rpt As DataTable = Nothing
Dim CveMarca As Integer = -1
'Dim fechaI As String = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
'Dim fechaF As String = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim TipoAlmacen As String = If(DdlTipoAlmacen.GetSelectedValuesM = "", "-1", DdlTipoAlmacen.GetSelectedValuesM)
Dim Almacenes As String = If(DdlAlmacen.GetSelectedValuesM = "", "-1", DdlAlmacen.GetSelectedValuesM)
If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
CveMarca = DdlMarca.SelectedValue.ToEntero
End If
If Reporte.RepExistenciasLote(UsuarioActual.CveEmpresa, FechaInicial.ToDate, FechaFinal.ToDate, DdlProveedor.SelectedValue.ToEntero, Almacenes, DdlPS.SelectedValue.ToEntero,
DdlClasificacion.SelectedValue.ToEntero, CveMarca, TipoAlmacen) Then
If Reporte.DtResultados.Rows.Count > 0 Then
GvM.DataSource = Reporte.DtResultados
GvM.DataBind()
ViewState("dtReporte") = Reporte.DtResultados
dt = Reporte.DtResultados
End If
End If
Reporte.Dispose()
UPPMov.Update()
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = ""
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
End Sub
Protected Sub GvM_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowCreated
'If e.Row.RowType = DataControlRowType.Header Then
' 'GENERO ENCABEZADO
' Dim FC As New SortedList
' FC.Add(0, "Código,1,2,Titulos")
' If ChkCodigoAlterno.Checked Then
' FC.Add(1, "Código Alterno,1,2,Titulos")
' End If
' FC.Add(10, "Descripción,1,2,Titulos")
' FC.Add(20, "CANTIDAD,4,1,Titulos")
' FC.Add(30, "IMPORTE,4,1,Titulos")
' Dim FC2 As New SortedList
' FC2.Add(0, "Exist. inicial,1,1,Titulos")
' FC2.Add(1, "Entradas,1,1S,Titulos")
' FC2.Add(2, "Salidas,1,1,Titulos")
' FC2.Add(3, "Exist. final,1,1,Titulos")
' FC2.Add(4, "Saldo inicial,1,1,Titulos")
' FC2.Add(5, "Entradas,1,1,Titulos")
' FC2.Add(6, "Salidas,1,1,Titulos")
' FC2.Add(7, "Saldo final,1,1,Titulos")
' GetMultiRowHeader(DirectCast(sender, GridView), e, FC2, "Titulosfijos")
' GetMultiRowHeader(DirectCast(sender, GridView), e, FC, "Titulosfijos")
''End If
End Sub
Protected Sub gvMovimientos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
End If
End Sub
#Region "MARCA"
Protected Sub CargarMarcas()
If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
DivMarca.Visible = True
Dim ObjMarcas As New ClsProductosServicios
ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa)
DdlMarca.DataSource = ObjMarcas.DtResultados
ObjMarcas.Dispose()
DdlMarca.DataBind()
End If
DdlMarca.Items.Insert(0, New ListItem(" Todas ", "-1"))
End Sub
#End Region
#Region " EXPORTAR - PDF - EXCEL "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
' GvM.ExportToExcel("Reporte de Entradas y Salidas")
ImprimiReporte("EXCEL")
End Sub
Private Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click
ImprimiReporte()
End Sub
Protected Sub ImprimiReporte(Optional Formato As String = "PDF", Optional FormatoInventario As Boolean = False)
Dim RutaPDF As String
Dim NombreArchivoDescarga = "ReporteExistenciaLotes"
RutaPDF = "Empresas/Grales/Formatos/RepExistenciaLotes.rdlc"
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("LogoPath", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
ImprimirPDF(RutaPDF, dt, params, NombreArchivoDescarga, Formato)
End Sub
#End Region
Protected Sub Lnkcompuxlsinventarios_Click(sender As Object, e As EventArgs)
Dim continuar = True
Try
Dim wb As New ClosedXML.Excel.XLWorkbook()
Dim libro As ClosedXML.Excel.IXLWorksheet = wb.AddWorksheet("Reporte de inventarios")
Dim Fila As Integer = 0
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 7)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242))
libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 7)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Cell(Fila + 3, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166))
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 7)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 7)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Column(1).Width = 34.43
libro.Cell(Fila + 1, 1).Value = "TIPO DO REGISTRO"
libro.Cell(Fila + 2, 1).Value = "RECORD Type"
libro.Cell(Fila + 3, 1).Value = "OBLIGATORIO"
libro.Column(2).Width = 24
libro.Cell(Fila + 1, 2).Value = "Codigo del Partner"
libro.Cell(Fila + 2, 2).Value = "Reporter_id "
libro.Cell(Fila + 3, 2).Value = "OBLIGATORIO"
libro.Column(3).Width = 28.71
libro.Cell(Fila + 1, 3).Value = "Nombre de la Empresa"
libro.Cell(Fila + 2, 3).Value = "Reporter Company Name"
libro.Cell(Fila + 3, 3).Value = "OBLIGATORIO"
libro.Column(4).Width = 23.57
libro.Cell(Fila + 1, 4).Value = "CÓDIGO DEL PAÍS"
libro.Cell(Fila + 2, 4).Value = "COUNTRY CD"
libro.Cell(Fila + 3, 4).Value = "OBLIGATORIO"
libro.Column(5).Width = 17.57
libro.Cell(Fila + 1, 5).Value = "Ubicación"
libro.Cell(Fila + 2, 5).Value = "LOCATION"
libro.Cell(Fila + 3, 5).Value = "OPCIONAL"
libro.Column(6).Width = 35.29
libro.Cell(Fila + 1, 6).Value = "FECHA DEL INVENTARIO"
libro.Cell(Fila + 2, 6).Value = "Period End Date"
libro.Cell(Fila + 3, 6).Value = "OBLIGATORIO"
libro.Column(7).Width = 23.43
libro.Cell(Fila + 1, 7).Value = "REENVIO"
libro.Cell(Fila + 2, 7).Value = "RESUBMIT"
libro.Cell(Fila + 3, 7).Value = "OBLIGATORIO"
libro.Column(8).Width = 29.29
libro.Column(9).Width = 25
libro.Column(10).Width = 18.14
libro.Column(11).Width = 32.71
libro.Column(12).Width = 13.57
libro.Column(13).Width = 13
libro.Column(14).Width = 32
libro.Column(15).Width = 12.71
libro.Column(16).Width = 13
Fila = Fila + 3
libro.Cell(Fila + 1, 1).Value = "IH"
libro.Cell(Fila + 1, 2).Value = "10245068"
libro.Cell(Fila + 1, 3).Value = "COMPUPROVEEDORES SA DE CV"
libro.Cell(Fila + 1, 4).Value = "MX"
libro.Cell(Fila + 1, 5).Value = ""
libro.Cell(Fila + 1, 6).Value = String.Format("{0:yyyyMMdd}", TxtFechaF.Text.ToDate())
libro.Cell(Fila + 1, 7).Value = "N"
Fila = Fila + 1
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 16)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242))
libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 16)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Range(libro.Cell(Fila + 3, 3), libro.Cell(Fila + 3, 15)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166))
libro.Cell(Fila + 3, 7).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Cell(Fila + 3, 10).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 16)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 16)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Cell(Fila + 1, 1).Value = "TIPO DO REGISTRO"
libro.Cell(Fila + 1, 2).Value = "NÚMERO DEL PRODUCTO"
libro.Cell(Fila + 1, 3).Value = "OPCION DEL PRODUCTO"
libro.Cell(Fila + 1, 4).Value = "UPC"
libro.Cell(Fila + 1, 5).Value = "CODIGO SKU"
libro.Cell(Fila + 1, 6).Value = "ORDENES DE COMPRAS EN ABIERTO "
libro.Cell(Fila + 1, 7).Value = "INVENTARIO DISPONIBLE"
libro.Cell(Fila + 1, 8).Value = "DEVOLUCIONES"
libro.Cell(Fila + 1, 9).Value = "INVENTARIO RESERVADO"
libro.Cell(Fila + 1, 10).Value = "INVENTARIO TOTAL"
libro.Cell(Fila + 1, 11).Value = "EN TRANSITO"
libro.Cell(Fila + 1, 12).Value = "VALOR UNITARIO DEL PRODUCTO HP"
libro.Cell(Fila + 1, 13).Value = "VALOR TOTAL DEL INVENTARIO"
libro.Cell(Fila + 1, 14).Value = "NOMBRE DE LA TIENDA"
libro.Cell(Fila + 1, 15).Value = "Codigo de la tienda"
libro.Cell(Fila + 1, 16).Value = "MONEDA"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "RECORD TYPE "
libro.Cell(Fila + 1, 2).Value = "Partner Reported Product ID"
libro.Cell(Fila + 1, 3).Value = "PROD_OPTION"
libro.Cell(Fila + 1, 4).Value = "UPC"
libro.Cell(Fila + 1, 5).Value = "Reseller product number "
libro.Cell(Fila + 1, 6).Value = "Quantity on Order"
libro.Cell(Fila + 1, 7).Value = "Quantity on Hand"
libro.Cell(Fila + 1, 8).Value = "Quantity in stock allocated to be returned to supplier"
libro.Cell(Fila + 1, 9).Value = "Reserved Inventory"
libro.Cell(Fila + 1, 10).Value = "Quantity avail. for sale"
libro.Cell(Fila + 1, 11).Value = "Quantity in float (In transit between partner warehouses)"
libro.Cell(Fila + 1, 12).Value = "INVENTORY UNIT VALUE"
libro.Cell(Fila + 1, 13).Value = "INVENTORY VALUATION"
libro.Cell(Fila + 1, 14).Value = "Sell from name (For retailers, ""Store Name / Site Name"")"
libro.Cell(Fila + 1, 15).Value = "Sell From Location ID"
libro.Cell(Fila + 1, 16).Value = "CURRENCY"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 2).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 3).Value = "OPCIONAL"
libro.Cell(Fila + 1, 4).Value = "OPCIONAL"
libro.Cell(Fila + 1, 5).Value = "OPCIONAL"
libro.Cell(Fila + 1, 6).Value = "OPCIONAL"
libro.Cell(Fila + 1, 7).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 8).Value = "OPCIONAL"
libro.Cell(Fila + 1, 9).Value = "OPCIONAL"
libro.Cell(Fila + 1, 10).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 11).Value = "OPCIONAL"
libro.Cell(Fila + 1, 12).Value = "OPCIONAL"
libro.Cell(Fila + 1, 13).Value = "OPCIONAL"
libro.Cell(Fila + 1, 14).Value = "OPCIONAL"
libro.Cell(Fila + 1, 15).Value = "OPCIONAL"
libro.Cell(Fila + 1, 16).Value = "OBLIGATORIO"
If Not IsNothing(dt) AndAlso dt.Rows.Count > 0 Then
For Each row As DataRow In dt.Select("CvePS>0 AND SaldoFCant >0")
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "ID" ' "TIPO DO REGISTRO"
libro.Cell(Fila + 1, 2).Value = String.Format("'{0}", row("Codigo")) ' "NÚMERO DEL PRODUCTO"
libro.Cell(Fila + 1, 3).Value = "" ' "OPCION DEL PRODUCTO"
libro.Cell(Fila + 1, 4).Value = "" ' "UPC"
libro.Cell(Fila + 1, 5).Value = "" ' "CODIGO SKU"
libro.Cell(Fila + 1, 6).Value = "" ' "ORDENES DE COMPRAS EN ABIERTO "
libro.Cell(Fila + 1, 7).Value = String.Format("{0}", row("SaldoFCant")) ' "INVENTARIO DISPONIBLE"
'libro.Cell(Fila + 1, 7).Style.NumberFormat.Format = "N2"
libro.Cell(Fila + 1, 8).Value = "" ' "DEVOLUCIONES"
libro.Cell(Fila + 1, 9).Value = "" ' "INVENTARIO RESERVADO"
libro.Cell(Fila + 1, 10).Value = String.Format("{0}", row("SaldoFCant")) ' "INVENTARIO TOTAL"
'libro.Cell(Fila + 1, 10).Style.NumberFormat.Format = "$ #,##0.00"
libro.Cell(Fila + 1, 11).Value = "" ' "EN TRANSITO"
libro.Cell(Fila + 1, 12).Value = "" ' "VALOR UNITARIO DEL PRODUCTO HP"
libro.Cell(Fila + 1, 13).Value = "" ' "VALOR TOTAL DEL INVENTARIO"
libro.Cell(Fila + 1, 14).Value = "" ' "NOMBRE DE LA TIENDA"
libro.Cell(Fila + 1, 15).Value = "" ' "Codigo de la tienda"
libro.Cell(Fila + 1, 16).Value = "MXN" ' "MONEDA"
Next
End If
Fila = Fila + 1
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 4)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242))
libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 4)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 4)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 4)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Cell(Fila + 1, 1).Value = "TIPO DEL REGISTRO"
libro.Cell(Fila + 1, 2).Value = "TOTAL DE REGISTROS"
libro.Cell(Fila + 1, 3).Value = "Suma del Inventario Disponible"
libro.Cell(Fila + 1, 4).Value = "Suma del Inventario Total"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "RECORD TYPE"
libro.Cell(Fila + 1, 2).Value = "COUNT OF RECORDS"
libro.Cell(Fila + 1, 3).Value = "SUM OF “"On Hand”""
libro.Cell(Fila + 1, 4).Value = "SUM OF “"Total Inventory"”"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 2).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 3).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 4).Value = "OBLIGATORIO"
Dim Codigo As Double = 0
Dim SaldoFCant As Double = 0
Dim SaldoFImp As Double = 0
If Not IsNothing(dt) AndAlso dt.Rows.Count > 0 Then
Codigo = dt.COUNT("Codigo", "CvePS>0")
SaldoFCant = dt.SUM("SaldoFCant", "CvePS>0")
SaldoFImp = dt.SUM("SaldoFImp", "CvePS>0")
End If
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "IT"
libro.Cell(Fila + 1, 2).Value = String.Format("{0}", Codigo)
'libro.Cell(Fila + 1, 2).Style.NumberFormat.Format = "N2"
libro.Cell(Fila + 1, 3).Value = String.Format("{0}", SaldoFCant)
'libro.Cell(Fila + 1, 3).Style.NumberFormat.Format = "N2"
libro.Cell(Fila + 1, 4).Value = String.Format("{0}", SaldoFCant)
'libro.Cell(Fila + 1, 4).Style.NumberFormat.Format = "$ #,##0.00"
''Guarda streem y descarga
Dim fs As Stream = New MemoryStream()
wb.SaveAs(fs)
fs.Position = 0
Dim memoryStream As New MemoryStream()
Using input As Stream = fs
input.CopyTo(memoryStream)
End Using
memoryStream.Position = 0
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.xlsx", "Reporte de Inventarios HP"))
Response.BinaryWrite(memoryStream.ToArray())
Response.End()
''endGuarda streem y descarga
Catch
continuar = False
End Try
If Not continuar Then
Alert("Ocurrió un error al gener el excel", TipoMensaje.MsgAdvertencia)
End If
End Sub
End Class