public function executePasajeAlumnos($request) { $this->_pasajeAlumnosData(); if ($this->getRequest()->getMethod() == sfRequest::POST) { $pasaje = $this->getRequestParameter('pasaje'); $con = Propel::getConnection(); try { $con->beginTransaction(); $dupes = 0; foreach ($pasaje['fk_alumno_id'] as $aid) { //comprobacion por duplicados por error del schema $found = RelAlumnoDivisionPeer::existe($aid, $pasaje['fk_division_destino_id']); if ($found) { $dupes++; } else { $a = new RelAlumnoDivision(); $a->setFkDivisionId($pasaje['fk_division_destino_id']); $a->setFkAlumnoId($aid); $a->save(); } } $con->commit(); $msg = 'El pasaje de alumnos se ha realizado correctamente.'; if ($dupes > 0) { $msg .= ' De los cuales ' . $dupes . " no han pasado porque ya se encontraban en la división destino."; } $this->getUser()->setFlash('notice', $msg); } catch (Exception $e) { $this->getUser()->setFlash('error', 'Error al pasar alumnos'); $con->rollBack(); } } }