Arreglado error al borrar idioma de candidato

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_PROFIND_Web/trunk@68 3fe1ab16-cfe0-e34b-8c9f-7d8c168d430d
This commit is contained in:
David Arranz 2012-10-25 17:27:22 +00:00
parent e81ded2173
commit bdf9c1c41b

View File

@ -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;