- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/deal/paymentsrepository.php
- Класс: Bitrix\Crm\Deal\PaymentsRepository
- Вызов: PaymentsRepository::loadPaymentStages
protected function loadPaymentStages(array $dealIds) : array
{
$result = [];
$paymentRepository = Sale\Repository\PaymentRepository::getInstance();
$dbRes = Order\PaymentCollection::getList([
'select' => ['ID', 'DEAL_ID' => 'DEAL_BINDING.OWNER_ID'],
'filter' => [
'@DEAL_ID' => $dealIds,
],
'order' => ['ORDER_ID' => 'desc', 'ID' => 'desc'],
'runtime' => [
new Entity\ReferenceField(
'DEAL_BINDING',
Binding\OrderEntityTable::class,
[
'=this.ORDER_ID' => 'ref.ORDER_ID',
'=ref.OWNER_TYPE_ID' => new DB\SqlExpression(\CCrmOwnerType::Deal)
],
['join_type' => 'inner']
)
]
]);
while ($payment = $dbRes->fetch())
{
if (isset($result[$payment['DEAL_ID']]))
{
continue;
}
$paymentObject = $paymentRepository->getById($payment['ID']);
if ($paymentObject)
{
$result[$payment['DEAL_ID']] = Workflow\PaymentWorkflow::createFrom($paymentObject)->getStage();
}
}
return $result;
}