sumTable($subTable); } } /** * Reset this row to an empty one and sums the associated subtable again. */ 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); } } }