'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();
}
}