- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/cashbox/events/deletecashboxesondeletepaysystem.php
- Класс: BitrixSalePaySystemCashboxEventsDeleteCashboxesOnDeletePaySystem
- Вызов: DeleteCashboxesOnDeletePaySystem::executeEvent
public function executeEvent(): SaleResult
{
$result = new SaleResult();
if (!$this->service || !$this->service->isSupportPrintCheck())
{
return $result;
}
/** @var SaleCashboxCashboxPaySystem $cashboxClass */
$cashboxClass = $this->service->getCashboxClass();
$supportedKkmModels = [];
$paySystemIterator = SalePaySystemManager::getList([
'filter' => [
'=ACTIVE' => 'Y',
]
]);
while ($paySystemItem = $paySystemIterator->fetch())
{
$paySystemService = new SalePaySystemService($paySystemItem);
if (
$paySystemService->isSupportPrintCheck()
&& $paySystemService->getCashboxClass() === $cashboxClass
)
{
$supportedKkmModels[] = $cashboxClass::getKkmValue($this->service);
}
}
$supportedKkmModels = array_unique(array_merge(...$supportedKkmModels));
$cashboxList = SaleCashboxManager::getList([
'select' => ['ID', 'KKM_ID'],
'filter' => [
'=HANDLER' => $cashboxClass,
'!@KKM_ID' => $supportedKkmModels,
],
]);
foreach ($cashboxList as $cashboxItem)
{
$serviceCashbox = SaleCashboxManager::getObjectById($cashboxItem['ID']);
$deleteResult = SaleCashboxManager::delete($cashboxItem['ID']);
if ($deleteResult->isSuccess())
{
AddEventToStatFile('sale', 'deleteCashbox', '', $serviceCashbox::getCode());
}
else
{
$result->addErrors($deleteResult->getErrors());
}
}
return $result;
}