Como buscar y filtrar por fecha
De KumbiaPHP Framework Wiki
{{#if:
|}}
{{#if:
|}}{{{image}}} | Este ejemplo es funcional para la Versión Beta2 en desarrollo |
{{{imageright}}} |
Sumario
Introducción
Lo que se pretende es realizar consultas filtradas a nuestra base de datos, ya sea por fechas y/o por algún otro campo
Modelo
Crear el Modelo
[app]/models/ventas.php:
<?php
class Ventas extends ActiveRecord{
public function getVentas($page,$desde,$hasta,$cliente, $ppage=20){
return $this->paginate("page: $page", "per_page: $ppage", "clientes_id = $cliente AND DATE(fecha_at) between '$desde' and '$hasta'");
}
}?>
Controller
[app]/controllers/ventas_controller.php:
public function reporte_despachos_por_cliente($page=1){
$venta = new Ventas();
$cliente = 0; // cliente por defecto
$desde = date("Y-m-d"); //fecha de hoy
$hasta = date("Y-m-d"); //fecha de hoy
$ventas = Input::request("ventas"); // guardo todo lo que se envió desde el formulario de la vista
if($ventas){ // si se han enviado los datos del formulario de la vista
$cliente = $ventas['clientes_id']; //guardo en $cliente, la selección del combobox de la vista
$desde = date("Y-m-d", strtotime($ventas['desde'])); //strtotime debido a que lee de un elemento jquery date_picker que entrega un valor en este formato ejemplo: '28 May 12'
$hasta = date("Y-m-d", strtotime($ventas['hasta']));
}
$this->listVentas = $venta->getVentas($page,$desde,$hasta,$cliente);
}
Vista
[apps]/views/ventas/index.phtml
<?php echo Form::open(); // por defecto llama a la misma url ?>
<?php echo Form::label('Cliente :','ventas.cliente'); ?>
<?php echo Form::dbSelect('ventas.clientes_id','nombre'); ?>
<?php echo Form::label('Fecha Desde :','ventas.desde'); ?>
<?php echo Form::text('ventas.desde',"class='text date_picker'"); ?> <!-- suponiendo que hay una class css llamada 'text date_picker' -->
<?php echo Form::label('Fecha Hasta :','ventas.hasta'); ?>
<?php echo Form::text('ventas.hasta',"class='text date_picker'"); ?>
<?php echo Form::submit('Filtrar'); ?>
<?php echo Form::close() ?>
<table>
<?php foreach ($listVentas->items as $item) : ?>
<tr>
<td><?php echo $item->fecha ?></td>
<td><?php echo $item->etc ?></td>
<td><?php echo $item->etc ?></td>
</tr>
<?php endforeach; ?>
</table>