| 553 | |
| 554 | == Zmiana statusu dla wpisu w rejestrze == |
| 555 | |
| 556 | {{{ |
| 557 | require_once(MOD_PATH.'CRegisters/beans/CRegisterEntry.inc'); |
| 558 | |
| 559 | $id____ = id wpisu w rejestrze; |
| 560 | $tpstid = id statusu; |
| 561 | |
| 562 | $bean = new CRegisterEntry($id____); |
| 563 | |
| 564 | // tego ifa z zawartością można usunąć jeżeli bezwarunkowo chcemy zmienić status.. czyli bez sprawdzania uprawnień |
| 565 | if ($bean->get('tpstid')) { |
| 566 | $res = $this->db->select('types_of_processes_states', 'status,tpstnm', 'tpstid='.$bean->get('tpstid'), FALSE, PGSQL_ASSOC); |
| 567 | if (is_array($res)) { |
| 568 | $res = $res[0]; |
| 569 | $stat = $res['status']; |
| 570 | $desc = $res['tpstnm']; |
| 571 | |
| 572 | $can_change = ((($stat !== 'FINAL') && ($stat !== 'ACCEPTED')) || UserRights::checkSysAcc('bswfms.extras.privilages.status_change')); |
| 573 | if (!$can_change) { |
| 574 | if (($stat === 'ACCEPTED') && $bean->get('stcuid')) { |
| 575 | if (!($can_change = UserRights::checkUsrAcc($bean->get('stcuid')))) { |
| 576 | throw new UserRightsException(NULL, NULL, sprintf(Translator::translate('Zmianę statusu %s może dokonać osoba, która go ustawiła, jej przełożony lub inna osoba posiadająca prawo do stanowiska ustawiającego status.'), $desc)); |
| 577 | } |
| 578 | } |
| 579 | } |
| 580 | if (!$can_change) { |
| 581 | throw new UserRightsException(NULL, NULL, sprintf(Translator::translate('Zmianę statusu %s może dokonać osoba posiadająca odpowiedni przywilej.'), $desc)); |
| 582 | } |
| 583 | } |
| 584 | } |
| 585 | |
| 586 | $bean->set('tpstid', $tpstid); |
| 587 | $bean->save(); |
| 588 | }}} |