Fatal error: Call to a member function format() Boa tarde, Estou encontrando esse erro, mas estranho que estava funcionando e por algum motivo não está mais funcionando, a mensagem de erro completa é essa: A linha citada no erro contém o seguinte código: ...
EZ
Fatal error: Call to a member function format()  
Boa tarde,

Estou encontrando esse erro, mas estranho que estava funcionando e por algum motivo não está mais funcionando, a mensagem de erro completa é essa:

 
  1. <?php
  2. Fatal error: Call to a member function format() on boolean in C:\xampp\htdocs\crescer2\app\control\secretaria\TbPessoasForm3.class.php on line 895
  3. ?>


A linha citada no erro contém o seguinte código:

 
  1. <?php
  2. $pessoa->data_nascimento = DateTime::createFromFormat('d/m/Y', $pessoa->data_nascimento)->format('Y-m-d');
  3. ?>


uso esse recurso para gravar a data no banco no formato correto...

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


IF

Olá Edson, quando declarar o seu campo, tenta usar esse recurso do Adianti:
 
  1. <?php
  2. $data_nascimento = new Date('data_nascimento');
  3. $data_nascimento->setMask('dd/mm/yyyy'); //Seta a máscara
  4. $data_nascimento->setDatabaseMask('yyyy-mm-dd'); // Transforma a data na hora de salvar.
  5. ?>


O setDatabaseMask transforma a data automaticamente na hora de salvar o registro, sem precisar fazer isso na mão.
EZ

Boa Noite,

Então...eu sei dessa forma de utilizar, só fiz dessa forma devido a esse post:

www.adianti.com.br/forum/pt/view_2287?conversao-de-datas-e-valores-m

Vou tentar fazer como você sugeriu então.

Obrigado!
MG

Depende da versão do PHP que esteja usando.
Seu php deve ser (PHP 5 >= 5.2.0, PHP 7)
EZ

Bom dia,

Deu certo...obrigado!
Estou usando a versão do PHP 5.6.30

Grato
MG

Pela especificação do manual, diz que maior que 5,2, mas na realidade não funciona!
Na 7 funciona direito.
Fico feliz que tenha conseguido.
Abraços
EZ

Então,

Fui enganado...kkkk....como não deu erro achei que tinha dado certo, mas se eu uso setDatabaseMask não grava nada no campo data_nascimento da tabela...
IF

Posta o código pra gente dar uma olhada, pois eu uso essa função com PHP 5.6.10 e funciona normalmente
EZ

ok,

Vou postar mas é grande o trem...

 
  1. <?php
  2. class TbPessoasForm3 extends TPage
  3. {
  4. private $form; // form
  5. private $table_contatos;
  6. private $table_cursos;
  7. private $table_batismo;
  8. private $table_documentos;
  9. private $table_dependentes;
  10. private $table_formacao;
  11. private $table_habilidades;
  12. private $table_idiomas;
  13. private $table_profissoes;
  14. function __construct()
  15. {
  16. parent::__construct();
  17. // creates the form
  18. $this->form = new BootstrapFormBuilder('form_TbPessoas');
  19. $this->form->setFormTitle('Cadastro de Pessoas');
  20. $id = new TEntry('id');
  21. $nome = new TEntry('nome');
  22. $sobrenome = new TEntry('sobrenome');
  23. $sexo = new TRadioGroup('sexo');
  24. $tratamento = new TEntry('tratamento');
  25. $id_celula = new TEntry('id_celula');
  26. $estado_civil = new TDBCombo('estado_civil','crescer','EstadoCivil','ec_id','ec_nome');
  27. $email = new TEntry('email');
  28. $fone = new TEntry('fone');
  29. $celular = new TEntry('celular');
  30. $naturalidade_uf = new TDBCombo('naturalidade_uf','crescer','Estados','uf_id','uf_uf');
  31. $naturalidade_municipio = new TEntry('naturalidade_municipio');
  32. $data_nascimento = new TDate('data_nascimento');
  33. $end_uf = new TDBCombo('end_uf','crescer','Estados','uf_id','uf_uf');
  34. $end_municipio = new TEntry('end_municipio');
  35. $end_cep = new TEntry('end_cep');
  36. $end_bairro = new TEntry('end_bairro');
  37. $end_endereco = new TEntry('end_endereco');
  38. $end_complemento = new TEntry('end_complemento');
  39. $end_latitude = new TEntry('end_latitude');
  40. $end_longitude = new TEntry('end_longitude');
  41. $inf_adic = new TEntry('inf_adic');
  42. $c_pastor = new TRadioGroup('c_pastor');
  43. $c_discipulador = new TRadioGroup('c_discipulador');
  44. $c_lider_celula = new TRadioGroup('c_lider_celula');
  45. $c_lider_treinamento = new TRadioGroup('c_lider_treinamento');
  46. $c_obreiro = new TRadioGroup('c_obreiro');
  47. $c_tipo = new TDBCombo('c_tipo','crescer','TbPessoasTipo','pt_id','pt_nome');
  48. $c_data_cadastro = new TDate('c_data_cadastro');
  49. $c_dizimista = new TRadioGroup('c_dizimista');
  50. $cons_semana1 = new TRadioGroup('cons_semana1');
  51. $cons_semana2 = new TRadioGroup('cons_semana2');
  52. $cons_semana3 = new TRadioGroup('cons_semana3');
  53. $cons_semana4 = new TRadioGroup('cons_semana4');
  54. $cons_semana5 = new TRadioGroup('cons_semana5');
  55. $cons_semana6 = new TRadioGroup('cons_semana6');
  56. $cons_semana7 = new TRadioGroup('cons_semana7');
  57. $cons_semana8 = new TRadioGroup('cons_semana8');
  58. $cons_semana9 = new TRadioGroup('cons_semana9');
  59. $cons_semana10 = new TRadioGroup('cons_semana10');
  60. $cons_semana11 = new TRadioGroup('cons_semana11');
  61. $cons_semana12 = new TRadioGroup('cons_semana12');
  62. $nome_anjo = new TEntry('nome_anjo');
  63. $sexo->setUseButton();
  64. $c_pastor->setUseButton();
  65. $c_discipulador->setUseButton();
  66. $c_lider_celula->setUseButton();
  67. $c_lider_treinamento->setUseButton();
  68. $c_obreiro->setUseButton();
  69. $c_dizimista->setUseButton();
  70. $cons_semana1->setUseButton();
  71. $cons_semana2->setUseButton();
  72. $cons_semana3->setUseButton();
  73. $cons_semana4->setUseButton();
  74. $cons_semana5->setUseButton();
  75. $cons_semana6->setUseButton();
  76. $cons_semana7->setUseButton();
  77. $cons_semana8->setUseButton();
  78. $cons_semana9->setUseButton();
  79. $cons_semana10->setUseButton();
  80. $cons_semana11->setUseButton();
  81. $cons_semana12->setUseButton();
  82. $sexos = array();
  83. $sexos['f'] = 'Feminino';
  84. $sexos['m'] = 'Masculino';
  85. $itens = [];
  86. $itens['s'] = 'Sim';
  87. $itens['n'] = 'Não';
  88. $sexo->addItems($sexos);
  89. $c_pastor->addItems($itens);
  90. $c_discipulador->addItems($itens);
  91. $c_lider_celula->addItems($itens);
  92. $c_lider_treinamento->addItems($itens);
  93. $c_obreiro->addItems($itens);
  94. $c_dizimista->addItems($itens);
  95. $cons_semana1->addItems($itens);
  96. $cons_semana2->addItems($itens);
  97. $cons_semana3->addItems($itens);
  98. $cons_semana4->addItems($itens);
  99. $cons_semana5->addItems($itens);
  100. $cons_semana6->addItems($itens);
  101. $cons_semana7->addItems($itens);
  102. $cons_semana8->addItems($itens);
  103. $cons_semana9->addItems($itens);
  104. $cons_semana10->addItems($itens);
  105. $cons_semana11->addItems($itens);
  106. $cons_semana12->addItems($itens);
  107. $c_data_cadastro->setValue(date('d/m/Y'));
  108. //mascaras
  109. $fone->setMask('(99)9999-9999');
  110. $celular->setMask('(99)99999-9999');
  111. $data_nascimento->setMask('dd/mm/yyyy');
  112. $c_data_cadastro->setMask('dd/mm/yyyy');
  113. $end_cep->setMask('99.999-999');
  114. $data_nascimento->setDatabaseMask('yyyy-mm-dd');
  115. $c_data_cadastro->setDatabaseMask('yyyy-mm-dd');
  116. $sexo->setLayout('horizontal');
  117. $c_pastor->setLayout('horizontal');
  118. $c_discipulador->setLayout('horizontal');
  119. $c_lider_celula->setLayout('horizontal');
  120. $c_lider_treinamento->setLayout('horizontal');
  121. $c_obreiro->setLayout('horizontal');
  122. $c_dizimista->setLayout('horizontal');
  123. $cons_semana1->setLayout('horizontal');
  124. $cons_semana2->setLayout('horizontal');
  125. $cons_semana3->setLayout('horizontal');
  126. $cons_semana4->setLayout('horizontal');
  127. $cons_semana5->setLayout('horizontal');
  128. $cons_semana6->setLayout('horizontal');
  129. $cons_semana7->setLayout('horizontal');
  130. $cons_semana8->setLayout('horizontal');
  131. $cons_semana9->setLayout('horizontal');
  132. $cons_semana10->setLayout('horizontal');
  133. $cons_semana11->setLayout('horizontal');
  134. $cons_semana12->setLayout('horizontal');
  135. $id->setEditable(FALSE);
  136. $this->form->appendPage('Principal');
  137. $this->form->addFields( [ new TLabel('Id') ], [ $id ], [ new TLabel('Tipo')], [ $c_tipo ] );
  138. $this->form->addFields( [ new TLabel('Tratamento')], [ $tratamento ] );
  139. $this->form->addFields( [ new TLabel('Nome') ], [ $nome ], [ new TLabel('Sobrenome') ], [ $sobrenome ] );
  140. $this->form->addFields( [ new Tlabel('Sexo')], [ $sexo ], [ new TLabel('Estado Civil')], [ $estado_civil ] );
  141. $this->form->addFields( [ new TLabel('e-mail')], [ $email ] );
  142. $this->form->addFields( [ new TLabel('Telefone')], [ $fone ], [ new TLabel('Celular')], [ $celular ] );
  143. $this->form->addFields( [ new TLabel('Naturalidade')], [ $naturalidade_municipio ],[ new TLabel('Naturalidade UF')], [ $naturalidade_uf ]);
  144. $this->form->addFields( [ new TLabel('Data Nascimento')], [ $data_nascimento ]);
  145. $this->form->addFields( [ new TLabel('Cidade')], [ $end_municipio ], [ new TLabel('UF')], [ $end_uf ]);
  146. $this->form->addFields( [ new TLabel('CEP')], [ $end_cep ],[ new TLabel('Bairro')], [ $end_bairro ]);
  147. $this->form->addFields( [ new TLabel('Endereço')], [ $end_endereco ],[ new TLabel('Complemento')], [ $end_complemento ]);
  148. $this->form->addFields( [ new TLabel('Latitude')], [ $end_latitude ],[ new TLabel('Longitude')], [ $end_longitude ]);
  149. $this->form->addFields( [ new TLabel('Inf. Adicionais')], [ $inf_adic ],[ new TLabel('Dizimista')], [ $c_dizimista ]);
  150. $this->form->appendPage('Informações Eclesiásticas');
  151. $this->form->addFields( [ new TLabel('Pastor')], [ $c_pastor ]);
  152. $this->form->addFields( [ new TLabel('Discipulador')], [ $c_discipulador ]);
  153. $this->form->addFields( [ new TLabel('Célula')], [ $c_lider_celula ]);
  154. $this->form->addFields( [ new TLabel('Líder Treinamento')],[ $c_lider_treinamento ]);
  155. $this->form->addFields( [ new TLabel('Obreiro')], [ $c_obreiro ]);
  156. $this->form->addFields( [ new TLabel('Data Cadastro')], [ $c_data_cadastro ]);
  157. $this->form->appendPage('Consolidação');
  158. $this->form->addFields( [ new TLabel('Semana 1')], [ $cons_semana1 ]);
  159. $this->form->addFields( [ new TLabel('Semana 2')], [ $cons_semana2 ]);
  160. $this->form->addFields( [ new TLabel('Semana 3')], [ $cons_semana3 ]);
  161. $this->form->addFields( [ new TLabel('Semana 4')], [ $cons_semana4 ]);
  162. $this->form->addFields( [ new TLabel('Semana 5')], [ $cons_semana5 ]);
  163. $this->form->addFields( [ new TLabel('Semana 6')], [ $cons_semana6 ]);
  164. $this->form->addFields( [ new TLabel('Semana 7')], [ $cons_semana7 ]);
  165. $this->form->addFields( [ new TLabel('Semana 8')], [ $cons_semana8 ]);
  166. $this->form->addFields( [ new TLabel('Semana 9')], [ $cons_semana9 ]);
  167. $this->form->addFields( [ new TLabel('Semana 10')], [ $cons_semana10 ]);
  168. $this->form->addFields( [ new TLabel('Semana 11')], [ $cons_semana11 ]);
  169. $this->form->addFields( [ new TLabel('Semana 12')], [ $cons_semana12 ]);
  170. $this->form->addFields( [ new TLabel('Anjo')], [ $nome_anjo ]);
  171. $this->form->appendPage('Contatos');
  172. $this->table_contatos = new TTable;
  173. $this->table_contatos->addSection('thead');
  174. $this->table_contatos->addRowSet( new TLabel('Telefone', '#8082C3',10, 'b'),
  175. new TLabel('Tipo', '#8082C3',10, 'b'),
  176. new TLabel('Operadora', '#8082C3',10, 'b'),
  177. new TLabel('e-mail', '#8082C3',10, 'b'),
  178. new TLabel('Inf. Adicionais', '#8082C3',10, 'b')
  179. );
  180. $this->form->addContent( [ new TLabel('Contatos') ], [ $this->table_contatos ] );
  181. $this->form->appendPage('Cursos');
  182. $this->table_cursos = new TTable;
  183. $this->table_cursos->addSection('thead');
  184. $this->table_cursos->addRowSet( new TLabel('Curso', '#8082C3',10, 'b'),
  185. new TLabel('Carga Horária', '#8082C3',10, 'b'),
  186. new TLabel('Local', '#8082C3',10, 'b'),
  187. new TLabel('Inf. Adicionais', '#8082C3',10, 'b')
  188. );
  189. $this->form->addContent( [ new TLabel('Cursos') ], [ $this->table_cursos ] );
  190. $this->form->appendPage('Batismos');
  191. $this->table_batismo = new TTable;
  192. $this->table_batismo->addSection('thead');
  193. $this->table_batismo->addRowSet( new TLabel('Data', '#8082C3',10, 'b'),
  194. new TLabel('Cidade', '#8082C3',10, 'b'),
  195. new TLabel('UF', '#8082C3',10, 'b'),
  196. new TLabel('Igreja', '#8082C3',10, 'b') );
  197. $this->form->addContent( [ new TLabel('Batismo') ], [ $this->table_batismo ] );
  198. $this->form->appendPage('Documentos');
  199. $this->table_documentos = new TTable;
  200. $this->table_documentos->addSection('thead');
  201. $this->table_documentos->addRowSet( new TLabel('CPF', '#8082C3',10, 'b'),
  202. new TLabel('RG', '#8082C3',10, 'b'),
  203. new TLabel('Orgão Emissor', '#8082C3',10, 'b'),
  204. new TLabel('UF', '#8082C3',10, 'b'),
  205. new TLabel('Data Emissão', '#8082C3',10, 'b')
  206. );
  207. $this->form->addContent([ new TLabel('Documentos') ],[ $this->table_documentos ]);
  208. $this->form->appendPage('Dependentes');
  209. $this->table_dependentes = new TTable;
  210. $this->table_dependentes->addSection('thead');
  211. $this->table_dependentes->addRowSet( new TLabel('Dependente', '#8082C3',10, 'b'),
  212. new TLabel('Gráu', '#8082C3',10, 'b'),
  213. new TLabel('Ind. Adicional', '#8082C3',10, 'b')
  214. );
  215. $this->form->addContent([ new TLabel('Dependentes') ],[ $this->table_dependentes ]);
  216. $this->form->appendPage('Formação Acadêmica');
  217. $this->table_formacao = new TTable;
  218. $this->table_formacao->addSection('thead');
  219. $this->table_formacao->addRowSet( new TLabel('Descrição', '#8082C3',10, 'b'),
  220. new TLabel('Data Conclusão', '#8082C3',10, 'b'),
  221. new TLabel('Ind. Adicional', '#8082C3',10, 'b')
  222. );
  223. $this->form->addContent([ new TLabel('Formação') ],[ $this->table_formacao ]);
  224. $this->form->appendPage('Habilidades');
  225. $this->table_habilidades = new TTable;
  226. $this->table_habilidades->addSection('thead');
  227. $this->table_habilidades->addRowSet( new TLabel('Descrição', '#8082C3',10, 'b'),
  228. new TLabel('Ind. Adicional', '#8082C3',10, 'b')
  229. );
  230. $this->form->addContent([ new TLabel('Habilidades') ],[ $this->table_habilidades ]);
  231. $this->form->appendPage('Idiomas');
  232. $this->table_idiomas = new TTable;
  233. $this->table_idiomas->addSection('thead');
  234. $this->table_idiomas->addRowSet( new TLabel('Idioma', '#8082C3',10, 'b'),
  235. new TLabel('Nível de Leitura', '#8082C3',10, 'b'),
  236. new TLabel('Nível de Escrita', '#8082C3',10, 'b'),
  237. new TLabel('Nível de Conversação', '#8082C3',10, 'b')
  238. );
  239. $this->form->addContent([ new TLabel('Idiomas') ],[ $this->table_idiomas ]);
  240. $this->form->appendPage('Profissional');
  241. $this->table_profissoes = new TTable;
  242. $this->table_profissoes->addSection('thead');
  243. $this->table_profissoes->addRowSet( new TLabel('Cargo', '#8082C3',10, 'b'),
  244. new TLabel('Profissão', '#8082C3',10, 'b'),
  245. new TLabel('Empresa', '#8082C3',10, 'b'),
  246. new TLabel('Telefone', '#8082C3',10, 'b'),
  247. new TLabel('e-mail', '#8082C3',10, 'b')
  248. );
  249. $this->form->addContent([ new TLabel('Profissional') ],[ $this->table_profissoes ]);
  250. $this->form->addAction( 'Save', new TAction(array($this, 'onSave')), 'fa:save green' );
  251. $this->form->addAction( 'Clear', new TAction(array($this, 'onClear')), 'fa:eraser red' );
  252. $container = new TVBox;
  253. $container->style = 'width: 100%';
  254. $container->add($this->form);
  255. // add the form inside the page
  256. parent::add($container);
  257. }
  258. /**
  259. * add profissoes row
  260. */
  261. public function addProfissaoRow($profissao)
  262. {
  263. $uniqid = mt_rand(1000000, 9999999);
  264. $prof_id = new THidden('prof_id[]');
  265. $prof_id->setId('prof_id_'.$uniqid);
  266. if (!empty($profissao->id))
  267. {
  268. $prof_id->setValue( $profissao->prof_id );
  269. }
  270. $prof_cargo = new TEntry('prof_cargo[]');
  271. $prof_cargo->setId('prof_cargo_'.$uniqid);
  272. $prof_cargo->setSize(120);
  273. if (!empty($profissao->prof_cargo))
  274. {
  275. $prof_cargo->setValue( $profissao->prof_cargo );
  276. }
  277. $prof_profissao = new TEntry('prof_profissao[]');
  278. $prof_profissao->setId('prof_profissao_'.$uniqid);
  279. $prof_profissao->setSize(120);
  280. if (!empty($profissao->prof_profissao))
  281. {
  282. $prof_profissao->setValue( $profissao->prof_profissao );
  283. }
  284. $prof_empresa = new TEntry('prof_empresa[]');
  285. $prof_empresa->setId('prof_empresa_'.$uniqid);
  286. $prof_empresa->setSize(120);
  287. if (!empty($profissao->prof_empresa))
  288. {
  289. $prof_empresa->setValue( $profissao->prof_empresa );
  290. }
  291. $prof_telefone = new TEntry('prof_telefone[]');
  292. $prof_telefone->setId('prof_telefone_'.$uniqid);
  293. $prof_telefone->setSize(120);
  294. if (!empty($profissao->prof_telefone))
  295. {
  296. $prof_telefone->setValue( $profissao->prof_telefone );
  297. }
  298. $prof_email = new TEntry('prof_email[]');
  299. $prof_email->setId('prof_email_'.$uniqid);
  300. $prof_email->setSize(120);
  301. if (!empty($profissao->prof_email))
  302. {
  303. $prof_email->setValue( $profissao->prof_email );
  304. }
  305. // create delete button
  306. $del = new TImage('fa:trash-o red');
  307. $del->onclick = 'ttable_remove_row(this)';
  308. $row = $this->table_profissoes->addRowSet( $prof_cargo, $prof_profissao, $prof_empresa, $prof_telefone, $prof_email, $prof_id, $del );
  309. $this->form->addField($prof_id);
  310. }
  311. /**
  312. * add idiomas row
  313. */
  314. public function addIdiomaRow($idioma)
  315. {
  316. $uniqid = mt_rand(1000000, 9999999);
  317. $pi_id = new THidden('pi_id[]');
  318. $pi_id->setId('pi_id_'.$uniqid);
  319. if (!empty($idioma->id))
  320. {
  321. $pi_id->setValue( $idioma->pi_id );
  322. }
  323. $pi_idioma = new TEntry('pi_idioma[]');
  324. $pi_idioma->setId('ph_idioma_'.$uniqid);
  325. $pi_idioma->setSize(120);
  326. if (!empty($idioma->pi_idioma))
  327. {
  328. $pi_idioma->setValue( $idioma->pi_idioma );
  329. }
  330. $pi_nivel_leitura = new TEntry('pi_nivel_leitura[]');
  331. $pi_nivel_leitura->setId('pi_nivel_leitura_'.$uniqid);
  332. $pi_nivel_leitura->setSize(120);
  333. if (!empty($idioma->pi_nivel_leitura))
  334. {
  335. $pi_nivel_leitura->setValue( $idioma->pi_nivel_leitura );
  336. }
  337. $pi_nivel_escrita = new TEntry('pi_nivel_escrita[]');
  338. $pi_nivel_escrita->setId('pi_nivel_escrita_'.$uniqid);
  339. $pi_nivel_escrita->setSize(120);
  340. if (!empty($idioma->pi_nivel_escrita))
  341. {
  342. $pi_nivel_escrita->setValue( $idioma->pi_nivel_escrita );
  343. }
  344. $pi_nivel_conversacao = new TEntry('pi_nivel_conversacao[]');
  345. $pi_nivel_conversacao->setId('pi_nivel_conversacao_'.$uniqid);
  346. $pi_nivel_conversacao->setSize(120);
  347. if (!empty($idioma->pi_nivel_conversacao))
  348. {
  349. $pi_nivel_conversacao->setValue( $idioma->pi_nivel_conversacao );
  350. }
  351. // create delete button
  352. $del = new TImage('fa:trash-o red');
  353. $del->onclick = 'ttable_remove_row(this)';
  354. $row = $this->table_idiomas->addRowSet( $pi_idioma, $pi_nivel_leitura, $pi_nivel_escrita, $pi_nivel_conversacao, $pi_id , $del );
  355. $this->form->addField($pi_id);
  356. }
  357. /**
  358. * add habilidades row
  359. */
  360. public function addHabilidadeRow($habilidade)
  361. {
  362. $uniqid = mt_rand(1000000, 9999999);
  363. $ph_id = new THidden('ph_id[]');
  364. $ph_id->setId('ph_id_'.$uniqid);
  365. if (!empty($habilidade->id))
  366. {
  367. $ph_id->setValue( $habilidade->ph_id );
  368. }
  369. $ph_habilidade = new TEntry('ph_habilidade[]');
  370. $ph_habilidade->setId('ph_habilidade_'.$uniqid);
  371. $ph_habilidade->setSize(120);
  372. if (!empty($habilidade->ph_habilidade))
  373. {
  374. $ph_habilidade->setValue( $habilidade->ph_habilidade );
  375. }
  376. $ph_inf_adic = new TEntry('ph_inf_adic[]');
  377. $ph_inf_adic->setId('ph_inf_adic_'.$uniqid);
  378. $ph_inf_adic->setSize(120);
  379. if (!empty($habilidade->ph_habilidade))
  380. {
  381. $ph_inf_adic->setValue( $habilidade->ph_inf_adic );
  382. }
  383. // create delete button
  384. $del = new TImage('fa:trash-o red');
  385. $del->onclick = 'ttable_remove_row(this)';
  386. $row = $this->table_habilidades->addRowSet( $ph_habilidade, $ph_inf_adic, $ph_id , $del );
  387. $this->form->addField($ph_id);
  388. }
  389. /**
  390. * Add formacao row
  391. */
  392. public function addFormacaoRow($formacao)
  393. {
  394. $uniqid = mt_rand(1000000, 9999999);
  395. $pf_id = new THidden('pf_id[]');
  396. $pf_id->setId('pf_id_'.$uniqid);
  397. if (!empty($formacao->id))
  398. {
  399. $pf_id->setValue( $formacao->pf_id );
  400. }
  401. $pf_formacao = new TEntry('pf_formacao[]');
  402. $pf_formacao->setId('pf_formacao_'.$uniqid);
  403. $pf_formacao->setSize(120);
  404. if (!empty($formacao->pf_formacao))
  405. {
  406. $pf_formacao->setValue( $formacao->pf_formacao );
  407. }
  408. $pf_data = new TDate('pf_data[]');
  409. $pf_data->setId('pf_data_'.$uniqid);
  410. $pf_data->setSize(120);
  411. if (!empty($formacao->pf_data))
  412. {
  413. $pf_data->setValue( $formacao->pf_data );
  414. }
  415. $pf_inf_adic = new TEntry('pf_inf_adic[]');
  416. $pf_inf_adic->setId('pf_inf_adic_'.$uniqid);
  417. $pf_inf_adic->setSize(120);
  418. if (!empty($formacao->pf_inf_adic))
  419. {
  420. $pf_inf_adic->setValue( $formacao->pf_inf_adic );
  421. }
  422. // create delete button
  423. $del = new TImage('fa:trash-o red');
  424. $del->onclick = 'ttable_remove_row(this)';
  425. $row = $this->table_formacao->addRowSet( $pf_formacao, $pf_data, $pf_inf_adic, $pf_id , $del );
  426. $this->form->addField($pf_id);
  427. }
  428. /**
  429. * Add dependentes row
  430. */
  431. public function addDependenteRow($dependente)
  432. {
  433. $uniqid = mt_rand(1000000, 9999999);
  434. $pde_id = new THidden('pde_id[]');
  435. $pde_id->setId('pd_id_'.$uniqid);
  436. if (!empty($dependente->id))
  437. {
  438. $pde_id->setValue( $dependente->pde_id );
  439. }
  440. $pde_pessoa_dep = new TDBCombo('pde_pessoa_dep[]','crescer','TbPessoas','id','nome','sobrenome');
  441. $pde_pessoa_dep->setId('pde_pessoa_dep_'.$uniqid);
  442. $pde_pessoa_dep->setSize(120);
  443. if (!empty($dependente->pde_pessoa_dep))
  444. {
  445. $pde_pessoa_dep->setValue( $dependente->pde_pessoa_dep );
  446. }
  447. $pde_grau_parentesco = new TEntry('pde_grau_parentesco[]');
  448. $pde_grau_parentesco->setId('pde_grau_parentesco_'.$uniqid);
  449. $pde_grau_parentesco->setSize(120);
  450. if (!empty($dependente->pde_grau_parentesco))
  451. {
  452. $pde_grau_parentesco->setValue( $dependente->pde_grau_parentesco );
  453. }
  454. $pde_inf_adic = new TEntry('pde_inf_adic[]');
  455. $pde_inf_adic->setId('pde_inf_adic_'.$uniqid);
  456. $pde_inf_adic->setSize(120);
  457. if (!empty($dependente->pde_inf_adic))
  458. {
  459. $pde_inf_adic->setValue( $dependente->pde_inf_adic );
  460. }
  461. // create delete button
  462. $del = new TImage('fa:trash-o red');
  463. $del->onclick = 'ttable_remove_row(this)';
  464. $row = $this->table_dependentes->addRowSet( $pde_pessoa_dep, $pde_grau_parentesco, $pde_inf_adic, $pde_id , $del );
  465. $this->form->addField($pde_id);
  466. }
  467. /**
  468. * Add documentos row
  469. */
  470. public function addDocumentoRow($documento)
  471. {
  472. $uniqid = mt_rand(1000000, 9999999);
  473. $pd_id = new THidden('pd_id[]');
  474. $pd_id->setId('pd_id_'.$uniqid);
  475. if (!empty($documento->id))
  476. {
  477. $pd_id->setValue( $documento->pd_id );
  478. }
  479. $pd_cpf = new TEntry('pd_cpf[]');
  480. $pd_cpf->setId('pd_cpf_'.$uniqid);
  481. $pd_cpf->setSize(120);
  482. if (!empty($documento->pd_cpf))
  483. {
  484. $pd_cpf->setValue( $documento->pd_cpf );
  485. }
  486. $pd_rg = new TEntry('pd_rg[]');
  487. $pd_rg->setId('pd_rg_'.$uniqid);
  488. $pd_rg->setSize(120);
  489. if (!empty($documento->pd_rg))
  490. {
  491. $pd_rg->setValue( $documento->pd_rg );
  492. }
  493. $pd_rg_orgao_emissor = new TEntry('pd_rg_orgao_emissor[]');
  494. $pd_rg_orgao_emissor->setId('pd_rg_orgao_emissor_'.$uniqid);
  495. $pd_rg_orgao_emissor->setSize(120);
  496. if (!empty($documento->pd_rg_orgao_emissor))
  497. {
  498. $pd_rg_orgao_emissor->setValue( $documento->pd_rg_orgao_emissor );
  499. }
  500. $pd_rg_uf = new TDBCombo('pd_rg_uf[]','crescer','Estados','uf_uf','uf_uf');
  501. $pd_rg_uf->setId('pd_rg_uf_'.$uniqid);
  502. $pd_rg_uf->setSize(120);
  503. if (!empty($documento->pd_rg_uf))
  504. {
  505. $pd_rg_uf->setValue( $documento->pd_rg_uf );
  506. }
  507. $pd_rg_dt_emissao = new TDate('pd_rg_dt_emissao[]');
  508. $pd_rg_dt_emissao->setId('pd_rg_dt_emissao_'.$uniqid);
  509. $pd_rg_dt_emissao->setSize(120);
  510. if(!empty($documento->pd_rg_dt_emissao))
  511. {
  512. $pd_rg_dt_emissao->setValue($documento->pd_rg_dt_emissao);
  513. }
  514. // create delete button
  515. $del = new TImage('fa:trash-o red');
  516. $del->onclick = 'ttable_remove_row(this)';
  517. $row = $this->table_documentos->addRowSet( $pd_cpf, $pd_rg, $pd_rg_orgao_emissor, $pd_rg_uf, $pd_rg_dt_emissao, $pd_id, $del );
  518. $this->form->addField($pd_id);
  519. }
  520. /**
  521. * Add batismos row
  522. */
  523. public function addBatismoRow($batismo)
  524. {
  525. $uniqid = mt_rand(1000000, 9999999);
  526. $bat_id = new THidden('bat_id[]');
  527. $bat_id->setId('bat_id_'.$uniqid);
  528. if (!empty($batismo->id))
  529. {
  530. $bat_id->setValue( $batismo->bat_id );
  531. }
  532. $bat_data = new TDate('bat_data[]');
  533. $bat_data->setId('bat_data_'.$uniqid);
  534. $bat_data->setSize(120);
  535. if (!empty($batismo->bat_data))
  536. {
  537. $bat_data->setValue( $batismo->bat_data );
  538. }
  539. $bat_cidade = new TEntry('bat_cidade[]');
  540. $bat_cidade->setId('bat_cidade_'.$uniqid);
  541. $bat_cidade->setSize(120);
  542. if (!empty($batismo->bat_cidade))
  543. {
  544. $bat_cidade->setValue( $batismo->bat_cidade );
  545. }
  546. $bat_uf = new TDBCombo('bat_uf[]','crescer','Estados','uf_uf','uf_uf');
  547. $bat_uf->setId('bat_uf_'.$uniqid);
  548. $bat_uf->setSize(120);
  549. if (!empty($batismo->bat_uf))
  550. {
  551. $bat_uf->setValue( $batismo->bat_uf );
  552. }
  553. $bat_igreja = new TEntry('bat_igreja[]');
  554. $bat_igreja->setId('bat_igreja_'.$uniqid);
  555. $bat_igreja->setSize(120);
  556. if (!empty($batismo->bat_igreja))
  557. {
  558. $bat_igreja->setValue( $batismo->bat_igreja );
  559. }
  560. // create delete button
  561. $del = new TImage('fa:trash-o red');
  562. $del->onclick = 'ttable_remove_row(this)';
  563. $row = $this->table_batismo->addRowSet( $bat_data, $bat_cidade, $bat_uf, $bat_igreja, $bat_id, $del );
  564. $this->form->addField($bat_id);
  565. }
  566. /**
  567. * Add cursos row
  568. */
  569. public function addCursoRow($curso)
  570. {
  571. $uniqid = mt_rand(1000000, 9999999);
  572. $pcu_id = new THidden('pcu_id[]');
  573. $pcu_id->setId('pcu_'.$uniqid);
  574. if (!empty($curso->pcu_id))
  575. {
  576. $pcu_id->setValue( $curso->pcu_id );
  577. }
  578. $pcu_curso = new TEntry('pcu_curso[]');
  579. $pcu_curso->setId('pcu_curso_'.$uniqid);
  580. $pcu_curso->setSize(120);
  581. if (!empty($curso->pcu_curso))
  582. {
  583. $pcu_curso->setValue( $curso->pcu_curso );
  584. }
  585. $pcu_carga_horaria = new TEntry('pcu_carga_horaria[]');
  586. $pcu_carga_horaria->setId('pcu_carga_horaria_'.$uniqid);
  587. $pcu_carga_horaria->setSize(120);
  588. if (!empty($curso->pcu_carga_horaria))
  589. {
  590. $pcu_carga_horaria->setValue( $curso->pcu_carga_horaria );
  591. }
  592. $pcu_local = new TEntry('pcu_local[]');
  593. $pcu_local->setId('pcu_local_'.$uniqid);
  594. $pcu_local->setSize(120);
  595. if (!empty($curso->pcu_local))
  596. {
  597. $pcu_local->setValue( $curso->pcu_local );
  598. }
  599. $pcu_inf_adic = new TEntry('pcu_inf_adic[]');
  600. $pcu_inf_adic->setId('pcu_inf_adic_'.$uniqid);
  601. $pcu_inf_adic->setSize(120);
  602. if (!empty($curso->pcu_inf_adic))
  603. {
  604. $pcu_inf_adic->setValue( $curso->pcu_inf_adic );
  605. }
  606. // create delete button
  607. $del = new TImage('fa:trash-o red');
  608. $del->onclick = 'ttable_remove_row(this)';
  609. $row = $this->table_cursos->addRowSet( $pcu_curso, $pcu_carga_horaria, $pcu_local, $pcu_inf_adic, $pcu_id, $del );
  610. $this->form->addField($pcu_id);
  611. }
  612. /**
  613. * Add contato row
  614. */
  615. public function addContatoRow($contato)
  616. {
  617. $uniqid = mt_rand(1000000, 9999999);
  618. $pc_id = new THidden('pc_id[]');
  619. $pc_id->setId('pc_'.$uniqid);
  620. if (!empty($contato->pc_id))
  621. {
  622. $pc_id->setValue( $contato->pc_id );
  623. }
  624. $pc_fone = new TEntry('pc_fone[]');
  625. $pc_fone->setValue('pc_fone_'.$uniqid);
  626. $pc_fone->setSize(120);
  627. if (!empty($contato->pc_fone))
  628. {
  629. $pc_fone->setValue( $contato->pc_fone );
  630. }
  631. $pc_tipo = new TEntry('pc_tipo[]');
  632. $pc_tipo->setId('pc_tipo_'.$uniqid);
  633. $pc_tipo->setSize(120);
  634. if (!empty($contato->pc_tipo))
  635. {
  636. $pc_tipo->setValue( $contato->pc_tipo );
  637. }
  638. $pc_operadora = new TEntry('pc_operadora[]');
  639. $pc_operadora->setId('pc_operadora__'.$uniqid);
  640. $pc_operadora->setSize(120);
  641. if (!empty($contato->pc_operadora))
  642. {
  643. $pc_operadora->setValue( $contato->pc_operadora );
  644. }
  645. $pc_email = new TEntry('pc_email[]');
  646. $pc_email->setId('pc_email_'.$uniqid);
  647. $pc_email->setSize(120);
  648. if (!empty($contato->pc_email))
  649. {
  650. $pc_email->setValue( $contato->pc_email );
  651. }
  652. $pc_inf_adic = new TEntry('pc_inf_adic[]');
  653. $pc_inf_adic->setId('pc_inf_adic_'.$uniqid);
  654. $pc_inf_adic->setSize(120);
  655. if (!empty($contato->pc_inf_adic))
  656. {
  657. $pc_inf_adic->setValue( $contato->pc_inf_adic );
  658. }
  659. // create delete button
  660. $del = new TImage('fa:trash-o red');
  661. $del->onclick = 'ttable_remove_row(this)';
  662. $row = $this->table_contatos->addRowSet( $pc_fone, $pc_tipo, $pc_operadora, $pc_email, $pc_inf_adic,$pc_id, $del );
  663. $this->form->addField($pc_id);
  664. }
  665. /**
  666. * method onSave
  667. * Executed whenever the user clicks at the save button
  668. */
  669. public static function onSave($param)
  670. {
  671. try
  672. {
  673. // open a transaction with database
  674. TTransaction::open('crescer');
  675. // read the form data and instantiates an Active Record
  676. $pessoa = new TbPessoas;
  677. $pessoa->id_igreja = TSession::getValue('igreja');
  678. $pessoa->fromArray( $param );
  679. $pessoa->clearParts();
  680. // AQUI CONVERSÃO PARA SALVAR OS DADOS
  681. //$pessoa->data_nascimento = DateTime::createFromFormat('d/m/Y', $pessoa->data_nascimento)->format('Y-m-d');
  682. //$pessoa->c_data_cadastro = DateTime::createFromFormat('Y-m-d', $pessoa->c_data_cadastro)->format('d/m/Y');
  683. if( !empty($param['pc_fone']) AND is_array($param['pc_fone']) )
  684. {
  685. foreach( $param['pc_fone'] as $row => $pc_fone)
  686. {
  687. if ($pc_fone)
  688. {
  689. $contato = new TbPessoasContatos;
  690. $contato->pc_pessoa = $pessoa->id;
  691. $contato->pc_fone = $pc_fone;
  692. $contato->pc_tipo = $param['pc_tipo'][$row];
  693. $contato->pc_operadora = $param['pc_operadora'][$row];
  694. $contato->pc_email = $param['pc_email'][$row];
  695. $contato->pc_inf_adic = $param['pc_inf_adic'][$row];
  696. $pessoa->addContato( $contato );
  697. }
  698. }
  699. }
  700. if( !empty($param['pcu_curso']) AND is_array($param['pcu_curso']) )
  701. {
  702. foreach( $param['pcu_curso'] as $row => $pcu_curso)
  703. {
  704. if ($pcu_curso)
  705. {
  706. $curso = new TbPessoasCursos;
  707. $curso->pcu_pessoa = $pessoa->id;
  708. $curso->pcu_curso = $pcu_curso;
  709. $curso->pcu_carga_horaria = $param['pcu_carga_horaria'][$row];
  710. $curso->pcu_local = $param['pcu_local'][$row];
  711. $curso->pcu_inf_adic = $param['pcu_inf_adic'][$row];
  712. $pessoa->addCurso( $curso );
  713. }
  714. }
  715. }
  716. if( !empty($param['bat_data']) AND is_array($param['bat_data']) )
  717. {
  718. foreach( $param['bat_data'] as $row => $bat_data)
  719. {
  720. if ($bat_data)
  721. {
  722. $batismo = new TbPessoasBatismo;
  723. $batismo->bat_pessoa = $pessoa->id;
  724. $batismo->bat_data = $bat_data;
  725. $batismo->bat_cidade = $param['bat_cidade'][$row];
  726. $batismo->bat_uf = $param['bat_uf'][$row];
  727. $batismo->bat_igreja = $param['bat_igreja'][$row];
  728. $pessoa->addBatismo( $batismo );
  729. }
  730. }
  731. }
  732. if( !empty($param['pd_cpf']) AND is_array($param['pd_cpf']) )
  733. {
  734. foreach( $param['pd_cpf'] as $row => $pd_cpf)
  735. {
  736. if ($pd_cpf)
  737. {
  738. $documento = new TbPessoasDctos;
  739. $documento->pd_pessoa = $pessoa->id;
  740. $documento->pd_cpf = $pd_cpf;
  741. $documento->pd_rg = $param['pd_rg'][$row];
  742. $documento->pd_rg_orgao_emissor = $param['pd_rg_orgao_emissor'][$row];
  743. $documento->pd_rg_uf = $param['pd_rg_uf'][$row];
  744. $documento->pd_rg_dt_emissao = $param['pd_rg_dt_emissao'][$row];
  745. $pessoa->addDocumento($documento);
  746. }
  747. }
  748. }
  749. if( !empty($param['pde_pessoa_dep']) AND is_array($param['pde_pessoa_dep']) )
  750. {
  751. foreach( $param['pde_pessoa_dep'] as $row => $pde_pessoa_dep)
  752. {
  753. if ($pde_pessoa_dep)
  754. {
  755. $dependente = new TbPessoasDepend;
  756. $dependente->pde_pessoa_resp = $pessoa->id;
  757. $dependente->pde_pessoa_dep = $pde_pessoa_dep;
  758. $dependente->pde_grau_parentesco = $param['pde_grau_parentesco'][$row];
  759. $dependente->pde_inf_adic = $param['pde_inf_adic'][$row];
  760. $pessoa->addDependente($dependente);
  761. }
  762. }
  763. }
  764. if( !empty($param['pf_formacao']) AND is_array($param['pf_formacao']) )
  765. {
  766. foreach( $param['pf_formacao'] as $row => $pf_formacao)
  767. {
  768. if ($pf_formacao)
  769. {
  770. $formacao = new TbPessoasFormacao;
  771. $formacao->pf_pessoa = $pessoa->id;
  772. $formacao->pf_formacao = $pf_formacao;
  773. $formacao->pf_data = $param['pf_data'][$row];
  774. $formacao->pf_inf_adic = $param['pf_inf_adic'][$row];
  775. $pessoa->addFormacao($formacao);
  776. }
  777. }
  778. }
  779. if( !empty($param['ph_habilidade']) AND is_array($param['ph_habilidade']) )
  780. {
  781. foreach( $param['ph_habilidade'] as $row => $ph_habilidade)
  782. {
  783. if ($ph_habilidade)
  784. {
  785. $habilidade = new TbPessoasHabilidades;
  786. $habilidade->ph_pessoa = $pessoa->id;
  787. $habilidade->ph_habilidade = $ph_habilidade;
  788. $habilidade->ph_inf_adic = $param['ph_inf_adic'][$row];
  789. $pessoa->addHabilidade($habilidade);
  790. }
  791. }
  792. }
  793. if( !empty($param['pi_idioma']) AND is_array($param['pi_idioma']) )
  794. {
  795. foreach( $param['pi_idioma'] as $row => $pi_idioma)
  796. {
  797. if ($pi_idioma)
  798. {
  799. $idioma = new TbPessoasIdiomas;
  800. $idioma->pi_pessoa = $pessoa->id;
  801. $idioma->pi_idioma = $pi_idioma;
  802. $idioma->pi_nivel_leitura = $param['pi_nivel_leitura'][$row];
  803. $idioma->pi_nivel_escrita = $param['pi_nivel_escrita'][$row];
  804. $idioma->pi_nivel_conversacao = $param['pi_nivel_conversacao'][$row];
  805. $pessoa->addIdioma($idioma);
  806. }
  807. }
  808. }
  809. if( !empty($param['prof_cargo']) AND is_array($param['prof_cargo']) )
  810. {
  811. foreach( $param['prof_cargo'] as $row => $prof_cargo)
  812. {
  813. if ($prof_cargo)
  814. {
  815. $profissao = new TbPessoasProfissao;
  816. $profissao->prof_pessoa = $pessoa->id;
  817. $profissao->prof_cargo = $prof_cargo;
  818. $profissao->prof_profissao = $param['prof_profissao'][$row];
  819. $profissao->prof_empresa = $param['prof_empresa'][$row];
  820. $profissao->prof_telefone = $param['prof_telefone'][$row];
  821. $profissao->prof_email = $param['prof_email'][$row];
  822. $pessoa->addProfissao($profissao);
  823. }
  824. }
  825. }
  826. // stores the object in the database
  827. $pessoa->store();
  828. $data = new stdClass;
  829. $data->id = $pessoa->id;
  830. TForm::sendData('form_TbPessoas', $data);
  831. // shows the success message
  832. new TMessage('info', 'Atualizado com Sucesso');
  833. TTransaction::close(); // close the transaction
  834. }
  835. catch (Exception $e) // in case of exception
  836. {
  837. // shows the exception error message
  838. new TMessage('error', $e->getMessage());
  839. // undo all pending operations
  840. TTransaction::rollback();
  841. }
  842. }
  843. /**
  844. * method onEdit
  845. * Edit a record data
  846. */
  847. function onEdit($param)
  848. {
  849. try
  850. {
  851. if (isset($param['id']))
  852. {
  853. // open a transaction with database 'library'
  854. TTransaction::open('crescer');
  855. // load the Active Record according to its ID
  856. $pessoa = new TbPessoas($param['id']);
  857. // load the contacts (composition)
  858. $contatos = $pessoa->getContatos();
  859. $cursos = $pessoa->getCursos();
  860. $batismos = $pessoa->getBatismos();
  861. $documentos = $pessoa->getDocumentos();
  862. $dependentes = $pessoa->getDependentes();
  863. $formacoes = $pessoa->getFormacoes();
  864. $habilidades = $pessoa->getHabilidades();
  865. $idiomas = $pessoa->getIdiomas();
  866. $profissoes = $pessoa->getProfissoes();
  867. // AQUI CONVERSÃO PARA CARREGAR OS DADOS
  868. //$pessoa->data_nascimento = DateTime::createFromFormat('Y-m-d', $pessoa->data_nascimento)->format('d/m/Y');
  869. //$pessoa->c_data_cadastro = DateTime::createFromFormat('Y-m-d', $pessoa->c_data_cadastro)->format('d/m/Y');
  870. if ($contatos)
  871. {
  872. $this->table_contatos->addSection('tbody');
  873. foreach ($contatos as $contato)
  874. {
  875. $this->addContatoRow($contato);
  876. }
  877. // create add button
  878. $add = new TButton('clone');
  879. $add->setLabel('Add');
  880. $add->setImage('fa:plus-circle green');
  881. $add->addFunction('ttable_clone_previous_row(this)');
  882. // add buttons in table
  883. $this->table_contatos->addRowSet([$add]);
  884. }
  885. else
  886. {
  887. $this->onClearContatos($param);
  888. }
  889. if ($cursos)
  890. {
  891. $this->table_cursos->addSection('tbody');
  892. foreach ($cursos as $curso)
  893. {
  894. $this->addCursoRow($curso);
  895. }
  896. // create add button
  897. $add = new TButton('clone');
  898. $add->setLabel('Add');
  899. $add->setImage('fa:plus-circle green');
  900. $add->addFunction('ttable_clone_previous_row(this)');
  901. // add buttons in table
  902. $this->table_cursos->addRowSet([$add]);
  903. }
  904. else
  905. {
  906. $this->onClearCursos($param);
  907. }
  908. if ($batismos)
  909. {
  910. $this->table_batismo->addSection('tbody');
  911. foreach ($batismos as $batismo)
  912. {
  913. $this->addBatismoRow($batismo);
  914. }
  915. // create add button
  916. $add = new TButton('clone');
  917. $add->setLabel('Add');
  918. $add->setImage('fa:plus-circle green');
  919. $add->addFunction('ttable_clone_previous_row(this)');
  920. // add buttons in table
  921. $this->table_batismo->addRowSet([$add]);
  922. }
  923. else
  924. {
  925. $this->onClearBatismos($param);
  926. }
  927. if ($documentos)
  928. {
  929. $this->table_documentos->addSection('tbody');
  930. foreach ($documentos as $documento)
  931. {
  932. $this->addDocumentoRow($documento);
  933. }
  934. // create add button
  935. $add = new TButton('clone');
  936. $add->setLabel('Add');
  937. $add->setImage('fa:plus-circle green');
  938. $add->addFunction('ttable_clone_previous_row(this)');
  939. // add buttons in table
  940. $this->table_documentos->addRowSet([$add]);
  941. }
  942. else
  943. {
  944. $this->onClearDocumentos($param);
  945. }
  946. if ($dependentes)
  947. {
  948. $this->table_dependentes->addSection('tbody');
  949. foreach ($dependentes as $dependente)
  950. {
  951. $this->addDependenteRow($dependente);
  952. }
  953. // create add button
  954. $add = new TButton('clone');
  955. $add->setLabel('Add');
  956. $add->setImage('fa:plus-circle green');
  957. $add->addFunction('ttable_clone_previous_row(this)');
  958. // add buttons in table
  959. $this->table_dependentes->addRowSet([$add]);
  960. }
  961. else
  962. {
  963. $this->onClearDependentes($param);
  964. }
  965. if ($formacoes)
  966. {
  967. $this->table_formacao->addSection('tbody');
  968. foreach ($formacoes as $formacao)
  969. {
  970. $this->addFormacaoRow($formacao);
  971. }
  972. // create add button
  973. $add = new TButton('clone');
  974. $add->setLabel('Add');
  975. $add->setImage('fa:plus-circle green');
  976. $add->addFunction('ttable_clone_previous_row(this)');
  977. // add buttons in table
  978. $this->table_formacao->addRowSet([$add]);
  979. }
  980. else
  981. {
  982. $this->onClearFormacoes($param);
  983. }
  984. if ($habilidades)
  985. {
  986. $this->table_habilidades->addSection('tbody');
  987. foreach ($habilidades as $habilidade)
  988. {
  989. $this->addHabilidadeRow($habilidade);
  990. }
  991. // create add button
  992. $add = new TButton('clone');
  993. $add->setLabel('Add');
  994. $add->setImage('fa:plus-circle green');
  995. $add->addFunction('ttable_clone_previous_row(this)');
  996. // add buttons in table
  997. $this->table_habilidades->addRowSet([$add]);
  998. }
  999. else
  1000. {
  1001. $this->onClearHabilidades($param);
  1002. }
  1003. if ($idiomas)
  1004. {
  1005. $this->table_idiomas->addSection('tbody');
  1006. foreach ($idiomas as $idioma)
  1007. {
  1008. $this->addIdiomaRow($idioma);
  1009. }
  1010. // create add button
  1011. $add = new TButton('clone');
  1012. $add->setLabel('Add');
  1013. $add->setImage('fa:plus-circle green');
  1014. $add->addFunction('ttable_clone_previous_row(this)');
  1015. // add buttons in table
  1016. $this->table_idiomas->addRowSet([$add]);
  1017. }
  1018. else
  1019. {
  1020. $this->onClearIdiomas($param);
  1021. }
  1022. if ($profissoes)
  1023. {
  1024. $this->table_profissoes->addSection('tbody');
  1025. foreach ($profissoes as $profissao)
  1026. {
  1027. $this->addProfissaoRow($profissao);
  1028. }
  1029. // create add button
  1030. $add = new TButton('clone');
  1031. $add->setLabel('Add');
  1032. $add->setImage('fa:plus-circle green');
  1033. $add->addFunction('ttable_clone_previous_row(this)');
  1034. // add buttons in table
  1035. $this->table_profissoes->addRowSet([$add]);
  1036. }
  1037. else
  1038. {
  1039. $this->onClearProfissoes($param);
  1040. }
  1041. // fill the form with the active record data
  1042. $this->form->setData($pessoa);
  1043. // close the transaction
  1044. TTransaction::close();
  1045. }
  1046. else
  1047. {
  1048. $this->onClear($param);
  1049. }
  1050. }
  1051. catch (Exception $e) // in case of exception
  1052. {
  1053. // shows the exception error message
  1054. new TMessage('error', $e->getMessage());
  1055. // undo all pending operations
  1056. TTransaction::rollback();
  1057. }
  1058. }
  1059. /**
  1060. * Clear Contatos
  1061. */
  1062. public function onClearContatos($param = null)
  1063. {
  1064. $this->table_contatos->addSection('tbody');
  1065. $this->addContatoRow( new stdClass );
  1066. // create add button
  1067. $add = new TButton('clone');
  1068. $add->setLabel('Add');
  1069. $add->setImage('fa:plus-circle green');
  1070. $add->addFunction('ttable_clone_previous_row(this)');
  1071. // add buttons in table
  1072. $this->table_contatos->addRowSet([$add]);
  1073. }
  1074. /**
  1075. * Clear cursos
  1076. */
  1077. public function onClearCursos($param = null)
  1078. {
  1079. $this->table_cursos->addSection('tbody');
  1080. $this->addCursoRow( new stdClass );
  1081. // create add button
  1082. $add = new TButton('clone');
  1083. $add->setLabel('Add');
  1084. $add->setImage('fa:plus-circle green');
  1085. $add->addFunction('ttable_clone_previous_row(this)');
  1086. // add buttons in table
  1087. $this->table_cursos->addRowSet([$add]);
  1088. }
  1089. /**
  1090. * Clear batismos
  1091. */
  1092. public function onClearBatismos($param = null)
  1093. {
  1094. $this->table_batismo->addSection('tbody');
  1095. $this->addBatismoRow( new stdClass );
  1096. // create add button
  1097. $add = new TButton('clone');
  1098. $add->setLabel('Add');
  1099. $add->setImage('fa:plus-circle green');
  1100. $add->addFunction('ttable_clone_previous_row(this)');
  1101. // add buttons in table
  1102. $this->table_batismo->addRowSet([$add]);
  1103. }
  1104. /**
  1105. * Clear documentos
  1106. */
  1107. public function onClearDocumentos($param = null)
  1108. {
  1109. $this->table_documentos->addSection('tbody');
  1110. $this->addDocumentoRow( new stdClass );
  1111. // create add button
  1112. $add = new TButton('clone');
  1113. $add->setLabel('Add');
  1114. $add->setImage('fa:plus-circle green');
  1115. $add->addFunction('ttable_clone_previous_row(this)');
  1116. // add buttons in table
  1117. $this->table_documentos->addRowSet([$add]);
  1118. }
  1119. /**
  1120. * Clear dependentes
  1121. */
  1122. public function onClearDependentes($param = null)
  1123. {
  1124. $this->table_dependentes->addSection('tbody');
  1125. $this->addDependenteRow( new stdClass );
  1126. // create add button
  1127. $add = new TButton('clone');
  1128. $add->setLabel('Add');
  1129. $add->setImage('fa:plus-circle green');
  1130. $add->addFunction('ttable_clone_previous_row(this)');
  1131. // add buttons in table
  1132. $this->table_dependentes->addRowSet([$add]);
  1133. }
  1134. /**
  1135. * Clear formacoes
  1136. */
  1137. public function onClearFormacoes($param = null)
  1138. {
  1139. $this->table_formacao->addSection('tbody');
  1140. $this->addFormacaoRow( new stdClass );
  1141. // create add button
  1142. $add = new TButton('clone');
  1143. $add->setLabel('Add');
  1144. $add->setImage('fa:plus-circle green');
  1145. $add->addFunction('ttable_clone_previous_row(this)');
  1146. // add buttons in table
  1147. $this->table_formacao->addRowSet([$add]);
  1148. }
  1149. /**
  1150. * Clear habilidades
  1151. */
  1152. public function onClearHabilidades($param = null)
  1153. {
  1154. $this->table_habilidades->addSection('tbody');
  1155. $this->addHabilidadeRow( new stdClass );
  1156. // create add button
  1157. $add = new TButton('clone');
  1158. $add->setLabel('Add');
  1159. $add->setImage('fa:plus-circle green');
  1160. $add->addFunction('ttable_clone_previous_row(this)');
  1161. // add buttons in table
  1162. $this->table_habilidades->addRowSet([$add]);
  1163. }
  1164. /**
  1165. * Clear idiomas
  1166. */
  1167. public function onClearIdiomas($param = null)
  1168. {
  1169. $this->table_idiomas->addSection('tbody');
  1170. $this->addIdiomaRow( new stdClass );
  1171. // create add button
  1172. $add = new TButton('clone');
  1173. $add->setLabel('Add');
  1174. $add->setImage('fa:plus-circle green');
  1175. $add->addFunction('ttable_clone_previous_row(this)');
  1176. // add buttons in table
  1177. $this->table_idiomas->addRowSet([$add]);
  1178. }
  1179. /**
  1180. * Clear profissoes
  1181. */
  1182. public function onClearProfissoes($param = null)
  1183. {
  1184. $this->table_profissoes->addSection('tbody');
  1185. $this->addProfissaoRow( new stdClass );
  1186. // create add button
  1187. $add = new TButton('clone');
  1188. $add->setLabel('Add');
  1189. $add->setImage('fa:plus-circle green');
  1190. $add->addFunction('ttable_clone_previous_row(this)');
  1191. // add buttons in table
  1192. $this->table_profissoes->addRowSet([$add]);
  1193. }
  1194. /**
  1195. * Clear form
  1196. */
  1197. public function onClear()
  1198. {
  1199. $this->form->clear();
  1200. $this->onClearContatos();
  1201. $this->onClearBatismos();
  1202. $this->onClearCursos();
  1203. $this->onClearDocumentos();
  1204. $this->onClearDependentes();
  1205. $this->onClearFormacoes();
  1206. $this->onClearHabilidades();
  1207. $this->onClearIdiomas();
  1208. $this->onClearProfissoes();
  1209. }
  1210. }
  1211. ?>
IF

Edson, o campo $c_data_cadastro está gravando no seu banco? Vc deu um var_dump() pra ver se o campo $data_nascimento está vindo junto com seu form?
EZ

Bom dia,

O campo $c_data_cadastro grava se eu retiro o setDatabaseMask e digito a data no formato yyyy-mm-dd mas o método setValue(date) não está carregando a data do dia como era esperado...somente digitando manualmente e o campo $data_nascimento está vindo, mas quando dá um save no form ai já era...apaga o que estava gravado no banco e fica 0000-00-00.
EZ

Resumindo,

Nos dois casos se eu tiro o setMask e o setDatabaseMask grava tudo certinho...