Dochazka_list as $dochazka){ $dochazka->archivate($level); } $this->archive($level); } public function getZrusenoString($str){ return str_replace("ne","---", str_replace("pozde","Zrušeno pozdě", str_replace("agentura","Zrušila agentura",$str))); } public function getKurzHodinaByKurz($id){ $beh = Doctrine::getTable('Kurz_beh')->getBehFromKurz($id)->execute(); $kurz_hodina = Doctrine::getTable('Kurz_hodina')->getHodina($beh[0]->getId())->orderBy("datum DESC")->execute(); return $kurz_hodina; } public function getDochazkaString() { $id = $this->getId(); if ($this->zruseno == 'agentura' || $this->zruseno == 'pozde') return '-'; $all = count(Doctrine::getTable('Kurz_dochazka')->getAllDochazka($id)->execute()); $present = count(Doctrine::getTable('Kurz_dochazka')->getPresentPersons($id)->execute()); $procent = 0; if($present != 0) $procent = ($present/$all)*100; return $present.' / '.$all."
".number_format($procent,0,"","")." %"; } public function getDochazka($id,$id_pracovnik){ $dochazka = Doctrine::getTable('Kurz_dochazka')->getCurrentDochazkaWithPracovnik($id_pracovnik,$id)->execute(); return $dochazka[0]->getStav(); } /** * Vratí konkrétních docázku na základě pracovníka * * @param Pracovnik $pracovnik * @return Kurz_dochazka */ public function getDochazkaByPracovnik(Pracovnik $pracovnik) { return Doctrine::getTable('Kurz_dochazka')->createQuery() ->addWhere('pracovnik_id = ?', $pracovnik->getId()) ->addWhere('kurz_hodina_id = ?', $this->getId()) ->fetchOne(); } public function getUcebniceAndTemaToString(){ $string = $this->getUcebnice()." ,".$this->getKapitola().' ,'.$this->getStrana(); if ($string == ' , ,') $string=''; return $string; } public function getZrusenoToString(){ return $this->getZrusenoString($this->getZruseno()); } public function getPracovnikList(){ $str = array(); $pracovnik = Doctrine::getTable('Pracovnik_kurz')->createQuery("a")->where("a.kurz_id = ".$this->Kurz_beh->Kurz->getId())->execute(); foreach($pracovnik as $prac){ $str[] = $prac->Pracovnik->getPrijmeni(); } return implode("
",$str); } public function getPracovnikAktList(){ $str = array(); $pracovnik = Doctrine::getTable('Kurz_dochazka')->createQuery("a")->where("a.kurz_hodina_id = ".$this->getId())->andWhere("a.stav = 'A'")->execute(); foreach($pracovnik as $prac){ $str[] = $prac->Pracovnik->getPrijmeni(); } return implode("
",$str); } public function deleteUdrzba() { foreach ($this->Dochazka_list as $kurz_dochazka) { $pracovnik_rozpocet = Doctrine::getTable('Pracovnik_rozpocet')->createQuery('u') ->where("u.pracovnik_id = ".$kurz_dochazka->Pracovnik->id) ->andWhere("u.kurz_beh_id = ".$kurz_dochazka->Kurz_hodina->Kurz_beh->id) ->execute(); $pracovnik_rozpocet = $pracovnik_rozpocet[0]; $pracovnik_rozpocet->pracovnik_id = $kurz_dochazka->Pracovnik->id; $pracovnik_rozpocet->kurz_beh_id = $kurz_dochazka->Kurz_hodina->Kurz_beh->id; $pracovnik_rozpocet->cerpano -= $kurz_dochazka->cena; $pracovnik_rozpocet->save(); } $this->delete(); } public function hasPermission(Zakaznik $zakaznik) { return $this->getKurz_beh()->getKurz()->hasPermission($zakaznik); } public function getAppendDirChoices($is_agentura = false) { $choices = array('' => ''); foreach($this->getRootDocuments($is_agentura) as $document) { if($document->isDir()) { $choices[$document->getId()] = $document->getName(); $choices = $choices + $document->getDirChoices('-', $is_agentura); } } return $choices; } public function getRootDocuments($is_agentura = false) { $query = Doctrine::getTable('Document')->createQuery() ->addWhere('zakaznik_id = ?', $this->getKurz_beh()->getKurz()->getZakaznikId()) ->addWhere('((hodina_id = ? AND parent_id IS NULL) OR (hodina_id IS NOT NULL AND is_global = ?)) AND !(hodina_id = ? AND parent_id IS NOT NULL AND is_global = ?)', array($this->getId(), true, $this->getId(), true)) ->addWhere('parent_id IS NULL') ->orderBy('is_global DESC'); if($is_agentura) { $query->addWhere('agentura_read = ?', true); } return $query->execute(); } public function getCountDocuments($is_agentura = false) { $query = Doctrine_Query::create() ->select('count(id)') ->addWhere('zakaznik_id = ?', $this->getKurz_beh()->getKurz()->getZakaznikId()) ->addWhere('((hodina_id = ? AND parent_id IS NULL) OR (hodina_id IS NOT NULL AND is_global = ?)) AND !(hodina_id = ? AND parent_id IS NOT NULL AND is_global = ?)', array($this->getId(), true, $this->getId(), true)) ->addWhere('parent_id IS NULL') ->from('Dokument'); if($is_agentura) { $query->addWhere('agentura_read = ?', true); } return $query->execute(); } public function __toString() { return 'hodina '.$this->getDatum().' kurzu '.$this->Kurz_beh->Kurz->getNazev(); } }