'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 {$props['wniosek']['workerLogin']}:"); 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: " . UI::price($wniosek['kwota']) . ""), 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(); } }