Example #1
0
</div>
@else
{{ Form::hidden('tecaj', 0) }}
@endif
<div id="predmet-select" class = 'form-group'>
    {{ Form::label('Odaberite predmet...') }}
    <script type="text/javascript">
        jQuery(function () {
            selectManager.init(
<?php 
$levels = array();
if (!isset($predmet_id)) {
    $predmet_id = Input::old('predmet_id');
}
if ($predmet_id) {
    $predmet = Predmet::with('kategorija')->find($predmet_id);
    $kategorije = $predmet->kategorija->path();
    $length = count($kategorije);
    for ($i = 0; $i < $length; $i++) {
        $level = array();
        $level[Kategorija::JSON_CONTENT_IDENTIFIER] = $kategorije[$i]->getChildrenFor($instruktor->id);
        $level[Kategorija::JSON_SELECTED_IDENTIFIER] = array(Kategorija::JSON_TYPE_IDENTIFIER => $i == $length - 1 ? Kategorija::JSON_SELECTED_PREDMET_IDENTIFIER : Kategorija::JSON_SELECTED_KATEGORIJA_IDENTIFIER, Kategorija::JSON_ID_IDENTIFIER => $i == $length - 1 ? $predmet_id : $kategorije[$i + 1]->id);
        $levels[] = $level;
    }
} else {
    $levels = Kategorija::whereRaw('id = nadkategorija_id')->first()->getHierarchyFor($instruktor->id);
}
echo json_encode($levels);
?>
            );
            selectManager.urlPrefix = "{{ route('Kategorija.index').'/' }}";
Example #2
0
 /**
  * 
  * @param array $input
  * @return null|string
  */
 public function getErrorOrSync($input)
 {
     if (!is_array($input)) {
         return "Wrong input";
     }
     //provjera prisutnosti potrebnih podataka
     $name = $this->name;
     if (!$name && !isset($input['name'])) {
         return "Ime je obvezno.";
     }
     if (isset($input['name'])) {
         $name = $input['name'];
     }
     $role_id = $this->role_id;
     if (isset($input['role_id'])) {
         $role_id = $input['role_id'];
     }
     if (!$role_id) {
         return "Odaberite ulogu.";
     }
     //kraj provjere prisutnosti potrebnih podataka
     //provjera jedinstvenosti imena
     $query = User::where('name', '=', $name);
     if ($this->id > 0) {
         $query = $query->where('id', '!=', $this->id);
     }
     if ($query->count() > 0) {
         return 'Već postoji osoba s odabranim imenom.';
     }
     //kraj provjere jedinstvenosti imena
     //provjera postojanja uloge
     if (Role::where('id', '=', $role_id)->count() < 1) {
         return 'Odabrana uloga nije pronađena u sustavu.';
     }
     //kraj provjere postojanja uloge
     //pridruživanje vrijednosti
     $this->name = $name;
     $this->role_id = $role_id;
     if (isset($input['boja'])) {
         $this->boja = substr($input['boja'], 1);
     }
     if (isset($input['broj_mobitela'])) {
         $this->broj_mobitela = $input['broj_mobitela'];
     }
     if (isset($input['lozinka'])) {
         $this->lozinka = Hash::make($input['lozinka']);
     }
     if (isset($input['email'])) {
         $this->email = $input['email'];
     }
     if (isset($input['facebook'])) {
         $this->facebook = $input['facebook'];
     }
     //kraj pridruživanja vrijednosti
     //odabir predmeta
     if (isset($input['allowed'])) {
         $predmet_ids = $input['allowed'];
     } else {
         $predmet_ids = null;
     }
     if (!is_array($predmet_ids)) {
         $predmet_ids = null;
     }
     if ($predmet_ids && count($predmet_ids) > 0) {
         $predmet_ids = Predmet::select('id')->whereIn('id', $predmet_ids)->get()->lists('id');
     }
     //kraj odabira predmeta
     $this->save();
     if ($predmet_ids) {
         if (count($predmet_ids) > 0) {
             $this->predmeti()->sync($predmet_ids);
         } else {
             $this->predmeti()->detach();
         }
     }
 }
Example #3
0
 /**
  * Gets all child Predmeti allowed for the user with id equal to $djelatnik_id
  * @param int $djelatnik_id Id of User
  * @return \Illuminate\Database\Eloquent\Collection
  */
 public function getChildrenPremetiFor($djelatnik_id)
 {
     return Predmet::select('id', 'ime')->where('kategorija_id', '=', $this->id)->withUser($djelatnik_id)->get();
 }
Example #4
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $predmet = Predmet::find($id);
     if (!$predmet) {
         return $this->itemNotFound();
     }
     $kategorija_id = $predmet->kategorija_id;
     $predmet->delete();
     Session::flash(self::SUCCESS_MESSAGE_KEY, 'Predmet je uspješno uklonjen!');
     return Redirect::route('Kategorija.show', array($kategorija_id));
 }
Example #5
0
</div>
<div class = "form-group">
{{ Form::label('Email') }}
{{ Form::email('email', null,
$optional) }}
</div>
<div class = "form-group">
{{ Form::submit('Pohrani', array(
'class' => 'btn btn-lg btn-primary btn-block')) }}
</div>
</div>
@if(Auth::user()->hasPermission(Permission::PERMISSION_MANAGE_PREDMET_KATEGORIJA))
<div class="col-xs-12 col-sm-6 col-md-8 col-lg-9">
	<h3>Dozvoljeni predmeti</h3>
	<?php 
$predmeti = Predmet::orderBy('ime')->get();
$allowed = array();
if (isset($instruktor)) {
    $allowed = $instruktor->predmeti->lists('id');
}
$value = false;
?>
	<div class = "row">
		@foreach($predmeti as $predmet)
		<?php 
if (isset($instruktor)) {
    $value = in_array($predmet->id, $allowed);
}
?>
			<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2">
				<div class="checkbox">
Example #6
0
 public function download()
 {
     $name = 'Data';
     $formats = array('xls', 'xlsx');
     if (in_array(Input::get('format'), $formats)) {
         $format = Input::get('format');
     } else {
         $format = 'xls';
     }
     $month = Input::get('startMonth');
     if (!($month > 0 && $month < 13)) {
         $month = 1;
     }
     $year = Input::get('startYear');
     if (!($year >= 2014 && $year <= date('Y'))) {
         $year = 2014;
     }
     $name .= "_{$month}-{$year}";
     if ($month < 10) {
         $month = '0' . $month;
     }
     $from = "{$year}-{$month}-01 00:00:00";
     $month = Input::get('endMonth');
     if (!($month > 0 && $month < 13)) {
         $month = 1;
     }
     $year = Input::get('endYear');
     if (!($year >= 2014 && $year <= date('Y'))) {
         $year = 2014;
     }
     $name .= "_{$month}-{$year}";
     $month++;
     if ($month > 12) {
         $month = 1;
         $year++;
     }
     if ($month < 10) {
         $month = '0' . $month;
     }
     $to = "{$year}-{$month}-01 00:00:00";
     Excel::create($name, function ($excel) use($from, $to) {
         $usersCount = User::count();
         $predmetCount = Predmet::count();
         $mjeraCount = Mjera::count();
         $ucionicaCount = Ucionica::count();
         $ulogaCount = Role::count();
         $kategorijaCount = Kategorija::count();
         $rezervacijaCount = 0;
         $excel->setCreator('Hrvoje');
         ini_set('max_execution_time', 120);
         $excel->sheet(self::SHEET_NAME_USERS, function ($sheet) use($ulogaCount) {
             $sheet->appendRow(array('ID', 'Ime', 'Broj mobitela', 'Email', 'Boja', 'ID uloge', 'Dodan', 'Zadnja promjena', 'Uloga'));
             $i = 1;
             foreach (User::select('id', 'name', 'broj_mobitela', 'email', 'boja', 'role_id', 'created_at', 'updated_at')->get() as $user) {
                 $i++;
                 $row = $user->toArray();
                 $row[] = self::getHyperlink(self::SHEET_NAME_ROLES, $ulogaCount, 'F' . $i);
                 $sheet->appendRow($row);
             }
         });
         $excel->sheet(self::SHEET_NAME_ROLES, function ($sheet) {
             $sheet->appendRow(array('ID', 'Ime uloge', 'Opis', 'Dodana', 'Zadnja promjena'));
             $sheet->fromModel(Role::all(), null, 'A2', true, false);
         });
         $excel->sheet(self::SHEET_NAME_UCIONICE, function ($sheet) {
             $sheet->appendRow(array('ID', 'Ime učionice', 'Najveći broj učenika', 'Adresa', 'Kat', 'Opis', 'Dodana', 'Zadnja promjena'));
             $i = 1;
             foreach (Ucionica::select('id', 'naziv', 'max_broj_ucenika', 'adresa', 'kat', 'opis', 'created_at', 'updated_at')->get() as $ucionica) {
                 $i++;
                 $row = $ucionica->toArray();
                 $sheet->appendRow($row);
             }
         });
         $excel->sheet(self::SHEET_NAME_KATEGORIJE, function ($sheet) use($kategorijaCount) {
             $sheet->appendRow(array('ID', 'Ime kategorije', 'ID nadkategorije', 'Dodana', 'Zadnja promjena', 'Nadkategorija'));
             $i = 1;
             foreach (Kategorija::select('id', 'ime', 'nadkategorija_id', 'created_at', 'updated_at')->get() as $kategorija) {
                 $i++;
                 $row = $kategorija->toArray();
                 $row[] = self::getHyperlink(self::SHEET_NAME_KATEGORIJE, $kategorijaCount, 'C' . $i);
                 $sheet->appendRow($row);
             }
         });
         $excel->sheet(self::SHEET_NAME_PREDEMTI, function ($sheet) use($kategorijaCount) {
             $sheet->appendRow(array('ID', 'Ime predmeta', 'ID kategorije', 'Dodana', 'Zadnja promjena', 'Kategorija'));
             $i = 1;
             foreach (Predmet::select('id', 'ime', 'kategorija_id', 'created_at', 'updated_at')->get() as $predmet) {
                 $i++;
                 $row = $predmet->toArray();
                 $row[] = self::getHyperlink(self::SHEET_NAME_KATEGORIJE, $kategorijaCount, 'C' . $i);
                 $sheet->appendRow($row);
             }
         });
         $excel->sheet(self::SHEET_NAME_PREDEMT_USER, function ($sheet) use($predmetCount, $usersCount) {
             $sheet->appendRow(array('ID djelatnika', 'ID predmeta', 'Djelatnik', 'Predmet'));
             $i = 1;
             foreach (DB::table('predmet_user')->select('user_id', 'predmet_id')->orderBy('user_id', 'predmet_id')->get() as $predmetUser) {
                 $i++;
                 $row = array();
                 $row[] = $predmetUser->user_id;
                 $row[] = $predmetUser->predmet_id;
                 $row[] = self::getHyperlink(self::SHEET_NAME_USERS, $usersCount, 'A' . $i);
                 $row[] = self::getHyperlink(self::SHEET_NAME_PREDEMTI, $predmetCount, 'B' . $i);
                 $sheet->appendRow($row);
             }
         });
         $excel->sheet(self::SHEET_NAME_MJERE, function ($sheet) {
             $sheet->appendRow(array('ID', 'Ime mjere', 'Kratica', 'Trajanje'));
             $i = 1;
             foreach (Mjera::select('id', 'znacenje', 'simbol', 'trajanje')->get() as $mjera) {
                 $i++;
                 $row = $mjera->toArray();
                 $sheet->appendRow($row);
             }
         });
         $naplate = array();
         $klijenti = array();
         $klijentRezervacije = array();
         $excel->sheet(self::SHEET_NAME_REZERVACIJE, function ($sheet) use(&$naplate, &$klijenti, &$klijentRezervacije, $usersCount, $predmetCount, $mjeraCount, $ucionicaCount, &$rezervacijaCount, $from, $to) {
             $sheet->appendRow(array('ID', 'ID djelatnika', 'ID predmeta', 'Početak rada', 'Količina', 'ID mjere', 'Kraj rada', 'ID učionice', 'Tečaj', 'Napomena', 'Dodana', 'Zadnja promjena', 'Djelatnik', 'Predmet', 'Mjera', 'Učionica'));
             $i = 1;
             $rezervacije = Rezervacija::select('id', 'instruktor_id', 'predmet_id', 'pocetak_rada', 'kolicina', 'mjera_id', 'kraj_rada', 'ucionica_id', 'tecaj', 'napomena', 'created_at', 'updated_at')->with('naplata', 'klijenti')->whereBetween('pocetak_rada', array($from, $to))->get();
             $rezervacijaCount = $rezervacije->count();
             foreach ($rezervacije as $rezervacija) {
                 $i++;
                 $row = $rezervacija->toArray();
                 unset($row['naplata']);
                 unset($row['klijenti']);
                 $row[] = self::getHyperlink(self::SHEET_NAME_USERS, $usersCount, 'B' . $i);
                 $row[] = self::getHyperlink(self::SHEET_NAME_PREDEMTI, $predmetCount, 'C' . $i);
                 $row[] = self::getHyperlink(self::SHEET_NAME_MJERE, $mjeraCount, 'F' . $i);
                 $row[] = self::getHyperlink(self::SHEET_NAME_UCIONICE, $ucionicaCount, 'H' . $i);
                 $sheet->appendRow($row);
                 if (!$rezervacija->tecaj && !$rezervacija->naplata) {
                     $sheet->row($sheet->getHighestRow(), function ($row) {
                         $row->setBackground('#ff9999');
                     });
                 }
                 if ($rezervacija->naplata) {
                     $naplate[] = $rezervacija->naplata->toArray();
                 }
                 foreach ($rezervacija->klijenti as $klijent) {
                     $klijentRezervacije[] = array('klijent_id' => $klijent->broj_mobitela, 'rezervacija_id' => $rezervacija->id, 'missed' => $klijent->pivot->missed);
                     $klijenti[$klijent->broj_mobitela] = $klijent;
                 }
             }
         });
         $excel->sheet(self::SHEET_NAME_NAPLATE, function ($sheet) use($naplate, $rezervacijaCount, $mjeraCount) {
             $sheet->appendRow(array('ID', 'Ukupno naplaćeno', 'Za djelatnika', 'Za tvrtku', 'Naplaćena količina', 'ID naplaćene mjere', 'Napomena', 'Dodana', 'Zadnja promjena', 'predmet rezervacije', 'Naplaćena mjera'));
             $i = 1;
             foreach ($naplate as $naplata) {
                 $i++;
                 $row = $naplata;
                 $row[] = self::getHyperlink(self::SHEET_NAME_REZERVACIJE, $rezervacijaCount, 'A' . $i, 'N');
                 $row[] = self::getHyperlink(self::SHEET_NAME_MJERE, $mjeraCount, 'C' . $i);
                 $sheet->appendRow($row);
             }
         });
         $klijentCount = count($klijenti);
         $excel->sheet(self::SHEET_NAME_KLIJENT_REZERVACIJA, function ($sheet) use($klijentRezervacije, $rezervacijaCount, $klijentCount) {
             $sheet->appendRow(array('Broj mobitela polaznika', 'ID rezervacije', 'Izostao'));
             //, 'Predmet rezervacije', 'Klijent'));
             $i = 1;
             foreach ($klijentRezervacije as $klijentRezervacija) {
                 $i++;
                 $row = $klijentRezervacija;
                 $row['klijent_id'] = Klijent::getReadableBrojMobitela($klijentRezervacija['klijent_id']);
                 //$row[] = self::getHyperlink(self::SHEET_NAME_REZERVACIJE, $rezervacijaCount, 'B'.$i, 'N');
                 //$row[] = self::getHyperlink(self::SHEET_NAME_KLIJENTI, $klijentCount, 'A'.$i);
                 $sheet->appendRow($row);
             }
         });
         $excel->sheet(self::SHEET_NAME_KLIJENTI, function ($sheet) use($klijenti, $rezervacijaCount) {
             $sheet->appendRow(array('Broj mobitela', 'Ime', 'Email', 'Facebook', 'Dodan', 'Zadnja promjena', 'Ime Roditelja', 'Broj roditelja', 'Škola/Fakultet', 'Razred'));
             $i = 1;
             foreach ($klijenti as $klijent) {
                 $i++;
                 $klijent->broj_mobitela = Klijent::getReadableBrojMobitela($klijent->broj_mobitela);
                 $klijent->broj_roditelja = Klijent::getReadableBrojMobitela($klijent->broj_roditelja);
                 $row = $klijent->toArray();
                 unset($row['pivot']);
                 $sheet->appendRow($row);
             }
         });
     })->download($format);
 }
Example #7
0
                <th>
                    Posljednja rezervacija
                </th>
                <th>
                    Detalji
                </th>
            </tr>
            @foreach($interesi as $interes)
            <?php 
$user = User::find($interes->instruktor_id);
if ($user) {
    $predavacDisplay = $user->link();
} else {
    $predavacDisplay = "Napoznato";
}
$predmet = Predmet::find($interes->predmet_id);
if ($predmet) {
    $predmetDisplay = $predmet->link();
} else {
    $predmetDisplay = "Napoznato";
}
$suma_ukupno += $interes->ukupno;
$suma_za_tvrtku += $interes->za_tvrtku;
$suma_rezervacija += $interes->count;
$suma_missed += $interes->missed_count;
$suma_naplate_count += $interes->naplate_count;
?>
            <tr>
                <td>
                    {{ $predavacDisplay }}
                </td>
Example #8
0
 /**
  * 
  * @param array $input
  * @return string|null
  */
 public function getErrorOrSync($input)
 {
     if (!is_array($input)) {
         return 'Wrong Input';
     }
     //provjera postojanja potrebnih podataka
     //provjera postojanja podataka za instruktora
     if (!isset($input['instruktor_id'])) {
         return 'Djelatnik je obvezan.';
     }
     $instruktor_id = $input['instruktor_id'];
     //kraj provjere postojanja podataka za instruktora
     //provjera postojanja podataka za vrijeme pocetka
     if (!isset($input['datum'])) {
         return 'Datum je obvezan.';
     }
     $datum = $input['datum'];
     if (!isset($input['startHour'])) {
         return 'Sat početka je obvezan.';
     }
     $startHour = $input['startHour'];
     if (!isset($input['startMinute'])) {
         return 'Minuta početka je obvezna.';
     }
     $startMinute = $input['startMinute'];
     $tecaj = false;
     if (isset($input['tecaj'])) {
         $tecaj = $input['tecaj'];
     }
     //kraj provjere postojanja podataka za vrijeme pocetka
     //provjera postojanja podataka za trajanje instrukcija
     if (!isset($input['kolicina'])) {
         return 'Trajanje instrukcija je obvezno.';
     }
     $kolicina = $input['kolicina'];
     if (!isset($input['mjera_id'])) {
         return 'Mjera je obvezna.';
     }
     $mjera_id = $input['mjera_id'];
     if (!isset($input['endHour'])) {
         return 'Sat završetka je obvezan.';
     }
     $endHour = $input['endHour'];
     if (!isset($input['endMinute'])) {
         return 'Minuta završetka je obvezna.';
     }
     $endMinute = $input['endMinute'];
     //kraj provjere postojanja podataka za trajanje instrukcija
     //provjera postojanja podataka za predmet
     if (!isset($input['predmet_id'])) {
         return 'Predmeta je obvezan.';
     }
     $predmet_id = $input['predmet_id'];
     //kraj provjere postojanja podataka za predmet
     //provjera postojanja podataka za polaznike
     //izgradnja niza polaznika
     $polaznici = array();
     for ($i = 1; isset($input['form-klijenti-item-' . $i . '-broj_mobitela']) || isset($input['form-klijenti-item-' . $i . '-ime']); $i++) {
         //trebaju i ime i prezime
         if (!isset($input['form-klijenti-item-' . $i . '-broj_mobitela']) || !isset($input['form-klijenti-item-' . $i . '-ime'])) {
             return 'Niste unijeli sve potrebne podatke za polaznika u ' . $i . '. redu.';
         }
         $ime = $input['form-klijenti-item-' . $i . '-ime'];
         $broj_mobitela = $input['form-klijenti-item-' . $i . '-broj_mobitela'];
         //provjera potpunosti imena i prezimena
         if (empty($ime) || empty($broj_mobitela)) {
             return 'Niste unijeli sve potrebne podatke za polaznika u ' . $i . '. redu.';
         }
         //check if multiple broj_mobetela have the same value
         foreach ($polaznici as $index => $polaznik) {
             if ($polaznik->broj_mobitela == $broj_mobitela) {
                 if ($polaznik->ime == $ime) {
                     return 'Višestruko ste unijeli istog polaznika (' . $ime . ')';
                 } else {
                     return 'Unijeli ste isti broj mobitela za različite polaznike (' . $polaznik->ime . ' i ' . $ime . ').';
                 }
             }
         }
         $polaznik = new Klijent();
         $polaznik->broj_mobitela = $polaznik->getStorableBrojMobitela($broj_mobitela);
         $polaznik->ime = $ime;
         $polaznici[] = $polaznik;
     }
     //kraj izgradnje niza polaznika
     //kraj provjere postojanja podataka za polaznike
     //provjera postojanja podataka za učionicu
     if (!isset($input['ucionica_id'])) {
         return 'Učionica je obvezna.';
     }
     $ucionica_id = $input['ucionica_id'];
     //kraj provjere postojanja podataka za učionicu
     //provjer postojanja napomene
     if (isset($input['napomena'])) {
         $napomena = $input['napomena'];
     } else {
         $napomena = '';
     }
     //kraj provjere postojanja napomene
     //kraj provjere postojanja potrebnih podataka
     //provjera dozvoljenih vrijednosti podataka koji se ne odnose na relacije
     //provjera dozvoljene vrijednosti za vrijeme pocetka
     $dto = (new DateTime($datum))->setTime($startHour, $startMinute);
     if ($dto < new DateTime() && !(Auth::check() && Auth::user()->hasPermission(Permission::PERMISSION_EDIT_STARTED_REZERVACIJA))) {
         return 'Zadani početak rada je prošao. Trebate imati posebnu dozvolu za rezerviranje u prošlosti.';
     }
     $pocetak_rada = $dto->format('Y-m-d H:i:s');
     //kraj provjere dozvoljene vrijednosti za vrijeme pocetka
     //provjera dozvoljene vrijednosti za trajanje
     if ($kolicina < 1) {
         return 'Trajanje instrukcija mora biti barem 1.';
     }
     $dto2 = (new DateTime($datum))->setTime($endHour, $endMinute);
     if ($dto >= $dto2) {
         return "Kraj instrukcija mora biti poslje početka.";
     }
     $kraj_rada = $dto2->format('Y-m-d H:i:s');
     //kraj provjere dozvoljene vrijednosti za trajanje
     //provjera broja polaznika
     if (count($polaznici) < 1) {
         return 'Potreban je barem 1 polaznik.';
     }
     //kraj provjere broja polaznika
     //provjera duljine napomene
     if (strlen($napomena) > 255) {
         return 'Napomena treba biti kraća od 255 znakova. Trenutna ima ' . strlen($napomena) . '.';
     }
     //kraj porvjere duljine napomene
     //kraj provjere dozvoljenih vrijednosti podataka koji se ne odnose na relacije
     //provjera postojanja referenciranih unosa
     $djelatnik = User::find($instruktor_id);
     if (!$djelatnik) {
         return User::NOT_FOUND_MESSAGE;
     }
     $predmet = Predmet::find($predmet_id);
     if (!$predmet) {
         return Predmet::NOT_FOUND_MESSAGE;
     }
     $ucionica = Ucionica::find($ucionica_id);
     if (!$ucionica) {
         return Ucionica::NOT_FOUND_MESSAGE;
     }
     $mjera = Mjera::find($mjera_id);
     if (!$mjera) {
         return Mjera::NOT_FOUND_MESSAGE;
     }
     //provjera usklađenosti polaznika s bazom podataka
     foreach ($polaznici as $key => $polaznik) {
         $model = Klijent::find($polaznik->broj_mobitela);
         if ($model && $model->ime != $polaznik->ime) {
             return 'U sustavu već postoji klijent s brojem mobitela ' . $model->broj_mobitela . '.';
         }
         if (!$model) {
             $polaznik->save();
         }
     }
     //kraj provjere usklađenosti polaznika s bazom podataka
     //kraj provjere postojanja referenciranih unosa
     //ostale provjere relacija
     //provjera završetka instrukcija
     if ($dto2 > $dto->setTime(BaseController::END_HOUR, 0)) {
         return "Kraj radnog vremena je u " . BaseController::END_HOUR . " sata.";
     }
     $dto->setTime($startHour, $startMinute);
     $dto->add(new DateInterval('PT' . $mjera->trajanje * $kolicina . 'M'));
     if ($dto > $dto2) {
         return "Ne stignete odratiti {$kolicina} {$mjera->znacenje} u zadanom vremenu";
     }
     //kraj provjere završetka instrukcija
     //provjera učionice
     //provjera broj učenika
     if ($ucionica->max_broj_ucenika < count($polaznici)) {
         return 'Odabrana učionica nema dovoljnu veličinu.';
     }
     //kraj provjere broj učenika
     //provjera zauzetosti učionice
     $preklapanja = Rezervacija::where('ucionica_id', '=', $ucionica->id)->where('pocetak_rada', '<', $kraj_rada)->where('kraj_rada', '>', $pocetak_rada);
     if ($this->id) {
         $preklapanja = $preklapanja->where('rezervacije.id', '!=', $this->id);
     }
     $preklapanja = $preklapanja->count();
     if ($preklapanja > 0) {
         return 'U zdanome vremenu je odabrana učionica zauzeta.';
     }
     //kraj provjere zauzetosti učionice
     //kraj provjere učionice
     //provjera zauzetosti instruktora
     $preklapanja = Rezervacija::where('instruktor_id', '=', $instruktor_id)->where('pocetak_rada', '<', $kraj_rada)->where('kraj_rada', '>', $pocetak_rada);
     if ($this->id) {
         $preklapanja = $preklapanja->where('rezervacije.id', '!=', $this->id);
     }
     $preklapanja = $preklapanja->count();
     if ($preklapanja > 0) {
         return 'U zadanome vremenu ste već zauzeti. Provjerite raspored.';
     }
     //kraj provjere zauzetosti instruktora
     //Provjera dozvole predavanja zadanog predmeta
     if ($djelatnik->predmeti()->where('predmeti.id', '=', $predmet_id)->count() < 1) {
         return 'Odabrani instruktor nema dozvolu predavati zadani predmet.';
     }
     //Kraj provjere dozvole predavanja zadanog predmeta
     //Provjera dozvole održavanja tečaja
     if ($tecaj && !$djelatnik->hasPermission(Permission::PERMISSION_TECAJ)) {
         return 'Odabrani instruktor nema dozvolu održavati tečajeve.';
     }
     //Kraj provjere dozvole održavanja tečaja
     //kraj ostalih provjera relacija
     //sve provjere su uspješno obavljene
     //prodruživanje zadanih vrijednosti
     $this->instruktor_id = $instruktor_id;
     $this->pocetak_rada = $pocetak_rada;
     $this->kolicina = $kolicina;
     $this->mjera_id = $mjera_id;
     $this->kraj_rada = $kraj_rada;
     $this->predmet_id = $predmet_id;
     $this->ucionica_id = $ucionica_id;
     $this->tecaj = $tecaj;
     $this->napomena = $napomena;
     //kraj pridruživanja
     //pohrana vrijednosti
     $this->save();
     //sinkronizacija klijenata
     $this->klijenti()->sync(array_map(function ($klijent) {
         return $klijent->broj_mobitela;
     }, $polaznici));
     return null;
 }
Example #9
0
 /**
  * Display the Rezervacije of a Klijent for a specific User and Predmet.
  *
  * @param  int  $id Id of the Klijent
  * @param  int  $user_id Id of the User to which all Rezervacije belong
  * @param  int  $predmet_id Id of the Predmet to which all Rezervacije belong.
  * @return Response
  */
 public function rezervacije($id, $user_id, $predmet_id)
 {
     $klijent = Klijent::find($id);
     if (!$klijent) {
         return $this->itemNotFound();
     }
     $predmet = Predmet::find($predmet_id);
     $user = User::find($user_id);
     $rezervacije = $klijent->rezervacije()->with('naplata')->with('naplata.stvarnaMjera')->where('instruktor_id', $user_id)->where('predmet_id', $predmet_id)->orderBy('pocetak_rada', 'DESC')->select(DB::Raw($this->polazniciQuery . ' as polaznici_count'))->get();
     return View::make('Klijent.rezervacije')->with('klijent', $klijent)->with('user', $user)->with('predmet', $predmet)->with('rezervacije', $rezervacije);
 }