예제 #1
0
        public bool Registrar(FormularioRegistrarSalida formulario)
        {
            RepositorioSalida repoSalida = new RepositorioSalida();

            try
            {
                Salida salida = formulario.Salida;
                IEnumerable <DetalleSalida> detalles = formulario.Detalles;

                salida.Fecha = DateTime.Now;

                if (repoSalida.Insertar(salida))
                {
                    RepositorioDetalleSalida repoDetalle  = new RepositorioDetalleSalida();
                    RepositorioProducto      repoProducto = new RepositorioProducto();

                    int id = repoSalida.UltimoPorId();

                    foreach (DetalleSalida detalle in detalles)
                    {
                        detalle.Salida = id;

                        if (repoProducto.PorId(detalle.Producto) is Producto producto)
                        {
                            if (producto.Existencias > 0 && producto.Existencias >= detalle.Cantidad)
                            {
                                producto.Existencias -= detalle.Cantidad;

                                repoProducto.Editar(producto);
                                repoDetalle.Insertar(detalle);
                            }
                        }
                    }

                    return(true);
                }

                return(false);
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
        }
예제 #2
0
 public DetalleSalidaController()
 {
     repositorio = new RepositorioDetalleSalida();
 }