public ActionResult EditarCentroCosto(string Id)
        {
            IRepositoryWrapper _repo = new RepositoryWrapper();

            string[]          empresaCentroCosto = Id.Trim().Split('|');
            short             empresaID          = Convert.ToInt16(empresaCentroCosto[0]);
            short             centroCostoID      = Convert.ToInt16(empresaCentroCosto[1]);
            CON_CentrosCostos _cc = _unitOfWork.GetRepositoryInstance <CON_CentrosCostos>()
                                    .GetFirstOrDefaultByParameter(s => s.Clave_Empresa == empresaID && s.Clave_CCostos == centroCostoID);

            if (_cc == null)
            {
                return(RedirectToAction("CentrosCosto", "Catalogos"));
            }
            var model = new CentroDeCostoViewModel();

            model.DivisionID       = _cc.Clave_Division.HasValue ? (int)_cc.Clave_Division : -1;
            model.EmpresaID        = _cc.Clave_Empresa;
            model.Nombre           = _cc.Nombre_CCostos;
            model.RegionDivisionID = (_cc.Clave_Division.HasValue ? (int)_cc.Clave_Division : -1) + ";" + _cc.Clave_Region;
            model.RegionID         = _cc.Clave_Region;
            model.CentroCostoID    = _cc.Clave_CCostos;

            var modelConfig = _repo.CentroCostoConfig.FindByFilter(x => x.EmpresaId == empresaID && x.CentroCostoId == centroCostoID);

            if (modelConfig != null)
            {
                model.AfectaPresupuesto = modelConfig.AfectaPresupuesto;
                model.PresentaBase      = modelConfig.PresentaBase;
            }

            return(View(model));
        }
        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));
        }
        public ActionResult AgregarCentroCosto(string Id)
        {
            var model = new CentroDeCostoViewModel();

            if (string.IsNullOrWhiteSpace(Id))
            {
                model.EmpresaID        = -1;
                model.DivisionID       = -1;
                model.RegionID         = -1;
                model.RegionDivisionID = string.Empty;
            }
            else
            {
                string[] empresaDivisionRegion = Id.Trim().Split(';');
                model.EmpresaID        = Convert.ToInt16(empresaDivisionRegion[0]);
                model.DivisionID       = Convert.ToInt32(empresaDivisionRegion[1]);
                model.RegionID         = Convert.ToInt16(empresaDivisionRegion[2]);
                model.RegionDivisionID = model.DivisionID + ";" + model.RegionID;
            }
            model.PresentaBase      = false;
            model.AfectaPresupuesto = false;
            return(View(model));
        }