public function executeAsignarNuevos(sfWebRequest $request) { $this->tipos = Doctrine_Core::getTable('Discipulo')->getTipos(); $this->forwardUnless($cadena_ids = $request->getParameter('cadena_ids'), 'asignacion', 'index'); $cadena_ids = explode('|', $cadena_ids); $id_lider = $cadena_ids[0]; $lista_nuevos = $cadena_ids[1]; $lista_nuevos = explode('-', $lista_nuevos); for ($i = 0; $i < count($lista_nuevos); $i++) { $asignacion = new Asignacion(); $lider = Doctrine_Core::getTable('Discipulo')->find($id_lider); $discipulo = Doctrine_Core::getTable('Discipulo')->find($lista_nuevos[$i]); if (Doctrine_Core::getTable('Asignacion')->estaAsginado($discipulo->getId(), $lider->getId()) == 0) { $actualizacion = $discipulo->actualizaTipo(1); if (sfConfig::get('app_envia_mails')) { $mensaje = Swift_Message::newInstance()->setFrom(sfConfig::get('app_correo_cuenta_salida'), sfConfig::get('app_correo_nombre_salida'))->setTo($discipulo->getEmailAddress())->setSubject(sfConfig::get('app_correo_subject_asignacion'))->setBody($this->getPartial('correoAsignacionDiscipulo', array('discipulo' => $discipulo, 'lider' => $lider))); $correo = $this->getMailer()->send($mensaje); $mensaje = Swift_Message::newInstance()->setFrom(sfConfig::get('app_correo_cuenta_salida'), sfConfig::get('app_correo_nombre_salida'))->setTo($lider->getEmailAddress())->setSubject(sfConfig::get('app_correo_subject_lider'))->setBody($this->getPartial('correoAsignacionLider', array('discipulo' => $discipulo, 'lider' => $lider))); $correo = $this->getMailer()->send($mensaje); $valida = $this->validaAsignacion($lider, $discipulo, $actualizacion, $correo); } else { $valida = $this->validaAsignacion($lider, $discipulo, $actualizacion); } if ($valida == 'ok') { $asignado = $asignacion->asignarNuevos($id_lider, $lista_nuevos[$i]); if ($asignado == 'ok') { $flash_tipo = 'notice'; $flash_msg = 'Se han asignado los discipulos de forma correcta'; } else { $flash_tipo = 'error'; $flash_msg = 'Ha ocurrido un error al asignar: ' . $asignado; } } else { $flash_tipo = 'error'; $flash_msg = $valida; } } else { $flash_tipo = 'error'; $flash_msg = 'Ha ocurrido un error al asignar: El discípulo ' . $discipulo . ' ya ha sido asignado al lìder ' . $lider . '.'; } } $this->getUser()->setFlash($flash_tipo, $flash_msg, false); $this->forward('asignacion', 'index'); }