Exemple #1
0
 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;
 }