diff --git a/www/protected/controllers/CandidatoController.php b/www/protected/controllers/CandidatoController.php index 0159774..3bd1ddd 100644 --- a/www/protected/controllers/CandidatoController.php +++ b/www/protected/controllers/CandidatoController.php @@ -117,11 +117,14 @@ class CandidatoController extends Controller { } // Guardar los datos + $errores = array(); $transaccion = Yii::app()->db->beginTransaction(); try { Yii::trace('Guardando el candidato', 'application.controllers.CandidatoController'); - if (!$candidato->save()) + if (!$candidato->save()) { + $errores = array_merge($errores, $candidato->getErrors()); throw new CException('Error al guardar el candidato'); + } if (($quitarFotografia == '1') && ($candidato->fotografia->tieneFotografia())) { Yii::trace('Eliminando la fotografía del candidato', 'application.controllers.CandidatoController'); @@ -136,16 +139,21 @@ class CandidatoController extends Controller { // Titulaciones if (!empty($listaTitulacionesBorrar)) { Yii::trace('Eliminando titulaciones marcadas para borrar', 'application.controllers.CandidatoController'); - foreach ($listaIdiomasBorrar as $candidatoTitulacion) { - if (!$candidatoTitulacion->delete()) + foreach ($listaTitulacionesBorrar as $candidatoTitulacion) { + if (!$candidatoTitulacion->delete()) { + $errores = array_merge($errores, $candidatoTitulacion->getErrors()); throw new CException('Error al eliminar una titulación del candidato'); + } } + $listaTitulacionesBorrar = NULL; } if (!empty($candidato->titulaciones)) { Yii::trace('Guardando la lista de titulaciones', 'application.controllers.CandidatoController'); foreach ($candidato->titulaciones as $candidatoTitulacion) { - if (!$candidatoTitulacion->save()) + if (!$candidatoTitulacion->save()) { + $errores = array_merge($errores, $candidatoTitulacion->getErrors()); throw new CException('Error al guardar una titulación del candidato'); + } } } @@ -153,15 +161,22 @@ class CandidatoController extends Controller { if (!empty($listaIdiomasBorrar)) { Yii::trace('Eliminando idiomas marcados para borrar', 'application.controllers.CandidatoController'); foreach ($listaIdiomasBorrar as $candidatoIdioma) { - if (!$candidatoIdioma->delete()) + Yii::trace('Eliminando idioma... ', 'application.controllers.CandidatoController'); + Yii::trace(CVarDumper::dumpAsString($candidatoIdioma->attributes), 'application.controllers.CandidatoController'); + if (!$candidatoIdioma->delete()) { + $errores = array_merge($errores, $candidatoIdioma->getErrors()); throw new CException('Error al eliminar un idioma del candidato'); + } } + $listaIdiomasBorrar = NULL; } if (!empty($candidato->idiomas)) { Yii::trace('Guardando la lista de idiomas', 'application.controllers.CandidatoController'); foreach ($candidato->idiomas as $candidatoIdioma) { - if (!$candidatoIdioma->save()) + if (!$candidatoIdioma->save()) { + $errores = array_merge($errores, $candidatoIdioma->getErrors()); throw new CException('Error al guardar un idioma del candidato'); + } } } @@ -177,12 +192,6 @@ class CandidatoController extends Controller { Yii::app()->user->setFlash('error', Yii::t('profind', 'Se ha producido un error al actualizar el candidato')); if (YII_DEBUG) { - $errores = $candidato->getErrors(); - if (isset($candidatoTitulacion)) - $errores = array_merge($errores, $candidatoTitulacion->getErrors()); - if (isset($candidatoIdioma)) - $errores = array_merge($errores, $candidatoIdioma->getErrors()); - $resultado = array(); foreach ($errores as $campo => $mensaje) $resultado[$campo] = $mensaje;