Esempio n. 1
0
        public SPProducto GetById(int id)
        {
            var producto = new SPProducto();

            try
            {
                using (var ctx = new PresupuestoContext())
                {
                    producto = ctx.SPProducto.Where(x => x.productoId == id).SingleOrDefault();
                }
            }
            catch
            {
            }

            return(producto);
        }
Esempio n. 2
0
        //metodo para guardar lote y detalle lote
        public string Save(ProductoDto model)
        {
            var rpta = "";

            try
            {
                using (var ctx = new PresupuestoContext())
                {
                    using (DbContextTransaction transaction = ctx.Database.BeginTransaction())
                    {
                        try
                        {
                            var producto = new SPProducto
                            {
                                productoId  = model.productoId,
                                codigo      = model.codigo,
                                nombre      = model.nombre,
                                categoriaId = model.categoriaId,
                                cultivoId   = model.cultivoId,
                                tipo        = model.tipo,
                                estado      = "A",
                            };

                            if (producto.productoId > 0)
                            {
                                ctx.Entry(producto).State = EntityState.Modified;
                            }
                            else
                            {
                                ctx.SPProducto.Add(producto);
                            }
                            ctx.SaveChanges();

                            //obtenemos el ultimo id insertado
                            var productoId = producto.productoId;

                            //eliminamos los existentes para sustituirlos
                            var detalles = ctx.SPProductoPresentacion.Where(x => x.productoId == productoId && x.productoId == model.productoId).ToList();
                            ctx.SPProductoPresentacion.RemoveRange(detalles);
                            ctx.SaveChanges();

                            if (model.detalle != null)
                            {
                                foreach (var d in model.detalle)
                                {
                                    var detalle = new SPProductoPresentacion
                                    {
                                        Id             = d.Id,
                                        productoId     = productoId,
                                        presentacionId = d.presentacionId,
                                    };


                                    ctx.SPProductoPresentacion.Add(detalle);
                                    ctx.SaveChanges();
                                }
                            }

                            transaction.Commit();
                            rpta = "producto registado correctamente";
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                            throw ex;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            return(rpta);
        }