コード例 #1
0
 /**
  * Prende le stime dei figli, le somma e ne genera una singola
  */
 function getEstimateFromChilds()
 {
     // Prendo tutti i figli della milestone corrente
     $tasks = Tasks::findByMilestone($this->object, STATE_VISIBLE);
     // Scorro tutti i figli e ne salvo le stime
     $estimates = array();
     $estimates_sum = 0;
     if (is_foreachable($tasks)) {
         foreach ($tasks as $task) {
             $estimate = Estimates::findLatestByParent($task);
             // Se non è stata impostata la stima ritorna nullo, quindi bisogna controllare che effettivamente l'oggetto esista
             if ($estimate && $estimate instanceof Estimate) {
                 $estimates[] = $estimate;
                 $estimates_sum += $estimate->getValue();
             }
         }
     }
     // FIXME: seconda parte dell'if inutile
     if ($this->object instanceof Milestone || $this->object instanceof RemediaMilestone) {
         $estimate = new Estimate();
         $estimate->setParent($this->object);
         $estimate->setValue($estimates_sum);
         $estimate->setJobType(JobTypes::findById(1));
         // TODO: ho preso un job a caso, chissene
         $estimate->setComment('Stima generata automaticamente');
         $estimate->setCreatedBy($this->object->assignees()->getAssignee());
         // Assegno come creatore un tizio tra gli assegnatari
         $estimate->setCreatedOn(DateTimeValue::now());
     }
     return $estimate;
 }