OO que pode ser adaptada ao CI
abs Edinho
<?php
//CI class Caixa extends Model{
class Caixa{
private $caixa_atual = 0;
private $quantidade = 0;
private $produtos = array();
private $capacidade = 15;
private $yaml = "";
function __construct()
{
//CI parent::Model();
$this->yaml = "Caixa {$this->caixa_atual}:\n";
}
function add_produto($tipo, $qtd=1){
//verifica se a caixa atual está cheia
if($this->quantidade >= $this->capacidade){
$this->grava();
}
//ve quantos cabem na caixa
$temlugar = $this->capacidade - $this->quantidade;
//quantos vai inserir
$insere = ($qtd > $temlugar) ? $temlugar : $qtd;
//insere
$this->produtos[$tipo] = (isset($this->produtos[$tipo])) ?
$this->produtos[$tipo]+$insere : $insere;
$this->quantidade += $insere;
//se sobraram recomeca
if($qtd>$insere){
$this->add_produto($tipo,$qtd-$insere);
}
}
function grava(){
$data['str'] = '';
foreach($this->produtos as $key=>$val){
$data['str'] .= "{$key}:{$val}\n";
$this->yaml .="\t{$key}:{$val}\n";
}
$data['id'] = $this->caixa_atual;
//grava no bd
//CI $this->db->set($data)->insert('caixas');
//incrementa
$this->caixa_atual++;
$this->yaml .= "Caixa {$this->caixa_atual}:\n";
//zera
$this->quantidade = 0;
$this->produtos = array();
}
function __destruct(){
if($this->quantidade>0){
$this->grava();
}
echo $this->yaml;
}
}
$objeto_caixas = new Caixa;
$objeto_caixas->add_produto('produto a',10);
$objeto_caixas->add_produto('produto b',43);
$objeto_caixas->add_produto('produto c',2);
$objeto_caixas->add_produto('produto d',20);
$objeto_caixas->add_produto('produto e',10);
$objeto_caixas->add_produto('produto f',10);
$objeto_caixas->add_produto('produto g',6);
$objeto_caixas->add_produto('produto h',54);
?>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br