Erro em Qualquer página Mestre/Detalhe Pessoal, preciso de uma ajuda urgente !!! Qualquer formulário meu mestre detalhe está gerando erro... eu consigo criar novos registros. Porém quando edito um registro e clico no botão m salvar é emitido as mensagens: Warning: Creating default object from empty value in C:AppServwwwsolicitacoesappcontrolsolicitacoespessoa_juridicaFormv3.class.php on line 479 Fatal error: Call to...
GG
Erro em Qualquer página Mestre/Detalhe  
Pessoal, preciso de uma ajuda urgente !!!
Qualquer formulário meu mestre detalhe está gerando erro... eu consigo criar novos registros. Porém quando edito um registro e clico no botão m salvar é emitido as mensagens:

Warning: Creating default object from empty value in C:AppServwwwsolicitacoesappcontrolsolicitacoespessoa_juridicaFormv3.class.php on line 479

Fatal error: Call to undefined method stdClass::store() in C:AppServwwwsolicitacoesappcontrolsolicitacoespessoa_juridicaFormv3.class.php on line 493

Segue abaixo o código do formulario e das classes

 
  1. <?php
  2. /**
  3. * pessoa_juridicaFormv3 Master/Detail
  4. * @author <your name here>
  5. */
  6. class pessoa_juridicaFormv3 extends TPage
  7. {
  8. protected $form; // form
  9. protected $formFields;
  10. protected $detail_list;
  11. /**
  12. * Page constructor
  13. */
  14. public function __construct()
  15. {
  16. parent::__construct();
  17. // creates the form
  18. $this->form = new TForm('form_pessoa_juridica');
  19. $this->form->class = 'tform'; // CSS class
  20. $this->form->style = 'max-width:700px'; // style
  21. parent::include_css('app/resources/custom-frame.css');
  22. $table_master = new TTable;
  23. $table_master->width = '100%';
  24. $table_master->addRowSet( new TLabel('pessoa_juridica'), '', '')->class = 'tformtitle';
  25. // add a table inside form
  26. $table_general = new TTable;
  27. $table_detail = new TTable;
  28. $table_general-> width = '100%';
  29. $table_detail-> width = '100%';
  30. $frame_general = new TFrame;
  31. $frame_general->setLegend('pessoa_juridica');
  32. $frame_general->style = 'background:whiteSmoke';
  33. $frame_general->add($table_general);
  34. $table_master->addRow()->addCell( $frame_general )->colspan=2;
  35. $row = $table_master->addRow();
  36. $row->addCell( $table_detail );
  37. $this->form->add($table_master);
  38. // master fields
  39. $id = new TEntry('id');
  40. $cg_cgc = new TEntry('cg_cgc');
  41. $nm_pessoa_juridica = new TEntry('nm_pessoa_juridica');
  42. if (!empty($id))
  43. {
  44. $id->setEditable(FALSE);
  45. }
  46. // detail fields
  47. $detail_id = new THidden('detail_id');
  48. $detail_ie_complexidade = new TEntry('detail_ie_complexidade');
  49. $detail_ie_tipo_atendimento = new TEntry('detail_ie_tipo_atendimento');
  50. $detail_ie_estrutura_servidor = new TEntry('detail_ie_estrutura_servidor');
  51. $detail_qt_analistas = new TEntry('detail_qt_analistas');
  52. $detail_ind_maturidade_informatica = new TEntry('detail_ind_maturidade_informatica');
  53. $detail_ind_maturidade_usuario_chave = new TEntry('detail_ind_maturidade_usuario_chave');
  54. $detail_qt_funcoes = new TEntry('detail_qt_funcoes');
  55. $detail_qt_perfis = new TEntry('detail_qt_perfis');
  56. $detail_qt_funcao_perfil = new TEntry('detail_qt_funcao_perfil');
  57. $detail_qt_modulos = new TEntry('detail_qt_modulos');
  58. $detail_qt_usuarios_chave_envolvidos = new TEntry('detail_qt_usuarios_chave_envolvidos');
  59. $detail_qt_meses = new TEntry('detail_qt_meses');
  60. $detail_ds_tamanho = new TEntry('detail_ds_tamanho');
  61. /** samples
  62. $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
  63. $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  64. $fieldX->setSize( 100, 40 ); // set size
  65. **/
  66. // master
  67. $table_general->addRowSet( new TLabel('Id'), $id );
  68. $table_general->addRowSet( new TLabel('Cg Cgc'), $cg_cgc );
  69. $table_general->addRowSet( new TLabel('Nm Pessoa Juridica'), $nm_pessoa_juridica );
  70. // detail
  71. $frame_details = new TFrame();
  72. $frame_details->setLegend('Pj_Migracao');
  73. $row = $table_detail->addRow();
  74. $row->addCell($frame_details);
  75. $btn_save_detail = new TButton('btn_save_detail');
  76. $btn_save_detail->setAction(new TAction(array($this, 'onSaveDetail')), 'Register');
  77. $btn_save_detail->setImage('fa:save');
  78. $table_details = new TTable;
  79. $frame_details->add($table_details);
  80. $table_details->addRowSet( '', $detail_id );
  81. $table_details->addRowSet( new TLabel('Ie Complexidade'), $detail_ie_complexidade );
  82. $table_details->addRowSet( new TLabel('Ie Tipo Atendimento'), $detail_ie_tipo_atendimento );
  83. $table_details->addRowSet( new TLabel('Ie Estrutura Servidor'), $detail_ie_estrutura_servidor );
  84. $table_details->addRowSet( new TLabel('Qt Analistas'), $detail_qt_analistas );
  85. $table_details->addRowSet( new TLabel('Ind Maturidade Informatica'), $detail_ind_maturidade_informatica );
  86. $table_details->addRowSet( new TLabel('Ind Maturidade Usuario Chave'), $detail_ind_maturidade_usuario_chave );
  87. $table_details->addRowSet( new TLabel('Qt Funcoes'), $detail_qt_funcoes );
  88. $table_details->addRowSet( new TLabel('Qt Perfis'), $detail_qt_perfis );
  89. $table_details->addRowSet( new TLabel('Qt Funcao Perfil'), $detail_qt_funcao_perfil );
  90. $table_details->addRowSet( new TLabel('Qt Modulos'), $detail_qt_modulos );
  91. $table_details->addRowSet( new TLabel('Qt Usuarios Chave Envolvidos'), $detail_qt_usuarios_chave_envolvidos );
  92. $table_details->addRowSet( new TLabel('Qt Meses'), $detail_qt_meses );
  93. $table_details->addRowSet( new TLabel('Ds Tamanho'), $detail_ds_tamanho );
  94. $table_details->addRowSet( $btn_save_detail );
  95. $this->detail_list = new TQuickGrid;
  96. $this->detail_list->setHeight( 175 );
  97. $this->detail_list->makeScrollable();
  98. $this->detail_list->disableDefaultClick();
  99. $this->detail_list->addQuickColumn('', 'edit', 'left', 50);
  100. $this->detail_list->addQuickColumn('', 'delete', 'left', 50);
  101. // items
  102. $this->detail_list->addQuickColumn('Ie Complexidade', 'ie_complexidade', 'left', 100);
  103. $this->detail_list->addQuickColumn('Ie Tipo Atendimento', 'ie_tipo_atendimento', 'left', 100);
  104. $this->detail_list->addQuickColumn('Ie Estrutura Servidor', 'ie_estrutura_servidor', 'left', 100);
  105. $this->detail_list->addQuickColumn('Qt Analistas', 'qt_analistas', 'left', 100);
  106. $this->detail_list->addQuickColumn('Ind Maturidade Informatica', 'ind_maturidade_informatica', 'left', 100);
  107. $this->detail_list->addQuickColumn('Ind Maturidade Usuario Chave', 'ind_maturidade_usuario_chave', 'left', 100);
  108. $this->detail_list->addQuickColumn('Qt Funcoes', 'qt_funcoes', 'left', 100);
  109. $this->detail_list->addQuickColumn('Qt Perfis', 'qt_perfis', 'left', 100);
  110. $this->detail_list->addQuickColumn('Qt Funcao Perfil', 'qt_funcao_perfil', 'left', 100);
  111. $this->detail_list->addQuickColumn('Qt Modulos', 'qt_modulos', 'left', 100);
  112. $this->detail_list->addQuickColumn('Qt Usuarios Chave Envolvidos', 'qt_usuarios_chave_envolvidos', 'left', 100);
  113. $this->detail_list->addQuickColumn('Qt Meses', 'qt_meses', 'left', 100);
  114. $this->detail_list->addQuickColumn('Ds Tamanho', 'ds_tamanho', 'left', 200);
  115. $this->detail_list->createModel();
  116. $row = $table_detail->addRow();
  117. $row->addCell($this->detail_list);
  118. // create an action button (save)
  119. $save_button=new TButton('save');
  120. $save_button->setAction(new TAction(array($this, 'onSave')), _t('Save'));
  121. $save_button->setImage('ico_save.png');
  122. // create an new button (edit with no parameters)
  123. $new_button=new TButton('new');
  124. $new_button->setAction(new TAction(array($this, 'onClear')), _t('New'));
  125. $new_button->setImage('ico_new.png');
  126. // define form fields
  127. $this->formFields = array($id,$cg_cgc,$nm_pessoa_juridica,$detail_ie_complexidade,$detail_ie_tipo_atendimento,$detail_ie_estrutura_servidor,$detail_qt_analistas,$detail_ind_maturidade_informatica,$detail_ind_maturidade_usuario_chave,$detail_qt_funcoes,$detail_qt_perfis,$detail_qt_funcao_perfil,$detail_qt_modulos,$detail_qt_usuarios_chave_envolvidos,$detail_qt_meses,$detail_ds_tamanho);
  128. $this->formFields[] = $btn_save_detail;
  129. $this->formFields[] = $save_button;
  130. $this->formFields[] = $new_button;
  131. $this->formFields[] = $detail_id;
  132. $this->form->setFields( $this->formFields );
  133. $table_master->addRowSet( array($save_button, $new_button), '', '')->class = 'tformaction'; // CSS class
  134. // create the page container
  135. $container = new TVBox;
  136. $container->style = 'width: 90%';
  137. // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  138. $container->add($this->form);
  139. parent::add($container);
  140. }
  141. /**
  142. * Clear form
  143. * @param $param URL parameters
  144. */
  145. public function onClear($param)
  146. {
  147. $this->form->clear(TRUE);
  148. TSession::setValue(__CLASS__.'_items', array());
  149. $this->onReload( $param );
  150. }
  151. /**
  152. * Save an item from form to session list
  153. * @param $param URL parameters
  154. */
  155. public function onSaveDetail( $param )
  156. {
  157. try
  158. {
  159. TTransaction::open('solicitacoes');
  160. $data = $this->form->getData();
  161. /** validation sample
  162. if (! $data->fieldX)
  163. throw new Exception('The field fieldX is required');
  164. **/
  165. $items = TSession::getValue(__CLASS__.'_items');
  166. $key = empty($data->detail_id) ? 'X'.mt_rand(1000000000, 1999999999) : $data->detail_id;
  167. $items[ $key ] = array();
  168. $items[ $key ]['id'] = $key;
  169. $items[ $key ]['ie_complexidade'] = $data->detail_ie_complexidade;
  170. $items[ $key ]['ie_tipo_atendimento'] = $data->detail_ie_tipo_atendimento;
  171. $items[ $key ]['ie_estrutura_servidor'] = $data->detail_ie_estrutura_servidor;
  172. $items[ $key ]['qt_analistas'] = $data->detail_qt_analistas;
  173. $items[ $key ]['ind_maturidade_informatica'] = $data->detail_ind_maturidade_informatica;
  174. $items[ $key ]['ind_maturidade_usuario_chave'] = $data->detail_ind_maturidade_usuario_chave;
  175. $items[ $key ]['qt_funcoes'] = $data->detail_qt_funcoes;
  176. $items[ $key ]['qt_perfis'] = $data->detail_qt_perfis;
  177. $items[ $key ]['qt_funcao_perfil'] = $data->detail_qt_funcao_perfil;
  178. $items[ $key ]['qt_modulos'] = $data->detail_qt_modulos;
  179. $items[ $key ]['qt_usuarios_chave_envolvidos'] = $data->detail_qt_usuarios_chave_envolvidos;
  180. $items[ $key ]['qt_meses'] = $data->detail_qt_meses;
  181. $items[ $key ]['ds_tamanho'] = $data->detail_ds_tamanho;
  182. TSession::setValue(__CLASS__.'_items', $items);
  183. // clear detail form fields
  184. $data->detail_id = '';
  185. $data->detail_ie_complexidade = '';
  186. $data->detail_ie_tipo_atendimento = '';
  187. $data->detail_ie_estrutura_servidor = '';
  188. $data->detail_qt_analistas = '';
  189. $data->detail_ind_maturidade_informatica = '';
  190. $data->detail_ind_maturidade_usuario_chave = '';
  191. $data->detail_qt_funcoes = '';
  192. $data->detail_qt_perfis = '';
  193. $data->detail_qt_funcao_perfil = '';
  194. $data->detail_qt_modulos = '';
  195. $data->detail_qt_usuarios_chave_envolvidos = '';
  196. $data->detail_qt_meses = '';
  197. $data->detail_ds_tamanho = '';
  198. TTransaction::close();
  199. $this->form->setData($data);
  200. $this->onReload( $param ); // reload the items
  201. }
  202. catch (Exception $e)
  203. {
  204. $this->form->setData( $this->form->getData());
  205. new TMessage('error', $e->getMessage());
  206. }
  207. }
  208. /**
  209. * Load an item from session list to detail form
  210. * @param $param URL parameters
  211. */
  212. public function onEditDetail( $param )
  213. {
  214. $data = $this->form->getData();
  215. // read session items
  216. $items = TSession::getValue(__CLASS__.'_items');
  217. // get the session item
  218. $item = $items[ $param['item_key'] ];
  219. $data->detail_id = $item['id'];
  220. $data->detail_ie_complexidade = $item['ie_complexidade'];
  221. $data->detail_ie_tipo_atendimento = $item['ie_tipo_atendimento'];
  222. $data->detail_ie_estrutura_servidor = $item['ie_estrutura_servidor'];
  223. $data->detail_qt_analistas = $item['qt_analistas'];
  224. $data->detail_ind_maturidade_informatica = $item['ind_maturidade_informatica'];
  225. $data->detail_ind_maturidade_usuario_chave = $item['ind_maturidade_usuario_chave'];
  226. $data->detail_qt_funcoes = $item['qt_funcoes'];
  227. $data->detail_qt_perfis = $item['qt_perfis'];
  228. $data->detail_qt_funcao_perfil = $item['qt_funcao_perfil'];
  229. $data->detail_qt_modulos = $item['qt_modulos'];
  230. $data->detail_qt_usuarios_chave_envolvidos = $item['qt_usuarios_chave_envolvidos'];
  231. $data->detail_qt_meses = $item['qt_meses'];
  232. $data->detail_ds_tamanho = $item['ds_tamanho'];
  233. // fill detail fields
  234. $this->form->setData( $data );
  235. $this->onReload( $param );
  236. }
  237. /**
  238. * Delete an item from session list
  239. * @param $param URL parameters
  240. */
  241. public function onDeleteDetail( $param )
  242. {
  243. $data = $this->form->getData();
  244. // reset items
  245. $data->detail_ie_complexidade = '';
  246. $data->detail_ie_tipo_atendimento = '';
  247. $data->detail_ie_estrutura_servidor = '';
  248. $data->detail_qt_analistas = '';
  249. $data->detail_ind_maturidade_informatica = '';
  250. $data->detail_ind_maturidade_usuario_chave = '';
  251. $data->detail_qt_funcoes = '';
  252. $data->detail_qt_perfis = '';
  253. $data->detail_qt_funcao_perfil = '';
  254. $data->detail_qt_modulos = '';
  255. $data->detail_qt_usuarios_chave_envolvidos = '';
  256. $data->detail_qt_meses = '';
  257. $data->detail_ds_tamanho = '';
  258. // clear form data
  259. $this->form->setData( $data );
  260. // read session items
  261. $items = TSession::getValue(__CLASS__.'_items');
  262. // delete the item from session
  263. unset($items[ $param['item_key'] ] );
  264. TSession::setValue(__CLASS__.'_items', $items);
  265. // reload items
  266. $this->onReload( $param );
  267. }
  268. /**
  269. * Load the items list from session
  270. * @param $param URL parameters
  271. */
  272. public function onReload($param)
  273. {
  274. // read session items
  275. $items = TSession::getValue(__CLASS__.'_items');
  276. $this->detail_list->clear(); // clear detail list
  277. $data = $this->form->getData();
  278. if ($items)
  279. {
  280. $cont = 1;
  281. foreach ($items as $list_item_key => $list_item)
  282. {
  283. $item_name = 'prod_' . $cont++;
  284. $item = new StdClass;
  285. // create action buttons
  286. $action_del = new TAction(array($this, 'onDeleteDetail'));
  287. $action_del->setParameter('item_key', $list_item_key);
  288. $action_edi = new TAction(array($this, 'onEditDetail'));
  289. $action_edi->setParameter('item_key', $list_item_key);
  290. $button_del = new TButton('delete_detail'.$cont);
  291. $button_del->class = 'btn btn-default btn-sm';
  292. $button_del->setAction( $action_del, '' );
  293. $button_del->setImage('fa:trash-o red fa-lg');
  294. $button_edi = new TButton('edit_detail'.$cont);
  295. $button_edi->class = 'btn btn-default btn-sm';
  296. $button_edi->setAction( $action_edi, '' );
  297. $button_edi->setImage('fa:edit blue fa-lg');
  298. $item->edit = $button_edi;
  299. $item->delete = $button_del;
  300. $this->formFields[ $item_name.'_edit' ] = $item->edit;
  301. $this->formFields[ $item_name.'_delete' ] = $item->delete;
  302. // items
  303. $item->id = $list_item['id'];
  304. $item->ie_complexidade = $list_item['ie_complexidade'];
  305. $item->ie_tipo_atendimento = $list_item['ie_tipo_atendimento'];
  306. $item->ie_estrutura_servidor = $list_item['ie_estrutura_servidor'];
  307. $item->qt_analistas = $list_item['qt_analistas'];
  308. $item->ind_maturidade_informatica = $list_item['ind_maturidade_informatica'];
  309. $item->ind_maturidade_usuario_chave = $list_item['ind_maturidade_usuario_chave'];
  310. $item->qt_funcoes = $list_item['qt_funcoes'];
  311. $item->qt_perfis = $list_item['qt_perfis'];
  312. $item->qt_funcao_perfil = $list_item['qt_funcao_perfil'];
  313. $item->qt_modulos = $list_item['qt_modulos'];
  314. $item->qt_usuarios_chave_envolvidos = $list_item['qt_usuarios_chave_envolvidos'];
  315. $item->qt_meses = $list_item['qt_meses'];
  316. $item->ds_tamanho = $list_item['ds_tamanho'];
  317. $row = $this->detail_list->addItem( $item );
  318. $row->onmouseover='';
  319. $row->onmouseout='';
  320. }
  321. $this->form->setFields( $this->formFields );
  322. }
  323. $this->loaded = TRUE;
  324. }
  325. /**
  326. * Load Master/Detail data from database to form/session
  327. */
  328. public function onEdit($param)
  329. {
  330. try
  331. {
  332. TTransaction::open('solicitacoes');
  333. if (isset($param['key']))
  334. {
  335. $key = $param['key'];
  336. $object = new pessoa_juridica($key);
  337. $items = Pj_Migracao::where('pessoa_juridica_id', '=', $key)->load();
  338. $session_items = array();
  339. foreach( $items as $item )
  340. {
  341. $item_key = $item->id;
  342. $session_items[$item_key] = $item->toArray();
  343. $session_items[$item_key]['id'] = $item->id;
  344. $session_items[$item_key]['ie_complexidade'] = $item->ie_complexidade;
  345. $session_items[$item_key]['ie_tipo_atendimento'] = $item->ie_tipo_atendimento;
  346. $session_items[$item_key]['ie_estrutura_servidor'] = $item->ie_estrutura_servidor;
  347. $session_items[$item_key]['qt_analistas'] = $item->qt_analistas;
  348. $session_items[$item_key]['ind_maturidade_informatica'] = $item->ind_maturidade_informatica;
  349. $session_items[$item_key]['ind_maturidade_usuario_chave'] = $item->ind_maturidade_usuario_chave;
  350. $session_items[$item_key]['qt_funcoes'] = $item->qt_funcoes;
  351. $session_items[$item_key]['qt_perfis'] = $item->qt_perfis;
  352. $session_items[$item_key]['qt_funcao_perfil'] = $item->qt_funcao_perfil;
  353. $session_items[$item_key]['qt_modulos'] = $item->qt_modulos;
  354. $session_items[$item_key]['qt_usuarios_chave_envolvidos'] = $item->qt_usuarios_chave_envolvidos;
  355. $session_items[$item_key]['qt_meses'] = $item->qt_meses;
  356. $session_items[$item_key]['ds_tamanho'] = $item->ds_tamanho;
  357. }
  358. TSession::setValue(__CLASS__.'_items', $session_items);
  359. $this->form->setData($object); // fill the form with the active record data
  360. $this->onReload( $param ); // reload items list
  361. TTransaction::close(); // close transaction
  362. }
  363. else
  364. {
  365. $this->form->clear(TRUE);
  366. TSession::setValue(__CLASS__.'_items', null);
  367. $this->onReload( $param );
  368. }
  369. }
  370. catch (Exception $e) // in case of exception
  371. {
  372. new TMessage('error', $e->getMessage());
  373. TTransaction::rollback();
  374. }
  375. }
  376. /**
  377. * Save the Master/Detail data from form/session to database
  378. */
  379. public function onSave()
  380. {
  381. try
  382. {
  383. // open a transaction with database
  384. TTransaction::open('solicitacoes');
  385. $data = $this->form->getData();
  386. $master = new pessoa_juridica;
  387. $master->fromArray( (array) $data);
  388. $this->form->validate(); // form validation
  389. $master->store(); // save master object
  390. // delete details
  391. $old_items = Pj_Migracao::where('pessoa_juridica_id', '=', $master->id)->load();
  392. $keep_items = array();
  393. // get session items
  394. $items = TSession::getValue(__CLASS__.'_items');
  395. if( $items )
  396. {
  397. foreach( $items as $item )
  398. {
  399. if (substr($item['id'],0,1) == 'X' ) // new record
  400. {
  401. $detail = new Pj_Migracao;
  402. }
  403. else
  404. {
  405. $detail = Pj_Migracao::find($item['id']);
  406. }
  407. // LINHA DO AVISO
  408. $detail->ie_complexidade = $item['ie_complexidade'];
  409. $detail->ie_tipo_atendimento = $item['ie_tipo_atendimento'];
  410. $detail->ie_estrutura_servidor = $item['ie_estrutura_servidor'];
  411. $detail->qt_analistas = $item['qt_analistas'];
  412. $detail->ind_maturidade_informatica = $item['ind_maturidade_informatica'];
  413. $detail->ind_maturidade_usuario_chave = $item['ind_maturidade_usuario_chave'];
  414. $detail->qt_funcoes = $item['qt_funcoes'];
  415. $detail->qt_perfis = $item['qt_perfis'];
  416. $detail->qt_funcao_perfil = $item['qt_funcao_perfil'];
  417. $detail->qt_modulos = $item['qt_modulos'];
  418. $detail->qt_usuarios_chave_envolvidos = $item['qt_usuarios_chave_envolvidos'];
  419. $detail->qt_meses = $item['qt_meses'];
  420. $detail->ds_tamanho = $item['ds_tamanho'];
  421. $detail->pessoa_juridica_id = $master->id;
  422. // LINHA DO ERRO
  423. $detail->store();
  424. $keep_items[] = $detail->id;
  425. }
  426. }
  427. if ($old_items)
  428. {
  429. foreach ($old_items as $old_item)
  430. {
  431. if (!in_array( $old_item->id, $keep_items))
  432. {
  433. $old_item->delete();
  434. }
  435. }
  436. }
  437. TTransaction::close(); // close the transaction
  438. // reload form and session items
  439. $this->onEdit(array('key'=>$master->id));
  440. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  441. }
  442. catch (Exception $e) // in case of exception
  443. {
  444. new TMessage('error', $e->getMessage());
  445. $this->form->setData( $this->form->getData() ); // keep form data
  446. TTransaction::rollback();
  447. }
  448. }
  449. /**
  450. * Show the page
  451. */
  452. public function show()
  453. {
  454. // check if the datagrid is already loaded
  455. if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onReload') )
  456. {
  457. $this->onReload( func_get_arg(0) );
  458. }
  459. parent::show();
  460. }
  461. }
  462. </code>



As Classes estão assim:

Pessoa Jurídica

 
  1. <?php
  2. /**
  3. * pessoa_juridica Active Record
  4. * @author <your-name-here>
  5. */
  6. class pessoa_juridica extends TRecord
  7. {
  8. const TABLENAME = 'pessoa_juridica';
  9. const PRIMARYKEY= 'id';
  10. const IDPOLICY = 'serial'; // {max, serial}
  11. private $pj_contatoss;
  12. private $pj_migracaos;
  13. /**
  14. * Constructor method
  15. */
  16. public function __construct($id = NULL, $callObjectLoad = TRUE)
  17. {
  18. parent::__construct($id, $callObjectLoad);
  19. parent::addAttribute('cg_cgc');
  20. parent::addAttribute('nm_pessoa_juridica');
  21. parent::addAttribute('ds_endereco');
  22. parent::addAttribute('ds_email');
  23. }
  24. /**
  25. * Method addpj_contatos
  26. * Add a pj_contatos to the pessoa_juridica
  27. * @param $object Instance of pj_contatos
  28. */
  29. public function addpj_contatos(pj_contatos $object)
  30. {
  31. $this->pj_contatoss[] = $object;
  32. }
  33. /**
  34. * Method getpj_contatoss
  35. * Return the pessoa_juridica' pj_contatos's
  36. * @return Collection of pj_contatos
  37. */
  38. public function getpj_contatoss()
  39. {
  40. return $this->pj_contatoss;
  41. }
  42. /**
  43. * Method addPj_migracao
  44. * Add a Pj_migracao to the pessoa_juridica
  45. * @param $object Instance of Pj_migracao
  46. */
  47. public function addPj_migracao(Pj_migracao $object)
  48. {
  49. $this->pj_migracaos[] = $object;
  50. }
  51. /**
  52. * Method getPj_migracaos
  53. * Return the pessoa_juridica' Pj_migracao's
  54. * @return Collection of Pj_migracao
  55. */
  56. public function getPj_migracaos()
  57. {
  58. return $this->pj_migracaos;
  59. }
  60. /**
  61. * Method getsolicitacaos
  62. */
  63. public function getsolicitacaos()
  64. {
  65. $criteria = new TCriteria;
  66. $criteria->add(new TFilter('pessoa_juridica_id', '=', $this->id));
  67. return solicitacao::getObjects( $criteria );
  68. }
  69. /**
  70. * Reset aggregates
  71. */
  72. public function clearParts()
  73. {
  74. $this->pj_contatoss = array();
  75. $this->pj_migracaos = array();
  76. }
  77. /**
  78. * Load the object and its aggregates
  79. * @param $id object ID
  80. */
  81. public function load($id)
  82. {
  83. // load the related pj_contatos objects
  84. $repository = new TRepository('pj_contatos');
  85. $criteria = new TCriteria;
  86. $criteria->add(new TFilter('pessoa_juridica_id', '=', $id));
  87. $this->pj_contatoss = $repository->load($criteria);
  88. // load the related Pj_migracao objects
  89. $repository = new TRepository('Pj_migracao');
  90. $criteria = new TCriteria;
  91. $criteria->add(new TFilter('pessoa_juridica_id', '=', $id));
  92. $this->pj_migracaos = $repository->load($criteria);
  93. // load the object itself
  94. return parent::load($id);
  95. }
  96. /**
  97. * Store the object and its aggregates
  98. */
  99. public function store()
  100. {
  101. // store the object itself
  102. parent::store();
  103. // delete the related pj_contatos objects
  104. $criteria = new TCriteria;
  105. $criteria->add(new TFilter('pessoa_juridica_id', '=', $this->id));
  106. $repository = new TRepository('pj_contatos');
  107. $repository->delete($criteria);
  108. // store the related pj_contatos objects
  109. if ($this->pj_contatoss)
  110. {
  111. foreach ($this->pj_contatoss as $pj_contatos)
  112. {
  113. unset($pj_contatos->id);
  114. $pj_contatos->pessoa_juridica_id = $this->id;
  115. $pj_contatos->store();
  116. }
  117. }
  118. // delete the related Pj_migracao objects
  119. $criteria = new TCriteria;
  120. $criteria->add(new TFilter('pessoa_juridica_id', '=', $this->id));
  121. $repository = new TRepository('Pj_migracao');
  122. $repository->delete($criteria);
  123. // store the related Pj_migracao objects
  124. if ($this->pj_migracaos)
  125. {
  126. foreach ($this->pj_migracaos as $pj_migracao)
  127. {
  128. unset($pj_migracao->id);
  129. $pj_migracao->pessoa_juridica_id = $this->id;
  130. $pj_migracao->store();
  131. }
  132. }
  133. }
  134. /**
  135. * Delete the object and its aggregates
  136. * @param $id object ID
  137. */
  138. public function delete($id = NULL)
  139. {
  140. $id = isset($id) ? $id : $this->id;
  141. // delete the related pj_contatos objects
  142. $repository = new TRepository('pj_contatos');
  143. $criteria = new TCriteria;
  144. $criteria->add(new TFilter('pessoa_juridica_id', '=', $id));
  145. $repository->delete($criteria);
  146. // delete the related Pj_migracao objects
  147. $repository = new TRepository('Pj_migracao');
  148. $criteria = new TCriteria;
  149. $criteria->add(new TFilter('pessoa_juridica_id', '=', $id));
  150. $repository->delete($criteria);
  151. // delete the object itself
  152. parent::delete($id);
  153. }
  154. }
  155. </code>



PJ_MIGRACAO

 
  1. <?php
  2. /**
  3. * Pj_migracao Active Record
  4. * @author <your-name-here>
  5. */
  6. class Pj_migracao extends TRecord
  7. {
  8. const TABLENAME = 'pj_migracao';
  9. const PRIMARYKEY= 'id';
  10. const IDPOLICY = 'serial'; // {max, serial}
  11. /**
  12. * Constructor method
  13. */
  14. public function __construct($id = NULL, $callObjectLoad = TRUE)
  15. {
  16. parent::__construct($id, $callObjectLoad);
  17. parent::addAttribute('ie_complexidade');
  18. parent::addAttribute('pessoa_juridica_id');
  19. }
  20. }
  21. </code>






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

https://www.adianti.com.br/forum/pt/view_2546?masterdetail-nao-editando-os-regis