public ActionResult GridAgroquimicosViewPartialAddNew(FTPresupuestoWeb.Models.PreAgroquimicoBaseTotal item)
        {
            var model = db.PreAgroquimicoBaseTotal;

            if (ModelState.IsValid)
            {
                try
                {
                    model.Add(item);
                    db.SaveChanges();
                }
                catch (Exception e)
                {
                    ViewData["EditError"] = e.Message;
                }
            }
            else
            {
                ViewData["EditError"] = "Favor de corregir todos los errores.";
            }

            ejercicioCerrado    = FTPresupuestoProvider.getVersionPresupuestoEstatus(enumTipoDePresupuesto.AGROQUIMICOS);
            ViewData["cerrado"] = (ejercicioCerrado ? "S" : "N");
            return(PartialView("_GridAgroquimicosViewPartial", model.ToList()));
        }
        public ActionResult GridAgroquimicosViewPartialUpdate(FTPresupuestoWeb.Models.PreAgroquimicoBaseTotal item)
        {
            int empresaId     = item.Clave_Empresa;
            int sucursalId    = item.Clave_Sucursal;
            int versionPptoId = (int)item.VersionPresupuestoId;
            var model         =
                db.PreAgroquimicoBaseTotal
                .Where(a => a.Clave_Empresa == item.Clave_Empresa && a.Clave_Sucursal == item.Clave_Sucursal &&
                       a.VersionPresupuestoId == item.VersionPresupuestoId)
                .ToList();

            if (ModelState.IsValid)
            {
                try
                {
                    bool cambioIncTons = false;
                    var  modelItem     = model.FirstOrDefault(it => it.Oid == item.Oid);
                    if (modelItem != null)
                    {
                        if (modelItem.PtjeIncEspecificoTons != item.PtjeIncEspecificoTons)
                        {
                            cambioIncTons = true;
                        }
                        modelItem.PtjeIncEspecificoTons = item.PtjeIncEspecificoTons;
                        modelItem.PtjeIncEspecificoMG   = item.PtjeIncEspecificoMG;
                        //this.UpdateModel(modelItem);
                        // CALCULA EL PRESUPUESTO

                        modelItem.PresupuestoTons = modelItem.Cantidad * (1m + ((decimal)modelItem.PtjeIncEspecificoTons / 100m));

                        decimal?importeMargen      = modelItem.PrecioVenta * (decimal)modelItem.PorcentajeMargen;
                        decimal?importeSinGanancia = modelItem.PrecioVenta - importeMargen;
                        decimal?precioVenta        = modelItem.PrecioVenta;
                        modelItem.PresupuestoMargen = importeMargen;

                        if (modelItem.PtjeIncEspecificoMG != 0d)
                        {
                            precioVenta = importeSinGanancia * (1m + ((decimal)modelItem.PtjeIncEspecificoMG / 100m));
                            modelItem.PresupuestoMargen = precioVenta * ((decimal)modelItem.PtjeIncEspecificoMG / 100m);
                        }

                        modelItem.PresupuestoVentas = modelItem.PresupuestoTons * precioVenta;
                        // SE INICIALIZA A 0 EL PTJEINCRMENETOGENERALTONS PARA QUE SE SI SE CAMBIA ESE PTJE NO AFECTE EL INCREMENTO INDIVIDUAL
                        if (cambioIncTons)
                        {
                            modelItem.PtjeIncGeneralTons = 0d;
                        }
                        // ACTUALIZA LA BD
                        db.SaveChanges();
                    }
                }
                catch (Exception e)
                {
                    ViewData["EditError"] = e.Message;
                }
            }
            else
            {
                ViewData["EditError"] = "Favor de corregir los errores.";
            }
            //var modelRecargado = FTPresupuestoProvider.GetAgroquimicosBaseTotal(empresaId, sucursalId);
            ejercicioCerrado    = FTPresupuestoProvider.getVersionPresupuestoEstatus(enumTipoDePresupuesto.AGROQUIMICOS);
            ViewData["cerrado"] = (ejercicioCerrado ? "S" : "N");
            return(PartialView("_GridAgroquimicosViewPartial", model.OrderBy(x => x.Desc_Familia).ThenBy(x => x.Desc_Producto).ToList()));
        }