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;
}
}