Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto_S_Luz

[Resolvido] Criar um alerta de acordo com o intervalo de datas

Recommended Posts

Olá galera....tudo bem???

 

 

Bom...estou com o seguinte problema:

 

Tenho uma tabela de funcionario com os seguintes atributos:

 

Vencimento da carteira de habilitação

Vencimento do exame periodico.

 

E o que o sistema tem que fazer é o seguinte:

 

Toda vez que o usuario logar no sistema, a primeiração ação do sistema é fazer uma busca em todos os funcionarios que estão ativos né, verificando esses dois campos aí.

 

Quando os dois campos forem comparados à data atual e o intervalo der igual ou menor que 1 mês, é para exibir um alerta com os nomes do funcionarios que estão com essas duas datas prestes a vencer.

 

 

O grande problema é que estou sem um pingo de ideias de como fazer isso, alguem sabe? alguem pode me dar uma dica?

 

Desde já, agradeço à todos. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabo de pensar em algo aki...

A ideia é a seguinte:

 

Pegar a data atual, somar mais um mês, daí faço uma busca entre a data atual e a nova data somada com um mês adiante, daí irei pegar todas as datas dentre esse intervalo.

 

Acho que pode ser uma solução...(o problema é acrescentar esse 1 mês aí que não sei nem pra que rumo vai, e tambem irei mecher com dois campos de data de uma vez só em vez de apenas uma data, mas...fazer oque né...rssss)vou testar aki....qualquer coisa....volto a postar novamente ok.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... Você faria algo mais ou menos assim.

SELECT * FROM tabela WHERE vcto_exame_periodico <= 'data_que_vc_quer'

Daí você faz o while e grava em uma variável. Mais ou menos assim

$alert = 'As seguintes pessoas estão com o documento quase vencendo: \n';
while($rs = mysql_fetch_array($qq)){
	$alert.= ' - '.$rs['nome_do_cidadao'].'\n';
}
echo '<script> alert(\''.$alert.'\') </script>';

Mais ou menos isto

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Função para somar data

function SomarData($data, $dias = 0, $meses = 0, $ano = 0)
{
   /*www.brunogross.com*/
   //passe a data no formato dd/mm/yyyy 
   $data = explode("/", $data);
   $newData = date("d/m/Y", mktime(0, 0, 0, $data[1] + $meses, $data[0] + $dias, $data[2] + $ano) );
   return $newData;
}

É bom quando você for pegar a data, não pegar entre, pois pode ser que alguém tenha ficado vencido e não tenha feito o que tinha que fazer e não fez... (putz, que frase horrível!!!). Vou exemplificar.

 

Hoje é dia 18/06/2009. Imagina que você vai usar a questão do mês. Então você vai buscar todos que vence entre 18/06/2009 e 18/07/2009. Se o vencimento era dia 17/06/2009 não vai exibir... Entendeu?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm....bem pensado Carlos Eduardo, essa possibilidade nem passou pela minha cabeça de vento...

Mas...vou elaborar algo de acordo com as suas dicas aí, daí postarei o resultado assim que eu o tiver ou até gerar outra dúvida em relação a este problema...rsss

 

Abraços meu amigo e obrigado pela ajuda!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera...de acordo com a ideia que me ocorreu e com a ajuda do nosso amigo Carlos Eduardo, consegui realizar o meu objetivo.

Taí aí o um esboço do codigo para futuras pesquisas

 

<?php

	require_once $_SERVER["DOCUMENT_ROOT"]."/sistema/php/classes/geral.php";
	
	$geral = new geral();
	require_once $geral->conexao();
	
	
	class listar_vencimento{
	
		public function listando(){
			
			$db = new conexao();
			$db->abrir();
			
			//	Pegando a data atual e somando um mês a mais
			echo $data = date('d/m/Y',mktime(0,0,0,date('m') + 1,date('d'),date('Y')));
			
//Revertendo a data ao contrario para que seja realizada a consulta no banco 

			$data = implode("/",array_reverse(explode("/", $data)));
			
						// Realizando a busca de acordo com a data acima, e somente as datas inferiores à data especifica e somente os funcionarios com o status igua la 1 -> ativos

			$sql = "SELECT `pessoa`.`pes_nome`,`funcionario`.`func_cnh_vencimento` , `funcionario`.`func_cnh_vencimento_exame`
					FROM `funcionario`,`pessoa`
					WHERE `funcionario`.`func_cnh_vencimento` AND `funcionario`.`func_cnh_vencimento_exame` <= '".$data."'
					AND `funcionario`.`pes_codigo` = `pessoa`.`pes_codigo`
					AND`funcionario`.`func_status` = 1";
			
			
			
			$consultar = $db->consulta($sql);
			
			$table.='<table align="cente" border="1">';
			while($linha = mysql_fetch_assoc($consultar)){
		
				$pes_nome			= $linha["pes_nome"]; 
				$func_cnh_vencimento = implode("/",array_reverse(explode("-",$linha["func_cnh_vencimento"])));
				$func_cnh_vencimento_exame = implode("/",array_reverse(explode("-",$linha["func_cnh_vencimento_exame"])));
				
				$table.='<tr>
							<td>'.$pes_nome.'</td>
							<td>'.$func_cnh_vencimento.'</td>
							<td>'.$func_cnh_vencimento_exame.'</td>
						</tr>';
			}
			
			return $table.'</table>';
		}
		
		
	}	
  $listar = new listar_vencimento();
  echo $listar->listando();
?>

Bom...agradeço ao Carlos Eduardo por sua grande ajuda.... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Obrigado meu amigo!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.