Multivalues não carrega ( estou utilizando mais de um) Olá, Estou tentando utilizar mais de um multivalues no formulário, porém o segundo não carrega, alguém pode me ajudar a identificar o problema . Segue código abaixo. ...
RB
Multivalues não carrega ( estou utilizando mais de um)  
Olá,

Estou tentando utilizar mais de um multivalues no formulário, porém o segundo não carrega, alguém pode me ajudar a identificar o problema .

Segue código abaixo.

 
  1. <?php
  2. class FuncionarioFormBuilder extends TPage
  3. {
  4. private $form;
  5. private $cep;
  6. private $fieldlist;
  7. private $dependenteList;
  8. protected $detail_row;
  9. protected $detail_row_1;
  10. function __construct()
  11. {
  12. parent::__construct();
  13. parent::include_css('app/resources/builder.css');
  14. parent::include_css('app/resources/blue_modificado.css');
  15. $this->form = new BootstrapFormBuilder('frm_funcionario');
  16. $this->form->setFormTitle('Funcionário');
  17. $this->form->class ='frm_cliente_fisico';
  18. $dados_func = new TLabel('Dados Pessoais');
  19. $dados_func->class ='lbl_titulo';
  20. $this->form->addContent( [$dados_func] );
  21. $lbl_id = new TLabel('#');
  22. $id = new TEntry('id');
  23. $id->setEditable(false);
  24. $label_nome = new TLabel('Nome');
  25. $lbl_data_nascto = new TLabel('Data Nascto');
  26. $lbl_cpf = new TLabel('Cpf');
  27. $lbl_rg = new TLabel('Rg');
  28. $lbl_ctps = new TLabel('Ctps');
  29. $lbl_local_nascto = new TLabel('Local Nascimento');
  30. $lbl_estado_civil = new TLabel('Estado Cí­vil');
  31. $lbl_genero = new TLabel('Genero');
  32. $lbl_grau_instrucao = new TLabel('Grau de Instrução');
  33. $lbl_nome_mae = new TLabel('Pai');
  34. $lbl_nome_pai = new TLabel('Mãe');
  35. $lbl_conjuge = new TLabel('Conjuge');
  36. $nome = new TEntry('nome');
  37. $nome->style ='text-transform: uppercase';
  38. $nome->addValidation('nome', new TRequiredValidator);
  39. $local_nascto = new TEntry('local_nascto');
  40. $data_nascto = new TDate('data_nascimento');
  41. $data_nascto->addValidation('data_nascimento', new TRequiredValidator);
  42. $cpf = new TEntry('cpf');
  43. $cpf->addValidation('cpf', new TRequiredValidator);
  44. $rg = new TEntry('rg');
  45. $rg->addValidation('rg', new TRequiredValidator);
  46. $ctps = new TEntry('ctps');
  47. $estado_civil_id = new TDBCombo('estado_civil_id','centinel', 'Civil', 'id', 'descricao');
  48. $estado_civil_id->setDefaultOption(false);
  49. $grau_instrucao = new TEntry('grau_instrucao');
  50. $nome_mae = new TEntry('nome_mae');
  51. $nome_pai = new TEntry('nome_pai');
  52. $genero_id = new TDBCombo('genero_id','centinel','Genero','id','descricao');
  53. $genero_id->setDefaultOption(false);
  54. $conjuge = new TEntry('conjuge');
  55. $label_nome->class='lbl_text';
  56. $lbl_id->class='lbl_text';
  57. $lbl_local_nascto->class='lbl_text';
  58. $lbl_data_nascto->class='lbl_text';
  59. $lbl_cpf->class='lbl_text';
  60. $lbl_rg->class='lbl_text';
  61. $lbl_ctps->class='lbl_text';
  62. $lbl_nome_mae->class='lbl_text';
  63. $lbl_nome_pai->class='lbl_text';
  64. $lbl_estado_civil->class='lbl_text';
  65. $lbl_grau_instrucao->class='lbl_text';
  66. $lbl_genero->class='lbl_text';
  67. $lbl_conjuge->class='lbl_text';
  68. $lbl_id->setSize('6%');
  69. $label_nome->setSize('41%');
  70. $lbl_local_nascto->setSize('41%');
  71. $lbl_data_nascto->setSize('12%');
  72. $lbl_cpf->setSize('12%');
  73. $lbl_rg->setSize('13%');
  74. $lbl_ctps->setSize('13%');
  75. $lbl_estado_civil->setSize('23.5%');
  76. $lbl_genero->setSize('23.5%');
  77. $lbl_grau_instrucao->setSize('25%');
  78. $lbl_conjuge->setSize('28%');
  79. $lbl_nome_mae->setSize('47%');
  80. $lbl_nome_pai->setSize('50%');
  81. $id->setSize('6%');
  82. $nome->setSize('41%');
  83. $local_nascto->setSize('41%');
  84. $data_nascto->setSize('12%');
  85. $cpf->setSize('12%');
  86. $rg->setSize('13%');
  87. $ctps->setSize('13%');
  88. $estado_civil_id->setSize('23.5%');
  89. $genero_id->setSize('23.5%');
  90. $grau_instrucao->setSize('25%');
  91. $conjuge->setSize('28%');
  92. $nome_mae->setSize('47%');
  93. $nome_pai->setSize('53%');
  94. $this->form->addFields( [$lbl_id,$label_nome,$lbl_local_nascto,$lbl_data_nascto] );
  95. $this->form->addFields( [$id,$nome,$local_nascto,$data_nascto] );
  96. $this->form->addFields( [$lbl_estado_civil,$lbl_genero,$lbl_grau_instrucao,$lbl_conjuge] );
  97. $this->form->addFields( [$estado_civil_id,$genero_id,$grau_instrucao,$conjuge] );
  98. $this->form->addFields( [$lbl_nome_mae,$lbl_nome_pai] );
  99. $this->form->addFields( [$nome_mae,$nome_pai] );
  100. //dados correspondências
  101. $dados_endereco = new TLabel('Endereco');
  102. $dados_endereco->class ='lbl_titulo';
  103. $this->form->addContent( [$dados_endereco] );
  104. $frame_endereco = new TFrame('frame_endereco');
  105. $frame_endereco->style = 'margin-left:-1px;width:98.5%;float:left;display:table;';
  106. //$frame_endereco->setLegend('PessoaEndereco');
  107. // detail fields
  108. $this->fieldlist = new TFieldList('Lista_enderecos');
  109. $this->fieldlist->enableSorting();
  110. $frame_endereco->add($this->fieldlist);
  111. $this->form->addFields( [$frame_endereco] );
  112. $id_endereco = new TEntry('id_endereco[]');
  113. $this->cep = new TEntry('cep[]');
  114. $this->cep->setMask('00000-000');
  115. $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  116. $this->form->addField($this->cep);
  117. // $input_cep = new TAction(array($this,'onCep'));
  118. $this->cep->setExitAction(new TAction(array($this,'onCep')));
  119. $logradouro = new TEntry('logradouro[]');
  120. $numero = new TEntry('numero[]');
  121. $bairro = new TEntry('bairro[]');
  122. $cidade = new TEntry('cidade[]');
  123. $uf = new TEntry('uf[]');
  124. $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
  125. $complemento = new TEntry('complemento[]');
  126. $regiao_id = new TDBCombo('regiao_id[]','centinel','Regiao','id','descricao');
  127. $this->fieldlist->addField( '<span class = "lbl_text">#</span>', $id_endereco);
  128. $this->fieldlist->addField( '<span class = "lbl_text">Cep</span>', $this->cep);
  129. $this->fieldlist->addField( '<span class = "lbl_text">Logradouro</span>', $logradouro);
  130. $this->fieldlist->addField( '<span class = "lbl_text">Número<span/>', $numero);
  131. $this->fieldlist->addField( '<span class = "lbl_text">Tipo Endereco</span>', $tipo_endereco_id);
  132. $this->fieldlist->addField( '<span class = "lbl_text">Bairro</span>', $bairro);
  133. $this->fieldlist->addField( '<span class = "lbl_text">Cidade</span>', $cidade);
  134. $this->fieldlist->addField( '<span class = "lbl_text">UF</span>', $uf);
  135. $this->fieldlist->addField( '<span class = "lbl_text">Complemento</span>', $complemento);
  136. $this->fieldlist->addField( '<span class = "lbl_text">Região</span>', $regiao_id);
  137. $this->form->addField($id_endereco);
  138. $this->form->addField($logradouro);
  139. $this->form->addField($numero);
  140. $this->form->addField($bairro);
  141. $this->form->addField($tipo_endereco_id);
  142. $this->form->addField($cidade);
  143. $this->form->addField($uf);
  144. $this->form->addField($complemento);
  145. $this->form->addField($regiao_id);
  146. $id_endereco->setSize('30');
  147. $this->cep->setSize('70');
  148. $logradouro->setSize('160');
  149. $bairro->setSize('140');
  150. $cidade->setSize('140');
  151. $uf->setSize('40');
  152. $numero->setSize('70');
  153. $complemento->setSize('150');
  154. $tipo_endereco_id->setSize('100');
  155. //Relação de dependentes
  156. $dados_dependente = new TLabel('Dependentes');
  157. $dados_dependente->class ='lbl_titulo';
  158. $this->form->addContent( [$dados_dependente] );
  159. $frame_dependentes = new TFrame('frame_dependentes');
  160. $frame_dependentes->style = 'margin-left:-1px;width:98.5%;float:left;display:table;';
  161. //$frame_endereco->setLegend('Dependentes');
  162. // detail fields
  163. $this->dependenteList = new TFieldList('Lista_dependentes');
  164. $this->dependenteList->enableSorting();
  165. $nome_dependente = new TEntry('txt_nome[]');
  166. $nascimento_dependente = new TEntry('txt_nascimento[]');
  167. $grau_parentesco_dependente = new TEntry('txt_grau_parentesco[]');
  168. $this->dependenteList->addField( '<span class = "lbl_text">Nome</span>', $nome_dependente);
  169. $this->dependenteList->addField( '<span class = "lbl_text">Data Nascimento</span>',$nascimento_dependente);
  170. $this->dependenteList->addField( '<span class = "lbl_text">Grau Parentesco</span>', $grau_parentesco_dependente);
  171. $frame_dependentes->add($this->dependenteList);
  172. $this->form->addFields( [$frame_dependentes] );
  173. $this->form->addField($nome_dependente);
  174. $this->form->addField($nascimento_dependente);
  175. $this->form->addField($grau_parentesco_dependente);
  176. $this->form->addAction('Salvar',new TAction(array($this, 'onSave')),'fa:save blue');
  177. $this->form->addAction('Listar',new TAction(array('CarregaCliente','show')),'fa:table blue');
  178. // create the page container
  179. $container = new TVBox;
  180. $container->style = 'width: 100%';
  181. //$container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  182. $container->add($this->form);
  183. parent::add($container);
  184. }
  185. public function onSave($param){
  186. }
  187. /**
  188. * Executed whenever the user clicks at the edit button da datagrid
  189. */
  190. function onEdit($param)
  191. {
  192. try
  193. {
  194. TTransaction::open('centinel');
  195. if (isset($param['key']))
  196. {
  197. $key = $param['key'];
  198. $funcionario = Funcionario::find($key);
  199. if($funcionario)
  200. {
  201. $this->form->setData($funcionario);
  202. $funcionario->nome = $funcionario->pessoa->nome;
  203. $funcionario->data_nascimento = TDate::date2br($funcionario->pessoa->data_nascimento);
  204. $pessoa_endereco = $funcionario->get_pessoa()->getPessoaEndereco();
  205. $this->fieldlist->addHeader();
  206. if ($pessoa_endereco)
  207. {
  208. foreach($pessoa_endereco as $enderecos )
  209. {
  210. $this->fieldlist->addDetail($enderecos);
  211. }
  212. $this->fieldlist->addCloneAction();
  213. }
  214. else
  215. {
  216. $this->onClear($param);
  217. }
  218. }
  219. TTransaction::close(); // close transaction
  220. }
  221. }
  222. catch (Exception $e) // in case of exception
  223. {
  224. new TMessage('error', $e->getMessage());
  225. TTransaction::rollback();
  226. }
  227. }
  228. public function onClear($param)
  229. {
  230. $this->fieldlist->addHeader();
  231. $this->fieldlist->addDetail( new stdClass );
  232. $this->fieldlist->addCloneAction();
  233. }
  234. //method onCep()
  235. public static function onCep($param)
  236. {
  237. $endereco_cep = $param['_field_id'];
  238. $cep_endereco = $param['_field_value'];
  239. $endereco_cep = explode('_', $endereco_cep);
  240. $unique_id = end($endereco_cep);
  241. $retorno = Endereco::BuscaCepWeb($cep_endereco);
  242. if (!empty($retorno))
  243. {
  244. $response = new stdClass;
  245. $response->{'id_endereco_'.$unique_id} = $retorno['id'];
  246. $response->{'logradouro_'.$unique_id} = $retorno['logradouro'];
  247. $response->{'bairro_'.$unique_id} = $retorno['bairro'];
  248. $response->{'cidade_'.$unique_id} = $retorno['localidade'];
  249. $response->{'uf_'.$unique_id} = $retorno['uf'];
  250. //$response->{'ibge_'}.$unique_id = strtoupper( $retorno['ibge']);
  251. //$response->{'gia'}.$unique_id = strtoupper( $retorno['gia']);
  252. TForm::sendData('frm_funcionario', $response);
  253. TScript::create('$("input[name=numero]").focus();');
  254. }
  255. else
  256. {
  257. $endereco = Endereco::BuscaCepBanco($cep_endereco);
  258. if($endereco)
  259. {
  260. $retorno = new stdClass;
  261. $retorno->{'id_endereco_'.$unique_id} = $endereco['id'];
  262. $retorno->{'logradouro_'.$unique_id} = $endereco['logradouro'];
  263. $retorno->{'bairro_'.$unique_id} = $endereco['bairro'];
  264. $retorno->{'cidade_'.$unique_id} = $endereco['cidade'];
  265. $retorno->{'uf_'.$unique_id} = $endereco['uf'];
  266. //$retorno->{'ibge_'}.$unique_id = $endereco['ibge'];
  267. //$retorno->{'gia'}.$unique_id = $endereco['gia'];
  268. TForm::sendData('frm_funcionario', $retorno);
  269. TScript::create('$("input[name=numero]").focus();');
  270. }
  271. else
  272. {
  273. new TMessage("error", "CEP - Em Branco ou Inválido");
  274. }
  275. }
  276. }
  277. }
  278. ?>


Desde já obrigado.

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


RB

Pessoal, Resolvido.

Estava esquecendo de adicionar no onClear().

segue código abaixo.

 
  1. <?php
  2. public function onClear($param)
  3. {
  4. //endereços
  5. $this->fieldlist->addHeader();
  6. $this->fieldlist->addDetail( new stdClass );
  7. $this->fieldlist->addCloneAction();
  8. //dependentes
  9. $this->dependenteList->addHeader();
  10. $this->dependenteList->addDetail( new stdClass );
  11. $this->dependenteList->addCloneAction();
  12. }
  13. ?>