Bitrix-D7  20.5.0
Класс Manager

Открытые статические члены

static getListWithRestrictions (CollectableEntity $entity)
 
static getList (array $parameters=[])
 
static getRestHandlersList ()
 Returns a list of all the registered rest cashbox handlers Structure: handler code => handler data. Подробнее...
 
static getObjectById ($id)
 
static chooseCashbox ($cashboxList)
 
static getConnectionLink ()
 
static getListFromCache ()
 
static getCashboxFromCache ($cashboxId)
 
static buildZReportQuery ($cashboxId, $id)
 
static buildChecksQuery ($cashboxIds)
 
static buildConcreteCheckQuery ($cashboxId, Check $check)
 
static add (array $data)
 
static update ($primary, array $data)
 
static delete ($primary)
 
static isSupportedFFD105 ()
 
static updateChecksStatus ()
 
static writeToLog ($cashboxId, Main\Error $error)
 

Поля данных

const LEVEL_TRACE_E_IGNORED = 0
 
const LEVEL_TRACE_E_ERROR = Errors\Error::LEVEL_TRACE
 
const LEVEL_TRACE_E_WARNING = Errors\Warning::LEVEL_TRACE
 
const DEBUG_MODE = false
 
const CACHE_ID = 'BITRIX_CASHBOX_LIST'
 
const TTL = 31536000
 
const CHECK_STATUS_AGENT = '\Bitrix\Sale\Cashbox\Manager::updateChecksStatus();'
 

Подробное описание

См. определение в файле sale/lib/cashbox/manager.php строка 20

Методы

◆ add()

static add ( array  $data)
static
Аргументы
array$data
Возвращает
\Bitrix\Main\Entity\AddResult

См. определение в файле sale/lib/cashbox/manager.php строка 256

257  {
258  $addResult = CashboxTable::add($data);
259 
260  $cacheManager = Main\Application::getInstance()->getManagedCache();
261  $cacheManager->clean(Manager::CACHE_ID);
262 
263  if (
264  is_subclass_of($data['HANDLER'], ICheckable::class)
265  || is_subclass_of($data['HANDLER'], ICorrection::class)
266  )
267  {
268  static::addCheckStatusAgent();
269  }
270 
271  return $addResult;
272  }
static getInstance()
Returns current instance of the Application.
static add(array $data)
Adds row to entity table.

◆ buildChecksQuery()

static buildChecksQuery (   $cashboxIds)
static
Аргументы
$cashboxIds
Возвращает
array

См. определение в файле sale/lib/cashbox/manager.php строка 218

219  {
220  $result = array();
221  $checks = CheckManager::getPrintableChecks($cashboxIds);
222  foreach ($checks as $item)
223  {
224  $check = CheckManager::create($item);
225  if ($check !== null)
226  {
227  $printResult = static::buildConcreteCheckQuery($check->getField('CASHBOX_ID'), $check);
228  if ($printResult)
229  $result[] = $printResult;
230  }
231  }
232 
233  return $result;
234  }
static getPrintableChecks(array $cashboxIds, array $orderIds=array())
static create(array $settings)

◆ buildConcreteCheckQuery()

static buildConcreteCheckQuery (   $cashboxId,
Check  $check 
)
static
Аргументы
$cashboxId
Check$check
Возвращает
array

См. определение в файле sale/lib/cashbox/manager.php строка 241

242  {
243  $cashbox = static::getObjectById($cashboxId);
244  if ($cashbox)
245  {
246  return $cashbox->buildCheckQuery($check);
247  }
248 
249  return [];
250  }

◆ buildZReportQuery()

static buildZReportQuery (   $cashboxId,
  $id 
)
static
Аргументы
$cashboxId
$id
Возвращает
array

См. определение в файле sale/lib/cashbox/manager.php строка 205

206  {
207  $cashbox = Manager::getObjectById($cashboxId);
208  if ($cashbox->getField('USE_OFFLINE') === 'Y')
209  return array();
210 
211  return $cashbox->buildZReportQuery($id);
212  }

◆ chooseCashbox()

static chooseCashbox (   $cashboxList)
static
Аргументы
$cashboxList
Возвращает
mixed

См. определение в файле sale/lib/cashbox/manager.php строка 121

122  {
123  $index = rand(0, count($cashboxList)-1);
124 
125  return $cashboxList[$index];
126  }

◆ delete()

static delete (   $primary)
static
Аргументы
$primary
Возвращает
\Bitrix\Main\Entity\DeleteResult

См. определение в файле sale/lib/cashbox/manager.php строка 306

307  {
308  $deleteResult = CashboxTable::delete($primary);
309 
310  if ($primary == Cashbox1C::getId())
311  {
312  $cacheManager = Main\Application::getInstance()->getManagedCache();
313  $cacheManager->clean(Cashbox1C::CACHE_ID);
314  }
315 
316  $cacheManager = Main\Application::getInstance()->getManagedCache();
317  $cacheManager->clean(Manager::CACHE_ID);
318 
319  return $deleteResult;
320  }
static delete($primary)
Deletes row in entity table by primary key.

◆ getCashboxFromCache()

static getCashboxFromCache (   $cashboxId)
static
Аргументы
$cashboxId
Возвращает
array

См. определение в файле sale/lib/cashbox/manager.php строка 191

192  {
193  $cashboxList = static::getListFromCache();
194  if (isset($cashboxList[$cashboxId]))
195  return $cashboxList[$cashboxId];
196 
197  return array();
198  }

◆ getConnectionLink()

static getConnectionLink ( )
static
Возвращает
string

См. определение в файле sale/lib/cashbox/manager.php строка 131

132  {
133  $context = Main\Application::getInstance()->getContext();
134  $scheme = $context->getRequest()->isHttps() ? 'https' : 'http';
135  $server = $context->getServer();
136  $domain = $server->getServerName();
137 
138  if (preg_match('/^(?<domain>.+):(?<port>\d+)$/', $domain, $matches))
139  {
140  $domain = $matches['domain'];
141  $port = $matches['port'];
142  }
143  else
144  {
145  $port = $server->getServerPort();
146  }
147  $port = in_array($port, array(80, 443)) ? '' : ':'.$port;
148 
149  return sprintf('%s://%s%s/bitrix/tools/sale_check_print.php?hash=%s', $scheme, $domain, $port, static::generateHash());
150  }

◆ getList()

static getList ( array  $parameters = [])
static
Аргументы
array$parameters
Возвращает
Main\ORM\Query\Result
Исключения
Main

См. определение в файле sale/lib/cashbox/manager.php строка 64

65  {
66  return CashboxTable::getList($parameters);
67  }
static getList(array $parameters=array())
Executes the query and returns selection by parameters of the query.

◆ getListFromCache()

static getListFromCache ( )
static
Возвращает
mixed

См. определение в файле sale/lib/cashbox/manager.php строка 166

167  {
168  $cacheManager = Main\Application::getInstance()->getManagedCache();
169 
170  if($cacheManager->read(self::TTL, self::CACHE_ID))
171  $cashboxList = $cacheManager->get(self::CACHE_ID);
172 
173  if (empty($cashboxList))
174  {
175  $cashboxList = array();
176 
177  $dbRes = CashboxTable::getList();
178  while ($data = $dbRes->fetch())
179  $cashboxList[$data['ID']] = $data;
180 
181  $cacheManager->set(self::CACHE_ID, $cashboxList);
182  }
183 
184  return $cashboxList;
185  }

◆ getListWithRestrictions()

static getListWithRestrictions ( CollectableEntity  $entity)
static
Аргументы
CollectableEntity$entity
Возвращает
array

См. определение в файле sale/lib/cashbox/manager.php строка 38

39  {
40  $result = array();
41 
42  $dbRes = CashboxTable::getList(array(
43  'select' => array('*'),
44  'filter' => array('ACTIVE' => 'Y'),
45  'order' => array('SORT' => 'ASC', 'NAME' => 'ASC')
46  ));
47 
48  while ($cashbox = $dbRes->fetch())
49  {
50  if (Restrictions\Manager::checkService($cashbox['ID'], $entity) === Restrictions\Manager::SEVERITY_NONE)
51  $result[$cashbox['ID']] = $cashbox;
52  }
53 
54  return $result;
55  }

◆ getObjectById()

static getObjectById (   $id)
static
Аргументы
$id
Возвращает
Cashbox|ICheckable|null

См. определение в файле sale/lib/cashbox/manager.php строка 94

95  {
96  static $cashboxObjects = array();
97 
98  if ((int)$id <= 0)
99  return null;
100 
101  if (!isset($cashboxObjects[$id]))
102  {
103  $data = static::getCashboxFromCache($id);
104  if ($data)
105  {
106  $cashbox = Cashbox::create($data);
107  if ($cashbox === null)
108  return null;
109 
110  $cashboxObjects[$id] = $cashbox;
111  }
112  }
113 
114  return $cashboxObjects[$id];
115  }
static create(array $settings)
Definition: cashbox.php:118

◆ getRestHandlersList()

static getRestHandlersList ( )
static

Returns a list of all the registered rest cashbox handlers Structure: handler code => handler data.

Возвращает
array
Исключения
Main

См. определение в файле sale/lib/cashbox/manager.php строка 77

78  {
79  $result = [];
80 
81  $handlerList = CashboxRestHandlerTable::getList()->fetchAll();
82  foreach ($handlerList as $handler)
83  {
84  $result[$handler['CODE']] = $handler;
85  }
86 
87  return $result;
88  }

◆ isSupportedFFD105()

static isSupportedFFD105 ( )
static
Возвращает
bool

См. определение в файле sale/lib/cashbox/manager.php строка 325

326  {
327  Cashbox::init();
328 
329  $cashboxList = static::getListFromCache();
330  foreach ($cashboxList as $cashbox)
331  {
332  if ($cashbox['ACTIVE'] === 'N')
333  continue;
334  /** @var Cashbox $handler */
335  $handler = $cashbox['HANDLER'];
336  $isRestHandler = $handler === '\Bitrix\Sale\Cashbox\CashboxRest';
337  if ($isRestHandler)
338  {
339  $handlerCode = $cashbox['SETTINGS']['REST']['REST_CODE'];
340  $restHandlers = self::getRestHandlersList();
341  $currentHandler = $restHandlers[$handlerCode];
342  if ($currentHandler['SETTINGS']['SUPPORTS_FFD105'] !== 'Y')
343  {
344  return false;
345  }
346  }
347  elseif (
348  !is_callable(array($handler, 'isSupportedFFD105')) ||
349  !$handler::isSupportedFFD105()
350  )
351  {
352  return false;
353  }
354  }
355 
356  return true;
357  }
static getRestHandlersList()
Returns a list of all the registered rest cashbox handlers Structure: handler code => handler data.

◆ update()

static update (   $primary,
array  $data 
)
static
Аргументы
$primary
array$data
Возвращает
\Bitrix\Main\Entity\UpdateResult

См. определение в файле sale/lib/cashbox/manager.php строка 287

288  {
289  $updateResult = CashboxTable::update($primary, $data);
290 
291  $cacheManager = Main\Application::getInstance()->getManagedCache();
292  $cacheManager->clean(Manager::CACHE_ID);
293 
294  if (is_subclass_of($data['HANDLER'], '\Bitrix\Sale\Cashbox\ICheckable'))
295  {
296  static::addCheckStatusAgent();
297  }
298 
299  return $updateResult;
300  }
static update($primary, array $data)
Updates row in entity table by primary key.

◆ updateChecksStatus()

static updateChecksStatus ( )
static
Возвращает
string
Исключения
Main

См. определение в файле sale/lib/cashbox/manager.php строка 363

364  {
365  $cashboxList = static::getListFromCache();
366  if (!$cashboxList)
367  {
368  return '';
369  }
370 
371  $availableCashboxList = [];
372  foreach ($cashboxList as $item)
373  {
374  $cashbox = Cashbox::create($item);
375  if (
376  $cashbox instanceof ICheckable
377  || $cashbox instanceof ICorrection
378  )
379  {
380  $availableCashboxList[$item['ID']] = $cashbox;
381  }
382  }
383 
384  if (!$availableCashboxList)
385  {
386  return '';
387  }
388 
389  $parameters = [
390  'filter' => [
391  '=STATUS' => 'P',
392  '@CASHBOX_ID' => array_keys($availableCashboxList),
393  '=CASHBOX.ACTIVE' => 'Y'
394  ],
395  'limit' => 5
396  ];
397  $dbRes = CheckManager::getList($parameters);
398  while ($checkInfo = $dbRes->fetch())
399  {
400  /** @var Cashbox|ICheckable|ICorrection $cashbox */
401  $cashbox = $availableCashboxList[$checkInfo['CASHBOX_ID']];
402  if ($cashbox)
403  {
404  $check = CheckManager::getObjectById($checkInfo['ID']);
405 
406  if ($check instanceof CorrectionCheck)
407  {
408  $result = $cashbox->checkCorrection($check);
409  }
410  elseif ($check instanceof Check)
411  {
412  $result = $cashbox->check($check);
413  }
414  else
415  {
416  continue;
417  }
418 
419  if (!$result->isSuccess())
420  {
421  foreach ($result->getErrors() as $error)
422  {
423  if ($error instanceof Errors\Warning)
424  {
425  Logger::addWarning($error->getMessage(), $cashbox->getField('ID'));
426  }
427  else
428  {
429  Logger::addError($error->getMessage(), $cashbox->getField('ID'));
430  }
431  }
432  }
433  }
434  }
435 
436  return static::CHECK_STATUS_AGENT;
437  }
static getList(array $parameters=array())
static addError(string $message, $cashboxId=null)
static addWarning(string $message, $cashboxId=null)

◆ writeToLog()

static writeToLog (   $cashboxId,
Main\Error  $error 
)
static
Аргументы
$cashboxId
Main\Error$error
Исключения
Main

См. определение в файле sale/lib/cashbox/manager.php строка 449

450  {
451  if ($error instanceof Errors\Warning)
452  {
453  Logger::addWarning($error->getMessage(), $cashboxId);
454  }
455  else
456  {
457  Logger::addError($error->getMessage(), $cashboxId);
458  }
459  }

Поля

◆ CACHE_ID

const CACHE_ID = 'BITRIX_CASHBOX_LIST'

См. определение в файле sale/lib/cashbox/manager.php строка 30

◆ CHECK_STATUS_AGENT

const CHECK_STATUS_AGENT = '\Bitrix\Sale\Cashbox\Manager::updateChecksStatus();'

См. определение в файле sale/lib/cashbox/manager.php строка 32

◆ DEBUG_MODE

const DEBUG_MODE = false

См. определение в файле sale/lib/cashbox/manager.php строка 29

◆ LEVEL_TRACE_E_ERROR

const LEVEL_TRACE_E_ERROR = Errors\Error::LEVEL_TRACE

См. определение в файле sale/lib/cashbox/manager.php строка 25

◆ LEVEL_TRACE_E_IGNORED

const LEVEL_TRACE_E_IGNORED = 0

См. определение в файле sale/lib/cashbox/manager.php строка 23

◆ LEVEL_TRACE_E_WARNING

const LEVEL_TRACE_E_WARNING = Errors\Warning::LEVEL_TRACE

См. определение в файле sale/lib/cashbox/manager.php строка 27

◆ TTL

const TTL = 31536000

См. определение в файле sale/lib/cashbox/manager.php строка 31


Объявления и описания членов класса находятся в файле: