/** * preračun kazalnikov * * @param type $smer */ public function preracunaj($smer = false) { /** * init */ $this->stPonPrejVelikih = 0; $this->stPonPrejMalih = 0; $this->stPonPrejMalihKopr = 0; $this->stPonPrejSredKopr = 0; $this->stPonPrejVelikihKopr = 0; $this->stPremierVelikih = 0; $this->stPremierMalih = 0; $this->stPremierMalihKopr = 0; $this->stPremierSredKopr = 0; $this->stPremierVelikihKopr = 0; $this->vrPS1 = 0; $this->vrPS1Do = 0; $this->vrPS1Mat = 0; $this->vrPS1GostovSZ = 0; $this->stVsehPredstav = 0; $this->stIzvNekomerc = 0; $this->stIzvPrem = 0; $this->stIzvPremDoma = 0; $this->stIzvPremKopr = 0; $this->stIzvPonPrem = 0; $this->stIzvPonPremDoma = 0; $this->stIzvPonPremZamejo = 0; $this->stIzvPonPremKoprZamejo = 0; $this->stIzvPonPremGost = 0; $this->stIzvPonPremKoprGost = 0; $this->stIzvPonPremKopr = 0; $this->stIzvPonPremInt = 0; $this->stIzvPonPremKoprInt = 0; $this->stIzvPonPrej = 0; $this->stIzvPonPrejDoma = 0; $this->stIzvPonPrejKoprZamejo = 0; $this->stIzvPonPrejZamejo = 0; $this->stIzvPonPrejGost = 0; $this->stIzvPonPrejKoprGost = 0; $this->stIzvPonPrejKopr = 0; $this->stIzvPonPrejInt = 0; $this->stIzvPonPrejKoprInt = 0; $this->stIzvGostuj = 0; $this->stIzvOstalihNek = 0; $this->stIzvGostovanjSlo = 0; $this->stIzvGostovanjZam = 0; $this->stIzvGostovanjInt = 0; $this->stObiskNekom = 0; $this->stObiskNekomMat = 0; $this->stObiskNekomGostSlo = 0; $this->stObiskNekomGostZam = 0; $this->stObiskNekomGostInt = 0; $this->stObiskPrem = 0; $this->stObiskPremDoma = 0; $this->stObiskPremKopr = 0; $this->stObiskPonPrem = 0; $this->stObiskPonPremDoma = 0; $this->stObiskPonPremGost = 0; $this->stObiskPonPremZamejo = 0; $this->stObiskPonPremZamejoKopr = 0; $this->stObiskPonPremGostKopr = 0; $this->stObiskPonPrejZamejoKopr = 0; $this->stObiskPonPrejGostKopr = 0; $this->stObiskPonPremKopr = 0; $this->stObiskPonPremKoprInt = 0; $this->stObiskPonPrejKopr = 0; $this->stObiskPonPrejKoprInt = 0; $this->stObiskPonPremInt = 0; $this->stHonorarnihZun = 0; $this->stHonorarnihZunIgr = 0; $this->stHonorarnihZunIgrTujJZ = 0; $this->stHonorarnihZunSamoz = 0; $this->sredstvaAvt = 0; $this->sredstvaAvtSamoz = 0; $this->sredstvaInt = 0; $this->stKoprodukcij = 0; $this->stKoprodukcijInt = 0; $this->stKoprodukcijNVO = 0; $this->sredstvaZaprosenoPrem = 0; $this->sredstvaZaprosenoPonPrem = 0; $this->sredstvaZaprosenoPonPrej = 0; $this->sredstvaZaprosenoGostujo = 0; $this->sredstvaZaprosenoInt = 0; $this->sredstvaZaprosenoFest = 0; $this->sredstvaZaprosenoRazno = 0; $this->sredstvaZaprosenoIzjem = 0; $this->sredstvaDrugiJavniPrem = 0; $this->sredstvaDrugiJavniPonPrem = 0; $this->sredstvaDrugiJavniPonPrej = 0; $this->sredstvaDrugiJavniGostujo = 0; $this->sredstvaDrugiJavniInt = 0; $this->sredstvaDrugiJavniFest = 0; $this->sredstvaDrugiJavniRazno = 0; $this->sredstvaDrugiJavniIzjem = 0; $this->sredstvaDrugiViriPrem = 0; $this->sredstvaDrugiViriPonPrem = 0; $this->sredstvaDrugiViriPonPrej = 0; $this->sredstvaDrugiViriGostujo = 0; $this->sredstvaDrugiViriInt = 0; $this->sredstvaDrugiViriFest = 0; $this->sredstvaDrugiViriRazno = 0; $this->sredstvaDrugiViriIzjem = 0; $this->sredstvaVlozekGostiteljaPrem = 0; $this->sredstvaVlozekGostiteljaPonPrem = 0; $this->sredstvaVlozekGostiteljaPonPrej = 0; $this->sredstvaVlozekGostiteljaGostujo = 0; $this->sredstvaVlozekGostiteljaInt = 0; $this->sredstvaVlozekGostiteljaFest = 0; $this->sredstvaVlozekGostiteljaRazno = 0; $this->sredstvaVlozekGostiteljaIzjem = 0; $this->sredstvaLastnaPrem = 0; $this->sredstvaLastnaPonPrem = 0; $this->sredstvaLastnaPonPrej = 0; $this->sredstvaLastnaGostujo = 0; $this->sredstvaLastnaInt = 0; $this->sredstvaLastnaFest = 0; $this->sredstvaLastnaRazno = 0; $this->sredstvaLastnaIzjem = 0; /** * init za izračun zasedenosti igralcev * */ $stNastopovZaposIgralcev = 0; /** * init za izračun povprečne zasedenosti dvoran */ $obiskDomaUpriz = 0; $maxKapaciteta = 0; $this->stPremier = $this->getPremiere()->count(); $this->stPonPrem = $this->getPonovitvePremiere()->count(); $this->stPonPrej = $this->getPonovitvePrejsnjih()->count(); $this->stGostujo = $this->getGostujoci()->count(); $this->stInt = $this->getGostovanja()->count(); $this->stFest = $this->getProgramiFestival()->count(); $this->stRazno = $this->getProgramiRazno()->count(); $this->stIzjem = $this->getIzjemni()->count(); /** * premiere */ foreach ($this->getPremiere() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->vrPS1 += $object->getNasDelez(); $this->vrPS1Do += $object->getNasDelez(); $this->stVsehPredstav = $object->getPonoviDoma() + $object->getPonoviKopr(); $this->stIzvNekomerc += $object->getPonoviDoma(); $this->stIzvPrem += $object->getPonoviDoma(); $this->stIzvPremDoma += $object->getPonoviDoma(); $this->stIzvPremKopr += $object->getPonoviKopr(); $this->stObiskNekom += $object->getObiskDoma(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->stObiskPrem += $object->getObiskDoma(); $this->stObiskPremDoma += $object->getObiskDoma(); $this->stObiskPremKopr += $object->getObiskKopr(); $this->stHonorarnihZun += $object->getStHonorarnihZun(); $this->stHonorarnihZunIgr += $object->getStHonorarnihZunIgr(); $this->stHonorarnihZunIgrTujJZ += $object->getStHonorarnihZunIgrTujJZ(); $this->stHonorarnihZunSamoz += $object->getStHonorarnihZunSamoz(); $this->sredstvaZaprosenoPrem += $object->getZaproseno(); $this->sredstvaDrugiJavniPrem += $object->getDrugiJavni(); $this->sredstvaDrugiViriPrem += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaPrem += $object->getVlozekGostitelja(); $this->sredstvaLastnaPrem += $object->getLastnaSredstva(); $this->sredstvaAvt += $object->getAvtorskiHonorarji(); $this->sredstvaAvtSamoz += $object->getAvtorskiHonorarjiSamoz(); $this->prerStKopr($object); $obiskDomaUpriz += $object->getObiskDoma(); $this->expect($object->getUprizoritev(), "Uprizoritev je obvezen podatek", 1000790); if (!$object->getPriKoproducentu()) { $this->expect($object->getUprizoritev()->getMaticniOder(), "Matični oder je obvezen podatek", 1000791); if ($object->getUprizoritev()->getMaticniOder()) { $maxKapaciteta += $object->getUprizoritev()->getMaticniOder()->getKapaciteta() * $object->getPonoviDoma(); } } $this->pristejKStNastopovZaposIgr($object, $stNastopovZaposIgralcev); switch ($object->getTipProgramskeEnote()->getSifra()) { case "01": $this->stPremierVelikih += 1; // Velike predstave break; case "02": $this->stPremierMalih += 1; break; case "03": $this->stPremierMalihKopr += 1; break; case "04": $this->stPremierSredKopr += 1; break; case "05": $this->stPremierVelikihKopr += 1; break; default: $this->expect(FALSE, "Premiera ima napačen tip programske enote:" . $object->getTipProgramskeEnote()->getSifra(), 1000491); } } /** * ponovitve premier */ foreach ($this->getPonovitvePremiere() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->vrPS1 += $object->getNasDelez(); $this->vrPS1Mat += $object->getCelotnaVrednostMat(); $this->vrPS1GostovSZ += $object->getCelotnaVrednostGostovSZ(); $this->stIzvNekomerc += $object->getPonoviDoma() + $object->getPonoviZamejo() + $object->getPonoviGost(); //$$ ali prištevvamo tudi mednarodne? $this->stIzvPonPrem += $object->getPonoviDoma() + $object->getPonoviZamejo() + $object->getPonoviGost(); //$$ ali prištevvamo tudi mednarodne? $this->stIzvPonPremDoma += $object->getPonoviDoma(); $this->stIzvPonPremZamejo += $object->getPonoviZamejo(); $this->stIzvPonPremKoprZamejo += $object->getPonoviKoprZamejo(); $this->stIzvPonPremGost += $object->getPonoviGost(); $this->stIzvPonPremKoprGost += $object->getPonoviKoprGost(); $this->stIzvPonPremKopr += $object->getPonoviKopr(); $this->stIzvGostovanjSlo += $object->getPonoviGost(); $this->stIzvGostovanjZam += $object->getPonoviZamejo(); $this->stObiskNekom += $object->getObiskDoma() + $object->getObiskGost() + $object->getObiskZamejo(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->stObiskNekomGostSlo += $object->getObiskGost(); $this->stObiskNekomGostZam += $object->getObiskZamejo(); $this->stObiskPonPrem += $object->getObiskDoma() + $object->getObiskGost() + $object->getObiskZamejo(); $this->stObiskPonPremDoma += $object->getObiskDoma(); $this->stObiskPonPremKopr += $object->getObiskKopr(); $this->stObiskPonPremGost += $object->getObiskGost(); $this->stObiskPonPremZamejo += $object->getObiskZamejo(); $this->stObiskPonPremGostKopr += $object->getObiskKoprGost(); $this->stObiskPonPremZamejoKopr += $object->getObiskKoprZamejo(); $this->sredstvaAvt += $object->getAvtorskiHonorarji(); $this->sredstvaAvtSamoz += $object->getAvtorskiHonorarjiSamoz(); $this->sredstvaZaprosenoPonPrem += $object->getZaproseno(); $this->sredstvaDrugiJavniPonPrem += $object->getDrugiJavni(); $this->sredstvaDrugiViriPonPrem += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaPonPrem += $object->getVlozekGostitelja(); $this->sredstvaLastnaPonPrem += $object->getLastnaSredstva(); $this->prerStKopr($object); $obiskDomaUpriz += $object->getObiskDoma(); $this->expect($object->getUprizoritev(), "Uprizoritev je obvezen podatek", 1000792); $this->expect($object->getUprizoritev()->getMaticniOder(), "Matični oder je obvezen podatek", 1000793); if ($object->getUprizoritev()->getMaticniOder()) { $maxKapaciteta += $object->getUprizoritev()->getMaticniOder()->getKapaciteta() * $object->getPonoviDoma(); } $this->pristejKStNastopovZaposIgr($object, $stNastopovZaposIgralcev); } /** * ponovitve prejšnjih sezon */ foreach ($this->getPonovitvePrejsnjih() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->vrPS1 += $object->getNasDelez(); //$$ tu še preveriti ali celotna vrednost ali le delež matičnega koproducenta $this->vrPS1Mat += $object->getCelotnaVrednostMat(); $this->vrPS1GostovSZ += $object->getCelotnaVrednostGostovSZ(); $this->stIzvNekomerc += $object->getPonoviDoma() + $object->getPonoviZamejo() + $object->getPonoviGost(); //$$ ali prištevvamo tudi mednarodne? $this->stIzvPonPrej += $object->getPonoviDoma() + $object->getPonoviZamejo() + $object->getPonoviGost(); //$$ ali prištevvamo tudi mednarodne? $this->stIzvPonPrejDoma += $object->getPonoviDoma(); $this->stIzvPonPrejZamejo += $object->getPonoviZamejo(); $this->stIzvPonPrejKoprZamejo += $object->getPonoviKoprZamejo(); $this->stIzvPonPrejGost += $object->getPonoviGost(); $this->stIzvPonPrejKoprGost += $object->getPonoviKoprGost(); $this->stIzvPonPrejKopr += $object->getPonoviKopr(); $this->stIzvGostovanjSlo += $object->getPonoviGost(); $this->stIzvGostovanjZam += $object->getPonoviZamejo(); $this->stObiskNekom += $object->getObiskDoma() + $object->getObiskGost() + $object->getObiskZamejo(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->stObiskNekomGostSlo += $object->getObiskGost(); $this->stObiskNekomGostZam += $object->getObiskZamejo(); $this->stObiskPonPrejKopr += $object->getObiskKopr(); $this->stObiskPonPrejGostKopr += $object->getObiskKoprGost(); $this->stObiskPonPrejZamejoKopr += $object->getObiskKoprZamejo(); $this->stHonorarnihZun += $object->getStHonorarnihZun(); $this->stHonorarnihZunIgr += $object->getStHonorarnihZunIgr(); $this->stHonorarnihZunIgrTujJZ += $object->getStHonorarnihZunIgrTujJZ(); $this->stHonorarnihZunSamoz += $object->getStHonorarnihZunSamoz(); $this->sredstvaAvt += $object->getAvtorskiHonorarji(); $this->sredstvaAvtSamoz += $object->getAvtorskiHonorarjiSamoz(); switch ($object->getTipProgramskeEnote()->getSifra()) { case "01": $this->stPonPrejVelikih += 1; // Velike predstave break; case "02": $this->stPonPrejMalih += 1; break; case "03": $this->stPonPrejMalihKopr += 1; break; case "04": $this->stPonPrejSredKopr += 1; break; case "05": $this->stPonPrejVelikihKopr += 1; break; default: $this->expect(FALSE, "Ponovitev prejšnjih ima napačen tip programske enote:" . $object->getTipProgramskeEnote()->getSifra(), 1000490); } $this->sredstvaZaprosenoPonPrej += $object->getZaproseno(); $this->sredstvaDrugiJavniPonPrej += $object->getDrugiJavni(); $this->sredstvaDrugiViriPonPrej += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaPonPrej += $object->getVlozekGostitelja(); $this->sredstvaLastnaPonPrej += $object->getLastnaSredstva(); $this->prerStKopr($object); $obiskDomaUpriz += $object->getObiskDoma(); $this->expect($object->getUprizoritev(), "Uprizoritev je obvezen podatek", 1000794); $this->expect($object->getUprizoritev()->getMaticniOder(), "Matični oder je obvezen podatek", 1000795); if ($object->getUprizoritev()->getMaticniOder()) { $maxKapaciteta += $object->getUprizoritev()->getMaticniOder()->getKapaciteta() * $object->getPonoviDoma(); } $this->pristejKStNastopovZaposIgr($object, $stNastopovZaposIgralcev); } /** * gostujoče predstave */ foreach ($this->getGostujoci() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->stIzvNekomerc += $object->getPonoviDoma(); $this->stIzvGostuj += $object->getPonoviDoma(); $this->stObiskNekom += $object->getObiskDoma(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->sredstvaZaprosenoGostujo += $object->getZaproseno(); $this->sredstvaDrugiJavniGostujo += $object->getDrugiJavni(); $this->sredstvaDrugiViriGostujo += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaGostujo += $object->getVlozekGostitelja(); $this->sredstvaLastnaGostujo += $object->getLastnaSredstva(); $this->prerStKopr($object); $obiskDomaUpriz += $object->getObiskDoma(); $this->expect($object->getUprizoritev(), "Uprizoritev je obvezen podatek", 1000796); $this->expect($object->getUprizoritev()->getMaticniOder(), "Matični oder je obvezen podatek", 1000797); if ($object->getUprizoritev()->getMaticniOder()) { $maxKapaciteta += $object->getUprizoritev()->getMaticniOder()->getKapaciteta() * $object->getPonoviDoma(); } $this->pristejKStNastopovZaposIgr($object, $stNastopovZaposIgralcev); } /** * mednarodna gostovanja */ foreach ($this->getGostovanja() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->stIzvNekomerc += $object->getPonoviInt(); $this->stIzvGostovanjInt += $object->getPonoviInt(); $this->stObiskNekom += $object->getObiskInt(); $this->stObiskNekomGostInt += $object->getObiskInt(); $this->sredstvaAvt += $object->getAvtorskiHonorarji(); $this->sredstvaAvtSamoz += $object->getAvtorskiHonorarjiSamoz(); // $$ glede na to, ali je mednarodno gostovanje za premiero, ki bo letos, ali iz prejšnjih sezon $idUpr = $object->getUprizoritev(); $obstajaPremiera = false; //init if (!empty($idUpr)) { $obstajaPremiera = $this->getPremiere()->exists(function ($key, $premiera) use(&$idUpr) { return $premiera->getUprizoritev() == $idUpr; //vrne true, če obstaja premiera z isto uprizoritvijo }); } if ($obstajaPremiera) { $this->stIzvPonPrem += $object->getPonoviInt(); $this->stIzvPonPremInt += $object->getPonoviInt(); $this->stIzvPonPremKoprInt += $object->getPonoviKoprInt(); $this->stObiskPonPrem += $object->getObiskInt(); $this->stObiskPonPremInt += $object->getObiskInt(); $this->stObiskPonPremKoprInt += $object->getObiskKoprInt(); } else { // če uprizoritev ni iz (letošnje) premiere je najverjetneje iz ponovitve premiere prejšnjih sezon $this->stIzvPonPrej += $object->getPonoviInt(); $this->stIzvPonPrejInt += $object->getPonoviInt(); $this->stIzvPonPrejKoprInt += $object->getPonoviKoprInt(); $this->stObiskPonPrejKoprInt += $object->getObiskKoprInt(); } $this->sredstvaZaprosenoInt += $object->getZaproseno(); $this->sredstvaDrugiJavniInt += $object->getDrugiJavni(); $this->sredstvaDrugiViriInt += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaInt += $object->getVlozekGostitelja(); $this->sredstvaLastnaInt += $object->getLastnaSredstva(); $this->prerStKopr($object); $this->pristejKStNastopovZaposIgr($object, $stNastopovZaposIgralcev); } /** * festivali */ foreach ($this->getProgramiFestival() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } /** * 1 festival ena prireditev + ostale prireditve festivala */ $this->stIzvNekomerc += 1 + $object->getStPredstav() + $object->getStPredstavitev() + $object->getStDelavnic() + $object->getStOkroglihMiz() + $object->getStDrugiDogodki() + $object->getStProdukcij(); /** * 1 festival ena prireditev + ostale prireditve festivala $$ tu zaenkrat ne upošteva deleža koproducentov */ $this->stIzvOstalihNek += 1 + $object->getStPredstav() + $object->getStPredstavitev() + $object->getStDelavnic() + $object->getStOkroglihMiz() + $object->getStDrugiDogodki() + $object->getStProdukcij(); $this->stObiskNekom += $object->getObiskDoma(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->stHonorarnihZun += $object->getStHonorarnihZun(); $this->sredstvaZaprosenoFest += $object->getZaproseno(); $this->sredstvaDrugiJavniFest += $object->getDrugiJavni(); $this->sredstvaDrugiViriFest += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaFest += $object->getVlozekGostitelja(); $this->sredstvaLastnaFest += $object->getLastnaSredstva(); $this->prerStKopr($object); } /** * razno */ foreach ($this->getProgramiRazno() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->stIzvNekomerc += $object->getStDogodkov(); $this->stIzvOstalihNek += $object->getStDogodkov(); $this->stObiskNekom += $object->getObiskDoma(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->stHonorarnihZun += $object->getStHonorarnihZun(); $this->sredstvaZaprosenoRazno += $object->getZaproseno(); $this->sredstvaDrugiJavniRazno += $object->getDrugiJavni(); $this->sredstvaDrugiViriRazno += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaRazno += $object->getVlozekGostitelja(); $this->sredstvaLastnaRazno += $object->getLastnaSredstva(); $this->prerStKopr($object); } /** * izjemni dogodki */ foreach ($this->getIzjemni() as $numObject => $object) { if ($smer == Consts::DOWN) { $object->preracunaj(Consts::DOWN); } $this->stIzvNekomerc += $object->getPonoviDoma() + $object->getPonoviZamejo() + $object->getPonoviGost() + $object->getPonoviInt(); $this->stIzvOstalihNek += $object->getPonoviDoma() + $object->getPonoviZamejo() + $object->getPonoviGost() + $object->getPonoviInt(); $this->stObiskNekom += $object->getObiskDoma() + $object->getObiskGost() + $object->getObiskZamejo() + $object->getObiskInt(); $this->stObiskNekomMat += $object->getObiskDoma(); $this->stObiskNekomGostSlo += $object->getObiskGost(); $this->stObiskNekomGostZam += $object->getObiskZamejo(); $this->stObiskNekomGostInt += $object->getObiskInt(); $this->sredstvaAvt += $object->getAvtorskiHonorarji(); $this->sredstvaAvtSamoz += $object->getAvtorskiHonorarjiSamoz(); $this->sredstvaZaprosenoIzjem += $object->getZaproseno(); $this->sredstvaDrugiJavniIzjem += $object->getDrugiJavni(); $this->sredstvaDrugiViriIzjem += $this->sestejDrugeVire($object); $this->sredstvaVlozekGostiteljaIzjem += $object->getVlozekGostitelja(); $this->sredstvaLastnaIzjem += $object->getLastnaSredstva(); $this->prerStKopr($object); } if ($this->stIzvNekomerc > 0) { $this->avgObiskPrired = Functions::numberRound($this->stObiskNekom / $this->stIzvNekomerc); } else { $this->avgObiskPrired = 0; } $this->avgZasedDvoran = $maxKapaciteta > 0 ? $obiskDomaUpriz / $maxKapaciteta * 100 : 0; //$$ to je v primeru, če kapacitete prostorov niso vnešene $this->avgStNastopovIgr = $this->stZaposIgralcev > 0 ? $stNastopovZaposIgralcev / $this->stZaposIgralcev : 0; }