- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entity/paymentdocumentsrepository.php
- Класс: Bitrix\Crm\Entity\objects
- Вызов: objects::fetchPaymentDocuments
private function fetchPaymentDocuments(): array { if (count($this->orderIds) <= 0) { return []; } $select = ['ID', 'ORDER_ID', 'ACCOUNT_NUMBER', 'PAID', 'DATE_BILL', 'SUM', 'CURRENCY', 'PAY_SYSTEM_NAME', 'DATE_PAID']; $filter = ['=ORDER_ID' => $this->orderIds]; $result = []; $payments = Sale\PaymentCollection::getList([ 'select' => $select, 'filter' => $filter, ]); $paymentIds = []; while ($payment = $payments->fetch()) { $paymentIds[] = $payment['ID']; $payment['TYPE'] = 'PAYMENT'; $payment['ORIG_SUM'] = $payment['SUM']; $payment['ORIG_CURRENCY'] = $payment['CURRENCY']; $payment['DATE'] = $payment['DATE_BILL']; if ($payment['DATE_PAID']) { $payment['FORMATTED_DATE_PAID'] = ConvertTimeStamp($payment['DATE_PAID']->getTimestamp(), 'FULL'); } $payment['STAGE'] = ($payment['PAID'] === 'Y') ? PaymentStage::PAID : PaymentStage::NOT_PAID; if ($payment['PAID'] === 'Y') { $this->paidSum += $payment['SUM']; $this->totalSum -= $payment['SUM']; } $result[$payment['ID']] = $payment; } if (count($paymentIds) > 0) { $paymentStages = EntityStageTable::getList([ 'select' => ['ENTITY_ID', 'STAGE'], 'filter' => ['=ENTITY_ID' => $paymentIds, '=WORKFLOW_CODE' => PaymentWorkflow::getWorkflowCode()] ]); while ($paymentStage = $paymentStages->fetch()) { if ($result[$paymentStage['ENTITY_ID']]) { $result[$paymentStage['ENTITY_ID']]['STAGE'] = $paymentStage['STAGE']; } } } return array_values($result); }