public function initialize($obj = null, $options = array())
 {
     $detalhes = unserialize($this->ecommerce_options->produto_detalhe_options);
     foreach ($detalhes as $key => $value) {
         $chave = $key;
         $chave = new Select("detalhes[{$value['label']}][]", $value['referencia']::find(array('order' => 'nome ASC')), array('using' => array('nome', 'nome')));
         $chave->setLabel($value['label']);
         $chave->setAttribute('class', 'form-control ' . $value['label']);
         if (!is_null($obj)) {
             $chave->setDefault($obj->{$value}['label']);
         }
         $this->add($chave);
     }
     #Input Valor
     $valor = new Text("detalhes[valor][]");
     $valor->setLabel("valor");
     $valor->setAttribute('class', 'form-control money');
     if (!is_null($obj)) {
         $valor->setDefault($obj->valor);
     }
     $this->add($valor);
     #Input desconto
     $desconto = new Text("detalhes[desconto][]");
     $desconto->setLabel("desconto");
     $desconto->setAttribute('class', 'form-control money');
     if (!is_null($obj)) {
         $desconto->setDefault($obj->desconto);
     }
     $this->add($desconto);
     #Input Estoque
     $estoque = new Numeric("detalhes[estoque][]");
     $estoque->setLabel("estoque");
     $estoque->setAttribute('class', 'form-control');
     $this->add($estoque);
     if (!is_null($obj)) {
         $estoque->setDefault($obj->estoque);
     }
     if ($this->ecommerce_options->produto_cubagem_detalhe == '1') {
         $peso = new Numeric("detalhes[peso][]");
         $peso->setLabel("peso");
         $peso->setAttribute('class', 'form-control');
         if (!is_null($obj)) {
             $peso->setDefault($obj->peso);
         }
         $this->add($peso);
         $altura = new Numeric("detalhes[altura][]");
         $altura->setLabel("altura");
         $altura->setAttribute('class', 'form-control');
         $this->add($altura);
         if (!is_null($obj)) {
             $altura->setDefault($obj->altura);
         }
         $largura = new Numeric("detalhes[largura][]");
         $largura->setLabel("largura");
         $largura->setAttribute('class', 'form-control');
         $this->add($largura);
         if (!is_null($obj)) {
             $largura->setDefault($obj->largura);
         }
         $comprimento = new Numeric("detalhes[comprimento][]");
         $comprimento->setLabel("comprimento");
         $comprimento->setAttribute('class', 'form-control');
         $this->add($comprimento);
         if (!is_null($obj)) {
             $comprimento->setDefault($obj->comprimento);
         }
     }
     if (!is_null($obj)) {
         $detalhe_id = new hidden("detalhes[detalhe_id][]");
         $detalhe_id->setAttribute('class', 'form-control detalhe_id dynamicId');
         $detalhe_id->setDefault($obj->detalhe_id);
         $this->add($detalhe_id);
     }
 }