- /**
- * Pone en los atributos publicos cuatrimestre, padron, entrega, ejercicio e intento
- * retorna true si encuentra alguno y false sino.
- */
- function proximo_a_probar()
- {
- $result = $this->db->getRow("SELECT cuatrimestre, padron, ejercicio, entrega, intento, mail
- FROM intento
- WHERE inicio_pruebas is null
- ORDER BY llegada
- LIMIT 1");
- if (DB::isError($result) or is_null($result)) return false;
- $date = date('YmdHis');
- $this->cuatrimestre = $result[0];
- $this->padron = $result[1];
- $this->ejercicio = $result[2];
- $this->entrega = $result[3];
- $this->intento = $result[4];
- $this->db->query("UPDATE intento SET inicio_pruebas = '$date'
- WHERE cuatrimestre = {$this->cuatrimestre} AND
- padron = {$this->padron} AND
- ejercicio = {$this->ejercicio} AND
- entrega = {$this->entrega} AND
- intento = {$this->intento}");
- return $result[5];
- }
-
- /**
- * Toma de los atributos publicos cuatrimestre, padron, entrega, ejercicio e intento
- * el parametro indica si compilo ok es true, sino es false
- */
- function informar_compilacion($compilo_ok)
- {
- if ($compilo_ok) $compilo_ok = 1;
- else $compilo_ok = 0;
- $date = date('YmdHis');
-
- return $this->db->query("
- UPDATE intento SET fin_pruebas = '$date' AND compila_ok = $compilo_ok
- WHERE cuatrimestre = {$this->cuatrimestre} AND
- padron = {$this->padron} AND
- ejercicio = {$this->ejercicio} AND
- entrega = {$this->entrega} AND
- intento = {$this->intento}");
- }
-
- /**
- * Toma de los atributos publicos cuatrimestre, padron, entrega, ejercicio e intento
- * carga el atributo publico caso_de_prueba con el proximo caso de prueba a usar
- * devuelve true si encuentra alguno, sino devuelve false
- */
- function pedir_caso_de_prueba()
- {
- $prueba = $this->db->getRow("
- SELECT C.caso_de_prueba, C.privado, C.descripcion, C.parametros, C.salidas
- FROM caso_de_prueba as C
- WHERE C.cuatrimestre = $this->cuatrimestre AND
- C.ejercicio = $this->ejercicio AND
- C.entrega = $this->entrega AND
- C.caso_de_prueba NOT IN (
- SELECT P.caso_de_prueba from prueba as P
- WHERE P.cuatrimestre = $this->cuatrimestre
- AND P.entrega = $this->entrega
- AND P.ejercicio = $this->ejercicio
- AND P.padron = $this->padron
- AND P.intento = $this->intento
- )");
- if (!is_null($prueba) && !DB::isError($prueba)) {
- list($id, $priv, $desc, $params, $salidas) = $prueba;
- return new T_Prueba($id, $priv, $desc, $params, $salidas);
- }
- return $prueba;
- }
-