addOptions(array( new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'zakaznik'), new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'), new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'), )); $this->namespace = ''; $this->name = 'spojovacka'; $this->briefDescription = 'Opravi spatne vyhodnocene spojovacky'; $this->detailedDescription = ''; } protected function execute($arguments = array(), $options = array()) { $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); $uchazeci = Doctrine::getTable('Uchazec')->createQuery() //->addWhere('id = ?', 6472) ->addWhere('datum_startu > ?', '2011-09-26 14:13') ->addWhere('datum_startu < ?', '2012-01-04 14:45') ->execute(); foreach($uchazeci as $uchazec) { $podle_cviceni = Doctrine::getTable('Uchazec_text')->createQuery('ut') ->innerJoin('ut.Cviceni c') ->addWhere('ut.uchazec_id = ?', $uchazec->getId()) ->addWhere('c.typ = ?', 3) ->groupBy('ut.cviceni_id') ->execute(); foreach($podle_cviceni as $ut) { $prehazovacky = Doctrine::getTable('Uchazec_text')->createQuery('ut') ->addWhere('ut.uchazec_id = ?', $ut->getUchazecId()) ->addWhere('ut.cviceni_id = ?', $ut->getCviceniId()) ->orderBy('ut.otazka_id') ->execute(); $odpovedi = array(); foreach($prehazovacky as $prehazovacka) { $odpovedi[] = $prehazovacka->getOdpoved(); } $odpovedi = array_reverse($odpovedi); foreach($prehazovacky as $i => $prehazovacka) { $this->logSection('ut_id:'.$prehazovacka->getId(), $prehazovacka->getZadani().' -> '.$prehazovacka->getOdpoved()); $prehazovacka->setOdpoved($odpovedi[$i]); $prehazovacka->evaluate(); $this->logSection('ut_id:'.$prehazovacka->getId(), $prehazovacka->getZadani().' -> '.$prehazovacka->getOdpoved()); $prehazovacka->save(); } } if(count($podle_cviceni) > 0) { $uchazec->vypocitejUspesnost(); $uchazec->save(); } } } }