Foros del Web » Programando para Internet » PHP »

Solicitudes vencidas en PHP

Estas en el tema de Solicitudes vencidas en PHP en el foro de PHP en Foros del Web. Hola amigos, estoy desarrollando un aplicativo de seguimiento a las solicitudes que realizan los usuarios mediante el aplicativo. Tengo que hacer unos informes respecto a ...
  #1 (permalink)  
Antiguo 01/07/2011, 21:49
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 2
De acuerdo Solicitudes vencidas en PHP

Hola amigos, estoy desarrollando un aplicativo de seguimiento a las solicitudes que realizan los usuarios mediante el aplicativo. Tengo que hacer unos informes respecto a esto los cuales consisten en sacar el informe de las solicitudes respondidas a tiempo y otro con solicitudes respondidas después de tiempo.
Oviamente en el sistema se parametrizan los dias de plazo para responder las silicitudes, mi modo para desarrollar esto fue el siguiente:

1-) hacer un select a la tabla de solicitudes llamando todos los registros para visualizarlos
2-) utilicé un script en PHP para extraer la cantidad de dias que hay entre la fecha de registro y la fecha de respuesta de las solicitudes
3-) Mostrar los dias que han pasado desde el registro de la solicitud hasta el dia que se respondio, EJ: 8 dias, 5 dias
4-) Mostrar el estado temporal de cada solicitud que me dice 'Contestada a tiempo', 'Contestada despues de tiempo', segun la comparacion de las fechas.

Bueno en finn.. lo que quiero es:

Que solamente me muestre las solicitudes contestadas a tiempo y las que no, por que como lo he hecho solo logro mostrar un estado de las solicitudes pero esa no es la idea.

Si alguien tiene una mejor idea le agradeceria. Gracias
  #2 (permalink)  
Antiguo 01/07/2011, 22:07
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Solicitudes vencidas en PHP

ni siquiera necesitas PHP para eso, SQL te provee de todas las herramientas para comparar fechas, deberías enfocarte en esa parte
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/07/2011, 22:13
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Solicitudes vencidas en PHP

hola maycolalvarez, si señor yo lo se, inclusive estuve utilizando el datediff pero solo funciona en servidores con versiones 6.0.4-alpha-community-log o superiores y los servidores que yo tengo, inclusive los locales son versión 5.0.91 community-cll.
Por este motivo me fui por la opcion de hacerlo con script PHP, porque no tengo servidores de esa version en donde en DATEDIFF funcione correctamente.

De todas maneras gracias por tu interes en ayudarme.
  #4 (permalink)  
Antiguo 01/07/2011, 22:17
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Solicitudes vencidas en PHP

Siendo así, la idea me parece correcta.
Sólo me queda una duda... Respecto a la diferencia de fechas mencionas que usas un script, pero, un script se entiende por algo 'grande'. En realidad se necesitan pocas líneas de código para comparar fechas..

Podrías mostrar el script que usas actualmente para poder optimizarlo o darte una mejor opción?

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 01/07/2011, 22:29
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Solicitudes vencidas en PHP

claro sourcegeek, pero ademas de eso el script que utilizo no me funciona como yo esperaba, de todas maneras te dejo el codigo, es un poco largo.


$sql="SELECT seguimiento.cod_seg,seguimiento.fecha_seg,seguimie nto.cod_sol,solicitudes.cod_sol,solicitudes.fecha_ reg,solicitudes.dias

FROM solicitudes,seguimiento

WHERE seguimiento.cod_sol=solicitudes.cod_sol
";
$result=mysql_query($sql,$link);
echo "<table border><tr><td>Codigo Solicitud</td><td>Fecha de radicacion</td><td>Fecha de respuesta</td><td>Tiempo limite de respuesta (EN D&Iacute;AS)</td><td>Diferencia</td><td>Se pasa?</td></tr>";
while($row=mysql_fetch_object($result)){

echo "<tr>
<td> $row->cod_sol</td>
<td> $row->fecha_reg </td>
<td> $row->fecha_seg</td>
<td> $row->dias</td>
<td>
";?>
<?php
$fechaInicio =$row->fecha_reg;
$fechaActual =$row->fecha_seg;
$diaActual = substr($fechaActual, 0, 2);
$mesActual = substr($fechaActual, 3, 5);
$anioActual = substr($fechaActual, 6, 10);
$diaInicio = substr($fechaInicio, 0, 2);
$mesInicio = substr($fechaInicio, 3, 5);
$anioInicio = substr($fechaInicio, 6, 10);
$b = 0;
$mes = $mesInicio-1;
if($mes==2){
if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0){
$b = 29;
}else{
$b = 28;
}
}
else if($mes<=7){
if($mes==0){
$b = 31;
}
else if($mes%2==0){
$b = 30;
}
else{
$b = 31;
}
}
else if($mes>7){
if($mes%2==0){
$b = 31;
}
else{
$b = 30;
}
}
if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) ||
($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){
echo "La fecha de inicio ha de ser anterior a la fecha Actual";
}else{
if($mesInicio <= $mesActual){
$anios = $anioActual - $anioInicio;
if($diaInicio <= $diaActual){
$meses = $mesActual - $mesInicio;
$dies = $diaActual - $diaInicio;
}else{
if($mesActual == $mesInicio){
$anios = $anios - 1;
}
$meses = ($mesActual - $mesInicio - 1 + 12) % 12;
$dies = $b-($diaInicio-$diaActual);
}
}else{
$anios = $anioActual - $anioInicio - 1;
if($diaInicio > $diaActual){
$meses = $mesActual - $mesInicio -1 +12;
$dies = $b - ($diaInicio-$diaActual);
}else{
$meses = $mesActual - $mesInicio + 12;
$dies = $diaActual - $diaInicio;
}
}
echo "".$dies." D&iacute;as";
}
echo " </td> ";
if ($row->dias > $dies){
echo "<td> Contestada a tiempo </td>";
}else{
echo "<td> 'Contestada despues de tiempo</td> </tr>";
}

}//cierra el ciclo while
echo "</table>";

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.