/** * Vrne Osebe bodis zasedene bodisi nezasedene v obliki [funId => osebaId] * * @param \Produkcija\Entity\Funkcija $funkcija * @param array $zasedeneOsebe * @param type $izpisiZasedene * @return string */ private function getOsebe(\Produkcija\Entity\Funkcija $funkcija, array $zasedeneOsebe = [], $izpisiZasedene = false) { $rezultat = []; $privzetoIme = ""; foreach ($funkcija->getAlternacije() as $alter) { /* @var $alter \Produkcija\Entity\Alternacija */ if ($alter->getOseba()) { $osebaId = $alter->getOseba()->getId(); if ($izpisiZasedene && in_array($osebaId, $zasedeneOsebe) || !$izpisiZasedene && !in_array($osebaId, $zasedeneOsebe)) { $rezultat[] = $osebaId; } } } return $rezultat; }
/** * če nima nobena funkcija alternacije nastavljenega privzeti na true * in če collection ni prazen * potem nastavi prvega v collection-u * * @param entity $funkcija */ public function nastaviEnPrivzeti(Funkcija $funkcija) { if ($funkcija && $funkcija->getAlternacije()->count() >= 1) { if (!$funkcija->getAlternacije()->exists(function ($key, $alt) use(&$id) { return $alt->getPrivzeti(); //vrne true, če obstaja vsaj ena alternacija s privzeti })) { $altPr = $funkcija->getAlternacije()->first(); $altPr->setPrivzeti(true); $funkcija->setPrivzeti($altPr); } } else { /** * če brišemo zadnjo alternacijo pri funkciji */ $funkcija->setPrivzeti(null); } }