| Server IP : 37.9.174.138 / Your IP : 216.73.216.117 Web Server : Apache System : Linux vps6.backend.sk 6.12.100+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.100-1 (2026-07-30) x86_64 User : ftpuser ( 1001) PHP Version : 8.4.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/backend-accounting.sk/app/modules/quirk/code/ |
Upload File : |
<?php
namespace modules\quirk\code;
use app\classes\BasicUser;
use app\classes\PDODatabase;
class ExtendedUser {
protected $user;
protected $db;
public function __construct(BasicUser $user) {
$this->user = $user;
$this->db = PDODatabase::getInstance();
}
public function _get($columnName) {
return $this->user->_get($columnName);
}
/**
* @return ?\modules\dpfob\code\DPFOB
*/
public function getDPFOB($id, $idColumn = 'id') {
$item = new \modules\dpfob\code\DPFOB($id, $idColumn);
if ($this->user->getType() === \app\constants\UserType::CONSULTANT) {
if ($item->getStatus() !== \modules\dpfob\code\DPFOBStatus::WAITING_FOR_ACCOUNTANT && $item->getAccountant()?->_get('id') !== $this->user->_get('id')) {
throw new \Exception('Nemáte oprávnenie vykonať túto akciu pre DPFO B ' . $item->getPublicId(), \app\constants\HttpReponseCodes::HTTP_UNAUTHORIZED);
}
}
return $item;
}
public function getInvoicesSumMonth($month, $year) {
$firstDay = new \DateTime("$year-$month-01");
$startDate = $firstDay->format('Y-m-d');
$lastDay = new \DateTime("$year-$month-01");
$lastDay->modify('last day of this month');
$endDate = $lastDay->format('Y-m-d');
return $this->getInvoicesSum($startDate, $endDate);
}
public function getInvoicesSum($startDate, $endDate) {
$sum = $this->db->getValue(''
. 'SELECT '
. ' SUM((((payouts_invoices_items.qty * payouts_invoices_items.unit_price) - (payouts_invoices_items.unit_price * payouts_invoices_items.discount_percentage / 100)) * IF(payouts_invoices.invoice_type=:creditNotice, -1, 1))) '
. 'FROM '
. ' payouts_invoices '
. 'LEFT JOIN '
. ' payouts_invoices_items ON payouts_invoices.id = payouts_invoices_items.payouts_invoices_id AND payouts_invoices_items.state=:ACTIVE '
. 'WHERE '
. ' (DATE(payouts_invoices.date) BETWEEN :start_date AND :end_date) AND '
. ' payouts_invoices_items.code_user=:code_user', [
'ACTIVE' => \app\constants\State::ACTIVE,
'start_date' => $startDate,
'end_date' => $endDate,
'code_user' => $this->_get('personalno'),
'creditNotice' => \modules\payouts\code\InvoiceType::CREDIT_NOTICE,
]);
return floatval($sum);
}
/**
* @return \app\classes\PDOCollection
*/
public function getSalaryItems($period) {
return new \app\classes\PDOCollection('salary_items', 'id', 'SELECT * FROM salary_items WHERE users_id=:users_id AND period=:period AND ('
. '(state=:ACTIVE AND type=:FIXED) OR (type=:VARIABLE)'
. ')', [
'users_id' => $this->_get('id'),
'period' => $period,
'ACTIVE' => \app\constants\State::ACTIVE,
'FIXED' => \modules\payouts\code\SalaryItem::TYPE_FIXED,
'VARIABLE' => \modules\payouts\code\SalaryItem::TYPE_VARIABLE,
]);
}
public function getSalaryItemsSum($period) {
return floatval($this->db->getValue('SELECT SUM(amount) FROM salary_items WHERE users_id=:users_id AND period=:period AND state=:ACTIVE', [
'users_id' => $this->_get('id'),
'period' => $period,
'ACTIVE' => \app\constants\State::ACTIVE
]));
}
}