/** * 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>'; } } } } }
/** * Método que lê a resposta do usuário informado de acorod com o seu tipo * @param Kernel_Models_Usuario $usuario * @param int $contrato O código do tipo do contrato * @return int Retorna 0 para "não aceita", 1 para "aceita" e 2 para "não respondeu" */ public function getResposta(Kernel_Models_Usuario $usuario, $contrato) { if (!is_int($contrato)) { throw new Exception("Invalid value: o contrato informado é inválido"); } $where = "usuario=" . $usuario->getId() . " and tipousuario=" . $usuario->getTipo() . " and contrato={$contrato}"; $obj = $this->getObject($where); if (!$obj) { $ret = 2; } else { $ret = $obj->resposta; } return $ret; }
/** * Método que lista todos os registros inclusos pelo usuário informado * @param Kernel_Models_Usuario $usuario Objeto referente ao usuário que fez as inclusões * @param int|array|boolean $tipo Filtra por tipo de registro * @param int|array|boolean $subTipo Filtra por subtipo de registro * @param FiltrosSistema $filtrosSistema * @return PDOStatement|boolean Retorna um objeto contendo a resposta da requisição ou FALSE em caso de erro */ public function registrosDeUsuario(Kernel_Models_Usuario $usuario, $tipo = FALSE, $subTipo = FALSE, FiltrosSistema $filtrosSistema = NULL) { $where = $inner = ""; //Filtrando os valores por tipo e subtipo if (is_int($tipo)) { $where .= "and pk_fap_tipo={$tipo} "; } elseif (is_array($tipo)) { if (Arrays::checarValores($tipo, FILTER_VALIDATE_INT)) { $where .= "and (pk_fap_tipo=" . implode(" or pk_fap_tipo=", $tipo) . ") "; } } if (is_int($subTipo)) { $where .= "and fk_fap_subtipo={$subTipo} "; } elseif (is_array($subTipo)) { if (Arrays::checarValores($subTipo, FILTER_VALIDATE_INT)) { $where .= "and (fk_fap_subtipo=" . implode(" or fk_fap_subtipo=", $subTipo) . ") "; } } //fazendo a consulta $query = "select distinct on(pk_fap_registro) *, " . "nome as professor_nome, pk_usuario as professor_pk " . "from fap.fap_registro " . "inner join fap.fap_subtipo on pk_fap_subtipo=fk_fap_subtipo " . "inner join fap.fap_tipo on pk_fap_tipo=fk_fap_tipo " . "inner join public.usuario_professor on pk_usuario_professor=fk_usuario_professor " . "inner join public.usuario on pk_usuario=fk_usuario " . "{$inner} " . "where fk_usuario_inc=" . $usuario->getId() . " {$where} " . "order by pk_fap_registro desc"; return $this->queryStatement($query); }
public function __construct() { parent::__construct(); }
public function __construct() { parent::__construct("public.usuario"); $this->coordTipos = array(self::COD_COORDENADOR => self::TITULO_COORDENADOR, self::COD_COORD_AUXILIAR => self::TITULO_COORD_AUXILIAR, self::COD_COORD_FORMATIVO => self::TITULO_COORD_FORMATIVO, self::COD_COORD_SOEP => self::TITULO_COORD_SOEP); $this->coordTiposExibicao = array(self::COD_COORDENADOR => "Coordenação Pedagógica", self::COD_COORD_SOEP => "Psicólogo(a) - SOEP", self::COD_COORD_FORMATIVO => "Coordenação Formativa", self::COD_COORD_AUXILIAR => "Auxiliar da Coordernação"); }
/** * Método que lista todas as mensagens cadastradas por um ususário especifico * OBS: Os filtros ainda não forma aplicados * @param Kernel_Models_Usuario $usuario Objeto referente ao usuário que realizou o cadastro * @param FiltrosSistema $filtrosSistema Objeto do sistema de filtros * @return PDOStatement Retorna um objeto contendo o resulta da consulta */ public function listarTodasDe(Kernel_Models_Usuario $usuario, FiltrosSistema $filtrosSistema = null) { return $this->select("user_insert=" . $usuario->getId()); }
/** * @param Kernel_Models_Usuario $usuario O usuário de destino do chamado * @param int $status Define se deve filtrar por status * @param FiltrosSistema $filtrosSistema * * @return PDOStatement|bool Retorna um objeto contendo a resposta da consulta ou FALSE em caso de erro */ public function listarTodasPara(Kernel_Models_Usuario $usuario, $status = false, FiltrosSistema $filtrosSistema = null) { $inner = 'inner join public.usuario on pk_usuario=user_insert '; $inner .= 'inner join public.usuario_tipo_vin on ' . 'fk_tipo_usuario=tipo_usuario_insert and fk_usuario=user_insert '; $where = 'destinatario=' . $usuario->getId() . ' ' . 'and destinatario_tipo=' . $usuario->getTipo() . ' '; $where .= is_int($status) ? "and public.helpdesk.status={$status} " : ''; if ($filtrosSistema instanceof FiltrosSistema) { $where .= $filtrosSistema->validar(array('de')) ? 'and dt_insert>=' . $filtrosSistema->getDe() . ' ' : ''; $where .= $filtrosSistema->validar(array('ate')) ? 'and dt_insert<=' . $filtrosSistema->getAte() . ' ' : ''; } $colunas = array('public.helpdesk.*', 'public.usuario.nome as responsavel_nome'); return $this->select($where, $colunas, $inner); }
/** * Método que envia a solicitação de alteração de dados cadastrais */ public function solicita_alt() { $pkUsuario = filter_input(INPUT_POST, 'usuario', FILTER_VALIDATE_INT); //Recebendo o código do usuário para a validação do mesmo if ($this->tipoLogado != Perfil::ADMIN) { if ($this->usuario->get_idUsuario() != $pkUsuario) { $this->setMensagem('Desculpe, você não pode pedir as alterações dos dados de outro usuário')->printResposta(); die; } } if (!$pkUsuario) { $this->setMensagem('O usuário informado é inválido.')->printResposta(); } $dadosMensagem = array(); $mensagem = ''; $emailNews = new Kernel_Models_NewsletterContas(); $usuarioObj = new Kernel_Models_Usuario(); $usuario = $usuarioObj->get($pkUsuario); $mail = new Mail(); $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_MAGIC_QUOTES); $dtnascimento = filter_input(INPUT_POST, 'data_nascimento', FILTER_SANITIZE_MAGIC_QUOTES); $cpf = filter_input(INPUT_POST, 'cpf', FILTER_SANITIZE_MAGIC_QUOTES); $rg = filter_input(INPUT_POST, 'rg', FILTER_SANITIZE_MAGIC_QUOTES); $sexo = filter_input(INPUT_POST, 'sexo', FILTER_SANITIZE_MAGIC_QUOTES); $telefone = filter_input(INPUT_POST, 'telefone', FILTER_SANITIZE_MAGIC_QUOTES); $cep = filter_input(INPUT_POST, 'cep', FILTER_SANITIZE_MAGIC_QUOTES); $endereco = filter_input(INPUT_POST, 'endereco', FILTER_SANITIZE_MAGIC_QUOTES); $numero = filter_input(INPUT_POST, 'numero', FILTER_SANITIZE_MAGIC_QUOTES); $complemento = filter_input(INPUT_POST, 'complemento', FILTER_SANITIZE_MAGIC_QUOTES); $bairro = filter_input(INPUT_POST, 'bairro', FILTER_SANITIZE_MAGIC_QUOTES); $cidade = filter_input(INPUT_POST, 'cidade', FILTER_SANITIZE_MAGIC_QUOTES); $uf = filter_input(INPUT_POST, 'estado', FILTER_SANITIZE_MAGIC_QUOTES); //Validando os dados if ($nome) { if (!Strings::validar($nome)) { $this->setMensagem('O nome informado é inválido')->printResposta(); die; } $dadosMensagem['nome'] = $nome; } if ($dtnascimento) { if (!Data::validar($dtnascimento, 'd/m/Y')) { $this->setMensagem('A data de nascimento é inválida')->printResposta(); die; } $dadosMensagem['data de nascimento'] = $dtnascimento; } if ($cpf) { if (!PadraoBrasil::validaCPF($cpf)) { $this->setMensagem('O cpf informado é inválido')->printResposta(); die; } $dadosMensagem['cpf'] = $cpf; } if ($rg) { if (!PadraoBrasil::validarRG($rg)) { $this->setMensagem('O rg informado é inválido')->printResposta(); die; } $dadosMensagem['rg'] = $rg; } if ($sexo) { if (!PadraoBrasil::validaSexo($sexo)) { $this->setMensagem('O sexo informado é inválido')->printResposta(); die; } $dadosMensagem['sexo'] = $sexo; } if ($telefone) { if (!PadraoBrasil::validarTelefone($telefone)) { $this->setMensagem('O telefone informado é inválido')->printResposta(); die; } $dadosMensagem['telefone'] = $telefone; } if ($cep) { if (PadraoBrasil::validaCep($cep)) { $this->setMensagem('O cep informado é inválido')->printResposta(); die; } $dadosMensagem['cep'] = $cep; } if ($endereco) { $dadosMensagem['endereço'] = $endereco; } if ($numero) { $dadosMensagem['número'] = $numero; } if ($complemento) { $dadosMensagem['complemento'] = $complemento; } if ($bairro) { $dadosMensagem['bairro'] = $bairro; } if ($cidade) { $dadosMensagem['cidade'] = $cidade; } if ($uf) { if (!PadraoBrasil::validaUF($uf)) { $this->setMensagem('O estado informado é inválido')->printResposta(); die; } $dadosMensagem['estado'] = PadraoBrasil::getEstado($uf); } //Montando a mensagem foreach ($dadosMensagem as $key => $value) { $mensagem .= '<div class="form-group">' . '<label>Alterar ' . $key . ' para ' . $value . '</label>' . '</div>'; } $mail->loadModelo()->mensagemDeModelo(array('titulo' => 'Solicitação de alteração dos dados pessoais', 'subtitulo' => 'O usuário ' . $usuario->nome . '(código ' . $usuario->pk_usuario . ')' . ' solicita alteração nos seguintes dados:', 'conteudo' => $mensagem)); if ($emailNews->enviar('RH Colégio GGE', '*****@*****.**', 'Solicitaçao de alteração de dados cadastrais', $mail->getMensagem())) { $this->setMensagem('Solicitação encaminhada com sucesso ao RH')->setStatusCod(0)->statusTrue(); } else { $this->setMensagem('Ocorreu o seguinte erro ao enviar a solicitação: ' . $emailNews->getErros() . '. Por favor, informe o ocorrido ao administrador do sistema e tente novamente mais tarde.'); } $this->printResposta(); }
/** * Método que lista todos os registros feitos por um usuário especifico * @param Kernel_Models_Usuario $usuario O usuário que fez as anotações * @param int|array|boolean O código do tipo do registro ou array de códigos. Informe FALSE para ignorar * @param int|array|boolean O código do subtipo do registro ou array de códigos. Informe FALSE para ignorar * @param FiltrosSistema $filtrosSistema Variavel para a filtragem dos registros. Informe FALSE para ignorar * @return PDOStatement|boolean Um objeto contendo todos os registros ou FALSE em caso de erro */ public function getAfaDeUsuario(Kernel_Models_Usuario $usuario, $tipo = FALSE, $subTipo = FALSE, FiltrosSistema $filtrosSistema = NULL) { $query = "select " . " *,public.usuario.nome as aluno_nome, " . "public.usuario_aluno.fk_usuario as pk_aluno from afa.afa_conceito_aluno " . "inner join afa.afa_subtipo_anotacao on pk_afa_subtipo_anotacao=fk_afa_subtipo_anotacao " . "inner join afa.afa_tipo_anotacao on pk_afa_tipo_anotacao=fk_afa_tipo_anotacao " . "inner join public.usuario_aluno on pk_usuario_aluno=fk_usuario_aluno " . "inner join public.turma on pk_turma=fk_turma " . "inner join public.usuario on pk_usuario=fk_usuario " . "where fk_usuario_inc=" . $usuario->getId() . " "; //Aplicando os filtros if ($filtrosSistema instanceof FiltrosSistema) { $query .= $filtrosSistema->validar(array("de")) ? "and data_evento>='" . $filtrosSistema->getDe() . "' " : ""; $query .= $filtrosSistema->validar(array("ate")) ? "and data_evento<='" . $filtrosSistema->getAte() . "' " : ""; } else { $query .= "and extract(year from data_evento)=2015 "; } //Filtrando por tipo e subtipo if (is_int($tipo)) { $query .= "and pk_afa_tipo_anotacao={$tipo} "; } elseif (is_array($tipo)) { if (Arrays::checarValores($tipo, FILTER_VALIDATE_INT)) { $query .= "and (pk_afa_tipo_anotacao=" . implode(" or pk_afa_tipo_anotacao=", $tipo) . ") "; } } if (is_int($subTipo)) { $query .= "and pk_afa_subtipo_anotacao={$subTipo} "; } elseif (is_array($subTipo)) { if (Arrays::checarValores($subTipo, FILTER_VALIDATE_INT)) { $query .= "and (pk_afa_subtipo_anotacao=" . implode(" or pk_afa_subtipo_anotacao=", $subTipo) . ") "; } } //Retorno da consulta $query .= "order by data_evento desc"; return $this->queryStatement($query); }
/** * Método que retorna o id do usuário de acordo com o grupo que ele pertence * Apenas para dispositivos moveis. * METODO TEMPORÁRIO, ATÉ O GERENCIAMENTO DE USUÁRIO SER REFEITO E CENTRALIZADO */ public function get_ids() { $usuarioSistema = new Kernel_Models_Usuario(); //Objeto responsavel pelo login $this->setMensagem("Dados inválidos"); $dadosPost = file_get_contents('php://input'); if (strlen($dadosPost)) { $post = json_decode($dadosPost); if (is_object($post)) { //Validando os dados if (!isset($post->email) || !isset($post->senha) || !isset($post->imei) || !isset($post->tipologin)) { $this->printResposta(); } $email = filter_var($post->email); //Email usado no login convencional $senha = filter_var($post->senha); //A senha de login $imei = filter_var($post->imei); //Código unico do aparelho $tipoUsuario = filter_var($post->tipologin, FILTER_VALIDATE_INT); // $so = $this->getBrowserDetect()->getS_o(); //Nome do sistema operacional do cliente $so = "generico"; //Comentado por não ser possível detectar o s.o. do cliente utilizando a classe BrowserDetect $id = $usuarioSistema->getIdEspecifico($email, $senha, $imei, $so, $tipoUsuario); if ($id) { $this->setMensagem("")->statusTrue()->setStatusCod(0)->appendResposta($id); } } } $this->printResposta(); }