sumTable($subTable); } } /** * Re-sums the associated subtable's rows into this row's existing column values. */ public function recalculate() { $subTable = $this->getSubtable(); if ($subTable) { $this->sumTable($subTable); } } /** * Sums a tables row with this one. * * @param DataTable $table */ private function sumTable($table) { $metadata = $table->getMetadata(DataTable::COLUMN_AGGREGATION_OPS_METADATA_NAME); $enableCopyMetadata = false; foreach ($table->getRowsWithoutSummaryRow() as $row) { $this->sumRow($row, $enableCopyMetadata, $metadata); } $summaryRow = $table->getRowFromId(DataTable::ID_SUMMARY_ROW); if ($summaryRow) { $this->sumRow($summaryRow, $enableCopyMetadata, $metadata); } } }