/**
  *
  * @param \Tip\Repository\IzbirneOpcije $rep
  * @param string $object
  * @param array $vals
  */
 public function populateAvtorBesedila($manager, $v)
 {
     $rep = $manager->getRepository('Produkcija\\Entity\\AvtorBesedila');
     $besediloId = $this->getReference($v[4]);
     $osebaId = $this->getReference($v[5]);
     $o = $rep->findOneBy(["besedilo" => $besediloId, "oseba" => $osebaId]);
     $nov = false;
     if (!$o) {
         $o = new \Produkcija\Entity\AvtorBesedila();
         $o->setBesedilo($besediloId);
         $o->setOseba($osebaId);
         $nov = true;
     }
     $o->setTipAvtorja($v[1]);
     $o->setZaporedna($v[2]);
     $o->setAliVNaslovu($v[3]);
     if ($nov) {
         $rep->create($o);
     } else {
         $rep->update($o);
     }
     $referenca = 'AvtorBesedila-' . $v[0];
     //var_dump($referenca);
     $this->addReference($referenca, $o);
 }
 public function loadAvtorji()
 {
     echo "loading avtorji" . PHP_EOL;
     $osebaR = $this->em->getRepository('App\\Entity\\Oseba');
     $osebaR->setServiceLocator($this->getServiceLocator());
     $avtorR = $this->em->getRepository('Produkcija\\Entity\\AvtorBesedila');
     $avtorR->setServiceLocator($this->getServiceLocator());
     /**
      * iz csv breberi vse vrstice avtorjev
      * in jih daj (če se ne ponavlja) v Besedilo
      */
     foreach ($this->src as $key => $vrsta) {
         /**
          * v prvi vrsti csv-ja je glava
          */
         if ($key == 0) {
             continue;
         }
         /**
          * najprej dodamo/ažuriramo osebo
          */
         $oseba = null;
         //init
         $oseba = $osebaR->findOneBy(["ime" => trim($vrsta[3]), "priimek" => trim($vrsta[4])]);
         if (!$oseba) {
             $oseba = new \App\Entity\Oseba();
             $oseba->setIme(trim($vrsta[3]));
             $oseba->setPriimek(trim($vrsta[4]));
             $oseba->setPolnoIme(trim($oseba->getIme() . " " . $oseba->getPriimek()));
             $oseba->setSpol($vrsta[7] == 'Z' ? 'Z' : 'M');
             if (!$oseba->getPriimek()) {
                 continue;
             }
             $osebaR->create($oseba);
         }
         if (!$oseba->getPriimek()) {
             continue;
         }
         $osebaR->update($oseba);
         /**
          * dodamo avtorja besedila
          */
         $avtor = new \Produkcija\Entity\AvtorBesedila();
         $avtor->setOseba($oseba);
         $avtor->setTipAvtorja(trim($vrsta[5]));
         $avtor->setAliVNaslovu($vrsta[6] ? true : FALSE);
         $avtor->setBesedilo($this->getRef('besedilo', intval($vrsta[0])));
         $avtor->setZaporedna($vrsta[8]);
         $avtorR->create($avtor);
         $polnoIme = $oseba->getPolnoIme();
         echo "oseba {$vrsta['0']} {$polnoIme} " . PHP_EOL;
         /**
          * da bo lahko našel osebe, ki smo jih prej dodali
          * 
          * performančno je sicer slabše
          */
         $this->em->flush();
     }
 }