Agenda férias
Pessoal... tenho uma "agenda de férias" mas os resultados não estão sendo exibidos de uma maneira muito boa... o problema é que se o funcionário tem dois períodos distintos no mesmo mês, ele vai aparecer duas vezes. Eu queria que o nome aparecesse só uma vez e que os períodos ficassem na mesma linha... a exibição atual é mais ou menos assim:
-------------------------------------------------------------------------------------------------------------
FUNCIONÁRIO --- DIAS DO MÊS
funcionário1 --- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20...
funcionário1 --- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20...
-------------------------------------------------------------------------------------------------------------
Os vermelhos são os dias que ele está em férias... só que são muitos funcionários e a tabela dobra de tamanho e é difícil visualizar. O ideal seria assim:
-------------------------------------------------------------------------------------------------------------
FUNCIONÁRIO --- DIAS DO MÊS
funcionário1 --- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20...
-------------------------------------------------------------------------------------------------------------
Além disso, não mostra se o dia é sábados e domingos... que não é imprescindível mas seria interessante... mostra só os dias do mês...
O script é esse:
$resultado = mysql_query("select u.nome, periodo, date_format(fp.dt_inicio, '%Y-%c-%d') as inicio, date_format(fp.dt_fim, '%Y-%c-%d') as fim from usuarios u
left join ferias fp on (fp.usuario_id = u.id_usuario)
where date_format(fp.dt_inicio, '%Y-%m') <= date_format('$d', '%Y-%m')
and date_format(fp.dt_fim, '%Y-%m') >= date_format('$d', '%Y-%m')
ORDER BY u.nome");
if(mysql_num_rows($resultado) < 1) {
echo 'Não há servidores em férias ou afastados neste mês!!!';
}while($l = mysql_fetch_array($resultado)) {
$nome = $l["nome"];
$periodo = $l["periodo"];
$inicio = $l["inicio"];
$fim = $l["fim"];
$inicio = strtotime($inicio);
$fim = strtotime($fim);
if ($periodo == '0') {
$cor = "doma";
$cor1 = "td";
}else {
$cor = "dom";
$cor1 = "td";
}
$dt = 1;
for($i = 1; $i <= $n; $i++ ){/*agora vamos no banco de dados verificar os evendos*/
if($dt == 1){/*imprime os domingos*/
?>
<table>
<tr>
<td width="200"><?php echo $nome; ?></td>
<td class="<?php
$atual = $ano.'-'.$month.'-'.$i;
$atual = strtotime($atual);
if (($atual >= $inicio) and ($atual <= $fim)){ echo $cor;}
else { echo $cor1;}
?>"><?php echo $i; ?></td>
<?php
$dt++;
}else{/*imprime os dias normais*/
$atual = $ano.'-'.$month.'-'.$i;
$atual = strtotime($atual);
?>
<td class="<?php
if (($atual >= $inicio) and ($atual <= $fim)){ echo $cor;}
else { echo $cor1;}
?>"><?php echo $i; ?></td>
<?php
$dt++;
}
}
?>
</tr>
</table>
Alguém sabe juntar esses períodos e exibir os funcionários em uma única linha?
Discussão (1)
Carregando comentários...