Commit inicial Ventas Productivo

This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2019-08-14 16:40:54 -07:00
commit c35cf91883
13328 changed files with 3711549 additions and 0 deletions

View File

@@ -0,0 +1,448 @@

Option Explicit On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_InventarioFisicoDetalle
Inherits ClsPaginas
#Region "Propiedades"
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtIFDetalles"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtIFDetalles") = value
End Set
End Property
Private Property CveSubProyecto As Integer
Get
Return ViewState("CveSubProyecto").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveSubProyecto") = value
End Set
End Property
Private Property CveInventarioFisico As Integer
Get
Return ViewState("CveInventarioFisico").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveInventarioFisico") = value
End Set
End Property
Private Property DtDatos As DataTable
Get
Return DirectCast(ViewState("DtVentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentas") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
If Request("CveInventarioFisico") IsNot Nothing AndAlso Request("CveInventarioFisico").ToString.ToEntero > 0 Then
CveInventarioFisico = Request("CveInventarioFisico").ToString.ToEntero
CargaUsuarios()
CargaDatos(CveInventarioFisico, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario)
End If
End If
End Sub
#Region " USUARIOS "
Private Sub CargaUsuarios()
ddlUsuario.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
ddlUsuario.DataBind()
UPPInventario.Update()
ddlUsuario.SelectedValue = UsuarioActual.CveUsuario.ToString
End Sub
Protected Sub ddlUsuario_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ddlUsuario.SelectedIndexChanged
CargaDatos(CveInventarioFisico, UsuarioActual.CveEmpresa, ddlUsuario.SelectedValue.ToString.ToEntero)
Dim EsUsuarioActual As Boolean = False
If ddlUsuario.SelectedValue = UsuarioActual.CveUsuario.ToString Then
EsUsuarioActual = True
End If
GvIFD.Columns(6).Visible = EsUsuarioActual
GvIFD.DataBind()
If (GvIFD.Rows.Count > 0) Then
GvIFD.UseAccessibleHeader = True
GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UPAgregarPro.Update()
UPPInventario.Update()
End Sub
#End Region
#Region " CARGA DATOS "
Private Sub CargaDatos(CveInventarioFisico As Integer, CveEmpresa As Integer, Optional CveUsuario As Integer = -1)
Dim Inventario As New ClsInventarios
If Inventario.GetInventarioFisico(CveInventarioFisico, CveEmpresa, -1, -1) Then
Select Case Inventario.Estatus
Case "Nuevo"
CveSubProyecto = Inventario.CveSubProyectoInventario
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbEstatus.Text = Inventario.Estatus
lbFechaF.Text = Inventario.FechaF
btnFin.Text = "Iniciar"
BtnGuardar.Enabled = False
btnFin.ToolTip = "Inicia el Inventario Físico"
Case "Finalizado"
GvIFD.Columns(6).Visible = False
PAgregar.Visible = False
'BtnGuardar.Visible = False
btnFin.Visible = False
'BtnGuardar.Enabled = False
'PAgregar.Visible = False
CveSubProyecto = Inventario.CveSubProyectoInventario
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbEstatus.Text = Inventario.Estatus
lbFechaI.Text = Inventario.FechaI
lbFechaF.Text = Inventario.FechaF
Case Else ' en proceso
CveSubProyecto = Inventario.CveSubProyectoInventario
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbEstatus.Text = Inventario.Estatus
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbFechaI.Text = Inventario.FechaI
lbFechaF.Text = Inventario.FechaF
BtnGuardar.Enabled = True
btnFin.Text = "Finalizar"
LBAvance.Visible = UsuarioActual.TienePermisoProceso(178) ' si tiene permiso de ver el avance, se activa
End Select
GvIFD.Visible = False
DivBuscador.Visible = False
If Inventario.GetInventarioFisicoDetallesAlmacen(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dt As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each dr As DataRow In dt.Rows
str.AppendFormat("{0},", dr("almacen"))
Next
End If
LblAlmacenes.Text = str.ToString
End If
If Inventario.GetInventarioFisicoDetallesClasificacion(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dt As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each dr As DataRow In dt.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
LblClasif.Text = str.ToString
str.Clear()
For Each dr As DataRow In dt.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
LblClasificacionesExcluidas.Text = str.ToString
End If
End If
If Inventario.GetInventarioFisicoDetallesProductosServicios(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dt As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each dr As DataRow In dt.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
LblProductos.Text = str.ToString
str.Clear()
For Each dr As DataRow In dt.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
LblProductosExcluidos.Text = str.ToString
End If
End If
If Inventario.GetInventarioFisicoDetalle(CveInventarioFisico, CveUsuario) Then
If Inventario.DtResultados.Rows.Count > 0 Then
GvIFDUltimoRegistrado.DataSource = Inventario.DtResultados.AsEnumerable.OrderByDescending(Function(k) k!CveInventarioFisicoDetalle).Take(1).CopyToDataTable
Else
GvIFDUltimoRegistrado.DataSource = Nothing
End If
DtDatos = Inventario.DtResultados
End If
End If
Inventario.Dispose()
GvIFDUltimoRegistrado.DataBind()
'If (GvIFD.Rows.Count > 0) Then
' GvIFD.UseAccessibleHeader = True
' GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGV();")
'End If
UPAgregarPro.Update()
UPPInventario.Update()
End Sub
Protected Sub BtnVerRegistrados_Click(sender As Object, e As EventArgs)
GvIFD.Visible = True
DivBuscador.Visible = True
Dim Inventario As New ClsInventarios
If Inventario.GetInventarioFisicoDetalle(CveInventarioFisico, ddlUsuario.SelectedValue.ToString.ToEntero) Then
If Inventario.DtResultados.Rows.Count > 0 Then
GvIFD.DataSource = Inventario.DtResultados '.AsEnumerable.OrderByDescending(Function(k) k!CveInventarioFisicoDetalle).Take(500).CopyToDataTable
Else
GvIFD.DataSource = Nothing
End If
DtDatos = Inventario.DtResultados
End If
Inventario.Dispose()
GvIFD.DataBind()
If (GvIFD.Rows.Count > 0) Then
GvIFD.UseAccessibleHeader = True
GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UPPInventario.Update()
End Sub
#End Region
#Region " AGREGAR "
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
Dim Valido As Boolean = False
Dim CveProducto As Integer = -1
Dim CveUnidadMedida As Integer
Dim Codigo As String = If(TxtCodigo.Text.Trim <> "", TxtCodigo.Text.Trim, "-1").Replace("'", "''") ' scanner cambian los guiones por apostrofes
Dim CodigoBarras As String = If(TxtCodigoBarras.Text.Trim <> "", TxtCodigoBarras.Text.Trim, "-1").Replace("'", "''") ' scanner cambian los guiones por apostrofes
Dim SerieLote As String = TxtCodigoSerie.Text.Trim
Dim CveMetodoInv As Integer = -1
Dim Cantidad = TxtCantidadProducto.Text.ToDouble
Dim dr As DataRow
dr = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"CodigoBarras = '{CodigoBarras}' OR Codigo = '{Codigo}' ")
If dr IsNot Nothing Then
CveMetodoInv = dr("Inv_CveMetodoInventario").ToString.ToEntero
CveProducto = dr("CvePS").ToString.ToEntero
CveUnidadMedida = dr("CveUnidadMedida").ToString.ToEntero
If CveMetodoInv = 5 And SerieLote = "" Then
RFVSerie.Enabled = True
RFVSerie.Visible = True
RFVSerie.SetFocusOnError = True
RFVSerie.Validate()
RFVSerie.ValidationGroup = " "
Exit Sub
End If
RFVSerie.ValidationGroup = "GrpIngresar"
RFVSerie.Enabled = False
'VALIDA QUE LA SERIE NO SEA IGUAL AL CODIGO O CODIGOBARRAS
If SerieLote <> "" And (SerieLote.ToUpper = dr("Codigo").ToString.ToUpper Or SerieLote.ToUpper = dr("CodigoBarras").ToString.ToUpper) Then
Alert($"La serie indicada <b>{SerieLote}</b> coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim Inventarios As New ClsInventarios
Dim Consulto As Boolean = False
If Inventarios.AddInventarioFisicoDetalle(CveInventarioFisico, CveProducto, CveUnidadMedida, If(CveMetodoInv = 5, 1, Cantidad), SerieLote, UsuarioActual.CveUsuario) Then
If GvIFDUltimoRegistrado.Rows.Count > 0 Then
GvIFDUltimoRegistrado.Rows(0).Cells(0).Text = Now
GvIFDUltimoRegistrado.Rows(0).Cells(1).Text = dr("CodigoBarras").ToString
GvIFDUltimoRegistrado.Rows(0).Cells(2).Text = dr("Codigo").ToString
GvIFDUltimoRegistrado.Rows(0).Cells(3).Text = dr("PS").ToString
GvIFDUltimoRegistrado.Rows(0).Cells(4).Text = TxtCodigoSerie.Text.Trim
GvIFDUltimoRegistrado.Rows(0).Cells(5).Text = TxtCantidadProducto.Text.Trim
Else
Consulto = True
If Inventarios.GetInventarioFisicoDetalle(CveInventarioFisico, UsuarioActual.CveUsuario) Then
If Inventarios.DtResultados.Rows.Count > 0 Then
GvIFDUltimoRegistrado.DataSource = Inventarios.DtResultados.AsEnumerable.OrderByDescending(Function(k) k!CveInventarioFisicoDetalle).Take(1).CopyToDataTable
Else
GvIFDUltimoRegistrado.DataSource = Nothing
End If
Else
Alert("Ocurrió un error al consultar el inventario fisico. Por favor vuelva a intentar.", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
End If
TxtCodigoBarras.Text = ""
TxtCodigoSerie.Text = ""
TxtCodigo.Text = ""
TxtCantidadProducto.Text = "1"
RegistraScript("playsonidito('beep-07.wav')")
Else
TxtCodigoSerie.Text = ""
End If
TxtCodigoBarras.Focus()
Inventarios.Dispose()
If Consulto Then GvIFDUltimoRegistrado.DataBind()
Else
TxtCodigoBarras.Text = ""
TxtCodigoSerie.Text = ""
TxtCodigo.Text = ""
Alert("No se encontró el producto, favor de escribirlo correctamente.", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
GvIFD.Visible = False
DivBuscador.Visible = False
UPPInventario.Update()
End Sub
#End Region
#Region " ELIMINAR "
Protected Sub gvInventarioFisicoDetalle_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvIFD.RowDeleting
If ddlUsuario.SelectedValue = UsuarioActual.CveUsuario.ToString Then
Dim Inventarios As New ClsInventarios
Dim Retorno As Boolean = Inventarios.RemoveInventarioFisicoDetalles(GvIFD.DataKeys(e.RowIndex).Value.ToString.ToEntero())
If Retorno Then
If Inventarios.GetInventarioFisicoDetalle(CveInventarioFisico, ddlUsuario.SelectedValue.ToString.ToEntero) Then
GvIFD.DataSource = Inventarios.DtResultados
RegistraScript("playsonidito('beep-07.wav')")
End If
End If
Inventarios.Dispose()
GvIFD.DataBind()
If (GvIFD.Rows.Count > 0) Then
GvIFD.UseAccessibleHeader = True
GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UPPInventario.Update()
UPAgregarPro.Update()
Else
Alert("No se puede eliminar un producto registrado por otro usuario.", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
End Sub
#End Region
#Region " FINALIZAR "
Protected Sub btnFin_Click(sender As Object, e As EventArgs) Handles btnFin.Click
If btnFin.Text = "Iniciar" Then
Dim Inventarios As New ClsInventarios
Inventarios.UpdateInventarioFisicoEstatus(CveInventarioFisico, 1, UsuarioActual.CveEmpresa)
Inventarios.Dispose()
CargaDatos(CveInventarioFisico, UsuarioActual.CveEmpresa)
BtnGuardar.Enabled = True
Response.Redirect("~/Inventarios/InventarioFisicoDetalle.aspx?CveInventarioFisico=" + CveInventarioFisico.ToString)
Else
If GvIFDUltimoRegistrado.Rows.Count > 0 Then
BtnGuardar.Enabled = False
Dim Inventarios As New ClsInventarios
Inventarios.IniciaTransacSQL()
If Inventarios.AddInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveUsuario) 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()
RegistraScript("playsonidito('beep-07.wav')")
Else
Inventarios.RollBack()
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
Else
Inventarios.RollBack()
End If
Inventarios.Dispose()
Else
Alert("Aún no se ha ingresado ningún registro.", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
End If
UPAgregarPro.Update()
UPPInventario.Update()
End Sub
#End Region
#Region " VER AVANCE "
Protected Sub LBAvance_Click(sender As Object, e As EventArgs)
Response.Redirect($"~/Inventarios/RepAnomalias.aspx?CveInventarioFisico={CveInventarioFisico}&EsAvance=1")
End Sub
#End Region
#Region "I M P R I M I R"
Private Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click
Impimir(Formato:="PDF")
End Sub
Private Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click
Impimir(Formato:="EXCEL")
End Sub
Protected Sub Impimir(Optional Formato As String = "PDF")
If DtDatos IsNot Nothing Then
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepAnomalias.rdlc", UsuarioActual.Empresa.Ruta))
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("Titulo", lbTitulo.Text))
params.Add(New ReportParameter("Sucursal", lbSubProyecto.Text))
params.Add(New ReportParameter("Clasificaciones", LblClasif.Text))
params.Add(New ReportParameter("Productos", LblProductos.Text))
params.Add(New ReportParameter("Observaciones", lbObservaciones.Text))
params.Add(New ReportParameter("Almacen", LblAlmacenes.Text))
params.Add(New ReportParameter("Estatus", lbEstatus.Text))
params.Add(New ReportParameter("FechaInicio", lbFechaI.Text))
params.Add(New ReportParameter("FechaFin", lbFechaF.Text))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepInventarioFisicoDetalle.rdlc", DtDatos, params, String.Format("Reporte Inventario Físico-{0}", Now.ToDateTime.ToShortDateString), Formato:=Formato)
Else
Alert("No se encontraron resultado", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class