Foros del Web » Programando para Internet » PHP »

tareas programadas

Estas en el tema de tareas programadas en el foro de PHP en Foros del Web. Hola, tengo una consulta y no se si la coloco aca o no xD la idea es que existen tareas las cuales si pasan ciertos ...
  #1 (permalink)  
Antiguo 09/04/2012, 13:07
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 meses
Puntos: 3
tareas programadas

Hola, tengo una consulta y no se si la coloco aca o no xD


la idea es que existen tareas las cuales si pasan ciertos criterios se actualizan y se cambian de estado
a... terminada, en progreso, etc.

la evaluacion la hace un usuario en particular.

pero ahora se quiere realizar que esa evaluacion la realicen dos usuarios, es decir, que un usuario pueda actualizar su estado
y el otro tambien, y dependiendo de lo que hayan actualizado, el resultado final será la relacion de ellos


ejem..

user1 = aceptada
user2 = aceptada
resultado= aceptada

ahora es el problema, no se traajar con tareas programadas y la idea es que sea automatico, es decir, una vez que los dos usuarios hayan actualizado se genere el scrpit de comparacion de actualizaciones de las tareas



nose si me explico bien
alguien podria orientarme?
gracias de ante mano
  #2 (permalink)  
Antiguo 09/04/2012, 13:13
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: tareas programadas

Dame un segundo que no estaba completo mi planteamiento..
  #3 (permalink)  
Antiguo 09/04/2012, 14:13
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: tareas programadas

Bueno aun que el titulo podría ser un poco confuso por que cuando hablamos de tareas programadas algunos nos hacemos la idea de que estas buscando crear un script que se ejecuta sin la intervension de un usuario.

ej hacer un backup cada x tiempo o reparar algunas tablas etc.

pero en el caso tuyo estas buscando hacer un especie de help desk donde alguien postea una situación y los usuarios actualizan el estado de esa situación ej ( cerrada , en progreso , etc ...)

Voy a plantear un escenario donde explica un poco el como podrías lograr lo que buscas.

imaginemos que tienes una tabla llamada tareas.

Código PHP:
Ver original
  1. tarea_id | estatus | accion | detalle |
  2. 203         1          1      'realizar backup'

el campo estatus le dice al script si esa accion en especifico aun acepta votaciones de parte de los usuarios o sea mas bien le dice al sistema si esta abierta o cerrada.

el campo accion es donde coloco el id de las acciones ejemplo cerradas , en progreso , etc...


el codigo podria algo como esto.

Código PHP:
Ver original
  1. /*
  2.  Acciones
  3.  
  4.  1  = Cerrada
  5.  2  = En proceso
  6.  3  = Falta de presupuesto
  7.  4  = Cancelada
  8. */
  9.  
  10. $accion =  1;
  11. $tarea_id = 203; // Tarrea de hacer backup
  12.  
  13.  
  14. actualizarTarea($tarea_id, $Accion);
  15.  
  16.  
  17.     function verificarTarea($idTarea, $Accion)
  18.     {
  19.             # si el estatus de la tarea es menor que 3 o sea que acepta votaciones entonces retorno positvamente
  20.  
  21.             $sql =  "SELECT estatus FROM tareas where estatus < 3 and tarea_id = ".$idTarea." and accion=".$Accion ;
  22.            
  23.                 $sql = mysql_query( $sql );
  24.                
  25.                 if( mysql_num_rows( $sql ) ){
  26.        
  27.                     return true;
  28.                    
  29.                 }else{
  30.                     return false;  
  31.                 }
  32.                
  33.     }
  34.  
  35.  
  36.  
  37.     function crearTarea(){
  38.            
  39.        
  40.                
  41.     }
  42.  
  43.     function actualizarTarea($tarea_id, $Accion)
  44.     {
  45.            
  46.             # Verifico si aun la tarea admite votaciones
  47.             if (verificarTarea($idTarea, $Accion)) {
  48.            
  49.             $sql = "UPDATE tareas estatus = estatus + 1 where tarea_id = ".$idTarea." and accion=".$accion;
  50.            
  51.                 mysql_query($sql);
  52.                
  53.                
  54.             }else {
  55.                
  56.                 echo "Esta tarea esta finalizada";
  57.                
  58.                 # do something....
  59.                    
  60.             }
  61.            
  62.  
  63.     }
  64.  
  65.  
  66.     function listarTareasAbiertas(){
  67.        
  68.         $sql =  "SELECT * FROM tareas where estatus < 3";
  69.                 $sql = mysql_query( $sql );
  70.                
  71.                 if( mysql_num_rows( $sql ) ){
  72.                        
  73.                        
  74.                                 # do something....
  75.                        
  76.                 }
  77.            
  78.     }
  79.  
  80.  
  81. function listarTareasCerradas(){
  82.        
  83.         $sql =  "SELECT * FROM tareas where estatus >2";
  84.                 $sql = mysql_query( $sql );
  85.                
  86.                 if( mysql_num_rows( $sql ) ){
  87.                        
  88.                        
  89.                                 # do something....
  90.                        
  91.                 }
  92.            
  93.     }

Esto seria mas o menos lo aproximado a lo que entendí que buscabas .
  #4 (permalink)  
Antiguo 09/04/2012, 14:31
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: tareas programadas

claro, algo así
te pasaste, muchas graicas, me dejaste mas orientado, era algo como lo tenia pensado mas o menos


en el caso de que solo 2 personas tienen que votar por esa tarea...

la relación la haría cuando ya haya 1 votacion sobre ella,es decir...



Código PHP:
<?php 
function actualizarTarea($tarea_id$Accion)
# Verifico si aun la tarea admite votaciones           

if (verificarTarea($idTarea$Accion)){//Ahi verifica si existe ya el voto de un usuario, si no existe, realiza el voto entrando en el if
$sql "UPDATE tareas estatus = estatus + 1 where tarea_id = ".$idTarea." and accion=".$accion;   
mysql_query($sql);
}

else{ 
//si existe un voto de un usuario, entonces realiza la comparacion y modifica el estado final de la tarea
 
# realiza comparacion de los 2 votos y lo guarda en 'estado_final' 
 
$sql "UPDATE tareas estado = estado_final where tarea_id = ".$idTarea;   
mysql_query($sql);

}

?>
  #5 (permalink)  
Antiguo 09/04/2012, 14:34
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: tareas programadas

Esto que ves estatus = estatus + 1 le dice a mysql que le sume un uno a estatus

Por que luego que llege a 3 ya no es permitido votar por esa tarrea
en caso de que quieras aumentar el numero de usuario ejemplo a cuatro entonces modificas ese 3 por un cuatro.
  #6 (permalink)  
Antiguo 09/04/2012, 14:42
Avatar de el_java  
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: tareas programadas

Claro, es decir, que segun tu codigo pueden votar 3 veces
si cambiamos ese por 2

solo pueden votar las dos personas que pido...

pero cuando vote uno, el otro no actualice la tabla estatus, sino que compare altiro los estados y segun la relacion saque el estado_final
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 00:33.