/** * Kreiranje nove koprodukcije za lastno gledališče za določeno enoto programa * * * @param entity $enotaPrograma * * @returns koprodukcija id */ public function novaMaticnaKoprodukcija($enotaPrograma) { $em = $this->serviceLocator->get("\\Doctrine\\ORM\\EntityManager"); $optionR = $em->getRepository('App\\Entity\\Option'); $option = $optionR->findOneByName("application.tenant.maticnopodjetje"); $this->expect($option, "Matično gledališče ni vnešeno:", 1000953); $popaId = $option->getDefaultValue(); // šifra matičnega podjetja t.j. lastnega gledališča $popaR = $em->getRepository('App\\Entity\\Popa'); $sifra = $popaR->findOneById($popaId)->getSifra(); $phisaR = $em->getRepository('ProgramDela\\Entity\\ProdukcijskaHisa'); $phisa = $phisaR->findOneBySifra($sifra); // lastno gledališče // seštejemo vrednosti iz stroškom uprizoritve $matkoprColl = $enotaPrograma->getKoprodukcije()->filter(function ($ent) use(&$sifra) { return $ent->getKoproducent()->getSifra() === $sifra; //vrne koprodukcijo lastnega gledališča }); // če koprodukcija še ne obstaja, jo kreiramo if ($matkoprColl->isEmpty()) { $kopr = new \ProgramDela\Entity\ProdukcijaDelitev(); $em->persist($kopr); $kopr->setKoproducent($phisa); $kopr->setEnotaPrograma($enotaPrograma); $kopr->setOdstotekFinanciranja(100); $kopr->setMaticniKop(true); $kopr->setKpe($enotaPrograma->getKpe()); // velja le za premiere } else { // če matična koprodukcija že obstaja, jo le preberemo $kopr = $matkoprColl->first(); } $kopr->preracunaj(); $kopr->validate(); return $kopr->getId(); }