実際、私は dotproject を使用して独自の小さなアプリケーションを構築しようとしています。
dotproject が特定のプロジェクトに関連するすべてのタスクを表示する時点で立ち往生しています。これは、以下の sql を起動するためにデータベースにクエリを実行します。
$q->addJoin('tasks', 't1', 'projects.project_id = t1.task_project');
$q->addQuery('com.company_name AS company_name, com_internal.company_name'
. ' AS company_name_internal'
. ", CONCAT_WS(', ',contact_last_name,contact_first_name) user_name"
. ', projects.*, SUM(t1.task_duration * t1.task_percent_complete'
." * IF(t1.task_duration_type = 24, {$working_hours}, t1.task_duration_type))"
." / SUM(t1.task_duration * IF(t1.task_duration_type = 24, {$working_hours},"
. ' t1.task_duration_type)) AS project_percent_complete');
$q->addWhere('t1.task_id = t1.task_parent');
$q->addWhere('project_id = ' . $project_id);
$q->addGroup('project_id');
SQL を正しく理解できません。実際、この SQL はプロジェクトに関連付けられたすべてのタスクを取得します。しかし、私のプロジェクトでは、期間が完了したタスクのみが必要です。
それを実現するためにSQLを変更するにはどうすればよいですか?