addOptions(array( new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'admin'), new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'), new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'), )); $this->namespace = 'import'; $this->name = 'hartmann-uchazeci'; $this->briefDescription = ''; $this->detailedDescription = 'Jednorázový import uchazecu pro Hartmann'; } protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); $filename = $this->configuration->getRootDir().DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'import'.DIRECTORY_SEPARATOR.self::FILENAME; if (($handle = fopen($filename, "r")) !== false) { $test = Doctrine::getTable('Test')->findOneById(self::TEST_ID); $filesize = filesize($filename); $uchazeci = array(); while (($row = fgetcsv($handle, $filesize, ";")) !== false) { list($prijmeni, $jmeno) = $this->parseJmenoUchazece($row); $email = $this->getEmailUchazece($jmeno, $prijmeni); $pracovnik = Doctrine::getTable('Pracovnik')->createQuery() ->addWhere('jmeno = ? AND prijmeni = ? AND zakaznik_id = ?', array($jmeno, $prijmeni, self::ZAKAZNIK_ID)) //Hartmann ->fetchOne(); $uchazec = Doctrine::getTable('Uchazec')->createQuery() ->addWhere('zakaznik_id = ?', self::ZAKAZNIK_ID) ->addWhere('test_zakaznik_id = ?', self::TEST_ZAKAZNIK_ID) ->addWhere('vlna_id = ?', self::VLNA_ID) ->addWhere('jmeno = ?', $jmeno.' '.$prijmeni) ->fetchOne(); if(!$uchazec) { //DOPLNIT PRACOVNIK_ID $uchazec = new Uchazec(); $uchazec->setZakaznikId(self::ZAKAZNIK_ID); $uchazec->setPersonalistaId(self::PERSONALISTA_ID); $uchazec->setTestZakaznikId(self::TEST_ZAKAZNIK_ID); $uchazec->setVlnaId(self::VLNA_ID); $uchazec->setOdeslaniEmailu(true); $uchazec->setJmeno($jmeno.' '.$prijmeni); $uchazec->setEmail($email); $uchazec->setTestNazev($test->getNazevTestu()); $uchazec->setTestCas($test->getCas()); $uchazec->setTestInstrukce($test->getInstrukce()); $uchazec->setTestKriteria($test->getKriteria()); if($pracovnik) { $uchazec->setEmail($pracovnik->getEmail()); $uchazec->setPracovnikId($pracovnik->getId()); } $uchazec->save(); uchazecActions::createTest($test->getId(), $uchazec); $this->logSection('uchazec+', $uchazec->getEmail()); } else { $this->logSection('uchazec uz existuje', $uchazec->getEmail()); } $uchazeci[] = $uchazec->getId(); } $spatny = Doctrine::getTable('Uchazec')->createQuery() ->addWhere('zakaznik_id = ?', self::ZAKAZNIK_ID) ->addWhere('test_zakaznik_id = ?', self::TEST_ZAKAZNIK_ID) ->addWhere('vlna_id = ?', self::VLNA_ID) ->andWhereNotIn('id', $uchazeci) ->execute(); $html = ' Dobrý den,
omlouváme se, ale byl Vám odeslán navíc i jazykový test němčiny. Po zadání příslušných kódů zjistíte, o který jazyk se jedná. Vyplňte prosím test angličtiny. Kdo má zájem, může cvičně vyplnit i test němčiny, pouze pro vlastní potřebu.

Děkujeme za pochopení
Podpora Hartmann'; foreach($spatny as $uchazec) { $mail = array(); $mail['sendNow'] = true; $mail['name'] = $uchazec->getJmeno(); //$mail['email'] = $uchazec->getEmail(); //$mail['email'] = 'podpora@jakobson.cz'; $mail['email'] = 'tomas@naibrt.cz'; $mail['subject'] = 'Jazykový test z němčiny'; $mail['html'] = $html; $jnEmail = new jnEmailFront($mail); die(); $this->logSection('send', $uchazec->getJmeno().', '.$mail['email']); } fclose($handle); } $this->log('Done'); } protected function parseJmenoUchazece($row) { return explode(' ', $row[0]); } protected function getEmailUchazece($jmeno, $prijmeni) { return Doctrine_Inflector::urlize($jmeno).'.'.Doctrine_Inflector::urlize($prijmeni).self::EMAIL_SUFIX; } }