function plantrabajo($con,$sql, $anyo, $mes, $tipo){//$tipo = menu pulsado
$recursofecha = mktime(0,0,0,$mes, 1, $anyo); // recojo el valor entero de la fecha
$diasenmes = date("t", $recursofecha); //recojo el numero de dias que hay en el mes dado
$primerdiames = date("D", $recursofecha);//recojo el nombre del primer dia del mes
switch($primerdiames){//segun primer dia, nos saltaremos mas o menos casillas al comienzo del calendario.
case "Mon":
$salto = 0;
break;
case "Tue":
$salto = 1;
break;
case "Wed":
$salto = 2;
break;
case "Thu":
$salto = 3;
break;
case "Fri":
$salto = 4;
break;
case "Sat":
$salto = 5;
break;
case "Sun":
$salto = 6;
break;
}
//recojo los datos que necesito, ordenados de la fecha menor a la mayor, del mes dado.
$recursopt=db_query($con,db_querysegura($con,$sql));
$datospt=db_assoc($recursopt);
if (isset($datospt) && $datospt!=""){
while ($datospt){
$arrdatos[]=$datospt;
$datospt=db_assoc($recursopt);
}
//total de tds que tendre en la tabla
$totalpintar = $diasenmes+$salto;
//calculo se semanas (tr)
//se ponen los dias en un array para despues simplemente usar array_chunk y partir dicho array de dias en array de semanas
/*la madre del cordero
arraydias
se meten a 0 tantos valores como dias haya que saltarse (para empezar a pintar el primer dia del mes en el dia de la semana que corresponda)
*/
for ($i=0; $i<$salto; $i++){
$arraydias[]=0;
}
/*seguidamente, se rellena el contenido de cada dia del array.
si el dia forma parte del mes,
- para cada dia, se recorren los servicios que ha ddecuelto la consulta $datospt.
- se comprueba, dada la fecha del dia, y la del servicio en el que se encuentra el bucle de servicios
- si el servicio esta iniciandose
- si continua
- si finaliza
- el resultado de la comprobacion se representa, metiendo en la variable correspondiente (inicio, cont, fin) el numero de servicios de cada categoria
- por ultimo, se añade al array de dias un array asociativo que contiene el numero del dia, y el numero de servicios de cada categoria para ese dia.
en otro caso, si se ha pasado el ultimo dia del mes, en cuyo caso se rellena con 0
*/
for ($i=1;$i<=$totalpintar; $i++){
if ($i<=$diasenmes){
$continicio = 0;
$contcont=0;
$contfin=0;
foreach ($arrdatos as $servicio){
$recursoinicioservicio = MySqlFecha($servicio["Fecha_Hora_Inicio"]);
$inicioservicio = strtotime(FechaMySql($recursoinicioservicio));
$recursofinservicio= MySqlFecha($servicio["Fecha_Hora_Fin"]);
$finservicio = strtotime(FechaMySql($recursofinservicio));
$fechadiascompleta=strtotime("$anyo-$mes-$i");
//if ($fechadiascompleta>=$inicioservicio && $fechadiascompleta<=$finservicio && $i<=$diasenmes){//si el dia está en el intervalo
if ($fechadiascompleta==$inicioservicio){
$continicio++;
}
if ($fechadiascompleta>$inicioservicio && $fechadiascompleta<$finservicio){
$contcont++;
}
if ($fechadiascompleta==$finservicio){
$contfin++;
}
//}
}//fin foreach
$inicio=$continicio;
$cont=$contcont;
$fin=$contfin;
$arraydias[]=array("dia"=>$i<10? "0".$i : $i, "inicio"=>$inicio, "cont"=>$cont, "fin"=>$fin);
}else{
$arraydias[]=0;
}//fin if .. else
}//fin for
$arraysemanas = array_chunk($arraydias, 7);
//var_dump($arraydias);
//pintamos
//cabecera
$pt= "
" .
"" .
"| Lunes | " .
"Martes | " .
"Miercoles | " .
"Jueves | " .
"Viernes | " .
"Sabado | " .
"Domingo | " .
"
";
//casillas
foreach($arraysemanas as $semanas){
$pt.= "";
foreach ($semanas as $dias){
$pt.= "";
$pt.="";
$pt.= "";
$pt.= "| ";
$pt.=$dias["dia"]!=0? "".$dias["dia"]."" : "";
$pt.=" | ";
$pt.= " ";
$pt.= " ";
if ($dias!=0){
$pt.="";
if ($dias["inicio"]!=null){
$pt.=" | ";
$pt.="";
$pt.=$dias["inicio"];
$pt.=" | ";
}
if ($dias["cont"]!=null){
$pt.=" | ";
$pt.="";
$pt.=$dias["cont"];
$pt.=" | ";
}
if ($dias["fin"]!=null){
$pt.=" | ";
$pt.="";
$pt.=$dias["fin"];
$pt.=" | ";
}
$pt.= " ";
}
$pt.= " | ";
}
$pt.= "
";
}
$pt.= "
";
}else{
$pt="";
}
return($pt);
}