gestor = $usuario;
$this->orden = $orden;
$this->condiciones = $condiciones;
}
/**
* Busca y devuelve todos los pedidos del usuario.
*/
function getOfertas() {
// sacado de http://patrickallaert.blogspot.com/2007/09/building-dynamic-sql-queries-elegant.html
$consulta = "SELECT * FROM candidato_pedido";
if (count($this->condiciones)) {
$consulta .= ' WHERE ' . implode(' AND ', $this->condiciones);
}
if (count($this->orden)) {
$consulta .= ' ORDER BY ' . implode(' , ', $this->orden);
}
$bd = new BD();
$resultado = $bd->execQuery($consulta);
// Procesamos las ofertas.
if (mysql_num_rows($resultado) == 0) {
$this->ofertas = array();
} else {
while ($rows = mysql_fetch_array($resultado)) {
$p = new Oferta($rows["oid"], $this->gestor);
$this->ofertas[] = $p;
}
}
return $this->ofertas;
}
/**
* Devuelve una lista de los posibles estados en los que se puede encontrar un pedido
* como Key => value, donde key es el cod del estado y value es el nombre del estado.
*/
function getEstadosOfertas() {
$consulta = "SELECT cod, nombre FROM candidaturas_estados";
$bd = new BD();
return $bd->keyValueQuery($consulta, "cod", "nombre");
}
/**
* Busca una oferta en función de su identificador.
*
* @return el pedido, en caso de encontrarlo y null en
* caso contrario.
*/
function buscarOferta($id) {
$lista = $this->getOfertas();
if ($lista) {
foreach ($lista as $elem) {
if ($elem->getValor("oid") == $id) {
return $elem;
}
}
}
return null;
}
function addOferta($campos) {
if (!$this->gestor->tieneRol(1) && !$this->gestor->tieneRol(3)) {
$error = "El usuario no tiene permisos para crear ofertas.";
throw new Exception($error);
}
// Calculamos el id
$referencia = $this->calculaReferencia($campos["pedido"]);
$inserto = "fecha, referencia";
$fecha = "'" . date("Y-m-d") . "'";
$valores = "$fecha, $referencia";
// Procesamos los datos
foreach ($campos as $key => $value) {
$inserto .= ", $key";
$valores .= ", '$value'";
}
// Insertamos en la BD
$consulta = "INSERT INTO candidato_pedido ($inserto) VALUES ($valores)";
$bd = new BD();
if (!$bd->execQuery($consulta)) {
return "-1";
} else {
$id = mysql_insert_id();
$p = new Oferta($id, $this->gestor);
$mensaje = "Nueva oferta";
$p->actualizarHistorial($mensaje);
}
return $id;
}
function calculaReferencia($solicitud) {
$bd = new BD();
$consulta = "select referencia from candidato_pedido where pedido = '$solicitud' order by oid desc limit 1";
if ($resultado = $bd->execQuery($consulta)) {
$rows = mysql_fetch_array($resultado);
echo "########################
";
print_r($rows);
echo "########################
";
$num = 1;
if (!empty($rows[0])) {
$num = substr($rows[0], strpos($rows[0], '/') + 1, strlen($rows[0]));
$num += 1;
}
return sprintf('\'%s/%s\'', $solicitud, $num);
} else {
return sprintf('\'%s/%s\'', $solicitud, 1);
}
}
}
?>