| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- <?php
- Lib::loadClass('RouteBase');
- Lib::loadClass('DBG');
- Lib::loadClass('UI');
- Lib::loadClass('User');
- class Route_UrlAction_UserProNetMediaZaliczkaWniosekConfirm extends RouteBase {
- public function handleAuth() {
- if (!User::logged()) {
- User::authByRequest();
- }
- }
- public function getActionLabel() { return "Zatwierdź Wniosek"; }
- public function getActionDescription() { return "Zatwierdź Wniosek o Zaliczkę"; }
- public function getActionArgs() {
- return [
- 'idZaliczkaWniosek' => 'Nr wniosku o zaliczkę'
- ];
- }
- public function getProps($args) {
- $idZaliczkaWniosek = V::get('idZaliczkaWniosek', 0, $_GET, 'int');
- if ($idZaliczkaWniosek <= 0) throw new Exception("Missing param idZaliczkaWniosek");
- $wniosekAcl = ACL::getStorageByNamespace('default_db/ZALICZKA_WNIOSEK/ZaliczkaWniosek');
- $wniosek = $wniosekAcl->getItem($idZaliczkaWniosek);
- if (!$wniosek) throw new Exception("Wniosek o numerze {$idZaliczkaWniosek} nie został odnaleziony w bazie danych");
- $props = [
- 'idZaliczkaWniosek' => $idZaliczkaWniosek,
- 'wniosekAcl' => $wniosekAcl,
- 'wniosek' => $wniosek,
- ];
- return $props;
- }
- public function confirmAction() {
- UI::gora();
- UI::menu();
- UI::startContainer();
- try {
- $props = $this->getProps([
- 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
- ]);
- $affected = $props['wniosekAcl']->updateItem([
- 'id' => $props['wniosek']['id'],
- 'status' => "Zatwierdzony",
- 'approvedBy' => User::getLogin()
- ]);
- DBG::log(['msg'=>"update Wniosek(affected={$affected})", '$wniosek'=>$wniosek]);
- $zaliczkaAcl = ACL::getStorageByNamespace('default_db/ZALICZKA/Zaliczka');
- $id = $zaliczkaAcl->addItem([
- 'kwota' => $props['wniosek']['kwota'],
- 'worker' => [
- 'id' => $props['wniosek']['workerID'],
- ],
- 'uwagi' => $props['wniosek']['uwagi'],
- 'approvedBy' => User::getLogin()
- ]);
- DBG::log(['msg'=>"add Zaliczka(id={$id})"]);
- if (!$id) throw new Exception("Nie udało się utworzyć zaliczki");
- UI::alert('success', "Wniosek zatwierdzony");
- echo $this->viewWniosek($props['wniosek']);
- } catch (Exception $e) {
- UI::alert('danger', $e->getMessage());
- DBG::log($e);
- }
- UI::endContainer();
- UI::dol();
- }
- public function rejectAction() {
- UI::gora();
- UI::menu();
- UI::startContainer();
- try {
- $props = $this->getProps([
- 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
- ]);
- $affected = $props['wniosekAcl']->updateItem([
- 'id' => $props['wniosek']['id'],
- 'status' => "Odrzucony",
- 'approvedBy' => User::getLogin()
- ]);
- DBG::log(['msg'=>"update Wniosek(affected={$affected})", '$wniosek'=>$wniosek]);
- UI::alert('info', "Wniosek o zaliczkę został odrzucony");
- echo $this->viewWniosek($props['wniosek']);
- } catch (Exception $e) {
- UI::alert('danger', $e->getMessage());
- DBG::log($e);
- }
- UI::endContainer();
- UI::dol();
- }
- public function defaultAction() {
- UI::gora();
- UI::menu();
- UI::startContainer();
- try {
- $props = $this->getProps([
- 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
- ]);
- if ('Anulowany' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został wcześniej anulowany");
- if ('Odrzucony' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został wcześniej odrzucony");
- if ('Zatwierdzony' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został już wcześniej zatwierdzony");
- // if ('Oczekuje zatwierdzenia' !== $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} ma nieznany status");
- echo UI::h('h1', [], "Wniosek o wypłatę zaliczki");
- DBG::log(['msg'=>'wniosek', 'wniosek'=>$props['wniosek']]);
- echo $this->viewWniosek($props['wniosek']);
- echo UI::h('div', ['style' => "text-align:center; padding:32px"], [
- UI::h('a', [
- 'href' => Request::getPathUri() . "?_route=UrlAction_UserProNetMediaZaliczkaWniosekConfirm&idZaliczkaWniosek={$props['idZaliczkaWniosek']}&_task=confirm",
- 'class' => "btn btn-lg btn-primary",
- 'style' => "margin-left:30px"
- ], "Zatwierdź"),
- UI::h('a', [
- 'href' => Request::getPathUri() . "?_route=UrlAction_UserProNetMediaZaliczkaWniosekConfirm&idZaliczkaWniosek={$props['idZaliczkaWniosek']}&_task=reject",
- 'class' => "btn btn-lg btn-danger",
- 'style' => "margin-left:30px"
- ], "Odrzuć"),
- UI::h('a', [
- 'href' => $this->getLink('msgs') . "&idZaliczkaWniosek={$props['idZaliczkaWniosek']}",
- 'class'=>"btn btn-lg btn-warning",
- 'style'=>"margin-left:30px"
- ], "Do wyjaśnienia"),
- ]);
- echo UI::h('hr');
- echo UI::h('h3', [], "Pozostałe wnioski pracownika <code>{$props['wniosek']['workerLogin']}</code>:");
- Router::getRoute('UrlAction_UserProNetMediaZaliczka')->viewWidgetUserWnioski($props['wniosek']['workerID']);
- } catch (Exception $e) {
- UI::alert('danger', $e->getMessage());
- DBG::log($e);
- }
- if (!empty($_POST)) echo UI::h('script', [], "history.replaceState(null, '', window.location.href)");
- UI::endContainer();
- UI::dol();
- }
- public function viewWniosek($wniosek) {
- return UI::h('blockquote', [], [
- UI::h('p', [], "Nr: {$wniosek['id']}"),
- UI::h('p', [], "Autor: {$wniosek['workerLogin']}"),
- UI::h('p', [], "Data zgłoszenia: {$wniosek['created']}"),
- UI::h('p', [], "Kwota: <b>" . UI::price($wniosek['kwota']) . "</b>"),
- UI::h('p', [], "Uwagi: {$wniosek['uwagi']}"),
- ]);
- }
- public function msgsAction() {
- UI::gora();
- UI::menu();
- try {
- $props = $this->getProps([
- 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
- ]);
- UI::startContainer();
- echo UI::h('h1', [], "Wniosek o wypłatę zaliczki");
- DBG::log(['msg'=>'wniosek', 'wniosek'=>$props['wniosek']]);
- echo $this->viewWniosek($props['wniosek']);
- $idTable = ACL::getStorageByNamespace('default_db/zaliczka_wniosek_info_view')->getID();
- Router::getRoute('TableMsgs')->tableRowMsgs($idTable, $props['idZaliczkaWniosek']);
- } catch (Exception $e) {
- UI::alert('danger', $e->getMessage());
- }
- UI::dol();
- }
- }
|