<?php
$ano = date('Y');
//conexão com o mesmo banco de dados em que o joomla está instalado
$db =& JFactory::getDBO();
//
//INICIA FUNCOES
function diff_hora($ini,$fim){ $conv = explode(":",$ini); $ini = ($conv[0]*60)+$conv[1]; $conv = explode(":",$fim); $fim = ($conv[0]*60)+$conv[1]; $horas = (($fim - $ini)-(($fim-$ini)%60)) / 60; $minutos = ($fim-$ini)%60; if($horas <10){ $horas = "0".$horas; } if ($minutos < 10){ $minutos = "0".$minutos; } return $horas.":".$minutos; } function soma_hora($soma,$hora){ $conv = explode(":",$hora) ; $conv2 = explode(":",$soma); $hor = $conv[0]+$conv2[0]; $min = $conv[1]+$conv2[1]; if($min>= 60){ $hor+=1; $min-=60; } if($hor <10){ $hor = "0".$hor; } if ($min < 10){ $min = "0".$min; } return "$hor:$min"; } function calculasaldohoras($deveria,$cumpriu){ $conv = explode(":",$deveria) ; $conv2 = explode(":",$cumpriu); if (($conv[0] > $conv2[0]) and ($conv[1] >= $conv2[1]) ){ $hor = $conv[0]-$conv2[0]; $min = $conv[1]-$conv2[1]; if($hor <10){ $hor = "0".$hor; } if ($min < 10){ $min = "0".$min; } return "-$hor:$min"; }elseif (($conv[0] > $conv2[0]) and ($conv[1] < $conv2[1]) ){ $hor = $conv[0]-$conv2[0]-1; $min = $conv[1]-$conv2[1]+60; if($hor <10){ $hor = "0".$hor; } if ($min < 10){ $min = "0".$min; } return "-$hor:$min"; }elseif (($conv[0] <= $conv2[0]) and ($conv[1] <= $conv2[1]) ){ $hor = $conv2[0]-$conv[0]; $min = $conv2[1]-$conv[1]; if($hor <10){ $hor = "0".$hor; } if ($min < 10){ $min = "0".$min; } return "+$hor:$min"; }else{ $hor = $conv2[0]-$conv[0]-1; $min = $conv2[1]-$conv[1]+60; if($hor <10){ $hor = "0".$hor; } if ($min < 10){ $min = "0".$min; } return "+$hor:$min"; } } function data_atual(){ $diasemana[0] = "Domingo"; $diasemana[1] = "Segunda-feira"; $diasemana[2] = "Terça-feira"; $diasemana[3] = "Quarta-feira"; $diasemana[4] = "Quinta-feira"; $diasemana[5] = "Sexta-feira"; $diasemana[6] = "Sábado"; $mesnome[1] = "janeiro"; $mesnome[2] = "fevereiro"; $mesnome[3] = "março"; $mesnome[4] = "abril"; $mesnome[5] = "maio"; $mesnome[6] = "junho"; $mesnome[7] = "julho"; $mesnome[8] = "agosto"; $mesnome[9] = "setembro"; $mesnome[10] = "outubro"; $mesnome[11] = "novembro"; $mesnome[12] = "dezembro"; $ano = date('Y'); $mes = date('n'); $dia = date('d'); $diasem = date('w'); $data = $diasemana[$diasem].', '.$dia.' de '.$mesnome[$mes].' de '.$ano; return $data; }
//TERMINA FUNCOES
//INICIA EXIBE RDAS
$query = "SELECT nome FROM `usuarios` WHERE `id` = '$id'; ";
$db->setQuery($query,0);
$nome= $db->loadResult();
//
#calcula o saldo do ano
$ini = date("Y/m/d",mktime (0, 0, 0, 1 , 1, $ano));
$fim = date("Y/m/d",mktime (0, 0, 0, 12 , 31, $ano));
$query = "SELECT *, DATE_FORMAT(`data`, '%U') AS 'semana' FROM `horarios` WHERE `rel_id_usuario`= '$id' AND `data`>= '$ini' AND `data` <='$fim' AND `ok` = '1' GROUP BY semana";
$db->setQuery($query);
$semanas=$db->loadObjectList();
$total_hora =0;
$totalqdeveria =0;
$totalhorascumpridas =0;
foreach ( $semanas as $linha) {
$diaini = strtotime($linha->data);
$diaini = mktime(0,0,0,date("m",$diaini),date("d",$diaini) - date("w",$diaini) ,date("Y",$diaini));
$diafim = mktime(0,0,0,date("m",$diaini),date("d",$diaini) + 6,date("Y",$diaini));
$horaacumprir = $linha->horas.":00";
$totalqdeveria = soma_hora($totalqdeveria,$horaacumprir);
$horacumprida = 0;
$query = "SELECT * FROM `horarios` WHERE (`data` >= '".date("Y/m/d", $diaini)."') and (`data` <= '".date("Y/m/d", $diafim)."') and (`rel_id_usuario` = '$id')";
$db->setQuery($query);
$resultado=$db->loadObjectList();
foreach ( $resultado as $teste) {
$hora_parcial = diff_hora ($teste->entrada,$teste->saida);
$horacumprida = soma_hora($horacumprida,$hora_parcial);
}
$totalhorascumpridas = soma_hora($totalhorascumpridas,$horacumprida);
}
$saldo = calculasaldohoras($totalqdeveria,$totalhorascumpridas);
//
//
//calcula o saldo total, do ano atual mais anos anteriores
//
$ano2 = date("Y");
$ini2 = date("Y/m/d",mktime (0, 0, 0, 1 , 1, 2007));
$fim2 = date("Y/m/d",mktime (0, 0, 0, 12 , 31, $ano2));
$query = "SELECT *, DATE_FORMAT(`data`, '%U') AS 'semana' FROM `horarios` WHERE `rel_id_usuario`= '$id' AND `data`>= '$ini2' AND `data` <='$fim2' AND `ok` = '1' GROUP BY semana";
$db->setQuery($query);
$semanas2=$db->loadObjectList();
$total_hora2 =0;
$totalqdeveria2 =0;
$totalhorascumpridas2 =0;
foreach ( $semanas2 as $linha2) {
$diaini2 = strtotime($linha2->data);
$diaini2 = mktime(0,0,0,date("m",$diaini2),date("d",$diaini2) - date("w",$diaini2) ,date("Y",$diaini2));
$diafim2 = mktime(0,0,0,date("m",$diaini2),date("d",$diaini2) + 6,date("Y",$diaini2));
$horaacumprir2 = $linha2->horas.":00";
$totalqdeveria2 = soma_hora($totalqdeveria2,$horaacumprir2);
$horacumprida2 = 0;
$query = "SELECT * FROM `horarios` WHERE (`data` >= '".date("Y/m/d", $diaini2)."') and (`data` <= '".date("Y/m/d", $diafim2)."') and (`rel_id_usuario` = '$id')";
$db->setQuery($query);
$resultado2=$db->loadObjectList();
foreach ( $resultado2 as $teste2) {
$hora_parcial2 = diff_hora ($teste2->entrada,$teste2->saida);
$horacumprida2 = soma_hora($horacumprida2,$hora_parcial2);
}
$totalhorascumpridas2 = soma_hora($totalhorascumpridas2,$horacumprida2);
}
$saldototal = calculasaldohoras($totalqdeveria2,$totalhorascumpridas2);
//
//TERMINA EXIBE RDAS
?>
<?php echo "$nome: RDAs $ano"; ?>
Data Inicio |
Data Final |
Horas a cumprir |
Horas cumpridas |
Saldo |
<?php
$total_hora =0;
$totalqdeveria =0;
$totalhorascumpridas =0;
$query = "SELECT *, DATE_FORMAT(`data`, '%U') AS 'semana' FROM `horarios` WHERE `rel_id_usuario`= '$id' AND `data`>= '$ini' AND `data` <='$fim' AND `ok` = '1' GROUP BY semana";
$db->setQuery($query);
$semanas=$db->loadObjectList();
$total_hora =0;
$totalqdeveria =0;
$totalhorascumpridas =0;
foreach ( $semanas as $linha) {
$diaini = strtotime($linha->data);
$diaini = mktime(0,0,0,date("m",$diaini),date("d",$diaini) - date("w",$diaini) ,date("Y",$diaini));
$diafim = mktime(0,0,0,date("m",$diaini),date("d",$diaini) + 6,date("Y",$diaini));
$horaacumprir = $linha->horas.":00";
$totalqdeveria = soma_hora($totalqdeveria,$horaacumprir);
$horacumprida = 0;
$query = "SELECT * FROM `horarios` WHERE (`data` >= '".date("Y/m/d", $diaini)."') and (`data` <= '".date("Y/m/d", $diafim)."') and (`rel_id_usuario` = '$id')";
$db->setQuery($query);
$resultado=$db->loadObjectList();
foreach ( $resultado as $teste) {
$hora_parcial = diff_hora ($teste->entrada,$teste->saida);
$horacumprida = soma_hora($horacumprida,$hora_parcial);
};
$totalhorascumpridas = soma_hora($totalhorascumpridas,$horacumprida);
echo"<TR><TD>".date("d/m/Y", $diaini)."</TD><TD>".date("d/m/Y", $diafim)."</TD><TD>$horaacumprir</TD><TD>$horacumprida</TD><TD>".calculasaldohoras($horaacumprir,$horacumprida)."</td></TR>";
}
echo"<tr><th>Total Anual:</th><th></th><th>".$totalqdeveria."</th><th>".$totalhorascumpridas."</th><th>".calculasaldohoras($totalqdeveria,$totalhorascumpridas)."</th></tr>";
echo"<tr><td>Total Geral:</td><td></td><td> </td><td> </td><td>".$saldototal."</td></tr>";
?>