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/cvetdv.ru/bitrix/modules/yandex.market/lib/trading/entity/common/ |
Upload File : |
<?php namespace Yandex\Market\Trading\Entity\Common; use Yandex\Market; use Bitrix\Main; class UserGroup extends Market\Trading\Entity\Reference\UserGroup { protected $id; public function getId() { if ($this->id === null) { $this->id = $this->searchGroup(); } return $this->id; } public function install(array $data = []) { $fullData = $this->getDefaultData() + $data; $result = new Main\Entity\AddResult(); $addProvider = new \CGroup(); $addResult = $addProvider->Add($fullData); if ($addResult !== false) { $this->id = $addResult; $result->setId($addResult); } else { $error = new Main\Error($addProvider->LAST_ERROR); $result->addError($error); } return $result; } public function migrate($code) { $data = $this->getMigrateData($code); $updateResult = $this->update($data); if ($updateResult->isSuccess()) { $this->serviceCode = $code; } return $updateResult; } protected function getMigrateData($code) { $currentData = $this->getDefaultData(); $newData = $this->getDefaultData($code); return array_diff($newData, $currentData); } public function update(array $data) { $groupId = $this->getId(); $result = new Main\Entity\UpdateResult(); if ($groupId === null) { $error = new Main\Error('cant update not installed group'); $result->addError($error); } else if (!empty($data)) { $updateProvider = new \CGroup(); $updateResult = $updateProvider->Update($groupId, $data); if ($updateResult === false) { $error = new Main\Error($updateProvider->LAST_ERROR); $result->addError($error); } } return $result; } protected function getDefaultData($serviceCode = null) { if ($serviceCode === null) { $serviceCode = $this->serviceCode; } return [ 'ACTIVE' => 'Y', 'C_SORT' => 1000, 'IS_SYSTEM' => 'Y', 'ANONYMOUS' => 'N', 'STRING_ID' => $this->getXmlId($serviceCode), ]; } protected function searchGroup() { $result = null; $query = Main\GroupTable::getList([ 'filter' => [ '=STRING_ID' => $this->getXmlId(), ], 'select' => [ 'ID', ], 'limit' => 1, ]); if ($row = $query->fetch()) { $result = (int)$row['ID']; } return $result; } protected function getXmlId($serviceCode = null) { if ($serviceCode === null) { $serviceCode = $this->serviceCode; } $serviceCodeLower = Market\Data\TextString::toLower($serviceCode); return 'yamarket_' . $serviceCodeLower; } }