/** * 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; }
/** * * @param \Tip\Repository\IzbirneOpcije $rep * @param string $object * @param array $vals */ public function populateFunkcija($manager, $v) { $rep = $manager->getRepository('Produkcija\\Entity\\Funkcija'); $tipFunR = $manager->getRepository('Produkcija\\Entity\\TipFunkcije'); $o = $rep->findOneByNaziv(trim($v[0])); $nov = false; if (!$o) { $o = new Funkcija(); $o->setNaziv(trim($v[0])); $nov = true; } $o->setKomentar($v[1]); $value = $tipFunR->findOneByIme($v[2]); $o->setTipFunkcije($value); if ($v[3]) { $o->setVodjaEkipe($v[3]); } $o->setVelikost($v[4]); $o->setPomembna($v[5]); $o->setSort($v[6]); $o->setSePlanira($v[7]); $o->setDovoliPrekrivanje($v[8]); if ($v[9]) { $getref = $this->getReference($v[9]); $o->setUprizoritev($getref); } // ker ni v isti skupini fixtur-jev, ne deluje getReference if ($nov) { $rep->create($o); } else { $rep->update($o); } $referenca = 'Funkcija-' . $v[0]; //var_dump($referenca); $this->addReference($referenca, $o); }
/** * č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); } }