Diferencia entre revisiones de «Usuario discusión:Cristtopher»
De KumbiaPHP Framework Wiki
(Página creada con ''''Cristtopher Quintana T.'''') |
|||
Línea 1: | Línea 1: | ||
− | ''' | + | {{cleanupbox |
+ | |texto ='''Este ejemplo es funcional para la [[KumbiaPHP_Framework_Versión_1.0_Beta2| Versión Beta2 en desarrollo]]'''<br /> | ||
+ | }} | ||
+ | == Introducción == | ||
+ | Quise escribir este ejemplo que pude realizar, en espera de que ha alguien le pueda servir.<br /> | ||
+ | Lo que se pretende es realizar consultas filtradas a nuestra base de datos, ya sea por fechas y/o por algún campo | ||
+ | |||
+ | == Modelo == | ||
+ | '''Crear el Modelo''' | ||
+ | |||
+ | '''''[app]/models/ventas.php:''''' | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | class Ventas extends ActiveRecord{ | ||
+ | public function getVentas($page, $ppage=20){ | ||
+ | return $this->paginate("page: $page", "per_page: $ppage", 'order: id desc'); | ||
+ | } | ||
+ | public function getVentasPorClienteyFecha($page,$desde,$hasta,$planta,$ppage=20){ | ||
+ | return $this->paginate("page: $page", "per_page: $ppage", "plantas_id = $planta and fecha between '$desde' and '$hasta'"); | ||
+ | } | ||
+ | }?> | ||
+ | </source> | ||
+ | |||
+ | == Controller == | ||
+ | |||
+ | |||
+ | '''''[app]/controllers/ventas_controller.php:''''' | ||
+ | |||
+ | <source lang="php"> | ||
+ | public function reporte_despachos_por_cliente($page=1){ | ||
+ | $venta = new Ventas(); | ||
+ | if($ventas = Input::request("ventas")){ //pregunto si recibí los datos del formulario "ventas" | ||
+ | $cliente = $ventas['plantas_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->listVentasPorCliente = $venta->getVentasPorClienteFiltrada($page,$desde,$hasta,$cliente); | ||
+ | }else{ //en caso de no enviar datos (como pasa al cargar la vista) muestro la lista sin filtrar | ||
+ | $this->listVentasPorCliente = $venta->getVentasPorCliente($page); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | == Vista == | ||
+ | |||
+ | '''''[apps]/views/ventas/index.phtml''''' | ||
+ | <source lang=php> | ||
+ | <?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 ($listVentasPorCliente->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> | ||
+ | </source> | ||
+ | |||
+ | [[Categoría:Tutoriales KumbiaPHP Beta2]] |
Revisión del 20:55 28 jun 2012
{{#if:
|}}
{{#if:
|}}{{{image}}} | Este ejemplo es funcional para la Versión Beta2 en desarrollo |
{{{imageright}}} |
Sumario
Introducción
Quise escribir este ejemplo que pude realizar, en espera de que ha alguien le pueda servir.
Lo que se pretende es realizar consultas filtradas a nuestra base de datos, ya sea por fechas y/o por algún campo
Modelo
Crear el Modelo
[app]/models/ventas.php:
<?php
class Ventas extends ActiveRecord{
public function getVentas($page, $ppage=20){
return $this->paginate("page: $page", "per_page: $ppage", 'order: id desc');
}
public function getVentasPorClienteyFecha($page,$desde,$hasta,$planta,$ppage=20){
return $this->paginate("page: $page", "per_page: $ppage", "plantas_id = $planta and fecha between '$desde' and '$hasta'");
}
}?>
Controller
[app]/controllers/ventas_controller.php:
public function reporte_despachos_por_cliente($page=1){
$venta = new Ventas();
if($ventas = Input::request("ventas")){ //pregunto si recibí los datos del formulario "ventas"
$cliente = $ventas['plantas_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->listVentasPorCliente = $venta->getVentasPorClienteFiltrada($page,$desde,$hasta,$cliente);
}else{ //en caso de no enviar datos (como pasa al cargar la vista) muestro la lista sin filtrar
$this->listVentasPorCliente = $venta->getVentasPorCliente($page);
}
}
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 ($listVentasPorCliente->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>