public function validate($mode = 'update') { $this->expect($this->getEnotaPrograma(), 'Ni enote programa za to koprodukcijo', 1000410); $this->validateNumberGE0($this->kpe, "Koeficient programske enote", 1000417); $this->validateProcGE0LE100($this->odstotekFinanciranja, "Odstotek financiranja", 1000412); $this->validateEuroGE0($this->delez, "Delež", 1000416); $delez = \Max\Functions::procRoundS($this->delez); //$$ kontrole za vsoto procentov // za isto enoto programa je lahko le 1 delitev z isto produkcijsko hišo if (!$this->getEnotaPrograma()->getKoprodukcije()->isEmpty()) { $id = $this->getId(); $obstaja = $this->getEnotaPrograma()->getKoprodukcije()->exists(function ($key, $kopr) use(&$id) { return $kopr->getKoproducent() == $this->getKoproducent() && $kopr->getId() !== $id; //vrne true, če obstaja drug koprodukcija z istim koproducentom }); $this->expect(!$obstaja, "Koprodukcija z istim koproducentom že obstaja v enoti programa", 1000411); /** * preveri število matičnih koprodukcij? */ $maticniCollection = $this->getEnotaPrograma()->getKoprodukcije()->filter(function ($kopr) { return $kopr->getMaticniKop(); //vrne vse zapise matičnih koproducentov }); $stMaticnihKoproducentov = $maticniCollection->count(); $this->expect($stMaticnihKoproducentov == 1, "Dovoljen natanko 1 matični koproducent, jih je pa " . $stMaticnihKoproducentov, 1000414); } /** * pri premieri mora biti vsota kpe vseh koproducentov <= maksimalnemu koeficientu iz tabele */ $sumkpe = 0; //init /** * $$ if program premiera * pri drugih ne bi smel biti problem, ker so KPE-ji =0 $$? */ foreach ($this->getEnotaPrograma()->getKoprodukcije() as $numObject => $kopr) { $sumkpe += $kopr->getKpe(); } $sumkpe = \Max\Functions::numberRoundS($sumkpe); $maxvsifaktor = $this->getEnotaPrograma()->getTipProgramskeEnote() ? $this->getEnotaPrograma()->getTipProgramskeEnote()->getMaxVsi() : 0; $maxvsifaktor = \Max\Functions::numberRoundS($maxvsifaktor); $this->expect($sumkpe <= $maxvsifaktor, "Vsota kpe vseh koproducentov (" . $sumkpe . ") ne sme biti večji kot maks. koeficient (" . $maxvsifaktor . ")", 1000415); }