Fieldlist e datagrid não carregam!!! Pessoal do forum...boa noite... Estou convertendo um erp gigante para o adianti framework, por meios auto-ditada aprendendo e fazendo, tentativa e erro rsrs, consegui gerar a aplicação do zero até o estado que esta, super funcional e dentro do previsto, porem tem um problema que me aflige à algum tempo, optei por montar o Mestre/Detalhe com os detalhes em formulários independentes, mas o f...
AT
Fieldlist e datagrid não carregam!!!  
Pessoal do forum...boa noite...

Estou convertendo um erp gigante para o adianti framework, por meios auto-ditada aprendendo e fazendo, tentativa e erro rsrs, consegui gerar a aplicação do zero até o estado que esta, super funcional e dentro do previsto, porem tem um problema que me aflige à algum tempo, optei por montar o Mestre/Detalhe com os detalhes em formulários independentes, mas o fieldlist ou datagrid nos detalhes não carregam, quando faço a carga direto na url eles funcionam, mas quando a carga é feita do onEdit do Mestre não funcionam, notem a imagem anexo, dados pessoais normal e dados de endereço e os outros não funcionam, acionados igualmente no form principal, estou enviando as telas e os fontes, por favor se alguém puder me ajudar fico muito grato

[] obrigado

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


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. function __construct()
  16. {
  17. parent::__construct();
  18. TSession::setValue('id_ent', 0);
  19. // cria o form
  20. $this->form = new BootstrapFormBuilder('form_entidade');
  21. $this->form->style = 'width: 100%';
  22. $this->form->setFieldSizes('100%');
  23. // declara campos de pesquisa
  24. $id_find = new TDBCombo('id_find', 'setcis', 'Entidade', 'id', 'id');
  25. $id_find->setSize('100%');
  26. $nome_find = new TDBUniqueSearch('nome_find', 'setcis', 'entidade', 'id', 'nome', 'nome asc');
  27. $nome_find->setMinLength(1);
  28. $nome_find->setSize('100%');
  29. $nome_find->setMask('{nome}');
  30. $programatico_find = new TDBUniqueSearch('programatico_find', 'setcis', 'entidade', 'id', 'programatico', 'programatico asc');
  31. $programatico_find->setMinLength(1);
  32. $programatico_find->setSize('100%');
  33. $programatico_find->setMask('{programatico} ');
  34. // defina ações de pesquisa
  35. $id_change = new TAction(array($this, 'onFiltro'));
  36. $id_find->setChangeAction($id_change);
  37. $nome_change = new TAction(array($this, 'onFiltro'));
  38. $nome_find->setChangeAction($nome_change);
  39. $programatico_change = new TAction(array($this, 'onFiltro'));
  40. $programatico_find->setChangeAction($programatico_change);
  41. $gru_ini = parse_ini_file('app\config\entidades.ini', true);
  42. $opcaoMenu = $gru_ini['grupo']['Fornecedores'];
  43. $criteria = new TCriteria();
  44. $criteria->add(new TFilter('grupo','=',$opcaoMenu));
  45. $id = new TEntry('id');
  46. $nome = new TEntry('nome');
  47. $pessoas_id = new TDBCombo('pessoas_id', 'setcis', 'pessoas', 'id', 'descricao');
  48. $entidades_id = new TDBCombo('entidades_id', 'setcis', 'entidades', 'id', 'descricao', 'descricao asc');
  49. $programatico = new TEntry('programatico');
  50. //$entidades_id_change = new TAction(array($this, 'onSetMask'));
  51. //$entidades_id->setChangeAction($entidades_id_change);
  52. // validações
  53. $nome->addValidation('Nome', new TRequiredValidator);
  54. $pessoas_id->addValidation('Pessoa', new TRequiredValidator);
  55. $entidades_id->addValidation('Categoria', new TRequiredValidator);
  56. $programatico->addValidation('Código/Alternatibo', new TRequiredValidator);
  57. $id->setEditable(FALSE);
  58. // posiciona elementos no form
  59. $row = $this->form->addFields([ $id_find ],
  60. [ $nome_find ],
  61. [ $programatico_find ],
  62. [ TButton::create('clear', array($this, 'onClear'), 'Novo', 'fa:eraser green')]);
  63. $row->layout = ['col-sm-1', 'col-sm-8', 'col-sm-2', 'col-sm-1'];
  64. $row = $this->form->addFields([ new TLabel('<b>Codigo</b>') ], //'<b>Id</b>'
  65. [ new TLabel('<b>Nome</b>') ],
  66. [ new TLabel('<b>Pessoa</b>') ],
  67. [ new TLabel('<b>Categoria</b>') ],
  68. [ new TLabel('<b>Código/Alternativo</b>') ],
  69. [TButton::create('delete', array($this, 'onDelete'), 'Excluir', 'fa:eraser red')]);
  70. $row->layout = ['col-sm-1', 'col-sm-4', 'col-sm-2', 'col-sm-2', 'col-sm-2', 'col-sm-1' ];
  71. $row = $this->form->addFields([ $id ],
  72. [ $nome ],
  73. [ $pessoas_id ],
  74. [ $entidades_id ],
  75. [ $programatico ],
  76. [ TButton::create('save', array($this, 'onSave'), 'Salvar', 'fa:save blue')]);
  77. $row->layout = ['col-sm-1', 'col-sm-4', 'col-sm-2', 'col-sm-2', 'col-sm-2', 'col-sm-1' ];
  78. // prepara notebook de detalhes
  79. $pessoal = new TFrame;
  80. $pessoal->class = 'tframe tframe-custom';
  81. $pessoal->style = 'background:whiteSmoke;margin:0px;width:100%;height:350px';
  82. $endereco = new TFrame;
  83. $endereco->class = 'tframe tframe-custom';
  84. $endereco->style = 'background:whiteSmoke';
  85. $inscricao = new TFrame;
  86. $inscricao->class = 'tframe tframe-custom';
  87. $inscricao->style = 'background:whiteSmoke';
  88. $eletronico = new TFrame;
  89. $eletronico->class = 'tframe tframe-custom';
  90. $eletronico->style = 'background:whiteSmoke';
  91. $contrato = new TFrame;
  92. $contrato->class = 'tframe tframe-custom';
  93. $contrato->style = 'background:whiteSmoke';
  94. $carteira = new TFrame;
  95. $carteira->class = 'tframe tframe-custom';
  96. $carteira->style = 'background:whiteSmoke';
  97. $vinculado = new TFrame;
  98. $vinculado->class = 'tframe tframe-custom';
  99. $vinculado->style = 'background:whiteSmoke';
  100. $conta = new TFrame;
  101. $conta->class = 'tframe tframe-custom';
  102. $conta->style = 'background:whiteSmoke';
  103. $boleto = new TFrame;
  104. $boleto->class = 'tframe tframe-custom';
  105. $boleto->style = 'background:whiteSmoke';
  106. $mandato = new TFrame;
  107. $mandato->class = 'tframe tframe-custom';
  108. $mandato->style = 'background:whiteSmoke';
  109. $atendimento = new TFrame;
  110. $atendimento->class = 'tframe tframe-custom';
  111. $atendimento->style = 'background:whiteSmoke';
  112. $ocorrencias = new TFrame;
  113. $ocorrencias->class = 'tframe tframe-custom';
  114. $ocorrencias->style = 'background:whiteSmoke';
  115. $Imagem = new TFrame;
  116. $Imagem->class = 'tframe tframe-custom';
  117. $Imagem->style = 'background:whiteSmoke';
  118. // cria notebook detalhes
  119. $notebook = new BootstrapNotebookWrapper( new TNotebook() );
  120. //$notebook->setTabAction( new TAction(array($this, 'onTabClick')));
  121. $notebook->style = 'background:white';
  122. TTransaction::open('setcis');
  123. $tabEntidades = new Entidades(2);
  124. TTransaction::close();
  125. $items = str_split(str_replace(',', '', $tabEntidades->paginas), 3);
  126. foreach ($items as $key)
  127. {
  128. // if ($key == 'PES')
  129. // {
  130. $notebook->appendPage('Pessoais', $pessoal);
  131. $form_pessoais = new PessoaisForm(0);
  132. $pessoal->add($form_pessoais);
  133. // }
  134. // if ($key == 'END')
  135. // {
  136. $notebook->appendPage('Endereços', $endereco);
  137. $form_endereco = new EnderecoForm(0);
  138. $endereco->add($form_endereco);
  139. // }
  140. // if ($key == 'INS')
  141. // {
  142. $notebook->appendPage('Inscrições', $inscricao);
  143. $form_inscricao = new InscricaoForm(0);
  144. $inscricao->add($form_inscricao);
  145. // }
  146. if ($key == 'ELE')
  147. {
  148. $notebook->appendPage('Eletrônicos', $eletronico);
  149. $form_eletronico = new EletronicoForm(0);
  150. $eletronico->add($form_Eletronico);
  151. }
  152. if ($key == 'CON')
  153. {
  154. $notebook->appendPage('Contratos', $contrato);
  155. }
  156. if ($key == 'CTA')
  157. {
  158. $notebook->appendPage('Contas', $conta);
  159. }
  160. if ($key == 'BOL')
  161. {
  162. $notebook->appendPage('Boletos', $boleto);
  163. }
  164. if ($key == 'VIN')
  165. {
  166. $notebook->appendPage('Vínculos', $vinculado);
  167. }
  168. if ($key == 'CAR')
  169. {
  170. $notebook->appendPage('Carteiras', $carteira);
  171. }
  172. if ($key == 'MAN')
  173. {
  174. $notebook->appendPage('Mandatos', $mandato);
  175. }
  176. if ($key == 'ATE')
  177. {
  178. $notebook->appendPage('Atendimentos', $atendimento);
  179. }
  180. if ($key == 'OCO')
  181. {
  182. $notebook->appendPage('Ocorrências', $ocorrencias);
  183. }
  184. if ($key == 'IMA')
  185. {
  186. $notebook->appendPage('Imagem', $Imagem);
  187. $form_imagem = new ImagemForm(0);
  188. $Imagem->add($form_imagem);
  189. }
  190. }
  191. // monta pagina
  192. $vbox = new TVBox;
  193. $vbox->style = 'width: 100%';
  194. $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  195. $vbox->add($this->form);
  196. $vbox->add($notebook);
  197. parent::add($vbox);
  198. }
  199. // define mascara programatico
  200. public function show()
  201. {
  202. if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onClear') )
  203. {
  204. $this->onClear(0);
  205. $this->onEdit(1);
  206. }
  207. parent::show();
  208. }
  209. // limpa o form
  210. public function onClear($param)
  211. {
  212. $objeto = new stdClass;
  213. $objeto->id_find = '';
  214. $objeto->nome_find = '';
  215. $objeto->programatico_find = '';
  216. $objeto->id = '';
  217. $objeto->nome = '';
  218. $objeto->pessoas_id = '';
  219. $objeto->entidades_id = '';
  220. $objeto->programatico = '';
  221. TSession::setValue('id_ent', 0);
  222. $this->form->setData($objeto);
  223. }
  224. // method onFiltro
  225. public static function onFiltro($param)
  226. {
  227. AdiantiCoreApplication::loadPage(__CLASS__, 'onEdit', $param);
  228. }
  229. // apresenta dados no form
  230. public function onEdit( $param )
  231. {
  232. try
  233. {
  234. if (isset($param['key']))
  235. {
  236. TTransaction::open('setcis');
  237. $id_ent = (int) $param['key'];
  238. TSession::setValue('id_ent', $id_ent);
  239. $form_pessoais = new PessoaisForm($id_ent);
  240. $form_endereco = new EnderecoForm($id_ent);
  241. $form_inscricao = new InscricaoForm($id_ent);
  242. $form_eletronico = new EletronicoForm($id_ent);
  243. $objetoEntidade = new entidade($id_ent);
  244. $objetoForm = new stdClass;
  245. if ($objetoEntidade)
  246. {
  247. $objetoForm->id = $objetoEntidade->id;
  248. $objetoForm->nome = $objetoEntidade->nome;
  249. $objetoForm->pessoas_id = $objetoEntidade->pessoas_id;
  250. $objetoForm->entidades_id = $objetoEntidade->entidades_id;
  251. $objetoForm->programatico = $objetoEntidade->programatico;
  252. }
  253. TForm::sendData('form_entidade', $objetoForm);
  254. TTransaction::close();
  255. }
  256. }
  257. catch (Exception $e)
  258. {
  259. new TMessage('error', $e->getMessage());
  260. TTransaction::rollback();
  261. }
  262. }
  263. // method onSave
  264. public function onSave($param)
  265. {
  266. try
  267. {
  268. TTransaction::open('setcis');
  269. $this->form->validate();
  270. $data = $this->form->getData();
  271. if (!$param['id'])
  272. {
  273. $entidades = new entidade;
  274. }
  275. else
  276. {
  277. $entidades = new entidade($data->id);
  278. }
  279. $entidades->fromArray( (array) $data);
  280. $entidades->store();
  281. $data->id = $entidades->id;
  282. $this->form->setData($data);
  283. new TMessage('info', 'Record saved');
  284. TTransaction::close();
  285. }
  286. catch (Exception $e)
  287. {
  288. new TMessage('error', $e->getMessage());
  289. TTransaction::rollback();
  290. }
  291. }
  292. // confirma antes da exclusão
  293. public static function onDelete($param)
  294. {
  295. $action = new TAction([__CLASS__, 'Delete']);
  296. $action->setParameters($param);
  297. new TQuestion(TAdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);
  298. }
  299. // method delete
  300. public function Delete($param)
  301. {
  302. try
  303. {
  304. TTransaction::open('setcis');
  305. $id = $param['id'];
  306. $entidades = new entidade($id);
  307. $entidades->delete();
  308. TTransaction::close();
  309. $pos_action = new TAction([__CLASS__, 'onClear']);
  310. new TMessage('info', TAdiantiCoreTranslator::translate('Record deleted'), $pos_action);
  311. }
  312. catch (Exception $e)
  313. {
  314. new TMessage('error', $e->getMessage());
  315. TTransaction::rollback();
  316. }
  317. }
  318. // method onTabClick
  319. public function onTabClick($param)
  320. {
  321. try
  322. {
  323. $id_ent = TSession::getValue('id_ent');
  324. $page = (int) $param['current_page'];
  325. if ($page == 2) // load sub-form endereços
  326. {
  327. $form_Endereco = new EnderecoForm($id_ent);
  328. var_dump($id_ent);
  329. }
  330. elseif ($page == 3) // load sub-form inscrições
  331. {
  332. $form_Inscricao = new InscricaoForm($id_ent);
  333. }
  334. elseif ($page == 4) // load sub-form Eletrônicos
  335. {
  336. $form_Eletronico = new EletronicoForm($id_ent);
  337. }
  338. }
  339. catch (Exception $e)
  340. {
  341. new TMessage('error', $e->getMessage());
  342. TTransaction::rollback();
  343. }
  344. }
  345. }
AT

 
  1. <?php
  2. /*
  3. * EnderecoForm
  4. * @version 1.0
  5. * @package setcis
  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 $formfdl;
  13. protected $detail_row;
  14. protected $fieldlist;
  15. static $id_ent;
  16. static $actEnd;
  17. static $arrLogra;
  18. // Creates the page and the registration form
  19. function __construct($param)
  20. {
  21. parent::__construct();
  22. $this->form = new TForm('form_endereco');
  23. // cria fieldlist
  24. $this->fieldlist = new TFieldList;
  25. $this->fieldlist->width = '100%';
  26. $this->fieldlist->name = 'fdlEndereco';
  27. $this->form->add($this->fieldlist);
  28. // define campos
  29. $id = new TEntry('list_id[]');
  30. $enderecos_id = new TDBCombo('list_enderecos_id[]', 'setcis', 'Enderecos', 'id', 'descricao', 'descricao asc');
  31. $cep = new TEntry('list_cep[]');
  32. $logradouros_id = new TDBCombo('list_logradouros_id[]', 'setcis', 'Logradouros', 'id', 'descricao', 'descricao asc');
  33. $endereco = new TEntry('list_endereco[]');
  34. $numero = new TEntry('list_numero[]');
  35. $complemento = new TEntry('list_complemento[]');
  36. $bairro = new TDBEntry('list_bairro[]', 'setcis', 'CepBairro', 'bairro');
  37. $cidade_id = new TDBCombo('list_cidade_id[]', 'setcis', 'Municipio', 'id', 'nome', 'nome asc');
  38. $estado_id = new TDBCombo('list_estado_id[]', 'setcis', 'Estado', 'id', 'sigla', 'sigla asc');
  39. $actEnd = new TCombo('list_action');
  40. $entidade_id = new THidden('list_entidade_id[]');
  41. // Tamanhos
  42. $id->setSize('100%');
  43. $enderecos_id->setSize('100%');
  44. $cep->setSize('100%');
  45. $logradouros_id->setSize('100%');
  46. $endereco->setSize('100%');
  47. $numero->setSize('100%');
  48. $complemento->setSize('100%');
  49. $bairro->setSize('100%');
  50. $cidade_id->setSize('100%');
  51. $estado_id->setSize('100%');
  52. $actEnd->setSize('100%');
  53. // styles
  54. $cep->style="background-color: #ffff99; text-align: left";
  55. $numero->style="text-align: center";
  56. $complemento->style = 'text-transform: uppercase';
  57. // define ações
  58. $items = ['1'=>'SALVAR', '2'=>'EXCLUIR', '3'=>'SUCESSO', '4'=>'MAPA'];
  59. $actEnd->addItems($items);
  60. $actEnd->setValue('1');
  61. $id->setEditable(FALSE);
  62. $cep->setExitAction(new TAction(array($this, 'onCep')));
  63. $change_action = new TAction(array($this, 'onDefine'));
  64. $actEnd->setChangeAction($change_action);
  65. //$change_cidade_id = new TAction(array($this, 'onDetalhes'));
  66. //$cidade_id->setChangeAction($change_cidade_id);
  67. // monta fieldlist
  68. $this->fieldlist->addField( 'ID', $id, ['width' => '4%']);
  69. $this->fieldlist->addField( 'Tipo', $enderecos_id, ['width' => '6%']);
  70. $this->fieldlist->addField( 'Cep', $cep, ['width' => '6%']);
  71. $this->fieldlist->addField( 'Logradouro', $logradouros_id, ['width' => '6%']);
  72. $this->fieldlist->addField( 'Endereco', $endereco, ['width' => '18%']);
  73. $this->fieldlist->addField( 'Número', $numero, ['width' => '5%']);
  74. $this->fieldlist->addField( 'Complemento', $complemento, ['width' => '10%']);
  75. $this->fieldlist->addField( 'Bairro', $bairro, ['width' => '10%']);
  76. $this->fieldlist->addField( 'Cidade', $cidade_id, ['width' => '10%']);
  77. $this->fieldlist->addField( 'Estado', $estado_id, ['width' => '4%']);
  78. $this->fieldlist->addField( 'Salvar/Excluir', $actEnd, ['width' => '2%']);
  79. $this->fieldlist->addField( '', $entidade_id);
  80. $this->fieldlist->width = '100%';
  81. // adiciona campos no form
  82. $this->form->addField($id);
  83. $this->form->addField($enderecos_id);
  84. $this->form->addField($cep);
  85. $this->form->addField($logradouros_id);
  86. $this->form->addField($endereco);
  87. $this->form->addField($numero);
  88. $this->form->addField($complemento);
  89. $this->form->addField($bairro);
  90. $this->form->addField($cidade_id);
  91. $this->form->addField($estado_id);
  92. $this->form->addField($actEnd);
  93. $this->form->addField($entidade_id);
  94. // create the page container
  95. $vbox = new TVBox;
  96. $vbox->style = 'width: 100%';
  97. $vbox->add($this->form);
  98. parent::add($vbox);
  99. if ((int) $param != 0)
  100. {
  101. $this->onLoad((int) $param);
  102. }
  103. }
  104. // metodo show
  105. public function show()
  106. {
  107. if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onLoad') )
  108. {
  109. $this->onLoad(0);
  110. }
  111. parent::show();
  112. }
  113. // metodo carga do fieldlist
  114. function onLoad($param)
  115. {
  116. try
  117. {
  118. TTransaction::open('setcis');
  119. $id_ent = TSession::getValue('id_ent');
  120. //$id_ent++;
  121. //var_dump($param);
  122. //var_dump($id_ent++);
  123. $criteria = new TCriteria();
  124. $criteria->add(new TFilter('entidade_id', '=', $id_ent));
  125. $repository = new TRepository('EntidadeEndereco');
  126. $objEndereco = $repository->load($criteria);
  127. $this->fieldlist->addHeader();
  128. if ($objEndereco)
  129. {
  130. foreach ($objEndereco as $end)
  131. {
  132. $objForm = new stdClass;
  133. $objForm->list_id = $end->id;
  134. $objForm->list_enderecos_id = $end->enderecos_id;
  135. $objForm->list_cep = $end->cep;
  136. $objForm->list_logradouros_id = $end->logradouros_id;
  137. $objForm->list_endereco = $end->endereco;
  138. $objForm->list_numero = $end->numero;
  139. $objForm->list_complemento = $end->complemento;
  140. $objForm->list_bairro = $end->bairro;
  141. $objForm->list_cidade_id = $end->cidade_id;
  142. $objForm->list_estado_id = $end->estado_id;
  143. $row = $this->fieldlist->addDetail($objForm);
  144. $row->del($row->get(count($row->getChildren())-1));
  145. }
  146. $row = $this->fieldlist->addDetail( new stdClass );
  147. $row->del($row->get(count($row->getChildren())-1));
  148. }
  149. else
  150. {
  151. $row = $this->fieldlist->addDetail( new stdClass );
  152. $row->del($row->get(count($row->getChildren())-1));
  153. }
  154. TTransaction::close();
  155. TScript::create(' $( "#list_enderecos_id" ).focus(); ');
  156. }
  157. catch (Exception $e)
  158. {
  159. new TMessage('error', $e->getMessage());
  160. TTransaction::rollback();
  161. }
  162. }
  163. // method onDefine
  164. public static function onDefine($param)
  165. {
  166. $opcao = $param['key'];
  167. if($opcao == '1')
  168. {
  169. AdiantiCoreApplication::loadPage(__CLASS__, 'onSave', $param);
  170. }
  171. elseif ($opcao == '2')
  172. {
  173. $action = new TAction([__CLASS__, 'onDelete']);
  174. $action->setParameters($param);
  175. new TQuestion(TAdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);
  176. }
  177. elseif ($opcao == '4')
  178. {
  179. AdiantiCoreApplication::loadPage(__CLASS__, 'onMapa', $param);
  180. }
  181. }
  182. // method onSave
  183. function onSave($param)
  184. {
  185. try
  186. {
  187. // captura o indice e id
  188. parse_str($param['_field_data'], $field_data);
  189. $indice = $field_data['row'];
  190. $id_end = (int) $param['list_id'][$indice];
  191. $input_id = $param['_field_id'];
  192. $input_pieces = explode('_', $input_id);
  193. $unique_id = end($input_pieces);
  194. TTransaction::open('setcis');
  195. $this->onValidate($param);
  196. $objEndereco = new StdClass;
  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. $tabEndereco->entidade_id = TSession::getValue('id_ent');
  207. $tabEndereco = new EntidadeEndereco($id_end);
  208. $tabEndereco->fromArray( (array) $objEndereco);
  209. $tabEndereco->store();
  210. $objForm = new StdClass;
  211. $objForm->{'list_id_'.$unique_id} = $tabEndereco->id;
  212. $objForm->{'list_action_'.$unique_id} = '3';
  213. TForm::sendData('form_endereco', $objForm);
  214. if (end($param['list_cep']))
  215. {
  216. TFieldList::addRows('fdlEndereco',1);
  217. }
  218. $hifem = strpos($param['list_cep'][$indice], '-');
  219. $cepNum = substr($objEndereco->cep,0,$hifem) . substr($objEndereco->cep,$hifem + 1,3);
  220. $tabCep = Cep::where('cep', '=', $cepNum)->load();
  221. if (!$tabCep)
  222. {
  223. $objCep = new stdClass;
  224. $objCep->cep = $cepNum;
  225. $objCep->logradouro = TSession::getValue('arrLogra')[$param['list_logradouros_id'][$indice]];
  226. $objCep->endereco = $objEndereco->endereco;
  227. $objCep->bairro = $objEndereco->bairro;
  228. $objCep->cidade = TSession::getValue('arrCidade')[$param['list_cidade_id'][$indice]];
  229. $objCep->estado = TSession::getValue('arrEstado')[$param['list_estado_id'][$indice]];
  230. $tabCep = new Cep;
  231. $tabCep->fromArray( (array) $objCep);
  232. $tabCep->store();
  233. }
  234. TTransaction::close();
  235. }
  236. catch (Exception $e)
  237. {
  238. new TMessage('error', $e->getMessage());
  239. TTransaction::rollback();
  240. }
  241. }
  242. // method validador
  243. public function onValidate($param)
  244. {
  245. parse_str($param['_field_data'], $field_data);
  246. $indice = $field_data['row'];
  247. if ((!$param['list_enderecos_id'][$indice])) throw new Exception('O campo <b>Tipo</b> é obrigatório');
  248. if ((!$param['list_cep'][$indice])) throw new Exception('O campo <b>Cep</b> é obrigatório');
  249. if ((!$param['list_logradouros_id'][$indice])) throw new Exception('O campo <b>Logradouro</b> é obrigatório');
  250. if ((!$param['list_enderecos_id'][$indice])) throw new Exception('O campo <b>Endereco</b> é obrigatório');
  251. if ((!$param['list_numero'][$indice])) throw new Exception('O campo <b>Numero</b> é obrigatório');
  252. if ((!$param['list_bairro'][$indice])) throw new Exception('O campo <b>Bairro</b> é obrigatório');
  253. if ((!$param['list_cidade_id'][$indice])) throw new Exception('O campo <b>Cidade</b> é obrigatório');
  254. if ((!$param['list_estado_id'][$indice])) throw new Exception('O campo <b>Estado</b> é obrigatório');
  255. }
  256. // method delete endereço
  257. function onDelete($param)
  258. {
  259. try
  260. {
  261. // captura o indice e id
  262. parse_str($param['_field_data'], $field_data);
  263. $indice = $field_data['row'];
  264. $id_end = (int) $param['list_id'][$indice];
  265. TTransaction::open('setcis');
  266. $tabEndereco = new EntidadeEndereco($id_end);
  267. $tabEndereco->delete();
  268. TTransaction::close();
  269. AdiantiCoreApplication::loadPage(__CLASS__, 'onLoad');
  270. }
  271. catch (Exception $e)
  272. {
  273. new TMessage('error', $e->getMessage());
  274. TTransaction::rollback();
  275. }
  276. }
  277. // method busca cep
  278. public static function onCep($param)
  279. {
  280. try
  281. {
  282. //Monta parametros
  283. parse_str($param['_field_data'], $field_data);
  284. $indice = $field_data['row'];
  285. $id_end = (int) $param['list_id'][$indice];
  286. $input_id = $param['_field_id'];
  287. $input_pieces = explode('_', $input_id);
  288. $unique_id = end($input_pieces);
  289. $cepKey = trim($param['key']);
  290. $hifem = strpos($cepKey, '-');
  291. $cepNum = ($hifem) ? substr($cepKey,0,$hifem) . substr($cepKey,$hifem + 1,3) : $cepKey;
  292. $cepTam = strlen($cepNum);
  293. $from = 'àáãâéêíóõôúüç';
  294. $to = 'ÀÁÃÂÉÊÍÓÕÔÚÜÇ';
  295. $key = "AIzaSyCN3Csd1bMMcHBCjQZ-w6Jv1bGHP9NjxWY";
  296. $correio = 'http://www.buscacep.correios.com.br/sistemas/buscacep/resultadoBuscaCepEndereco.cfm';
  297. if ($cepTam == 0)
  298. {
  299. TScript::create("var win = window.open('{$correio}', '_blank'); win.focus();");
  300. }
  301. elseif ($cepTam != 8)
  302. {
  303. new TMessage('info', 'Cep inválido...(tem que ter 8 digitos)');
  304. TScript::create('setTimeout(function() { $("input[name=\'cep\']").focus() }, 500);');
  305. }
  306. else
  307. {
  308. TTransaction::open('setcis');
  309. $tabCep = Cep::where('cep', '=', $cepNum)->load();
  310. if ($tabCep)
  311. {
  312. foreach ($tabCep as $tab)
  313. {
  314. $objCep = new StdClass;
  315. $objCep->{'list_enderecos_id_'.$unique_id} = $param['list_enderecos_id'][$indice];
  316. $objCep->{'list_cep_'.$unique_id} = substr($tab->cep,0,5) . '-'. substr($tab->cep,5,3);
  317. $objCep->{'list_logradouros_id_'.$unique_id} = array_search($tab->logradouro, Logradouros::getIndexedArray('id', 'descricao'));
  318. $objCep->{'list_endereco_'.$unique_id} = $tab->endereco;
  319. $objCep->{'list_bairro_'.$unique_id} = $tab->bairro;
  320. $objCep->{'list_cidade_id_'.$unique_id} = array_search($tab->cidade, Municipio::getIndexedArray('id', 'nome'));
  321. $objCep->{'list_estado_id_'.$unique_id} = array_search($tab->estado, Estado::getIndexedArray('id', 'sigla'));
  322. TForm::sendData('form_endereco', $objCep);
  323. //TScript::create('setTimeout(function() { $("input[name='list_numero']").focus() }, 100);');
  324. //TScript::create('setTimeout(function() { $("input[name=\'list_numero\']").focus() }, 200);');
  325. }
  326. }
  327. else
  328. {
  329. TScript::create("var win = window.open('{$correio}', '_blank'); win.focus();");
  330. //new TMessage('info', 'Cep: '.$cepNum.' não existe na base de dados!');
  331. //$objCep->{'ibge_'.$unique_id} = $retorno->ibge;
  332. }
  333. TTransaction::close();
  334. }
  335. }
  336. catch (Exception $e)
  337. {
  338. new TMessage('error', $e->getMessage());
  339. }
  340. }
  341. // pesquisa coordenas lat e lng
  342. public static function onMapa($param)
  343. {
  344. parse_str($param['_field_data'], $field_data);
  345. $indice = $field_data['row'];
  346. $input_id = $param['_field_id'];
  347. $input_pieces = explode('_', $input_id);
  348. $unique_id = end($input_pieces);
  349. $from = 'àáãâéêíóõôúüç';
  350. $to = 'ÀÁÃÂÉÊÍÓÕÔÚÜÇ';
  351. TTransaction::open('setcis');
  352. $desLogra = Logradouros::getIndexedArray('id', 'descricao')[$param['list_logradouros_id'][$indice]];
  353. $desCidade = Municipio::getIndexedArray('id', 'nome')[$param['list_cidade_id'][$indice]];
  354. $desEstado = Estado::getIndexedArray('id', 'sigla')[$param['list_estado_id'][$indice]];
  355. TTransaction::close();
  356. $urlEnd = $desLogra.' '.$param['list_endereco'][$indice].' '.$param['list_numero'][$indice].' '.$param['list_bairro'][$indice].' '.$desCidade.' '.$desEstado;
  357. $address = str_replace(' ','+',strtr(strtolower($urlEnd), $to, $from));
  358. $geocode = new TGeoCode($address);
  359. $geocode->request();
  360. $status = $geocode->getStatus();
  361. if ($status == 'OK')
  362. {
  363. $link = 'http://maps.google.com/?q='.$geocode->getLat().','.$geocode->getLng();
  364. TScript::create("var win = window.open('{$link}', '_blank'); win.focus();");
  365. }
  366. else
  367. {
  368. new TMessage('info', 'Não foi possível abrir o mapa, motivo: '.$status);
  369. }
  370. }
  371. //edite cidade
  372. public static function onDetalhes($param)
  373. {
  374. //$MunicipioForm = 'app\control\tabelas\MunicipioForm';
  375. //$link = new TElement('a');
  376. //$link->target = 'newwindow';
  377. //$link->class = 'MunicipioForm';
  378. //$link->href = 'index.php?class=MunicipioForm';
  379. //$link->add('Cidades');
  380. AdiantiCoreApplication::loadPage('MunicipioForm');
  381. //$link = 'app/control/tabelas/MunicipioForm';
  382. //if($param) TApplication::loadPage('C:\wamp64\www\setcis\app\control\tabelas\MunicipioForm');
  383. //TScript::create("var win = window.open('{$link}', '_blank'); win.focus();");
  384. }
  385. }
  386. ?>

AT

Carga do form dentro da aba do notebook na linha 183, com os dados no onEdit linha 304 do princincipal, por favor me ajudem!!!

[] obrigado

Augusto
MM

Bom dia Antonio Augusto, podemos nos falar por telefone para trocar-mos uma experiência a respeito da situação? O meu e-mail é milton@rsys.com.br
AT

Boa noite Milton, enviei um email com o numero do meu telefone: TIM (31) 986843101, se puder me liga ok?

[] obrigado

Augusto