Add command line export/calculation for daily project summaries

This commit is contained in:
Frédéric Guillot
2014-11-29 14:01:03 -05:00
parent e8fa25f9ca
commit d6bde1e3ec
5 changed files with 69 additions and 3 deletions

View File

@@ -0,0 +1,29 @@
<?php
namespace Console;
use Model\Project;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class ProjectDailySummaryCalculation extends Base
{
protected function configure()
{
$this
->setName('projects:daily-summary')
->setDescription('Calculate daily summary data for all projects');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$projects = $this->project->getAllByStatus(Project::ACTIVE);
foreach ($projects as $project) {
$output->writeln('Run calculation for '.$project['name']);
$this->projectDailySummary->updateTotals($project['id'], date('Y-m-d'));
}
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace Console;
use Core\Tool;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class ProjectDailySummaryExport extends Base
{
protected function configure()
{
$this
->setName('export:daily-project-summary')
->setDescription('Daily project summary CSV export (number of tasks per column and per day)')
->addArgument('project_id', InputArgument::REQUIRED, 'Project id')
->addArgument('start_date', InputArgument::REQUIRED, 'Start date (YYYY-MM-DD)')
->addArgument('end_date', InputArgument::REQUIRED, 'End date (YYYY-MM-DD)');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$data = $this->projectDailySummary->getAggregatedMetrics(
$input->getArgument('project_id'),
$input->getArgument('start_date'),
$input->getArgument('end_date')
);
if (is_array($data)) {
Tool::csv($data);
}
}
}

View File

@@ -14,7 +14,7 @@ class TaskExport extends Base
{
$this
->setName('export:tasks')
->setDescription('Tasks export (CSV)')
->setDescription('Tasks CSV export')
->addArgument('project_id', InputArgument::REQUIRED, 'Project id')
->addArgument('start_date', InputArgument::REQUIRED, 'Start date (YYYY-MM-DD)')
->addArgument('end_date', InputArgument::REQUIRED, 'End date (YYYY-MM-DD)');

View File

@@ -8,7 +8,7 @@ use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class OverdueNotification extends Base
class TaskOverdueNotification extends Base
{
protected function configure()
{