%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.14.136.121 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; use Bitrix\Main\Localization; Localization\Loc::loadMessages(__FILE__); /** * Class CashboxBitrixV3 * @package Bitrix\Sale\Cashbox */ class CashboxBitrixV3 extends CashboxBitrixV2 { public function buildCheckQuery(Check $check) { $result = parent::buildCheckQuery($check); if ($this->isContainMarkingCode($result)) { $result['validateMarkingCodes'] = true; } return $result; } protected function isContainMarkingCode(array $check) : bool { if (isset($check['items'])) { foreach ($check['items'] as $item) { if ( isset($item['imcParams']) && !empty($item['imcParams']['imc']) ) { return true; } } } return false; } protected function buildPosition(array $checkData, array $item) { $position = parent::buildPosition($checkData, $item); $position['measurementUnit'] = (int)$this->getValueFromSettings('MEASURE', $item['measure_code']); if (isset($position['nomenclatureCode'])) { unset($position['nomenclatureCode']); } if (isset($item['marking_code'])) { $position['imcParams'] = [ 'imcType' => 'auto', 'imc' => base64_encode($item['marking_code']), 'itemEstimatedStatus' => $this->buildEstimatedStatus($checkData), 'imcModeProcessing' => 0, ]; } return $position; } protected function buildEstimatedStatus(array $checkData) : string { if (mb_strpos($checkData['type'], 'sellreturn') === 0) { return 'itemPieceReturn'; } return 'itemPieceSold'; } /** * @return array */ protected function getPaymentObjectMap() { $result = parent::getPaymentObjectMap(); $result[Check::PAYMENT_OBJECT_COMMODITY_MARKING_NO_MARKING_EXCISE] = 'exciseWithoutMarking '; $result[Check::PAYMENT_OBJECT_COMMODITY_MARKING_EXCISE] = 'exciseWithMarking '; $result[Check::PAYMENT_OBJECT_COMMODITY_MARKING_NO_MARKING] = 'commodityWithoutMarking '; $result[Check::PAYMENT_OBJECT_COMMODITY_MARKING] = 'commodityWithMarking'; return $result; } /** * @return string */ public static function getName() { return Localization\Loc::getMessage('SALE_CASHBOX_BITRIX_V3_TITLE'); } /** * @param int $modelId * @return array */ public static function getSettings($modelId = 0) { $settings = parent::getSettings($modelId); $kkmList = static::getSupportedKkmModels(); if (isset($kkmList[$modelId])) { $settings['MEASURE'] = static::getMeasureSettings(); } return $settings; } protected static function getMeasureSettings(): array { $measureItems = []; if (Main\Loader::includeModule('catalog')) { $measuresList = \CCatalogMeasure::getList(); while ($measure = $measuresList->fetch()) { $measureItems[$measure['CODE']] = [ 'TYPE' => 'STRING', 'LABEL' => $measure['MEASURE_TITLE'], 'REQUIRED' => 'Y', 'VALUE' => MeasureCodeToTag2108Mapper::getTag2108Value($measure['CODE']), ]; } } return [ 'LABEL' => Localization\Loc::getMessage('SALE_CASHBOX_MEASURE_SUPPORT_SETTINGS'), 'ITEMS' => $measureItems, ]; } /** * @inheritDoc */ public static function getFfdVersion(): ?float { return 1.2; } }