Dificuldade ao carregar dados relacionados no form Olá, a todos Estou tentando carregar dados relacionados em um formulário porém sem sucesso, e não estou conseguindo identificar onde estou errando. Alguém pode me ajudar. Segue fonte abaixo : Classe Pessoa class Pessoa extends TRecord { const TABLENAME = 'pessoa'; const PRIMARYKEY= 'id'; const IDPOLICY = 'serial'; // {max, serial} private $fisica; ...
RB
Dificuldade ao carregar dados relacionados no form  
Olá, a todos

Estou tentando carregar dados relacionados em um formulário porém sem sucesso, e não estou conseguindo identificar onde estou errando.

Alguém pode me ajudar.

Segue fonte abaixo :

Classe Pessoa
class Pessoa extends TRecord
{
const TABLENAME = 'pessoa';
const PRIMARYKEY= 'id';
const IDPOLICY = 'serial'; // {max, serial}

private $fisica;
private $juridica;
private $contato;
private $contatoweb;
private $pessoa_endereco;
private $pessoa_organizacao;
private $organizacao;
private $funcionario;
private $site;

/**
* Constructor method
*/
public function __construct($id = NULL, $callObjectLoad = TRUE)
{
parent::__construct($id, $callObjectLoad);
parent::addAttribute('nome');
parent::addAttribute('data_nascimento');
parent::addAttribute('tipo_pessoa_id');
}


/**
* Method getfisicas
*/
public function get_fisica()
{
$criteria = new TCriteria;
$criteria->add(new TFilter('pessoa_id', '=', $this->id));

$this->fisica = Fisica::getObjects( $criteria );
return $this->fisica;
}
/**
* Method getpessoa_enderecos
*/
public function get_pessoa_endereco()
{
$criteria = new TCriteria;
$criteria->add(new TFilter('pessoa_id', '=', $this->id));
$this->pessoa_endereco = PessoaEndereco::getObjects( $criteria );
return $this->pessoa_endereco;
}


/**
* Method getclientes
*/
public function get_cliente()
{
$criteria = new TCriteria;
$criteria->add(new TFilter('pessoa_id', '=', $this->id));
$this->cliente = Cliente::getObjects( $criteria );
return $this->cliente;
}


?>

Classe PessoaEndereco

class PessoaEndereco extends TRecord
{
const TABLENAME = 'pessoa_endereco';
const PRIMARYKEY= 'id';
const IDPOLICY = 'serial'; // {max, serial}


private $endereco;
private $pessoa;
private $cliente;
private $organizacao;

/**
* Constructor method
*/
public function __construct($id = NULL, $callObjectLoad = TRUE)
{
parent::__construct($id, $callObjectLoad);
parent::addAttribute('pessoa_id');
parent::addAttribute('endereco_id');
parent::addAttribute('tipo_endereco_id');
parent::addAttribute('numero');
parent::addAttribute('complemento');
parent::addAttribute('criacao');
parent::addAttribute('atualizacao');
parent::addAttribute('organizacao_Id');
}


/**
* Method set_endereco
* Sample of usage: $pessoa_endereco->endereco = $object;
* @param $object Instance of Endereco
*/
public function set_endereco(Endereco $object)
{
$this->endereco = $object;
$this->endereco_id = $object->id;
}

/**
* Method get_endereco
* Sample of usage: $pessoa_endereco->endereco->attribute;
* @returns Endereco instance
*/
public function get_endereco()
{
// loads the associated object
if (empty($this->endereco))
$this->endereco = new Endereco($this->endereco_id);

// returns the associated object
return $this->endereco;
}


/**
* Method set_pessoa
* Sample of usage: $pessoa_endereco->pessoa = $object;
* @param $object Instance of Pessoa
*/
public function set_pessoa(Pessoa $object)
{
$this->pessoa = $object;
$this->pessoa_id = $object->id;
}

/**
* Method get_pessoa
* Sample of usage: $pessoa_endereco->pessoa->attribute;
* @returns Pessoa instance
*/
public function get_pessoa()
{
// loads the associated object
if (empty($this->pessoa))
$this->pessoa = new Pessoa($this->pessoa_id);

// returns the associated object
return $this->pessoa;
}

/**
* Method get_cliente
* Sample of usage: $pessoa_endereco->cliente->attribute;
* @returns Cliente instance
*/
public function get_cliente()
{
// loads the associated object
if (empty($this->cliente))
$this->cliente = Cliente::where('pessoa_id','=',$this->pessoa_id)->load();

// returns the associated object
return $this->cliente;
}
}
?>

Classe Endereco
 
  1. <?php
  2. class Endereco extends TRecord
  3. {
  4. const TABLENAME = 'endereco';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'serial'; // {max, serial}
  7. /**
  8. * Constructor method
  9. */
  10. public function __construct($id = NULL, $callObjectLoad = TRUE)
  11. {
  12. parent::__construct($id, $callObjectLoad);
  13. parent::addAttribute('cep');
  14. parent::addAttribute('logradouro');
  15. parent::addAttribute('bairro');
  16. parent::addAttribute('cidade');
  17. parent::addAttribute('uf');
  18. parent::addAttribute('pais');
  19. }
  20. public static function BuscaCepWeb($Cep)
  21. {
  22. $Cep = preg_replace("/D/","", $Cep);
  23. if ($Cep != "")
  24. {
  25. $resultado = simplexml_load_string( @file_get_contents("http://viacep.com.br/ws/".$Cep."/xml/"));
  26. $erro = (string) $resultado->erro;
  27. if (!$erro)
  28. {
  29. $id_cep = Endereco::BuscaEnderecoId($Cep);
  30. if(!empty($id_cep))
  31. {
  32. $objects['id'] = $id_cep; // retorno vindo do banco
  33. $objects['cep'] = (string) $resultado->cep;
  34. $objects['logradouro'] = (string) $resultado->logradouro;
  35. $objects['complemento'] = (string) $resultado->complemento;
  36. $objects['bairro'] = (string) $resultado->bairro;
  37. $objects['localidade'] = (string) $resultado->localidade;
  38. $objects['uf'] = (string) $resultado->uf;
  39. $objects['unidade'] = (string) $resultado->unidade;
  40. $objects['ibge'] = (string) $resultado->ibge;
  41. $objects['gia'] = (string) $resultado->gia;
  42. return $objects;
  43. }
  44. else
  45. {
  46. $obj = Endereco::addEndereco($resultado);
  47. if(!empty($obj))
  48. {
  49. return $obj;
  50. }
  51. }
  52. } else return FALSE;
  53. } else return FALSE;
  54. }
  55. public static function addEndereco($endereco)
  56. {
  57. try
  58. {
  59. TTransaction::open('centinel');
  60. $add_endereco = new Endereco;
  61. $add_endereco->cep = (string)str_replace('-','',$endereco->cep);
  62. $add_endereco->logradouro = (string)$endereco->logradouro;
  63. $add_endereco->bairro = (string)$endereco->bairro;
  64. $add_endereco->cidade = (string)$endereco->localidade;
  65. $add_endereco->uf = (string)$endereco->uf;
  66. $add_endereco->codigo_ibge = (string)$endereco->ibge;
  67. $add_endereco->gia = (string)$endereco->gia;
  68. $add_endereco->store();
  69. TTransaction::close();
  70. }
  71. catch (Exception $e) {
  72. new TMessage('error', $e->getMessage());
  73. }
  74. }
  75. }
  76. ?>

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)


RB

Esqueci de postar o form

Segue abaixo

 
  1. <?php
  2. class ClienteFisicoBuilder extends TPage
  3. {
  4. protected $form;
  5. protected $table_contato;
  6. protected $frame_contato;
  7. protected $deta_row;
  8. protected $deta_row_1;
  9. protected $table_endereco;
  10. protected $frame_endereco;
  11. protected $cep;
  12. public function __construct($param){
  13. parent::__construct($param);
  14. parent::include_css('app/resources/builder.css');
  15. $this->form = new BootstrapFormBuilder('frm_cliente_fisico');
  16. $this->form->setFormTitle('Cliente');
  17. $this->form->class='frm_cliente_fisico';
  18. $dados_cliente = new TLabel('Dados Pessoais');
  19. $dados_cliente->class ='lbl_titulo';
  20. $this->form->addContent( [$dados_cliente] );
  21. $lbl_id = new TLabel('#');
  22. $id = new TEntry('id');
  23. $id->setEditable(false);
  24. $label_nome = new TLabel('Nome');
  25. $nome = new TEntry('nome');
  26. $nome->addValidation('Nome', new TRequiredValidator);
  27. $lbl_data_nascto = new TLabel('Data Nascimento');
  28. $data_nascimento = new TDate('data_nascimento');
  29. $data_nascimento->addValidation('Data Nascimento', new TRequiredValidator);
  30. $data_nascimento->setMask('dd/mm/yyyy'); // define date mask
  31. $lbl_estado_civil = new TLabel('Estado Cí­vil');
  32. $estado_civil = new TDBCombo('estado_civil_id','centinel', 'Civil', 'id', 'descricao');
  33. $estado_civil->setDefaultOption(false);
  34. $lbl_genero = new TLabel('Genero');
  35. $items = array();
  36. $items['1'] ='Masculino';
  37. $items['2'] ='Feminino';
  38. $genero_id = new TCombo('genero_id');
  39. $genero_id->addItems($items);
  40. $genero_id->setDefaultOption(false);
  41. $lbl_id_cep = new TLabel('lbl_id_cep');
  42. $lbl_cpf = new TLabel('CPF');
  43. $cpf = new TEntry('cpf');
  44. $cpf->setMask('000.000.000.00');
  45. $cpf->addValidation('CPF', new TCPFValidator, new TMaxValueValidator,array(14));
  46. $lbl_rg = new TLabel('RG');
  47. $rg = new TEntry('rg');
  48. $rg->setMask('00.000.000.00');
  49. $rg->setMaxLength(12);
  50. /*
  51. $lbl_cnh = new TLabel('CNH','#1F4E78');
  52. $cnh = new TEntry('cnh');
  53. $cnh->setMask('00.000.000.00');
  54. $cnh->setMaxLength(12);
  55. $lbl_cnh->style='text-align:left;float:left;';
  56. */
  57. $lbl_etnia = new TLabel('Etnia');
  58. $etnia_id = new TDBCombo('etnia_id','centinel','Etnia','id','descricao');
  59. $etnia_id->setDefaultOption(false);
  60. //adiciona campos ao formulário
  61. $this->form->addFields( [$lbl_id,$label_nome,$lbl_data_nascto,$lbl_estado_civil] );
  62. $this->form->addFields( [$id,$nome,$data_nascimento,$estado_civil] );
  63. $this->form->addFields( [$lbl_genero,$lbl_etnia,$lbl_cpf,$lbl_rg] );
  64. $this->form->addFields( [$genero_id,$etnia_id,$cpf,$rg] );
  65. //cria dados de contato
  66. $contato = new TLabel('Contato');
  67. $contato->class='lbl_titulo';
  68. $lbl_ddi = new TLabel('DDI');
  69. $lbl_dd = new TLabel('DDD');
  70. $lbl_tipo_telefone = new TLabel('Tipo Telefone');
  71. $lbl_telefone = new TLabel('Telefone');
  72. $lbl_operadora = new TLabel('Operadora');
  73. $lbl_email = new TLabel('Email');
  74. $email = new TEntry('email');
  75. //$email->addValidation('email', new TEmailValidator); // email field
  76. $lbl_site = new TLabel('Site');
  77. $site = new TEntry('site');
  78. //Cria tabela contato adiciona campos
  79. $this->table_contato = new TTable('table_contato');
  80. //$this->table_contato->style='font-family:Arial Narrow;';
  81. $this->table_contato->width='100%';
  82. $this->table_contato->addSection('thead');
  83. $this->frame_contato = new TFrame;
  84. $this->frame_contato->style='border:none;float:lef; margin-left:-15px;';
  85. //$frame_contato->setLegend('Contato');
  86. $this->frame_contato->add($contato);
  87. $this->frame_contato->add($this->table_contato);
  88. $this->table_contato->addRowSet([$lbl_ddi,$lbl_dd,$lbl_tipo_telefone,$lbl_telefone,$lbl_operadora]);
  89. $this->form->addContent([$this->frame_contato]);
  90. //adiciona contato web
  91. $this->form->addFields( [$lbl_email,$lbl_site] );
  92. $this->form->addFields( [$email,$site] );
  93. //cria dados de correspondência
  94. $lbl_endereco = new TLabel('Endereco');
  95. $lbl_endereco->class='lbl_titulo';
  96. $lbl_cep = new TLabel('Cep');
  97. $lbl_id_cep = new TLabel('#');
  98. $lbl_logradouro = new TLabel('Logradouro');
  99. $lbl_bairro = new TLabel('Bairro');
  100. $lbl_cidade = new TLabel('Cidade');
  101. $lbl_uf = new TLabel('UF');
  102. $lbl_tipo_endereco_id = new TLabel('Tipo Endereco');
  103. $lbl_numero = new TLabel('Número');
  104. $lbl_complemento = new TLabel('Complemento');
  105. $this->detail_row = 0;
  106. $this->detail_row_1 = 0;
  107. $this->table_endereco = new TTable();
  108. $this->table_endereco->width ='100%';
  109. $this->table_endereco->addSection('thead');
  110. $this->frame_endereco = new TFrame;
  111. $this->frame_endereco->style ='border:none;float:lef; margin-left:-15px;';
  112. $this->frame_endereco->add($lbl_endereco);
  113. $this->frame_endereco->add($this->table_endereco);
  114. $this->table_endereco->addRowSet([$lbl_id_cep,$lbl_cep,$lbl_logradouro,$lbl_bairro,$lbl_cidade,$lbl_uf,$lbl_tipo_endereco_id,$lbl_numero,$lbl_complemento]);
  115. $this->form->addContent([$this->frame_endereco]);
  116. $lbl_id->class='lbl_text';
  117. $label_nome->class='lbl_text';
  118. $lbl_data_nascto->class='lbl_text';
  119. $lbl_estado_civil->class='lbl_text';
  120. $lbl_genero->class='lbl_text';
  121. $lbl_cpf->class='lbl_text';
  122. $lbl_rg->class='lbl_text';
  123. $lbl_etnia->class='lbl_text';
  124. $lbl_ddi->class='lbl_text';
  125. $lbl_dd->class='lbl_text';
  126. $lbl_tipo_telefone->class='lbl_text';
  127. $lbl_telefone->class='lbl_text';
  128. $lbl_operadora->class='lbl_text';
  129. $lbl_email->class='lbl_text';
  130. $lbl_site->class='lbl_text';
  131. $lbl_cep->class='lbl_text';
  132. $lbl_id_cep->class='lbl_text';
  133. $lbl_logradouro->class='lbl_text';
  134. $lbl_bairro->class='lbl_text';
  135. $lbl_bairro->class='lbl_text';
  136. $lbl_cidade->class='lbl_text';
  137. $lbl_uf->class='lbl_text';
  138. $lbl_numero->class='lbl_text';
  139. $lbl_tipo_endereco_id->class='lbl_text';
  140. $lbl_complemento->class='lbl_text';
  141. $id->class='tentry';
  142. $lbl_id->setSize('10%');
  143. $label_nome->setSize('30%');
  144. $lbl_data_nascto->setSize('20%');
  145. $lbl_estado_civil->setSize('20%');
  146. $lbl_genero->setSize('20%');
  147. $lbl_cpf->setSize('20%');
  148. $lbl_rg->setSize('20%');
  149. $lbl_etnia->setSize('20%');
  150. $lbl_ddi->setSize('40');
  151. $lbl_dd->setSize('40');
  152. $lbl_tipo_telefone->setSize('100');
  153. $lbl_telefone->setSize('100');
  154. $lbl_email->setSize('42%');
  155. $lbl_site->setSize('42%');
  156. $lbl_id_cep->setSize('30');
  157. $lbl_cep->setSize('70');
  158. $lbl_logradouro->setSize('150');
  159. $lbl_bairro->setSize('150');
  160. $lbl_cidade->setSize('150');
  161. $lbl_uf->setSize('40');
  162. $lbl_numero->setSize('70');
  163. $lbl_complemento->setSize('150');
  164. $lbl_tipo_endereco_id->setSize('100');
  165. $id->setSize('10%');
  166. $nome->setSize('30%');
  167. $data_nascimento->setSize('20%');
  168. $estado_civil->setSize('20%');
  169. $genero_id->setSize('20%');
  170. $cpf->setSize('20%');
  171. $rg->setSize('20%');
  172. //$lbl_cnh->setSize('19%');
  173. //$cnh->setSize('19%');
  174. $etnia_id->setSize('20%');
  175. $email->setSize('42%');
  176. $site->setSize('42%');
  177. $table_endereco = new TTable;
  178. $table_endereco->style ='border 1px solid #333;';
  179. $table_endereco->width ='100%';
  180. $table_endereco->addSection('thead');
  181. $table_endereco->addSection('tbody');
  182. $this->form->addAction('Salvar', new TAction(array($this, 'onSave')), 'ico_save.png');
  183. $this->form->addAction('Listar', new TAction(array('DatagridCheckView', 'onReload')), 'fa:table blue');
  184. //wrap the page content using vertical box
  185. $vbox = new TVBox;
  186. $vbox->add(new TXMLBreadCrumb('menu.xml', 'DatagridCheckView'));
  187. $vbox->add($this->form);
  188. parent::add($vbox);
  189. }
  190. public function addEnderecoRow($endereco)
  191. {
  192. $uniqid = mt_rand(1000000, 9999999);
  193. /*
  194. $btn_cep = new TButton('btn_cep');
  195. $btn_cep->setSize(42);
  196. $btn_cep->setAction(new TAction(array($this,'onCep')),'');
  197. $btn_cep->setImage('fa:search blue');
  198. $this->form->addField($btn_cep);
  199. */
  200. $this->cep = new TEntry('cep[]');
  201. $this->cep->setMask('00000-000');
  202. $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  203. $this->form->addField($this->cep);
  204. $input_cep = new TAction(array($this,'onCep'));
  205. $this->cep->setExitAction($input_cep);
  206. if (!empty($endereco->cep))
  207. {
  208. print_r($endereco);
  209. // $this->cep->setValue($endereco->cep);
  210. }
  211. $id_endereco = new TEntry('id_endereco[]');
  212. $id_endereco->setEditable(false);
  213. if (!empty($endereco->id))
  214. {
  215. $id_endereco->setValue($endereco->id);
  216. }
  217. $logradouro = new TEntry('logradouro[]');
  218. if (!empty($endereco->logradouro))
  219. {
  220. $logradouro->setValue($endereco->logradouro);
  221. }
  222. $bairro = new TEntry('bairro[]');
  223. if (!empty($endereco->bairro))
  224. {
  225. $bairro->setValue($endereco->bairro);
  226. }
  227. $cidade = new TEntry('cidade[]');
  228. if (!empty($endereco->cidade))
  229. {
  230. $cidade->setValue($endereco->cidade);
  231. }
  232. $uf = new TEntry('uf[]');
  233. if (!empty($endereco->uf))
  234. {
  235. $uf->setValue($endereco->uf);
  236. }
  237. $numero = new TEntry('numero[]');
  238. if (!empty($endereco->numero))
  239. {
  240. $numero->setValue($endereco->numero);
  241. }
  242. $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
  243. $tipo_endereco_id->setDefaultOption(false);
  244. if (!empty($endereco->tipo_endereco_id))
  245. {
  246. $tipo_endereco_id->setValue($endereco->tipo_endereco_id);
  247. }
  248. $complemento = new TEntry('compl[]');
  249. if (!empty($endereco->complemento))
  250. {
  251. $complemento->setValue($endereco->complemento);
  252. }
  253. // set row counter
  254. $this->cep->{'data-row_1'} = $this->detail_row_1;
  255. $id_endereco->{'data-row_1'} = $this->detail_row_1;
  256. $logradouro->{'data-row_1'} = $this->detail_row_1;
  257. $bairro->{'data-row_1'} = $this->detail_row_1;
  258. $cidade->{'data-row_1'} = $this->detail_row_1;
  259. $numero->{'data-row_1'} = $this->detail_row_1;
  260. $uf->{'data-row_1'} = $this->detail_row_1;
  261. $tipo_endereco_id->{'data-row_1'} = $this->detail_row_1;
  262. $complemento->{'data-row_1'} = $this->detail_row_1;
  263. //set ids
  264. //$btn_cep ->setId('btn_cep)'.$uniqid);
  265. $this->cep ->setId('cep_'.$uniqid);
  266. $id_endereco ->setId('id_endereco_'.$uniqid);
  267. $logradouro ->setId('logradouro_'.$uniqid);
  268. $bairro ->setId('bairro_'.$uniqid);
  269. $cidade ->setId('cidade_'.$uniqid);
  270. $uf ->setId('uf_'.$uniqid);
  271. $numero ->setId('numero_'.$uniqid);
  272. $tipo_endereco_id->setId('tipo_endereco_id_'.$uniqid);
  273. $complemento->setId('compl_'.$uniqid);
  274. // create delete button
  275. $del_endereco = new TImage('fa:trash-o blue');
  276. $del_endereco->onclick = 'ttable_remove_row(this)';
  277. $row_end = $this->table_endereco->addRowSet([$id_endereco,$this->cep,$logradouro,$bairro,$cidade,$uf,$tipo_endereco_id,$numero,$complemento,$del_endereco]);
  278. $row_end->{'data-row'} = $this->detail_row_1;
  279. $id_endereco->setSize('30');
  280. $this->cep->setSize('70');
  281. $logradouro->setSize('150');
  282. $bairro->setSize('150');
  283. $cidade->setSize('150');
  284. $uf->setSize('40');
  285. $numero->setSize('70');
  286. $complemento->setSize('150');
  287. $tipo_endereco_id->setSize('100');
  288. $this->detail_row_1 ++;
  289. }
  290. public function onClear($param)
  291. {
  292. $this->table_contato->addSection('tbody');
  293. $this->addContatoRow(new stdClass);
  294. //criar e adicionar botão
  295. $add = new TButton('addContact');
  296. $add->setLabel('Adicionar');
  297. $add->setImage('fa:plus-circle blue');
  298. $add->addFunction('ttable_clone_previous_row(this)');
  299. //adiciona botão a tabela
  300. $row = $this->table_contato->addRowSet([$add]);
  301. //adciona tabela endereco
  302. $this->table_endereco->addSection('tbody');
  303. $this->addEnderecoRow(new stdClass);
  304. //criar e adicionar botão
  305. $add_endereco = new TButton('addEnder');
  306. $add_endereco->setLabel('Adicionar');
  307. $add_endereco->setImage('fa:plus-circle blue');
  308. $add_endereco->addFunction('ttable_clone_previous_row(this)');
  309. //adiciona botão a tabela
  310. $row_end = $this->table_endereco->addRowSet([$add_endereco]);
  311. }
  312. public function onEdit($param)
  313. {
  314. try {
  315. if (isset($param['key']))
  316. {
  317. // open a transaction with database 'samples'
  318. TTransaction::open('centinel');
  319. $key = $param['key'];
  320. $cliente = Cliente::find($key);
  321. $clientes = $cliente->get_pessoa();
  322. $clientes->data_nascimento = TDate::date2br($clientes->data_nascimento);
  323. $contatos = $cliente->get_pessoa()->get_contato();
  324. if ($clientes)
  325. {
  326. $clientes->cpf = $cliente->fisica->cpf;
  327. $clientes->rg = $cliente->fisica->rg;
  328. $clientes->email = $cliente->email;
  329. $clientes->site = $cliente->site;
  330. $this->table_contato->addSection('tbody');
  331. if ($contatos)
  332. {
  333. foreach ($contatos as $contato)
  334. {
  335. $this->addContatoRow($contato);
  336. }
  337. //criar e adicionar botão
  338. $add = new TButton('addContact');
  339. $add->setLabel('Adicionar');
  340. $add->setImage('fa:plus-circle blue');
  341. $add->addFunction('ttable_clone_previous_row(this)');
  342. //adiciona botão a tabela
  343. $row = $this->table_contato->addRowSet([$add]);
  344. }
  345. else
  346. {
  347. $this->onClear($param);
  348. }
  349. //carrega endereços do cliente
  350. $this->table_endereco->addSection('tbody');
  351. $endereco = $cliente->get_pessoa()->get_pessoa_endereco();
  352. if ($endereco)
  353. {
  354. //verificando dados de retorno e printando na tela
  355. foreach ($endereco as $enderecos)
  356. {
  357. print_r($enderecos->endereco->cep.'-'.$enderecos->endereco->logradouro. '-'.$enderecos->enderecos->bairro.'-'.$enderecos->endereco->cidade.'<br>');
  358. }
  359. foreach ($endereco as $enderecos)
  360. {
  361. $clientes->cep = $enderecos->endereco->cep; //aqui não consigo carregar os dados no form
  362. $this->addEnderecoRow($enderecos);
  363. }
  364. //adciona tabela endereco
  365. $this->table_endereco->addSection('tbody');
  366. $this->addEnderecoRow(new stdClass);
  367. //criar e adicionar botão
  368. $add_endereco = new TButton('addEnder');
  369. $add_endereco->setLabel('Adicionar');
  370. $add_endereco->setImage('fa:plus-circle blue');
  371. $add_endereco->addFunction('ttable_clone_previous_row(this)');
  372. //adiciona botão a tabela
  373. $row_end = $this->table_endereco->addRowSet([$add_endereco]);
  374. }
  375. else
  376. {
  377. $this->onClear($param);
  378. }
  379. $clientes->id = $key;
  380. $this->form->setData($clientes);
  381. // close the transaction
  382. TTransaction::close();
  383. }
  384. }
  385. }
  386. catch (Exception $e)
  387. {
  388. // shows the exception error message
  389. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  390. // undo all pending operations
  391. TTransaction::rollback();
  392. }
  393. }
  394. }
  395. ?>
NR

Não sei se entendi exatamente qual a sua dúvida, mas se for para preencher os dados de endereço após preencher o cep veja o link abaixo:
adianti.com.br/framework_files/tutor/index.php?class=SaleMultiValueF
RB

Nataniel,

O problema não era esse, mas já resolvi, valeu pela atenção.