Example #1
0
 public function prepareData()
 {
     /** @var Response[]|Doctrine_Collection $responses  */
     $responses = $this->getBaseQuery()->execute();
     $this->alternative_names = array();
     $measurement = array();
     $alternatives_list = array();
     $this->criteria_names[0] = 'Total benefit';
     // TODO: Response can have different "Rating method"
     foreach ($responses as $response) {
         foreach ($response->AlternativeMeasurement as $alternativeMeasurement) {
             /** @var AlternativeMeasurement $alternativeMeasurement */
             $alternative = $alternativeMeasurement->Alternative;
             $criterion = $alternativeMeasurement->Criterion;
             if (!isset($this->criteria_names[$criterion->id])) {
                 $this->criteria_names[$criterion->id] = Utility::teaser($criterion->name, 55);
             }
             if (!in_array($alternative->id, $this->filtered_alternatives_ids)) {
                 if (!isset($this->alternative_names[$alternative->id])) {
                     $this->alternative_names[$alternative->id] = Utility::teaser($alternative->name, 55);
                 }
                 if (!isset($measurement[$criterion->id][$alternative->id])) {
                     $measurement[$criterion->id][$alternative->id] = new AnalyzeAverageScore();
                 }
                 $measurement[$criterion->id][$alternative->id]->addScore($alternativeMeasurement->score);
                 $alternatives_list[$alternative->id] = 0;
             }
         }
     }
     if (count($measurement)) {
         $graph = $this->saveGraph();
         $alternatives_numb = count($alternatives_list);
         foreach ($measurement as $criterion_id => $alternatives) {
             $this->data[$criterion_id] = array();
             /** @var PlannedAlternativeMeasurement $measurement  */
             foreach ($alternatives as $alternative_id => $measurement) {
                 $value = $measurement->getAverage();
                 $this->data[$criterion_id][$alternative_id] = $value;
                 if ($criterion_id) {
                     $this->graph_definitions[] = array($graph->id, $criterion_id, $alternative_id, $value);
                 }
             }
             // Sets 0 for alternatives without responses
             if (count($this->data[$criterion_id]) && count($this->data[$criterion_id]) != $alternatives_numb) {
                 $this->data[$criterion_id] = $this->data[$criterion_id] + $alternatives_list;
             }
             if (!count($this->data[$criterion_id])) {
                 unset($this->data[$criterion_id]);
             }
         }
         $this->saveGraphDefinitions();
     }
 }
Example #2
0
 public function prepareData()
 {
     /** @var Response[]|Doctrine_Collection $responses  */
     $responses = $this->getBaseQuery()->execute();
     foreach ($responses as $response) {
         foreach ($response->AlternativeMeasurement as $alternativeMeasurement) {
             /** @var AlternativeMeasurement $alternativeMeasurement */
             $alternative = $alternativeMeasurement->Alternative;
             $criterion = $alternativeMeasurement->Criterion;
             if (!isset($this->criteria_names[$criterion->id])) {
                 $this->criteria_names[$criterion->id] = Utility::teaser($criterion->name, 55);
             }
             if (isset($this->measurement[$criterion->id][$alternative->id])) {
                 $this->measurement[$criterion->id][$alternative->id]->addScore($alternativeMeasurement->score);
             } else {
                 $this->measurement[$criterion->id][$alternative->id] = new AnalyzeAverageScore();
                 $this->measurement[$criterion->id][$alternative->id]->addScore($alternativeMeasurement->score);
             }
         }
     }
 }
Example #3
0
    echo $item->id;
    ?>
" class="draggable ui-widget-content">
            <div class="text-left">
              <a href="javascript:void(0)" data-toggle="modal" data-target="#comments-<?php 
    echo $item->id;
    ?>
"><img style="margin-top: -5px" src="<?php 
    echo image_path('comment.png');
    ?>
" /></a>
              <span class="bootstrap-tooltip" data-toggle="tooltip" data-placement="top" title="<?php 
    echo $item->name;
    ?>
"><?php 
    echo Utility::teaser($item->name, 42);
    ?>
</span>
            </div>
            <div class="desc-cell"><?php 
    echo $item->getRawValue()->getTooltip();
    ?>
</div>
          </div>
        </div>
        <div class="col-xs-2"></div>
        <div class="col-xs-5 text-center" style="position: relative">
          <div id="rating-<?php 
    echo $max_rating - $i;
    ?>
" class="droppable ui-widget-header" style="float: right;"><?php 
Example #4
0
 public function prepareData()
 {
     /** @var Response[]|Doctrine_Collection $responses  */
     $responses = $this->getBaseQuery()->andWhere("c.variable_type = 'Benefit'")->execute();
     $this->alternative_names = array();
     foreach ($responses as $response) {
         foreach ($response->AlternativeMeasurement as $alternativeMeasurement) {
             /** @var AlternativeMeasurement $alternativeMeasurement */
             $alternative = $alternativeMeasurement->Alternative;
             $criterion = $alternativeMeasurement->Criterion;
             if (!isset($this->criteria_names[$criterion->id])) {
                 $this->criteria_names[$criterion->id] = Utility::teaser($criterion->name, 55);
             }
             if (!in_array($alternative->id, $this->filtered_alternatives_ids)) {
                 if (!isset($this->alternative_names[$alternative->id])) {
                     $this->alternative_names[$alternative->id] = Utility::teaser($alternative->name, 55);
                 }
                 if (isset($this->measurement[$criterion->id][$alternative->id])) {
                     $this->measurement[$criterion->id][$alternative->id]->addScore($alternativeMeasurement->score);
                 } else {
                     $this->measurement[$criterion->id][$alternative->id] = new AnalyzeAverageScore();
                     $this->measurement[$criterion->id][$alternative->id]->addScore($alternativeMeasurement->score);
                 }
             }
         }
     }
     if (count($this->measurement)) {
         if ($this->save_graph) {
             $graph = $this->saveGraph();
         }
         foreach ($this->measurement as $criterion_id => $alternatives) {
             $sum = $this->getSum($criterion_id);
             if ($sum) {
                 $criterion_value = $this->getCriterionValue($criterion_id);
                 /** @var PlannedAlternativeMeasurement $measurement  */
                 foreach ($alternatives as $alternative_id => $measurement) {
                     if (!isset($this->data[$criterion_id])) {
                         $this->data[$criterion_id] = array();
                     }
                     $value = $measurement->getAverage() / $sum;
                     $this->data[$criterion_id][$alternative_id] = $value * $criterion_value;
                     $this->cumulative_gain[$alternative_id][$criterion_id] = $value * $criterion_value;
                     if (!isset($this->sorted_alternative_ids[$alternative_id])) {
                         $this->sorted_alternative_ids[$alternative_id] = 0;
                     }
                     if (!isset($this->total_benefit[$alternative_id])) {
                         $this->total_benefit[$alternative_id] = 0;
                     }
                     $this->total_benefit[$alternative_id] += $value * $criterion_value;
                     $this->sorted_alternative_ids[$alternative_id] += $value * $criterion_value;
                     $this->graph_definitions[] = array($graph->id, $criterion_id, $alternative_id, $value * 100);
                 }
             } else {
                 unset($this->criteria_names[$criterion_id]);
             }
         }
         if ($this->save_graph) {
             $this->saveGraphDefinitions();
         }
     }
 }
Example #5
0
    </thead>
    <tbody>
      <?php 
    foreach ($alternatives as $alternative) {
        ?>
        <tr>
          <td class="active">
            <label title="<?php 
        echo $alternative->name;
        ?>
">
              <input id="all-alternative-<?php 
        echo $alternative->id;
        ?>
" type="checkbox" /> <?php 
        echo Utility::teaser($alternative->name, 30);
        ?>
            </label>

          </td>
          <?php 
        foreach ($criteria as $criterion) {
            ?>
            <td style="text-align: center;">
              <input data-criterion="<?php 
            echo $criterion->id;
            ?>
" data-alternative="<?php 
            echo $alternative->id;
            ?>
" class="measure criterion-<?php