cierto! acá publico el código
tomo valores de un select enviando el nombre del mes y el año
los recibo por POST y traduzco los nombres de los meses en los dias de inicio y fin
Código PHP:
Ver originalif ($mes1 == "Enero"){
$mes2 = "0101";
$mes3 = "3101";
}
if ($mes1 == "Febrero") {
$mes2 = "0102";
if ($anoact %4 == 0) {
$mes3 = "2902";
}else{
$mes3 = "2802";
}
}
if ($mes1 == "Marzo") {
$mes2 = "0103";
$mes3 = "3103";
}
if ($mes1 == "Abril") {
$mes2 = "0104";
$mes3 = "3004";
}
if ($mes1 == "Mayo") {
$mes2 = "0105";
$mes3 = "3105";
}
if ($mes1 == "Junio") {
$mes2 = "0106";
$mes3 = "3006";
}
if ($mes1 == "Julio") {
$mes2 = "0107";
$mes3 = "3107";
}
if ($mes1 == "Agosto") {
$mes2 = "0108";
$mes3 = "3108";
}
if ($mes1 == "Septiembre") {
$mes2 = "0109";
$mes3 = "3009";
}
if ($mes1 == "Octubre") {
$mes2 = "0110";
$mes3 = "3110";
}
if ($mes1 == "Noviembre") {
$mes2 = "0111";
$mes3 = "3011";
}
if ($mes1 == "Diciembre") {
$mes2 = "0112";
$mes3 = "3112";
}
luego construyo la fecha en un numero que mysql pueda entender para hacer selecciones en la BD
Código PHP:
Ver original$dia01 = substr ($mes2, 0, 2); $anobb = substr ($anoact, -4);
$dia = (int)$dia01;
$mes = (int)$mes01;
$ano = (int)$anobb;
$dia2cc = substr ($mes3, 0, 2); $ano2cc = substr ($anoact, -4);
$dia2 = (int)$dia2cc;
$mes2 = (int)$mes2cc;
$ano2 = (int)$ano2cc;
$primera = mktime(01,02,01,$mes,$dia,$ano); $segunda = mktime(23,59,59,$mes2,$dia2,$ano2);
luego de esto genero la tabla con codigo HTML y PHP
Código PHP:
Ver original<table align="left" border="1" cellpadding="0" cellspacing="0">
<tr>
<td align="center" bgcolor="red" class="texto" colspan="3">Pasillo <?php echo $pasillo; ?></td><td align="center" bgcolor="#0099FF" class="texto" colspan="33"><?php echo $mes1; ?></tr>
<tr><td align="center" colspan="3" bgcolor="red"> </td><td colspan="33" bgcolor="#0099FF"> </td></tr>
<tr>
<td align="center" colspan="1" bgcolor="red"><font color="white">Cedula</font></td><td align="center" colspan="2" bgcolor="red"><font color="white">Nombre</font></td></td>
ahora hecho esto construyo el php para el calendario, traduzco los dias de la semana y finalizo la tabla con un bucle
Código PHP:
Ver original$f1= $ano."/".$mes."/".$dia."";
$f2= $ano2."/".$mes2."/".$dia2."";
for ($i=0;$i<=$dif;$i++){
$dia1=mktime(0,0,0,$partes[1],$partes[2]+$i,$partes[0]); $nom_dia = date("D",$dia1); echo '<td align="center" bgcolor="#0099FF" class="texto">'.$nom_dia.'</td>';
}
echo '</tr><tr>';
echo'<td align="center" colspan="3"> </td>';
for ($i=0;$i<=$dif;$i++){
$dia1=mktime(0,0,0,$partes[1],$partes[2]+$i,$partes[0]); echo '<td align="center" bgcolor="#0099FF" class="texto">'.date("j",$dia1).'</td>'; }
echo '</tr>';
luego realizo la consulta a la BD y genero la asistencia del personal.
Código PHP:
Ver original$vacia = " ";
require('conexion.php');
$sql = "SELECT distinct cirac,nomrac FROM asistencia WHERE pasillo='$pasillo' and obser='$vacia' and fecha >=$primera and fecha <=$segunda order by nomrac ASC";
$rs = mysql_query($sql,$conn);
if (mysql_num_rows($rs)!=0){
while($yrow = mysql_fetch_array($rs)) {
$nombre = $yrow["nomrac"];
$cedula = $yrow["cirac"];
echo "<tr><td align='center' colspan='1'> $cedula </td><td align='left' colspan='2'> $nombre</td>";
$sssql = "SELECT estatus,fecha,fechados FROM asistencia WHERE cirac='$cedula' and obser='$vacia' and fecha >=$primera and fecha <=$segunda order by nomrac,fecha ASC";
$rsss = mysql_query($sssql,$conn);
while($row = mysql_fetch_array($rsss)) {
$estatus = $row["estatus"];
$fechados = $row["fecha"];
$fecha3 = $row["fechados"];
$fecha = date('d/m/Y',$fechados);
if ($estatus == "Presente"){
$estatus = "T";
$color = "#00CC66";
$font = "black";
}
if ($estatus == "Ausente"){
$estatus = "A";
$color = "red";
$font = "black";
}
if ($estatus == "Libre"){
$estatus = "L";
$color = "#FFFF66";
$font = "black";
}
if ($estatus == "Permiso"){
$estatus = "P";
$color = "#283C7D";
$font = "black";
}
if ($estatus == "Vacaciones"){
$estatus = "V";
$color= "#FF6699";
$font = "black";
}
if ($estatus == "Relevo"){
$estatus = "C";
$color = "#00CC66";
$font = "black";
}
if ($estatus == "Reposo"){
$estatus = "R";
$color = "#33FFCC";
$font = "black";
}
if ($estatus == "Retardo"){
$estatus = "T";
$color = "#00CC66";
$font = "black";
}
if ($estatus == "A"){
$estatus1 = "Ausente";
$color = "red";
$font = "black";
}
if ($estatus == "L"){
$estatus1 = "Libre";
$color = "#FFFF66";
$font = "black";
}
if ($estatus == "P"){
$estatus1 = "Permiso no Remunerado";
$color = "#283C7D";
$font = "white";
}
if ($estatus == "V"){
$estatus1 = "Vacaciones";
$color= "#FF6699";
$font = "black";
}
if ($estatus == "T"){
$estatus1 = "Presente";
$color = "#00CC66";
$font = "black";
}
if ($estatus == "R"){
$estatus1 = "Permiso Remunerado";
$color = "#33FFCC";
$font = "black";
}
$consulta = "SELECT observacion from asistencia where cirac='$cedula' and fecha='$fechados'";
$query = mysql_query($consulta,$conn);
while($col = mysql_fetch_array($query)){
$observacion = $col["observacion"];
?>
<td bgcolor="<?php echo $color; ?>"><div class="title"><a href="observacion.php?fecha=<?php echo $fecha3; ?>&cedula=<?php echo $cedula; ?>" target="popup" onClick="window.open(this.href, this.target, 'width=300,height=200'); return false;" style='text-decoration:none;color:<?php echo $font; ?>;'><?php echo $estatus; ?></a><span><?php echo $nombre; ?> <?php echo $observacion; ?> Fecha <?php echo $fecha; ?></span></div></td>
<?php
}
}
}
echo"</tr>";
}
y finalizo la tabla
Eso es lo que he hecho.
Gracias por la ayuda a todos.
Saludos!!