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 async Task <Tuple <bool, string[]> > AddUpdateCentroCostoAsync(CON_CentrosCostos entityRecord, PreCentrosCostoConfig entityRecordConfig) { bool datosActualizados = false; List <string> errores = new List <string>(); try { using (var _dbContext = _dbContextCreator()) { // ACTUAILLZA CENTRO DE COSTO var _entities = _dbContext.Set <CON_CentrosCostos>(); var existingEntity = _entities .Where(x => x.Clave_Empresa == entityRecord.Clave_Empresa && x.Clave_CCostos == entityRecord.Clave_CCostos) .SingleOrDefault(); if (existingEntity != null) { // Copy current (incoming) values to db entry: _dbContext.Entry(existingEntity).CurrentValues.SetValues(entityRecord); } else { _dbContext.Set <CON_CentrosCostos>().Add(entityRecord); // This also adds its EntityDetailRecords } // ACTUALIZA EN LA BD var result = await _dbContext.SaveChangesAsync(); // ACTUALIZA CONFIG --------------------------------------------- var _entitiesConfig = _dbContext.Set <PreCentrosCostoConfig>(); var existingEntityConfig = _entitiesConfig .Where(x => x.EmpresaId == entityRecordConfig.EmpresaId && x.CentroCostoId == entityRecordConfig.CentroCostoId) .SingleOrDefault(); if (existingEntityConfig != null) { // Copy current (incoming) values to db entry: _dbContext.Entry(existingEntityConfig).CurrentValues.SetValues(entityRecordConfig); } else { _dbContext.Set <PreCentrosCostoConfig>().Add(entityRecordConfig); // This also adds its EntityDetailRecords } // ACTUALIZA EN LA BD result = await _dbContext.SaveChangesAsync(); } datosActualizados = true; } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { errores.Add(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:" , eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { errores.Add(string.Format("- Property: \"{0}\", Value: \"{1}\", Error: \"{2}\"" , ve.PropertyName, eve.Entry.CurrentValues.GetValue <object>(ve.PropertyName), ve.ErrorMessage)); } } //log.Error(string.Format("Objecto : {0} {1} Mensaje : {2} {3} Fuente : {4}", // e.Source.ToString(), Environment.NewLine, string.Join(Environment.NewLine, errores), Environment.NewLine, e.StackTrace.ToString())); throw new Exception(string.Join(Environment.NewLine, errores)); } catch (Exception ex) { errores.Add(ex.Message); Exception _ex = ex.InnerException; while (_ex != null) { errores.Add(_ex.Message); _ex = _ex.InnerException; } //log.Error(string.Format("Objecto : {0} {1} Mensaje : {2} {3} Fuente : {4}", // ex.Source.ToString(), Environment.NewLine, string.Join(Environment.NewLine, errores), Environment.NewLine, ex.StackTrace.ToString())); throw new Exception(string.Join(Environment.NewLine, errores)); } return(Tuple.Create(datosActualizados, errores.ToArray())); }