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();
}
}