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(); } } }
function save($aAlumno, $aDivision) { // $aAlumno = $this->getRequest()->getParameterHolder()->get('alumno'); // $aDivision = $this->getRequest()->getParameterHolder()->get('division'); if (count($aAlumno) > 0) { if (count($aDivision) > 0) { foreach ($aAlumno as $alumno_id) { foreach ($aDivision as $division_id) { //Borro si existe la relacion esta entre esta division y este alumno (Editar) $c = new Criteria(); $c->add(RelAlumnoDivisionPeer::FK_ALUMNO_ID, $alumno_id); $c->add(RelAlumnoDivisionPeer::FK_DIVISION_ID, $division_id); RelAlumnoDivisionPeer::doDelete($c); // Doy de alta la nueva relacion entre alumno y division $ad = new RelAlumnoDivision(); $ad->setFkAlumnoId($alumno_id); $ad->setFkDivisionId($division_id); $ad->save(); unset($ad); } } } } // return $this->redirect('relAlumnoDivision/edit?id='.$usuarioId); }