/** * @param entity $programDela * @return bool uspeh * @throws \Max\Exception\UnauthException */ protected function preveriStZapisov($programDela) { $zaplR = $this->getEm()->getRepository('Zapisi\\Entity\\ZapisLastnik'); $tr = $this->getServiceLocator()->get('translator'); /** * premiere 2 zapisa */ foreach ($programDela->getPremiere() as $ep) { $minPriponk = $ep->getImaKoprodukcije() ? 1 : 0; $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1 + $minPriponk) { throw new \Max\Exception\UnauthException($tr->translate('Program premierne uprizoritve (zaporedna ' . $ep->getSort() . ") mora imeti vsaj 1 utemeljitev in {$minPriponk} priponk ,ima pa " . $stZapisov), 1000967); } } /** * ponovitev premiere 1 zapis */ foreach ($programDela->getPonovitvePremiere() as $ep) { $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1) { throw new \Max\Exception\UnauthException($tr->translate('Program ponovitve premierne uprizoritve (zaporedna ' . $ep->getSort() . ') mora imeti vsaj 1 priponko ,ima pa ' . $stZapisov), 1000968); } } /** * ponovitev prejšnjih 1 zapis */ foreach ($programDela->getPonovitvePrejsnjih() as $ep) { $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1) { throw new \Max\Exception\UnauthException($tr->translate('Program ponovitve prejšnjih sezon (zaporedna ' . $ep->getSort() . ') mora imeti vsaj 1 priponko ,ima pa ' . $stZapisov), 1000969); } } /** * gostujoča 1 zapis */ foreach ($programDela->getGostujoci() as $ep) { $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1) { throw new \Max\Exception\UnauthException($tr->translate('Program gostujočih uprizoritev (zaporedna ' . $ep->getSort() . ') mora imeti vsaj 1 utemeljitev, ima pa ' . $stZapisov), 1001220); } } /** * gostovanja 2 zapisa */ foreach ($programDela->getGostovanja() as $ep) { $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 2) { throw new \Max\Exception\UnauthException($tr->translate('Program mednarodnih gostovanj (zaporedna ' . $ep->getSort() . ') mora imeti vsaj 1 utemeljitev in 1 priponko, ima pa ' . $stZapisov), 1001221); } } /** * festivali 3 zapise */ foreach ($programDela->getProgramiFestival() as $ep) { $minPriponk = 1; if ($ep->getImaKoprodukcije()) { $minPriponk += 1; } $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1 + $minPriponk) { throw new \Max\Exception\UnauthException($tr->translate('Program festivali (zaporedna ' . $ep->getSort() . ") mora imeti vsaj 1 utemeljitev in {$minPriponk} priponk, ima pa {$stZapisov}"), 1001222); } } /** * razno 2 zapisa */ foreach ($programDela->getProgramiRazno() as $ep) { $minPriponk = $ep->getImaKoprodukcije() ? 1 : 0; $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1 + $minPriponk) { throw new \Max\Exception\UnauthException($tr->translate('Program razno (zaporedna ' . $ep->getSort() . ") mora imeti vsaj 1 utemeljitev in {$minPriponk} priponk, ima pa " . $stZapisov), 1001223); } } /** * izjemni 3 zapisa */ foreach ($programDela->getIzjemni() as $ep) { $minPriponk = $ep->getImaKoprodukcije() ? 1 : 0; if ($ep->getPonoviZamejo() + $ep->getPonoviGost() > 0) { $minPriponk += 1; } $stZapisov = count($zaplR->findByLastnik($ep->getId())); if ($stZapisov < 1 + $minPriponk) { throw new \Max\Exception\UnauthException($tr->translate('Program izjemni dogodki (zaporedna ' . $ep->getSort() . ") mora imeti vsaj 1 utemeljitev in {$minPriponk} priponk, ima pa {$stZapisov}"), 1001224); } } return true; }