%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/lib/cashbox/restrictions/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/lib/cashbox/restrictions/company.php |
<?php
namespace Bitrix\Sale\Cashbox\Restrictions;
use Bitrix\Main\Localization\Loc;
use Bitrix\Sale\Internals\Entity;
use Bitrix\Sale;
use Bitrix\Sale\Services\Base\Restriction;
Loc::loadMessages(__FILE__);
/**
* Class Company
* @package Bitrix\Sale\Cashbox\Restrictions
*/
class Company extends Restriction
{
public static $easeSort = 200;
protected static $preparedData = array();
/**
* @return string
*/
public static function getClassTitle()
{
return Loc::getMessage("SALE_CASHBOX_RSTR_BY_COMPANY_TITLE");
}
/**
* @return string
*/
public static function getClassDescription()
{
return Loc::getMessage("SALE_CASHBOX_RSTR_BY_COMPANY_DESC");
}
/**
* @param $params
* @param array $restrictionParams
* @param int $serviceId
* @return bool
*/
public static function check($params, array $restrictionParams, $serviceId = 0)
{
if (is_array($restrictionParams) && isset($restrictionParams['COMPANY']))
{
$diff = array_diff($params, $restrictionParams['COMPANY']);
return empty($diff);
}
return true;
}
/**
* @param Entity $entity
* @return array
*/
protected static function extractParams(Entity $entity)
{
$result = array();
if ($entity instanceof Sale\Payment ||
$entity instanceof Sale\Shipment ||
$entity instanceof Sale\Order
)
{
$result[] = $entity->getField('COMPANY_ID');
}
return $result;
}
/**
* @return array|null
*/
protected static function getCompanyList()
{
static $result = null;
if($result !== null)
return $result;
$result = array();
$dbResultList = Sale\Services\Company\Manager::getList(array(
'select' => array("ID", "NAME", "ACTIVE"),
'filter' => array("ACTIVE" => "Y"),
'order' => array("SORT"=>"ASC", "NAME"=>"ASC")
));
while ($item = $dbResultList->fetch())
$result[$item["ID"]] = $item["NAME"];
return $result;
}
/**
* @param int $entityId
* @return array
*/
public static function getParamsStructure($entityId = 0)
{
$result = array(
"COMPANY" => array(
"TYPE" => "ENUM",
'MULTIPLE' => 'Y',
"LABEL" => Loc::getMessage("SALE_CASHBOX_RSTR_BY_COMPANY"),
"OPTIONS" => self::getCompanyList()
)
);
return $result;
}
/**
* @param int $mode - RestrictionManager::MODE_CLIENT | RestrictionManager::MODE_MANAGER
* @return int
*/
public static function getSeverity($mode)
{
return Manager::SEVERITY_STRICT;
}
/**
* @return bool
*/
public static function isAvailable()
{
return IsModuleInstalled('crm') ? false : true;
}
}