%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 52.14.48.138 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/ |
Upload File : |
<?php namespace Bitrix\Sale\Cashbox; use Bitrix\Main\Localization\Loc; use Bitrix\Main\NotImplementedException; use Bitrix\Sale\Result; use Bitrix\Main; /** * Class Ofd * @package Bitrix\Sale\Cashbox */ abstract class Ofd { protected const EVENT_ON_GET_CUSTOM_OFD_HANDLERS = 'OnGetCustomOfdHandlers'; private const BX_OFD_PREFIX = 'bx_'; /** * @return array * @throws NotImplementedException */ public static function getHandlerList() { $handlerList = self::getSystemHandlerList(); $event = new Main\Event('sale', static::EVENT_ON_GET_CUSTOM_OFD_HANDLERS); $event->send(); $resultList = $event->getResults(); if (is_array($resultList) && !empty($resultList)) { foreach ($resultList as $eventResult) { /** @var Main\EventResult $eventResult */ if ($eventResult->getType() === Main\EventResult::SUCCESS) { $params = $eventResult->getParameters(); if (!empty($params) && is_array($params)) { $handlerList = array_merge($handlerList, $params); } } } } return $handlerList; } /** * @return array */ private static function getSystemHandlerList() { return [ '\Bitrix\Sale\Cashbox\FirstOfd' => FirstOfd::getName(), '\Bitrix\Sale\Cashbox\PlatformaOfd' => PlatformaOfd::getName(), '\Bitrix\Sale\Cashbox\YarusOfd' => YarusOfd::getName(), '\Bitrix\Sale\Cashbox\TaxcomOfd' => TaxcomOfd::getName(), '\Bitrix\Sale\Cashbox\OfdruOfd' => OfdruOfd::getName(), '\Bitrix\Sale\Cashbox\TenzorOfd' => TenzorOfd::getName(), '\Bitrix\Sale\Cashbox\ConturOfd' => ConturOfd::getName(), ]; } /** * @return string */ final public static function getCode(): string { $reflectionOfdClass = new \ReflectionClass(static::class); $code = $reflectionOfdClass->getShortName(); $systemHandlers = array_keys(self::getSystemHandlerList()); if (in_array('\\' . static::class, $systemHandlers)) { $code = self::BX_OFD_PREFIX . $code; } return mb_strtolower($code); } /** * @param Cashbox $cashbox * @return null */ public static function create(Cashbox $cashbox) { $handler = $cashbox->getField('OFD'); if (class_exists($handler)) { return new $handler($cashbox); } return null; } /** * Ofd constructor. * @param Cashbox $cashbox */ private function __construct(Cashbox $cashbox) { $this->cashbox = $cashbox; } /** * @return string */ protected function getUrl() { return ''; } /** * @return array */ protected function getLinkParamsMap() { return array(); } /** * @param $data * @return string */ public function generateCheckLink($data) { $queryParams = array(); $map = $this->getLinkParamsMap(); foreach ($map as $queryKey => $checkKey) { if ($data[$checkKey]) $queryParams[] = $queryKey.'='.$data[$checkKey]; } if (empty($queryParams)) return ''; $url = $this->getUrl(); return $url.implode('&', $queryParams); } /** * @throws NotImplementedException * @return string */ public static function getName() { throw new NotImplementedException(); } /** * @return array */ public static function getSettings() { return array( 'OFD_MODE' => array( 'LABEL' => Loc::getMessage('SALE_CASHBOX_OFD_SETTINGS'), 'ITEMS' => array( 'IS_TEST' => array( 'TYPE' => 'Y/N', 'LABEL' => Loc::getMessage('SALE_CASHBOX_OFD_TEST_MODE'), 'VALUE' => 'N' ) ) ) ); } /** * @param $settings * @return Result */ public function validate() { return new Result(); } /** * @param $name * @param $code * @return mixed */ public function getValueFromSettings($name, $code = null) { $map = $this->cashbox->getField('OFD_SETTINGS'); if (isset($map[$name])) { if (is_array($map[$name])) { if (isset($map[$name][$code])) return $map[$name][$code]; } else { return $map[$name]; } } return null; } /** * @return bool */ protected function isTestMode() { return $this->getValueFromSettings('OFD_MODE', 'IS_TEST') === 'Y'; } }