Dificuldade em carregar dados multi field Amigos, Estou com dificuldade em carregar campos multifields, no onEdit e não estou conseguindo identificar o problema. Alguém pode me ajudar ? Segue trecho do código abaixo. Funcionario.class.php ...
RB
Dificuldade em carregar dados multi field  
Amigos,

Estou com dificuldade em carregar campos multifields, no onEdit e não estou conseguindo identificar o problema.

Alguém pode me ajudar ?

Segue trecho do código abaixo.

Funcionario.class.php
 
  1. <?php
  2. const TABLENAME = 'funcionario';
  3. const PRIMARYKEY= 'id';
  4. const IDPOLICY = 'serial'; // {max, serial}
  5. private $pessoa_enderecos;
  6. public function __construct($id = NULL, $callObjectLoad = TRUE)
  7. {
  8. parent::__construct($id, $callObjectLoad);
  9. parent::addAttribute('pessoa_id');
  10. parent::addAttribute('data_contratacao');
  11. parent::addAttribute('organizacao_id');
  12. parent::addAttribute('dependente');
  13. parent::addAttribute('matricula');
  14. parent::addAttribute('pis');
  15. parent::addAttribute('ativo');
  16. parent::addAttribute('criacao');
  17. parent::addAttribute('atualizacao');
  18. parent::addAttribute('data_emissao_pis');
  19. parent::addAttribute('pai');
  20. parent::addAttribute('mae');
  21. parent::addAttribute('grau_instrucao');
  22. parent::addAttribute('deficiente_fisico');
  23. ........................
  24. public function get_pessoa_enderecos()
  25. {
  26. // loads the associated object
  27. if (empty($this->pessoa_enderecos))
  28. $this->pessoa_enderecos = PessoaEndereco::where('pessoa_id','=',$this->pessoa_id)->where('organizacao_id','=',$this->organizacao_id)->load();
  29. // returns the associated object
  30. return $this->pessoa_enderecos;
  31. }
  32. }
  33. ?>


FuncionarioFormBuilder.class.php

 
  1. <?php
  2. class FuncionarioFormBuilder extends TPage
  3. {
  4. private $form;
  5. private $cep;
  6. private $enderecoList;
  7. private $dependenteList;
  8. protected $contatoList;
  9. public function __construct()
  10. {
  11. //dados correspondências
  12. $dados_endereco = new TLabel('Endereco');
  13. $dados_endereco->class ='lbl_titulo';
  14. $this->form->addContent( [$dados_endereco] );
  15. $frame_endereco = new TFrame('frame_endereco');
  16. $frame_endereco->style = 'margin:-13px 0 0 -1px; boredr-top:none;width:98.5%;float:left;display:table;';
  17. // detail fields
  18. $this->enderecoList = new TFieldList('Lista_enderecos');
  19. $frame_endereco->add($this->enderecoList);
  20. $this->form->addFields( [$frame_endereco] );
  21. $id_endereco = new TEntry('id_endereco[]');
  22. $id_endereco->setEditable(false);
  23. $id_endereco->style = 'display:none;';
  24. $this->cep = new TEntry('txt_cep[]');
  25. $this->cep->setMask('00000-000');
  26. $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  27. //$input_cep = new TAction(array($this,'onCep'));
  28. //$input_cep = new TAction(['Endereco','oncep'], ['param1'=>"$cep",'param2'=>'frm_funcionario']);
  29. $this->cep->setExitAction(new TAction(array($this,'onCep')));
  30. $logradouro = new TEntry('logradouro[]');
  31. $numero = new TEntry('numero[]');
  32. $bairro = new TEntry('bairro[]');
  33. $cidade = new TEntry('cidade[]');
  34. $uf = new TEntry('uf[]');
  35. $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
  36. $complemento = new TEntry('compl[]');
  37. $regiao_id = new TDBCombo('regiao_id[]','centinel','Regiao','id','descricao');
  38. $uf->setMask('AA'); // Máscara Alfanumérica Delimitada
  39. $this->enderecoList->addField( '<span class = "lbl_text" style = "display:none;">#</span>', $id_endereco);
  40. $this->enderecoList->addField( '<span class = "lbl_text">Cep</span>', $this->cep);
  41. $this->enderecoList->addField( '<span class = "lbl_text">Logradouro</span>', $logradouro);
  42. $this->enderecoList->addField( '<span class = "lbl_text">Número<span/>', $numero);
  43. $this->enderecoList->addField( '<span class = "lbl_text">Tipo Endereço</span>', $tipo_endereco_id);
  44. $this->enderecoList->addField( '<span class = "lbl_text">Bairro</span>', $bairro);
  45. $this->enderecoList->addField( '<span class = "lbl_text">Cidade</span>', $cidade);
  46. $this->enderecoList->addField( '<span class = "lbl_text">UF</span>', $uf);
  47. $this->enderecoList->addField( '<span class = "lbl_text">Complemento</span>', $complemento);
  48. $this->enderecoList->addField( '<span class = "lbl_text">Região</span>', $regiao_id);
  49. //$this->enderecoList->enableSorting();
  50. $this->form->addField($id_endereco);
  51. $this->form->addField($this->cep);
  52. $this->form->addField($logradouro);
  53. $this->form->addField($numero);
  54. $this->form->addField($bairro);
  55. $this->form->addField($tipo_endereco_id);
  56. $this->form->addField($cidade);
  57. $this->form->addField($uf);
  58. $this->form->addField($complemento);
  59. $this->form->addField($regiao_id);
  60. }
  61. public function onEdit($param)
  62. {
  63. try
  64. {
  65. if (isset($param['key']))
  66. {
  67. $key = $param['key'];
  68. $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
  69. //abre a transação
  70. TTransaction::open('teste');
  71. //carrega o active record Funcionario conforme id
  72. $funcionario = Funcionario::find($key);
  73. ....................
  74. if ($funcionario->pessoa_enderecos)
  75. {
  76. $this->enderecoList->addHeader();
  77. foreach($funcionario->pessoa_enderecos as $endereco)
  78. {
  79. print $endereco->endereco_id.'<br/>Logradouro : '.$endereco->endereco->logradouro ;
  80. $endereco->id_endereco = $endereco->endereco_id;
  81. $endereco->txt_cep = substr($endereco->endereco->cep, 0, 5) . '-' . substr($endereco->endereco->cep, 5, 8);
  82. $endereco->logradouro = $endereco->endereco->logradouro;
  83. $endereco->bairro = $endereco->endereco->bairro;
  84. $endereco->cidade = $endereco->endereco->cidade;
  85. $endereco->uf = $endereco->endereco->uf;
  86. $endereco->compl = $endereco->endereco->complemento;
  87. $this->enderecoList->addDetail($endereco);
  88. }
  89. $this->enderecoList->addCloneAction();
  90. }
  91. else
  92. {
  93. $this->onClear($param);
  94. }
  95. }
  96. //preenche o formulario com os dados do funcionário
  97. $this->form->setData($funcionario);
  98. TTransaction::close();
  99. }
  100. catch (Exception $e)
  101. {
  102. new TMessage('error', $e->getMessage());
  103. //desfaz operações
  104. TTransaction::rollback();
  105. }
  106. }

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 (8)


RB

Olá, eu de novo,

Outra coisa que estou tendo problemas, quando o método onEdit é executado os titulos dos multifields são repetidos.

Método onClear, esqueci de postar

 
  1. <?php
  2. public function onClear($param)
  3. {
  4. $this->form->clear();
  5. //endereços
  6. $this->enderecoList->addHeader();
  7. $this->enderecoList->addDetail( new stdClass );
  8. $this->enderecoList->addCloneAction();
  9. //dependentes
  10. $this->dependenteList->addHeader();
  11. $this->dependenteList->addDetail( new stdClass );
  12. $this->dependenteList->addCloneAction();
  13. //contato
  14. $this->contatoList->addHeader();
  15. $this->contatoList->addDetail( new stdClass );
  16. $this->contatoList->addCloneAction();
  17. }
  18. ?>
NR

Difícil dizer sem ver o restante do código, mas provavelmente você está chamando a função addHeader em mais de um local. Outra possibilidade é estar adicionando o componente mais de uma vez ao form.
RB

Nataniel,

O código é o formulário acima FuncionarioFormBuilder.class.php
NR

Sim, mas acho que você não postou o código completo
RB

Nataniel,

Segue o código abaixo

 
  1. <?php
  2. class FuncionarioFormBuilder extends TPage
  3. {
  4. private $form;
  5. private $cep;
  6. private $enderecoList;
  7. private $dependenteList;
  8. protected $contatoList;
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. parent::include_css('app/resources/builder.css');
  13. parent::include_css('app/resources/blue_modificado.css');
  14. $this->form = new BootstrapFormBuilder('frm_funcionario');
  15. $this->form->setFormTitle('Funcionário');
  16. $this->form->class ='frm_funcionario';
  17. $this->form->appendPage('Dados Pessoais');
  18. /*
  19. $dados_func = new TLabel('Dados pessoais');
  20. $dados_func->class ='lbl_titulo';
  21. $this->form->addContent( [$dados_func] );
  22. */
  23. //labels dos campos
  24. $lbl_id = new TLabel('#');
  25. //$lbl_id->style = 'display:none';
  26. $label_nome = new TLabel('Nome');
  27. $lbl_data_nascto = new TLabel('Data Nascto');
  28. $lbl_local_nascto = new TLabel('Naturalidade');
  29. $lbl_uf = new TLabel('UF');
  30. $lbl_estado_civil = new TLabel('Estado Cí­vil');
  31. $lbl_genero = new TLabel('Genero');
  32. $lbl_etnia = new TLabel('Etnia');
  33. $lbl_grau_instrucao = new TLabel('Grau de Instrução');
  34. $lbl_nome_mae = new TLabel('Mãe');
  35. $lbl_nome_pai = new TLabel('Pai');
  36. $lbl_conjuge = new TLabel('Conjuge');
  37. $lbl_banco = new TLabel('Banco');
  38. $lbl_agencia = new TLabel('Agência');
  39. $lbl_conta = new TLabel('Conta');
  40. $lbl_tipo_conta = new TLabel('Tipo de Conta');
  41. //Campos de entrada
  42. $id = new TEntry('id');
  43. //$id->style = 'display:none;';
  44. $nome = new TEntry('nome');
  45. $local_nascto = new TEntry('local_nascto');
  46. $local_nascto_uf = new TEntry('local_nascto_uf');
  47. $data_nascto = new TDate('data_nascimento');
  48. $etnia_id = new TDBCombo('etnia_id','centinel','Etnia','id','descricao');
  49. $estado_civil_id = new TDBCombo('estado_civil_id','centinel', 'Civil', 'id', 'descricao');
  50. $genero_id = new TDBCombo('genero_id','centinel','Genero','id','descricao');
  51. $grau_instrucao = new TEntry('grau_instrucao');
  52. $conjuge = new TEntry('nome_conjuge');
  53. $nome_mae = new TEntry('nome_mae');
  54. $nome_pai = new TEntry('nome_pai');
  55. $banco = new TEntry('nome_banco');
  56. $agencia = new TEntry('nome_agencia');
  57. $conta = new TEntry('numero_conta');
  58. $tipo_conta_id = new TDBCombo('tipo_conta_id','centinel','TipoConta','id','descricao');
  59. //validações
  60. $nome->addValidation('nome', new TRequiredValidator);
  61. $data_nascto->addValidation('data_nascimento', new TRequiredValidator);
  62. $data_nascto->setMask('dd/mm/yyyy');
  63. //default
  64. $id->setEditable(false);
  65. $estado_civil_id->setDefaultOption(false);
  66. $etnia_id->setDefaultOption(false);
  67. $genero_id->setDefaultOption(false);
  68. //formata caracteres em letra maiscula
  69. $nome->forceUpperCase();
  70. $conjuge->forceUpperCase();
  71. $local_nascto->forceUpperCase();
  72. $local_nascto_uf->forceUpperCase();
  73. $nome_mae->forceUpperCase();
  74. $nome_pai->forceUpperCase();
  75. $grau_instrucao->forceUpperCase();
  76. $banco->forceUpperCase();
  77. $label_nome->class='lbl_text';
  78. $lbl_id->class='lbl_text';
  79. $lbl_local_nascto->class='lbl_text';
  80. $lbl_data_nascto->class='lbl_text';
  81. $lbl_uf->class='lbl_text';
  82. $lbl_nome_mae->class='lbl_text';
  83. $lbl_nome_pai->class='lbl_text';
  84. $lbl_estado_civil->class='lbl_text';
  85. $lbl_grau_instrucao->class='lbl_text';
  86. $lbl_genero->class='lbl_text';
  87. $lbl_etnia->class='lbl_text';
  88. $lbl_conjuge->class='lbl_text';
  89. $lbl_banco->class='lbl_text';
  90. $lbl_agencia->class='lbl_text';
  91. $lbl_conta->class='lbl_text';
  92. $lbl_tipo_conta->class='lbl_text';
  93. //tamanho dos labels
  94. $lbl_id->setSize('6%');
  95. $label_nome->setSize('47%');
  96. $lbl_local_nascto->setSize('20%');
  97. $lbl_uf->setSize('5%');
  98. $lbl_data_nascto->setSize('13%');
  99. $lbl_estado_civil->setSize('23.5%');
  100. $lbl_genero->setSize('23.5%');
  101. $lbl_etnia->setSize('15%');
  102. $lbl_grau_instrucao->setSize('25%');
  103. $lbl_conjuge->setSize('28%');
  104. $lbl_nome_mae->setSize('53%');
  105. $lbl_nome_pai->setSize('47%');
  106. $lbl_banco->setSize('23.5%');
  107. $lbl_agencia->setSize('23.5%');
  108. $lbl_conta->setSize('26.5%');
  109. $lbl_tipo_conta->setSize('26.5%');
  110. //tamanho dos campos
  111. $id->setSize('6%');
  112. $nome->setSize('47%');
  113. $local_nascto->setSize('20%');
  114. $local_nascto_uf->setSize('5%');
  115. $data_nascto->setSize('13%');
  116. $etnia_id->setSize('15%');
  117. $estado_civil_id->setSize('23.5%');
  118. $genero_id->setSize('23.5%');
  119. $grau_instrucao->setSize('25%');
  120. $conjuge->setSize('28%');
  121. $nome_mae->setSize('53%');
  122. $nome_pai->setSize('47%');
  123. $banco->setSize('23.5%');
  124. $agencia->setSize('23.5%');
  125. $conta->setSize('26.5%');
  126. $tipo_conta_id->setSize('26.5%');
  127. $this->form->addFields( [$lbl_id,$label_nome,$lbl_local_nascto,$lbl_uf,$lbl_data_nascto,$lbl_etnia] );
  128. $this->form->addFields( [$id,$nome,$local_nascto,$local_nascto_uf,$data_nascto,$etnia_id] );
  129. $this->form->addFields( [$lbl_estado_civil,$lbl_genero,$lbl_grau_instrucao,$lbl_conjuge] );
  130. $this->form->addFields( [$estado_civil_id,$genero_id,$grau_instrucao,$conjuge] );
  131. $this->form->addFields( [$lbl_nome_pai,$lbl_nome_mae] );
  132. $this->form->addFields( [$nome_pai,$nome_mae] );
  133. $this->form->addFields( [$lbl_banco,$lbl_agencia,$lbl_conta,$lbl_tipo_conta] );
  134. $this->form->addFields( [$banco,$agencia,$conta,$tipo_conta_id] );
  135. //dados contato
  136. /*
  137. $div_titulo = new TElement('div');
  138. $div_titulo->style = 'width:100%;float:left;background:#f4f4f4;margin:-5px 0 0 -15px;padding:5px;color:#069;';
  139. $titulo_contato = new TElement('h1');
  140. $titulo_contato->class = 'lbl_text';
  141. $titulo_contato = 'Contato';
  142. $div_titulo->add($titulo_contato);
  143. */
  144. $dados_contato = new TLabel('Contato');
  145. $dados_contato->class ='lbl_titulo';
  146. $this->form->addContent( [$dados_contato] );
  147. $frame_contato = new TFrame('frame_contato');
  148. $frame_contato->style = 'margin:-13px 0 0 -1px; border-top:none;width:98.5%;float:left;display:table;';
  149. // detail fields
  150. $this->contatoList = new TFieldList('Lista_enderecos');
  151. //$this->contatoList->enableSorting();
  152. //$frame_contato->add($div_titulo);
  153. $frame_contato->add($this->contatoList);
  154. $ddi = new TEntry('ddi[]');
  155. $ddd = new TEntry('ddd[]');
  156. $telefone = new TEntry('telefone[]');
  157. $tipo_telefone_id = new TDBCombo('tipo_telefone_id[]','teste','TipoTelefone','id','descricao');
  158. $tipo_telefone_id->setDefaultOption(false);
  159. $operadora_id = new TDBCombo('operadora_id[]','teste','Operadora','id','nome');
  160. $operadora_id->setDefaultOption(false);
  161. $ddi->setMask('999');
  162. $ddd->setMask('999');
  163. $telefone->setMask('9999-9999');
  164. $ddi->setSize('50');
  165. $ddd->setSize('50');
  166. $telefone->setSize('100');
  167. $tipo_telefone_id->setSize('100');
  168. $operadora_id->setSize('100');
  169. $this->contatoList->addField( '<span class = "lbl_text">DDD</span>', $ddi);
  170. $this->contatoList->addField( '<span class = "lbl_text">DDI</span>', $ddd);
  171. $this->contatoList->addField( '<span class = "lbl_text">Telefone</span>', $telefone);
  172. $this->contatoList->addField( '<span class = "lbl_text">Tipo Telefone<span/>', $tipo_telefone_id);
  173. $this->contatoList->addField( '<span class = "lbl_text">Operadora<span/>', $operadora_id);
  174. $this->form->addField($ddi);
  175. $this->form->addField($ddd);
  176. $this->form->addField($telefone);
  177. $this->form->addField($tipo_telefone_id);
  178. $this->form->addFields( [$frame_contato] );
  179. //dados correspondências
  180. $dados_endereco = new TLabel('Endereco');
  181. $dados_endereco->class ='lbl_titulo';
  182. $this->form->addContent( [$dados_endereco] );
  183. $frame_endereco = new TFrame('frame_endereco');
  184. $frame_endereco->style = 'margin:-13px 0 0 -1px; boredr-top:none;width:98.5%;float:left;display:table;';
  185. // detail fields
  186. $this->enderecoList = new TFieldList('Lista_enderecos');
  187. $frame_endereco->add($this->enderecoList);
  188. $this->form->addFields( [$frame_endereco] );
  189. $id_endereco = new TEntry('id_endereco[]');
  190. $id_endereco->setEditable(false);
  191. $id_endereco->style = 'display:none;';
  192. $this->cep = new TEntry('txt_cep[]');
  193. $this->cep->setMask('00000-000');
  194. $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  195. //$input_cep = new TAction(array($this,'onCep'));
  196. //$input_cep = new TAction(['Endereco','oncep'], ['param1'=>"$cep",'param2'=>'frm_funcionario']);
  197. $this->cep->setExitAction(new TAction(array($this,'onCep')));
  198. $logradouro = new TEntry('logradouro[]');
  199. $numero = new TEntry('numero[]');
  200. $bairro = new TEntry('bairro[]');
  201. $cidade = new TEntry('cidade[]');
  202. $uf = new TEntry('uf[]');
  203. $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','teste','TipoEndereco','id','descricao');
  204. $complemento = new TEntry('compl[]');
  205. $regiao_id = new TDBCombo('regiao_id[]','teste','Regiao','id','descricao');
  206. $uf->setMask('AA'); // Máscara Alfanumérica Delimitada
  207. $this->enderecoList->addField( '<span class = "lbl_text" style = "display:none;">#</span>', $id_endereco);
  208. $this->enderecoList->addField( '<span class = "lbl_text">Cep</span>', $this->cep);
  209. $this->enderecoList->addField( '<span class = "lbl_text">Logradouro</span>', $logradouro);
  210. $this->enderecoList->addField( '<span class = "lbl_text">Número<span/>', $numero);
  211. $this->enderecoList->addField( '<span class = "lbl_text">Tipo Endereço</span>', $tipo_endereco_id);
  212. $this->enderecoList->addField( '<span class = "lbl_text">Bairro</span>', $bairro);
  213. $this->enderecoList->addField( '<span class = "lbl_text">Cidade</span>', $cidade);
  214. $this->enderecoList->addField( '<span class = "lbl_text">UF</span>', $uf);
  215. $this->enderecoList->addField( '<span class = "lbl_text">Complemento</span>', $complemento);
  216. $this->enderecoList->addField( '<span class = "lbl_text">Região</span>', $regiao_id);
  217. //$this->enderecoList->enableSorting();
  218. $this->form->addField($id_endereco);
  219. $this->form->addField($this->cep);
  220. $this->form->addField($logradouro);
  221. $this->form->addField($numero);
  222. $this->form->addField($bairro);
  223. $this->form->addField($tipo_endereco_id);
  224. $this->form->addField($cidade);
  225. $this->form->addField($uf);
  226. $this->form->addField($complemento);
  227. $this->form->addField($regiao_id);
  228. $id_endereco->setSize('30');
  229. $this->cep->setSize('70');
  230. $logradouro->setSize('180');
  231. $bairro->setSize('100');
  232. $cidade->setSize('100');
  233. $uf->setSize('30');
  234. $numero->setSize('60');
  235. $complemento->setSize('120');
  236. $tipo_endereco_id->setSize('100');
  237. $regiao_id->setSize('100');
  238. //adiciona aba documentos
  239. $this->form->appendPage('Documentos');
  240. //documentos pessoais
  241. /*
  242. $doc_pessoais = new TLabel('Documentos');
  243. $doc_pessoais->class ='lbl_titulo';
  244. */
  245. $lbl_cpf = new TLabel('CPF');
  246. $lbl_rg = new TLabel('RG');
  247. $lbl_data_expedicao = new TLabel('Data Expedição');
  248. $lbl_orgao = new TLabel('Expedição');
  249. $lbl_titulo_eleitor = new TLabel('Titulo Eleitor');
  250. $lbl_zona = new TLabel('Zona');
  251. $lbl_secao = new TLabel('Seção');
  252. $lbl_ctps = new TLabel('CTPS');
  253. $lbl_serie = new TLabel('Série / UF');
  254. //$lbl_ctps_uf = new TLabel('UF');
  255. $lbl_pis = new TLabel('PIS');
  256. $lbl_data_pis = new TLabel('Data Emissão');
  257. $lbl_data_emissao = new TLabel('Data Emissão');
  258. $lbl_cert_reservista = new TLabel('Certidão Reservista');
  259. $lbl_cert_categoria = new TLabel('Categoria');
  260. $lbl_habilitacao = new TLabel('Habilitação');
  261. $lbl_categoria = new TLabel('Categoria');
  262. $lbl_vencimento = new TLabel('Vencimento');
  263. $cpf = new TEntry('cpf');
  264. $rg = new TEntry('rg');
  265. $data_expedicao = new TDate('data_expedicao');
  266. $orgao_emissor = new TEntry('orgao_emissor');
  267. $ctps = new TEntry('carteira_trabalho');
  268. $serie = new TEntry('numero_serie');
  269. //$ctps_uf = new TEntry('ctps_uf');
  270. $data_emissao = new TDate('data_emissao');
  271. $pis = new TEntry('pis');
  272. $data_pis = new TDate('data_pis');
  273. $titulo_eleitor = new TEntry('titulo_eleitor');
  274. $zona = new TEntry('zona');
  275. $secao = new TEntry('secao');
  276. $certidao_reservista = new TEntry('certidao_reservista');
  277. $cat_cert_reservista = new TEntry('cat_cert_reservista');
  278. $habilitacao = new TEntry('habilitacao');
  279. $categoria = new TEntry('categoria');
  280. $vencimento = new TDate('vencimento');
  281. //formata caracters em letras maisculas
  282. $orgao_emissor->forceUpperCase();
  283. $cat_cert_reservista->forceUpperCase();
  284. $categoria->forceUpperCase();
  285. //formatações
  286. $data_expedicao->setMask('dd/mm/yyyy'); // define date mask
  287. $vencimento->setMask('dd/mm/yyyy'); // define date mask
  288. $titulo_eleitor->setMask('999999999999'); // Máscara Numérica Delimitada
  289. $orgao_emissor->setMask('AAA'); // Máscara Alfanumérica Delimitada
  290. //$ctps_uf->setMask('AA'); // Máscara Alfanumérica Delimitada
  291. $lbl_cpf->setSize('20%');
  292. $lbl_rg->setSize('20%');
  293. $lbl_orgao->setSize('110');
  294. $lbl_titulo_eleitor->setSize('20%');
  295. $lbl_cert_reservista->setSize('20%');
  296. $lbl_cert_categoria->setSize('19.5%');
  297. $lbl_zona->setSize('9.5%');
  298. $lbl_secao->setSize('9.5%');
  299. $lbl_data_expedicao->setSize('100');
  300. $lbl_habilitacao->setSize('20%');
  301. $lbl_categoria->setSize('95');
  302. $lbl_vencimento->setSize('105');
  303. $cpf->setSize('20%');
  304. $rg->setSize('20%');
  305. $orgao_emissor->setSize('110');
  306. $lbl_ctps->setSize('145');
  307. $lbl_serie->setSize('105');
  308. $lbl_data_emissao->setSize('110');
  309. $lbl_pis->setSize('140');
  310. $lbl_data_pis->setSize('110');
  311. $lbl_data_pis->setSize('110');
  312. $ctps->setSize('145');
  313. $serie->setSize('105');
  314. //$ctps_uf->setSize('35');
  315. $data_emissao->setSize('110');
  316. $pis->setSize('140');
  317. $data_pis->setSize('110');
  318. $titulo_eleitor->setSize('20%');
  319. $zona->setSize('9.5%');
  320. $secao->setSize('9.5%');
  321. $certidao_reservista->setSize('20%');
  322. $cat_cert_reservista->setSize('19.5%');
  323. $data_expedicao->setSize('100');
  324. $habilitacao->setSize('20%');
  325. $categoria->setSize('95');
  326. $vencimento->setSize('105');
  327. $lbl_cpf->class='lbl_text';
  328. $lbl_rg->class='lbl_text';
  329. $lbl_data_expedicao->class='lbl_text';
  330. $lbl_orgao->class='lbl_text';
  331. $lbl_titulo_eleitor->class='lbl_text';
  332. $lbl_zona->class='lbl_text';
  333. $lbl_secao->class='lbl_text';
  334. $lbl_cert_reservista->class='lbl_text';
  335. $lbl_cert_categoria->class='lbl_text';
  336. $lbl_habilitacao->class='lbl_text';
  337. $lbl_categoria->class='lbl_text';
  338. $lbl_vencimento->class='lbl_text';
  339. //$this->form->addContent( [$doc_pessoais] );
  340. $this->form->addFields( [$lbl_cpf,$lbl_rg,$lbl_orgao,$lbl_data_expedicao] );
  341. $this->form->addFields( [$cpf,$rg,$orgao_emissor,$data_expedicao] );
  342. $this->form->addFields( [$lbl_ctps,$lbl_serie,$lbl_data_emissao,$lbl_pis,$lbl_data_pis] );
  343. $this->form->addFields( [$ctps,$serie,$data_emissao,$pis,$data_pis] );
  344. $this->form->addFields( [$lbl_titulo_eleitor,$lbl_zona,$lbl_secao] );
  345. $this->form->addFields( [$titulo_eleitor,$zona,$secao] );
  346. $this->form->addFields( [$lbl_cert_reservista,$lbl_cert_categoria] );
  347. $this->form->addFields( [$certidao_reservista,$cat_cert_reservista] );
  348. $this->form->addFields( [$lbl_habilitacao,$lbl_categoria,$lbl_vencimento] );
  349. $this->form->addFields( [$habilitacao,$categoria,$vencimento] );
  350. //adiciona aba dependentes
  351. $this->form->appendPage('Dependentes');
  352. //Relação de dependentes
  353. /*
  354. $dados_dependente = new TLabel('Dependentes');
  355. $dados_dependente->class ='lbl_titulo';
  356. $this->form->addContent( [$dados_dependente] );
  357. */
  358. $frame_dependentes = new TFrame('frame_dependentes');
  359. $frame_dependentes->style = 'margin-left:-1px;width:98.5%;float:left;display:table;';
  360. //$frame_dependentes->setLegend('Dependentes');
  361. // detail fields
  362. $this->dependenteList = new TFieldList('Lista_dependentes');
  363. //$this->dependenteList->enableSorting();
  364. $nome_dependente = new TEntry('nome_dependente[]');
  365. $nascimento_dependente = new TDate('nascimento_dependente[]');
  366. $nascimento_dependente->setMask('dd/mm/yyyy'); // define date mask
  367. $grau_parentesco_dependente = new TDBCombo('grau_parentesco_dependente[]','teste','Parentesco','id','descricao');
  368. $this->dependenteList->addField( '<span class = "lbl_text">Nome</span>', $nome_dependente);
  369. $this->dependenteList->addField( '<span class = "lbl_text">Data Nascimento</span>',$nascimento_dependente);
  370. $this->dependenteList->addField( '<span class = "lbl_text">Grau Parentesco</span>', $grau_parentesco_dependente);
  371. $nome_dependente->forceUpperCase();
  372. $frame_dependentes->add($this->dependenteList);
  373. $this->form->addFields( [$frame_dependentes] );
  374. $this->form->addField($nome_dependente);
  375. $this->form->addField($nascimento_dependente);
  376. $this->form->addField($grau_parentesco_dependente);
  377. $nome_dependente->style = 'width:300px';
  378. $nascimento_dependente->style = 'width:150px';
  379. $grau_parentesco_dependente->style = 'width:150px';
  380. //adiciona aba dados profissionais
  381. $this->form->appendPage('Dados Profissionais');
  382. $lbl_data_adm_empresa = new TLabel('Data Admissão');
  383. $lbl_funcao = new TLabel('Função');
  384. $lbl_salario = new TLabel('Salário');
  385. $lbl_departamento = new TLabel('Departamento');
  386. $lbl_vale_transporte = new TLabel('Vale Transporte');
  387. $lbl_vale_refeicao = new TLabel('Vale Refeição');
  388. $lbl_outros_beneficios = new TLabel('Outros Benefícios');
  389. $lbl_entrada = new TLabel('Entrada');
  390. $lbl_intervalo = new TLabel('Intervalo');
  391. $lbl_saida = new TLabel('Saída');
  392. $lbl_descanso_semanal = new TLabel('Descanso Semanal');
  393. $lbl_deficiente_fisico = new TLabel('Deficiente Fisico');
  394. $lbl_matricula = new TLabel('Matricula');
  395. $data_adm = new TDate('data_adm');
  396. $funcao = new TEntry('funcao');
  397. $salario = new TEntry('txt_salario');
  398. $departamento_id = new TDBCombo('departamento_id','teste','DepartamentoOrganizacao','departamento_id','{departamento->descricao}');
  399. $matricula = new TEntry('matricula');
  400. $vale_transporte = new TEntry('vale_transporte');
  401. $vale_refeicao = new TEntry('vale_refeicao');
  402. $outros_beneficios = new TEntry('outros_beneficios');
  403. $entrada = new TDateTime('entrada');
  404. $intervalo = new TDateTime('intervalo');
  405. $saida = new TDateTime('saida');
  406. $descanso_semanal = new TEntry('descanso_semanal');
  407. $deficiente_fisico_id = new TCombo('deficiente_fisico_id');
  408. $deficiente_fisico_id->addItems( [ '1' => 'Sim', '2' => 'Não'] );
  409. $lbl_serie->class='lbl_text';
  410. $lbl_data_adm_empresa->class='lbl_text';
  411. $lbl_funcao->class='lbl_text';
  412. $lbl_salario->class='lbl_text';
  413. $lbl_departamento->class='lbl_text';
  414. $lbl_vale_transporte->class='lbl_text';
  415. $lbl_vale_refeicao->class='lbl_text';
  416. $lbl_outros_beneficios->class='lbl_text';
  417. $lbl_ctps->class='lbl_text';
  418. $lbl_serie->class='lbl_text';
  419. //$lbl_ctps_uf
  420. $lbl_data_emissao->class='lbl_text';
  421. $lbl_pis->class='lbl_text';
  422. $lbl_data_pis->class='lbl_text';
  423. $lbl_entrada->class='lbl_text';
  424. $lbl_intervalo->class='lbl_text';
  425. $lbl_saida->class='lbl_text';
  426. $lbl_descanso_semanal->class='lbl_text';
  427. $lbl_deficiente_fisico->class='lbl_text';
  428. $lbl_matricula->class='lbl_text';
  429. $lbl_data_adm_empresa->setSize('110');
  430. $lbl_funcao->setSize('180');
  431. $lbl_salario->setSize('180');
  432. $lbl_departamento->setSize('180');
  433. $lbl_entrada->setSize('110');
  434. $lbl_intervalo->setSize('110');
  435. $lbl_saida->setSize('110');
  436. $lbl_descanso_semanal->setSize('150');
  437. $lbl_deficiente_fisico->setSize('110');
  438. $lbl_matricula->setSize('110');
  439. $data_adm->setSize('110');
  440. $funcao->setSize('180');
  441. $salario->setSize('180');
  442. $departamento_id->setSize('180');
  443. $entrada->setSize('110');
  444. $intervalo->setSize('110');
  445. $saida->setSize('110');
  446. $descanso_semanal->setSize('150');
  447. $deficiente_fisico_id->setSize('110');
  448. $matricula->setSize('110');
  449. //validações
  450. $rg->addValidation('rg', new TRequiredValidator);
  451. $cpf->addValidation('cpf', new TRequiredValidator);
  452. $orgao_emissor->addValidation('rg', new TRequiredValidator);
  453. //formata mascara
  454. $data_adm->setMask('dd/mm/yyyy'); // define date mask
  455. $data_emissao->setMask('dd/mm/yyyy'); // define date mask
  456. $data_pis->setMask('dd/mm/yyyy'); // define date mask
  457. $cpf->setMask('999.999.999.99'); // Máscara Numérica Delimitada
  458. $rg->setMask('99.999.999.99'); // Máscara Numérica Delimitada
  459. $serie->forceUpperCase();
  460. $entrada->setMask('hh:00');
  461. $saida->setMask('hh:00');
  462. $intervalo->setMask('hh:00');
  463. $this->form->addFields( [$lbl_data_adm_empresa,$lbl_funcao,$lbl_salario,$lbl_departamento,$lbl_matricula] );
  464. $this->form->addFields( [$data_adm,$funcao,$salario,$departamento_id,$matricula] );
  465. $this->form->addFields( [$lbl_entrada,$lbl_intervalo,$lbl_saida,$lbl_descanso_semanal,$lbl_deficiente_fisico] );
  466. $this->form->addFields( [$entrada,$intervalo,$saida,$descanso_semanal,$deficiente_fisico_id] );
  467. //$this->form->addFields( [$lbl_descanso_semanal,$lbl_deficiente_fisico] );
  468. //$this->form->addFields( [$descanso_semanal,$deficiente_fisico] );
  469. $this->form->addAction('Salvar',new TAction(array($this, 'onSave')),'fa:save blue');
  470. $this->form->addAction('Listar',new TAction(array('FuncionarioGrid','onReload')),'fa:table blue');
  471. // create the page container
  472. $container = new TVBox;
  473. $container->style = 'width: 100%';
  474. $container->add(new TXMLBreadCrumb('menu.xml', 'FuncionarioFormBuilder'));
  475. $container->add($this->form);
  476. parent::add($container);
  477. }
  478. public static function onSave($param)
  479. {
  480. try {
  481. $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
  482. $unidade_id = TSession::getValue('unidade_id'); // pega id da unidade
  483. TTransaction::open('centinel'); // open a transaction
  484. TTransaction::setLoggerFunction(function($param)
  485. {
  486. print $param.'<br/>';
  487. });
  488. //abre a transação
  489. TTransaction::open('teste');
  490. if (isset($param['key']))
  491. {
  492. }
  493. else //cadastra novo funcionario
  494. {
  495. $pessoa = new Pessoa;
  496. $pessoa->criacao = date('Y-m-d H:i:s');
  497. $pessoa->atualizacao = date('Y-m-d H:i:s');
  498. //adiciona contatos da pessoa
  499. if(!empty($param['telefone']) AND is_array($param['telefone']) ){
  500. foreach( $param['telefone'] as $row => $telefone){
  501. if ($telefone){
  502. $item = new Contato;
  503. $item->pessoa_id = $pessoa->id;
  504. $item->ddi = $param['ddi'][$row];
  505. $item->ddd = $param['ddd'][$row];
  506. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  507. $item->operadora_id = $param['operadora_id'][$row];
  508. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  509. $item->organizacao_id = $organizacao_id;
  510. $item->criacao = date('Y-m-d H:i:s');
  511. $item->atualizacao = date('Y-m-d H:i:s');
  512. $item->ativo = 1;
  513. $pessoa->addContato($item);
  514. }
  515. }
  516. }
  517. //adiciona endereco da pessoa
  518. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) ){
  519. foreach( $param['id_endereco'] as $row => $id_endereco){
  520. if ($id_endereco){
  521. $pessoa_endereco = new PessoaEndereco;
  522. $pessoa_endereco->pessoa_id = $pessoa->id;
  523. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  524. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  525. $pessoa_endereco->numero = $param['numero'][$row];
  526. $pessoa_endereco->complemento = $param['compl'][$row];
  527. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  528. $pessoa_endereco->criacao = date('Y-m-d H:i:s');
  529. $pessoa_endereco->atualizacao = date('Y-m-d H:i:s');
  530. $pessoa_endereco->organizacao_id = $organizacao_id;
  531. $pessoa_endereco->ativo = 1;
  532. $pessoa->addPessoaEndereco($pessoa_endereco);
  533. }
  534. }
  535. }
  536. $pessoa->store();
  537. //cria vinculo entre funcionaro e empresa
  538. $pessoa_organizacao = new PessoaOrganizacao;
  539. $pessoa_organizacao->pessoa_id = $pessoa->id;
  540. $pessoa_organizacao->organizacao_id = $organizacao_id;
  541. $pessoa_organizacao->ativo = 1;
  542. $pessoa_organizacao->criacao = date('Y-m-d H:i:s');
  543. $pessoa_organizacao->atualizacao = date('Y-m-d H:i:s');
  544. $pessoa_organizacao->tipo_pessoa_id = 1;
  545. $pessoa_organizacao->tipo_vinculo_id = 2;
  546. //$pessoa_organizacao->unidade_id = $unidade_id; //pega unidade logada
  547. $pessoa_organizacao->store();
  548. $fisica = new Fisica;
  549. $fisica->pessoa_id = $pessoa->id;
  550. $fisica->nome = $param['nome'];
  551. $fisica->data_nascimento = TDate::date2us($param['data_nascimento']);
  552. $fisica->cpf = str_replace('-', '',str_replace('.','',$param['cpf']));
  553. $fisica->rg = str_replace('-', '',str_replace('.','',$param['rg']));
  554. $fisica->data_expedicao = TDate::date2us($param['data_expedicao']);
  555. $fisica->orgao_emissor = $param['orgao_emissor'];
  556. $fisica->genero_id = $param['genero_id'];
  557. $fisica->civil_id = $param['estado_civil_id'];
  558. $fisica->etnia_id = $param['etnia_id'];
  559. $fisica->criacao = date('Y-m-d H:i:s');
  560. $fisica->atualizacao = date('Y-m-d H:i:s');
  561. $fisica->certidao_reservista = $param['certidao_reservista'];
  562. $fisica->cat_cert_reservista = $param['cat_cert_reservista'];
  563. $fisica->data_emissao = TDate::date2us($param['data_emissao']);
  564. $fisica->naturalidade = $param['local_nascto'];
  565. $fisica->uf = $param['local_nascto_uf'];
  566. $fisica->mae = $param['nome_mae'];
  567. $fisica->pai = $param['nome_pai'];
  568. $fisica->titulo_eleitor = $param['titulo_eleitor'];
  569. $fisica->secao = $param['secao'];
  570. $fisica->zona = $param['zona'];
  571. $fisica->habilitacao = $param['habilitacao'];
  572. $fisica->categoria_habilitacao = $param['categoria'];
  573. $fisica->vencimento_habilitacao = $param['vencimento'];
  574. $fisica->store();
  575. //adciona funcionario
  576. $funcionario = new Funcionario;
  577. $funcionario->pessoa_id = $pessoa->id;
  578. $funcionario->data_contratacao = TDate::date2us($param['data_adm']);
  579. $funcionario->organizacao_id = $organizacao_id;
  580. $funcionario->dependente = 0; //param['dependente'];
  581. $funcionario->matricula = $param['matricula'];
  582. $funcionario->criacao = date('Y-m-d H:i:s');
  583. $funcionario->atualizacao = date('Y-m-d H:i:s');
  584. $funcionario->deficiente_fisico = $param['deficiente_fisico_id'];
  585. $funcionario->pis = $param['pis'];
  586. $funcionario->data_emissao_pis = $param['data_emissao_pis'];
  587. $funcionario->deficiencia = 0;
  588. $funcionario->store();
  589. }
  590. $data = new stdClass;
  591. $data->id = $funcionario->id;
  592. TForm::sendData('frm_funcionario', $data);// keep form data
  593. TTransaction::close(); // close the transaction
  594. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  595. } catch (Exception $e) {
  596. new TMessage('error', $e->getMessage());
  597. //desfaz operações
  598. TTransaction::rollback();
  599. }
  600. }
  601. public function onEdit($param)
  602. {
  603. try
  604. {
  605. if (isset($param['key']))
  606. {
  607. $key = $param['key'];
  608. $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
  609. //abre a transação
  610. TTransaction::open('teste');
  611. //carrega o active record Funcionario conforme id
  612. $funcionario = Funcionario::find($key);
  613. //remove pontos e virgulas
  614. $rg = str_replace('.','', $funcionario->fisica->rg);
  615. $rg = substr($rg, 0,2).'.'.substr($rg,2,3).'.'.substr($rg, 5,3).'-'.substr($rg, 8,11);
  616. $cpf = str_replace('.','',str_replace('-','',$funcionario->fisica->cpf));
  617. $cpf = substr($cpf, 0,3).'.'.substr($cpf,3,3).'.'.substr($cpf, 6,3).'-'.substr($cpf, 9,2);
  618. //dados pessoais
  619. $funcionario->nome = $funcionario->fisica->nome;
  620. $funcionario->local_nascto = $funcionario->fisica->naturalidade;
  621. $funcionario->local_nascto_uf = $funcionario->fisica->uf;
  622. $funcionario->data_nascimento = TDate::date2br($funcionario->fisica->data_nascimento);
  623. $funcionario->etnia_id = $funcionario->fisica->etnia_id;
  624. $funcionario->estado_civil_id = $funcionario->fisica->civil_id;
  625. $funcionario->genero_id = $funcionario->fisica->genero_id;
  626. $funcionario->grau_instrucao = $funcionario->grau_instrucao;
  627. $funcionario->nome_conjuge = $funcionario->conjuge->nome;
  628. $funcionario->nome_pai = $funcionario->fisica->pai;
  629. $funcionario->nome_mae = $funcionario->fisica->mae;
  630. //dados conta bancaria
  631. foreach ($funcionario->get_conta() as $conta)
  632. {
  633. $funcionario->nome_banco = $conta->banco;
  634. $funcionario->nome_agencia = $conta->nome_agencia;
  635. $funcionario->numero_conta = $conta->numero_conta;
  636. $funcionario->tipo_conta_id = $conta->tipo_conta_id;
  637. }
  638. //documento pessoais
  639. $funcionario->cpf = $cpf;
  640. $funcionario->rg = $rg;
  641. $funcionario->orgao_emissor = $funcionario->fisica->orgao_emissor;
  642. $funcionario->data_expedicao = TDate::date2br($funcionario->fisica->data_expedicao);
  643. $funcionario->titulo_eleitor = $funcionario->fisica->titulo_eleitor;
  644. $funcionario->zona = $funcionario->fisica->zona;
  645. $funcionario->secao = $funcionario->fisica->secao;
  646. $funcionario->certidao_reservista = $funcionario->fisica->certidao_reservista;
  647. $funcionario->cat_cert_reservista = $funcionario->fisica->cat_cert_reservista;
  648. $funcionario->habilitacao = $funcionario->fisica->habilitacao;
  649. $funcionario->categoria = $funcionario->fisica->categoria_habilitacao;
  650. $funcionario->vencimento = $funcionario->fisica->vencimento_habilitacao;
  651. //dados profissionais
  652. $funcionario->data_adm = TDate::date2br($funcionario->data_contratacao);
  653. $funcionario->matricula = $funcionario->matricula;
  654. $funcionario->deficiente_fisico_id = $funcionario->deficiente_fisico;
  655. //print_r($funcionario->funcionario_departamento);
  656. foreach ($funcionario->funcionario_departamento as $object)
  657. {
  658. $funcionario->departamento_id = $object->departamento_id;
  659. $funcionario->funcao = $object->funcao;
  660. }
  661. foreach ($funcionario->ctps as $value)
  662. {
  663. $funcionario->carteira_trabalho = $value->numero_ctps;
  664. $funcionario->numero_serie = $value->serie_uf;
  665. $funcionario->data_emissao = TDate::date2br($value->data_emissao);
  666. }
  667. //print_r($funcionario->salario);
  668. foreach ($funcionario->salario as $value) {
  669. $funcionario->txt_salario = 'R$ ' . $value->valor;
  670. }
  671. //print_r( $funcionario->salario);
  672. $funcionario->pis = $funcionario->pis;
  673. $funcionario->data_pis = TDate::date2br($funcionario->data_emissao_pis);
  674. $contatos = $funcionario->get_contatos();
  675. if ($contatos)
  676. {
  677. //$this->contatoList->addHeader();
  678. foreach($contatos as $contato )
  679. {
  680. $contato->ddi = $contato->ddi;
  681. $contato->ddd = $contato->ddd;
  682. $contato->telefone = substr($contato->telefone, 0, 4) . '-' . substr($contato->telefone, 4, 8);
  683. $contato->tipo_telefone_id = $contato->tipo_telefone_id;
  684. $contato->operadora_id = $contato->operadora_id;
  685. }
  686. $this->contatoList->addDetail($contato);
  687. //$this->contatoList->addCloneAction();
  688. }
  689. else
  690. {
  691. $this->onClear($param);
  692. }
  693. //$enderecos = $funcionario->endereco;
  694. //print_r($funcionario->endereco);
  695. if ($funcionario->pessoa_enderecos)
  696. {
  697. //$this->enderecoList->addHeader();
  698. foreach($funcionario->pessoa_enderecos as $endereco)
  699. {
  700. print $endereco->endereco_id.'<br/>Logradouro : '.$endereco->endereco->logradouro ;
  701. $endereco->id_endereco = $endereco->endereco_id;
  702. $endereco->txt_cep = substr($endereco->endereco->cep, 0, 5) . '-' . substr($endereco->endereco->cep, 5, 8);
  703. $endereco->logradouro = $endereco->endereco->logradouro;
  704. $endereco->bairro = $endereco->endereco->bairro;
  705. $endereco->cidade = $endereco->endereco->cidade;
  706. $endereco->uf = $endereco->endereco->uf;
  707. $endereco->compl = $endereco->endereco->complemento;
  708. $this->enderecoList->addDetail($endereco);
  709. }
  710. //$this->enderecoList->addCloneAction();
  711. }
  712. else
  713. {
  714. $this->onClear($param);
  715. }
  716. $obj = $funcionario->get_dependente();
  717. //$this->dependenteList->addHeader();
  718. if ($obj)
  719. {
  720. foreach ($obj as $dependente)
  721. {
  722. $dependente->nome_dependente = $dependente->nome;
  723. $dependente->nascimento_dependente = $dependente->data_nascimento;
  724. $dependente->grau_parentesco_dependente = $dependente->grau_parentesco_id;
  725. $this->dependenteList->addDetail($dependente);
  726. }
  727. //$this->dependenteList->addCloneAction();
  728. }
  729. else
  730. {
  731. $this->onClear($param); //ao adicionar este aqui todos os outros duplicam
  732. }
  733. //preenche o formulario com os dados do funcionário
  734. $this->form->setData($funcionario);
  735. TTransaction::close();
  736. }
  737. }
  738. catch (Exception $e)
  739. {
  740. new TMessage('error', $e->getMessage());
  741. //desfaz operações
  742. TTransaction::rollback();
  743. }
  744. }
  745. public function onClear($param)
  746. {
  747. $this->form->clear();
  748. //endereços
  749. $this->enderecoList->addHeader();
  750. //$this->enderecoList->addDetail( new stdClass );
  751. $this->enderecoList->addCloneAction();
  752. //dependentes
  753. $this->dependenteList->addHeader();
  754. $this->dependenteList->addDetail( new stdClass );
  755. $this->dependenteList->addCloneAction();
  756. //contato
  757. $this->contatoList->addHeader();
  758. //$this->contatoList->addDetail( new stdClass );
  759. $this->contatoList->addCloneAction();
  760. }
  761. //method onCep()
  762. public static function onCep($param)
  763. {
  764. $endereco_cep = $param['_field_id'];
  765. $cep_endereco = $param['_field_value'];
  766. $endereco_cep = explode('_', $endereco_cep);
  767. $unique_id = end($endereco_cep);
  768. $retorno = Endereco::BuscaCepWeb($cep_endereco);
  769. if (!empty($retorno))
  770. {
  771. $response = new stdClass;
  772. $response->{'id_endereco_'.$unique_id} = $retorno['id'];
  773. $response->{'logradouro_'.$unique_id} = $retorno['logradouro'];
  774. $response->{'bairro_'.$unique_id} = $retorno['bairro'];
  775. $response->{'cidade_'.$unique_id} = $retorno['localidade'];
  776. $response->{'uf_'.$unique_id} = $retorno['uf'];
  777. //$response->{'ibge_'}.$unique_id = strtoupper( $retorno['ibge']);
  778. //$response->{'gia'}.$unique_id = strtoupper( $retorno['gia']);
  779. TForm::sendData('frm_funcionario', $response);
  780. TScript::create('$("input[name=numero]").focus();');
  781. }
  782. else
  783. {
  784. $endereco = Endereco::BuscaCepBanco($cep_endereco);
  785. if($endereco)
  786. {
  787. $retorno = new stdClass;
  788. $retorno->{'id_endereco_'.$unique_id} = $endereco['id'];
  789. $retorno->{'cep_'.$unique_id} = $endereco['cep'];
  790. $retorno->{'logradouro_'.$unique_id} = $endereco['logradouro'];
  791. $retorno->{'bairro_'.$unique_id} = $endereco['bairro'];
  792. $retorno->{'cidade_'.$unique_id} = $endereco['cidade'];
  793. $retorno->{'uf_'.$unique_id} = $endereco['uf'];
  794. //$retorno->{'ibge_'}.$unique_id = $endereco['ibge'];
  795. //$retorno->{'gia'}.$unique_id = $endereco['gia'];
  796. TForm::sendData('frm_funcionario', $retorno);
  797. TScript::create('$("input[name=numero]").focus();');
  798. }
  799. else
  800. {
  801. new TMessage("error", "CEP - Em Branco ou Inválido");
  802. }
  803. }
  804. }
  805. public function onFisica($param)
  806. {
  807. $this->onClear($param = NULL);
  808. $pessoa_id = $param['parameter'];
  809. try {
  810. TTransaction::open('teste');
  811. $retorno = Fisica::where('pessoa_id','=',$pessoa_id)->load();
  812. if (!empty($retorno))
  813. {
  814. //var_dump($retorno);
  815. $response = new stdClass;
  816. $response->{'nome'} = $retorno['nome'];
  817. $response->{'cpf'} = $retorno['cpf'];
  818. $response->{'rg'} = $retorno['rg'];
  819. $response->{'titulo_eleitor'} = $retorno['titulo_eleitor'];
  820. $response->{'uf_'} = $retorno['uf'];
  821. TForm::sendData('frm_funcionario', $response);
  822. }
  823. /*
  824. else
  825. {
  826. $response = new stdClass;
  827. $response->{'nome'} = $retorno['nome'];
  828. $response->{'cpf'} = $retorno['cpf'];
  829. $response->{'rg'} = $retorno['rg'];
  830. $response->{'titulo_eleitor'} = $retorno['titulo_eleitor'];
  831. $response->{'uf_'} = $retorno['uf'];
  832. }
  833. */
  834. TTransaction::close();
  835. } catch (Exception $e) {
  836. new TMessage('error', $e->getMessage());
  837. }
  838. }
  839. }
  840. ?>

</span></span></span>
NR

Verifique sua função onEdit, ela permite que a função onClear seja executada várias vezes, o que acaba repetindo o comando addHeader.
BI

Olá Rubens!
vc conseguiu resolver o problema para carregar os dados nos campos multifields do onEdit?
tenho um TCombo que deve ser carregada pelo método onChange... deve ser o mesmo problema seu onde a função onCep não é carregada.
RB

Betuel, bom dia,

O meu problema é com a versão nova.

Eu tenho um formulário na versão antiga que esta funcionando, caso te ajude segue abaixo.

 
  1. <?php
  2. class EmpresaBuilder extends TPage
  3. {
  4. private $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(){
  13. parent::__construct();
  14. parent::include_css('app/resources/builder.css');
  15. parent::include_css('app/resources/blue_modificado.css');
  16. //cria formulario
  17. $this->form = new BootstrapFormBuilder('frm_empresa');
  18. $this->form->setFormTitle('Empresa');
  19. /*
  20. $div_pesq = new TElement('div');
  21. $div_pesq->id = 'div_pesq';
  22. $div_pesq->style = 'width:100%;';
  23. //cria formulário de pesquisa
  24. $form_cnpj = new TForm('frm_cnpj');
  25. $form_cnpj->style = 'width:30%;float:right;';
  26. $pesq_cnpj = new TEntry('pesq_cnpj');
  27. $pesq_cnpj->setMask('99.999.999/9999-99');
  28. $pesq_cnpj->setMaxLength(18);
  29. $pesq_cnpj->placeholder = "CNPJ";
  30. // creates the action button
  31. $button1 = new TButton('action1');
  32. $button1->setAction(new TAction(array($this, 'pesqCnpj')), 'Pesquisar');
  33. $button1->setImage('fa:check-circle-o green');
  34. //adciona itens ao formulário de pesquisa
  35. $form_cnpj->add($pesq_cnpj);
  36. $form_cnpj->setFields([$pesq_cnpj,$button1]);
  37. $div_pesq->add($form_cnpj);
  38. $this->form->addFields([$div_pesq,$button1] );
  39. */
  40. $dados_cliente = new TLabel('Identificação da Empresa');
  41. $dados_cliente->class = 'lbl_titulo';
  42. $this->form->addContent( [$dados_cliente] );
  43. //cria os labels do fromulário
  44. $lbl_tipo_organizacao = new TLabel('Tipo');
  45. $lbl_id = new TLabel('#');
  46. $lbl_nome_fantasia = new TLabel('Nome Fantasia');
  47. $lbl_razao_social = new TLabel('Razão Social');
  48. $lbl_data_nascto = new TLabel('Data Início');
  49. $lbl_cod_desc_ativ_principal = new TLabel('Código e Descrição da Atividade Econômica Principal');
  50. $lbl_cod_desc_ativ_secundaria = new TLabel('Código e Descrição da Atividade Econômica Secundária');
  51. $lbl_categoria_natureza_juridica = new TLabel('Categoria Natureza Jurídica');
  52. $lbl_cod_natureza_juridica = new TLabel('Código e Descrição da Natureza Jurídica');
  53. $lbl_cod_modelo_fiscal = new TLabel('Modelo Fiscal');
  54. $lbl_status = new TLabel('Status');
  55. //formata fontes titulos
  56. $lbl_id->class='lbl_text';
  57. $lbl_nome_fantasia->class='lbl_text';
  58. $lbl_razao_social->class='lbl_text';
  59. $lbl_data_nascto->class='lbl_text';
  60. $lbl_tipo_organizacao->class='lbl_text';
  61. $lbl_cod_desc_ativ_principal->class='lbl_text';
  62. $lbl_cod_desc_ativ_secundaria->class='lbl_text';
  63. $lbl_categoria_natureza_juridica->class='lbl_text';
  64. $lbl_cod_natureza_juridica->class='lbl_text';
  65. $lbl_cod_modelo_fiscal->class='lbl_text';
  66. $lbl_status->class='lbl_text';
  67. //cria os campos do fromulário Identificação da Empresa
  68. $id = new TEntry('id');
  69. $id->setEditable(false);
  70. $tipo_organizacao_id = new TCombo('tipo_organizacao_id');
  71. $tipo_organizacao_id->setSize('9%');
  72. $tipo_organizacao_id->addItems( [ '1' => 'Matriz', '2' => 'Filial'] );
  73. $tipo_organizacao_id->setDefaultOption(false);
  74. $nome_fantasia = new TEntry('nome_fantasia', new TRequiredValidator);
  75. $razao_social = new TEntry('razao_social', new TRequiredValidator);
  76. $data_nascto = new TDate('data_nascto', new TRequiredValidator);
  77. $data_nascto->setMask('dd/mm/yyyy');
  78. $cod_desc_ativ_principal = new TText('cod_desc_ativ_principal', new TRequiredValidator);//atividade primária
  79. $cod_desc_ativ_secundaria = new TText('cod_desc_ativ_secundaria');//atividade secundária
  80. $nome_fantasia->style = 'text-transform: uppercase';
  81. $razao_social->style ='text-transform: uppercase';
  82. $cod_desc_ativ_principal->style = 'text-transform: uppercase';
  83. $cod_desc_ativ_secundaria->style = 'text-transform: uppercase';
  84. $lbl_id->setSize('5%');
  85. $id->setSize('5%');
  86. $lbl_id->style = 'display:none';
  87. $id->style = 'display:none';
  88. $lbl_nome_fantasia->setSize('50%');
  89. $lbl_razao_social->setSize('30%');
  90. $lbl_cod_desc_ativ_principal->setSize('100%');
  91. $lbl_cod_desc_ativ_secundaria->setSize('100%');
  92. $cod_desc_ativ_principal->setSize('100%','90');
  93. $cod_desc_ativ_secundaria->setSize('100%','90');
  94. $lbl_cod_natureza_juridica->setSize('50%');
  95. $nome_fantasia->setSize('50%');
  96. $razao_social->setSize('30%');
  97. $data_nascto->setSize('11%');
  98. $lbl_tipo_organizacao->setSize('9%');
  99. //adciona criterio de filtro categoria natureza juridica
  100. $filter = new TCriteria;
  101. $filter->add(new TFilter('id', '<', '4'));
  102. //combo 1(master)
  103. $categoria_juridica_id = new TDBCombo('categoria_juridica_id' ,'nome_base','CategoriaJuridica','id','descricao','descricao asc',$filter);
  104. $categoria_juridica_id->setDefaultOption(false);
  105. $categoria_juridica_id->setChangeAction( new TAction( array($this, 'onChangeAction')) );
  106. $filter1 = new TCriteria;
  107. $filter1->add(new TFilter('id', '<','0'));
  108. //combo 2 (detail)
  109. $natureza_juridica_id = new TDBCombo('natureza_juridica_id','nome_base','NaturezaJuridica','id','codigo_descricao','codigo_descricao asc',$filter1);
  110. $natureza_juridica_id->setDefaultOption(false);
  111. $lbl_categoria_natureza_juridica->setSize('50%');
  112. $lbl_cod_natureza_juridica->setSize('50%');
  113. $categoria_juridica_id->setSize('50%');
  114. $natureza_juridica_id->setSize('50%');
  115. //$modelo_fiscal = new TText('modelo_fiscal');
  116. $modelo_fiscal = new TDBCombo('modelo_fiscal_id','nome_base','ModeloFiscal','id','nome');
  117. $modelo_fiscal->setDefaultOption(false);
  118. //cria os labels do fromulário Documentos de Registro da Empresa
  119. $lbl_cnpj = new TLabel('CNPJ');
  120. $lbl_inscricao_estadual = new TLabel('Inscrição Estadual');
  121. $lbl_inscricao_junta_comercial = new TLabel('Inscrição Junta Comercial');
  122. $lbl_inscricao_municipal = new TLabel('Inscrição Municipal');
  123. $lbl_cnpj->class='lbl_text';
  124. $lbl_inscricao_estadual->class='lbl_text';
  125. $lbl_inscricao_junta_comercial->class='lbl_text';
  126. $lbl_inscricao_municipal->class='lbl_text';
  127. //cria os campos do fromulário documentos
  128. $cnpj = new TEntry('cnpj');
  129. $cnpj->setMask('99.999.999/9999-99');
  130. $cnpj->setMaxLength(18);
  131. $cnpj->addValidation('cnpj',new TCNPJValidator);
  132. $cnpj->addValidation('cnpj',new TMaxLengthValidator, array(18));
  133. $cnpj->addValidation('cnpj',new TMinValueValidator, array(18));
  134. $cnpj->addValidation('cnpj',new TNumericValidator);
  135. $inscricao_estadual = new TEntry('inscricao_estadual');
  136. $inscricao_estadual->setMaxLength(15);
  137. //$inscricao_estadual->addValidation('inscricao_estadual', new TNumericValidator,new TMinValueValidator, array(15),new TMaxLengthValidator, array(15));
  138. //$inscricao_estadual->setMask('999.999.999.999');
  139. $inscricao_junta_comercial = new TEntry('inscricao_junta_comercial');
  140. $inscricao_junta_comercial->setMaxLength(15);
  141. //$inscricao_junta_comercial->addValidation('inscricao_junta_comercial', new TNumericValidator,new TMinValueValidator, array(15),new TMaxLengthValidator, array(15));
  142. //$inscricao_junta_comercial->setMask('99.999.999/9999-99');
  143. $inscricao_municipal = new TEntry('inscricao_municipal');
  144. $inscricao_municipal->setMaxLength(15);
  145. //$inscricao_municipal->setMask('99.999.999/9999-99');
  146. //cria container atividades
  147. $atividades = new TElement('div');
  148. $atividades->style = 'width:100%;float:left;border 1px solid #ccc;';
  149. //cria container atv_box_primaria
  150. $atv_box_primaria = new TElement('div');
  151. $atv_box_primaria->style = 'float:left;width:49%;margin:0 1% 1% 0;';
  152. //adiciona campos no container atv_box_primaria
  153. $atv_box_primaria->add($lbl_cod_desc_ativ_principal);
  154. $atv_box_primaria->add($cod_desc_ativ_principal);
  155. //cria container atv_box_secundaria
  156. $atv_box_secundaria = new TElement('div');
  157. $atv_box_secundaria->style = 'float:left;width:50%;margin:0 0 1% 0;';
  158. //adiciona campos no container atv_box_secundaria
  159. $atv_box_secundaria->add($lbl_cod_desc_ativ_secundaria);
  160. $atv_box_secundaria->add($cod_desc_ativ_secundaria);
  161. //adiciona atividades no container atividades
  162. $atividades->add($atv_box_primaria);
  163. $atividades->add($atv_box_secundaria);
  164. //adiciona campos atividades ao formulario
  165. $this->form->addField($cod_desc_ativ_principal);
  166. $this->form->addField($cod_desc_ativ_secundaria);
  167. $this->form->addFields([$lbl_id,$lbl_nome_fantasia,$lbl_razao_social,$lbl_tipo_organizacao,$lbl_data_nascto]);
  168. $this->form->addFields([$id,$nome_fantasia,$razao_social,$tipo_organizacao_id,$data_nascto]);
  169. $this->form->addFields([$atividades]);
  170. $this->form->addFields([$lbl_categoria_natureza_juridica,$lbl_cod_natureza_juridica]);
  171. $this->form->addFields([$categoria_juridica_id,$natureza_juridica_id]);
  172. //adiciona campos documentos empresa
  173. $documentos_registro = new TLabel('Documentos de Registro da Empresa');
  174. $documentos_registro->class ='lbl_titulo';
  175. $this->form->addContent( [$documentos_registro] );
  176. $this->form->addFields([$lbl_cnpj,$lbl_inscricao_estadual,$lbl_inscricao_junta_comercial,$lbl_inscricao_municipal]);
  177. $this->form->addFields([$cnpj,$inscricao_estadual,$inscricao_junta_comercial,$inscricao_municipal]);
  178. $lbl_cnpj->setSize('25%');
  179. $lbl_inscricao_estadual->setSize('25%');
  180. $lbl_inscricao_junta_comercial->setSize('25%');
  181. $lbl_inscricao_municipal->setSize('25%');
  182. $cnpj->setSize('25%');
  183. $inscricao_estadual->setSize('25%');
  184. $inscricao_junta_comercial->setSize('25%');
  185. $inscricao_municipal->setSize('25%');
  186. //adiciona campos informações financeiras da empresa
  187. $informacoes_financeira = new TLabel('Informações Financeira');
  188. $informacoes_financeira->class ='lbl_titulo';
  189. $this->form->addContent( [$informacoes_financeira] );
  190. $lbl_faturamento_anual = new TLabel('Faturamento Anual');
  191. $lbl_margen_lucro = new TLabel('Margem de Lucro');
  192. $faturamento_anual = new TEntry('faturamento_anual');
  193. $margen_lucro = new TEntry('margen_lucro');
  194. $this->form->addFields([$lbl_faturamento_anual,$lbl_margen_lucro]);
  195. $this->form->addFields([$faturamento_anual,$margen_lucro]);
  196. //formata labels informações financeiras
  197. $lbl_faturamento_anual->class = 'lbl_text';
  198. $lbl_margen_lucro->class = 'lbl_text';
  199. $lbl_faturamento_anual->setSize('50%');
  200. $lbl_margen_lucro->setSize('50%');
  201. $faturamento_anual->setSize('50%');
  202. $margen_lucro->setSize('50%');
  203. //cria dados de contato
  204. $contato = new TLabel('Contato');
  205. $contato->class = 'lbl_titulo';
  206. $lbl_ddi = new TLabel('DDI');
  207. $lbl_dd = new TLabel('DDD');
  208. $lbl_tipo_telefone = new TLabel('Tipo Telefone');
  209. $lbl_telefone = new TLabel('Telefone');
  210. $lbl_operadora = new TLabel('Operadora');
  211. //Cria tabela contato adiciona campos
  212. $this->table_contato = new TTable('table_contato');
  213. $this->table_contato->width ='100%';
  214. $this->table_contato->addSection('thead');
  215. $this->table_contato->addSection('tbody');
  216. //cria frame contato
  217. $this->frame_contato = new TFrame;
  218. $this->frame_contato->style = 'width:98%;border:none;float:lef;margin-left:-1px;';
  219. $this->frame_contato->add($contato);
  220. $this->frame_contato->add($this->table_contato);
  221. $this->table_contato->addRowSet([$lbl_ddi,$lbl_dd,$lbl_tipo_telefone,$lbl_telefone,$lbl_operadora]);
  222. $this->form->addContent([$this->frame_contato]);
  223. $lbl_email = new TLabel('Email');
  224. $email = new TEntry('email');
  225. $email->placeholder = "exemplo@exemplo.com.br";
  226. $email->addValidation('email', new TEmailValidator); // email field
  227. $lbl_site = new TLabel('Site');
  228. $site = new TEntry('url');
  229. $site->placeholder = "exemplo.com.br";
  230. $lbl_responsavel = new TLabel('Responsável');
  231. $responsavel = new TEntry('responsavel');
  232. $responsavel->style='text-transform: uppercase';
  233. //adiciona contato web
  234. $this->form->addFields( [$lbl_email,$lbl_site,$lbl_responsavel] );
  235. $this->form->addFields( [$email,$site,$responsavel] );
  236. $email->setSize('33.3333%');
  237. $site->setSize('33.3333%');
  238. $responsavel->setSize('33.3333%');
  239. //adiciona dados de correspondência
  240. $lbl_endereco = new TLabel('Endereco');
  241. $lbl_endereco->class='lbl_titulo';
  242. $lbl_cep = new TLabel('Cep');
  243. $lbl_id_cep = new TLabel('#');
  244. $lbl_id_cep->style = 'display:none;';
  245. $lbl_logradouro = new TLabel('Logradouro');
  246. $lbl_numero = new TLabel('Número');
  247. $lbl_bairro = new TLabel('Bairro');
  248. $lbl_cidade = new TLabel('Cidade');
  249. $lbl_uf = new TLabel('UF');
  250. $lbl_tipo_endereco_id = new TLabel('Tipo Endereco');
  251. $lbl_complemento = new TLabel('Complemento');
  252. $lbl_regiao = new TLabel('Região');
  253. $this->detail_row = 0;
  254. $this->detail_row_1 = 0;
  255. $this->table_endereco = new TTable();
  256. $this->table_endereco->width ='100%';
  257. $this->table_endereco->addSection('thead');
  258. $this->table_endereco->addSection('tbody');
  259. $this->frame_endereco = new TFrame;
  260. $this->frame_endereco->style ='width:98%;border:none;float:lef;margin-left:-1px;';
  261. $this->frame_endereco->add($lbl_endereco);
  262. $this->frame_endereco->add($this->table_endereco);
  263. $this->table_endereco->addRowSet([$lbl_id_cep,$lbl_cep,$lbl_logradouro,$lbl_numero,$lbl_bairro,$lbl_cidade,$lbl_uf,$lbl_tipo_endereco_id,$lbl_complemento,$lbl_regiao]);
  264. $this->form->addContent([$this->frame_endereco]);
  265. $lbl_id_cep->class='lbl_text';
  266. $lbl_cep->class='lbl_text';
  267. $lbl_logradouro->class='lbl_text';
  268. $lbl_numero->class='lbl_text';
  269. $lbl_tipo_endereco_id->class='lbl_text';
  270. $lbl_bairro->class='lbl_text';
  271. $lbl_cidade->class='lbl_text';
  272. $lbl_uf->class='lbl_text';
  273. $lbl_complemento->class='lbl_text';
  274. $lbl_regiao->class='lbl_text';
  275. $lbl_id_cep->setSize('30');
  276. $lbl_cep->setSize('70');
  277. $lbl_logradouro->setSize('160');
  278. $lbl_bairro->setSize('140');
  279. $lbl_cidade->setSize('100');
  280. $lbl_uf->setSize('30');
  281. $lbl_numero->setSize('65');
  282. $lbl_complemento->setSize('100');
  283. $lbl_regiao->setSize('100');
  284. $lbl_tipo_endereco_id->setSize('100');
  285. $lbl_ddi->class='lbl_text';
  286. $lbl_dd->class='lbl_text';
  287. $lbl_tipo_telefone->class='lbl_text';
  288. $lbl_telefone->class='lbl_text';
  289. $lbl_operadora->class='lbl_text';
  290. $lbl_email->class='lbl_text';
  291. $lbl_site->class='lbl_text';
  292. $lbl_responsavel->class='lbl_text';
  293. $lbl_ddi->setSize('40');
  294. $lbl_dd->setSize('40');
  295. $lbl_tipo_telefone->setSize('100');
  296. $lbl_telefone->setSize('100');
  297. $lbl_email->setSize('33.3333%');
  298. $lbl_site->setSize('33.3333%');
  299. $lbl_responsavel->setSize('33.3333%');
  300. //cria botões de ações
  301. $this->form->addAction('Salvar',new TAction(array($this, 'onSave')),'fa:save blue');
  302. $this->form->addAction('Listar',new TAction(array('EmpresaGrid','onReload')),'fa:table blue');
  303. // wrap the page content using vertical box
  304. $vbox = new TVBox;
  305. $vbox->style = 'width:100%,display:table;';
  306. $vbox->add($this->form);
  307. parent::add($this->form);
  308. }
  309. public function onClear($param)
  310. {
  311. $this->form->clear(TRUE);
  312. //$this->table_contato->addSection('tbody');
  313. $this->addContatoRow(new stdClass);
  314. //criar e adicionar botão
  315. $add = new TButton('addContact');
  316. $add->setLabel('Adicionar');
  317. $add->setImage('fa:plus-circle blue');
  318. $add->addFunction('ttable_clone_previous_row(this)');
  319. //adiciona botão a tabela
  320. $row = $this->table_contato->addSection('tfoot');
  321. $row = $this->table_contato->addRowSet([$add]);
  322. //adciona tabela endereco
  323. //$this->table_endereco->addSection('tbody');
  324. $this->addEnderecoRow(new stdClass);
  325. //criar e adicionar botão
  326. $add_endereco = new TButton('addEnder');
  327. $add_endereco->setLabel('Adicionar');
  328. $add_endereco->setImage('fa:plus-circle blue');
  329. $add_endereco->addFunction('ttable_clone_previous_row(this)');
  330. //adiciona botão a tabela
  331. $row_end = $this->table_endereco->addSection('tfoot');
  332. $row_end = $this->table_endereco->addRowSet([$add_endereco]);
  333. }
  334. public static function onCep($param)
  335. {
  336. $endereco_cep = $param['_field_id'];
  337. $cep_endereco = $param['_field_value'];
  338. $endereco_cep = explode('_', $endereco_cep);
  339. $unique_id = end($endereco_cep);
  340. $retorno = Endereco::BuscaCepWeb($cep_endereco);
  341. if (!empty($retorno))
  342. {
  343. $response = new stdClass;
  344. $response->{'id_endereco_'.$unique_id} = $retorno['id'];
  345. $response->{'logradouro_'.$unique_id} = $retorno['logradouro'];
  346. $response->{'bairro_'.$unique_id} = $retorno['bairro'];
  347. $response->{'cidade_'.$unique_id} = $retorno['localidade'];
  348. $response->{'uf_'.$unique_id} = $retorno['uf'];
  349. //$response->ibge = strtoupper( $retorno['ibge']);
  350. //$response->gia = strtoupper( $retorno['gia']);
  351. TForm::sendData('frm_empresa', $response);
  352. TScript::create('$("input[name=numero]").focus();');
  353. }
  354. else
  355. {
  356. $endereco = Endereco::BuscaCepBanco($cep_endereco);
  357. if($endereco)
  358. {
  359. $retorno = new stdClass;
  360. $retorno->{'id_endereco_'.$unique_id} = $endereco['id'];
  361. $retorno->{'logradouro_'.$unique_id} = $endereco['logradouro'];
  362. $retorno->{'bairro_'.$unique_id} = $endereco['bairro'];
  363. $retorno->{'cidade_'.$unique_id} = $endereco['cidade'];
  364. $retorno->{'uf_'.$unique_id} = $endereco['uf'];
  365. TForm::sendData('frm_empresa', $retorno);
  366. TScript::create('$("input[name=numero]").focus();');
  367. }
  368. /*
  369. else
  370. {
  371. new TMessage("error", "CEP - Em Branco ou Inválido");
  372. }
  373. */
  374. }
  375. }
  376. public static function onSave($param)
  377. {
  378. $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
  379. $user_id = TSession::getValue('userid'); // pega id da usuário
  380. $data_actual = date('Y-m-d H:i:s');
  381. try
  382. {
  383. TTransaction::open('nome_base'); // open a transaction
  384. TTransaction::setLoggerFunction(function($param)
  385. {
  386. print $param.'<br/>';
  387. });
  388. if( (! $param['nome_fantasia'])){
  389. throw new Exception('O Campo nome fantasia é obrigatório');
  390. }
  391. if( (! $param['data_nascto'])){
  392. throw new Exception('O Campo data inicio é obrigatório');
  393. }
  394. if( (! $param['razao_social'])){
  395. throw new Exception('O Campo razao social é obrigatório');
  396. }
  397. if( (! $param['categoria_juridica_id'])){
  398. throw new Exception('O Campo categoria juridica é obrigatório');
  399. }
  400. if( (! $param['natureza_juridica_id'])){
  401. throw new Exception('O Campo natureza juridica é obrigatório');
  402. }
  403. if( (! $param['cnpj'])){
  404. throw new Exception('O Campo cnpj é obrigatório');
  405. }
  406. if (isset($param['id']) AND(!empty($param['id'])))
  407. {
  408. $key = $param['id'];
  409. $obj = Organizacao::find($key);
  410. $obj->tipo_organizacao_id = $param['tipo_organizacao_id'];
  411. $obj->store();
  412. $juridica = Juridica::find($obj->juridica_id);
  413. $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
  414. $juridica->nome = $param['nome_fantasia'];
  415. $juridica->razao_social = $param['razao_social'];
  416. //$juridica->modelo_fiscal_id = $param['modelo_fiscal_id'];
  417. $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
  418. $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
  419. $juridica->inscricao_municipal = $param['inscricao_municipal'];
  420. $juridica->inscricao_estadual = $param['inscricao_estadual'];
  421. $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
  422. $juridica->criacao = date('Y-m-d H:i:s');
  423. $juridica->atualizacao = date('Y-m-d H:i:s');
  424. $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
  425. $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
  426. $juridica->faturamento_anual = $param['faturamento_anual'];
  427. $juridica->margen_lucro = $param['margen_lucro'];
  428. $juridica->data_inicio = TDate::date2us($param['data_nascto']);
  429. $juridica->store();
  430. $pessoa = Pessoa::find($obj->pessoa_id);
  431. $pessoa->atualizacao = date('Y-m-d H:i:s');
  432. //adiciona contatos
  433. if( !empty($param['telefone']) AND is_array($param['telefone']) )
  434. {
  435. foreach( $param['telefone'] as $row => $telefone)
  436. {
  437. if ($telefone)
  438. {
  439. $item = new Contato;
  440. $item->pessoa_id = $pessoa->id;
  441. $item->ddi = trim($param['ddi'][$row]);
  442. $item->ddd = trim($param['dd'][$row]);
  443. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  444. $item->operadora_id = $param['operadora_id'][$row];
  445. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  446. $item->criacao = $data_actual;
  447. $item->atualizacao = $data_actual;
  448. $item->ativo = 1;
  449. $item->organizacao_id = $organizacao_id;
  450. $pessoa->addContato($item);
  451. }
  452. }
  453. }
  454. //adiciona endereco
  455. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
  456. {
  457. foreach( $param['id_endereco'] as $row => $id_endereco)
  458. {
  459. if ($id_endereco)
  460. {
  461. $pessoa_endereco = new PessoaEndereco;
  462. $pessoa_endereco->pessoa_id = $pessoa->id;
  463. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  464. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  465. $pessoa_endereco->numero = $param['numero'][$row];
  466. $pessoa_endereco->complemento = $param['compl'][$row];
  467. $pessoa_endereco->criacao = $data_actual;
  468. $pessoa_endereco->atualizacao = $data_actual;
  469. $pessoa_endereco->organizacao_id = $organizacao_id;
  470. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  471. $pessoa_endereco->ativo = 1;
  472. $pessoa->addPessoaEndereco($pessoa_endereco);
  473. }
  474. }
  475. }
  476. $pessoa->store();
  477. }
  478. else
  479. {
  480. //pesquisa se cnpj existe
  481. $juridica = Juridica::where('cnpj','=',str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj']))));
  482. if (!empty($juridica->id))
  483. {
  484. new TMessage('info', 'Juridica existe');
  485. print_r($param);
  486. }
  487. else
  488. {
  489. //new TMessage('info','juridica não existe');
  490. $pessoa = new Pessoa;
  491. $pessoa->criacao = date('Y-m-d H:i:s');
  492. $pessoa->atualizacao = date('Y-m-d H:i:s');
  493. //adiciona contatos
  494. if( !empty($param['telefone']) AND is_array($param['telefone']) )
  495. {
  496. foreach( $param['telefone'] as $row => $telefone)
  497. {
  498. if ($telefone)
  499. {
  500. $item = new Contato;
  501. $item->pessoa_id = $pessoa->id;
  502. $item->ddi = trim($param['ddi'][$row]);
  503. $item->ddd = trim($param['dd'][$row]);
  504. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  505. $item->operadora_id = $param['operadora_id'][$row];
  506. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  507. $item->criacao = $data_actual;
  508. $item->atualizacao = $data_actual;
  509. $item->ativo = 1;
  510. $item->organizacao_id = $organizacao_id;
  511. $pessoa->addContato($item);
  512. }
  513. }
  514. }
  515. //adiciona endereco
  516. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
  517. {
  518. foreach( $param['id_endereco'] as $row => $id_endereco)
  519. {
  520. if ($id_endereco)
  521. {
  522. $pessoa_endereco = new PessoaEndereco;
  523. $pessoa_endereco->pessoa_id = $pessoa->id;
  524. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  525. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  526. $pessoa_endereco->numero = $param['numero'][$row];
  527. $pessoa_endereco->complemento = $param['compl'][$row];
  528. $pessoa_endereco->criacao = $data_actual;
  529. $pessoa_endereco->atualizacao = $data_actual;
  530. $pessoa_endereco->organizacao_id = $organizacao_id;
  531. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  532. $pessoa_endereco->ativo = 1;
  533. $pessoa->addPessoaEndereco($pessoa_endereco);
  534. }
  535. }
  536. }
  537. $pessoa->store();
  538. if (!empty($param['url']))
  539. {
  540. $site = new Site;
  541. $site->nome = $param['url'];
  542. $site->url = $param['url'];
  543. $site->pessoa_id = $pessoa->id;
  544. $site->organizacao_id = $organizacao_id;
  545. $site->ativo = 1;
  546. $site->criacao = $data_actual;
  547. $site->atualizacao = $data_actual;
  548. $site->store();
  549. }
  550. if (!empty($param['email']))
  551. {
  552. $contatoweb = new ContatoWeb;
  553. $contatoweb->email = $param['email'];
  554. $contatoweb->pessoa_id = $pessoa->id;
  555. $contatoweb->organizacao_id = $organizacao_id;
  556. $contatoweb->criacao = $data_actual;
  557. $contatoweb->atualizacao = $data_actual;
  558. $contatoweb->ativo = 1;
  559. $contatoweb->store();
  560. }
  561. $juridica = new Juridica;
  562. $juridica->pessoa_id = $pessoa->id;
  563. $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
  564. $juridica->nome = $param['nome_fantasia'];
  565. $juridica->razao_social = $param['razao_social'];
  566. $juridica->modelo_fiscal_id = $param['modelo_fiscal_id'];
  567. $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
  568. $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
  569. $juridica->inscricao_municipal = $param['inscricao_municipal'];
  570. $juridica->inscricao_estadual = $param['inscricao_estadual'];
  571. $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
  572. $juridica->criacao = date('Y-m-d H:i:s');
  573. $juridica->atualizacao = date('Y-m-d H:i:s');
  574. $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
  575. $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
  576. $juridica->faturamento_anual = $param['faturamento_anual'];
  577. $juridica->margen_lucro = $param['margen_lucro'];
  578. $juridica->data_inicio = TDate::date2us($param['data_nascto']);
  579. $juridica->store();
  580. $organizacao = new Organizacao;
  581. $organizacao->pessoa_id = $pessoa->id;
  582. $organizacao->juridica_id = $juridica->id;
  583. $organizacao->organizacao_id = $organizacao_id;
  584. $organizacao->ativo = 1;
  585. $organizacao->tipo_organizacao_id = $param['tipo_organizacao_id'];
  586. //$organizacao->unidade_id = 1;
  587. $organizacao->store();
  588. new TMessage('info','Pessoa id :'.$organizacao->id);
  589. $data = new stdClass;
  590. $data->id = $organizacao->id;
  591. TForm::sendData('frm_empresa', $data);// keep form data
  592. }
  593. }
  594. TTransaction::close(); // close the transaction
  595. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  596. }
  597. catch (Exception $e)
  598. {
  599. new TMessage('error', $e->getMessage());
  600. TForm::sendData('frm_empresa', $param);// keep form data
  601. TTransaction::rollback();
  602. }
  603. }
  604. /*
  605. public static function onSave($param)
  606. {
  607. $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
  608. $user_id = TSession::getValue('userid'); // pega id da usuário
  609. $data_actual = date('Y-m-d H:i:s');
  610. $key = $param['id'];
  611. try
  612. {
  613. TTransaction::open('nome_base'); // open a transaction
  614. TTransaction::setLoggerFunction(function($param)
  615. {
  616. print $param.'<br/>';
  617. });
  618. if( (! $param['nome_fantasia'])){
  619. throw new Exception('O Campo nome fantasia é obrigatório');
  620. }
  621. if( (! $param['data_nascto'])){
  622. throw new Exception('O Campo data fundação é obrigatório');
  623. }
  624. if( (! $param['razao_social'])){
  625. throw new Exception('O Campo razao social é obrigatório');
  626. }
  627. if( (! $param['categoria_juridica_id'])){
  628. throw new Exception('O Campo categoria juridica é obrigatório');
  629. }
  630. if( (! $param['natureza_juridica_id'])){
  631. throw new Exception('O Campo natureza juridica é obrigatório');
  632. }
  633. if( (! $param['cnpj'])){
  634. throw new Exception('O Campo cnpj é obrigatório');
  635. }
  636. // verifica se é edição
  637. if(isset($key) and (!empty($key)))
  638. {
  639. $organizacao = Organizacao::find($key);
  640. if ($organizacao)
  641. {
  642. $organizacao->atualizacao = $data_actual;
  643. $organizacao->tipo_organizacao_id = $param['tipo_organizacao_id'];
  644. $organizacao->ativo = 1;
  645. $organizacao->store();
  646. //atualiza pessoa_juridica
  647. $juridica = Juridica::find($organizacao->juridica_id);
  648. $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
  649. $juridica->nome = $param['nome_fantasia'];
  650. $juridica->responsavel = $param['responsavel'];
  651. $juridica->razao_social = $param['razao_social'];
  652. $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
  653. $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
  654. $juridica->inscricao_municipal = $param['inscricao_municipal'];
  655. $juridica->inscricao_estadual = $param['inscricao_estadual'];
  656. $juridica->inscricao_estadual = $param['inscricao_estadual'];
  657. $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
  658. $juridica->atualizacao = $data_actual;
  659. $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
  660. $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
  661. $juridica->faturamento_anual = $param['faturamento_anual'];
  662. $juridica->margen_lucro = $param['margen_lucro'];
  663. $juridica->data_inicio = TDate::date2us($param['data_nascto']);
  664. $juridica->store();
  665. //atualiza pessoa
  666. $pessoa = Pessoa::find($organizacao->pessoa_id);
  667. //$pessoa->nome = $param['nome_fantasia'];
  668. //$pessoa->data_nascimento = TDate::date2us($param['data_nascto']);
  669. $pessoa->atualizacao = $data_actual;
  670. //adiciona contatos
  671. if( !empty($param['telefone']) AND is_array($param['telefone']) )
  672. {
  673. foreach( $param['telefone'] as $row => $telefone)
  674. {
  675. if ($telefone)
  676. {
  677. $item = new Contato;
  678. $item->pessoa_id = $pessoa->id;
  679. $item->ddi = trim($param['ddi'][$row]);
  680. $item->ddd = trim($param['dd'][$row]);
  681. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  682. $item->operadora_id = $param['operadora_id'][$row];
  683. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  684. $item->criacao = $data_actual;
  685. $item->atualizacao = $data_actual;
  686. $item->ativo = 1;
  687. $item->organizacao_id = $organizacao_id;
  688. $pessoa->addContato($item);
  689. }
  690. }
  691. }
  692. //adiciona endereco
  693. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
  694. {
  695. foreach( $param['id_endereco'] as $row => $id_endereco)
  696. {
  697. if ($id_endereco)
  698. {
  699. $pessoa_endereco = new PessoaEndereco;
  700. $pessoa_endereco->pessoa_id = $pessoa->id;
  701. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  702. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  703. $pessoa_endereco->numero = $param['numero'][$row];
  704. $pessoa_endereco->complemento = $param['compl'][$row];
  705. $pessoa_endereco->criacao = $data_actual;
  706. $pessoa_endereco->atualizacao = $data_actual;
  707. $pessoa_endereco->organizacao_id = $organizacao_id;
  708. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  709. $pessoa->addPessoaEndereco($pessoa_endereco);
  710. }
  711. }
  712. }
  713. $pessoa->store();
  714. if(!empty($param['url']))
  715. {
  716. //pesquisa site
  717. $site = Site::where('pessoa_id','=',$pessoa->id)
  718. ->where('organizacao_id','=',$organizacao_id)
  719. ->where('url','=',$param['url'])
  720. ->load();
  721. //atualiza site
  722. if($site)
  723. {
  724. foreach($site as $obj)
  725. {
  726. $obj->nome = $param['url'];
  727. $obj->url = $param['url'];
  728. $obj->atualizacao = $data_actual;
  729. $obj->ativo = 1;
  730. $obj->store();
  731. }
  732. }
  733. else //adicona site
  734. {
  735. $site = new Site;
  736. $site->nome = $param['url'];
  737. $site->url = $param['url'];
  738. $site->pessoa_id = $pessoa->id;
  739. $site->organizacao_id = $organizacao_id;
  740. $site->ativo = 1;
  741. $site->criacao = $data_actual;
  742. $site->atualizacao = $data_actual;
  743. $site->store();
  744. }
  745. }//fim rotina site
  746. //verifica $param['email'];
  747. if(!empty($param['email']))
  748. {
  749. $contatoweb = ContatoWeb::where('email','=',$param['email'])
  750. ->where('pessoa_id','=',$pessoa->id)
  751. ->where('organizacao_id','=',$organizacao_id)
  752. ->load();
  753. //atualiza contatoweb
  754. if($contatoweb)
  755. {
  756. foreach($contatoweb as $obj)
  757. {
  758. $obj->email = $param['url'];
  759. $obj->atualizacao = $data_actual;
  760. $obj->ativo = 1;
  761. $obj->store();
  762. }
  763. }
  764. else //adiciona contatoweb / email
  765. {
  766. $contatoweb = new ContatoWeb;
  767. $contatoweb->email = $param['email'];
  768. $contatoweb->pessoa_id = $pessoa->id;
  769. $contatoweb->organizacao_id = $organizacao_id;
  770. $contatoweb->criacao = $data_actual;
  771. $contatoweb->atualizacao = $data_actual;
  772. $contatoweb->ativo = 1;
  773. $contatoweb->store();
  774. }
  775. }//fim contatoweb
  776. }//fim organizacao / update
  777. $data = new stdClass;
  778. $data->id = $organizacao->id;
  779. TForm::sendData('frm_empresa', $data);// keep form data
  780. }
  781. //cadastra nova empresa
  782. else
  783. {
  784. //verifica se já existe o cnpj cadastrado
  785. $pesq_cnpj = Juridica::where('cnpj','=',str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj']))))->load();
  786. //$juridica = $pesq_cnpj[0];
  787. if (!empty($pesq_cnpj))
  788. {
  789. $empresa = Organizacao::where('juridica_id','=',$pesq_cnpj->id)->load();
  790. $pessoa_organizacao = PessoaOrganizaca::where('pessoa_id','=',$empresa->pessoa_id)
  791. ->where('organizacao_id','=',$organizacao_id)
  792. ->load();
  793. if($pessoa_organizacao){
  794. foreach($pessoa_organizacao as $pessoa_organizacao)
  795. {
  796. print $pessoa_organizacao->id;
  797. }
  798. }
  799. else
  800. {
  801. $pessoa = new Pessoa;
  802. $pessoa->criacao = $data_actual;
  803. $pessoa->atualizacao = $data_actual;
  804. $pessoa->ativo = 1;
  805. //adiciona contatos
  806. if( !empty($param['telefone']) AND is_array($param['telefone']) )
  807. {
  808. foreach( $param['telefone'] as $row => $telefone)
  809. {
  810. if ($telefone)
  811. {
  812. $item = new Contato;
  813. $item->pessoa_id = $pessoa->id;
  814. $item->ddi = trim($param['ddi'][$row]);
  815. $item->ddd = trim($param['dd'][$row]);
  816. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  817. $item->operadora_id = $param['operadora_id'][$row];
  818. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  819. $item->criacao = $data_actual;
  820. $item->atualizacao = $data_actual;
  821. $item->ativo = 1;
  822. $item->organizacao_id = $organizacao_id;
  823. $pessoa->addContato($item);
  824. }
  825. }
  826. }
  827. //adiciona endereco
  828. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
  829. {
  830. foreach( $param['id_endereco'] as $row => $id_endereco)
  831. {
  832. if ($id_endereco)
  833. {
  834. $pessoa_endereco = new PessoaEndereco;
  835. $pessoa_endereco->pessoa_id = $pessoa->id;
  836. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  837. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  838. $pessoa_endereco->numero = $param['numero'][$row];
  839. $pessoa_endereco->complemento = $param['compl'][$row];
  840. $pessoa_endereco->criacao = $data_actual;
  841. $pessoa_endereco->atualizacao = $data_actual;
  842. $pessoa_endereco->organizacao_id = $organizacao_id;
  843. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  844. $pessoa->addPessoaEndereco($pessoa_endereco);
  845. }
  846. }
  847. }
  848. $pessoa->store();
  849. $organizacao = new Organizacao;
  850. $organizacao->pessoa_id = $pessoa->id;
  851. $organizacao->store();
  852. //inserir pessoa_organizacao
  853. $pessoa_organizacao = new PessoaOrganizacao;
  854. $pessoa_organizacao->nome = $param['nome_fantasia'];
  855. $pessoa_organizacao->data_nascimento = TDate::date2us($param['data_nascto']);
  856. $pessoa_organizacao->tipo_pessoa_id = 2;
  857. $pessoa_organizacao->organizacao_id = $organizacao->id;
  858. $pessoa_organizacao->criacao = $data_actual;
  859. $pessoa_organizacao->atualizacao = $data_actual;
  860. $pessoa_organizacao->ativo = 1;
  861. $pessoa_organizacao->store();
  862. $unidade = new SystemUnit;
  863. $unidade->name = $param['razao_social'];
  864. $unidade->organizacao_id = $organizacao->id;
  865. $unidade->store();
  866. //inserir juridica
  867. $juridica = new Juridica;
  868. $juridica->pessoa_id = $pessoa->id;
  869. $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
  870. $juridica->organizacao_id = $organizacao->id;
  871. $juridica->responsavel = $param['responsavel'];
  872. $juridica->razao_social = $param['razao_social'];
  873. $juridica->modelo_fiscal_id = $param['modelo_fiscal_id'];
  874. $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
  875. $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
  876. $juridica->inscricao_municipal = $param['inscricao_municipal'];
  877. $juridica->store();
  878. $data = new stdClass;
  879. $data->id = $organizacao->id;
  880. TForm::sendData('frm_empresa', $data);// keep form data
  881. }
  882. }
  883. }
  884. //$this->form->setData($data);
  885. TTransaction::close(); // close the transaction
  886. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  887. }
  888. catch (Exception $e) // in case of exception
  889. {
  890. new TMessage('error', $e->getMessage());
  891. TForm::sendData('frm_empresa', $param);// keep form data
  892. TTransaction::rollback();
  893. }
  894. }
  895. */
  896. public function onEdit($param)
  897. {
  898. try
  899. {
  900. if (isset($param['key']))
  901. {
  902. // open a transaction with database 'samples'
  903. TTransaction::open('nome_base');
  904. $key = $param['key'];
  905. $organizacao = Organizacao::find($key);
  906. if($organizacao)
  907. {
  908. if (strlen($organizacao->juridica->cnpj) == 14):
  909. $cnpj = substr($organizacao->juridica->cnpj, 0, 2) . '.' . substr($organizacao->juridica->cnpj, 2, 3) . '.' . substr($organizacao->juridica->cnpj, 5, 3) . '/' . substr($organizacao->juridica->cnpj, 8, 4) . '-' . substr($organizacao->juridica->cnpj, 12, 2); endif;
  910. //$inscricao_estadual = substr($organizacao->juridica->inscricao_estadual, 0, 3) . '.' . substr($organizacao->juridica->inscricao_estadual, 3, 3) . '.' . substr($organizacao->juridica->inscricao_estadual, 6, 3) . '.' . substr($organizacao->juridica->inscricao_estadual, 9, 3);//. '-' . substr($cliente->juridica->inscricao_estadual, 12, 2);
  911. //$inscricao_municipal = substr($organizacao->juridica->inscricao_municipal, 0, 1) . '.' . substr($organizacao->juridica->inscricao_municipal, 3, 3) . '.' . substr($organizacao->juridica->inscricao_municipal, 6, 3) . '.' . substr($organizacao->juridica->inscricao_municipal, 7, 1);// . '-' . substr($cliente->juridica->inscricao_municipal, 12, 2);
  912. //$inscricao_junta_comercial = substr($organizacao->juridica->inscricao_junta_comercial, 0, 2) . '.' . substr($organizacao->juridica->inscricao_junta_comercial, 2, 3) . '.' . substr($organizacao->juridica->inscricao_junta_comercial, 6, 3) . '.' . substr($organizacao->juridica->inscricao_junta_comercial, 9, 3); //. '-' . substr($cliente->juridica->inscricao_junta_comercial, 12, 2);
  913. $organizacao->nome_fantasia = $organizacao->juridica->nome;
  914. $organizacao->data_nascto = TDate::date2br($organizacao->juridica->data_inicio);
  915. $organizacao->tipo_organizacao_id = $organizacao->tipo_organizacao_id;
  916. $organizacao->razao_social = $organizacao->juridica->razao_social;
  917. $organizacao->cod_desc_ativ_principal = $organizacao->juridica->atividade_primaria;
  918. $organizacao->cod_desc_ativ_secundaria = $organizacao->juridica->atividade_secundaria;
  919. if (!empty($organizacao->juridica->categoria_juridica_id))
  920. {
  921. $organizacao->categoria_juridica_id->setValue($organizacao->juridica->categoria_juridica_id);
  922. }
  923. if (!empty($organizacao->juridica->categoria_juridica_id))
  924. {
  925. $organizacao->natureza_juridica_id->setValue($organizacao->juridica->natureza_juridica_id);
  926. }
  927. //$organizacao->categoria_juridica_id = $organizacao->juridica->categoria_juridica_id;
  928. //$organizacao->natureza_juridica_id = $organizacao->juridica->natureza_juridica_id;
  929. $organizacao->modelo_fiscal_id = $organizacao->juridica->modelo_fiscal_id;
  930. $organizacao->cnpj = $cnpj;
  931. $organizacao->inscricao_estadual = $organizacao->juridica->inscricao_estadual;
  932. $organizacao->inscricao_junta_comercial = $organizacao->juridica->inscricao_junta_comercial;
  933. $organizacao->inscricao_municipal = $organizacao->juridica->inscricao_municipal;
  934. $organizacao->responsavel = $organizacao->juridica->responsavel;
  935. $organizacao->faturamento_anual = 'R$ ' .$organizacao->juridica->faturamento_anual;
  936. $organizacao->margen_lucro = $organizacao->juridica->margen_lucro.' % ';
  937. $organizacao->email = $organizacao->contatoweb_email;
  938. $organizacao->url = $organizacao->site_url;
  939. $this->fireEvents($organizacao);
  940. /*
  941. foreach ($organizacao->get_pessoa()->getSites() as $site)
  942. {
  943. $organizacao->url = $site->url;
  944. }
  945. */
  946. //adiciona tabela contato ao formulário
  947. //$this->table_contato->addSection('tbody');
  948. $contatos = $organizacao->get_pessoa()->getContato();
  949. if (!empty($contatos))
  950. {
  951. foreach ($contatos as $contato)
  952. {
  953. $contato->telefone = substr($contato->telefone, 0, 4) . '-' . substr($contato->telefone, 4, 8);
  954. $this->addContatoRow($contato);
  955. }
  956. //criar e adicionar botão
  957. $add = new TButton('addContact');
  958. $add->setLabel('Adicionar');
  959. $add->setImage('fa:plus-circle blue');
  960. $add->addFunction('ttable_clone_previous_row(this)');
  961. //adiciona botão a tabela
  962. $row = $this->table_contato->addSection('tfoot');
  963. $row = $this->table_contato->addRowSet([$add]);
  964. }
  965. else
  966. {
  967. $this->onClear($param);
  968. }
  969. //adiciona tabela endereco ao formulário
  970. //$this->table_endereco->addSection('tbody');
  971. $endereco = $organizacao->get_pessoa()->getPessoaEndereco();
  972. if (!empty($endereco))
  973. {
  974. foreach ($endereco as $enderecos)
  975. {
  976. $this->addEnderecoRow($enderecos);
  977. }
  978. //criar e adicionar botão
  979. $add_endereco = new TButton('addEnder');
  980. $add_endereco->setLabel('Adiconar');
  981. $add_endereco->setImage('fa:plus-circle blue');
  982. $add_endereco->addFunction('ttable_clone_previous_row(this)');
  983. //adiciona botão a tabela
  984. $row_end = $this->table_endereco->addSection('tfoot');
  985. $row_end = $this->table_endereco->addRowSet([$add_endereco]);
  986. }
  987. else
  988. {
  989. $this->onClear($param);
  990. }
  991. }
  992. $this->form->setData($organizacao);
  993. // close the transaction
  994. TTransaction::close();
  995. }
  996. }catch (Exception $e) // in case of exception
  997. {
  998. new TMessage('error', $e->getMessage());
  999. TForm::sendData('frm_empresa', $param);// keep form data
  1000. TTransaction::rollback();
  1001. }
  1002. }
  1003. /*
  1004. * method addContatoRow($contato)
  1005. * adicona vetor de contatos no formulário
  1006. */
  1007. public function addContatoRow($contato){
  1008. $uniqid = mt_rand(1000000, 9999999);
  1009. $ddi = new TEntry('ddi[]');
  1010. $ddi->setValue('55');
  1011. $ddi->addValidation('ddi', new TNumericValidator,new TMaxValueValidator,array(2));
  1012. if (!empty($contato->ddi))
  1013. {
  1014. $ddi->setValue($contato->ddi);
  1015. }
  1016. $dd = new TEntry('dd[]');
  1017. $dd->setValue('011');
  1018. $dd->addValidation('ddd',new TNumericValidator, new TMaxValueValidator,array(3));
  1019. if (!empty($contato->dd))
  1020. {
  1021. $dd->setValue($contato->dd);
  1022. }
  1023. $tipo_telefone_id = new TDBCombo('tipo_telefone_id[]','nome_base','TipoTelefone','id','descricao');
  1024. $tipo_telefone_id->setDefaultOption(false);
  1025. if (!empty($contato->tipo_telefone_id))
  1026. {
  1027. $tipo_telefone_id->setValue($contato->tipo_telefone_id);
  1028. }
  1029. $telefone = new TEntry('telefone[]');
  1030. $telefone->addValidation('telefone', new TNumericValidator);
  1031. $telefone->setMask('9999-9999');
  1032. if (!empty($contato->telefone))
  1033. {
  1034. $telefone->setMask('9999-9999');
  1035. $telefone->setValue($contato->telefone);
  1036. $telefone->addValidation('telefone', new TNumericValidator);
  1037. }
  1038. $operadora_id = new TDBCombo('operadora_id[]','nome_base','Operadora','id','nome');
  1039. $operadora_id->setDefaultOption(false);
  1040. if (!empty($contato->operadora_id))
  1041. {
  1042. $operadora_id->setValue($contato->operadora_id);
  1043. }
  1044. //set ids
  1045. $ddi->setId('ddi_'.$uniqid);
  1046. $dd->setId('dd_'.$uniqid);
  1047. $telefone->setId('telefone_'.$uniqid);
  1048. $tipo_telefone_id->setId('tipo_telefone_id_'.$uniqid);
  1049. $operadora_id->setId('operadora_id_'.$uniqid);
  1050. // create delete button
  1051. $del = new TImage('fa:trash-o blue');
  1052. $del->onclick = 'ttable_remove_row(this)';
  1053. $row = $this->table_contato->addRowSet([$ddi,$dd,$tipo_telefone_id,$telefone,$operadora_id,$del]);
  1054. $this->detail_row ++;
  1055. $ddi->setSize('40');
  1056. $dd->setSize('40');
  1057. $tipo_telefone_id->setSize('100');
  1058. $telefone->setSize('100');
  1059. $operadora_id ->setSize('100');
  1060. }
  1061. /*
  1062. * method addEnderecoRow($endereco)
  1063. * adicona vetor de endereco no formulário
  1064. */
  1065. public function addEnderecoRow($endereco)
  1066. {
  1067. $uniqid = mt_rand(1000000, 9999999);
  1068. /*
  1069. $btn_cep = new TButton('btn_cep');
  1070. $btn_cep->setSize(42);
  1071. $btn_cep->setAction(new TAction(array($this,'onCep')),'');
  1072. $btn_cep->setImage('fa:search blue');
  1073. $this->form->addField($btn_cep);
  1074. */
  1075. $this->cep = new TEntry('cep[]');
  1076. $this->cep->setMask('00000-000');
  1077. $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  1078. $this->form->addField($this->cep);
  1079. $input_cep = new TAction(array($this,'onCep'));
  1080. $this->cep->setExitAction($input_cep);
  1081. if (!empty($endereco->endereco->cep))
  1082. {
  1083. $this->cep->setValue($endereco->endereco->cep);
  1084. }
  1085. $id_endereco = new TEntry('id_endereco[]');
  1086. $id_endereco->setEditable(false);
  1087. $id_endereco->style = 'display:none;';
  1088. if (!empty($endereco->endereco->id))
  1089. {
  1090. $id_endereco->setValue($endereco->endereco->id);
  1091. }
  1092. $logradouro = new TEntry('logradouro[]');
  1093. if (!empty($endereco->endereco->logradouro))
  1094. {
  1095. $logradouro->setValue($endereco->endereco->logradouro);
  1096. }
  1097. $bairro = new TEntry('bairro[]');
  1098. if (!empty($endereco->endereco->bairro))
  1099. {
  1100. $bairro->setValue($endereco->endereco->bairro);
  1101. }
  1102. $cidade = new TEntry('cidade[]');
  1103. if (!empty($endereco->endereco->cidade))
  1104. {
  1105. $cidade->setValue($endereco->endereco->cidade);
  1106. }
  1107. $uf = new TEntry('uf[]');
  1108. if (!empty($endereco->endereco->uf))
  1109. {
  1110. $uf->setValue($endereco->endereco->uf);
  1111. }
  1112. $numero = new TEntry('numero[]');
  1113. if (!empty($endereco->numero))
  1114. {
  1115. $numero->setValue($endereco->numero);
  1116. }
  1117. $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','nome_base','TipoEndereco','id','descricao');
  1118. $tipo_endereco_id->setDefaultOption(false);
  1119. if (!empty($endereco->tipo_endereco_id))
  1120. {
  1121. $tipo_endereco_id->setValue($endereco->tipo_endereco_id);
  1122. }
  1123. $complemento = new TEntry('compl[]');
  1124. if (!empty($endereco->complemento))
  1125. {
  1126. $complemento->setValue($endereco->complemento);
  1127. }
  1128. $regiao_id = new TDBCombo('regiao_id[]','nome_base','Regiao','id','descricao');
  1129. $regiao_id->setDefaultOption(false);
  1130. if (!empty($endereco->regiao_id))
  1131. {
  1132. $regiao_id->setValue($endereco->regiao_id);
  1133. }
  1134. // set row counter
  1135. $this->cep->{'data-row_1'} = $this->detail_row_1;
  1136. $id_endereco->{'data-row_1'} = $this->detail_row_1;
  1137. $logradouro->{'data-row_1'} = $this->detail_row_1;
  1138. $numero->{'data-row_1'} = $this->detail_row_1;
  1139. $bairro->{'data-row_1'} = $this->detail_row_1;
  1140. $cidade->{'data-row_1'} = $this->detail_row_1;
  1141. $uf->{'data-row_1'} = $this->detail_row_1;
  1142. $tipo_endereco_id->{'data-row_1'} = $this->detail_row_1;
  1143. $complemento->{'data-row_1'} = $this->detail_row_1;
  1144. $regiao_id->{'data-row_1'} = $this->detail_row_1;
  1145. //set ids
  1146. //$btn_cep ->setId('btn_cep)'.$uniqid);
  1147. //$id_end ->setId('id_endereco_'.$uniqid);
  1148. $this->cep ->setId('cep_'.$uniqid);
  1149. $id_endereco ->setId('id_endereco_'.$uniqid);
  1150. $logradouro ->setId('logradouro_'.$uniqid);
  1151. $bairro ->setId('bairro_'.$uniqid);
  1152. $cidade ->setId('cidade_'.$uniqid);
  1153. $uf ->setId('uf_'.$uniqid);
  1154. $numero ->setId('numero_'.$uniqid);
  1155. $tipo_endereco_id->setId('tipo_endereco_id_'.$uniqid);
  1156. $complemento ->setId('compl_'.$uniqid);
  1157. $regiao_id ->setId('regiao_id'.$uniqid);
  1158. // create delete button
  1159. $del_endereco = new TImage('fa:trash-o blue');
  1160. $del_endereco->onclick = 'ttable_remove_row(this)';
  1161. $row_end = $this->table_endereco->addRowSet([$id_endereco,$this->cep,$logradouro,$numero,$bairro,$cidade,$uf,$tipo_endereco_id,$complemento,$regiao_id,$del_endereco]);
  1162. $row_end->{'data-row'} = $this->detail_row_1;
  1163. $id_endereco->setSize('30');
  1164. $this->cep->setSize('70');
  1165. $logradouro->setSize('160');
  1166. $bairro->setSize('140');
  1167. $cidade->setSize('100');
  1168. $uf->setSize('30');
  1169. $numero->setSize('65');
  1170. $complemento->setSize('100');
  1171. $regiao_id->setSize('90');
  1172. $tipo_endereco_id->setSize('100');
  1173. $this->detail_row_1 ++;
  1174. }
  1175. public static function pesqCnpj($cnpj)
  1176. {
  1177. $juridica = Juridica::where('cnpj','=',str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj']))));
  1178. new TMessage('info', 'Em desenvolvimento');
  1179. }
  1180. /**
  1181. * Action to be executed when the user changes the gender or status
  1182. * @param $param Action parameters
  1183. */
  1184. static function onChangeAction($param)
  1185. {
  1186. try
  1187. {
  1188. if ($param['categoria_juridica_id'])//se existe parâmetro da primeira combo(nome da primeira combo)
  1189. {
  1190. $criteria = TCriteria::create( ['categoria_juridica_id' => $param['categoria_juridica_id'] ] );
  1191. //$criteria = new TCriteria;
  1192. //$criteria->add(new TFilter('categoria_juridica_id', '=', $param['categoria_juridica_id']));
  1193. //categoria_juridica_id = parametro chave estrangeira da tabela master
  1194. // formname,field(nome do campo),database , nome da model,key,value,ordercolumn = NULL,criteria, startEmpty = FALSE
  1195. TDBCombo::reloadFromModel('frm_empresa','natureza_juridica_id','nome_base','NaturezaJuridica','id','{codigo_descricao}', 'codigo_descricao',$criteria,TRUE);
  1196. }
  1197. else
  1198. {
  1199. TCombo::clearField('frm_empresa', 'natureza_juridica_id'); //reload do formulario frm_empresa na segunda combo "natureza_juridica_id"
  1200. }
  1201. }
  1202. catch (Exception $e)
  1203. {
  1204. new TMessage('error', $e->getMessage());
  1205. }
  1206. }
  1207. public function fireEvents( $object )
  1208. {
  1209. $obj = new stdClass;
  1210. if(get_class($object) == 'stdClass')
  1211. {
  1212. if(isset($object->categoria_juridica_id))
  1213. {
  1214. $obj->categoria_juridica_id = $object->categoria_juridica_id;
  1215. }
  1216. if(isset($object->natureza_juridica_id))
  1217. {
  1218. $obj->natureza_juridica_id = $object->natureza_juridica_id;
  1219. }
  1220. }
  1221. else
  1222. {
  1223. if(isset($object->categoria_juridica_id))
  1224. {
  1225. $obj->categoria_juridica_id = $object->categoria_juridica_id;
  1226. }
  1227. if(isset($object->natureza_juridica_id))
  1228. {
  1229. $obj->natureza_juridica_id = $object->natureza_juridica_id;
  1230. }
  1231. }
  1232. TForm::sendData('frm_empresa', $obj);
  1233. }
  1234. }
  1235. ?>

 
  1. <?php
  2. /**
  3. * endereco Active Record
  4. * @author <your-name-here>
  5. */
  6. class Endereco extends TRecord
  7. {
  8. const TABLENAME = 'endereco';
  9. const PRIMARYKEY= 'id';
  10. const IDPOLICY = 'serial'; // {max, serial}
  11. use SystemChangeLogTrait;
  12. /**
  13. * Constructor method
  14. */
  15. public function __construct($id = NULL, $callObjectLoad = TRUE)
  16. {
  17. parent::__construct($id, $callObjectLoad);
  18. parent::addAttribute('cep');
  19. parent::addAttribute('logradouro');
  20. parent::addAttribute('bairro');
  21. parent::addAttribute('cidade');
  22. parent::addAttribute('uf');
  23. parent::addAttribute('codigo_ibge');
  24. parent::addAttribute('gia');
  25. parent::addAttribute('pais');
  26. parent::addAttribute('criacao');
  27. parent::addAttribute('atualizacao');
  28. }
  29. /**
  30. * Method getpessoa_enderecos
  31. */
  32. public function get_pessoa_endereco()
  33. {
  34. $criteria = new TCriteria;
  35. $criteria->add(new TFilter('endereco_id', '=', $this->id));
  36. return PessoaEndereco::getObjects( $criteria );
  37. }
  38. public static function BuscaCepWeb($Cep)
  39. {
  40. $Cep = preg_replace("/D/","", $Cep);
  41. if ($Cep != "")
  42. {
  43. $resultado = simplexml_load_string( @file_get_contents("http://viacep.com.br/ws/".$Cep."/xml/"));
  44. $erro = (string) $resultado->erro;
  45. if (!$erro)
  46. {
  47. $id_cep = Endereco::BuscaEnderecoId($Cep);
  48. if(!empty($id_cep))
  49. {
  50. $objects['id'] = $id_cep; // retorno vindo do banco
  51. $objects['cep'] = (string) $resultado->cep;
  52. $objects['logradouro'] = (string) $resultado->logradouro;
  53. $objects['complemento'] = (string) $resultado->complemento;
  54. $objects['bairro'] = (string) $resultado->bairro;
  55. $objects['localidade'] = (string) $resultado->localidade;
  56. $objects['uf'] = (string) $resultado->uf;
  57. $objects['unidade'] = (string) $resultado->unidade;
  58. $objects['ibge'] = (string) $resultado->ibge;
  59. $objects['gia'] = (string) $resultado->gia;
  60. return $objects;
  61. }
  62. else
  63. {
  64. $obj = Endereco::addEndereco($resultado);
  65. if(!empty($obj))
  66. {
  67. return $obj;
  68. }
  69. }
  70. } else return FALSE;
  71. } else return FALSE;
  72. }
  73. /*
  74. *Método responsável por retornar o endereco completo
  75. *cadastrado na base de dados
  76. *@param cep
  77. */
  78. public static function BuscaCepBanco($cep)
  79. {
  80. if(!empty($cep))
  81. {
  82. try
  83. {
  84. TTransaction::open('nome_base');
  85. //cria um repositório para carregar 'Endereco'
  86. $repository = new TRepository('Endereco');
  87. $limit = 1;
  88. $criteria = new TCriteria;
  89. $criteria->add( new TFilter( 'cep', '=', trim(str_replace("-","",$cep) )));
  90. $criteria->setProperty('limit',$limit);
  91. //$objects = $repository->load($criteria);
  92. $objects = Endereco::getObjects($criteria);
  93. if(!empty($objects))
  94. {
  95. foreach ($objects as $endereco)
  96. {
  97. $enderecos['id'] = (int) $endereco->id;
  98. $enderecos['cep'] = (string) $endereco->cep;
  99. $enderecos['logradouro'] = (string) $endereco->logradouro;
  100. $enderecos['bairro'] = (string) $endereco->bairro;
  101. $enderecos['cidade'] = (string) $endereco->cidade;
  102. //$enderecos['ibge'] = (string) $endereco->codigo_ibge;
  103. //$enderecos['gia'] = (string) $endereco->gia;
  104. $enderecos['uf'] = (string) $endereco->uf;
  105. return $enderecos;
  106. }
  107. }
  108. TTransaction::close();
  109. }
  110. catch (Exception $e)
  111. {
  112. new TMessage('error', $e->getMessage());
  113. }
  114. }else return FALSE;
  115. }
  116. /*
  117. *Método responsável por retornar o id endereco
  118. *cadastrado na base de dados
  119. *@param cep
  120. */
  121. public static function BuscaEnderecoId($cep)
  122. {
  123. try
  124. {
  125. TTransaction::open('nome_base');
  126. //cria um repositório para carregar 'Endereco'
  127. $endereco = new TRepository('Endereco');
  128. $limit = 1;
  129. //cria um critério para seleção de dados
  130. $criteria = new TCriteria;
  131. $criteria->add(new TFilter('cep', '=',str_replace("-","", $cep)));
  132. $criteria->setProperty('limit',$limit);
  133. $objects = $endereco->load($criteria);
  134. if($objects)
  135. {
  136. foreach($objects as $object)
  137. {
  138. $id_cep = $object->id ;
  139. }
  140. return $id_cep ;
  141. }
  142. TTransaction::close(); // fecha a transação.
  143. }
  144. catch (Exception $e)
  145. {
  146. new TMessage('error', $e->getMessage());
  147. }
  148. }
  149. /*
  150. *Método responsável por adicionar endereco completo
  151. *Na base de dados
  152. *@param cep
  153. */
  154. public static function addEndereco($endereco)
  155. {
  156. try
  157. {
  158. $data_atual = date('Y-m-d H:i:s');
  159. TTransaction::open('nome_base');
  160. $add_endereco = new Endereco;
  161. $add_endereco->cep = (string)str_replace('-','',$endereco->cep);
  162. $add_endereco->logradouro = (string)$endereco->logradouro;
  163. $add_endereco->bairro = (string)$endereco->bairro;
  164. $add_endereco->cidade = (string)$endereco->localidade;
  165. $add_endereco->uf = (string)$endereco->uf;
  166. $add_endereco->codigo_ibge = (string)$endereco->ibge;
  167. $add_endereco->gia = (string)$endereco->gia;
  168. $add_endereco->criacao = $data_atual;
  169. $add_endereco->atualizacao = $data_atual;
  170. $add_endereco->store();
  171. //print_r($add_endereco).'<br>';
  172. TTransaction::close();
  173. }
  174. catch (Exception $e) {
  175. new TMessage('error', $e->getMessage());
  176. }
  177. return;
  178. }
  179. public function BuscaCepRepublicaVirtual($cep)
  180. {
  181. $resultado = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($cep).'&formato=query_string');
  182. if(!$resultado)
  183. {
  184. $resultado = "&resultado=0&resultado_txt=erro+ao+buscar+cep";
  185. }
  186. parse_str($resultado, $retorno);
  187. return $retorno;
  188. }
  189. }