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/sale/lib/delivery/extra_services/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/sale/lib/delivery/extra_services/base.php
<?php

namespace Bitrix\Sale\Delivery\ExtraServices;

use Bitrix\Main\ArgumentNullException;
use Bitrix\Sale\Internals\Input;
use Bitrix\Sale\Shipment;

abstract class Base
{
	protected $id;
	protected $code;
	protected $name = '';
	protected $description = '';
	protected $className = __CLASS__;
	protected $params = array();
	protected $rights = array (
		Manager::RIGHTS_ADMIN_IDX => 'N',
		Manager::RIGHTS_MANAGER_IDX => 'N',
		Manager::RIGHTS_CLIENT_IDX => 'N'
	);
	protected $deliveryId = 0;
	protected $initial = '';
	protected $active = false;
	protected $sort = 100;
	protected $value = null;
	protected $currency = '';
	protected $operatingCurrency = '';

	abstract public static function getClassTitle();

	public function __construct($id, array $initParams, $currency, $value = null, array $additionalParams = array())
	{
		if ($id == '')
		{
			throw new ArgumentNullException('id');
		}

		$initParams['CODE'] ??= '';
		$initParams['NAME'] ??= '';
		$initParams['DESCRIPTION'] ??= null;
		$initParams['PARAMS'] ??= [];
		if (!is_array($initParams['PARAMS']))
		{
			$initParams['PARAMS'] = [];
		}
		$initParams['DELIVERY_ID'] ??= null;
		$initParams['INIT_VALUE'] ??= null;
		$initParams['ACTIVE'] = (string)($initParams['ACTIVE'] ?? 'N');
		$initParams['SORT'] ??= null;

		$this->id = $id;
		$this->code = $initParams['CODE'];
		$this->name = $initParams['NAME'];
		$this->description = $initParams['DESCRIPTION'];
		$this->className = $initParams['CLASS_NAME'];
		$this->params = $initParams['PARAMS'];
		$this->rights = $initParams['RIGHTS'];
		$this->deliveryId = $initParams['DELIVERY_ID'];
		$this->initial = $initParams['INIT_VALUE'];
		$this->active = $initParams['ACTIVE'];
		$this->sort = $initParams['SORT'];

		$this->currency = $currency;
		$this->operatingCurrency = $currency;

		if ($value !== null)
		{
			$this->setValue($value);
		}
		elseif ($this->initial !== null)
		{
			$this->setValue($this->initial);
		}
	}

	public function setValue($value)
	{
		$this->value = $value;
	}

	public function getName()
	{
		return $this->name;
	}

	public function getDescription()
	{
		return $this->description;
	}

	public function getValue()
	{
		return $this->value;
	}

	public function getEditControl($prefix = '', $value = false)
	{
		if($prefix <> '')
			$name = $prefix;
		else
			$name = $this->id;

		if(!$value)
			$value = $this->value;

		return Input\Manager::getEditHtml($name, $this->params, $value);
	}

	public function getViewControl()
	{
		return Input\Manager::getViewHtml($this->params, $this->value);
	}

	/**
	 * @return float
	 * @deprecated
	 * use \Bitrix\Sale\Delivery\ExtraServices\Base::getPriceShipment()
	 */

	public function getPrice()
	{
		$result = false;

		if(isset($this->params['PRICE']))
			$result = $this->convertToOperatingCurrency($this->params['PRICE']);

		return $result;
	}

	protected function convertToOtherCurrency($value, $currency)
	{
		$result = floatval($value);

		if($result <= 0)
			return $value;

		if($this->currency == '' || $currency == '')
			return $value;

		if($this->currency == $currency)
			return $value;

		static $rates = null;

		if($rates === null)
		{
			if(\Bitrix\Main\Loader::includeModule('currency'))
				$rates = new \CCurrencyRates;
			else
				$rates = false;
		}

		if($rates)
			$result = $rates->convertCurrency($result,  $this->currency, $currency);
		else
			$result = $value;

		return $result;
	}

	protected function convertToOperatingCurrency($value)
	{
		return $this->convertToOtherCurrency($value, $this->operatingCurrency);
	}

	public static function prepareParamsToSave(array $params)
	{
		return $params;
	}

	public function canUserEditValue()
	{
		return $this->rights[Manager::RIGHTS_CLIENT_IDX] == 'Y';
	}

	public function canManagerEditValue()
	{
		return $this->rights[Manager::RIGHTS_MANAGER_IDX] == 'Y';
	}

	public function getAdminDefaultControl($prefix = '', $value = false)
	{
		return $this->getEditControl($prefix, $value);
	}

	public static function getAdminParamsControl($name, array $params, $currency = '')
	{
		return false;
	}

	public function isStore()
	{
		return $this->className == '\Bitrix\Sale\Delivery\ExtraServices\Store';
	}

	public function getParams()
	{
		return $this->params;
	}

	public static function isInner()
	{
		return false;
	}

	public function setOperatingCurrency($currency)
	{
		$this->operatingCurrency = $currency;
	}

	public function getOperatingCurrency()
	{
		return $this->operatingCurrency;
	}

	public function getCode()
	{
		return $this->code;
	}

	public function getId()
	{
		return $this->id;
	}

	public function getCostShipment(Shipment $shipment = null)
	{
		return $this->getCost();
	}

	/**
	 * @return float
	 * @deprecated
	 * use \Bitrix\Sale\Delivery\ExtraServices\Base::getCostShipment()
	 */
	public function getCost()
	{
		return 0;
	}

	public static function isEmbeddedOnly()
	{
		return false;
	}

	public function getPriceShipment(Shipment $shipment = null)
	{
		return $this->getPrice();
	}

	/**
	 * @return string|null
	 */
	public function getDisplayValue(): ?string
	{
		return is_null($this->value) ? null : (string)$this->value;
	}

	/**
	 * @return string|null
	 */
	public function getInitial()
	{
		return $this->initial;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit