diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 34e86a88a..cf04e3794 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -2258,6 +2258,25 @@ Public Class ClsInventarios Return Retorno End Function + Public Function GetExistenciasPSVenta(CveVenta As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Inv_ExistenciasVentaGET") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las existencias de los almacenes.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + Public Function GetExistenciasProductosLike(PS As String, CveClasificacion As Integer, CveSubProyecto As Integer, Estatus As Integer, AplicaParaVenta As Integer, CveEmpresa As Integer, Optional CveMarca As Integer = -1, Optional MostrarTodosAlmacenes As Boolean = False, Optional CveAlmacen As Integer = -1) As Boolean Dim Retorno As Boolean = False diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index bd9fc4df3..57ee0c71f 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -411,6 +411,9 @@ +
  • + Verificar Existencias +
  • @@ -1982,7 +1985,7 @@ Producto - + @@ -9281,6 +9284,29 @@ + + diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 28d7aa598..c167ad3ec 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5461,6 +5461,10 @@ Partial Class Ventas UPCondicionesPago.Update() End If + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DbRowVenta("TipoDocto").ToString().Contiene("Cot", "Rem") Then + LbVerificarExistencia.Visible = True + End If + 'ESCONDE ACCIONES LnkRemisiones.Visible = False LnkPedido2SinFacturar.Visible = False @@ -40627,5 +40631,65 @@ Partial Class Ventas End If End Sub + + Private Sub LbVerificarExistencia_Click(sender As Object, e As EventArgs) Handles LbVerificarExistencia.Click + 'RegistraScript(String.Format("AbrirVentana('/Inventarios/PopUpExistenciasAlmacenDT.aspx?CveOrdenCompra={0}',800,547,'N');", CveOrdenCompra)) + VerificarExistencias() + End Sub + Private Sub VerificarExistencias() + Dim objInv As New ClsInventarios + Dim tmpDTPS As DataTable = Nothing + If objInv.GetExistenciasPSVenta(CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + tmpDTPS = objInv.DtResultados.Copy() + End If + objInv.Dispose() + + If tmpDTPS IsNot Nothing Then + + ' limpio los almacenes donde no tiene ningun producto existencia + For i As Integer = tmpDTPS.Columns.Count - 1 To 1 Step -1 + If Not tmpDTPS.Columns(i).ColumnName.Contiene("Producto") AndAlso tmpDTPS.SUM(String.Format("[{0}]", tmpDTPS.Columns(i).ColumnName)) = 0 Then + tmpDTPS.Columns.RemoveAt(i) + End If + Next + + Dim DtExistencias = tmpDTPS.Clone() + + For i As Integer = 0 To DtExistencias.Columns.Count - 1 + If DtExistencias.Columns(i).DataType <> GetType(String) Then DtExistencias.Columns(i).DataType = GetType(String) + Next + + For Each dr As DataRow In tmpDTPS.Rows + DtExistencias.ImportRow(dr) + Next + + 'FORMATEAR NUEVO DT + For j = 0 To DtExistencias.Rows.Count - 1 + For i As Integer = DtExistencias.Columns.Count - 1 To 1 Step -1 + If Not DtExistencias.Columns(i).ColumnName.Contiene("Producto") Then + If DtExistencias.Rows(j)(i).ToString().ToEntero() = 0 Then + DtExistencias.Rows(j)(i) = "-" + Else + DtExistencias.Rows(j)(i) = DtExistencias.Rows(j)(i).ToString().Replace(".0000", "") + End If + End If + Next + Next + + GvExist.DataSource = DtExistencias + GvExist.DataBind() + + 'GvExist.Columns(0).ItemStyle.Width = New Unit(200, UnitType.Pixel) + 'ORDENA HACIA LA DERECHA LAS CANTIDAD - OJO!! NO SE USO GV.COLUMNS.COUNT PORQUE LAS COLUMNAS GENERADAS EN BEHIND NO LAS RECONOCE + For index As Integer = 1 To DtExistencias.Columns.Count - 1 + For Each gvr As GridViewRow In GvExist.Rows + gvr.Cells(index).HorizontalAlign = HorizontalAlign.Right + Next + Next + End If + + RegistraScript("$('#DivModalExistenciaTotal').modal('show');") + UPExist.Update() + End Sub End Class