- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Workflow/PaymentWorkflow.php
- Класс: Bitrix\Crm\Workflow\PaymentWorkflow
- Вызов: PaymentWorkflow::canSwitchToStage
public function canSwitchToStage(string $nextStage): bool
{
$allowedStages = null;
$currentStage = $this->getStage();
if ($currentStage === PaymentStage::PAID)
{
$allowedStages = [
PaymentStage::CANCEL,
PaymentStage::REFUND,
PaymentStage::NOT_PAID,
PaymentStage::PAID,
];
}
elseif ($currentStage === PaymentStage::CANCEL || $currentStage === PaymentStage::REFUND)
{
$allowedStages = [
PaymentStage::PAID,
PaymentStage::CANCEL,
PaymentStage::REFUND,
PaymentStage::SENT_NO_VIEWED,
];
}
if (is_array($allowedStages))
{
return in_array($nextStage, $allowedStages);
}
return true;
}