/**
  * Método que envia os e-mails para os professores semanalmente
  */
 public function enviar_newsletter()
 {
     set_time_limit(600);
     if (!$this->configs->status) {
         //impedindo o envio antes da ativação
         die('O envio esta desativado');
     }
     if ($this->configs->diaEnvio != (int) date('N')) {
         //Impedindo o envio fora do dia correto
         die('Hoje não é dia de envio');
     }
     $professorObj = new Kernel_Models_Contratos();
     $constaEnvio = new Kernel_Models_NewsletterContas();
     $usuarioSistema = new Kernel_Models_Usuario();
     $todos = $professorObj->aceitaReceber(1, $this->configs->destinatariosEspecificos);
     $mail = new Mail();
     while ($professor = $todos->fetchObject()) {
         $emailDestino = $professor->email;
         if ($this->configs->efetuarTeste) {
             $emailDestino = $this->configs->emailTeste;
         }
         if (filter_var($emailDestino, FILTER_VALIDATE_EMAIL)) {
             $token = $usuarioSistema->gerarToken($professor->pk_usuario, Kernel_Models_TiposUsuario::TIPO_PROFESSOR);
             if ($token) {
                 echo "Enviando para {$professor->nome}({$emailDestino}){$professor->pk_usuario_professor}<br>)";
                 $mail->mensagemDeModelo(array('titulo' => 'Olá ' . $professor->nome, 'subtitulo' => 'Este é o seu resumo semanal', 'conteudo' => 'Clique <a href="' . base_url() . 'usuario/auth/verificar_acesso/' . $token . '?pagina=' . base_url() . 'agendas/professor/meu_resumo_semanal/' . '">aqui</a> para ver o resumo das suas atividades '));
                 if ($constaEnvio->enviar($professor->nome, $emailDestino, 'Agenda semanal do professor', $mail->getMensagem())) {
                     echo 'Email enviado com sucesso<br>';
                 } else {
                     echo 'Falha ao enviar o e-mail para ' . $professor->nome . '<br>' . $constaEnvio->getErros() . '<br>';
                 }
             }
         }
     }
 }
Esempio n. 2
0
 /**
  * Exibe a página do relatório semanal do professor
  * @param type $pkUsuario
  * @return type Método que gera a página com o resumo semanal do professor
  */
 public function meu_resumo_semanal($pkUsuario = FALSE)
 {
     $validarUser = new Kernel_Models_ValidarUsuarios();
     $professor = $validarUser->professor($pkUsuario);
     $this->load->helper('andamento');
     $aulas = new ModelBase("public.aula");
     $registros = new Kernel_Models_Fap();
     $contratos = new Kernel_Models_Contratos();
     $agendasProf = new docentes_models_AgendaSemanal();
     $centralNotifi = new Kernel_Models_Notificacoes();
     $equipes = new Kernel_Models_Equipes();
     $unidade = new Kernel_Models_Unidade();
     $serie = new Kernel_Models_Serie();
     //Definindo os dados do professor
     $fapRegistros = $registros->registrosDeProfessor($professor);
     $contratos->setUsuario($professor);
     $resposta = $contratos->getResposta($professor, 1);
     $ultAula = $aulas->select("fk_livro!=0 and fk_usuario=" . $professor->getId(), array(), "inner join usuario_professor on fk_usuario_professor=pk_usuario_professor", array("pk_aula"), array(), 1, 0, FALSE);
     if ($resposta == 2) {
         $this->appendJs('/themes/appjs/assets/js/agendas/professor/meu_resumo_semanal_contrato_prof.min.js');
     }
     //Configurando as notificações
     $ids = array('novidades_docentes_fap', 'novidades_docentes_afa', 'novidades_docentes_acompanhamento', 'novidades_docentes_pesuisas_alunos', 'novidades_docentes_pesquisas_coord', 'novidades_docentes_diario_cl', 'novidades_docentes_mensagens');
     $parametros = array('professorId' => (string) $professor->getId());
     $centralNotifi->getUltimos($ids, $parametros);
     //Repassando os dados para o view
     $this->definirTema("appjs")->loadPlugin('bootstrap')->bowerLoad('metisMenu')->bowerLoad('angularjs')->loadPlugin('conceitos')->loadPlugin('notif.center')->setData('htmlBody', 'ng-app="app"')->setData('professor', $professor)->setData('unidades', $unidade->listarTodas(null, $professor))->setData("series", $serie->listarTodas(null, $professor))->setData('equipes', $equipes->listarTodas(null, $professor))->setData('fap', $fapRegistros)->setData('ultimaAula', $ultAula)->setdata('contrato', $resposta)->setData('temMensagem', $agendasProf->temMensagem($professor))->setData('ids', $ids)->setData('parametros', $parametros)->setData('centralNotifi', $centralNotifi)->setData('iconeNotif', base_url() . 'themes/geral/images/logo.png')->setData('arquivos', new Arquivos())->printView();
 }