Comportamento do framework em alguns detalhes... Pessoal...boa noite... Pesquisa muito no forum, e tenho me virado bem com os meus objetivos de converter um ERP gigantesco de VB/MSACCESS/SQLSERVER para Adianti/Framework/postgres, um form master e 14 subforms de detalhes, estou usando o TFieldlist adaptado nos detalhes, até então não tenho postado pedido de ajuda, mas chega um momento que fica difícil seguir sozinho, por tanto segue os pe...
AT
Comportamento do framework em alguns detalhes...  
Pessoal...boa noite...

Pesquisa muito no forum, e tenho me virado bem com os meus objetivos de converter um ERP gigantesco de VB/MSACCESS/SQLSERVER para Adianti/Framework/postgres, um form master e 14 subforms de detalhes, estou usando o TFieldlist adaptado nos detalhes, até então não tenho postado pedido de ajuda, mas chega um momento que fica difícil seguir sozinho, por tanto segue os pepinos, se puderem me ajudar fico muito grato...

1 - Porque o master_id (find_id) é colocado na TSession no load do Master, e so aparece nos sub-forms na segunda tentativa, ou seja somente quanto pesquiso o id pela segunda vez que o subform mostra os dados? (EntidadeForm linha 255)

2 - Porque somente o frame $pessoal declarado e detalhado junto as demais abas do notebook, não é reconhecido no tabClick? (EntidadeForm linha 322 )

3 - Porque o onLoad dos detalhes após onSave e onDelete aparecem em tela cheia, fora de sua aba no notebook, talves pelo uso do TAdiantiCoreTranslator, se for o caso qual solução para este problema? EnderecoForm linhas 267 e 300)?

4 - Porque o Método setChangeAction() não encontrado no EnderecoForm linha 80?

5 - Porque o TForm::sendData apaga tudo, quando acionado para manter o registro selecionado e apagar os campos de pesquisa (EntidadeForm linha 277)?

Sendo só para o momento rsrsrs segue anexo o form master principal e o detalhe EnderecoFoirm, desde ja agradeço!!!

Augusto

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


AT

 
  1. <?php
  2. /**
  3. * EntidadeForm
  4. *
  5. * @version 1.0
  6. * @package setcia
  7. * @author Antonio Augusto Tavares
  8. * @copyright Copyright (c) 2018 Setsoft - Consultoria e Informática Ltda
  9. */
  10. class EntidadeForm extends TPage
  11. {
  12. private $form;
  13. private $entidade;
  14. private $notebook;
  15. static $foto;
  16. public $imagem;
  17. public $table;
  18. private $divFoto;
  19. public $imgFoto;
  20. //use PessoaisForm;
  21. function __construct()
  22. {
  23. parent::__construct();
  24. parent::include_js('app/lib/include/application.js');
  25. // cria o form
  26. $this->form = new BootstrapFormBuilder('form_entidade');
  27. $this->form->style = 'width: 100%';
  28. $this->form->setFieldSizes('100%');
  29. // declara campos e suas caracteristicas
  30. $id_find = new TEntry('id_find');
  31. $id_find->setExitAction(new TAction(array($this, 'onEditeEntidade')));
  32. $nome_find = new TDBUniqueSearch('nome_find', 'setcis', 'entidade', 'id', 'nome', 'nome asc');
  33. $nome_find->setMinLength(1);
  34. $nome_find->setSize('100%');
  35. $nome_find->setMask('{nome}');
  36. $programatico_find = new TDBUniqueSearch('programatico_find', 'setcis', 'entidade', 'id', 'programatico');
  37. $programatico_find->setMinLength(1);
  38. $programatico_find->setSize('100%');
  39. $programatico_find->setMask('{programatico} ');
  40. $fornecedores = 5;
  41. $Associados = 4;
  42. $criteria = new TCriteria();
  43. $criteria->add(new TFilter('system_group_id','=',$Associados));
  44. $id = new TEntry('id');
  45. $nome = new TEntry('nome');
  46. $pessoas_id = new TDBCombo('pessoas_id', 'setcis', 'pessoas', 'id', 'descricao');
  47. $entidades_id = new TDBCombo('entidades_id', 'setcis', 'entidades', 'id', 'descricao', 'descricao asc',$criteria);
  48. $programatico = new TEntry('programatico');
  49. // validações
  50. $nome->addValidation('Nome', new TRequiredValidator);
  51. $pessoas_id->addValidation('Pessoa', new TRequiredValidator);
  52. $entidades_id->addValidation('Categoria', new TRequiredValidator);
  53. $programatico->addValidation('Código/Alternatibo', new TRequiredValidator);
  54. $id->setEditable(FALSE);
  55. // posiciona elementos no form
  56. $row = $this->form->addFields([ $id_find ],
  57. [ $nome_find ],
  58. [ $programatico_find ],
  59. [ TButton::create('clear', array($this, 'onClear'), 'Novo', 'fa:eraser green')]);
  60. $row->layout = ['col-sm-1', 'col-sm-8', 'col-sm-2', 'col-sm-1'];
  61. $row = $this->form->addFields([ new TLabel('Codigo') ],
  62. [ new TLabel('Nome') ],
  63. [ new TLabel('Pessoa') ],
  64. [ new TLabel('Categoria') ],
  65. [ new TLabel('Código/Alternativo') ],
  66. [TButton::create('delete', array($this, 'onDelete'), 'Excluir', 'fa:eraser red')]);
  67. $row->layout = ['col-sm-1', 'col-sm-4', 'col-sm-2', 'col-sm-2', 'col-sm-2', 'col-sm-1' ];
  68. $row = $this->form->addFields([ $id ],
  69. [ $nome ],
  70. [ $pessoas_id ],
  71. [ $entidades_id ],
  72. [ $programatico ],
  73. [ TButton::create('save', array($this, 'onSave'), 'Salvar', 'fa:save blue')]);
  74. $row->layout = ['col-sm-1', 'col-sm-4', 'col-sm-2', 'col-sm-2', 'col-sm-2', 'col-sm-1' ];
  75. // defina ações de pesquisa
  76. $nome_change = new TAction(array($this, 'onEditeEntidade'));
  77. $nome_find->setChangeAction($nome_change);
  78. $programatico_change = new TAction(array($this, 'onEditeEntidade'));
  79. $programatico_find->setChangeAction($programatico_change);
  80. $entidades_id_change = new TAction(array($this, 'onSetMask'));
  81. $entidades_id->setChangeAction($entidades_id_change);
  82. // prepara notebook de detalhes
  83. $foto = new THBox();
  84. $pessoal = new TFrame;
  85. $pessoal->class = 'tframe tframe-custom';
  86. $pessoal->style = 'background:whiteSmoke';
  87. $endereco = new TFrame;
  88. $endereco->class = 'tframe tframe-custom';
  89. $endereco->style = 'background:whiteSmoke';
  90. $inscricao = new TFrame;
  91. $inscricao->class = 'tframe tframe-custom';
  92. $inscricao->style = 'background:whiteSmoke';
  93. $eletronico = new THBox();
  94. $contrato = new THBox();
  95. $carteira = new THBox();
  96. $vinculado = new THBox();
  97. $conta = new THBox();
  98. $boleto = new THBox();
  99. $mandato = new THBox();
  100. $atendimento = new THBox();
  101. $ocorrencias = new THBox();
  102. //TScript::create(' $( "#campo" ).focus(); ');
  103. //TScript::create("$('li[role=presentation]').eq(1).hide();");
  104. //TScript::create("$('li[role=Pessoais]').eq(1).hide();");
  105. //$this->form->setCurrentPage(0); // lembrando que os índices iniciam-se por 0.
  106. //$this->notebook->setCurrentPage(3);
  107. //$this->notebook->setTabsVisibility(False);
  108. // cria notebook detalhes
  109. $notebook = new BootstrapNotebookWrapper( new TNotebook() );
  110. $notebook->setTabAction( new TAction(array($this, 'onTabClick')));
  111. $notebook->appendPage('Imagem', $foto);
  112. $notebook->appendPage('Pessoais', $pessoal);
  113. $notebook->appendPage('Endereços', $endereco);
  114. $notebook->appendPage('Inscrições', $inscricao);
  115. $notebook->appendPage('Eletrônicos', $eletronico);
  116. $notebook->appendPage('Contratos', $contrato);
  117. $notebook->appendPage('Carteira', $carteira);
  118. $notebook->appendPage('Vínculos', $vinculado);
  119. $notebook->appendPage('Contas', $conta);
  120. $notebook->appendPage('Boleto', $boleto);
  121. $notebook->appendPage('Mandatos', $mandato);
  122. $notebook->appendPage('Atendimento', $atendimento);
  123. $notebook->appendPage('Ocorrências', $ocorrencias);
  124. $notebook->style = 'background:white';
  125. // pagina imagem
  126. //$imagem = new TImage('app/fotos/0000000.jpg');
  127. //$foto->put($imagem, 1,1);
  128. //$imagem->setSize(450);
  129. //$foto->add($imagem);
  130. /*
  131. $divFoto = new TElement('div');
  132. $divFoto->id = 'divFoto';
  133. $divFoto->style = "width:100px;height:100px";
  134. $imgFoto = new TElement('img');
  135. $imgFoto->style = "width:100px;height:100px";
  136. $imgFoto->src = "app/fotos/0000000.jpg";
  137. $divFoto->add($imgFoto);
  138. $foto->add($divFoto);
  139. */
  140. // prepara sub-forms/detalhes
  141. $form_pessoais = new PessoaisForm;
  142. $pessoal->add($form_pessoais);
  143. $form_Endereco = new EnderecoForm;
  144. $endereco->add($form_Endereco);
  145. $form_Inscricao = new InscricaoForm;
  146. $inscricao->add($form_Inscricao);
  147. // monta pagina
  148. $vbox = new TVBox;
  149. $vbox->style = 'width: 100%';
  150. $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  151. $vbox->add($this->form);
  152. $vbox->add($notebook);
  153. parent::add($vbox);
  154. }
  155. // define mascara programatico
  156. public static function onSetMask( $param )
  157. {
  158. try
  159. {
  160. TTransaction::open('setcis');
  161. $categoria = new entidades($param['key']);
  162. $objeto = new stdClass;
  163. TForm::getData('form_entidade', $objeto);
  164. $objeto->entidades_id->setMask($categoria->mascara);
  165. TForm::setData('form_entidade', $objeto);
  166. TTransaction::close();
  167. }
  168. catch (Exception $e)
  169. {
  170. new TMessage('error', $e->getMessage());
  171. }
  172. }
  173. // Inicio de edição
  174. public function show()
  175. {
  176. if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onClear') )
  177. {
  178. $this->onClear(0);
  179. }
  180. parent::show();
  181. }
  182. // limpa o form
  183. public function onClear($param)
  184. {
  185. $objeto = new stdClass;
  186. $objeto->id = '';
  187. $objeto->nome = '';
  188. $objeto->pessoas_id = '';
  189. $objeto->entidades_id = '';
  190. $objeto->programatico = '';
  191. $this->form->setData($objeto);
  192. }
  193. // apresenta dados no form
  194. public static function onEditeEntidade( $param )
  195. {
  196. try
  197. {
  198. if (isset($param['key']))
  199. {
  200. TTransaction::open('setcis');
  201. $id_ent = (int) $param['key'];
  202. TSession::setValue('id_entidade', $id_ent);
  203. var_dump($id_ent);
  204. //$object = TSession::getValue('id_entidade');
  205. $objetoEntidade = new entidade($id_ent);
  206. $objetoForm = new stdClass;
  207. $objetoForm->id_find = '';
  208. $objetoForm->Nome_find = '';
  209. $objetoForm->progratico_find = '';
  210. if ($objetoEntidade)
  211. {
  212. $objetoForm->id = $objetoEntidade->id;
  213. $objetoForm->nome = $objetoEntidade->nome;
  214. $objetoForm->pessoas_id = $objetoEntidade->pessoas_id;
  215. $objetoForm->entidades_id = $objetoEntidade->entidades_id;
  216. $objetoForm->programatico = $objetoEntidade->programatico;
  217. }
  218. TForm::sendData('form_entidade', $objetoForm);
  219. TTransaction::close();
  220. }
  221. }
  222. catch (Exception $e)
  223. {
  224. new TMessage('error', $e->getMessage());
  225. TTransaction::rollback();
  226. }
  227. }
  228. // mostra imagem
  229. public static function onShowImage($param)
  230. {
  231. //$imagem = new TImage($param);
  232. //AdiantiCoreApplication::loadPage(__CLASS__, 'foto', $imagem);
  233. //$foto->add($imagem);
  234. //$this->imgFoto->src = "app/images/{$empresa}/{$nomeImg}.png";
  235. //$imgFoto->src = 'app/fotos/' . substr('000000' . $param, -7) . '.jpg';
  236. //var_dump($param);
  237. //$foto->add($divFoto);
  238. }
  239. // method onTabClick
  240. public function onTabClick($param)
  241. {
  242. try
  243. {
  244. TTransaction::open('setcis');
  245. //$id_ent = $param['id'];
  246. $page = (int) $param['current_page'];
  247. $id_ent = TSession::getValue('id_ent');
  248. if ($page = 2) // load sub-form pessoais
  249. {
  250. $form_pessoais = new PessoaisForm;
  251. //$pessoal->add($form_pessoais);
  252. }
  253. elseif ($page = 3) // load sub-form endereços
  254. {
  255. $form_Endereco = new EnderecoForm;
  256. $endereco->add($form_Endereco);
  257. }
  258. elseif ($page = 4) // load sub-form inscrições
  259. {
  260. $form_Inscricao = new InscricaoForm;
  261. $inscricao->add($form_Inscricao);
  262. }
  263. }
  264. catch (Exception $e)
  265. {
  266. new TMessage('error', $e->getMessage());
  267. TTransaction::rollback();
  268. }
  269. }
  270. // confirma antes da exclusão
  271. public static function onDelete($param)
  272. {
  273. $action = new TAction([__CLASS__, 'Delete']);
  274. $action->setParameters($param);
  275. new TQuestion(TAdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);
  276. }
  277. // method delete
  278. public function Delete($param)
  279. {
  280. try
  281. {
  282. TTransaction::open('setcis');
  283. $id = $param['id'];
  284. $entidades = new entidade($id);
  285. $entidades->delete();
  286. TTransaction::close();
  287. $pos_action = new TAction([__CLASS__, 'onClear']);
  288. new TMessage('info', TAdiantiCoreTranslator::translate('Record deleted'), $pos_action);
  289. }
  290. catch (Exception $e)
  291. {
  292. new TMessage('error', $e->getMessage());
  293. TTransaction::rollback();
  294. }
  295. }
  296. // method onSave
  297. public function onSave($param)
  298. {
  299. try
  300. {
  301. TTransaction::open('setcis');
  302. $this->form->validate();
  303. $data = $this->form->getData();
  304. if (!$param['id'])
  305. {
  306. $entidades = new entidade;
  307. }
  308. else
  309. {
  310. $entidades = new entidade($data->id);
  311. }
  312. $entidades->fromArray( (array) $data);
  313. $entidades->store();
  314. $data->id = $entidades->id;
  315. $this->form->setData($data);
  316. new TMessage('info', 'Record saved');
  317. TTransaction::close();
  318. }
  319. catch (Exception $e)
  320. {
  321. new TMessage('error', $e->getMessage());
  322. TTransaction::rollback();
  323. }
  324. }
  325. }
AT

 
  1. <?php
  2. /**
  3. * EnderecoForm
  4. * @version 1.0
  5. * @package setcia
  6. * @author Antonio Augusto Tavares
  7. * @copyright Copyright (c) 2018 Setsoft - Consultoria e Informática Ltda
  8. */
  9. class EnderecoForm extends TPage
  10. {
  11. protected $form; // form
  12. protected $detail_row;
  13. protected $fieldlist;
  14. static $id_ent;
  15. /**
  16. * Class constructor
  17. * Creates the page and the registration form
  18. */
  19. function __construct()
  20. {
  21. parent::__construct();
  22. // creates the form
  23. $this->form = new TForm('form_endereco');
  24. // cria fieldlist
  25. $this->fieldlist = new TFieldList;
  26. $this->fieldlist->width = '100%';
  27. $this->form->add($this->fieldlist);
  28. // define campos
  29. $id = new THidden('list_id[]');
  30. $enderecos_id = new TDBCombo('list_enderecos_id[]', 'setcis', 'Enderecos', 'id', 'descricao');
  31. $cep = new TEntry('list_cep[]');
  32. $cep->setExitAction(new TAction(array($this, 'onCep')));
  33. $logradouros_id = new TDBCombo('list_logradouros_id[]', 'setcis', 'Logradouros', 'id', 'descricao', 'descricao asc');
  34. $endereco = new TEntry('list_endereco[]');
  35. $numero = new TEntry('list_numero[]');
  36. $complemento = new TEntry('list_complemento[]');
  37. $bairro = new TEntry('list_bairro[]');
  38. $cidade_id = new TDBCombo('list_cidade_id[]', 'setcis', 'municipio', 'id', 'nome', 'nome asc');
  39. $estado_id = new TDBCombo('list_estado_id[]', 'setcis', 'estado', 'id', 'sigla', 'sigla asc');
  40. $padrao = new TEntry('list_padrao[]');
  41. $entidade_id = new THidden('list_entidade_id[]', 'setcis', 'Entidade', 'id', 'nome');
  42. $actEnd = new TCombo('action');
  43. //$cep->setExitAction(new TAction(array($this, 'onCep')));
  44. // validações
  45. $enderecos_id->addValidation('Tipo', new TRequiredValidator);
  46. $cep->addValidation('Cep', new TRequiredValidator);
  47. $logradouros_id->addValidation('Logradouro', new TRequiredValidator);
  48. // Tamanhos
  49. $enderecos_id->setSize('100%');
  50. $cep->setSize('100%');
  51. $logradouros_id->setSize('100%');
  52. $endereco->setSize('100%');
  53. $numero->setSize('100%');
  54. $complemento->setSize('100%');
  55. $bairro->setSize('100%');
  56. $cidade_id->setSize('100%');
  57. $estado_id->setSize('100%');
  58. $actEnd->setSize('100%');
  59. // define ações
  60. $items = ['1'=>'Salvar', '2'=>'Excluir'];
  61. $actEnd->addItems($items);
  62. $actEnd->setValue('1');
  63. $cep_action = new TAction(array($this, 'onCep'));
  64. $cep->setChangeAction($cep_action);
  65. $change_action = new TAction(array($this, 'onDefine'));
  66. $actEnd->setChangeAction($change_action);
  67. // monta fieldlist
  68. $this->fieldlist->addField( '', $id);
  69. $this->fieldlist->addField( 'Tipo', $enderecos_id);
  70. $this->fieldlist->addField( 'Cep', $cep);
  71. $this->fieldlist->addField( 'Logradouro', $logradouros_id);
  72. $this->fieldlist->addField( 'Endereco', $endereco);
  73. $this->fieldlist->addField( 'Numero', $numero);
  74. $this->fieldlist->addField( 'Complemento', $complemento);
  75. $this->fieldlist->addField( 'Bairro', $bairro);
  76. $this->fieldlist->addField( 'Cidade', $cidade_id);
  77. $this->fieldlist->addField( 'Estado', $estado_id);
  78. $this->fieldlist->addField( '', $entidade_id);
  79. $this->fieldlist->addField( 'Salvar/Excluir', $actEnd);
  80. // adiciona campos no form
  81. $this->form->addField($id);
  82. $this->form->addField($enderecos_id);
  83. $this->form->addField($cep);
  84. $this->form->addField($logradouros_id);
  85. $this->form->addField($endereco);
  86. $this->form->addField($numero);
  87. $this->form->addField($complemento);
  88. $this->form->addField($bairro);
  89. $this->form->addField($cidade_id);
  90. $this->form->addField($estado_id);
  91. $this->form->addField($padrao);
  92. $this->form->addField($entidade_id);
  93. $this->form->addField($actEnd);
  94. // create the page container
  95. $container = new TVBox;
  96. $container->style = 'width: 100%';
  97. $container->add($this->form);
  98. parent::add($container);
  99. }
  100. // metodo show() - mostra os dados na pagina
  101. public function show()
  102. {
  103. if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onLoad') )
  104. {
  105. $this->onLoad(0);
  106. }
  107. parent::show();
  108. }
  109. // Clear form
  110. public function onClear($param)
  111. {
  112. $this->fieldlist->addHeader();
  113. }
  114. // metodo carga do fieldlist
  115. function onLoad($param)
  116. {
  117. try
  118. {
  119. TTransaction::open('setcis');
  120. $id_ent = TSession::getValue('id_entidade');
  121. var_dump($id_ent);
  122. $objEndereco = EntidadeEndereco::where('entidade_id', '=', $id_ent)->load();
  123. $this->fieldlist->addHeader();
  124. if ($objEndereco)
  125. {
  126. foreach ($objEndereco as $end)
  127. {
  128. $objForm = new stdClass;
  129. $objForm->list_id = $end->id;
  130. $objForm->list_enderecos_id = $end->enderecos_id;
  131. $objForm->list_cep = $end->cep;
  132. $objForm->list_logradouros_id = $end->logradouros_id;
  133. $objForm->list_endereco = $end->endereco;
  134. $objForm->list_numero = $end->numero;
  135. $objForm->list_complemento = $end->complemento;
  136. $objForm->list_bairro = $end->bairro;
  137. $objForm->list_cidade_id = $end->cidade_id;
  138. $objForm->list_estado_id = $end->estado_id;
  139. $row = $this->fieldlist->addDetail($objForm);
  140. $row->del($row->get(count($row->getChildren())-1));
  141. }
  142. $row = $this->fieldlist->addDetail( new stdClass );
  143. $row->del($row->get(count($row->getChildren())-1));
  144. }
  145. else
  146. {
  147. $row = $this->fieldlist->addDetail( new stdClass );
  148. $row->del($row->get(count($row->getChildren())-1));
  149. }
  150. // * fecha transação
  151. TTransaction::close();
  152. TScript::create(' $( "#numero" ).focus(); ');
  153. }
  154. catch (Exception $e)
  155. {
  156. new TMessage('error', $e->getMessage());
  157. TTransaction::rollback();
  158. }
  159. }
  160. public static function onDefine($param)
  161. {
  162. $opcao = $param['key'];
  163. //var_dump($param);
  164. if($opcao == '1')
  165. {
  166. AdiantiCoreApplication::loadPage(__CLASS__, 'onSave', $param);
  167. }
  168. else
  169. {
  170. // define the delete action
  171. $action = new TAction([__CLASS__, 'onDelete']);
  172. $action->setParameters($param);
  173. // * shows a dialog to the user
  174. new TQuestion(TAdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);
  175. }
  176. }
  177. // method onSave
  178. public static function onSave($param)
  179. {
  180. try
  181. {
  182. // captura o indice e id
  183. $posicao = $param['_field_data'];
  184. $input_pieces = explode('=', $posicao);
  185. $indice = (int) end($input_pieces);
  186. $id_end = (int) $param['list_id'][$indice];
  187. TTransaction::open('setcis');
  188. if($id_end > 0)
  189. {
  190. $objEndereco = new EntidadeEndereco($id_end);
  191. }
  192. else
  193. {
  194. $objEndereco = new EntidadeEndereco;
  195. $objEndereco->entidade_id = TSession::getValue('id_entidade');
  196. }
  197. $objEndereco->enderecos_id = $param['list_enderecos_id'][$indice];
  198. $objEndereco->cep = $param['list_cep'][$indice];
  199. $objEndereco->logradouros_id = $param['list_logradouros_id'][$indice];
  200. $objEndereco->endereco = $param['list_endereco'][$indice];
  201. $objEndereco->numero = $param['list_numero'][$indice];
  202. $objEndereco->complemento = $param['list_complemento'][$indice];
  203. $objEndereco->bairro = $param['list_bairro'][$indice];
  204. $objEndereco->cidade_id = $param['list_cidade_id'][$indice];
  205. $objEndereco->estado_id = $param['list_estado_id'][$indice];
  206. $objEndereco->store();
  207. TTransaction::close(); // close the transaction
  208. $pos_action = new TAction([__CLASS__, 'onload']);
  209. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'), $pos_action);
  210. }
  211. catch (Exception $e) // in case of exception
  212. {
  213. new TMessage('error', $e->getMessage());
  214. TTransaction::rollback();
  215. }
  216. }
  217. // method delete endereço
  218. public function onDelete($param)
  219. {
  220. try
  221. {
  222. // captura o indice e id
  223. $posicao = $param['_field_data'];
  224. $input_pieces = explode('=', $posicao);
  225. $indice = (int) end($input_pieces);
  226. $id_end = (int) $param['list_id'][$indice];
  227. TTransaction::open('setcis');
  228. if($id_end > 0)
  229. {
  230. $tabEndereco = new EntidadeEndereco($id_end);
  231. $tabEndereco->delete();
  232. }
  233. TTransaction::close();
  234. $pos_action = new TAction([__CLASS__, 'onload']);
  235. new TMessage('info', TAdiantiCoreTranslator::translate('Record deleted'), $pos_action);
  236. }
  237. catch (Exception $e)
  238. {
  239. new TMessage('error', $e->getMessage());
  240. TTransaction::rollback();
  241. }
  242. }
  243. // method busca cep
  244. public static function onCep($param)
  245. {
  246. var_dump($param);
  247. if(isset($param['key']))
  248. {
  249. $resultado = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($param['key']).'&formato=query_string');
  250. //var_dump($resultado);
  251. if($resultado)
  252. {
  253. parse_str($resultado, $retorno);
  254. TTransaction::open('setcis');
  255. $obj = new StdClass;
  256. $obj->enderecos_id = $param['enderecos_id'];
  257. $obj->cep = $param['cep'];
  258. $logradouro = logradouros::where('descricao', '=', strtoupper($retorno['tipo_logradouro']))->load();
  259. foreach ($logradouro as $logradouros) $obj->logradouros_id = $logradouros->id;
  260. $obj->endereco = strtoupper($retorno['logradouro']);
  261. $obj->bairro = strtoupper($retorno['bairro']);
  262. $municipios = municipio::where('nome', '=', strtoupper($retorno['cidade']))->load();
  263. foreach ($municipios as $municipio) $obj->cidade_id = $municipio->id;
  264. $estados = estado::where('sigla', '=', strtoupper($retorno['uf']))->load();
  265. foreach ($estados as $estado) $obj->estado_id = $estado->id;
  266. TTransaction::close();
  267. TForm::sendData('form_Endereco', $obj);
  268. }
  269. else
  270. {
  271. //Exception $e;
  272. //new TMessage('error', $e->getMessage());
  273. }
  274. }
  275. else
  276. {
  277. //catch (Exception $e)
  278. //new TMessage('error', $e->getMessage());
  279. }
  280. }
  281. }