public function validate($mode = 'update') { $this->validateEuroGE0($this->celotnaVrednost, "Celotna vrednost", 1000622); $this->validateEuroGE0($this->nasDelez, "Naš delež", 1000623); $this->validateEuroGE0($this->celotnaVrednostMat, "Celotna vrednost na matičnem odru", 1000624); $this->validateEuroGE0($this->celotnaVrednostGostovSZ, "Celotna vrednost gostovanj v Slo in zamejstvu", 1000625); $this->validateEuroGE0($this->zaproseno, "Zaprošeno", 1000626); // $this->validateEuroGE0($this->lastnaSredstva, "Lastna sredstva", 1000627); $this->validateEuroGE0($this->avtorskiHonorarji, "Avtorski honorarji", 1000628); $this->validateEuroGE0($this->avtorskiHonorarjiSamoz, "Avtorski honorarji samozaposlenih", 1000629); $this->validateEuroGE0($this->tantieme, "Tantieme", 1000680); $this->validateEuroGE0($this->avtorskePravice, "Avtorske pravice", 1000681); $this->validateEuroGE0($this->vlozekGostitelja, "Vložek gostitelja", 1000682); $this->validateEuroGE0($this->drugiJavni, "Drugi javni", 1000683); $this->validateIntGE0($this->stZaposlenih, "", 1000684); $this->validateIntGE0($this->stZaposUmet, "", 1000685); $this->validateIntGE0($this->stZaposDrug, "", 1000686); $this->validateIntGE0($this->stHonorarnihZun, "", 1000687); $this->validateIntGE0($this->stHonorarnihZunIgr, "", 1000688); $this->validateIntGE0($this->stHonorarnihZunIgrTujJZ, "", 1000689); $this->validateIntGE0($this->stHonorarnihZunSamoz, "", 1000690); $this->validateIntGE0($this->obiskDoma, "", 1000691); $this->validateIntGE0($this->obiskKopr, "", 1001201); $this->validateIntGE0($this->obiskGost, "", 1000692); $this->validateIntGE0($this->obiskZamejo, "", 1000693); $this->validateIntGE0($this->obiskInt, "", 1000694); $this->validateIntGE0($this->ponoviDoma, "", 1000695); $this->validateNumberGE0($this->ponoviZamejo, "", 1000696); $this->validateNumberGE0($this->ponoviKoprZamejo, "", 1001205); $this->validateNumberGE0($this->ponoviGost, "", 1000697); $this->validateNumberGE0($this->ponoviKoprGost, "", 1001206); $this->validateIntGE0($this->ponoviInt, "", 1000698); $this->validateIntGE0($this->ponoviKopr, "", 1001202); $this->validateIntGE0($this->sort, "", 1000699); $this->validateEuroGE0($this->materialni, "Materialni", 1001200); /** * pred primerjanjem damo števila s plavajočo vejico v string */ $nd = \Max\Functions::euroRoundS($this->getNasDelez()); $cv = \Max\Functions::euroRoundS($this->getCelotnaVrednost()); $cvSZ = \Max\Functions::euroRoundS($this->celotnaVrednostGostovSZ); $this->expect($nd <= $cv, "Delež matičnega JZ (" . $nd . ") ne sme biti večji od celotne vrednosti (" . $cv . ")", 1000621); $this->expect($cvSZ <= $cv, "Celotna vrednost gostovanj v Slo in zam. (" . $cvSZ . ") ne sme biti večja od celotne vrednosti (" . $cv . ")", 1000622); $ah = \Max\Functions::euroRoundS($this->getAvtorskiHonorarji()); $ahs = \Max\Functions::euroRoundS($this->getAvtorskiHonorarjiSamoz()); $this->expect($ahs <= $ah, "Avtorski honorarji samozaposlenih (" . $ahs . ") ne smejo biti večji od avtorskih honorarjev (" . $ah . ")", 1001204); /** * za tiste ep, ki imajo uprizoritev je lahko obisk doma lahko največ število ponovitev doma * kapaciteta matičnega odra */ if ($this->uprizoritev) { $this->expect($this->obiskDoma <= $this->ponoviDoma * $this->uprizoritev->getMaticniOder()->getKapaciteta(), "Obisk doma ne sme biti večji kot št. ponovitev doma * kapaciteta matičnega odra (" . $this->uprizoritev->getMaticniOder()->getKapaciteta() . ")", 1001203); } }
/** * sešteje avtorske honorarje in avtorske pravice iz pogodb * * @param entity $uprizoritev enota programa * @param entity $programDela programa dela * * @return array $data honorarji in avtorske pravice (in tantieme) */ protected function sestejVrednostiPogodb(Uprizoritev $uprizoritev, ProgramDela $programDela) { $data['Do']['avtorskePravice'] = 0; // init $data['Na']['avtorskePravice'] = 0; $data['Do']['avtorskiHonorarji'] = 0; $data['Na']['avtorskiHonorarji'] = 0; $pdz = $programDela->getZacetek(); $pdk = $programDela->getKonec(); foreach ($uprizoritev->getFunkcije() as $numFun => $funkcija) { foreach ($funkcija->getAlternacije() as $numAlt => $alternacija) { /** * upoštevamo le tiste alternacije, ki se vsaj delno prekrivajo z intervalom začetka in konca programa dela */ $az = is_null($alternacija->getZacetek()) ? null : $alternacija->getZacetek(); $ak = is_null($alternacija->getKonec()) ? null : $alternacija->getKonec(); if ((!is_null($az) ? $az <= $pdk : true) && (!is_null($ak) ? $ak >= $pdz : true)) { if ($alternacija->getImaPogodbo()) { $pogodba = $alternacija->getPogodba(); if ($pogodba) { /** * $$ tu obstaja možnost, da bo honorarje 2x štel, če bo ista pogodba na več alternacijah */ if ($pogodba->getJeAvtorskePravice()) { /** * avtorske pravice */ $data['Do']['avtorskePravice'] += $pogodba->getVrednostDoPremiere(); $data['Na']['avtorskePravice'] += $pogodba->getVrednostPredstave(); // to so tantieme } else { /** * avtorski honorarji */ $data['Do']['avtorskiHonorarji'] += $pogodba->getVrednostDoPremiere(); $data['Na']['avtorskiHonorarji'] += $pogodba->getVrednostPredstave(); } } } } } } return $data; }