UserProNetMediaZaliczkaWniosekRemove.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. Lib::loadClass('RouteBase');
  3. Lib::loadClass('DBG');
  4. Lib::loadClass('UI');
  5. Lib::loadClass('User');
  6. class Route_UrlAction_UserProNetMediaZaliczkaWniosekRemove extends RouteBase {
  7. public function handleAuth() {
  8. if (!User::logged()) {
  9. User::authByRequest();
  10. }
  11. }
  12. public function getActionLabel() { return "Anuluj Wniosek"; }
  13. public function getActionDescription() { return "Anuluj Wniosek o Zaliczkę"; }
  14. public function getActionArgs() {
  15. return [
  16. 'idZaliczkaWniosek' => 'Nr wniosku o zaliczkę'
  17. ];
  18. }
  19. public function getProps($args) {
  20. $idZaliczkaWniosek = V::get('idZaliczkaWniosek', 0, $_GET, 'int');
  21. if ($idZaliczkaWniosek <= 0) throw new Exception("Missing param idZaliczkaWniosek");
  22. $wniosekAcl = ACL::getStorageByNamespace('default_db/ZALICZKA_WNIOSEK/ZaliczkaWniosek');
  23. $wniosek = $wniosekAcl->getItem($idZaliczkaWniosek);
  24. if (!$wniosek) throw new Exception("Wniosek o numerze {$idZaliczkaWniosek} nie został odnaleziony w bazie danych");
  25. $props = [
  26. 'idZaliczkaWniosek' => $idZaliczkaWniosek,
  27. 'wniosekAcl' => $wniosekAcl,
  28. 'wniosek' => $wniosek,
  29. ];
  30. return $props;
  31. }
  32. public function cancelAction() {
  33. UI::gora();
  34. UI::menu();
  35. UI::startContainer();
  36. try {
  37. $props = $this->getProps([
  38. 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
  39. ]);
  40. $affected = $props['wniosekAcl']->updateItem([
  41. 'id' => $props['idZaliczkaWniosek'],
  42. 'status' => "Anulowany"
  43. ]);
  44. DBG::log(['msg'=>"update Wniosek(affected={$affected})", '$wniosek'=>$wniosek]);
  45. UI::alert('success', "Wniosek o zaliczkę został anulowany");
  46. echo $this->viewWniosek($props['wniosek']);
  47. } catch (Exception $e) {
  48. UI::alert('danger', $e->getMessage());
  49. DBG::log($e);
  50. }
  51. UI::endContainer();
  52. UI::dol();
  53. }
  54. public function defaultAction() {
  55. UI::gora();
  56. UI::menu();
  57. UI::startContainer();
  58. try {
  59. $props = $this->getProps([
  60. 'idZaliczkaWniosek' => V::get('idZaliczkaWniosek', 0, $_GET, 'int')
  61. ]);
  62. if (!$props['wniosek']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} nie został odnaleziony w bazie danych");
  63. if ('Anulowany' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został już anulowany wcześniej");
  64. if ('Odrzucony' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został odrzucony");
  65. if ('Zatwierdzony' == $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} został zatwierdzony");
  66. // if ('Oczekuje zatwierdzenia' !== $props['wniosek']['status']) throw new Exception("Wniosek o numerze {$props['idZaliczkaWniosek']} ma nieznany status");
  67. echo UI::h('h1', [], "Wniosek o wypłatę zaliczki");
  68. echo $this->viewWniosek($props['wniosek']);
  69. echo UI::h('div', ['style' => "text-align:center; padding:32px"], [
  70. UI::h('a', [
  71. 'href' => $this->getLink('cancel') . "&idZaliczkaWniosek={$props['idZaliczkaWniosek']}",
  72. 'class' => "btn btn-lg btn-danger",
  73. 'style' => "margin-left:24px"
  74. ], "Anuluj wniosek o zaliczkę"),
  75. ]);
  76. echo UI::h('hr');
  77. echo UI::h('h3', [], "Pozostałe wnioski pracownika <code>{$props['wniosek']['workerLogin']}</code>:");
  78. Router::getRoute('UrlAction_UserProNetMediaZaliczka')->viewWidgetUserWnioski($props['wniosek']['workerID']);
  79. } catch (Exception $e) {
  80. UI::alert('danger', $e->getMessage());
  81. DBG::log($e);
  82. }
  83. UI::endContainer();
  84. UI::dol();
  85. }
  86. public function viewWniosek($wniosek) {
  87. return UI::h('blockquote', [], [
  88. UI::h('p', [], "Nr: {$wniosek['id']}"),
  89. UI::h('p', [], "Autor: {$wniosek['workerLogin']}"),
  90. UI::h('p', [], "Data zgłoszenia: {$wniosek['created']}"),
  91. UI::h('p', [], "Kwota: <b>" . UI::price($wniosek['kwota']) . "</b>"),
  92. UI::h('p', [], "Uwagi: {$wniosek['uwagi']}"),
  93. ]);
  94. }
  95. }