/// <summary>
        /// Permite Modificar una entidad en la base de datos
        /// </summary>
        /// <param name="inscripciones">Una instancia de visita</param>
        /// <returns>Retorna True si Modifico o Falso si falló </returns>
        public static bool Modificar(Ventas ventas)
        {
            bool     paso     = false;
            Contexto contexto = new Contexto();

            try
            {
                //todo: buscar las entidades que no estan para removerlas
                var buscar = VentasBLL.Buscar(ventas.VentasId);

                foreach (var item in buscar.Detalle)//recorrer el detalle aterior
                {
                    //restar todas las visitas
                    contexto.Clientes.Find(item.ClienteId).Balance -= (decimal)item.Total;

                    //determinar si el item no esta en el detalle actual
                    if (!ventas.Detalle.ToList().Exists(v => v.ClienteId == item.ClienteId))
                    {
                        contexto.Clientes.Find(item.ClienteId).Balance -= (decimal)item.Total;
                        //item.Balance  = ; //quitar la ciudad para que EF no intente hacerle nada
                        contexto.Entry(item).State = System.Data.Entity.EntityState.Deleted;
                    }
                }

                //recorrer el detalle
                foreach (var item in ventas.Detalle)
                {
                    //Sumar todas las visitas
                    contexto.Clientes.Find(item.ClienteId).Balance += (decimal)item.Total;

                    //Muy importante indicar que pasara con la entidad del detalle
                    var estado = item.ClienteId > 0 ? EntityState.Modified : EntityState.Added;
                    contexto.Entry(item).State = estado;
                }

                //Idicar que se esta modificando el encabezado
                contexto.Entry(ventas).State = EntityState.Modified;

                if (contexto.SaveChanges() > 0)
                {
                    paso = true;
                }
                contexto.Dispose();
            }
            catch (Exception)
            {
                throw;
            }
            return(paso);
        }
示例#2
0
        public static bool Eliminar(int id)
        {
            bool     paso = false;
            Contexto db   = new Contexto();

            try
            {
                var eliminar = VentasBLL.Buscar(id);
                db.Entry(eliminar).State = EntityState.Deleted;
                paso = (db.SaveChanges() > 0);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                db.Dispose();
            }
            return(paso);
        }
示例#3
0
        public static List <Articulos> Articulo(int id)
        {
            var articulo = new List <Articulos>();

            using (var db = new SistemaVentasDb())
            {
                try
                {
                    var venta = VentasBLL.Buscar(id);
                    if (venta != null)
                    {
                        articulo = venta.Articulos;
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return(articulo);
        }