Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/wbs24.ozonapinew/lib/ |
Upload File : |
<?php namespace Wbs24\Ozonapinew; use Bitrix\Main\SystemException; use Bitrix\Main\Loader; use Bitrix\Main\Localization\Loc; class OrderNumber { use Exception; // trait use Accounts; // trait use OrdersHelper; // trait protected const XML_ID_PREFIX = 'OZON'; public function __construct($objects = []) { try { $this->main = $objects['Main'] ?? new Main(); $this->moduleId = $this->main->getModuleId(); $this->wrappers = new Wrappers($objects); if (!Loader::IncludeModule('sale')) { throw new SystemException("Sale module isn`t installed"); } } catch (SystemException $exception) { $this->exceptionHandler($exception); } } public static function generateOrderNumber($orderId, $type) { $orderNumber = new OrderNumber(); if ( $orderNumber->checkIsOrderFromTraidingPlatform($orderId) && $orderId > 0 ) { $externalId = $orderNumber->getExternalId($orderId); $newOrderNumberTemplate = false; if ($externalId) { $newOrderNumberTemplate = $orderNumber->createOrderNumber($orderId, $externalId); } if ($newOrderNumberTemplate) { return $newOrderNumberTemplate; } else { return false; } } return false; } protected function createOrderNumber($orderId, $postingNumber) { $isOrderIdSnippet = strpos($this->orderNumberTemplate, '{ORDER_ID}'); $isExternalIdSnippet = strpos($this->orderNumberTemplate, '{ORDER_OZON}'); if ($isOrderIdSnippet === false && $isExternalIdSnippet === false) { return false; } else { $patterns = [ '/{DAY}/', '/{MONTH}/', '/{YEAR}/', '/{ORDER_OZON}/', '/{ORDER_ID}/' ]; $replacements = [ date('d'), date('m'), date('Y'), $postingNumber, $orderId ]; $newOrderNumber = preg_replace($patterns, $replacements, $this->orderNumberTemplate); return $newOrderNumber; } } }