Hola Omaira,

Como ya muchas cosas están hechas, igual no necesitas implementar filtros 
en tu aplicación si utilizas este plugin:

https://github.com/CakeDC/search

Te ayudará a implementar de forma estándar las búsquedas y filtros de datos 
en tu aplicación para tablas.

No relacionado con tu pregunta, observo que hay mucha lógica presente en 
este controlador, te recomendaría que movieras toda esta lógica a métodos 
en el modelo. La función "consulta()" no pinta bien en el controlador, es 
una violación de MVC. Para tu referencia sobre estos puntos:

http://book.cakephp.org/2.0/en/contributing/cakephp-coding-conventions.html
http://bakery.cakephp.org/articles/Auzigog/2008/12/29/where-should-my-code-go

Espero haberte ayudado. Saludos.

On Wednesday, September 17, 2014 9:31:45 PM UTC+1, Omaira Rey wrote:
>
> Buenas Tardes 
>
> Me pueden ayudar a filtar por fecha mi proyecto tiene 3 formularios en el 
> primer formulario el filtro me funciona y en el segundo  ya no y no se 
> porque las variables ya las mire y creo que no son. me pueden ayudar 
>
> * este es mi controlador :*
>
> function index() {
>         $this->layout = 'plantilla';
>        //el filto de la fecha
>           $fecha1 = date('Y-m-d', 
> strtotime($this->data['Medico']['fechamedico2']));
>           $fecha2 = date('Y-m-d', 
> strtotime($this->data['Medico']['fechamedico3']));
> //    debug($remisionfinales);
>         if (!empty($this->data['Medico']['fechamedico2']) && 
> !empty($this->data['Medico']['fechamedico3'])): //Aqui preguntamos si 
> tenemos las fechas
>             //Si hay fechas entonces hacemos nuestra consulta filtrando 
> por fecha
>             $remisionfinales = $this->Medico->find('all', 
> array('conditions' => array('Medico.fechamedico BETWEEN ? AND ?' => 
> array($fecha1, $fecha2)),'order'=>array('Medico.id DESC', 
> 'Medico.fechamedico DESC')));
>         else:
>             //Si no tenemos datos en los campos fecha que me busque todos 
> los pacientes
>             $remisionfinales = $this->Medico->find('all', 
> array('order'=>array('Medico.id DESC', 'Medico.fechamedico DESC')));
>         endif;
> //      debug($remisionfinales);
>         $medico = 'SELECT ID_IDEN_USUA, NO_NOMB_USUA FROM USUARIOS WHERE 
> CD_CODI_PERF_USUA=5';
>         $medico = consulta($medico);
> //         $this->data['Medico']['fechamedico'] = date('Y-m-d H:i:s', 
> strtotime($this->data['Medico']['fechamedico2']));
>          //preceimiento para los datos traidos de cnt
>         foreach ($remisionfinales as $key => $value):
>             foreach ($medico as $key2 => $value2):
>                 if ($medico[$key2][1] == 
> $remisionfinales[$key]['Paciente']['medico']):
>                     $remisionfinales[$key]['Paciente']['nombre_medico'] = 
> $medico[$key2][1];
>                 endif;
>                                 
>         endforeach;
>          endforeach;
>         $this->set(compact('remisionfinales'));
>         $this->set('cabecea_pagina', 'remisionfinale');
>         $this->set('accion', 'index');
> //                debug($medicos);
>         $estadoremisiones = $this->Estadoremisione->find('list', 
> array('fields' => array('id', 'estadoremisione')));
>         $this->set('estadoremisiones', $estadoremisiones);
>         $this->set('remisionfinales', $remisionfinales);
>     }
>
>
>
> * y este es mi index:*
>   <div class="box-content">
>        <?php echo $this->Form->create('Remisionfinale', array('url' => 
> array('controller' => 'remisionfinales', 'action' => 'index'))); ?>
>    
>           <tr>
>             <td align="right" nowrap="nowrap"><p>Fecha inicial:</p></td>
>             <td width="151" class='cajasbig'><?php echo 
> $this->Form->input('fechamedico2', array('type' => 'text', 'label' => 
> false, 'class' => 'input-xlarge datepicker')); ?></td>
>         </tr>
>
>         <td align="right" nowrap="nowrap"><p>Fecha final:</p></td>
>         <td width="151" class='cajasbig'><?php echo 
> $this->Form->input('fechamedico3', array('type' => 'text', 'label' => 
> false, 'class' => 'input-xlarge datepicker')); ?></td>
>         </tr>
>         <button type="submit" class="btn btn-primary">Filtrar</button>  
>          
>
> El servicio de correo misena es soportado tecnológicamente por © Google y 
> ofrecido por el Servicio Nacional de Aprendizaje – SENA de manera gratuita 
> a todos los colombianos y en especial a los aprendices e instructores de 
> Programas de Formación Titulada y Complementaria. Los contenidos, textos, 
> imágenes, archivos y puntos de vista enviados en este mensaje son 
> responsabilidad exclusiva del remitente y no reflejan ni comprometen 
> oficialmente a la institución. No se autoriza el uso de esta herramienta 
> para el intercambio de correos masivos, cadenas o spam, ni de mensajes 
> ofensivos, de carácter político, sexual o religioso, con fines de lucro, 
> con propósitos delictivos o cualquier otro mensaje que se considere 
> indebido o que vaya en contra de la Ley.
>

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía 
un correo electrónico a cakephp-es+unsubscr...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.
Visita este grupo en http://groups.google.com/group/cakephp-es.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a