mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-11-09 13:48:23 +00:00
Fix: export actions and their results in csv even when action does not have...
This commit is contained in:
@@ -42,28 +42,41 @@ final readonly class SocialActionCSVExportService
|
||||
$csv->insertOne($headers);
|
||||
|
||||
foreach ($actions as $action) {
|
||||
if ($action->getGoals()->isEmpty() && $action->getResults()->isEmpty() && $action->getEvaluations()->isEmpty()) {
|
||||
$hasGoals = !$action->getGoals()->isEmpty();
|
||||
$hasResults = !$action->getResults()->isEmpty();
|
||||
$hasEvaluations = !$action->getEvaluations()->isEmpty();
|
||||
|
||||
// If action has no goals, results, or evaluations, insert a single row
|
||||
if (!$hasGoals && !$hasResults && !$hasEvaluations) {
|
||||
$csv->insertOne($this->formatRow($action));
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($action->getGoals() as $goal) {
|
||||
if ($goal->getResults()->isEmpty()) {
|
||||
$csv->insertOne($this->formatRow($action, $goal));
|
||||
}
|
||||
|
||||
foreach ($goal->getResults() as $goalResult) {
|
||||
$csv->insertOne($this->formatRow($action, $goal, $goalResult));
|
||||
// Process goals and their results
|
||||
if ($hasGoals) {
|
||||
foreach ($action->getGoals() as $goal) {
|
||||
if ($goal->getResults()->isEmpty()) {
|
||||
$csv->insertOne($this->formatRow($action, $goal));
|
||||
} else {
|
||||
foreach ($goal->getResults() as $goalResult) {
|
||||
$csv->insertOne($this->formatRow($action, $goal, $goalResult));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($action->getResults() as $result) {
|
||||
if ($result->getGoals()->isEmpty()) {
|
||||
// Process results that are linked to this action (regardless of whether they have goals elsewhere)
|
||||
if ($hasResults && !$hasGoals) {
|
||||
foreach ($action->getResults() as $result) {
|
||||
$csv->insertOne($this->formatRow($action, null, null, $result));
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($action->getEvaluations() as $evaluation) {
|
||||
$csv->insertOne($this->formatRow($action, evaluation: $evaluation));
|
||||
// Process evaluations
|
||||
if ($hasEvaluations) {
|
||||
foreach ($action->getEvaluations() as $evaluation) {
|
||||
$csv->insertOne($this->formatRow($action, evaluation: $evaluation));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user