/**
  * Kreiranje nove pogodbe Alternaciji
  *
  * Procedura deluje podobno kot 2 REST ukaza, vendar v 1 flushu:
  *  POST /rest/pogodba      vrednostPredstave=0,...
  *  PUT  /rest/alternacija   pogodba= idPogodbe
  *
  * @param string $alternacijaId
  * @return pogodba id (ali celi objekt od pogodbe)  ali ?false  , če ne uspe $$
  * @throws \Max\Exception\UnauthException
  */
 public function novaPogodba($alternacijaId)
 {
     // preverjanje avtorizacije
     $this->expectPermission("Pogodba-write");
     $this->expectPermission("Alternacija-write");
     $em = $this->serviceLocator->get("\\Doctrine\\ORM\\EntityManager");
     $tr = $this->getServiceLocator()->get('translator');
     $alternacija = $em->getRepository("Produkcija\\Entity\\Alternacija")->findOneById($alternacijaId);
     if (!$alternacija) {
         throw new \Max\Exception\UnauthException($tr->translate('Ni alternacije'), 1000921);
     }
     if ($alternacija->getPogodba()) {
         throw new \Max\Exception\UnauthException($tr->translate('Alternacija že ima pogodbo'), 1000922);
     }
     $pogodba = new \Produkcija\Entity\Pogodba();
     // vse vrednosti na 0
     //        $pogodba->setVrednostDo(0);
     //        $pogodba->setVrednostDo(0);
     $pogodba->setVrednostVaj(0);
     $pogodba->setVrednostVaje(0);
     $pogodba->setPlaniranoSteviloVaj(0);
     $pogodba->setVrednostPredstave(0);
     //        $pogodba->setVrednostUre(0);
     $pogodba->setVrednostDoPremiere(0);
     $pogodba->setPlaciloNaVajo(FALSE);
     $pogodba->setJeAvtorskePravice(FALSE);
     $pogodba->setOseba($alternacija->getOseba());
     $pogodbaR = $em->getRepository("Produkcija\\Entity\\Pogodba")->setServiceLocator($this->getServiceLocator());
     $pogodbaR->create($pogodba);
     //da kreira tudi šifro
     // create vključuje tudi persist
     $alternacija->setPogodba($pogodba);
     $pogodba->preracunaj();
     $pogodba->validate();
     $alternacija->preracunaj();
     $alternacija->validate();
     // sedaj, ko imamo entiteti ponovimo preverjanje avtorizacije zaradi morebitnega assert preverjanja!
     $this->expectPermission("Pogodba-write", $pogodba);
     $this->expectPermission("Alternacija-write", $alternacija);
     $em->flush();
     return $pogodba->getId();
 }
示例#2
0
 /**
  *
  * @param \Tip\Repository\IzbirneOpcije $rep
  * @param string $object
  * @param array $vals
  */
 public function populatePogodba($manager, $v)
 {
     $rep = $manager->getRepository('Produkcija\\Entity\\Pogodba');
     //        $tipFunR = $manager->getRepository('Produkcija\Entity\TipFunkcije');
     $o = $rep->findOneBySifra(trim($v[0]));
     $nov = false;
     if (!$o) {
         $o = new \Produkcija\Entity\Pogodba();
         $o->setSifra(trim($v[0]));
         $nov = TRUE;
     }
     $o->setVrednostVaj($v[1]);
     $o->setVrednostPredstave($v[2]);
     $o->setVrednostVaje($v[3]);
     //        $o->setAktivna($v[4]);
     $o->setOpis($v[5]);
     if ($v[6]) {
         $getref = $this->getReference($v[6]);
         $o->setOseba($getref);
     }
     if ($v[7]) {
         $getref = $this->getReference($v[7]);
         $o->setPopa($getref);
     }
     if ($v[8]) {
         $getref = $this->getReference($v[8]);
         $o->setTrr($getref);
     }
     $date = empty($v[9]) ? null : date_create($v[9]);
     // polje mora biti v php-jevi PHP-jevem datetime  tipu
     $o->setZacetek($date);
     $date = empty($v[10]) ? null : date_create($v[10]);
     // polje mora biti v php-jevi PHP-jevem datetime  tipu
     $o->setKonec($date);
     $o->setPlaciloNaVajo($v[11]);
     $o->setPlaniranoSteviloVaj($v[12]);
     $o->setZaposlenVDrJz($v[13]);
     $o->setSamozaposlen($v[14]);
     $o->setIgralec($v[15]);
     $o->setJeAvtorskePravice($v[16]);
     if ($nov) {
         $rep->create($o);
     } else {
         $rep->update($o);
     }
     /**
      * validate javi napako, ker alternacije še ni
      */
     //        $o->validate();
     $referenca = 'Pogodba-' . $v[0];
     //var_dump($referenca);
     $this->addReference($referenca, $o);
 }