コード例 #1
0
ファイル: ConMailer.php プロジェクト: Drake86cnf/yacare
 /**
  * Agrega una novedad a un requerimiento y envía un e-mail al usuario si corresponde.
  * 
  * @param object $entidad      La novedad a notificar o el reqeurimiento.
  * @param string $vistaEmail   El nombre de la plantilla para el mensaje de e-mail. 
  */
 protected function InformarNovedad($request, $entidad, $vistaEmail = 'YacareRequerimientosBundle:Requerimiento/Mail:requerimiento_novedad.html.twig')
 {
     if (trim(get_class($entidad), '\\') == 'Yacare\\RequerimientosBundle\\Entity\\Novedad') {
         $Requerimiento = $entidad->getRequerimiento();
         $Novedad = $entidad;
     } else {
         $Requerimiento = $entidad;
         $Novedad = null;
     }
     $Destinatarios = array();
     if ($Requerimiento->getEncargado() && $Requerimiento->getEncargado()->getEmail() && filter_var($Requerimiento->getEncargado()->getEmail(), FILTER_VALIDATE_EMAIL)) {
         $Destinatarios[$Requerimiento->getEncargado()->getEmail()] = $Requerimiento->getEncargado()->NombreAmigable();
     }
     if ($Requerimiento->getUsuario() && $Requerimiento->getUsuario()->getEmail() && filter_var($Requerimiento->getUsuario()->getEmail(), FILTER_VALIDATE_EMAIL)) {
         $Destinatarios[$Requerimiento->getUsuario()->getEmail()] = $Requerimiento->getUsuario()->NombreAmigable();
     } elseif (filter_var($Requerimiento->getUsuarioEmail(), FILTER_VALIDATE_EMAIL)) {
         if ($Requerimiento->getUsuarioNombre()) {
             $Destinatarios[$Requerimiento->getUsuarioNombre()] = $Requerimiento->getUsuarioEmail();
         } else {
             $Destinatarios['Usuario anónimo'] = $Requerimiento->getUsuarioEmail();
         }
     }
     if (count($Destinatarios) > 0) {
         $res = $this->ConstruirResultado(new \Tapir\AbmBundle\Helper\Resultados\ResultadoVerAction($this), $request);
         $res->Entidad = $Requerimiento;
         $res->Novedad = $Novedad;
         $ContenidoMensaje = $this->renderView($vistaEmail, array('res' => $res));
         $Mensaje = \Swift_Message::newInstance()->setSubject('Novedades de la solicitud Nº ' . $Requerimiento->getSeguimientoNumero())->setFrom(array('*****@*****.**' => 'Municipio de Río Grande'))->setTo($Destinatarios)->setBody(\Tapir\BaseBundle\Helper\StringHelper::ObtenerTextoCuerpoHtml($ContenidoMensaje))->addPart($ContenidoMensaje, 'text/html');
         $this->get('mailer')->send($Mensaje);
     }
 }