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/tools.php
<?php

namespace Grain\Iiko;

//Loc::loadMessages(__FILE__);

use \Bitrix\Main\Config\Option;
use \Bitrix\Main\Loader;

class Tools
{
	public static function getCode($name,$iblockId,$entity,$existingId=0)
	{
		static $codeSettings = false;
				
		if($codeSettings===false)
		{
			$codeSettings = array();
			$codeSettings['element'] = \Bitrix\Iblock\IblockFieldTable::getList(array(
				'filter' => array(
					'IBLOCK_ID' => $iblockId,
					'FIELD_ID' => 'CODE',
				)
			))->fetch();
			if($codeSettings['element']) 
				$codeSettings['element']['DEFAULT_VALUE'] = unserialize($codeSettings['element']['DEFAULT_VALUE']);
			$codeSettings['element']['DEFAULT_VALUE'] = is_array($codeSettings['element']['DEFAULT_VALUE'])?$codeSettings['element']['DEFAULT_VALUE']:array();

			$codeSettings['section'] = \Bitrix\Iblock\IblockFieldTable::getList(array(
				'filter' => array(
					'IBLOCK_ID' => $iblockId,
					'FIELD_ID' => 'SECTION_CODE',
				)
			))->fetch();
			if($codeSettings['section']) 
				$codeSettings['section']['DEFAULT_VALUE'] = unserialize($codeSettings['section']['DEFAULT_VALUE']);
			$codeSettings['section']['DEFAULT_VALUE'] = is_array($codeSettings['section']['DEFAULT_VALUE'])?$codeSettings['section']['DEFAULT_VALUE']:array();
		}
		
		$settings = $codeSettings[$entity];
		
		if($settings['IS_REQUIRED']!='Y' && $settings['DEFAULT_VALUE']['TRANSLITERATION']!='Y')
			return false;

		$code = \CUtil::translit($name, LANGUAGE_ID, array(
			"max_len" => intval($settings['DEFAULT_VALUE']['TRANS_LEN'])>0?intval($settings['DEFAULT_VALUE']['TRANS_LEN']):100,
			"change_case" => $settings['DEFAULT_VALUE']['TRANS_CASE'],
			"replace_space" => $settings['DEFAULT_VALUE']['TRANS_SPACE'],
			"replace_other" => $settings['DEFAULT_VALUE']['TRANS_OTHER'],
			"delete_repeat_replace" => $settings['DEFAULT_VALUE']['TRANS_EAT']=='Y',
        ));
		
		if($settings['DEFAULT_VALUE']['UNIQUE']=='Y')
		{
			$codeBase = $code;
			$i=1;
			while($i<10000)
			{
				$code = $codeBase.($i>1?$settings['DEFAULT_VALUE']['TRANS_SPACE'].$i:"");
				if($entity=='element')
				{
					$filter = array(
						'IBLOCK_ID'=>$iblockId,
						'=CODE'=>$code,
					);
					if($existingId)
						$filter['!ID'] = $existingId;
					$result = \Bitrix\Iblock\ElementTable::getList(array(
						'select' => array('CNT'),
						'runtime' => array(
							new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)'),
						),
						'filter' => $filter,
					));
					if($row = $result->Fetch())
					{
						if(intval($row['CNT'])<=0)
							break;
					}
					else
						break;
				}
				elseif($entity=='section')
				{
					$filter = array(
						'IBLOCK_ID'=>$iblockId,
						'=CODE'=>$code,
					);
					if($existingId)
						$filter['!ID'] = $existingId;					
					$result = \Bitrix\Iblock\SectionTable::getList(array(
						'select' => array('CNT'),
						'runtime' => array(
							new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)'),
						),
						'filter' => $filter,
					));
					if($row = $result->Fetch())
					{
						if(intval($row['CNT'])<=0)
							break;
					}
					else
						break;
				}
				else
					break;
				$i++;
			}
		}		
		return $code;
	}

	public static function getIgnoredPaysystemId($restaurantId)
	{
		$ignoredPaySystemId = array();
		if($discountPaySystemId=intval(Option::get('grain.iiko','iiko_paysystem_discount_'.$restaurantId)))
			$ignoredPaySystemId[] = $discountPaySystemId;
		if(
			Loader::includeModule('grain.iikocard') 
			&& ($iikoCardPaySystemId=\Grain\IikoCard\Helper::getPaySystemId($restaurantId))
		) 
			$ignoredPaySystemId[] = $iikoCardPaySystemId;
		return $ignoredPaySystemId;
	}
	
	public static function getMeasure($productId)
	{
		static $measures = array();
		if(!Loader::includeModule('catalog'))
			return array();
		$rsProduct = \Bitrix\Catalog\ProductTable::getList(array(
			'select' => array('MEASURE'),
			'filter' => array('=ID'=>intval($productId)),
			'limit' => 1,
		));
		if(!$product=$rsProduct->fetch())
			return array();
		if(!$product['MEASURE'])
			return array();
		if(array_key_exists($product['MEASURE'], $measures))
			return $measures[$product['MEASURE']];
		$rsMeasure = \Bitrix\Catalog\MeasureTable::getList(array(
			'filter' => array('=ID'=>$product['MEASURE']),
			'select' => array('ID', 'CODE', 'MEASURE_TITLE','SYMBOL','SYMBOL_LETTER_INTL'),
			'limit' => 1,
		));
		if($measure=$rsMeasure->fetch())
		{
			if (empty($measure['MEASURE_TITLE']))
			{
				$measure['MEASURE_TITLE'] = \CCatalogMeasureClassifier::getMeasureTitle($measure['CODE'], 'MEASURE_TITLE');
			}
			if (empty($measure['SYMBOL']))
			{
				$measure['SYMBOL'] = \CCatalogMeasureClassifier::getMeasureTitle($measure['CODE'], 'SYMBOL_RUS');
			}
			$measures[$product['MEASURE']] = $measure;
		}
		return $measures[$product['MEASURE']];
	}

	public static function getMeasureRatio($productId)
	{
		$measureRatio = 1;
		if(!Loader::includeModule('catalog'))
			return $measureRatio;
		$ratioIterator = \Bitrix\Catalog\MeasureRatioTable::getList(array(
			'select' => array('PRODUCT_ID', 'RATIO'),
			'filter' => array('=PRODUCT_ID' => intval($productId), '=IS_DEFAULT' => 'Y')
		));
		if(($measureRatioRow = $ratioIterator->fetch()))
		{
			$ratioInt = (int)$measureRatioRow['RATIO'];
			$ratioFloat = (float)$measureRatioRow['RATIO'];
			$ratioResult  = ($ratioFloat > $ratioInt ? $ratioFloat : $ratioInt);
			if($ratioResult>=CATALOG_VALUE_EPSILON)
				$measureRatio = $ratioResult;
		}
		return $measureRatio;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit