public frmDetalleRubro(int rubroId)
        {
            InitializeComponent();
            Rubro = Repository.Obtener(r => r.RubroId == rubroId, r => r.ExcepcionRubros);

            txtDescripcion.Texto = Rubro.Descripcion;

            dgvExcepciones.Columns[3].DefaultCellStyle.Format = AppSettings.CurrencyColumnFormat;
            dgvExcepciones.DataSource = Rubro.ExcepcionRubros.ToList();
        }
        public ActionResult Editar(Rubro rubro)
        {
            if (!ModelState.IsValid)
            {
                return PartialView(rubro);
            }

            Uow.Rubros.Modificar(rubro);
            Uow.Commit();
            return new JsonResult() { Data = new { exito = true }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        public ActionResult Crear(Rubro rubro)
        {
            if (!ModelState.IsValid || !EsDescripcionValida(rubro.Descripcion))
            {
                return PartialView(rubro);
            }
            rubro.Identifier = Guid.NewGuid();
            rubro.CuentaId = UsuarioActual.CuentaId;
            Uow.Rubros.Agregar(rubro);
            Uow.Commit();

            return new JsonResult(){ Data = new { exito = true, rubro = rubro}, JsonRequestBehavior = JsonRequestBehavior.AllowGet};
        }
 public ActionResult Eliminar(Rubro rubro)
 {
     var productos = Uow.Productos.Listado().Where(p => p.RubroId == rubro.RubroId).ToList();
     if (productos.Count > 0)
     {
         ModelState.AddModelError("ProductosAsociados", "No puede elimiarse el rubro porque tiene productos asociados");
         return PartialView(rubro);
     }
     Uow.Rubros.Eliminar(rubro);
     Uow.Commit();
     return new JsonResult() { Data = new { exito = true }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
 }