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
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
- <?php
- class Endereco extends TRecord
- {
- const TABLENAME = 'endereco';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'serial'; // {max, serial}
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('cep');
- parent::addAttribute('logradouro');
- parent::addAttribute('bairro');
- parent::addAttribute('cidade');
- parent::addAttribute('uf');
- parent::addAttribute('pais');
- }
- public static function BuscaCepWeb($Cep)
- {
- $Cep = preg_replace("/D/","", $Cep);
- if ($Cep != "")
- {
- $resultado = simplexml_load_string( @file_get_contents("http://viacep.com.br/ws/".$Cep."/xml/"));
- $erro = (string) $resultado->erro;
- if (!$erro)
- {
- $id_cep = Endereco::BuscaEnderecoId($Cep);
- if(!empty($id_cep))
- {
- $objects['id'] = $id_cep; // retorno vindo do banco
- $objects['cep'] = (string) $resultado->cep;
- $objects['logradouro'] = (string) $resultado->logradouro;
- $objects['complemento'] = (string) $resultado->complemento;
- $objects['bairro'] = (string) $resultado->bairro;
- $objects['localidade'] = (string) $resultado->localidade;
- $objects['uf'] = (string) $resultado->uf;
- $objects['unidade'] = (string) $resultado->unidade;
- $objects['ibge'] = (string) $resultado->ibge;
- $objects['gia'] = (string) $resultado->gia;
- return $objects;
- }
- else
- {
- $obj = Endereco::addEndereco($resultado);
- if(!empty($obj))
- {
- return $obj;
- }
- }
- } else return FALSE;
- } else return FALSE;
- }
- public static function addEndereco($endereco)
- {
- try
- {
- TTransaction::open('centinel');
- $add_endereco = new Endereco;
- $add_endereco->cep = (string)str_replace('-','',$endereco->cep);
- $add_endereco->logradouro = (string)$endereco->logradouro;
- $add_endereco->bairro = (string)$endereco->bairro;
- $add_endereco->cidade = (string)$endereco->localidade;
- $add_endereco->uf = (string)$endereco->uf;
- $add_endereco->codigo_ibge = (string)$endereco->ibge;
- $add_endereco->gia = (string)$endereco->gia;
- $add_endereco->store();
- TTransaction::close();
- }
- catch (Exception $e) {
- new TMessage('error', $e->getMessage());
- }
- }
- }
- ?>
Esqueci de postar o form
Segue abaixo
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
Nataniel,
O problema não era esse, mas já resolvi, valeu pela atenção.