Preciso salvar todos do uma unica vez, qual é o procedimento ...
JP
Preciso salvar todos do uma unica vez, qual é o procedimento  
 
  1. <?php
  2. class FormularioDeInscricao extends TPage
  3. {
  4. private $form;
  5. /**
  6. * Class constructor
  7. * Creates the page
  8. */
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. $this->form = new BootstrapFormBuilder('form_builder');
  13. $this->form->setFormTitle(_t('Formulário de Inscrição'));
  14. $this->form->setFieldSizes('100%');
  15. $this->form->appendPage('Dados Pessoais');
  16. //Campos do Formulário aluno
  17. $cod_aluno = new TEntry('cod_aluno');
  18. $nome_aluno = new TEntry('nome_aluno');
  19. $data_nascimento = new TDate('data_nascimento');
  20. $nome_pai = new TEntry('nome_pai');
  21. $nome_mae = new TEntry('nome_mae');
  22. $endereco = new TEntry('endereco');
  23. $telefone = new TEntry('telefone');
  24. $email = new TEntry('email');
  25. //Campos do formulario Sexo
  26. $cod_sexo = new TDBCombo('cod_sexo', 'sge', 'TbSexo', 'cod_sexo', 'sexo');
  27. //Campos de curso
  28. $cod_curso = new TDBCombo('cod_curso', 'sge', 'TbCursos', 'cod_curso', 'curso');
  29. //Campos do formulario Identidade
  30. $numero_BI = new TEntry('cod_Identidade');
  31. $local_Emissao_BI = new TDate('local_emissao');
  32. $data_validade_BI = new TDate('data_validade_BI');
  33. //Campos do Formulário Estado Civil
  34. $cod_EstadoCivil = new TDBCombo('cod_EstadoCivil', 'sge', 'TbEstadocivil', 'cod_EstadoCivil', 'EstadoCivil');
  35. //Campos da tabela Provincia
  36. $provincia = new TDBCombo('provincia', 'sge', 'TbProvincias', 'cod_provincia', 'provincia');
  37. //Campos da tabela Escola
  38. $nome_escola = new TEntry('nome_escola');
  39. $curso = new TEntry('curso');
  40. $media_final = new TEntry('media_final');
  41. //Campo da tabela Periodo
  42. $periodo = new TDBCombo('periodo', 'sge', 'TbPeriodo', 'periodo', 'periodo');
  43. //Campo da tabela Nacionalidade
  44. $nacionalidade = new TDBCombo('nacionalidade', 'sge', 'TbNacionalidade', 'nacionalidade', 'nacionalidade');
  45. //Dados Proffionais
  46. $funcao = new TEntry('funcao');
  47. $nome_empresa = new TEntry('nome_empresa');
  48. //Validação de campos
  49. $telefone->setMask('99.999-999', true);
  50. // $data_nascimento->setMask('dd/mm/yyyy');
  51. $telefone->setMask('(+244)999-999-999 / (+244)999-999-999');
  52. $data_nascimento->setDatabaseMask('dd-mm-yyyy');
  53. $media_final->setMask('99.999-999', true);
  54. //Primeira linha de campo
  55. $row = $this->form->addFields( [ new TLabel('Nome do Candidato', '#FF0000', 13, ''), $nome_aluno ],
  56. [ new TLabel('Data de Nascimento', '#FF0000', 13, ''), $data_nascimento ],
  57. [ new TLabel('Sexo', '#FF0000', 13, ''), $cod_sexo ],
  58. [ new TLabel('Estado Civil', '#FF0000', 13, ''), $cod_EstadoCivil] );
  59. $row->layout = ['col-sm-7', 'col-sm-3', 'col-sm-3','col-sm-3' ];
  60. //Segunda linha de campo
  61. $label2 = new TLabel('Curso a se inscrever', '#5A73DB', 16, '');
  62. $label2->style='text-align:left;border-bottom:2px solid #c0c0c0;width:100%';
  63. $this->form->addContent( [$label2] );
  64. $row = $this->form->addFields( [ new TLabel('Curso', '#FF0000', 13, ''), $cod_curso ],
  65. [ new TLabel('Periodo', '#FF0000', 13, ''), $periodo ]);
  66. $row->layout = ['col-sm-6', 'col-sm-4' ];
  67. //Terceira linha de campo
  68. $label3 = new TLabel('Sua Identidade', '#5A73DB', 16, '');
  69. $label3->style='text-align:left;border-bottom:2px solid #c0c0c0;width:100%';
  70. $this->form->addContent( [$label3] );
  71. $row = $this->form->addFields( [ new TLabel('Número do B.I', '#FF0000', 13, ''), $numero_BI ],
  72. [ new TLabel('Emitido em', '#FF0000', 13, ''), $local_Emissao_BI ],
  73. [ new TLabel('Válido até', '#FF0000', 13, ''), $data_validade_BI] ,
  74. [ new TLabel('Nacionalidade', '#FF0000', 13, ''), $nacionalidade] ,
  75. [ new TLabel('Naturalidade', '#FF0000', 13, ''), $provincia] );
  76. $row->layout = ['col-sm-5', 'col-sm-3', 'col-sm-3', 'col-sm-4','col-sm-5' ];
  77. //Quarta linha de campo
  78. $label4 = new TLabel('Agregado Familiar', '#5A73DB', 16, '');
  79. $label4->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  80. $this->form->addContent( [$label4] );
  81. $row = $this->form->addFields( [ new TLabel('Nome do Pai', '#FF0000', 13, ''), $nome_pai ],
  82. [ new TLabel('Nome da Mãe', '#FF0000', 13, ''), $nome_mae ]);
  83. $row->layout = ['col-sm-6', 'col-sm-6' ];
  84. //Quinta linha de campo
  85. $label5 = new TLabel('Contactos e Email', '#5A73DB', 16, '');
  86. $label5->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  87. $this->form->addContent( [$label5] );
  88. $row = $this->form->addFields( [ new TLabel('Endereço', '#FF0000', 13, ''), $endereco ],
  89. [ new TLabel('Contactos:', '#FF0000', 13, ''), $telefone ],
  90. [ new TLabel('Email', '#FF0000', 13, ''), $email ]);
  91. $row->layout = ['col-sm-6', 'col-sm-5','col-sm-5' ];
  92. //Sexta linha de campo
  93. $label6 = new TLabel('Escola de Proveniência', '#5A73DB', 16, '');
  94. $label6->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  95. $this->form->addContent( [$label6] );
  96. $row = $this->form->addFields( [ new TLabel('Nome da Escola', '#FF0000', 13, ''), $nome_escola ],
  97. [ new TLabel('Curso', '#FF0000', 13, ''), $curso ],
  98. [ new TLabel('Media Final', '#FF0000', 13, ''), $media_final ]);
  99. $row->layout = ['col-sm-6', 'col-sm-6','col-sm-2' ];
  100. //Setima linha de campo
  101. $label7 = new TLabel('Dados Profissionais', '#5A73DB', 16, '');
  102. $label7->style='text-align:left;border-bottom:2 px solid #c0c0c0;width:100%';
  103. $this->form->addContent( [$label7] );
  104. $row = $this->form->addFields( [ new TLabel('Função ou Categória', '#FF0000', 13, ''), $funcao ],
  105. [ new TLabel('Nome da Empresa ', '#FF0000', 13, ''), $nome_empresa ]);
  106. $row->layout = ['col-sm-6', 'col-sm-6','col-sm-2' ];
  107. public function onSave( $param )
  108. {
  109. try
  110. {
  111. TTransaction::open('bd_gestao_escolar'); // Abre a conexão do banco de dados
  112. $this->form->validate(); // valida os dados no formulario
  113. $object = new Test; // cria um objecto vasio
  114. $data = $this->form->getData(); // Salva os dados em forma de arrey
  115. $object->fromArray( (array) $data); // Carrega os objectos com seus dados
  116. $object->store(); // save the object
  117. // Pega o id gerado
  118. $data->id = $object->id;
  119. $this->form->setData($data); //Preencha o Formulário com dados
  120. $this->fireEvents( $object );
  121. TTransaction::close(); // Fecha a conexão da BD
  122. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); //retorna a sms Salvado
  123. }
  124. catch (Exception $e) // Em caso de Excepções
  125. {
  126. new TMessage('error', $e->getMessage()); // shows the exception error message
  127. $this->form->setData( $this->form->getData() ); // keep form data
  128. TTransaction::rollback(); // undo all pending operations
  129. }
  130. }
  131. /**
  132. Evento Fire Form
  133. * @param $param Request
  134. */
  135. public function fireEvents( $object )
  136. {
  137. $obj = new stdClass;
  138. $obj->state_id = $object->state_id;
  139. $obj->city_id = $object->city_id;
  140. $obj->customer_id = $object->customer_id;
  141. TForm::sendData('form_hierarchical', $obj);
  142. }
  143. /**
  144. * Load object to form data Carrega os objectos para os dados do formulário
  145. * Tipo de Parametro $param Request
  146. */
  147. public function onEdit( $param ) //Ao Editar
  148. {
  149. try
  150. {
  151. if (isset($param['key']))
  152. {
  153. $key = $param['key']; // obtenha o id do parametro
  154. TTransaction::open('samples'); // open a transaction
  155. $object = new Test($key); // instantiates the Active Record
  156. $this->form->setData($object); // fill the form
  157. TTransaction::close(); // close the transaction
  158. $this->fireEvents( $object );
  159. }
  160. else
  161. {
  162. $this->form->clear();
  163. }
  164. }
  165. catch (Exception $e) // in case of exception
  166. {
  167. new TMessage('error', $e->getMessage()); // shows the exception error message
  168. TTransaction::rollback(); // undo all pending operations
  169. }
  170. }
  171. //Outra aba de Formulario
  172. $this->form->appendPage('Outra Página');
  173. $row = $this->form->addFields( [ new TLabel('Test1'), $t1 = new TEntry('test1') ],
  174. [ new TLabel('Test2'), $t2 = new TEntry('test2') ] );
  175. $row->layout = ['col-sm-4', 'col-sm-8' ];
  176. $row = $this->form->addFields( [ new TLabel('Test3'), $text = new TText('text') ] );
  177. $row->layout = ['col-sm-12' ];
  178. $this->form->addAction('Send', new TAction(array($this, 'onSend')), 'fa:check-circle-o green');
  179. // wrap the page content using vertical box
  180. $vbox = new TVBox;
  181. $vbox->style = 'width: 100%';
  182. $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  183. $vbox->add($this->form);
  184. parent::add($vbox);
  185. }
  186. /**
  187. * Post data
  188. */
  189. public function onSend($param)
  190. {
  191. $data = $this->form->getData();
  192. $this->form->setData($data);
  193. echo '<pre>';
  194. print_r($data);
  195. echo '</pre>';
  196. }
  197. }
  198. ?>

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)


NR

Detalhe mais a sua necessidade, não dá pra entender o que você quer/precisa fazer.