Your IP : 13.58.18.190


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/sale/lib/exchange/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/sale/lib/exchange/exportonecsubordinatesale.php

<?php

namespace Bitrix\Sale\Exchange;


use Bitrix\Sale\Exchange\OneC\DocumentBase;
use Bitrix\Sale\Exchange\OneC\PaymentDocument;
use Bitrix\Sale\Exchange\OneC\ShipmentDocument;
use Bitrix\Sale\Exchange\OneC\SubordinateSale\ConverterFactory;
use Bitrix\Sale\Result;

final class ExportOneCSubordinateSale extends ExportOneCPackage
{
	/**
	 * @param $typeId
	 * @return IConverter
	 */
	protected function converterFactoryCreate($typeId)
	{
		return ConverterFactory::create($typeId);
	}

	/**
	 * @param $typeId
	 * @return DocumentBase
	 */
	protected function documentFactoryCreate($typeId)
	{
		return \Bitrix\Sale\Exchange\OneC\SubordinateSale\DocumentFactory::create($typeId);
	}

	/**
	 * @param DocumentBase[] $documents
	 */
	protected function convertDocumentFields(array $documents)
	{
		parent::convertDocumentFields($documents);

		$documentOrder = $this->getDocumentByTypeId(EntityType::ORDER, $documents);
		$fieldsOrder = $documentOrder->getFieldValues();
		foreach ($documents as $document)
		{
			if($document instanceof PaymentDocument || $document instanceof ShipmentDocument)
			{

				$fieldsOrder['SUBORDINATES'][] = $document->getFieldValues();
			}
		}
		$documentOrder->setFields($fieldsOrder);
	}

	/**
	 * @return string
	 */
	protected function getShemVersion()
	{
		return self::SHEM_VERSION_2_10;
	}

	/**
	 * @param array $list
	 * @return array
	 */
	protected function modifyDocumentsCollection(array $list)
	{
		return array($this->getDocumentByTypeId(EntityType::ORDER, $list));
	}
}