• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entity/paymentdocumentsrepository.php
  • Класс: Bitrix\Crm\Entity\PaymentDocumentsRepository
  • Вызов: PaymentDocumentsRepository::fetchRealizationDocuments
private function fetchRealizationDocuments(array $shipments): array
{
	$result = [];

	$preparedShipments = [];
	foreach ($shipments as $shipment)
	{
		$preparedShipments[$shipment['ID']] = $shipment;
	}

	$shipmentRealizations = Crm\Order\Internals\ShipmentRealizationTable::getList([
		'select' => ['SHIPMENT_ID'],
		'filter' => [
			'=SHIPMENT_ID' => array_keys($preparedShipments),
			'=IS_REALIZATION' => 'Y',
		],
	]);
	while ($shipmentRealization = $shipmentRealizations->fetch())
	{
		$shipment = $preparedShipments[$shipmentRealization['SHIPMENT_ID']] ?? null;
		if ($shipment)
		{
			$shipment['TYPE'] = 'SHIPMENT_DOCUMENT';
			$shipment['ORIG_SUM'] = $shipment['PRICE_DELIVERY'];
			$shipment['ORIG_CURRENCY'] = $shipment['CURRENCY'];
			$shipment['DATE'] = $shipment['DATE_INSERT'];

			$result[] = $shipment;
		}
	}

	$documentTotals = $this->calculateDocumentTotals($shipments);
	foreach ($result as $index => $document)
	{
		$result[$index]['SUM'] = $documentTotals[$document['ID']] ?? 0;
	}

	return $result;
}