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:
'''Cristtopher Quintana T.'''
+
{{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:

|}}


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>