2009-09-25 7 views
0

En fait, j'essaie d'utiliser dotproject pour créer ma propre petite application.
Je suis coincé à un point où dotProject affiche toutes les tâches liées à un projet particulier .Il interroge la base de données pour cette mise à feu sql ci-dessous
extension dotproject

$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'); 

Je ne suis pas en mesure de comprendre le sql properly.Actually , ce sql récupère toutes les tâches associées à un projet. Mais dans mon projet je ne veux que des tâches dont la durée est terminée.

Comment puis-je changer le sql pour que cela se produise?

Répondre

0

Vous pouvez simplifier la plupart de cela et simplement regarder le champ task_percent_complete dans la table des tâches. Si c'est 100%, alors la tâche est terminée.

Si vous cherchez à créer une application en plus de dotproject, je vous suggère plutôt de visiter web2project. Nous avons bifurqué de dotproject il y a environ deux ans et avons nettoyé et amélioré le système de manière significative. N'hésitez pas à me laisser un message si vous avez des questions.

0

Je sais que c'est trop tard pour répondre, mais espère que quelqu'un aura une idée de ce:

Ajoutez simplement où Au total votre code requête quelque chose comme $q->addWhere('task_percent_complete = 100');

sera comme:

$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->addWhere('t1.task_percent_complete = 100'); // added new line 
$q->addGroup('project_id');