Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Gostaria de saber se alguém já passou por isso.
Outros meses o calendário é gerado certo, só no mês de Fevereivo que está acontencendo isso :(
Ainda não tive idéia de como faze funcionar certo.
Segue a imagem:
http://img571.imageshack.us/f/erroestranho.jpg/
valeu, té mais
segue uma parte, o que gera:
//gera o intervalo de data---------------------------------------------------------
$mes_ini = $mes; //mes inicial
$mes_fim = $mes1; //mes final
$dia_ini = $_POST['dia']; //dia inicial
$dia_fim = $_POST['dia1']; //dia final
$ano_ini = $_POST['ano']; //ano inicial
$ano_fim = $_POST['ano1']; //ano final
$dini = mktime(0,0,0,$mes_ini,$dia_ini,$ano_ini); // timestamp da data inicial
$dfim = mktime(0,0,0,$mes_fim,$dia_fim,$ano_fim); // timestamp da data final
while($dini <= $dfim)//enquanto uma data for inferior a outra
{
//echo $dt."<br>"; //exibindo a data
//loop com a quantidade de dias------------------------------------------------
//for ($i=1;$i<=$tot_dias;$i++) {
//
$trataData1 = date("Y-m-d",$dini);//convertendo a data no formato dia/mes/ano
$trataData = explode("-",$trataData1);
$data1 = date("Y-m-d", mktime(0,0,0, $trataData[1], $trataData[2],$trataData[0]));
$sql = mysql_query("SELECT
*
from
ponto
where
id_funcionario = $funcionario
and
data_hora like '$data1%'
order by data_hora
") or die(mysql_error());
$tot = mysql_num_rows($sql);
$dia_semana = get_dia($trataData[2], $trataData[1], $trataData[0]);
//para ver quem está com falta
$sqlFalta = mysql_query("SELECT
distinct falta, data_hora
from
ponto
where
id_funcionario = $funcionario
and
data='$data1'
order by data_hora
") or die(mysql_error());
$falta = mysql_fetch_assoc($sqlFalta);
$tot_horas = 0;
$ultima_entrada = 0;
//$dataAtual2 = data();
$tot_horas_mes_show = NULL;
echo "<tr>\n";
echo "\t<td bgcolor=\"#FFEC8B\"><center>".date("d/m/Y", mktime(0,0,0, $trataData[1], $trataData[2], $trataData[0]))."</center></td>\n";
echo "\t<td bgcolor=\"#FFEC8B\"><center>".$dia_semana."</center></td>\n";
//tipo = FA: faltas FO: folgas AT: atestado
//$tipoBatidas = $falta['falta'];
//loop pegando as batidas do dia
for ($k=0;$k<$tot;$k++)
{
$reg = mysql_fetch_array($sql);
$tipo=$reg[2];
$hora=explode(" ",$reg[4]);
//$dataBanco = $hora[0];
$clock=explode(":",$hora[1]);
$hora=$clock[0];
$min=$clock[1];
if ($tipo==0) {
$ultima_entrada = ($min + ($hora*60));
}else{
$tot_horas += (($min + ($hora*60)) - $ultima_entrada);
}
//echo $tipoBatidas;
//echo $tot_horas;
if($tipoBatidas == "AT"){
echo "\t<td bgcolor=\"#DEB887\"><b><center>".$hora.":".$min."</center></b></td>\n";
}else{
echo "\t<td bgcolor=\"#CDCDC1\"><b><center>".$hora.":".$min."</center></b></td>\n";
}
}//fim
//pega a Hora e o Resto da Divisão para o minuto
$hora = $tot_horas / 60;
$min = $tot_horas % 60;
//$horas_dia - hora de trabalho por dia, setado no cadastro-----------------------------------------------------------------------------------------------------------
//$horad = explode(":",$horas_dia);
$segSab = "outros";
//$dia_semana = get_dia($trataData[2], $trataData[1], $trataData[0]);
//echo "<h1>".$dia_semana."</h1>";
//carga horaria para funcionarios que fazer de segunda a sexta: 8h e sabado: 4horas, valor para teste, o certo vira pelo banco
if($segSab == "outros"){
if($dia_semana == "SEG"){
$hd = "8:00";
$contaHorario = $contaHorario + 8;
if($falta['falta'] == "FO"){
$folga = $falta['data_hora'];
$hdF = $hdF + 8;
}
}elseif ($dia_semana == "TER"){
$hd = "8:00";
$contaHorario = $contaHorario + 8;
if($falta['falta'] == "FO"){
$folga = $falta['data_hora'];
$hdF = $hdF + 8;
}
}elseif ($dia_semana == "QUA"){
$hd = "8:00";
$contaHorario = $contaHorario + 8;
if($falta['falta'] == "FO"){
$folga = $falta['data_hora'];
$hdF = $hdF + 8;
}
}elseif ($dia_semana == "QUI"){
$hd = "8:00";
$contaHorario = $contaHorario + 8;
if($falta['falta'] == "FO"){
$folga = $falta['data_hora'];
$hdF = $hdF + 8;
}
}elseif ($dia_semana == "SEX"){
$hd = "8:00";
$contaHorario = $contaHorario + 8;
if($falta['falta'] == "FO"){
$folga = $falta['data_hora'];
$hdF = $hdF + 8;
}
}elseif ($dia_semana == "SAB"){
$hd = "4:00";
$contaHorario = $contaHorario + 4;
if($falta['falta'] == "FO"){
$folga = $falta['data_hora'];
$hdF = $hdF + 4;
}
}else{
$hd = "0:00";
}
//echo "<h1>".$hd."</h1>";
}
//$hd = "03:00";
$horad = explode(":",$hd);
$hora_dia = $horad[0];
$min_dia = $horad[1];
if ($tot_horas >= (($hora_dia * 60) + $min_dia))
{
$extra_falta = $tot_horas - (($hora_dia * 60) + $min_dia);
$sinal = "+";
$cor = "#000000";
$font = "<font color=\"white\">";
$extraAtraso = "\t<td bgcolor=\"$cor\" >$font<center><b>".$sinal . date("H:i", mktime($extra_falta / 60 , $extra_falta % 60, $trataData[2], $trataData[1], $trataData[0]))."</center></b></td>\n";
$aeSim = date("H:i", mktime($extra_falta / 60 , $extra_falta % 60, $trataData[2], $trataData[1], $trataData[0]));
$aeSim = explode(":", $aeSim);
$aooo += ($aeSim[1] + ($aeSim[0]*60));
$divide = $aooo/60;
$divide = explode(".",$divide);
$divide1 = $aooo%60;
$divide1 = $divide1 / 100;
$divide1 = $divide1 * 60;
if($divide1 <= 9){
$mostraHora = $divide[0].":"."0".$divide1;
}else{
$mostraHora = $divide[0].":".$divide1;
}
//($min + ($hora*60));
$quebra1 = explode(":",$mostraHora);
$quebra1 = ($quebra1[1] + ($quebra1[0]*60));
echo "<h1>Extra: ".$quebra1."</h1>";
}else
{
if($falta["falta"] != 'FO')
{
if($dia_semana == "SEG" ||
$dia_semana == "TER" ||
$dia_semana == "QUA" ||
$dia_semana == "QUI" ||
$dia_semana == "SEX" ||
$dia_semana == "SAB")
{
$extra_falta = (($hora_dia * 60) + $min_dia) - $tot_horas;
$sinal = " -";
$cor = "#CD950C";
$extraAtraso = "\t<td bgcolor=\"$cor\" ><center>".$sinal . date("H:i", mktime($extra_falta / 60 , $extra_falta % 60, $trataData[2], $trataData[1], $trataData[0]))."</center></td>\n";
$negativo = date("H:i", mktime($extra_falta / 60 , $extra_falta % 60, $trataData[2], $trataData[1], $trataData[0]));
$deuCerto = explode(":", $negativo);
$blzera += ($deuCerto[1] + ($deuCerto[0]*60));
$pega = $blzera/60;
$pega = explode(".",$pega);
$pega1 = $blzera % 60;
$pega1 = $pega1 / 100;
$pega1 = $pega1 * 60;
if($pega1 <= 9)
{
$mostraHora1 = $pega[0].":"."0".$paga1;
}else{
$mostraHora1 = $pega[0].":".$pega1;
}
//($min + ($hora*60));
$quebra = explode(":",$mostraHora1);
$quebra = ($quebra[1] + ($quebra[0]*60));
echo "<h1>Atraso: ".$quebra."</h1>";
}
}else{
$cor = "#FFFFFF";
$extraAtraso = "\t<td bgcolor=\"$cor\" ><center>00:00</center></td>\n";
}
}
//horas totais trabalhadas no dia-----------------------------------------------
$horas_trabalhadas = date("H:i", mktime($hora, $min, 0 , $trataData[2], $trataData[1], $trataData[0]));
//coloca um fundo caso onde estiver sem registro--------------------------------
$corSemRegistro = "#EEEEEE";
//caso ainda não tenha registro coloca '--'-------------------------------------
$msn = "<center>--</center>";
//trata o numero de até 6 batidas no dia, colocando o texto na varivél $msn
if($tot == 0){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 1){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 2){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 3){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 4){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 5){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 6){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
if($tot == 7){
echo "\t<td bgcolor=\"$corSemRegistro\">$msn</td>\n";
}
//echo "\t<td bgcolor=\"#8B0000\"><center><font color=\"white\">".$horas_trabalhadas."</center></td>\n";
echo "\t<td bgcolor=\"#EEDD82\"><center><font color=\"black\"><b>".$hd."</b></font></center></td>\n";
echo "\t<td bgcolor=\"#EEDD82\"><center><font color=\"black\"><b>".$horas_trabalhadas."</b></font></center></td>\n";
echo $extraAtraso;
/*
$somaExtra = array
$strip = explode(":",$extraAtraso);
$somaExtra = $strip[1]
*/
if($falta['falta'] == 'F'){
echo "\t<td bgcolor=\"#8B1A1A\"><center><font color=\"white\"><b>".$falta['falta']."</b></font></center></td>\n";
}else{
echo "\t<td bgcolor=\"#EEDD82\"><center><b>".$falta['falta']."</b></center></td>\n";
}
$tot_horas_mes+=$tot_horas;
//adicionando mais 1 dia (em segundos) na data inicial, para continuar o loop
$dini += 86400;
}
Cade o código? :thumbsup: