public function add($timeSet, $articleId, $fieldName = null, $recurring = null, $overwrite = false, $otherInfo = null)
{
$insertValues = $this->buildInsertValues($timeSet, $recurring);
$article = null;
$em = $this->getEntityManager();
// check article
if (is_numeric($articleId)) {
$article = $em->getRepository('Newscoop\\Entity\\Article')->findOneBy(array('number' => $articleId));
/* @var $article Newscoop\Entity\Article */
} elseif ($articleId instanceof \Article) {
$article = $articleId;
}
if (is_null($article)) {
return false;
}
$em->getConnection()->beginTransaction();
try {
if ($overwrite) {
$this->deleteByArticle($articleId);
}
foreach ($insertValues as $dateValue) {
foreach (array_merge(array($dateValue), $dateValue->getSpawns()) as $dateValue) {
$articleDatetime = new ArticleDatetime();
$articleDatetime->setValues($dateValue, $article, $fieldName, null, $otherInfo);
$em->persist($articleDatetime);
}
}
$em->flush();
$em->getConnection()->commit();
} catch (\Exception $e) {
$em->getConnection()->rollback();
$em->close();
return $e;
}
}