![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
26/04/2011, 04:56
|
| | Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 10 meses Puntos: 3 | |
Respuesta: Guardar busqueda Hola JMSystem y jcxnet. Primero agradeceros vuestras respuestas.
Como me dijisteis, he intentado guardar las fechas de inicio y fin en sesión, pero cuando intento recuperarlas para que vuelva aparecer la búsqueda, no lo hace bien... Os paso el código a ver si véis el error!
Gracias!
Primero la función que busca por fechas:
Código:
public function BuscarTrabajoPorFechas($fechainicio,$fechafin){
$query = "SELECT trabajos.idtrabajo AS idtrabajo, trabajos.indi AS indicador, trabajos.grupo AS grupo, ";
$query.="clientes.cliente AS cliente, proyectos.proyecto AS proyecto, interlocutores.interlocutor ";
$query.=" interlocutor, trabajos.f_inicio AS fechainicio, trabajos.f_fin AS fechafin, ";
$query.="trabajos.descripcion AS descripcion, trabajos.cantidad AS cantidad, trabajos.escalado AS ";
$query.="escalado, trabajos.descripcionescalado AS descripcionescalado, trabajos.preciototal AS ";
$query.="preciotot, trabajos.pago_actuacion AS pagoactuacion, trabajos.nocturna AS nocturna, ";
$query.="trabajos.comentarios AS comenta, status.statu AS status, trabajos.descripcionstatus AS ";
$query.="descripcionstatus, actividades.actividad AS actividad, tallas.talla AS talla, ";
$query.="tallas.precio AS precio, consultores.consultor AS consultor, trabajos.pagohoras AS ";
$query.="pagohoras, trabajos.horas AS horas FROM consultores INNER JOIN (status INNER JOIN ";
$query.="(((clientes INNER JOIN (((actividades INNER JOIN trabajos ON actividades.Id_actividad = ";
$query.="trabajos.actividades_Id_actividad) INNER JOIN actividades_tallas ON ";
$query.="actividades.Id_actividad = actividades_tallas.idactividad) INNER JOIN tallas ON ";
$query.="actividades_tallas.idtalla = tallas.talla) ON clientes.Id_cliente = trabajos.cliente) ";
$query.="INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto) INNER JOIN ";
$query.="interlocutores ON trabajos.interlocutor = interlocutores.Id_inerlocutor) ON ";
$query.="status.idstatus = trabajos.status_idstatus) ON consultores.Ident_consultor = ";
$query.="trabajos.consultores_Ident_consultor WHERE trabajos.f_inicio>='$fechainicio' AND ";
$query.="trabajos.f_inicio<='$fechafin';";
$consulta = new Consulta($query);
while($fila = $consulta->obtener_fila()) {
$trabajofechas[] = array (
'idtrabajo' =>$fila['idtrabajo'],
'indicador' =>$fila['indicador'],
'grupo' =>$fila['grupo'],
'cliente' =>$fila['cliente'],
'proyecto' =>$fila['proyecto'],
'interlocutor' =>$fila['interlocutor'],
'fechainicio' =>$fila['fechainicio'],
'fechafin' =>$fila['fechafin'],
'descripcion' =>$fila['descripcion'],
'cantidad' =>$fila['cantidad'],
'escalado' =>$fila['escalado'],
'descripcionescalado'=>$fila['descripcionescalado'],
'preciotot' =>$fila['preciotot'],
'pagoactuacion' =>$fila['pagoactuacion'],
'nocturna' =>$fila['nocturna'],
'comenta' =>$fila['comenta'],
'status' =>$fila['status'],
'descripcionstatus' =>$fila['descripcionstatus'],
'actividad' =>$fila['actividad'],
'precio' =>$fila['precio'],
'talla' =>$fila['talla'],
'precio' =>$fila['precio'],
'consultor' =>$fila['consultor'],
'pagohoras' =>$fila['pagohoras'],
'horas' =>$fila['horas']);
}
return $trabajofechas;
}
El archivo desde que el que se modifican los trabajos. Os dejo unicamente los case que son necesarios en este caso. El case 'listar' sería el que me muestra los trabajos entre esas fechas. modificar.php
Código:
<?php
session_start();
include_once "./clases/Template.php";
include_once "./clases/Usuario.class.php";
include_once "./clases/Trabajos.class.php";
$tpl = new Template();
$usuario = new Usuario();
$tpl_cabecera = new Template();
$tpl_pie = new Template();
$tpl_cabecera->set_vars(array( 'titulo' => 'Herramienta de Reporte de actividades - Modificación de Actividades',
'usuario_actual' => $usuario->obtenerUsuarioIdActual()));
$accion = isset($_REQUEST['accion']) ? $_REQUEST['accion'] : 'desconocido';
switch ($accion){
case 'listar':
if (isset($usuario_actual)){
if ((!isset($_SESSION['fechainio'])) && (!isset($_SESSION['fechafin']))){
try{
$tpl->set_vars(array( 'fecha_inicio' => $_POST['fechainicio'],
'fecha_fin' => $_POST['fechafin']));
$tpl->set('modificar_lista', Trabajos::BuscarTrabajoPorFechas($_POST['fechainicio'],$_POST['fechafin']));
$_SESSION['fechainicio']= $_POST['fechainicio'];
$_SESSION['fechafin']= $_POST['fechafin'];
}
catch (Exception $e) {
$tpl->set('error_msg',$e->getMessage());
}}
else{
try{
$tpl->set_vars(array( 'fecha_inicio' => $_SESSION['fechainicio'],
'fecha_fin' => $_SESSION['fechafin']));
$tpl->set('modificar_lista', Trabajos::BuscarTrabajoPorFechas($_SESSION['fechainicio'],$_SESSION['fechafin']));
}
catch (Exception $e) {
$tpl->set('error_msg',$e->getMessage());
}
}
}
$tpl->set('accion','editar');
$tpl_cuerpo = 'modificar_busqueda.tpl.php';
break;
case 'nuevabusqueda':
unset($_POST['fechainicio']);
unset($_POST['fechafin']);
$tpl_cuerpo= 'modificar_inicio.tpl.php';
break;
case 'editar':
try{
if (isset($usuario_actual)){
$tpl->set_vars(array(
'usuario_actual' => $usuario->obtenerUsuarioIdActual(),
'proyecto' => $usuario->obtenerProyectos($usuario->obtenerUsuarioIdActual()),
'interlocutor' => $usuario->obtenerInterlocutores(),
'statu' => $usuario->obtenerStatus(),
'actividad' => $usuario->obtenerActividades()));
}}
catch (Exception $e) {
$tpl_report->set('error_msg',$e->getMessage());
}
$trabajo = new Trabajos();
$trabajo->MostrarPorIdentificador($_GET['idtrabajo']);
$tpl->set('trabajo',$trabajo);
$tpl->set('accion','modificar');
$tpl_cuerpo = 'modificar_modificar.tpl.php';
break;
case 'modificar':
$trabajo = new Trabajos($_POST['idtrabajo']);
$trabajo->modificarTrabajos($_POST['idtrabajo'],$_POST['grupo'],$_POST['proyecto'],$_POST['cliente'],$_POST['interlocutor'],$_POST['activiti'],$_POST['fechainicio'],$_POST['fechafin'],$_POST['descripcion'],$_POST['status'],$_POST['descripcionstatus'],$_POST['cantidad'],$_POST['escalado'],$_POST['descripcionescalado'],$_POST['pago'],$_POST['nocturna'],$_POST['pagohoras'], $_POST['horas']);
echo $_SESSION['fechafin'];
$tpl->set('accion','listar');
$tpl_cuerpo = 'modificar_busqueda.tpl.php';
break;
default:
$tpl_cuerpo = 'modificar_inicio.tpl.php';
}
$tpl->set('cabecera', $tpl_cabecera->fetch('cabecera.tpl.php'));
$tpl->set('pie', $tpl_pie->fetch('pie.tpl.php'));
echo $tpl->fetch($tpl_cuerpo);
?>
Finalmente las plantillas desde donde se busca y aparece el listado con la búsqueda.
modificar_incio.tpl.php
Código:
<?= $cabecera; ?>
<h3>Búsqueda de Actividades</h3>
<p>Seleccione dos fechas para comenzar con la búsqueda.</p>
<form method="POST" action="modificar.php" >
<input type="hidden" name="accion" value="listar">
<span>Fecha de inicio:</span>
<input name="fechainicio" id="demo1" type="text" size="25" class="fechas"/><a href="javascript:NewCal('demo1','ddmmyyyy')"><img src="js/cal.gif" width="16" height="16" border="0" alt="Selecciona una fecha de Inicio"></a>
<span>Fecha de fin</span>
<input name="fechafin" id="demo2" type="text" size="25" class="fechas"/><a href="javascript:NewCal('demo2','ddmmyyyy')"><img src="js/cal.gif" width="16" height="16" border="0" alt="Selecciona una fecha de Fin, si quieres..."></a>
<input name="listar" type="submit" value="Envía tu consulta"/>
</form>
<?= $pie; ?>
|