Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2012, 08:39
Avatar de el_java
el_java
 
Fecha de Ingreso: enero-2008
Mensajes: 185
Antigüedad: 16 años, 3 meses
Puntos: 3
Tarea automatica en php

Buenas, hace unos dias cree un topic pidiendo ayuda con tareas programadas
el caso es que ahora si necesito :/
la logica del progama es:

Existen tareas que tienen que ser evaluadas por 2 personas, y dependiendo de su evaluacion se genera una evaluacion final

A - B - RESULT
1 - 1 - 1
1 - 0 - 0
0 - 1 - 0
0 - 0 - 0
null - 1 - 1
1 - null - 1
null - 0 - 0
0 - null - 0

A = Evaluador a
B = Evaluador b
Result = resultado de comparacion de evaluaciones


Tengo hecho codigo en donde el evaluador a va a calificar una tarea y el evaluador b califica la misma tarea y se hace el resultado final.






El problema radica en que puede haber uno de los dos usuarios que se le olvide o que drechamente no evalue la tarea, por lo que no tengo la 2º interaccion con el usuario

es por eso que cada noche, no se a las 23:59 , corra un script para preguntar si las tareas que estan en evaluaciones tienen las dos evaluaciones hechas o no
y en caso de que haya una que no tenga datos, la evalue solo con la que tenga datos
eso se haría, porque cada evaluador tiene 2 dias para evaluar la tarea como maximo, en caso de exceder ese tiempo quedaria como nula la evaluacion de esa tarea por parte de uno de los evaluadores



no se como hacer la tarea automatica



he buscado info pero ningun tutorial sale con manzanas para explicar a modo facil :/


ALGO DE CODIGO

Código PHP:

<?php
if (isset($_GET['task_status'])&& isset($_GET['task_id'])) {
    
    
$tasks_id     =     $_GET['task_id'];    
    
$status_pcg     =     $_GET['task_status'];
    
$hoy        =    date('Y-m-d H:i:s'time());
        
    
//PREGUNTA SI EXISTE O NO LA TAREA EN LA TABLA task_tmp PARA SU POSTERIOR INSERCIÓN O ACTUALIZACIÓN EN CASO DE QUE NO EXISTIERA
    
$query mysql_query(('SELECT task_id FROM task_tmp WHERE task_id = '$tasks_id),$dbh);
    
    if (
$array mysql_fetch_assoc($query)) {   
        
//ALGORITMO PARA CALIFICAR TAREA CON ESTADO FINAL...
        
        //OBTIENE ESTADO PROPORCIONADO POR EL RC PARA LA MISMA TAREA
        
$query2 mysql_query("SELECT task_tmp_rc FROM task_tmp WHERE task_id ='$tasks_id'");
        
$status_rc_tmp mysql_fetch_assoc($query2);
        
$status_rc $status_rc_tmp['task_tmp_rc'];
        
//OBTIENE FECHA TERMINO DE TAREA 
        
$q_tasks mysql_query ("SELECT task_end_date FROM tasks WHERE task_id = '$task_id'");
        
$date_task mysql_fetch_assoc($q_tasks);
        
$end_date $date_Task['task_end_date'];
        
//OBTIENE FECHA INGRESO DE ULTIMO LOG DE TAREA
        
$q_log mysql_query ("SELECT task_log_date FROM task_log WHERE task_log_task = '$task_id' 
                                ORDER BY(task_log_date) DESC"
);
        
$row_log mysql_fetch_assoc($q_log);
        
$fecha_log $row_log['task_log_date'];
        
        
//echo $row['task_log_date']; //ultima fecha de log de la tarea de id task_id

        
        //CALIFICACION DE TAREAS
        
if($status_pcg == 'aceptado_pcg' && $status_rc == 'aceptado_rc'){
            
//ESTABLECIMIENTO DEL ESTADO FINAL
            
if($end_date >= $fecha_log){
                echo
"TERMINÓ LA TAREA EN EL TIEMPO CORRECTO";
                
//$rf = ; // TERMINÓ LA TAREA EN EL TIEMPO CORRECTO
            
}else{
                echo
"TERMINÓ LA TAREA ATRASADA";
                
//$rf = ; // TERMINÓ LA TAREA ATRASADA
            
}
        }
            
            
        else if(
$status_pcg == 'rechazado_rc' || $status_rc == 'rechazado_pcg'){ 
            
//ESTABLECIMIENTO DEL ESTADO FINAL RECHAZADO
            
if($end_date >= $fecha_log){
                
//$rf = ; // TAREA RECHAZADA EN TIEMPO CORRECTO (PROGRESO?)
            
}else{
                
//$rf = ; // TAREA RECHAZADA EN TIEMPO ATRASADO (PROGRESO, ATRASADO?)
            
}
        }

        
//ACTUALIZA DATOS DE pcg EN task_tmp
        
$actualizacion "    UPDATE task_tmp SET 
                            task_tmp_pcg        =    '$status_pcg',
                            task_tmp_pcgdate     =     '$hoy',
                            task_tmp_result     =     '$rf'
                            WHERE task_id ='$tasks_id'"
;
                            
        
mysql_query($actualizacion$dbh) or die ("problema con query2");  
        echo    
"Actualización Correcta";
    } 
    else{
        
// INSERTA DATOS DE LA EVALUACIÓN DE pcg EN task_tmp
        
$insercion "    INSERT INTO task_tmp     (task_id, task_tmp_pcg, task_tmp_pcgdate) 
                        VALUES                    ('$tasks_id','$status_pcg','$hoy')"
;
                    
        
mysql_query($insercion$dbh) or die ("problema con query");
        
        echo    
"Inserción Correcta";
   }
}
?>


















gracias de ante mano