public ActionResult CreateDetail(FormCollection collection, int id, string nombre)
 {
     ViewBag.NombreReceta      = nombre;
     ViewBag.cabecera_recetaId = id;
     ViewBag.articuloId        = new SelectList(db.articulo, "Id", "nombre");
     try
     {
         if (Convert.ToInt32(collection.Get("cantidad")) < 0)
         {
             ViewBag.Error = "Valor no puede ser negativo";
             return(View());
         }
         // TODO: Add insert logic here
         detalle_receta dr = new detalle_receta();
         dr.articuloId        = Convert.ToInt32(collection.Get("articuloId"));
         dr.cantidad          = Convert.ToDecimal(collection.Get("cantidad"));
         dr.cabecera_recetaId = id;
         db.detalle_receta.Add(dr);
         db.SaveChanges();
         return(RedirectToAction("IndexDetail", new { id = id, nombre = nombre }));
     }
     catch (Exception exp)
     {
         ViewBag.Error = exp.Message;
         return(View());
     }
 }
        public ActionResult EditDetail(FormCollection collection, int id, int id_cabecera, string nombre)
        {
            ViewBag.NombreReceta      = nombre;
            ViewBag.cabecera_recetaId = id_cabecera;
            ViewBag.articuloId        = new SelectList(db.articulo, "Id", "nombre");
            try
            {
                // TODO: Add update logic here
                detalle_receta Row = new detalle_receta();
                if (Convert.ToInt32(collection.Get("cantidad")) < 0)
                {
                    ViewBag.Error = "Valor no puede ser menor a cero";
                    return(View(Row));
                }
                Row            = db.detalle_receta.Find(id);
                Row.articuloId = Convert.ToInt32(collection.Get("articuloId"));
                Row.cantidad   = Convert.ToDecimal(collection.Get("cantidad"));
                db.SaveChanges();

                return(RedirectToAction("IndexDetail", new { id = id_cabecera, nombre = nombre }));
            }
            catch (Exception exp)
            {
                ViewBag.Error = exp.Message;
                costo Row = Row = db.costo.Find(new object[] { id_cabecera, Convert.ToDateTime(collection.Get("fecha")) });
                return(View(Row));
            }
        }
Beispiel #3
0
        public void MultipleDetalleReceta()
        {
            // insertar
            int            drct_originales         = db.detalle_receta.Count();
            detalle_receta drct                    = new detalle_receta();
            decimal        cantidad_detalle_receta = 18;
            int            cabecera_receta_id      = 1;
            int            id_articulo             = 1;

            drct.cantidad          = cantidad_detalle_receta;
            drct.articuloId        = id_articulo;
            drct.cabecera_recetaId = cabecera_receta_id;
            db.detalle_receta.Add(drct);
            db.SaveChanges();

            //prueba que se ingrese
            int drct_cambiadas = db.detalle_receta.Count();

            Assert.AreEqual(drct_originales + 1, drct_cambiadas);

            detalle_receta drct2            = new detalle_receta();
            int            detalle_agregado = db.detalle_receta.OrderByDescending(x => x.Id).First().Id;

            drct2 = db.detalle_receta.Find(Convert.ToInt16(detalle_agregado));
            //Prueba de buscar
            Assert.AreEqual(drct2.articuloId, id_articulo);

            db.detalle_receta.Remove(drct2);
            db.SaveChanges();
            int drct_cambiadas_eliminacion = db.detalle_receta.Count();

            //Prueba si se eliminó
            Assert.AreEqual(drct_cambiadas - 1, drct_cambiadas_eliminacion);
        }
Beispiel #4
0
        public ActionResult EliminarInsumo(int productoId, int recetaId) // Captura de datos
        {
            try
            {
                int recId     = recetaId;
                int proId     = productoId;
                int cantidadD = 0;
                var dr        = new detalle_receta {
                    productoId = productoId, recetaId = recetaId
                };                                                                           //db.detalle_receta.Find(productoId, recetaId);
                producto pr = new producto();
                receta   rt = new receta();
                rt = db.receta.Find(recetaId);
                pr = db.producto.Find(productoId);
                db.detalle_receta.Attach(dr);

                var query = from rtd in db.detalle_receta  where rtd.productoId == proId && rtd.recetaId == recId select rtd.cantidad;
                foreach (int grp in query)
                {
                    cantidadD = grp;
                }

                rt.costo_receta = Convert.ToInt16(rt.costo_receta) - (cantidadD * ((Convert.ToInt16(pr.precio) / Convert.ToInt16(pr.formato))));
                db.detalle_receta.Remove(dr); //remuevo
                db.SaveChanges();
            }
            catch (Exception e)
            {
                ModelState.AddModelError("Error al Eliminar Insumo Receta", e);
            }
            return(RedirectToAction("Index", "DetalleReceta", new { id = recetaId }));
        }
        public ActionResult DeleteDetail(FormCollection collection, int id, int id_cabecera, string nombre)
        {
            try
            {
                detalle_receta cr = new detalle_receta();
                cr = db.detalle_receta.Find(Convert.ToInt16(collection.Get("id")));
                db.detalle_receta.Remove(cr);
                db.SaveChanges();

                return(RedirectToAction("IndexDetail", new { id = id_cabecera, nombre = nombre }));
            }
            catch
            {
                return(View());
            }
        }
Beispiel #6
0
        public void InsercionDetalleReceta()
        {
            int            drct_originales         = db.detalle_receta.Count();
            detalle_receta drct                    = new detalle_receta();
            decimal        cantidad_detalle_receta = 18;
            int            cabecera_receta_id      = 1;
            int            id_articulo             = 1;

            drct.cantidad          = cantidad_detalle_receta;
            drct.articuloId        = id_articulo;
            drct.cabecera_recetaId = cabecera_receta_id;
            db.detalle_receta.Add(drct);
            db.SaveChanges();

            int drct_cambiadas = db.detalle_receta.Count();

            Assert.AreEqual(drct_originales + 1, drct_cambiadas);
            db.detalle_receta.Remove(drct);
            db.SaveChanges();
        }
Beispiel #7
0
        public void EliminarDetalleReceta()
        {
            int            drct_originales         = db.detalle_receta.Count();
            detalle_receta drct                    = new detalle_receta();
            decimal        cantidad_detalle_receta = 18;
            int            cabecera_receta_id      = 1;
            int            id_articulo             = 1;

            drct.cantidad          = cantidad_detalle_receta;
            drct.articuloId        = id_articulo;
            drct.cabecera_recetaId = cabecera_receta_id;
            db.detalle_receta.Add(drct);
            db.SaveChanges();

            int ultimo_detalle_agregado = db.detalle_receta.OrderByDescending(x => x.Id).First().Id;

            drct = db.detalle_receta.Find(Convert.ToInt16(ultimo_detalle_agregado));
            db.detalle_receta.Remove(drct);
            db.SaveChanges();
            int drct_cambiadas = db.detalle_receta.Count();

            Assert.AreEqual(drct_cambiadas, drct_originales);
        }
Beispiel #8
0
        public ActionResult AgregaRecetaDetalle(FormCollection f)
        {
            var d = new detalle_receta();

            foreach (var a in f.AllKeys)
            {
                switch (a) // Selecciono input dependiendo el id
                {
                case "txtReceta":
                    d.recetaId = int.Parse(f[a]);
                    break;

                case "selectProducto":
                    d.productoId = int.Parse(f[a]);
                    break;

                case "selectMedida":
                    d.medidaId = int.Parse(f[a]);
                    break;

                case "txtCantidad":
                    d.cantidad = int.Parse(f[a]);
                    break;
                }
            }
            //Response.Write(d.recetaId);
            //return null;
            try
            {
                int cantidadD = 0;
                // agrego Detalle recetas a la DB
                detalle_receta dr    = new detalle_receta();
                producto       pr    = new producto();
                receta         rt    = new receta();
                var            query = from rtd in db.detalle_receta where rtd.productoId == d.productoId && rtd.recetaId == d.recetaId select rtd.cantidad;
                foreach (int grp in query)
                {
                    cantidadD = grp;
                }
                if (cantidadD != 0)
                {
                    throw new ArgumentException("Producto ya se encuentra registrado");
                }

                rt            = db.receta.Find(d.recetaId);
                pr            = db.producto.Find(d.productoId);
                dr.cantidad   = d.cantidad;
                dr.recetaId   = d.recetaId;
                dr.productoId = d.productoId;
                dr.medidaId   = pr.medidaId;
                dr.estado     = true;
                db.detalle_receta.Add(dr);
                int idReceta = d.recetaId;
                int valor    = Convert.ToInt16(rt.costo_receta) + (Convert.ToInt16(d.cantidad) * ((Convert.ToInt16(pr.precio) / Convert.ToInt16(pr.formato))));
                rt.costo_receta = Convert.ToInt16(valor);
                db.SaveChanges();


                return(RedirectToAction("Index", "DetalleReceta", new { id = d.recetaId }));
            }
            catch (Exception)
            {
                return(RedirectToAction("Index", "DetalleReceta", new { id = d.recetaId, editar = 1 }));
            }
        }