• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/integration/report/handler/basehandler.php
  • Класс: BitrixCatalogIntegrationReportHandlerBaseHandler
  • Вызов: BaseHandler::prepareOverallTotals
protected function prepareOverallTotals(array $storeTotals): array
{
	$overallTotals = [];

	foreach ($storeTotals as $storeTotalEntry)
	{
		foreach ($storeTotalEntry['TOTALS'] as $measureId => $total)
		{
			$startingQuantitySum = (float)$total['STARTING_QUANTITY'];
			$amountSum = (float)$total['AMOUNT_SUM'];
			$receivedQuantity = (float)$total['RECEIVED_QUANTITY'];
			$quantityReservedSum = (float)$total['QUANTITY_RESERVED_SUM'];
			$amountSoldSum = (float)$total['AMOUNT_SOLD'];

			if (!isset($overallTotals[$measureId]))
			{
				$overallTotals[$measureId] = [
					'STARTING_QUANTITY' => 0,
					'RECEIVED_QUANTITY' => 0,
					'AMOUNT_SUM' => 0,
					'QUANTITY_RESERVED_SUM' => 0,
					'AMOUNT_SOLD' => 0,
					'QUANTITY' => 0,
				];
			}
			$overallTotals[$measureId]['STARTING_QUANTITY'] += $startingQuantitySum;
			$overallTotals[$measureId]['RECEIVED_QUANTITY'] += $receivedQuantity;
			$overallTotals[$measureId]['AMOUNT_SUM'] += $amountSum;
			$overallTotals[$measureId]['QUANTITY_RESERVED_SUM'] += $quantityReservedSum;
			$overallTotals[$measureId]['QUANTITY'] += $amountSum - $quantityReservedSum;
			$overallTotals[$measureId]['AMOUNT_SOLD'] += $amountSoldSum;
		}
	}

	return $overallTotals;
}