%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/lib/location/comparator/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/lib/location/comparator/mapresult.php |
<?
namespace Bitrix\Sale\Location\Comparator;
use Bitrix\Sale\Location\LocationTable;
/**
* Class MapResult
* @package Bitrix\Sale\Location\Comparator
*/
class MapResult
{
protected $lastProcessedId = 0;
protected $supportedCount = 0;
protected $mapped = array();
protected $notFound = array();
protected $duplicated = array();
public function setSupportedCount($count) { $this->supportedCount = intval($count); }
public function setLastProcessedId($id) { $this->lastProcessedId = intval($id); }
public function getLastProcessedId() { return $this->lastProcessedId; }
public function getSupportedCount() { return $this->supportedCount; }
public function getDuplicated() { return $this->duplicated; }
public function getNotFound() { return $this->notFound; }
public function getMapped() { return $this->mapped; }
public function addNotFound($eLocId, $eLocName)
{
$this->notFound[] = array($eLocId, $eLocName);
}
public function addDuplicated($eLocId, $eLocName, $bLocId)
{
$this->duplicated[] = array($eLocId, $eLocName, $bLocId);
}
public function addMapped($eLocId, $eLocName, $bLocId)
{
$this->mapped[] = array($eLocId, $eLocName, $bLocId, $this->getLocationChain($bLocId));
}
protected function getLocationChain($locationId)
{
$res = LocationTable::getList(array(
'filter' => array(
array(
'LOGIC' => 'OR',
'=CODE' => $locationId,
'=ID' => $locationId
),
),
'select' => array(
'ID', 'CODE', 'LEFT_MARGIN', 'RIGHT_MARGIN'
)
));
if(!$loc = $res->fetch())
return '';
$result = '';
$res = LocationTable::getList(array(
'filter' => array(
'<=LEFT_MARGIN' => $loc['LEFT_MARGIN'],
'>=RIGHT_MARGIN' => $loc['RIGHT_MARGIN'],
'NAME.LANGUAGE_ID' => 'ru'
),
'select' => array(
'ID', 'CODE',
'LOC_NAME' => 'NAME.NAME'
),
'order' => array('LEFT_MARGIN' => 'ASC')
));
while($loc = $res->fetch())
$result .= $loc['LOC_NAME'].', ';
return $result;
}
}