Exemplo n.º 1
0
        private void AgregarArticulo()
        {
            var articulo = _articuloServicio.ObtenerProductoPorCodigo(txtCodigos.Text, _listaId);

            if (articulo != null)
            {
                if (articulo.PrecioCosto != null)
                {
                    txtDescripcion.Text = articulo.Descripcion;
                    txtPrecio.Text      = articulo.Precio.ToString();


                    var _articulo = new DetalleComprobanteDto
                    {
                        ArticuloId     = articulo.Id,
                        CodigoProducto = articulo.CodigoBarra,
                        Descripcion    = articulo.Descripcion,
                        Cantidad       = nudCantidad.Value,
                        PrecioUnitario = (decimal)articulo.PrecioCosto,
                    };


                    if (!comprobante.Items.Any(x =>
                                               x.Descripcion == _articulo.Descripcion &&
                                               x.CodigoProducto == _articulo.CodigoProducto))
                    {
                        comprobante.Items.Add(_articulo);
                    }
                    else
                    {
                        var articuloASumar = comprobante.Items
                                             .FirstOrDefault(x => x.ArticuloId == _articulo.ArticuloId);
                        articuloASumar.Cantidad += _articulo.Cantidad;
                    }


                    ActualizarGrilla();
                }
                else
                {
                    MessageBox.Show($"No se pudo agregar el producto: '{articulo.Descripcion}' ya que carece de precio en este salon",
                                    "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else
            {
                var fBuscar = new _10111_BuscarArticulo(_listaId);
                fBuscar.ShowDialog();
                if (fBuscar.RealizoOperacion)
                {
                    txtDescripcion.Text = fBuscar.Descripcion;
                    txtCodigos.Text     = fBuscar.Codigo;
                    txtPrecio.Text      = fBuscar.Precio;
                }
            }
        }
Exemplo n.º 2
0
        private void AgregarArticulo()
        {
            var articulo = _articuloServicio.ObtenerProductoPorCodigo(txtCodigos.Text, (long)Entidad.ListaPrecioDeliveryId);

            if (articulo != null)
            {
                if (articulo.Precio != null)
                {
                    if (!articulo.EstaDiscontinuado && !articulo.EstaEliminado)
                    {
                        if (!articulo.ActivarLimiteVenta || articulo.LimiteVenta >= nudCantidad.Value)
                        {
                            if (articulo.Stock >= nudCantidad.Value || articulo.PermiteStockNegativo || !articulo.DescuentaStock)
                            {
                                if (articulo.StockMinimo >= articulo.Stock && articulo.DescuentaStock)
                                {
                                    MessageBox.Show($"Debe recargar el Stock de {articulo.Descripcion}!",
                                                    $"Recarga de Stock de {articulo.Descripcion}", MessageBoxButtons.OK,
                                                    MessageBoxIcon.Exclamation);
                                }
                                else
                                {
                                    txtDescripcion.Text = articulo.Descripcion;
                                    txtPrecio.Text      = articulo.Precio.ToString();


                                    var _articulo = new DetalleComprobanteDto
                                    {
                                        ArticuloId     = articulo.Id,
                                        CodigoProducto = articulo.CodigoBarra,
                                        Descripcion    = articulo.Descripcion,
                                        Cantidad       = nudCantidad.Value,
                                        PrecioUnitario = (decimal)articulo.Precio
                                    };


                                    if (!comprobante.Items.Any(x =>
                                                               x.Descripcion == _articulo.Descripcion &&
                                                               x.CodigoProducto == _articulo.CodigoProducto))
                                    {
                                        comprobante.Items.Add(_articulo);
                                    }
                                    else
                                    {
                                        var articuloASumar = comprobante.Items
                                                             .FirstOrDefault(x => x.CodigoProducto == _articulo.CodigoProducto);
                                        if (articuloASumar.Cantidad + _articulo.Cantidad <= articulo.Stock)
                                        {
                                            articuloASumar.Cantidad += _articulo.Cantidad;
                                        }
                                        else
                                        {
                                            MessageBox.Show($"Su stock es de {articulo.Stock - articuloASumar.Cantidad}, no puede agregar {nudCantidad.Value} productos");
                                        }
                                    }


                                    ActualizarGrilla();
                                }
                            }
                            else
                            {
                                MessageBox.Show(@"No se pudo realizar la operacion por falta de Stock", "Atencion",
                                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                        }
                        else
                        {
                            MessageBox.Show(@"No se pudo realizar la operacion por limite de venta", "Atencion",
                                            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
                    else
                    {
                        MessageBox.Show(
                            @"No se pudo realizar la operacion el articulo esta eliminado/descontinuado",
                            "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
                else
                {
                    MessageBox.Show($"No se pudo agregar el producto: '{articulo.Descripcion}' ya que carece de precio en este salon",
                                    "Atencion", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else
            {
                var fBuscar = new _10111_BuscarArticulo((long)Entidad.ListaPrecioDeliveryId);
                fBuscar.ShowDialog();
                if (fBuscar.RealizoOperacion)
                {
                    txtDescripcion.Text = fBuscar.Descripcion;
                    txtCodigos.Text     = fBuscar.Codigo;
                    txtPrecio.Text      = fBuscar.Precio;
                }
            }
        }