Ejemplo n.º 1
0
        public IActionResult AddCompra(long orden, [FromBody] Compras compra)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    foreach (ProductosCompra item in compra.ProductosCompra)
                    {
                        ProductoAlmacen        productoAlmacen    = PosUoW.ProductoAlmacenRepository.GetSingleByCriteria(x => x.idProducto.Equals(item.idProducto) && x.idAlmacen.Equals(compra.idAlmacen));
                        List <ProductoAlmacen> existenciaProducto = PosUoW.ProductoAlmacenRepository.GetAllByCriteria(x => x.idProducto.Equals(item.idProducto), x => x.idProductoAlmacen).ToList();
                        float     existencia = existenciaProducto.Sum(x => x.Existencia);
                        Productos producto   = PosUoW.ProductosRepository.GetById(a => a.idProducto.Equals(item.idProducto));
                        float     dif        = existencia < 0 ? existencia : 0;
                        item.Restante = item.Cantidad + dif;
                        item.Costo    = item.Monto / item.Cantidad;
                        if (productoAlmacen != null)
                        {
                            productoAlmacen.Existencia += item.Cantidad;
                            PosUoW.ProductoAlmacenRepository.Update(productoAlmacen);
                        }
                        else
                        {
                            productoAlmacen = new ProductoAlmacen
                            {
                                Existencia = item.Cantidad,
                                idAlmacen  = compra.idAlmacen,
                                idProducto = producto.idProducto
                            };
                            PosUoW.ProductoAlmacenRepository.Add(productoAlmacen);
                        }

                        if (item.Costo != producto.PrecioCosto)
                        {
                            producto.PrecioCosto = item.Costo;
                            PosUoW.ProductosRepository.Update(producto);
                        }
                    }
                    Ordenes ordenResult = PosUoW.OrdenesRepository.GetById(x => x.idOrden.Equals(orden));
                    PosUoW.ComprasRepository.Add(compra);
                    PosUoW.Save();
                    if (ordenResult != null)
                    {
                        ordenResult.idCompra = compra.FolioCompra;
                        ordenResult.Estatus  = 'S';
                        PosUoW.OrdenesRepository.Update(ordenResult);
                    }
                    PosUoW.Save();
                    return(Ok(compra));
                }
                else
                {
                    return(BadRequest("Los datos de la venta son incorrectos"));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
Ejemplo n.º 2
0
 private void toolStripButton2_Click(object sender, EventArgs e)
 {
     if (dataGridStock.CurrentRow != null)
     {
         ProductoAlmacen productoSeleccionado = (ProductoAlmacen)dataGridStock.CurrentRow.DataBoundItem;
         BindingList <ProductoAlmacen> lista  = (BindingList <ProductoAlmacen>)dataGridStock.DataSource;
         lista.Remove(productoSeleccionado);
         dataGridStock.Refresh();
         dataGridStock.Update();
     }
 }
Ejemplo n.º 3
0
        public BindingList <ProductoAlmacen> obtenerProductosAlmacen(int idAlmacen, int idProd, string nombreBuscar, int limInferior, int limSuperior)
        {
            BindingList <ProductoAlmacen> resultado = new BindingList <ProductoAlmacen>();

            try
            {
                MySqlConnection con = new MySqlConnection(this.cadenaConexion);
                con.Open();
                MySqlCommand comando = new MySqlCommand();
                comando.CommandText = "alm_buscar_productosAlmacenId";
                comando.CommandType = System.Data.CommandType.StoredProcedure;
                comando.Connection  = con;
                comando.Parameters.Add("_idProd", MySqlDbType.Int32).Value         = idProd;
                comando.Parameters.Add("_id_almacen", MySqlDbType.Int32).Value     = idAlmacen;
                comando.Parameters.Add("_nombreBuscar", MySqlDbType.VarChar).Value = nombreBuscar;
                comando.Parameters.Add("_limInferior", MySqlDbType.Int32).Value    = limInferior;
                comando.Parameters.Add("_limSuperior", MySqlDbType.Int32).Value    = limSuperior;

                MySqlDataReader reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    int idProducto = reader.GetInt32("id_producto");  //
                    //string codigo = reader.GetString("codigo_producto");//
                    string  nombre      = reader.GetString("nombre"); //
                    string  descripcion = reader.GetString("descripcion");
                    int     stock       = reader.GetInt32("cantidadAlmacenada");
                    decimal precio      = reader.GetDecimal("precio_venta");

                    Producto producto = new Producto();
                    producto.Id     = idProducto;
                    producto.Nombre = nombre;
                    //producto.CodigoProducto = codigo;
                    producto.Descripcion = descripcion;
                    producto.Precio      = (double)precio;

                    ProductoAlmacen productoAlmacen = new ProductoAlmacen();
                    productoAlmacen.ProductoAlmacenado = producto;
                    productoAlmacen.CantidadAlmacenada = stock;

                    resultado.Add(productoAlmacen);
                }

                con.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error en obtenerProductosAlmacenId");
                Console.WriteLine(e.Message);
            }

            return(resultado);
        }
Ejemplo n.º 4
0
        public PantallaAnadirProducto(int idAlmacen)
        {
            InitializeComponent();
            logicaProductos      = new AlmacenProductosBL();
            this.idAlmacen       = idAlmacen;
            this.prodAlmReciente = null;
            dataGridProductosRegistrables.AutoGenerateColumns = false;
            dataGridProductosRegistrables.DataSource          = logicaProductos.obtenerProductosRegistrables(this.idAlmacen);

            txtNumResultados.Text    = ((BindingList <Producto>)dataGridProductosRegistrables.DataSource).Count.ToString() + " Resultado(s)";
            txtNumResultados.Visible = true;

            logicaProductos.actualizarAlmacenPedidoProd();
        }
Ejemplo n.º 5
0
        private int buscarProductoAlmacen(ProductoAlmacen productoAlmacen)
        {
            BindingList <ProductoAlmacen> lista = (BindingList <ProductoAlmacen>)dataGridStock.DataSource;
            int index = 0;

            foreach (ProductoAlmacen prodAlm in lista)
            {
                if (prodAlm.Id == productoAlmacen.Id)
                {
                    return(index);
                }
                index++;
            }
            return(-1);
        }
Ejemplo n.º 6
0
        private void btnInsertarProducto_MouseClick(object sender, MouseEventArgs e)
        {
            Producto productoSeleccionado;

            if (dataGridProductosRegistrables.CurrentRow != null)
            {
                productoSeleccionado = (Producto)dataGridProductosRegistrables.CurrentRow.DataBoundItem;
            }
            else
            {
                MessageBox.Show("Debe seleccionar un producto de la lista", "Error");
                return;
            }

            DialogResult res = MessageBox.Show("Desea confirmar el registro del producto : \n" + productoSeleccionado.Id +
                                               "   " + productoSeleccionado.CodigoProducto + " " + productoSeleccionado.Nombre + " con stock inicial " +
                                               numericUpDown1.Value.ToString() + "?", "Confirmacion", MessageBoxButtons.YesNo);


            if (res == DialogResult.Yes)
            {
                if (logicaProductos.registrarProductoAlmacen(this.idAlmacen, productoSeleccionado.Id, (int)numericUpDown1.Value))
                {
                    BindingList <Producto> productos = (BindingList <Producto>)dataGridProductosRegistrables.DataSource;

                    prodAlmReciente = new ProductoAlmacen();
                    prodAlmReciente.ProductoAlmacenado = productoSeleccionado;
                    prodAlmReciente.CantidadAlmacenada = (int)Math.Round(numericUpDown1.Value);

                    productos.Remove(productoSeleccionado);

                    dataGridProductosRegistrables.DataSource = productos;
                    dataGridProductosRegistrables.Update();
                    dataGridProductosRegistrables.Refresh();

                    numericUpDown1.Value = 0;
                    MessageBox.Show("El producto se insertó correctamente", "Transaccion Exitosa");
                }
                else
                {
                    MessageBox.Show("El producto no se pudo insertar correctamente", "Error");
                }
            }
        }
Ejemplo n.º 7
0
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            PantallaSeleccionarProducto newPant = new PantallaSeleccionarProducto(idAlmacen);

            newPant.ShowDialog();
            ProductoAlmacen productoSeleccionado = newPant.ProductoSeleccionado;

            newPant.Dispose();

            detallesPedido = (BindingList <ProductoAlmacen>)dataGridStock.DataSource;

            if (productoSeleccionado != null && buscarProductoAlmacen(productoSeleccionado) == -1)
            {
                detallesPedido.Add(productoSeleccionado);
            }

            dataGridStock.Update();
            dataGridStock.Refresh();
        }
Ejemplo n.º 8
0
 public IActionResult CancelaVenta([FromBody] CancelacionDto cancelacion)
 {
     try
     {
         Ventas venta = PosUoW.VentasRepository.GetVentaByFolio(cancelacion.folioVenta);
         if (venta != null)
         {
             venta.Estatus          = 'C';
             venta.idUsuarioCancela = cancelacion.idUsuario;
             foreach (VentaLote lote in venta.Lotes)
             {
                 ProductosCompra compra = PosUoW.ProductosCompraRepository.GetById(a => a.idCompraProducto.Equals(lote.idProductoCompra));
                 if (compra != null)
                 {
                     compra.Restante += lote.cantidad;
                 }
                 lote.estatus = false;
             }
             foreach (ProductosVenta producto in venta.Productos)
             {
                 producto.Estatus = false;
                 Productos       currentProduct     = PosUoW.ProductosRepository.GetById(x => x.idProducto.Equals(producto.idProducto));
                 Almacenes       principalWarehouse = PosUoW.AlmacenesRepository.GetSingleByCriteria(x => x.Principal);
                 ProductoAlmacen almacen            = PosUoW.ProductoAlmacenRepository.GetSingleByCriteria(x => x.idProducto.Equals(currentProduct.idProducto) && x.idAlmacen.Equals(principalWarehouse.idAlmacen));
                 almacen.Existencia += producto.Cantidad;
             }
             PosUoW.Save();
             return(Ok(venta));
         }
         else
         {
             return(NotFound());
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, ex));
     }
 }
Ejemplo n.º 9
0
        public int AgregarProducto(ProductoCLS objProductoCLS)
        {
            int CodResult       = 0;
            var productoUnidad  = objProductoCLS.CadenaUnd.Split('|');
            var productoAlmacen = objProductoCLS.CadenaAlm.Split('|');

            try
            {
                using (var db = new BDVentasEntities())
                {
                    //INI PRODUCTO
                    Producto objProducto = new Producto();
                    objProducto.CodigoProducto      = objProductoCLS.CodigoProducto;
                    objProducto.NombreProducto      = objProductoCLS.NombreProducto;
                    objProducto.IdLinea             = objProductoCLS.IdLinea;
                    objProducto.IdMarca             = objProductoCLS.IdMarca;
                    objProducto.IdMoneda            = objProductoCLS.IdMoneda;
                    objProducto.IdImpuesto          = objProductoCLS.IdImpuesto;
                    objProducto.IdProveedor         = objProductoCLS.IdProveedor;
                    objProducto.EstadoEliminacion   = false;
                    objProducto.FechaCreacion       = DateTime.Now;
                    objProducto.UsuarioCreacion     = "Admin";
                    objProducto.FechaModificacion   = DateTime.Now;
                    objProducto.UsuarioModificacion = "Admin";
                    objProducto.EstadoProducto      = true;
                    db.Producto.Add(objProducto);
                    db.SaveChanges();

                    var IdProducto = objProducto.IdProducto;
                    //FIN PRODUCTO

                    //INI PRODUCTO UNIDAD
                    for (int i = 0; i < productoUnidad.Length; i++)
                    {
                        var            PrdUnd     = productoUnidad[i].Split(',');
                        ProductoUnidad objProdUnd = new ProductoUnidad();
                        objProdUnd.IdProducto           = IdProducto;
                        objProdUnd.IdUnidad             = int.Parse(PrdUnd[0]);
                        objProdUnd.IsUnidadBase         = bool.Parse(PrdUnd[1]);
                        objProdUnd.IsUnidadVenta        = bool.Parse(PrdUnd[2]);
                        objProdUnd.EstadoProductoUnidad = bool.Parse(PrdUnd[3]);
                        objProdUnd.FechaCreacion        = DateTime.Now;
                        objProdUnd.UsuarioCreacion      = "Admin";
                        objProdUnd.FechaModificacion    = DateTime.Now;
                        objProdUnd.UsuarioModificacion  = "Admin";
                        objProdUnd.EstadoEliminacion    = false;
                        db.ProductoUnidad.Add(objProdUnd);
                        db.SaveChanges();
                    }
                    //FIN PRODUCTO UNIDAD

                    //INI PRODUCTO ALMACÉN
                    List <SucursalCLS> lsSucursal = new List <SucursalCLS>();

                    for (int i = 0; i < productoAlmacen.Length; i++)
                    {
                        var prdPrdAlm = productoAlmacen[i].Split(',');

                        lsSucursal.Add(new SucursalCLS {
                            IdSucursal = int.Parse(prdPrdAlm[1])
                        });

                        ProductoAlmacen objPrdAlm = new ProductoAlmacen();
                        objPrdAlm.IdProducto          = IdProducto;
                        objPrdAlm.IdAlmacen           = int.Parse(prdPrdAlm[0]);
                        objPrdAlm.IsActivo            = bool.Parse(prdPrdAlm[2]);
                        objPrdAlm.StockFisico         = 0;
                        objPrdAlm.StockSistema        = 0;
                        objPrdAlm.FechaCreacion       = DateTime.Now;
                        objPrdAlm.UsuarioCreacion     = "Admin";
                        objPrdAlm.FechaModificacion   = DateTime.Now;
                        objPrdAlm.UsuarioModificacion = "Admin";
                        objPrdAlm.EstadoEliminación   = false;
                        db.ProductoAlmacen.Add(objPrdAlm);
                        db.SaveChanges();
                    }
                    //FIN PRODUCTO ALMACÉN

                    //INI PRODUCTO SUCURSAL COSTO
                    List <int> PrdSuc = null;
                    PrdSuc = lsSucursal.Select(x => x.IdSucursal).Distinct().ToList();

                    for (int i = 0; i < PrdSuc.Count; i++)
                    {
                        ProductoSucursalCosto objPrdSucCost = new ProductoSucursalCosto();
                        objPrdSucCost.IdSucursal    = PrdSuc[i];
                        objPrdSucCost.IdProducto    = objProducto.IdProducto;
                        objPrdSucCost.CostoUnitario = 0;
                        db.ProductoSucursalCosto.Add(objPrdSucCost);
                        db.SaveChanges();
                    }

                    //FIN PRODUCTO SUCURSAL COSTO

                    CodResult = 1;
                }
            }
            catch (Exception ex)
            {
                CodResult = 0;
            }
            return(CodResult);
        }
Ejemplo n.º 10
0
        private void dgv_ProductosVenta_DoubleClick(object sender, EventArgs e)
        {
            Producto            auxProductoCompra;
            FrmCantidadAComprar frmCantidadAComprar = new FrmCantidadAComprar();
            int auxCantidad;
            //obtengo el numero de articulo del producto seleccionado
            int auxNumArtProducto = (int)dgv_ProductosVenta.CurrentRow.Cells["NumArticulo"].Value;
            //obtengo el indice del articulo seleccionado en base a su id del producto
            int auxIndiceProducto = Comercio.GetIndiceProductoByIdProducto(auxNumArtProducto);
            //Producto.ETipo auxTipoProducto = (Producto.ETipo)dgv_ProductosVenta.CurrentRow.Cells["Tipo"].Value;
            string auxTipoProducto = dgv_ProductosVenta.CurrentRow.Cells["Tipo"].Value.ToString();

            frmCantidadAComprar.IndiceProducto = auxIndiceProducto;

            if (frmCantidadAComprar.ShowDialog() == DialogResult.OK)
            {
                auxCantidad = frmCantidadAComprar.CantidadAComprar;

                switch (auxTipoProducto)
                {
                case "Almacen":
                    auxProductoCompra = new ProductoAlmacen(auxNumArtProducto, Comercio.MisProductos[auxIndiceProducto].Descripcion, Comercio.MisProductos[auxIndiceProducto].PrecioUnitario, auxCantidad, Producto.ETipo.Almacen);

                    if (auxProductoCompra == auxListaProductos)
                    {
                        for (int i = 0; i < auxListaProductos.Count; i++)
                        {
                            if (auxListaProductos[i].NumArticulo == auxProductoCompra.NumArticulo)
                            {
                                auxListaProductos[i].Unidades += auxCantidad;
                            }
                        }
                    }
                    else
                    {
                        if (auxListaProductos + auxProductoCompra)
                        {
                        }
                    }
                    auxPrecioTotal += auxProductoCompra.PrecioUnitario * auxProductoCompra.Unidades;
                    break;

                case "Refrigerado":
                    auxProductoCompra = new ProductoRefrigerado(auxNumArtProducto, Comercio.MisProductos[auxIndiceProducto].Descripcion, Comercio.MisProductos[auxIndiceProducto].PrecioUnitario, auxCantidad, Producto.ETipo.Refrigerado);

                    if (auxProductoCompra == auxListaProductos)
                    {
                        for (int i = 0; i < auxListaProductos.Count; i++)
                        {
                            if (auxListaProductos[i].NumArticulo == auxProductoCompra.NumArticulo)
                            {
                                auxListaProductos[i].Unidades += auxCantidad;
                            }
                        }
                    }
                    else
                    {
                        if (auxListaProductos + auxProductoCompra)
                        {
                        }
                    }
                    auxPrecioTotal += auxProductoCompra.PrecioUnitario * auxProductoCompra.Unidades;
                    break;

                case "Revista":
                    auxProductoCompra = new ProductoRevista(auxNumArtProducto, Comercio.MisProductos[auxIndiceProducto].Descripcion, Comercio.MisProductos[auxIndiceProducto].PrecioUnitario, auxCantidad, Producto.ETipo.Revista);

                    if (auxProductoCompra == auxListaProductos)
                    {
                        for (int i = 0; i < auxListaProductos.Count; i++)
                        {
                            if (auxListaProductos[i].NumArticulo == auxProductoCompra.NumArticulo)
                            {
                                auxListaProductos[i].Unidades += auxCantidad;
                            }
                        }
                    }
                    else
                    {
                        if (auxListaProductos + auxProductoCompra)
                        {
                        }
                    }
                    auxPrecioTotal += auxProductoCompra.PrecioUnitario * auxProductoCompra.Unidades;
                    break;
                }



                lbl_MontoTotal.Text = auxPrecioTotal.ToString();
                RefrescarDgvCarritoVenta(auxListaProductos);
                RefrescarDgvProductosVenta(Comercio.ProductosEnStock());
            }
        }
Ejemplo n.º 11
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (!verificarCamposLineaPedido())
            {
                return;
            }
            if (dataGridStock.CurrentRow == null)
            {
                MessageBox.Show("Debe seleccionar una fila para continuar", "Error");
                return;
            }
            DialogResult resultado = MessageBox.Show("Desea confirmar la solicitud?", "Confirmacion", MessageBoxButtons.YesNo);

            if (resultado == DialogResult.Yes)
            {
                ProductoAlmacen productoAlmacenSeleccionado = (ProductoAlmacen)dataGridStock.CurrentRow.DataBoundItem;

                bool registroCorrecto;
                int  idPedido = almacenBL.registrarPedidoProduccion(idAlmacen, out registroCorrecto);
                if (!registroCorrecto)
                {
                    MessageBox.Show("Error en la conexion. Inténtelo nuevamente.", "Error");
                    return;
                }
                else
                {
                    foreach (DataGridViewRow row in dataGridStock.Rows)
                    {
                        int    idProducto     = Int32.Parse(row.Cells["Id"].Value.ToString());
                        int    cantidadPedido = Int32.Parse(row.Cells["CantidadSolicitar"].Value.ToString());
                        string observaciones;
                        if (row.Cells["Observaciones"].Value != null)
                        {
                            observaciones = row.Cells["Observaciones"].Value.ToString();
                        }
                        else
                        {
                            observaciones = "";
                        }

                        almacenBL.registrarLineaPedido(idPedido, idProducto, cantidadPedido, observaciones, out registroCorrecto);

                        if (!registroCorrecto)
                        {
                            MessageBox.Show("Error en la conexion. Inténtelo nuevamente.");
                            //regresar borrando el pedido
                            return;
                        }
                    }
                }
                //registrar todos los detalles del pedido

                dataGridStock.DataSource = null;
                dataGridStock.Refresh();
                dataGridStock.Update();

                if (idPedido > 0)
                {
                    MessageBox.Show("Se registró el pedido correctamente", "Éxito");
                }
                else
                {
                    MessageBox.Show("Ocurrió un error al registrar el pedido, inténtelo nuevamente", "Error");
                }
            }
        }
Ejemplo n.º 12
0
 private void tablaProductosAlmacen_SelectionChanged(object sender, EventArgs e)
 {
     productoAlmacenSeleccionado = (ProductoAlmacen)tablaProductosAlmacen.CurrentRow.DataBoundItem;
     this.actualizarInfoSeleccionado();
 }
Ejemplo n.º 13
0
 public IActionResult AddVenta([FromBody] Ventas venta)
 {
     try
     {
         if (ModelState.IsValid)
         {
             float utilidad = 0;
             foreach (ProductosVenta item in venta.Productos)
             {
                 item.Estatus = true;
                 Productos producto = PosUoW.ProductosRepository.GetById(a => a.idProducto.Equals(item.idProducto));
                 List <ProductosCompra> productosCompra = PosUoW.ProductosCompraRepository.GetAllByCriteria(x => x.idProducto.Equals(producto.idProducto) && x.Restante > 0, x => x.idCompraProducto).ToList();
                 float restante = item.Cantidad;
                 for (int i = 0; i < productosCompra.Count(); i++)
                 {
                     VentaLote       lote           = new VentaLote();
                     ProductosCompra productoCompra = productosCompra.ElementAt(i);
                     if (productoCompra.Restante == restante)
                     {
                         lote.idProducto       = producto.idProducto;
                         lote.idProductoCompra = productoCompra.idCompraProducto;
                         lote.estatus          = true;
                         lote.cantidad         = restante;
                         restante  = 0;
                         utilidad += productoCompra.Restante * productoCompra.Costo;
                         productoCompra.Restante = 0;
                         i = productosCompra.Count();
                     }
                     else if (productoCompra.Restante > restante)
                     {
                         lote.idProducto       = producto.idProducto;
                         lote.idProductoCompra = productoCompra.idCompraProducto;
                         lote.estatus          = true;
                         lote.cantidad         = restante;
                         utilidad += restante * productoCompra.Costo;
                         productoCompra.Restante -= restante;
                         i        = productosCompra.Count();
                         restante = 0;
                     }
                     else
                     {
                         lote.idProducto       = producto.idProducto;
                         lote.idProductoCompra = productoCompra.idCompraProducto;
                         lote.estatus          = true;
                         lote.cantidad         = productoCompra.Restante;
                         utilidad += productoCompra.Restante * productoCompra.Costo;
                         restante -= productoCompra.Restante;
                         productoCompra.Restante = 0;
                     }
                     venta.Lotes.Add(lote);
                     PosUoW.ProductosCompraRepository.Update(productoCompra);
                 }
                 if (restante > 0)
                 {
                     utilidad += restante * producto.PrecioCosto;
                 }
                 Almacenes       principalWarehouse = PosUoW.AlmacenesRepository.GetSingleByCriteria(x => x.Principal);
                 ProductoAlmacen almacen            = PosUoW.ProductoAlmacenRepository.GetSingleByCriteria(x => x.idProducto.Equals(item.idProducto) && x.idAlmacen.Equals(principalWarehouse.idAlmacen));
                 if (almacen == null)
                 {
                     almacen = new ProductoAlmacen
                     {
                         idAlmacen  = principalWarehouse.idAlmacen,
                         idProducto = producto.idProducto,
                         Existencia = 0
                     };
                     PosUoW.ProductoAlmacenRepository.Add(almacen);
                     PosUoW.Save();
                 }
                 almacen.Existencia -= item.Cantidad;
                 PosUoW.ProductosRepository.Update(producto);
             }
             utilidad       = (float)Math.Round((venta.Total - venta.Impuestos) - utilidad, 2);
             venta.Utilidad = utilidad;
             PosUoW.VentasRepository.Add(venta);
             PosUoW.Save();
             return(Ok(new { venta = venta, totalEfectivo = totalEfectivo(venta.idUsuario) }));
         }
         else
         {
             return(BadRequest("Los datos de la venta son incorrectos"));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, ex));
     }
 }
Ejemplo n.º 14
0
 private void dataGridStock_SelectionChanged(object sender, EventArgs e)
 {
     productoAlmacenSeleccionado = (ProductoAlmacen)dataGridStock.CurrentRow.DataBoundItem;
     this.actualizarInfoSeleccionado();
 }
Ejemplo n.º 15
0
        private void button1_Click(object sender, EventArgs e)
        {
            int cantidadPedidos = dataGridIngresoSalida.RowCount;

            if (cantidadPedidos <= 0)
            {
                MessageBox.Show("Debe registrar mínimo un ingreso/salida", "Error");
                return;
            }

            bool resultado = true;

            //validar todas las lineas
            foreach (DataGridViewRow row in dataGridIngresoSalida.Rows)
            {
                int             cantidadPedido;
                ProductoAlmacen actual = (ProductoAlmacen)row.DataBoundItem;
                if (row.Cells["Cantidad"].Value == null || !Int32.TryParse(row.Cells["Cantidad"].Value.ToString(), out cantidadPedido))
                {
                    MessageBox.Show("Ha insertado incorrectamente una cantidad", "Error");
                    dataGridIngresoSalida.CurrentCell = row.Cells["Cantidad"];
                    resultado = false;
                    return;//debe ir esto en vez de un break con trabajo de variable valido
                }
                else if (radioBtnSalida.Checked && cantidadPedido > actual.CantidadAlmacenada)
                {
                    MessageBox.Show("Está registrando una salida con cantidad mayor al stock actual", "Error");
                    dataGridIngresoSalida.CurrentCell = row.Cells["Cantidad"];
                    resultado = false;
                    return;//debe ir esto en vez de un break con trabajo de variable valido
                }
            }
            //fin validacion



            //inicio mensaje confirmacion
            string mensajeConf = "Desea confirmar ";

            if (radioBtnIngreso.Checked)
            {
                mensajeConf += "el ingreso de ";
            }
            else if (radioBtnSalida.Checked)
            {
                mensajeConf += "la salida de ";
            }

            mensajeConf += cantidadPedidos.ToString() + " producto";
            if (cantidadPedidos > 1)
            {
                mensajeConf += "s";
            }
            mensajeConf += "?";
            //fin mensaje confirmacion

            DialogResult res = MessageBox.Show(mensajeConf, "Confirmacion", MessageBoxButtons.YesNo);

            if (res == DialogResult.No)
            {
                return;
            }



            //registrar pedido ingreso o salida
            if (radioBtnIngreso.Checked)
            {
                //Sucursal localSeleccionado = (Sucursal)comboBoxLocales.SelectedItem;
                int idAreaSeleccionada = ((Area)comboBoxAreas.SelectedItem).IdArea;
                int sedeOrigen         = -1;
                if (idAreaSeleccionada == 1)
                {
                    Almacen localSeleccionado = (Almacen)comboBoxLocales.SelectedItem;
                    sedeOrigen = localSeleccionado.IdAlmacen;
                }
                //Console.WriteLine("Se va a insertar " + this.idAlmacen.ToString() + " " +idAreaSeleccionada.ToString() + " " + sedeOrigen.ToString());
                int idIngreso = logicaAlmacenes.registrarIngresoProductos(this.idAlmacen, idAreaSeleccionada, sedeOrigen, textBoxObservaciones.Text);
                if (idIngreso > 0)
                {
                    //registrar todas las lineas
                    int idLinea = 0;
                    foreach (DataGridViewRow row in dataGridIngresoSalida.Rows)
                    {
                        int    cantidadPedido = Int32.Parse(row.Cells["Cantidad"].Value.ToString());
                        string observaciones;
                        //se obtienen las observaciones
                        if (row.Cells["Observaciones"].Value != null)
                        {
                            observaciones = row.Cells["Observaciones"].Value.ToString();
                        }
                        else
                        {
                            observaciones = "";
                        }
                        //fin observaciones

                        int idProducto = Int32.Parse(row.Cells["Id"].Value.ToString());

                        //se registra una linea de ingreso
                        idLinea = logicaAlmacenes.registrarLineaIngresoProductos(idIngreso, idProducto, cantidadPedido, observaciones);

                        //en el caso de error al registrar la linea
                        if (idLinea < 0)
                        {
                            resultado = false;
                            break;
                            //ver la forma de regresar, puede ser con un rollback
                        }
                    }
                }
            }
            else if (radioBtnSalida.Checked)
            {
                //Sucursal localSeleccionado = (Sucursal)comboBoxLocalSalida.SelectedItem;
                int idAreaSeleccionada = ((Area)comboBoxAreas2.SelectedItem).IdArea;
                int idSedeDestino      = -1;
                if (idAreaSeleccionada == 1)
                {
                    Almacen almacenDestino = (Almacen)comboBoxLocalSalida.SelectedItem;
                    idSedeDestino = almacenDestino.IdAlmacen;
                }
                int idSalida = logicaAlmacenes.registrarSalidaProductos(this.idAlmacen, idAreaSeleccionada, idSedeDestino, textBoxObservaciones.Text);
                if (idSalida > 0)
                {
                    //registrar todas las lineas
                    int idLinea = 0;
                    foreach (DataGridViewRow row in dataGridIngresoSalida.Rows)
                    {
                        int    cantidadPedido = Int32.Parse(row.Cells["Cantidad"].Value.ToString());
                        string observaciones;
                        if (row.Cells["Observaciones"].Value != null)
                        {
                            observaciones = row.Cells["Observaciones"].Value.ToString();
                        }
                        else
                        {
                            observaciones = "";
                        }

                        int idProducto = Int32.Parse(row.Cells["Id"].Value.ToString());

                        idLinea = logicaAlmacenes.registrarLineaSalidaProductos(idSalida, idProducto, cantidadPedido, observaciones);
                        if (idLinea < 0)
                        {
                            resultado = false;
                            break;
                            //ver la forma de regresar, puede ser con un rollback
                        }
                    }
                }
            }

            if (resultado)
            {
                MessageBox.Show("Transaccion Exitosa", "Exito");
                this.dataGridIngresoSalida.DataSource = new BindingList <ProductoAlmacen>();
                this.textBoxObservaciones.Text        = "";
                dataGridIngresoSalida.Refresh();
                dataGridIngresoSalida.Update();
            }
            else
            {
                MessageBox.Show("Hubo un error al registrar el ingreso/salida. Reinténtelo en un momento.", "Error");
            }
        }