Fatal error: Cannot use object of type Boa Dia, Tenho um sistema de Biblioteca, na devolução do livro fora de prazo com multa, esta informando o erro abaixo, o que posso fazer para corrgir isso. Fatal error: Cannot use object of type SysBiblioteca as array in C:Program Files (x86)NetMakev81wwwrootbibliotecaappcontrolbibliotecaSysDevolucao.class.php on line 319 318 // default order 319 if (empty($p...
AP
Fatal error: Cannot use object of type  
Boa Dia,

Tenho um sistema de Biblioteca, na devolução do livro fora de prazo com multa, esta informando o erro abaixo, o que posso fazer para corrgir isso.

Fatal error: Cannot use object of type SysBiblioteca as array in C:Program Files (x86)NetMakev81wwwrootbibliotecaappcontrolbibliotecaSysDevolucao.class.php on line 319

318 // default order
319 if (empty($param['order']))
{
$param['order'] = 'Tbr_idcontrole';
}
if (empty($param['direction']))
{
$param['direction'] = 'desc';
}

Segue a fonte:

 
  1. <?php
  2. /**
  3. * SysDevolucao Listing
  4. * @package biblioteca
  5. * @version 5.19.562 ( 28/03/2019 )
  6. * @framework Adianti Studio Pro 5.6
  7. */
  8. class SysDevolucao extends TPage
  9. {
  10. private $form; // form
  11. private $datagrid; // listing
  12. private $pageNavigation;
  13. private $formgrid;
  14. private $loaded;
  15. private $deleteButton;
  16. /**
  17. * Class constructor
  18. * Creates the page, the form and the listing
  19. */
  20. public function __construct()
  21. {
  22. parent::__construct();
  23. // creates the form
  24. $this->form = new TQuickForm('form_search_SysRetiradasAcervo');
  25. $this->form->class = 'tform'; // change CSS class
  26. $this->form->style = 'display: table;width:100%'; // change style
  27. $this->form->setFormTitle('EMPRÉSTIMO / RENOVA / DEVOLVE');
  28. // create the form fields
  29. $Tbr_idregistro = new TSeekButton('Tbr_idregistro');
  30. $Tbr_titulo = new TEntry('Tbr_titulo');
  31. $Tbr_idusuario = new TSeekButton('Tbr_idusuario');
  32. $Tbr_nmusuario = new TEntry('Tbr_nmusuario');
  33. $Tbr_retini = new TDate('Tbr_retini');
  34. $Tbr_retfin = new TDate('Tbr_retfin');
  35. $Tbr_devini = new TDate('Tbr_devini');
  36. $Tbr_devfin = new TDate('Tbr_devfin');
  37. $Tbr_idregistro->setAction( new TAction(array( 'SeekAcervoDevList', 'onReload' )));
  38. $Tbr_idusuario->setAction( new TAction(array( 'SeekUsuarioRetList', 'onReload' )));
  39. $Tbr_titulo->setEditable(FALSE);
  40. $Tbr_nmusuario->setEditable(FALSE);
  41. $Tbr_idregistro->setSize(100);
  42. $Tbr_titulo->setSize(400);
  43. $Tbr_idusuario->setSize(100);
  44. $Tbr_nmusuario->setSize(400);
  45. $Tbr_retini->setSize(95);
  46. $Tbr_retini->setMask('dd/mm/yyyy');
  47. $Tbr_retini->setDatabaseMask('yyyy-mm-dd');
  48. $Tbr_retfin->setSize(95);
  49. $Tbr_retfin->setMask('dd/mm/yyyy');
  50. $Tbr_retfin->setDatabaseMask('yyyy-mm-dd');
  51. $Tbr_devini->setSize(95);
  52. $Tbr_devini->setMask('dd/mm/yyyy');
  53. $Tbr_devini->setDatabaseMask('yyyy-mm-dd');
  54. $Tbr_devfin->setSize(95);
  55. $Tbr_devfin->setMask('dd/mm/yyyy');
  56. $Tbr_devfin->setDatabaseMask('yyyy-mm-dd');
  57. // add the fields
  58. $this->form->addQuickFields('REGISTRO', array($Tbr_idregistro, $Tbr_titulo));
  59. $this->form->addQuickFields('USUARIO', array($Tbr_idusuario, $Tbr_nmusuario));
  60. $this->form->addQuickFields('RETIRADA >> <<', array($Tbr_retini, $Tbr_retfin));
  61. $this->form->addQuickFields('DEVOLUCAO >> <<', array($Tbr_devini, $Tbr_devfin));
  62. // keep the form filled during navigation with session data
  63. $this->form->setData( TSession::getValue('SysRetiradaAcervo_filter_data') );
  64. // add the search form actions
  65. $this->form->addQuickAction('BUSCA', new TAction(array($this, 'onSearch')), 'fa:search');
  66. $this->form->addQuickAction('NOVO', new TAction(array('SysRetiradaAcervo', 'onEdit')), 'bs:plus-sign green');
  67. $this->form->addQuickAction('ACERVO', new TAction(array('SysAcervoConsulta', 'onReload')), 'fa:book');
  68. $this->form->addQuickAction('USUARIOS', new TAction(array('TbUsuarioLista', 'onReload')), 'fa:user');
  69. $this->form->addQuickAction('MULTAS', new TAction(array('SysMultasBaixaLista', 'onReload')), 'fa:credit-card');
  70. $this->form->addQuickAction('RECIBOS', new TAction(array('SysRecibosLista', 'onReload')), 'fa:usd');
  71. // creates a Datagrid
  72. $this->datagrid = new TDataGrid;
  73. $this->datagrid->style = 'width: 100%';
  74. $this->datagrid->datatable = 'true';
  75. // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
  76. // creates the datagrid columns
  77. $column_Tbr_idcontrole = new TDataGridColumn('Tbr_idcontrole', 'ID', 'center');
  78. $column_Tbr_idregistro = new TDataGridColumn('Tbr_idregistro', 'ACERVO', 'center');
  79. $column_Tbr_titulo = new TDataGridColumn('tb_acervo_cons->Tba_titulo', 'TITULO', 'left', 200);
  80. $column_Tbr_idusuario = new TDataGridColumn('Tbr_idusuario', 'USER', 'center');
  81. $column_Tbr_leitor = new TDataGridColumn('tb_usuario->Tbu_nome', 'NOME', 'left');
  82. $column_Tbr_retirada = new TDataGridColumn('Tbr_retirada', 'RETIRADA', 'center');
  83. $column_Tbr_devolucao = new TDataGridColumn('Tbr_devolucao', 'DEVOLVER', 'center');
  84. $column_Tbr_devolvido = new TDataGridColumn('Tbr_devolvido', 'DEVOLVIDO', 'center');
  85. $column_Tbr_renovado = new TDataGridColumn('Tbr_renovado', 'RNV', 'center');
  86. $column_Tbr_renovado->setTransformer( function($value, $object, $row) {
  87. $class = ($value < 1) ? 'danger' : 'success';
  88. $label = ($value < 1) ? '' : $value;
  89. $div = new TElement('span');
  90. $div->class="label label-{$class}";
  91. $div->style="text-shadow:none; font-size:12px; font-weight:lighter";
  92. $div->add($label);
  93. return $div;
  94. });
  95. // define data no formato br, apenas para o registros pagos
  96. $column_Tbr_devolvido->setTransformer( function($value, $object, $row) {
  97. if ($value)
  98. {
  99. $date = new DateTime($value);
  100. return $date->format('d/m/Y');
  101. }
  102. });
  103. // add the columns to the DataGrid
  104. $this->datagrid->addColumn($column_Tbr_idcontrole);
  105. $this->datagrid->addColumn($column_Tbr_idregistro);
  106. $this->datagrid->addColumn($column_Tbr_titulo);
  107. $this->datagrid->addColumn($column_Tbr_idusuario);
  108. $this->datagrid->addColumn($column_Tbr_leitor);
  109. $this->datagrid->addColumn($column_Tbr_retirada);
  110. $this->datagrid->addColumn($column_Tbr_devolucao);
  111. $this->datagrid->addColumn($column_Tbr_devolvido);
  112. $this->datagrid->addColumn($column_Tbr_renovado);
  113. // creates the datagrid column actions
  114. $order_Tbr_idregistro = new TAction(array($this, 'onReload'));
  115. $order_Tbr_idregistro->setParameter('order', 'Tbr_idregistro');
  116. $column_Tbr_idregistro->setAction($order_Tbr_idregistro);
  117. $order_Tbr_idusuario = new TAction(array($this, 'onReload'));
  118. $order_Tbr_idusuario->setParameter('order', 'Tbr_idusuario');
  119. $column_Tbr_idusuario->setAction($order_Tbr_idusuario);
  120. $order_Tbr_retirada = new TAction(array($this, 'onReload'));
  121. $order_Tbr_retirada->setParameter('order', 'Tbr_retirada');
  122. $column_Tbr_retirada->setAction($order_Tbr_retirada);
  123. $order_Tbr_devolucao = new TAction(array($this, 'onReload'));
  124. $order_Tbr_devolucao->setParameter('order', 'Tbr_devolucao');
  125. $column_Tbr_devolucao->setAction($order_Tbr_devolucao);
  126. // define the transformer method over image
  127. $column_Tbr_retirada->setTransformer( function($value, $object, $row) {
  128. $date = new DateTime($value);
  129. return $date->format('d/m/Y');
  130. });
  131. // define the transformer method over image
  132. $column_Tbr_devolucao->setTransformer( function($value, $object, $row) {
  133. $date = new DateTime($value);
  134. return $date->format('d/m/Y');
  135. });
  136. // create EDIT action
  137. $action_edit = new TDataGridAction(array('SysRetiradaAcervo', 'onEdit'));
  138. $action_edit->setButtonClass('btn btn-default');
  139. $action_edit->setLabel(_t('Edit'));
  140. $action_edit->setImage('fa:pencil-square-o blue fa-lg');
  141. $action_edit->setField('Tbr_idcontrole');
  142. // $this->datagrid->addAction($action_edit);
  143. // create RENOVA action
  144. $action_ren = new TDataGridAction(array($this, 'onRenova'));
  145. $action_ren->setButtonClass('btn btn-default');
  146. $action_ren->setLabel('RENOVAR');
  147. $action_ren->setImage('fa:refresh orange fa-lg');
  148. $action_ren->setField('Tbr_idcontrole');
  149. $this->datagrid->addAction($action_ren);
  150. //$action_ren->setDisplayCondition( array($this, 'verificaRenovacao') );
  151. // create DEVOLVE action
  152. $action_devo = new TDataGridAction(array($this, 'onDevolve'));
  153. $action_devo->setButtonClass('btn btn-default');
  154. $action_devo->setLabel('DEVOLVER');
  155. $action_devo->setImage('fa:book fa-lg');
  156. $action_devo->setField('Tbr_idcontrole');
  157. // $action_devo->setDisplayCondition( array($this, 'displayColumn') );
  158. $this->datagrid->addAction($action_devo);
  159. // create the datagrid model
  160. $this->datagrid->createModel();
  161. // creates the page navigation
  162. $this->pageNavigation = new TPageNavigation;
  163. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  164. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  165. // vertical box container
  166. $container = new TVBox;
  167. $container->style = 'width: 100%';
  168. $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  169. $container->add($this->form);
  170. $container->add($this->datagrid);
  171. $container->add($this->pageNavigation);
  172. parent::add($container);
  173. }
  174. /**
  175. * Inline record editing
  176. * @param $param Array containing:
  177. * key: object ID value
  178. * field name: object attribute to be updated
  179. * value: new attribute content
  180. */
  181. public function onInlineEdit($param)
  182. {
  183. try
  184. {
  185. // get the parameter $key
  186. $field = $param['field'];
  187. $key = $param['key'];
  188. $value = $param['value'];
  189. TTransaction::open('biblioteca'); // open a transaction with database
  190. $object = new SysRetiradasAcervo($key); // instantiates the Active Record
  191. $object->{$field} = $value;
  192. $object->store(); // update the object in the database
  193. TTransaction::close(); // close the transaction
  194. $this->onReload($param); // reload the listing
  195. new TMessage('info', "Registro atualizado");
  196. }
  197. catch (Exception $e) // in case of exception
  198. {
  199. new TMessage('error', '<b>Error</b> ' . $e->getMessage()); // shows the exception error message
  200. TTransaction::rollback(); // undo all pending operations
  201. }
  202. }
  203. /**
  204. * Register the filter in the session
  205. */
  206. public function onSearch()
  207. {
  208. // get the search form data
  209. $data = $this->form->getData();
  210. // clear session filters
  211. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_idregistro', NULL);
  212. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_idusuario', NULL);
  213. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_retirada', NULL);
  214. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_devolucao', NULL);
  215. if (isset($data->Tbr_idregistro) AND ($data->Tbr_idregistro)) {
  216. $filter = new TFilter('Tbr_idregistro', '=', "$data->Tbr_idregistro"); // create the filter
  217. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_idregistro', $filter); // stores the filter in the session
  218. }
  219. if (isset($data->Tbr_idusuario) AND ($data->Tbr_idusuario)) {
  220. $filter = new TFilter('Tbr_idusuario', '=', "$data->Tbr_idusuario"); // create the filter
  221. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_idusuario', $filter); // stores the filter in the session
  222. }
  223. if ($data->Tbr_retini AND $data->Tbr_retini) {
  224. $filter = new TFilter('Tbr_retirada', 'between', $data->Tbr_retini, $data->Tbr_retfin); // create the filter
  225. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_retirada', $filter); // stores the filter in the session
  226. }
  227. if ($data->Tbr_devini AND $data->Tbr_devfin) {
  228. $filter = new TFilter('Tbr_devolucao', 'between', $data->Tbr_devini, $data->Tbr_devfin); // create the filter
  229. TSession::setValue('SysRetiradaAcervoLista_filter_Tbr_devolucao', $filter); // stores the filter in the session
  230. }
  231. // fill the form with data again
  232. $this->form->setData($data);
  233. // keep the search data in the session
  234. TSession::setValue('SysRetiradaAcervo_filter_data', $data);
  235. $param=array();
  236. $param['offset'] =0;
  237. $param['first_page']=1;
  238. $this->onReload($param);
  239. }
  240. /**
  241. * Display column conditional
  242. */
  243. public function displayColumn( $object )
  244. {
  245. if ($data->Tbr_devolvido)
  246. {
  247. return FALSE;
  248. }
  249. return TRUE;
  250. }
  251. /**
  252. * Load the datagrid with data
  253. */
  254. public function onReload($param = NULL)
  255. {
  256. try
  257. {
  258. // open a transaction with database 'biblioteca'
  259. TTransaction::open('biblioteca');
  260. // creates a repository for SysRetiradasAcervo
  261. $repository = new TRepository('SysRetiradasAcervo');
  262. $limit = 20;
  263. // creates a criteria
  264. $criteria = new TCriteria;
  265. $criteria->add(new TFilter('Tbr_devolvido', 'IS', NULL));
  266. <b>
  267. // default order
  268. if (empty($param['order']))
  269. {
  270. $param['order'] = 'Tbr_idcontrole';
  271. }
  272. if (empty($param['direction']))
  273. {
  274. $param['direction'] = 'desc';
  275. }
  276. </b>
  277. $criteria->setProperties($param); // order, offset
  278. $criteria->setProperty('limit', $limit);
  279. if (TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_idregistro')) {
  280. $criteria->add(TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_idregistro')); // add the session filter
  281. }
  282. if (TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_idusuario')) {
  283. $criteria->add(TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_idusuario')); // add the session filter
  284. }
  285. if (TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_retirada')) {
  286. $criteria->add(TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_retirada')); // add the session filter
  287. }
  288. if (TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_devolucao')) {
  289. $criteria->add(TSession::getValue('SysRetiradaAcervoLista_filter_Tbr_devolucao')); // add the session filter
  290. }
  291. // load the objects according to criteria
  292. $objects = $repository->load($criteria, FALSE);
  293. if (is_callable($this->transformCallback))
  294. {
  295. call_user_func($this->transformCallback, $objects, $param);
  296. }
  297. $this->datagrid->clear();
  298. if ($objects)
  299. {
  300. // iterate the collection of active records
  301. foreach ($objects as $object)
  302. {
  303. // add the object inside the datagrid
  304. $this->datagrid->addItem($object);
  305. }
  306. }
  307. // reset the criteria for record count
  308. $criteria->resetProperties();
  309. $count= $repository->count($criteria);
  310. $this->pageNavigation->setCount($count); // count of records
  311. $this->pageNavigation->setProperties($param); // order, page
  312. $this->pageNavigation->setLimit($limit); // limit
  313. // close the transaction
  314. TTransaction::close();
  315. $this->loaded = true;
  316. }
  317. catch (Exception $e) // in case of exception
  318. {
  319. // shows the exception error message
  320. new TMessage('error', $e->getMessage());
  321. // undo all pending operations
  322. TTransaction::rollback();
  323. }
  324. }
  325. /**
  326. * Ask before deletion
  327. */
  328. public function onDelete($param)
  329. {
  330. // define the delete action
  331. $action = new TAction(array($this, 'Delete'));
  332. $action->setParameters($param); // pass the key parameter ahead
  333. // shows a dialog to the user
  334. new TQuestion(AdiantiCoreTranslator::translate('Do you really want to delete ?'), $action);
  335. }
  336. /**
  337. * Delete a record
  338. */
  339. public function Delete($param)
  340. {
  341. try
  342. {
  343. $key=$param['key']; // get the parameter $key
  344. TTransaction::open('biblioteca'); // open a transaction with database
  345. $object = new SysRetiradasAcervo($key, FALSE); // instantiates the Active Record
  346. $object->delete(); // deletes the object from the database
  347. TTransaction::close(); // close the transaction
  348. $this->onReload( $param ); // reload the listing
  349. new TMessage('info', AdiantiCoreTranslator::translate('Record deleted')); // success message
  350. }
  351. catch (Exception $e) // in case of exception
  352. {
  353. new TMessage('error', $e->getMessage()); // shows the exception error message
  354. TTransaction::rollback(); // undo all pending operations
  355. }
  356. }
  357. /**
  358. * Ask before renewing
  359. */
  360. public function onRenova($param)
  361. {
  362. // define the delete action
  363. $action = new TAction(array($this, 'Renova'));
  364. $action->setParameters($param); // pass the key parameter ahead
  365. // shows a dialog to the user
  366. new TQuestion(('Confirma RENOVAÇÃO do Acervo ?'), $action);
  367. }
  368. /**
  369. * Renewing acervo
  370. */
  371. public function Renova($param)
  372. {
  373. try
  374. {
  375. $key=$param['key']; // get the parameter $key
  376. TTransaction::open('biblioteca'); // open a transaction with database
  377. $object = new SysRetiradasAcervo($key); // instantiates the Active Record
  378. $usuario = $object->tb_usuario;
  379. if ($object->Tbr_renovado > $usuario->categoria->Tca_reno_qtde)
  380. {
  381. throw new Exception('ATENÇÃO: LIMITE DE RENOVAÇÃO ATINGIDO.');
  382. }
  383. elseif (date('Y-m-d') > $object->Tbr_devolucao)
  384. {
  385. $dt_hoje = new DateTime();
  386. $dias = $dt_hoje->diff(new DateTime($object->Tbr_devolucao));
  387. $dias = $dias->format('%a');
  388. $pvmulta = new SysBiblioteca(1);
  389. $valor_multa = $dias * $pvmulta->Bib_multa_dia;
  390. $multa = new SysMultasBaixa();
  391. $multa->Tmu_idretirada = $object->Tbr_idcontrole;
  392. $multa->Tmu_idregistro = $object->Tbr_idregistro;
  393. $multa->Tmu_idusuario = $object->Tbr_idusuario;
  394. $multa->Tmu_retirada = $object->Tbr_retirada;
  395. $multa->Tmu_devolucao = $object->Tbr_devolucao;
  396. $multa->Tmu_multa_valor = $valor_multa;
  397. $multa->Tmu_multa_tipo = 2;
  398. $multa->Tmu_multa_paga = 1;
  399. $multa->Tmu_multa_opus = TSession::getValue('login');
  400. $multa->store();
  401. $dias_renovacao = $usuario->categoria->Tca_reno_dias;
  402. $object->Tbr_renovado++;
  403. $object->Tbr_opus_ren = TSession::getValue('login');
  404. $object->Tbr_opus_mul = TSession::getValue('login');
  405. $object->Tbr_devolucao = date('Y-m-d', strtotime("+{$dias_renovacao} days"));
  406. $ddev = date("w", strtotime($object->Tbr_devolucao));
  407. if ($ddev == 6) {
  408. $object->Tbr_devolucao = date('Y-m-d', strtotime("+2 days"));
  409. }
  410. if ($ddev == 0) {
  411. $object->Tbr_devolucao = date('Y-m-d', strtotime("+1 days"));
  412. }
  413. $object->store();
  414. $usuario->Tbu_debito += $valor_multa;
  415. $usuario->store();
  416. $valor_multa= number_format($valor_multa, 2, ',', '.');
  417. new TMessage('warning', "RENOVADO FORA DO PRAZO: VALOR DA MULTA = R$ <b>{$valor_multa}</b>"); // warning message
  418. }
  419. else
  420. {
  421. $object->Tbr_renovado++;
  422. $object->Tbr_opus_ren = TSession::getValue('login');
  423. $object->Tbr_devolucao = date('Y-m-d', strtotime("+{$usuario->categoria->Tca_reno_dias} days",strtotime($object->Tbr_devolucao)));
  424. $ddev = date("w", strtotime($object->Tbr_devolucao));
  425. if ($ddev == 6) {
  426. $object->Tbr_devolucao = date('Y-m-d', strtotime("+2 days"));
  427. }
  428. if ($ddev == 0) {
  429. $object->Tbr_devolucao = date('Y-m-d', strtotime("+1 days"));
  430. }
  431. $object->store();
  432. new TMessage('info', "RENOVAÇÃO EFETUADA COM SUCESSO"); // success message
  433. }
  434. TTransaction::close(); // close the transaction
  435. $this->onReload( $param ); // reload the listing
  436. }
  437. catch (Exception $e) // in case of exception
  438. {
  439. new TMessage('error', $e->getMessage()); // shows the exception error message
  440. TTransaction::rollback(); // undo all pending operations
  441. }
  442. }
  443. /**
  444. * Ask before return
  445. */
  446. public function onDevolve($param)
  447. {
  448. // define the delete action
  449. $action = new TAction(array($this, 'Devolve'));
  450. $action->setParameters($param); // pass the key parameter ahead
  451. // shows a dialog to the user
  452. new TQuestion(('Confirma DEVOLUÇÃO do Acervo ?'), $action);
  453. }
  454. /**
  455. * Devolve acervo
  456. */
  457. public function Devolve($param)
  458. {
  459. try
  460. {
  461. $key=$param['key']; // get the parameter $key
  462. TTransaction::open('biblioteca'); // open a transaction with database
  463. $object = new SysRetiradasAcervo($key); // instantiates the Active Record
  464. $usuario = $object->tb_usuario;
  465. <b>
  466. // Devolução com multa
  467. if (date('Y-m-d') > $object->Tbr_devolucao)
  468. {
  469. $dt_hoje = new DateTime();
  470. $dias = $dt_hoje->diff(new DateTime($object->Tbr_devolucao));
  471. $dias = $dias->format('%a');
  472. $param = new SysBiblioteca(1);
  473. $valor_multa = $dias * $param->Bib_multa_dia;
  474. $multa = new SysMultasBaixa();
  475. $multa->Tmu_idretirada = $object->Tbr_idcontrole;
  476. $multa->Tmu_idregistro = $object->Tbr_idregistro;
  477. $multa->Tmu_idusuario = $object->Tbr_idusuario;
  478. $multa->Tmu_retirada = $object->Tbr_retirada;
  479. $multa->Tmu_devolucao = $object->Tbr_devolucao;
  480. $multa->Tmu_devolvido = date('Y-m-d');
  481. $multa->Tmu_multa_valor = $valor_multa;
  482. $multa->Tmu_multa_tipo = 1;
  483. $multa->Tmu_multa_paga = 1;
  484. $multa->Tmu_multa_opus = TSession::getValue('login');
  485. $multa->store();
  486. $object->Tbr_opus_mul = TSession::getValue('login');
  487. $object->Tbr_opus_dev = TSession::getValue('login');
  488. $object->Tbr_devolvido = date('Y-m-d');
  489. $object->store();
  490. $registro = $object->tb_acervo_cons;
  491. $registro->Tba_idsituacao = 'B';
  492. $registro->Tba_data_devolucao = date('Y-m-d');
  493. $registro->store();
  494. $usuario->Tbu_debito += $valor_multa;
  495. $usuario->Tbu_retiradas -= 1;
  496. if ($usuario->Tbu_retiradas == 0) {
  497. $usuario->Tbu_tipo_emprestimo = 1;
  498. }
  499. $usuario->store();
  500. $valor_multa= number_format($valor_multa, 2, ',', '.');
  501. new TMessage('warning', "DEVOLUÇÃO FORA DO PRAZO: VALOR DA MULTA = R$ <b>{$valor_multa}</b>"); // warning message
  502. } </b>
  503. else
  504. {
  505. // Devolução no prazo sem multa
  506. $usuario->Tbu_retiradas--;
  507. if ($usuario->Tbu_retiradas == 0) {
  508. $usuario->Tbu_tipo_emprestimo = 1;
  509. }
  510. $usuario->store();
  511. $registro = $object->tb_acervo_cons;
  512. $registro->Tba_idsituacao = 'B';
  513. $registro->Tba_data_devolucao = date('Y-m-d');
  514. $registro->store();
  515. $object->Tbr_opus_dev = TSession::getValue('login');
  516. $object->Tbr_devolvido = date('Y-m-d');
  517. $object->store();
  518. new TMessage('info', "DEVOLUÇÃO EFETUADA COM SUCESSO"); // success message
  519. }
  520. TTransaction::close(); // close the transaction
  521. $this->onReload( $param ); // reload the listing
  522. }
  523. catch (Exception $e) // in case of exception
  524. {
  525. new TMessage('error', $e->getMessage()); // shows the exception error message
  526. TTransaction::rollback(); // undo all pending operations
  527. }
  528. }
  529. /**
  530. * method show()
  531. * Shows the page
  532. */
  533. public function show()
  534. {
  535. // check if the datagrid is already loaded
  536. if (!$this->loaded AND (!isset($_GET['method']) OR !(in_array($_GET['method'], array('onReload', 'onSearch')))) )
  537. {
  538. if (func_num_args() > 0)
  539. {
  540. $this->onReload( func_get_arg(0) );
  541. }
  542. else
  543. {
  544. $this->onReload();
  545. }
  546. }
  547. parent::show();
  548. }
  549. }

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


JR

Acho que o problema é aqui:

554 $param = new SysBiblioteca(1);
AP

Olá João Vitor,

Muito obrigado, resolveu o problema.