예제 #1
0
	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();
				}
			}
		}

	}
예제 #2
0
	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); 
	}