Não traz produto_id, produto_nome, fornecedor_nome TDBSeekButton Mostra o campo para selecionar mas no retorno pra tela não preenche o campo fornecedor_nome $fornecedor_id = new TDBSeekButton('fornecedor_id', 'erpweb',$this->form->getName(), 'Fornecedor','pessoa->nome', 'fornecedor_id', 'fornecedor_nome'); $fornecedor_nome = new TEntry('fornecedor_nome'); $table_general->addRowSet( $label_fornecedor = new TLabel('Fornecedor (*)'), array( $fornecedor_i...
GG
Não traz produto_id, produto_nome, fornecedor_nome TDBSeekButton  
Mostra o campo para selecionar mas no retorno pra tela não preenche o campo fornecedor_nome

$fornecedor_id = new TDBSeekButton('fornecedor_id', 'erpweb',$this->form->getName(), 'Fornecedor','pessoa->nome', 'fornecedor_id', 'fornecedor_nome');
$fornecedor_nome = new TEntry('fornecedor_nome');

$table_general->addRowSet( $label_fornecedor = new TLabel('Fornecedor (*)'), array( $fornecedor_id, $fornecedor_nome ) );

No produto nem traz o id na volta e nem o nome
$detail_produto_id = new TDBSeekButton('detail_produto_id', 'erpweb',$this->form->getName(), 'Produto','descricao', 'produto_id', 'produto_descricao');
$detail_produto_nome = new TEntry('detail_produto_nome');

$table_details->addRowSet( new TLabel('Produto (*)'), array( $detail_produto_id, $detail_produto_nome ) );

O arquivo completo em anexo.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


NR

Referente a questão do fornecedor, o componente faz uma verificação com isset antes de retornar o valor, e como isset só funciona para variáveis simples, acaba retornando false e não preenchendo o campo. Veja:
 
  1. <?php
  2. // linha da TStandardSeek que preenche o campo com a descricao, isset so funciona para variaveis simples
  3. $object->$receive_field = isset($activeRecord->$display_field) ? $activeRecord->$display_field : '';
  4. ?>

Possível solução: criar método mágico __isset no seu modelo Fornecedor:
 
  1. <?php
  2. public function __isset($name)
  3. {
  4. $var = $this->__get($name);
  5. return isset($var);
  6. }
  7. ?>

Sobre a seek de produtos, você criou os campos com os nomes 'detail_produto_id' e 'detail_produto_nome', mas informou na seek 'produto_id' e 'produto_descricao':
 
  1. <?php
  2. //$detail_produto_id = new TDBSeekButton('detail_produto_id', 'erpweb',$this->form->getName(), 'Produto','descricao', 'produto_id', 'produto_descricao');
  3. $detail_produto_id = new ">TDBSeekButton('detail_produto_id', 'erpweb',$this->form->getName(), 'Produto','descricao', 'detail_produto_id', 'detail_produto_nome');
  4. ?>
GG

Nataniel obrigado pela resposta do produto fechou 100%. No fornecedor será que tem a ver que o Fornecedor só aponta para tabela pessoa e lá tenho um método para buscar o nome?

 
  1. <?php
  2. class Fornecedor extends TRecord
  3. {
  4. const TABLENAME = 'fornecedor';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'serial'; // {max, serial}
  7. private $fornecedor;
  8. /**
  9. * Constructor method
  10. */
  11. public function __construct($id = NULL)
  12. {
  13. parent::__construct($id);
  14. parent::addAttribute('pessoa_id');
  15. }
  16. /**
  17. * Method set_category
  18. * Sample of usage: $customer->category = $object;
  19. * @param $object Instance of Category
  20. */
  21. public function set_pessoa(Pessoa $object)
  22. {
  23. $this->pessoa = $object;
  24. $this->pessoa_id = $object->id;
  25. }
  26. /**
  27. * Method get_category
  28. * Sample of usage: $customer->category->attribute;
  29. * @returns Category instance
  30. */
  31. public function get_pessoa()
  32. {
  33. // loads the associated object
  34. if (empty($this->pessoa))
  35. $this->pessoa = new Pessoa($this->pessoa_id);
  36. // returns the associated object
  37. return $this->pessoa;
  38. }
  39. }
  40. ?>
GG

Nataniel, funcionou o isset também. Obrigado.