public ActionResult EditarCentroCosto(CentroDeCostoViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    IRepositoryWrapper _repo = new RepositoryWrapper();
                    CON_CentrosCostos  _cc   = _unitOfWork.GetRepositoryInstance <CON_CentrosCostos>()
                                               .GetFirstOrDefaultByParameter(s => s.Clave_Empresa == model.EmpresaID && s.Clave_CCostos == model.CentroCostoID);
                    if (_cc == null)
                    {
                        ViewBag.ErrorMessage = "Error al intentar actualizar los datos del centro de costo";
                        return(View(model));
                    }
                    _cc.Nombre_CCostos = model.Nombre;

                    PreCentrosCostoConfig _ccConfig = _repo.CentroCostoConfig.FindByFilter(x => x.EmpresaId == model.EmpresaID && x.CentroCostoId == model.CentroCostoID);
                    if (_ccConfig == null)
                    {
                        _ccConfig = new PreCentrosCostoConfig
                        {
                            CentroCostoId = model.CentroCostoID,
                            EmpresaId     = model.EmpresaID
                        };
                    }
                    _ccConfig.PresentaBase      = model.PresentaBase;
                    _ccConfig.AfectaPresupuesto = model.AfectaPresupuesto;

                    var resulta = _repo.CentroCostoConfig.AddUpdateCentroCosto(_cc, _ccConfig);
                    if (!resulta.Item1)
                    {
                        throw new Exception(string.Join(Environment.NewLine, resulta.Item2));
                    }

                    //_unitOfWork.GetRepositoryInstance<CON_CentrosCostos>().Update(_cc);
                    //_unitOfWork.SaveChanges();

                    return(RedirectToAction("CentrosCosto", "Catalogos"));
                }
                catch (Exception ex)
                {
                    ViewBag.ErrorMessage = ex.Message;
                }
            }
            else
            {
                ViewBag.ErrorMessage = "La información es incompleta";
            }
            return(View(model));
        }
        public ActionResult AgregarCentroCosto(CentroDeCostoViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    IRepositoryWrapper _repo = new RepositoryWrapper();
                    if (_unitOfWork.GetRepositoryInstance <CON_CentrosCostos>()
                        .GetExists(s => s.Clave_Empresa == model.EmpresaID && s.Clave_CCostos == model.CentroCostoID))
                    {
                        ViewBag.ErrorMessage = "La clave de centro de costo ya existe para la empresa seleccionada";
                        return(View(model));
                    }
                    CON_CentrosCostos _cc = new CON_CentrosCostos();
                    _cc.Clave_Division  = model.DivisionID;
                    _cc.Clave_Empresa   = model.EmpresaID;
                    _cc.Clave_Region    = model.RegionID;
                    _cc.Clave_SubRegion = 0;
                    //_suc.Clave_Sucursal = model.SucursalID;
                    _cc.Clave_CCostos  = model.CentroCostoID;
                    _cc.Nombre_CCostos = model.Nombre;

                    PreCentrosCostoConfig _ccConfig = new PreCentrosCostoConfig();
                    _ccConfig.AfectaPresupuesto = model.AfectaPresupuesto;
                    _ccConfig.CentroCostoId     = model.CentroCostoID;
                    _ccConfig.EmpresaId         = model.EmpresaID;
                    _ccConfig.PresentaBase      = model.PresentaBase;

                    var resulta = _repo.CentroCostoConfig.AddUpdateCentroCosto(_cc, _ccConfig);
                    if (!resulta.Item1)
                    {
                        throw new Exception(string.Join(Environment.NewLine, resulta.Item2));
                    }
                    //_unitOfWork.GetRepositoryInstance<CON_CentrosCostos>().Add(_cc);

                    return(RedirectToAction("CentrosCosto", "Catalogos"));
                }
                catch (Exception ex)
                {
                    ViewBag.ErrorMessage = ex.Message;
                }
            }
            else
            {
                ViewBag.ErrorMessage = "La información es incompleta";
            }
            return(View(model));
        }