Files
SIG/Inventarios/RepAnomalias.aspx.vb

1100 lines
47 KiB
VB.net

Imports System.Data
Imports System.IO
Imports Extensiones
Imports GemBox.Spreadsheet
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepAnomalias
Inherits ClsPaginas
#Region "Propiedades"
Public Property CveInventarioFisico As Integer
Get
Return CType(ViewState("CveInventarioFisico"), Integer)
End Get
Set(value As Integer)
ViewState("CveInventarioFisico") = value
End Set
End Property
Public Property CveInventarioFisicoPadre As Integer
Get
If ViewState("CveInventarioFisicoPadre") Is Nothing Then
Return -1
Else
Return CType(ViewState("CveInventarioFisicoPadre"), Integer)
End If
End Get
Set(value As Integer)
ViewState("CveInventarioFisicoPadre") = value
End Set
End Property
Public Property CveAlmacen As Integer
Get
Return CType(ViewState("CveAlmacen"), Integer)
End Get
Set(value As Integer)
ViewState("CveAlmacen") = value
End Set
End Property
Public Property CveSubProyecto As Integer
Get
Return CType(ViewState("CveSubProyecto"), Integer)
End Get
Set(value As Integer)
ViewState("CveSubProyecto") = value
End Set
End Property
Public Property EsAvance As Boolean
Get
Return CType(ViewState("EsAvance"), Boolean)
End Get
Set(value As Boolean)
ViewState("EsAvance") = value
End Set
End Property
Public Property aplicacion As Boolean
Get
Return CType(ViewState("aplicacion"), Boolean)
End Get
Set(value As Boolean)
ViewState("aplicacion") = value
End Set
End Property
Public Property CreandoNuevoInventario As Boolean
Get
Return CType(ViewState("CreandoNuevoInventario"), Boolean)
End Get
Set(value As Boolean)
ViewState("CreandoNuevoInventario") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CveInventarioFisico = If(Request("CveInventarioFisico") IsNot Nothing AndAlso Request("CveInventarioFisico").ToEntero() > 0, Request("CveInventarioFisico").ToEntero(), -1).ToString
EsAvance = If(Request("EsAvance") IsNot Nothing, CBool(Request("EsAvance").ToEntero), False)
If CveInventarioFisico > 0 Then
CargaDatos(CveInventarioFisico)
CreandoNuevoInventario = False
End If
End If
End Sub
#Region " CARGA DATOS "
Private Sub CargaDatos(CveInventarioFisico As Integer)
Dim Inventario As New ClsInventarios
Dim dt As DataTable = Nothing
If UsuarioActual.CveEmpresa.Contiene(119, 158) Then
GvF.Columns(2).Visible = True 'clasificación
GvS.Columns(2).Visible = True 'clasificación
GvC.Columns(2).Visible = True 'clasificación
GvF.Columns(3).Visible = True 'proveedor
GvS.Columns(3).Visible = True 'proveedor
GvC.Columns(3).Visible = True 'proveedor
GvF.Columns(17).Visible = UsuarioActual.Procesos(201) 'costo
GvS.Columns(17).Visible = UsuarioActual.Procesos(201) 'costo
GvC.Columns(17).Visible = UsuarioActual.Procesos(201) 'costo
GvGrupos.Columns(1).Visible = True 'clasificación
GvGrupos.Columns(2).Visible = True 'proveedor
GvGrupos.Columns(17).Visible = UsuarioActual.Procesos(201) 'costo
End If
If Inventario.GetInventarioFisico(CveInventarioFisico, UsuarioActual.CveEmpresa, -1, -1, UsuarioActual.CveUsuario) Then
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbEstatus.Text = Inventario.Estatus
lbFechaI.Text = Inventario.FechaI
lbFechaF.Text = Inventario.FechaF
CveSubProyecto = Inventario.CveSubProyectoInventario
aplicacion = Inventario.ConAplicacion
CveInventarioFisicoPadre = Inventario.CveInventarioFisicoPadre
If CveInventarioFisicoPadre > 0 Then
colprevio.Visible = True
HplPrevio.NavigateUrl = String.Format("/Inventarios/RepAnomalias.aspx?CveInventarioFisico={0}", CveInventarioFisicoPadre)
HplPrevio.Text = "Ir"
End If
If Inventario.Estatus = "Finalizado" Then
btnFin.Visible = False
End If
If EsAvance Then
If Inventario.GetInventarioFisicoResultadosAvance(CveInventarioFisico, UsuarioActual.CveEmpresa, DdlGPO.SelectedValue.ToString.ToEntero, DdlVista.SelectedValue.ToEntero) Then
dt = Inventario.DtResultados
End If
Else
If Inventario.GetInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveEmpresa, DdlGPO.SelectedValue.ToString.ToEntero, DdlVista.SelectedValue.ToEntero) Then
dt = Inventario.DtResultados
End If
End If
If Inventario.GetInventarioFisicoDetallesAlmacen(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.Rows
str.AppendFormat("{0},", dr("almacen"))
Next
End If
LblAlmacenes.Text = str.ToString
End If
If Inventario.GetInventarioFisicoDetallesClasificacion(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
If str.ToString.Length > 500 Then
LblClasif.Text = str.ToString.Substring(0, 500)
LblClasif.ToolTip = str.ToString
Else
LblClasif.Text = If(str.ToString <> "", str.ToString, "Todos")
End If
str.Clear()
For Each dr As DataRow In dta.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
If str.ToString.Length > 500 Then
LblClasificacionesExcluidas.Text = str.ToString.Substring(0, 500)
LblClasificacionesExcluidas.ToolTip = str.ToString
Else
LblClasificacionesExcluidas.Text = str.ToString
End If
End If
End If
If Inventario.GetInventarioFisicoDetallesProductosServicios(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
If str.ToString.Length > 500 Then
LblProductos.Text = str.ToString.Substring(0, 500)
LblProductos.ToolTip = str.ToString
Else
LblProductos.Text = If(str.ToString <> "", str.ToString, "Todos")
End If
str.Clear()
For Each dr As DataRow In dta.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
If str.ToString.Length > 500 Then
LblProductosExcluidos.Text = str.ToString.Substring(0, 500)
LblProductosExcluidos.ToolTip = str.ToString
Else
LblProductosExcluidos.Text = str.ToString
End If
End If
End If
If Inventario.GetInventarioFisicoDetallesProveedores(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("RazonSocial"))
Next
If str.ToString.Length > 500 Then
LblProveedores.Text = str.ToString.Substring(0, 500)
LblProveedores.ToolTip = str.ToString
Else
LblProveedores.Text = If(str.ToString <> "", str.ToString, "Todos")
End If
str.Clear()
End If
End If
End If
Inventario.Dispose()
If DdlVista.SelectedValue.ToEntero = 1 Then
DVNormal.Visible = True
DVGrupos.Visible = False
LnkPDF.Visible = True
ImgExcel.Visible = True
ImgExcel2.Visible = True
ImgExcelProdcutosCoinciden.Visible = True
LnkDescarExcelGrupos.Visible = False
'If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then GvS.Columns(8).HeaderText = UsuarioActual.Empresa.Funcionalidad(147)
'If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then GvF.Columns(8).HeaderText = UsuarioActual.Empresa.Funcionalidad(147)
'If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then GvC.Columns(8).HeaderText = UsuarioActual.Empresa.Funcionalidad(147)
GvS.DataSource = dt.FiltraParametros("Diferencia > 0")
Dim DtS As DataTable = dt.FiltraParametros("Diferencia > 0")
BanderaSerieLoteCad(GvS, DtS)
GvS.DataBind()
GvF.DataSource = dt.FiltraParametros("Diferencia < 0")
Dim DtF As DataTable = dt.FiltraParametros("Diferencia < 0")
BanderaSerieLoteCad(GvF, DtF)
GvF.DataBind()
Dim DtC As DataTable = dt.FiltraParametros("Diferencia = 0")
GvC.DataSource = DtC
BanderaSerieLoteCad(GvC, DtC)
GvC.DataBind()
If (GvF.Rows.Count > 0) Then
GvF.UseAccessibleHeader = True
GvF.HeaderRow.TableSection = TableRowSection.TableHeader
divRegistradosFaltan.Visible = True
LtlTotalRegistrosFaltan.Text = GvF.Rows.Count.ToString
End If
If (GvS.Rows.Count > 0) Then
GvS.UseAccessibleHeader = True
GvS.HeaderRow.TableSection = TableRowSection.TableHeader
divRegistradosSobran.Visible = True
LtlTotalRegistrosSobran.Text = GvS.Rows.Count.ToString
End If
If (GvC.Rows.Count > 0) Then
GvC.UseAccessibleHeader = True
GvC.HeaderRow.TableSection = TableRowSection.TableHeader
divRegistradosCoinciden.Visible = True
LtlCoincidentes.Text = GvC.Rows.Count.ToString
End If
PSIguales()
UPAnomalias.Update()
UpdateGvS.Update()
UPDatos.Update()
Else
DVNormal.Visible = False
DVGrupos.Visible = True
If DdlGPO.SelectedValue.ToEntero = 2 Then
GvGrupos.Columns(5).Visible = False
GvGrupos.Columns(6).Visible = False
GvGrupos.Columns(7).Visible = False
GvGrupos.Columns(8).Visible = False
Else
GvGrupos.Columns(5).Visible = True
GvGrupos.Columns(6).Visible = True
GvGrupos.Columns(7).Visible = True
GvGrupos.Columns(8).Visible = True
End If
If DdlGPO.SelectedValue.ToEntero = 2 Then
LtlGrupos1.Visible = False
LtlGrupos2.Visible = False
LtlGrupos3.Visible = False
LblGrupos1.Visible = False
LblGrupos2.Visible = False
LblGrupos3.Visible = False
Else
LtlGrupos1.Visible = True
LtlGrupos2.Visible = True
LtlGrupos3.Visible = True
LblGrupos1.Visible = True
LblGrupos2.Visible = True
LblGrupos3.Visible = True
End If
UpGeneral.Update()
LnkPDF.Visible = False
ImgExcel.Visible = False
ImgExcel2.Visible = False
ImgExcelProdcutosCoinciden.Visible = False
LnkDescarExcelGrupos.Visible = True
If dt IsNot Nothing Then
GvGrupos.DataSource = dt.FiltraParametros("CvePS > 0")
LtlGrupos1.Text = dt.FiltraParametros("Orden = 1 and CvePS > 0").Rows.Count.ToString
LtlGrupos2.Text = dt.FiltraParametros("Orden = 2 and CvePS > 0").Rows.Count.ToString
LtlGrupos3.Text = dt.FiltraParametros("Orden = 3 and CvePS > 0").Rows.Count.ToString
End If
GvGrupos.DataBind()
If DdlGPO.SelectedValue.ToEntero = 1 Then
PSIguales()
End If
End If
UpGeneral.Update()
UPAcciones.Update()
End Sub
#End Region
#Region " FINALIZAR "
Protected Sub btnFin_Click(sender As Object, e As EventArgs) Handles btnFin.Click
Dim Inventarios As New ClsInventarios
Inventarios.IniciaTransacSQL()
If Inventarios.AddInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
If Inventarios.UpdateInventarioFisicoEstatus(CveInventarioFisico, 3, UsuarioActual.CveEmpresa) Then
Dim url As String = ("/Inventarios/RepAnomalias.aspx?CveInventarioFisico=" + CveInventarioFisico.ToString)
Alert("Ha finalizado el Inventario Físico. Sera enviado al reporte de anomalías", TipoMensaje.MsgInformacion, " window.location=""" + url + """")
Inventarios.Commit()
Else
Inventarios.RollBack()
End If
Else
Inventarios.RollBack()
End If
Inventarios.Dispose()
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos(CveInventarioFisico)
End Sub
#End Region
Protected Sub GVF_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvF.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Costo") = "-1" Then
e.Row.Cells(8).Text = "0"
End If
If e.Row.Cells(7).Text = MinFecha.ToString Then
e.Row.Cells(7).Text = ""
End If
e.Row.FCLabel("Lblc").Text = e.Row.RowIndex + 1
End If
If e.Row.RowType = DataControlRowType.Header Then
If CreandoNuevoInventario Then
e.Row.FCCheckBox("ChkAllFaltante").Attributes.Add("onclick", "SeleccionarTodosFaltante(this);")
End If
End If
End Sub
Protected Sub GVS_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvS.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Costo") = "-1" Then
e.Row.Cells(8).Text = "0"
End If
If e.Row.Cells(7).Text = MinFecha.ToString Then
e.Row.Cells(7).Text = ""
End If
e.Row.FCLabel("Lblc").Text = e.Row.RowIndex + 1
End If
If e.Row.RowType = DataControlRowType.Header Then
If CreandoNuevoInventario Then
e.Row.FCCheckBox("ChkAllSobrante").Attributes.Add("onclick", "SeleccionarTodosSobrante(this);")
End If
End If
End Sub
#Region " IMPRIMIR "
'Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
' GvF.ExportToExcel("IF_Faltantes_" & Now.ToShortDateString())
'End Sub
'Protected Sub LnkExportaSobrantes_Click(sender As Object, e As EventArgs) Handles LnkExportaSobrantes.Click
' GvS.ExportToExcel("IF_Sobrantes_" & Now.ToShortDateString())
'End Sub
Private Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click
ImprimirbytesPDF(Imprimir, Formato:="PDF")
End Sub
Protected Function Imprimir() As Byte()
Dim retorno As Byte() = Nothing
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepAnomalias.rdlc", UsuarioActual.Empresa.Ruta))
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim params As New List(Of ReportParameter)
Dim lrds As New List(Of ReportDataSource)
Dim Inventario As New ClsInventarios
Dim dtS As DataTable = Nothing
Dim dtF As DataTable = Nothing
If Inventario.GetInventarioFisico(CveInventarioFisico, UsuarioActual.CveEmpresa, -1, -1, UsuarioActual.CveUsuario) Then
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("Titulo", Inventario.InventarioFisico))
params.Add(New ReportParameter("Observaciones", Inventario.Observaciones))
params.Add(New ReportParameter("Almacen", LblAlmacenes.Text))
params.Add(New ReportParameter("Estatus", Inventario.Estatus))
params.Add(New ReportParameter("FechaInicio", Inventario.FechaI))
params.Add(New ReportParameter("FechaFin", Inventario.FechaF))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
If EsAvance Then
If Inventario.GetInventarioFisicoResultadosAvance(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
dtS = Inventario.DtResultados.FiltraParametros("Diferencia <0")
dtF = Inventario.DtResultados.FiltraParametros(" Diferencia > 0")
End If
Else
If Inventario.GetInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
dtS = Inventario.DtResultados.FiltraParametros("Diferencia <0")
dtF = Inventario.DtResultados.FiltraParametros(" Diferencia > 0")
End If
End If
Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = dtS}
lrds.Add(rds)
Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = dtF}
lrds.Add(rds2)
End If
retorno = StreamPDF("Empresas/Grales/Formatos/RepAnomalias.rdlc", lrds, params, "Reporte Anomalías", "PDF", MR:=Nothing)
Return retorno
End Function
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
Dim GvTemp As GridView = GvF
For Each GvRow As GridViewRow In GvTemp.Rows
GvRow.BackColor = Drawing.ColorTranslator.FromHtml("white")
Next
Dim SbFiltros As New StringBuilder()
SbFiltros.AppendFormat("Almacenes: {0}|", LblAlmacenes.Text)
SbFiltros.AppendFormat("Fecha Inicio: {0} Fecha Fin: {1}|", lbFechaI.Text, lbFechaF.Text)
SbFiltros.AppendFormat("Clasificaciones: {0}|", LblClasif.Text)
SbFiltros.AppendFormat("Clasificaciones Excluidas: {0}|", LblClasificacionesExcluidas.Text)
SbFiltros.AppendFormat("Productos: {0}|", LblProductos.Text)
SbFiltros.AppendFormat("Productos Excluidos: {0}|", LblProductosExcluidos.Text)
SbFiltros.AppendFormat("Proveedores: {0}|", LblProveedores.Text)
SbFiltros.AppendFormat("SubProyecto: {0}|", lbSubProyecto.Text)
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
'GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
ExportToExcelGembox2(GvTemp, "Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos que Faltan", DatosFiltros:=SbFiltros.ToString())
End Sub
Private Sub ImgExcel2_Click(sender As Object, e As EventArgs) Handles ImgExcel2.Click
Dim GvTemp As GridView = GvS
For Each GvRow As GridViewRow In GvTemp.Rows
GvRow.BackColor = Drawing.ColorTranslator.FromHtml("white")
Next
Dim SbFiltros As New StringBuilder()
SbFiltros.AppendFormat("Almacenes: {0}|", LblAlmacenes.Text)
SbFiltros.AppendFormat("Fecha Inicio: {0} Fecha Fin: {1}|", lbFechaI.Text, lbFechaF.Text)
SbFiltros.AppendFormat("Clasificaciones: {0}|", LblClasif.Text)
SbFiltros.AppendFormat("Clasificaciones Excluidas: {0}|", LblClasificacionesExcluidas.Text)
SbFiltros.AppendFormat("Productos: {0}|", LblProductos.Text)
SbFiltros.AppendFormat("Productos Excluidos: {0}|", LblProductosExcluidos.Text)
SbFiltros.AppendFormat("Proveedores: {0}|", LblProveedores.Text)
SbFiltros.AppendFormat("SubProyecto: {0}|", lbSubProyecto.Text)
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
'GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
ExportToExcelGembox2(GvTemp, "Reporte de Inventario Fisico - Productos que Sobran " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos que Sobran", DatosFiltros:=SbFiltros.ToString())
End Sub
Private Sub ImgExcelProdcutosCoinciden_Click(sender As Object, e As EventArgs) Handles ImgExcelProdcutosCoinciden.Click
Dim GvTemp As GridView = GvC
For Each GvRow As GridViewRow In GvTemp.Rows
GvRow.BackColor = Drawing.ColorTranslator.FromHtml("white")
Next
Dim SbFiltros As New StringBuilder()
SbFiltros.AppendFormat("Almacenes: {0}|", LblAlmacenes.Text)
SbFiltros.AppendFormat("Fecha Inicio: {0} Fecha Fin: {1}|", lbFechaI.Text, lbFechaF.Text)
SbFiltros.AppendFormat("Clasificaciones: {0}|", LblClasif.Text)
SbFiltros.AppendFormat("Clasificaciones Excluidas: {0}|", LblClasificacionesExcluidas.Text)
SbFiltros.AppendFormat("Productos: {0}|", LblProductos.Text)
SbFiltros.AppendFormat("Productos Excluidos: {0}|", LblProductosExcluidos.Text)
SbFiltros.AppendFormat("Proveedores: {0}|", LblProveedores.Text)
SbFiltros.AppendFormat("SubProyecto: {0}|", lbSubProyecto.Text)
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
ExportToExcelGembox2(GvTemp, "Reporte de Inventario Fisico - Productos Coincidentes " & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico - Productos Coincidentes", DatosFiltros:=SbFiltros.ToString())
End Sub
Private Sub LnkDescarExcelGrupos_Click(sender As Object, e As EventArgs) Handles LnkDescarExcelGrupos.Click
'Dim Filtros As String = "Almacenes:aASDSAF|Clasificaciones:sdfasf|Fecha:12/12/2323"
'GvGrupos.ExportToExcelGembox("Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Inventario:" & lbTitulo.Text, "", DatosFiltros:=Filtros)
Dim SbFiltros As New StringBuilder()
SbFiltros.AppendFormat("Almacenes: {0}|", LblAlmacenes.Text)
SbFiltros.AppendFormat("Fecha Inicio: {0} Fecha Fin: {1}|", lbFechaI.Text, lbFechaF.Text)
SbFiltros.AppendFormat("Clasificaciones: {0}|", LblClasif.Text)
SbFiltros.AppendFormat("Clasificaciones Excluidas: {0}|", LblClasificacionesExcluidas.Text)
SbFiltros.AppendFormat("Productos: {0}|", LblProductos.Text)
SbFiltros.AppendFormat("Productos Excluidos: {0}|", LblProductosExcluidos.Text)
SbFiltros.AppendFormat("Proveedores: {0}|", LblProveedores.Text)
SbFiltros.AppendFormat("SubProyecto: {0}|", lbSubProyecto.Text)
SbFiltros.AppendFormat("Estatus: {0}|", lbEstatus.Text)
Dim SbFiltrosExtra As New StringBuilder()
SbFiltrosExtra.AppendFormat("Almacenes: {0}|", LblAlmacenes.Text)
SbFiltrosExtra.AppendFormat("Fecha Inicio: {0} Fecha Fin: {1}|", lbFechaI.Text, lbFechaF.Text)
SbFiltrosExtra.AppendFormat("Clasificaciones Excluidas: {0}|", LblClasificacionesExcluidas.Text)
SbFiltrosExtra.AppendFormat("Productos Excluidos: {0}|", LblProductosExcluidos.Text)
SbFiltrosExtra.AppendFormat("Proveedores: {0}|", LblProveedores.Text)
SbFiltrosExtra.AppendFormat("SubProyecto: {0}|", lbSubProyecto.Text)
SbFiltrosExtra.AppendFormat("Estatus: {0}|", lbEstatus.Text)
Dim ObjInventarios As New ClsInventarios
Dim DTExtra As New DataTable
If ObjInventarios.GetInventarioFisicoProductosExcluidos(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
DTExtra = ObjInventarios.DtResultados
DTExtra.TableName = "ProductosExcluidos"
End If
ObjInventarios.Dispose()
'ExportToExcelGembox
ExportToExcelGembox2(GvGrupos, "Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico", DatosFiltros:=SbFiltros.ToString(), DTExtra:=DTExtra, DatosFiltrosExtra:=SbFiltrosExtra.ToString)
'ExportarExcelGembox(GvGrupos, "Reporte de Inventario Fisico" & Now.ToShortDateString, UsuarioActual, "Reporte de Inventario Fisico", DatosFiltros:=SbFiltros.ToString(), DTExtra:=DTExtra)
End Sub
Public Sub ExportToExcelGembox2(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing, Optional DatosFiltrosExtra As String = "")
Dim sw1 As New StringWriter()
Dim htw1 As New HtmlTextWriter(sw1)
GridView.RenderControl(htw1)
Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault
Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString()))
htmlStream1.Position = 0
Dim sr1 As New StreamReader(htmlStream1)
Dim myStr1 = sr1.ReadToEnd()
sr1.Dispose()
htmlStream1.Dispose()
sw1.Dispose()
Dim HtmlCompleto As String = myStr1
HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "")
Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto))
GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet)
Dim excel As GemBox.Spreadsheet.ExcelFile
excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options)
If Usuario IsNot Nothing Then
Dim TotalRowHeader As Integer = 6
Dim TotalRowFooter As Integer = 2
Dim worksheet = excel.Worksheets(0)
worksheet.Rows.InsertEmpty(0, TotalRowHeader)
Dim celdasConTexto = worksheet.GetUsedCellRange(True)
celdasConTexto.Style.Font.Name = "Calibri Light"
Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
RangoNombreEmpresa.Merged = True
RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
RangoNombreEmpresa.Style.Font.Size = 18 * 20
RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
RangoTitulo.Merged = True
RangoTitulo.Value = Titulo
RangoTitulo.Style.Font.Size = 20 * 20
RangoTitulo.Style.Font.Name = "Calibri Light"
RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
If DatoTituloExtra.Length > 0 Then
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
RangoDatoTituloExtra.Merged = True
RangoDatoTituloExtra.Value = DatoTituloExtra
RangoDatoTituloExtra.Style.Font.Size = 20 * 20
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
End If
If DatosFiltros.Length > 0 Then
Dim Arreglo As String() = DatosFiltros.Split("|"c)
worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
For Each TextoFiltro As String In Arreglo
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
RangoDatoTituloExtra.Merged = True
RangoDatoTituloExtra.Value = TextoFiltro
RangoDatoTituloExtra.Style.Font.Size = 12 * 20
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
TotalRowHeader += 1
Next
End If
' TotalRowHeader += 2
For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20
worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
If i > 0 Then
Try
worksheet.Columns(i).AutoFit(1)
Catch ex As Exception
End Try
End If
Next
Dim IndexEndTable As Integer = GridView.Rows.Count + TotalRowHeader + TotalRowFooter
worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió"
worksheet.Rows(IndexEndTable + 1).Cells(0).Value = Usuario.Nombre
worksheet.Rows(IndexEndTable).Cells(2).Value = "Fecha Impresión"
worksheet.Rows(IndexEndTable + 1).Cells(2).Value = DateTime.Now.ToString("dd/MM/yyyy")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
If Imagen.Exists Then
Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
Using sr As New StreamReader(Ruta)
Dim ms As New MemoryStream()
sr.BaseStream.CopyTo(ms)
worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
End Using
End If
For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
If I > 0 Then
If 1 = 1 Then
worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
Else
worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
End If
Try
worksheet.Columns(I).AutoFit(1)
Catch ex As Exception
End Try
End If
Next
If DTExtra IsNot Nothing Then
Dim NombreTabla As String = ""
If DTExtra.TableName IsNot Nothing Then
NombreTabla = DTExtra.TableName
End If
If NombreTabla.Trim = "" Then
NombreTabla = "hoja2"
End If
'excel.Worksheets.Add(NombreTabla)
Dim workbookDTExtra = New ExcelFile
Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla)
worksheetDTExtra.InsertDataTable(DTExtra,
New InsertDataTableOptions() With
{
.ColumnHeaders = True,
.StartRow = 0
})
Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns()
For i As Integer = 0 To columnCount - 1
worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1))
worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be"))
worksheetDTExtra.Cells(0, i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
Next
' CLONA EL ENCABEZADO
TotalRowHeader = 6
TotalRowFooter = 2
worksheet = worksheetDTExtra
worksheet.Rows.InsertEmpty(0, TotalRowHeader)
celdasConTexto = worksheet.GetUsedCellRange(True)
celdasConTexto.Style.Font.Name = "Calibri Light"
RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
RangoNombreEmpresa.Merged = True
RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
RangoNombreEmpresa.Style.Font.Size = 18 * 20
RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
RangoTitulo.Merged = True
RangoTitulo.Value = Titulo
RangoTitulo.Style.Font.Size = 20 * 20
RangoTitulo.Style.Font.Name = "Calibri Light"
RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
If DatoTituloExtra.Length > 0 Then
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
RangoDatoTituloExtra.Merged = True
RangoDatoTituloExtra.Value = DatoTituloExtra
RangoDatoTituloExtra.Style.Font.Size = 20 * 20
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
End If
If DatosFiltrosExtra.Length > 0 Then
Dim Arreglo As String() = DatosFiltrosExtra.Split("|"c)
worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
For Each TextoFiltro As String In Arreglo
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
RangoDatoTituloExtra.Merged = True
RangoDatoTituloExtra.Value = TextoFiltro
RangoDatoTituloExtra.Style.Font.Size = 12 * 20
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
TotalRowHeader += 1
Next
End If
Imagen = New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
If Imagen.Exists Then
Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
Using sr As New StreamReader(Ruta)
Dim ms As New MemoryStream()
sr.BaseStream.CopyTo(ms)
worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
End Using
End If
excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra)
excel.Worksheets(0).Name = Titulo
End If
End If
excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
End Sub
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
#End Region
Private Sub BanderaSerieLoteCad(Gv As GridView, resultado As DataTable)
If resultado IsNot Nothing Then
Gv.Columns(6).Visible = resultado.MAX("CveSeccionAlmacen").ToEntero > 0
Gv.Columns(7).Visible = resultado.MAX("Serie") <> ""
Gv.Columns(8).Visible = resultado.MAX("Lote") <> ""
Gv.Columns(9).Visible = resultado.MAX("FechaCaducidad").ToDate > MinFecha
End If
End Sub
Private Sub LnkCrear_Click(sender As Object, e As EventArgs) Handles LnkCrear.Click
If GvF.Rows.Count > 0 Then
GvF.Columns(0).Visible = True
LnkGuardar.Visible = True
LnkCrear.Visible = False
CreandoNuevoInventario = True
End If
If GvS.Rows.Count > 0 Then
GvS.Columns(0).Visible = True
LnkGuardar.Visible = True
LnkCrear.Visible = False
CreandoNuevoInventario = True
End If
CargaDatos(CveInventarioFisico)
'UPAnomalias.Update()
'UpdateGvS.Update()
'UPAcciones.Update()
End Sub
Private Sub LnkGuardar_Click(sender As Object, e As EventArgs) Handles LnkGuardar.Click
ChkRelacionarInventario.Checked = True
UpFecha.Update()
RegistraScript("$('#ModalGuardar').modal('show')")
End Sub
Private Sub BtnCrear_Click(sender As Object, e As EventArgs) Handles BtnCrear.Click
Dim ErrorClasif As Boolean = False
Dim ObjInventario As New ClsInventarios
Dim CveInventarioFisicoNew As Integer
Dim DtAlmacen, DtClasificacion, DtClasificacionExcluida, DtProveedor, DtUsuario As DataTable
DtAlmacen = Nothing
DtClasificacion = Nothing
DtClasificacionExcluida = Nothing
DtProveedor = Nothing
DtUsuario = Nothing
Dim CveInventarioFisicoPadre As Integer = If(ChkRelacionarInventario.Checked, CveInventarioFisico, -1)
ObjInventario.IniciaTransacSQL()
If ObjInventario.AddInventarioFisico(UsuarioActual.CveEmpresa, TxtTitulo.Text, lbObservaciones.Text, 0, CveSubProyecto, aplicacion, CveInventarioFisicoPadre:=CveInventarioFisicoPadre) Then
CveInventarioFisicoNew = ObjInventario.CveInventarioFisico
If ObjInventario.GetInventarioFisicoDetallesAlmacen(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
DtAlmacen = ObjInventario.DtResultados
End If
If ObjInventario.GetInventarioFisicoDetallesClasificacion(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
DtClasificacion = ObjInventario.DtResultados.FiltraParametros("Incluye = 1")
DtClasificacionExcluida = ObjInventario.DtResultados.FiltraParametros("Incluye = 0")
End If
If ObjInventario.GetInventarioFisicoDetallesProveedores(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
DtProveedor = ObjInventario.DtResultados.FiltraParametros("Incluye = 1")
End If
If ObjInventario.GetInventarioFisicoDetallesUsuarios(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
DtUsuario = ObjInventario.DtResultados.FiltraParametros("Incluye = 1")
End If
For Each Gvr As DataRow In DtUsuario.Rows
If Not ObjInventario.AddInventarioFisicoUsuarios(CveInventarioFisicoNew, Gvr("CveUsuario").ToString.ToEntero, Convert.ToBoolean(Gvr("Incluye").ToString), Convert.ToBoolean(Gvr("Cerrado").ToString), Convert.ToBoolean(Gvr("Bloqueado").ToString)) Then
ErrorClasif = True
Exit For
End If
Next
For Each Gvr As DataRow In DtAlmacen.Rows
If Not ObjInventario.AddInventarioFisicoAlmacenes(CveInventarioFisicoNew, Gvr("CveAlmacen").ToString.ToEntero) Then
ErrorClasif = True
Exit For
End If
Next
If ErrorClasif = False Then
For Each Gvr As DataRow In DtClasificacion.Rows
If Not ObjInventario.AddInventarioFisicoClasificaciones(CveInventarioFisicoNew, Gvr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario, True) Then
ErrorClasif = True
Exit For
End If
Next
For Each Gvr As DataRow In DtClasificacionExcluida.Rows
If Not ObjInventario.AddInventarioFisicoClasificaciones(CveInventarioFisicoNew, Gvr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario, False) Then
ErrorClasif = True
Exit For
End If
Next
End If
If ErrorClasif = False Then
For Each Gvr As GridViewRow In GvF.Rows
If Gvr.FCCheckBox("ChkPSFaltante").Checked Then
If Not ObjInventario.AddInventarioFisicoProductosServicios(CveInventarioFisicoNew, Gvr.DataKey("CvePS").ToString.ToEntero, True) Then
ErrorClasif = True
Exit For
End If
End If
Next
For Each Gvr As GridViewRow In GvS.Rows
If Gvr.FCCheckBox("ChkPSSobrante").Checked Then
If Not ObjInventario.AddInventarioFisicoProductosServicios(CveInventarioFisicoNew, Gvr.DataKey("CvePS").ToString.ToEntero, True) Then
ErrorClasif = True
Exit For
End If
End If
Next
End If
If ErrorClasif = False Then
For Each Gvr As DataRow In DtProveedor.Rows
If Not ObjInventario.AddInventarioFisicoProveedores(CveInventarioFisicoNew, Gvr("CveProveedor").ToString.ToEntero, True) Then
ErrorClasif = True
Exit For
End If
Next
End If
End If
If ErrorClasif = False And CveInventarioFisicoNew > 0 Then
ObjInventario.Commit()
Alert("Agregado Correctamente.", TipoMensaje.MsgInformacion)
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalGuardar"))
GvF.Columns(0).Visible = False
GvS.Columns(0).Visible = False
LnkGuardar.Visible = False
LnkCrear.Visible = True
CreandoNuevoInventario = False
CargaDatos(CveInventarioFisico)
Else
ObjInventario.RollBack()
End If
ObjInventario.Dispose()
End Sub
Private Sub PSIguales()
Dim contadorF As Integer = 0
Dim contadorS As Integer = 0
If DdlVista.SelectedValue.ToEntero = 1 Then
For Each dtF As GridViewRow In GvF.Rows
contadorS = 0
For Each dtS As GridViewRow In GvS.Rows
If dtS.DataKey("CvePS") = dtF.DataKey("CvePS") Then
GvS.Rows(contadorS).BackColor = Drawing.Color.FromArgb(202, 52, 52)
GvF.Rows(contadorF).BackColor = Drawing.Color.FromArgb(202, 52, 52)
End If
contadorS += 1
Next
contadorF += 1
Next
Else
For Each dtF As GridViewRow In GvGrupos.Rows
contadorS = 0
If dtF.DataKey("Orden").ToEntero = 1 And dtF.DataKey("CvePS").ToEntero > 0 Then
For Each dtS As GridViewRow In GvGrupos.Rows
If dtS.DataKey("Orden").ToEntero = 2 Then
If dtS.DataKey("CvePS") = dtF.DataKey("CvePS") Then
GvGrupos.Rows(contadorS).BackColor = Drawing.Color.FromArgb(202, 52, 52)
GvGrupos.Rows(contadorF).BackColor = Drawing.Color.FromArgb(202, 52, 52)
End If
End If
contadorS += 1
Next
End If
contadorF += 1
Next
End If
End Sub
Private Sub GvGrupos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvGrupos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DataKey("CvePS").ToString.ToEntero = 0 Then
e.Row.CssClass = "SubTotales"
e.Row.Cells(1).Text = e.Row.DataKey("Grupo").ToString
End If
End If
End Sub
End Class