public function gravaDadosComunicado(Comunicado $comunicado){ $banco = $this->getBancoDados(); if (strlen($comunicado->getId())>0){ $query = " UPDATE tbl_comunicado SET instituicao = $comunicado->Xinstituicao, curso = $comunicado->Xcurso, professor = $comunicado->Xprofessor, titulo = $comunicado->Xtitulo, data = $comunicado->Xdata, comentario = $comunicado->Xcomentario, obrigatorio = $comunicado->Xobrigatorio WHERE comunicado = ".$comunicado->getId(); }else{ $query = "INSERT INTO tbl_comunicado ( instituicao , curso , professor , titulo , data , comentario , obrigatorio ) VALUES ( $comunicado->Xinstituicao, $comunicado->Xcurso, $comunicado->Xprofessor, $comunicado->Xtitulo, $comunicado->Xdata, $comunicado->Xcomentario, $comunicado->Xobrigatorio )"; } if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir Comunicado. (SQL: $query ) "); } if (strlen($comunicado->getId())==0){ $comunicado->setId($banco->insert_id()); } if (is_object($comunicado->getCurso())){ $query = " INSERT INTO tbl_comunicado_aluno (comunicado,aluno) SELECT DISTINCT ".$comunicado->getId().", tbl_curso_aluno.aluno FROM tbl_curso_aluno JOIN tbl_comunicado USING(curso) WHERE tbl_curso_aluno.aluno NOT IN ( SELECT aluno FROM tbl_comunicado_aluno WHERE comunicado = ".$comunicado->getId()." ) AND tbl_curso_aluno.curso = ".$comunicado->getCurso()->getId(); }else{ $query = " INSERT INTO tbl_comunicado_aluno (comunicado,aluno) SELECT DISTINCT ".$comunicado->getId().", tbl_aluno.aluno FROM tbl_aluno WHERE tbl_aluno.instituicao = ".$comunicado->_login_instituicao." AND tbl_aluno.aluno NOT IN ( SELECT aluno FROM tbl_comunicado_aluno WHERE comunicado = ".$comunicado->getId()." )"; } if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir Comunicado. (SQL: $query ) "); } $query = " SELECT tbl_comunicado.instituicao, tbl_comunicado.professor, tbl_curso_aluno.aluno FROM tbl_curso_aluno JOIN tbl_comunicado USING(curso) LEFT JOIN tbl_professor ON tbl_professor.professor = tbl_comunicado.professor WHERE tbl_comunicado.comunicado = ".$comunicado->getId(); $banco = $this->getBancoDados(); $comunicado = NULL; $retorno = $banco->executaSQL($query); if($retorno != NULL) { while($linha = $banco->fetchArray($retorno)) { $sessionFacade = new SessionFacade($banco); $obj_instituicao = $sessionFacade->recuperarInstituicao($linha["instituicao"]); $obj_professor = $sessionFacade->recuperarProfessor($linha["professor"]); $obj_aluno = $sessionFacade->recuperarAluno($linha["aluno"]); /* Envio de Email para Notificação */ if (getRealIpAddr() != '127.0.0.1'){ $mail = new PHPMailer(); $body = $mail->getFile('emails/comunicado.html'); $variaveis = array("{ALUNO}","{PROFESSOR}","{NOME_INSTITUICAO}","{LOGIN}", "{SENHA}","{KEY}","{P}","{A}"); $valores = array( $obj_aluno->getNome(), $obj_professor->getNome(), $obj_instituicao->getNome(), $obj_aluno->getEmail(), $obj_aluno->getSenha(), md5($obj_aluno->getId().$obj_aluno->getEmail()), '', $obj_aluno->getId() ); $body = str_replace($variaveis, $valores, $body); $mail->From = "*****@*****.**"; $mail->FromName = "TesteNet"; $mail->Subject = "TesteNet - Novo Comunicado!"; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; $mail->MsgHTML($body); $mail->AddAddress($obj_aluno->getEmail(), $obj_aluno->getNome()); $mail->AddBCC('*****@*****.**', 'Suporte TesteNet'); $mail->Send(); } } } }
function gravarComunicado(Comunicado $comunicado){ if (!is_object($comunicado->getInstituicao())){ throw new Exception('Instituição é obrigatória'); }else{ $comunicado->Xinstituicao = $comunicado->getInstituicao()->getId(); } if (!is_object($comunicado->getCurso())){ $comunicado->Xcurso = " NULL "; }else{ $comunicado->Xcurso = $comunicado->getCurso()->getId(); } if (!is_object($comunicado->getProfessor())){ $comunicado->Xprofessor = " NULL "; }else{ $comunicado->Xprofessor = $comunicado->getProfessor()->getId(); } if (strlen($comunicado->getTitulo())==0){ throw new Exception('Informe o título do comunicado!'); }else{ $comunicado->Xtitulo = "'".$comunicado->getTitulo()."'"; } if (strlen($comunicado->getData())==0){ throw new Exception('Informe a data do comunicado!'); }else{ $comunicado->Xdata = ConverteData($comunicado->getData(),"'"); } if (strlen($comunicado->getComentario())==0){ throw new Exception('Informe o conteúdo do comunicado'); }else{ $comunicado->Xcomentario = "'".$comunicado->getComentario()."'"; } if (strlen($comunicado->getObrigatorio())==0){ $comunicado->Xobrigatorio = " 0 "; }else{ $comunicado->Xobrigatorio = "'".$comunicado->getObrigatorio()."'"; } $comunicadoDAO = new ComunicadoDAO(); $comunicadoDAO->setBancoDados($this->banco); $comunicadoDAO->gravaDadosComunicado($comunicado); }