Valeu.. deu certinho...
_____ De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Edinho Almeida Enviada em: terça-feira, 6 de maio de 2008 20:42 Para: CodeIgniter Brasil Assunto: Re: [CodeIgniter] +-OFF - Lógica de programação 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); ?> No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.9/1417 - Release Date: 6/5/2008 08:07 No virus found in this outgoing message. Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.9/1417 - Release Date: 6/5/2008 08:07
_______________________________________________ Lista mailing list [email protected] http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

