%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.139.98.0 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sale/lib/cashbox/internals/analytics/ |
Upload File : |
<?php namespace Bitrix\Sale\Cashbox\Internals\Analytics; use Bitrix\Sale\Internals\Analytics, Bitrix\Sale\Cashbox\CheckManager, Bitrix\Sale\Cashbox\Manager, Bitrix\Main\Type\DateTime; /** * Class Cachbox * @package Bitrix\Sale\Internals\Analytics */ final class Provider extends Analytics\Provider { private const TYPE = 'cashbox'; /** * @return string */ public static function getCode(): string { return self::TYPE; } /** * @param DateTime $dateFrom * @param DateTime $dateTo * @return array * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\ObjectPropertyException * @throws \Bitrix\Main\SystemException */ protected function getProviderData(DateTime $dateFrom, DateTime $dateTo): array { $result = []; /** @var \Bitrix\Sale\Cashbox\Cashbox $cashboxHandler */ foreach ($this->getCashboxHandlers() as $cashboxHandler) { $checkData = $this->getCheckData($cashboxHandler, $dateFrom, $dateTo); if ($checkData) { $result[] = [ 'cashbox' => $cashboxHandler::getCode(), 'date_time' => $checkData['date_time'], ]; } } return $result; } /** * @return string[] */ private function getCashboxHandlers(): array { return [ \Bitrix\Sale\Cashbox\CashboxOrangeData::class, \Bitrix\Sale\Cashbox\CashboxCheckbox::class, \Bitrix\Sale\Cashbox\CashboxBusinessRu::class, \Bitrix\Sale\Cashbox\CashboxAtolFarmV5::class, \Bitrix\Sale\Cashbox\CashboxBusinessRuV5::class, \Bitrix\Sale\Cashbox\CashboxOrangeDataFfd12::class, ]; } /** * @param string $cashboxHandler * @param DateTime $dateFrom * @param DateTime $dateTo * @return array * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\ObjectPropertyException * @throws \Bitrix\Main\SystemException */ private function getCheckData(string $cashboxHandler, DateTime $dateFrom, DateTime $dateTo): array { $cashboxIdList = $this->getCashboxIdList($cashboxHandler); if (!$cashboxIdList) { return []; } $result = []; $checkData = CheckManager::getList([ 'select' => ['ID', 'DATE_PRINT_END'], 'filter' => [ 'CASHBOX_ID' => $cashboxIdList, 'STATUS' => 'Y', '>=DATE_PRINT_END' => $dateFrom, '<=DATE_PRINT_END' => $dateTo, ], 'limit' => 1, 'order' => ['ID' => 'DESC'], ])->fetch(); if ($checkData) { $result = [ 'date_time' => $checkData['DATE_PRINT_END']->format('Y-m-01'), ]; } return $result; } /** * @param string $cashboxHandler * @return array|array[]|null[] * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\ObjectPropertyException * @throws \Bitrix\Main\SystemException */ private function getCashboxIdList(string $cashboxHandler): array { $result = []; $cashboxList = Manager::getList([ 'select' => ['ID'], 'filter' => [ '=HANDLER' => '\\'.$cashboxHandler, ], ])->fetchAll(); if ($cashboxList) { $result = array_column($cashboxList, 'ID'); } return $result; } }