| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- Lib::loadClass('RouteBase');
- Lib::loadClass('DBG');
- Lib::loadClass('UI');
- Lib::loadClass('User');
- class Route_UrlAction_UserProNetMediaZaliczkaWniosekRemove extends RouteBase {
- public function handleAuth() {
- if (!User::logged()) {
- User::authByRequest();
- }
- }
- public function getActionLabel() { return "Anuluj Wniosek"; }
- public function getActionDescription() { return "Anuluj 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 cancelAction() {
- UI::gora();
- UI::menu();
- UI::startContainer();
- try {
- $props = $this->getProps([
- 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
- ]);
- $affected = $props['wniosekAcl']->updateItem([
- 'id' => $props['idZaliczkaWniosek'],
- 'status' => "Anulowany"
- ]);
- DBG::log(['msg'=>"update Wniosek(affected={$affected})", '$wniosek'=>$wniosek]);
- UI::alert('success', "Wniosek o zaliczkę został anulowany");
- 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 (!$props['wniosek']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} nie został odnaleziony w bazie danych");
- if ('Anulowany' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został już anulowany wcześniej");
- if ('Odrzucony' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został odrzucony");
- if ('Zatwierdzony' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został 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");
- echo $this->viewWniosek($props['wniosek']);
- echo UI::h('div', ['style' => "text-align:center; padding:32px"], [
- UI::h('a', [
- 'href' => $this->getLink('cancel') . "&idZaliczkaWniosek={$props['idZaliczkaWniosek']}",
- 'class' => "btn btn-lg btn-danger",
- 'style' => "margin-left:24px"
- ], "Anuluj wniosek o zaliczkę"),
- ]);
- 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);
- }
- 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']}"),
- ]);
- }
- }
|