Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as PHP by Evgeny ( 17 years ago )
function getActiveAnketas()
  {
    /*  При изменении метода проверь Anketa::isActive() ! */
    
    
    $q=Doctrine_Query::create()
      ->select('a.*, alw.*, COUNT(alw.id) linked_with_count')
      ->from('Anketa a, a.LinkedWith alw, a.Categories c, a.Type t')
      ->where('c.id=?',$this->id)
      ;
      
    $q=Doctrine::getTable('Anketa')->addIsActiveConditions($q);
      
      
    //Если среди отображаемых типов анкет есть групповые типы, то не-групповые анкеты не отображаем.
    foreach ($this->AnketaTypes as $type)
    {
      if ($type->is_multiple)
      {
        $q->andWhere('t.is_multiple=?',true);
        
        //TODO для multiple-анкет: проверить, что минимальное число дочерних анкет набрано!
        $q->andWhere('alw.status=?','on')
          ->andWhere('linked_with_count>=t.min_linked_with_count');
        
        break;
      }
    }
    
    
    

    return $q->execute();
  }

 

Revise this Paste

Children: 12087
Your Name: Code Language: