248 lines
12 KiB
VB.net
248 lines
12 KiB
VB.net
Imports System.Data
|
|
Imports System.IO
|
|
Imports Extensiones
|
|
Imports GemBox.Spreadsheet
|
|
Imports Microsoft.Reporting.WebForms
|
|
|
|
Partial Class Inventarios_KardexAlmacen
|
|
Inherits ClsPaginas
|
|
|
|
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.ToShortDateString
|
|
CargaCombos()
|
|
ddlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
|
|
If IfNull(Request("CvePS"), "-1").ToString.ToEntero > 0 Then CargarKardex(Request("CvePS").ToString.ToEntero)
|
|
ddlProducto2.SelectedValue = If(Request("CvePS") IsNot Nothing, Request("CvePS").ToString, "-1")
|
|
End If
|
|
End Sub
|
|
Private Function isWithFamily() As Boolean
|
|
Return (UsuarioActual.CveEmpresa = 66)
|
|
End Function
|
|
Private Sub CargaCombos()
|
|
|
|
CargaFuncionalidad105()
|
|
CargaPS()
|
|
|
|
ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
|
|
ddlAlmacen.DataBind()
|
|
|
|
Dim ObjInv As New ClsInventarios()
|
|
If ObjInv.GetTiposAlmacenes() Then
|
|
DdlTipoAlmacen.DataSource = ObjInv.DtResultados
|
|
End If
|
|
ObjInv.Dispose()
|
|
DdlTipoAlmacen.DataBind()
|
|
|
|
DdlTipoAlmacen.SelectedValueExist(1)
|
|
|
|
If IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero > 0 Then ddlAlmacen.SelectedValueExist(Request("CveAlmacen").ToString)
|
|
CargaClasificaciones()
|
|
End Sub
|
|
|
|
Private Sub CargaClasificaciones()
|
|
Dim CveClasificacion = If(Request("CveClasificacion") IsNot Nothing, Request("CveClasificacion").ToString, "-1")
|
|
|
|
If isWithFamily() Then
|
|
DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
|
|
Else
|
|
Dim ObjClasificaciones As New ClsClasificaciones
|
|
If UsuarioActual.Empresa.UsaAC Then
|
|
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
|
|
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
|
|
DdlClasificacion.DataBind()
|
|
End If
|
|
Else
|
|
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
|
|
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
|
|
DdlClasificacion.DataBind()
|
|
End If
|
|
End If
|
|
ObjClasificaciones.Dispose()
|
|
End If
|
|
|
|
DdlClasificacion.DataBind()
|
|
DdlClasificacion.SelectedValueExist(CveClasificacion)
|
|
|
|
End Sub
|
|
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
|
|
CargaPS()
|
|
End Sub
|
|
Private Sub CargaPS()
|
|
|
|
If Not ddlProducto2.UsaWebService Then
|
|
'Dim Filtro = If(DdlClasificacion.SelectedValue >= 0, String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue), "")
|
|
ddlProducto2.ddl.Items.Clear()
|
|
ddlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros($"CveTipoPS=2", "PSCodigo")
|
|
ddlProducto2.DataBind()
|
|
ddlProducto2.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
|
|
End If
|
|
End Sub
|
|
Private Sub CargaFuncionalidad105()
|
|
ddlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
|
|
DdlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
|
|
|
|
If ddlProducto2.UsaWebService Then
|
|
ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1")
|
|
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
|
|
ddlProducto2.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.ClientID)
|
|
DdlClasificacion.AutoPostBack = False
|
|
|
|
DdlProveedor.Attributes.Add("data-metodo", "getproveedores")
|
|
Else
|
|
ddlProducto2.ddl.Items.Add(New ListItem("Seleccione", "-1"))
|
|
ddlProducto2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
|
|
|
DdlProveedor.ddl.Items.Add(New ListItem("Seleccione", "-1"))
|
|
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
|
|
DdlProveedor.DataBind()
|
|
End If
|
|
|
|
End Sub
|
|
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto2.selectedindexchange
|
|
|
|
DdlUnidadMedida.Items.Clear()
|
|
DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(ddlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa)
|
|
DdlUnidadMedida.DataBind()
|
|
DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
|
|
End Sub
|
|
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
|
|
Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero
|
|
CargarKardex(CveProducto)
|
|
'If CveProducto > 0 Then
|
|
|
|
'Else
|
|
' Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia)
|
|
'End If
|
|
|
|
End Sub
|
|
Private Sub CargarKardex(CvePS As Integer)
|
|
Dim dt As DataTable = Nothing
|
|
Dim ObjMovimientos As New ClsInventarios
|
|
Dim FechaI As String = "-1" ' If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
|
|
' Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
|
|
Dim FechaF As Date = TxtFechaF.Text.ToDate
|
|
Dim CveAlmacen As Integer = ddlAlmacen.SelectedValue.ToEntero
|
|
Dim CveProveedorCompra As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1)
|
|
|
|
If ObjMovimientos.GetKardexAlmacenHorizontal(CvePS, FechaF, CveAlmacen, DdlUnidadMedida.SelectedValue.ToEntero, CveProveedorCompra, DdlTipoAlmacen.SelectedValue.ToEntero(), DdlIncluyeTransitorios.SelectedValue.ToEntero(), DdlClasificacion.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CondicionExistencias:=DdlExistencia.SelectedValue) Then
|
|
If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then
|
|
dt = ObjMovimientos.DtResultados
|
|
Dim ListaBorrar As New List(Of DataColumn)
|
|
For index = 3 To dt.Columns.Count - 1
|
|
Dim TotColumna As Double = 0
|
|
For Each Dr As DataRow In dt.Rows
|
|
TotColumna += Dr.Item(index).ToString.ToDouble
|
|
Next
|
|
'If Not TotColumna > 0 Then
|
|
' ListaBorrar.Add(dt.Columns(index))
|
|
'End If
|
|
Next
|
|
For Each item As DataColumn In ListaBorrar
|
|
dt.Columns().Remove(item)
|
|
Next
|
|
dt.AcceptChanges()
|
|
GvDatos.DataSource = dt
|
|
Else
|
|
Alert("La búsqueda no contiene resultados.", TipoMensaje.MsgAdvertencia)
|
|
GvDatos.Columns.Clear()
|
|
dt = Nothing
|
|
Exit Sub
|
|
End If
|
|
Else
|
|
ObjMovimientos.Dispose()
|
|
Alert("Ocurrió un error al consultar el Kardex.", TipoMensaje.MsgError)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
GvDatos.DataBind()
|
|
|
|
For index = 4 To GvDatos.Rows(0).Cells.Count - 1
|
|
GvDatos.HeaderRow.Cells(index).Text = GvDatos.HeaderRow.Cells(index).Text.Split("|")(0)
|
|
Next
|
|
End Sub
|
|
|
|
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
'Dim Liga As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={e.Row.DataKey("CveAlmacen")}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}")
|
|
'e.Row.FCHyperLink("HplAlmacen").NavigateUrl = Liga
|
|
|
|
If e.Row.RowIndex = 0 Then
|
|
e.Row.CssClass = "Totales"
|
|
End If
|
|
|
|
e.Row.HorizontalAlign = HorizontalAlign.Right
|
|
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
|
|
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left
|
|
e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Left
|
|
Dim Index As Integer = 0
|
|
|
|
For Each Cells As TableCell In e.Row.Cells
|
|
Dim Celda As String = Cells.Text
|
|
If IsNumeric(Celda) Then
|
|
Dim CveAlmacen2 As Integer = -1
|
|
If Index >= 5 Then
|
|
Dim Array = GvDatos.HeaderRow.Cells(Index).Text.Split("|")
|
|
If Array.Length > 1 Then
|
|
CveAlmacen2 = Array(1)
|
|
End If
|
|
End If
|
|
|
|
If Celda.ToDouble = 0 Then
|
|
Cells.Text = ""
|
|
Else
|
|
Dim ce = DirectCast(Cells, System.Web.UI.WebControls.DataControlFieldCell)
|
|
|
|
If ce.ContainingField.HeaderText = "CP" Then
|
|
Cells.Text = Cells.Text.FormatoNumero(2)
|
|
ElseIf ce.ContainingField.HeaderText = "Valor" Then
|
|
Cells.Text = Cells.Text.FormatoNumero(2)
|
|
'ElseIf ce.ContainingField.HeaderText = "Total" Then
|
|
' Cells.Text = Cells.Text.FormatoNumero(2)
|
|
Else
|
|
Cells.Text = String.Format("{0:#,###.##}", Cells.Text.ToDecimal)
|
|
End If
|
|
End If
|
|
e.Row.Cells(e.Row.Cells.GetCellIndex(Cells)).Width = Unit.Pixel(80)
|
|
'Dim Liga2 As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={CveAlmacen2}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}")
|
|
'Cells.Text = String.Format("<a href=""{1}"">{0}</a>", Celda.FormatoNumero(), Liga2)
|
|
End If
|
|
Index = Index + 1
|
|
Next
|
|
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub GvDatos_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowCreated
|
|
'Escondo CvePS y CveAlmacén (Se generan por autogeneratecolumns por eso se borran por aqui).
|
|
' e.Row.Cells(0).Width = New Unit("200px")
|
|
e.Row.Cells(2).Visible = False
|
|
e.Row.Cells(3).Visible = False
|
|
If e.Row.RowType = DataControlRowType.Header Then
|
|
'e.Row.Cells(6).ToolTip = "Costo"
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
|
|
|
|
Imprimir("Excel")
|
|
End Sub
|
|
Private Sub Imprimir(Optional reporte As String = "PDF")
|
|
' Demo()
|
|
Dim StrFiltro As New StringBuilder
|
|
If DdlProveedor.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat("Proveedor: {0},", DdlProveedor.SelectedText)
|
|
If ddlProducto2.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat(" Producto/Servicio: {0},", ddlProducto2.SelectedText)
|
|
If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin: {0}", TxtFechaF.Text)
|
|
GvDatos.ExportToExcelG("ExistenciasHorizontal.xlsx", "Existencias Almacen", UsuarioActual, StrFiltro.ToString, 100, 200)
|
|
End Sub
|
|
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
|
|
End Sub
|
|
End Class
|