%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.142.133.147
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/main/lib/numerator/service/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/main/lib/numerator/service/numeratorrequestmanager.php
<?php
namespace Bitrix\Main\Numerator\Service;

use Bitrix\Main\Entity\ReferenceField;
use Bitrix\Main\Error;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Numerator\Generator\SequentNumberGenerator;
use Bitrix\Main\Numerator\Model\NumeratorSequenceTable;
use Bitrix\Main\Numerator\Model\NumeratorTable;
use Bitrix\Main\Numerator\Numerator;
use Bitrix\Main\Result;

/**
 * Class NumeratorRequestManager
 * @package Bitrix\Main\Numerator\Model
 */
class NumeratorRequestManager
{
	/*** @var \Bitrix\Main\HttpRequest */
	private $request;

	/**
	 * NumeratorRequestManager constructor.
	 * @param \Bitrix\Main\HttpRequest $request
	 */
	public function __construct($request)
	{
		$this->request = $request;
	}

	/**
	 * @return \Bitrix\Main\Entity\AddResult|\Bitrix\Main\Entity\UpdateResult|Result
	 * @throws \Bitrix\Main\ArgumentException
	 * @throws \Bitrix\Main\NotImplementedException
	 * @throws \Bitrix\Main\ObjectException
	 * @throws \Bitrix\Main\ObjectPropertyException
	 * @throws \Bitrix\Main\SystemException
	 */
	public function saveFromRequest()
	{
		$numeratorConfig = $this->request->getPost(Numerator::getType());
		$id = $numeratorConfig ['id'];
		if ($id)
		{
			$result = $this->updateNextSequentialNumber($id);
			if ($result->isSuccess())
			{
				$result = Numerator::update($id, $this->request->getPostList()->toArray());
			}
		}
		else
		{
			$numerator = Numerator::create();
			$result = $numerator->setConfig($this->request->getPostList()->toArray());
			if ($result->isSuccess())
			{
				$result = $numerator->save();
			}
		}
		return $result;
	}

	/**
	 * @param $id
	 * @return Result
	 * @throws \Bitrix\Main\ArgumentException
	 * @throws \Bitrix\Main\ObjectPropertyException
	 * @throws \Bitrix\Main\SystemException
	 */
	private function updateNextSequentialNumber($id)
	{
		$sequenceConfig = $this->request->getPost(SequentNumberGenerator::getType());
		$result = new Result();
		if ($sequenceConfig !== null && is_array($sequenceConfig)
			&& array_key_exists('nextNumberForSequence', $sequenceConfig) && $sequenceConfig['nextNumberForSequence'])
		{
			$nextNumber = $sequenceConfig['nextNumberForSequence'];
			if (is_numeric($nextNumber))
			{
				$sequence = NumeratorTable::query()
					->registerRuntimeField('',
						new ReferenceField(
							'ref',
							NumeratorSequenceTable::class,
							['=this.ID' => 'ref.NUMERATOR_ID']
						)
					)
					->addSelect(('ID'))
					->addSelect('ref.NEXT_NUMBER', 'NEXT_NUMBER')
					->addSelect('ref.TEXT_KEY', 'TEXT_KEY')
					->where('ID', $id)
					->exec()
					->fetchAll();

				if ($sequence && count($sequence) == 1)
				{
					$numerator = Numerator::load($id);
					if ($numerator)
					{
						$res = $numerator->setNextSequentialNumber($nextNumber, $sequence[0]['NEXT_NUMBER'], $sequence[0]['TEXT_KEY']);
						if (!$res->isSuccess())
						{
							$errors = $res->getErrors();
							return $result->addError($errors[0]);
						}
					}
				}
			}
			else
			{
				return $result->addError(new Error(Loc::getMessage('MAIN_NUMERATOR_EDIT_ERROR_NUMBER_NOT_NUMERIC')));
			}
		}
		return $result;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit