public function _list($page = 1, $searchString = null) { if (!empty($searchString)) { $cjenovnici = Cjenovnik::where('ime', 'like', '%' . $searchString . '%')->orderBy('ime'); } else { $cjenovnici = Cjenovnik::orderBy('ime'); } if ($page != 1) { Paginator::setCurrentPage($page); } $cjenovnici = $cjenovnici->paginate(10); $v = View::make('Cjenovnik.list')->with('cjenovnici', $cjenovnici); if (Request::ajax()) { return $v->renderSections()['list']; } return $v; }
/** * * @param array $input * @return null|string */ public function getErrorOrSync($input) { $ime = $this->ime; if (isset($input['ime'])) { $ime = $input['ime']; } if (!$ime) { return 'Ime cjenovnika je obvezno.'; } $data[2]['key'] = 'cijena_2_osobe'; $data[3]['key'] = 'cijena_3_osobe'; $data[4]['key'] = 'cijena_4_osobe'; $data[2]['key2'] = 'instruktor_2_osobe'; $data[3]['key2'] = 'instruktor_3_osobe'; $data[4]['key2'] = 'instruktor_4_osobe'; $cijena_1_osoba = $this->cijena_1_osoba; if (isset($input['cijena_1_osoba'])) { $cijena_1_osoba = $input['cijena_1_osoba']; } if (!$cijena_1_osoba) { return 'Cijena za 1 osobu je obvezna.'; } $prethodna_cijena = $cijena_1_osoba; $instruktor_1_osoba = $this->instruktor_1_osoba; if (isset($input['instruktor_1_osoba'])) { $instruktor_1_osoba = $input['instruktor_1_osoba']; } if (!$instruktor_1_osoba) { return 'Instruktorov udio za 1 osobu je obvezan.'; } $prethodno_instruktoru = $instruktor_1_osoba; if ($prethodno_instruktoru > $prethodna_cijena) { return "Instruktorova zarada za 1 osobu je veća od ukupne zarade."; } for ($i = 2; $i < 5; $i++) { $data[$i]['value'] = $this[$data[$i]['key']]; $data[$i]['value2'] = $this[$data[$i]['key2']]; if (isset($input[$data[$i]['key']])) { $data[$i]['value'] = $input[$data[$i]['key']]; } if (isset($input[$data[$i]['key2']])) { $data[$i]['value2'] = $input[$data[$i]['key2']]; } if (!$data[$i]['value']) { return "Cijena za {$i} osobe je obvezna."; } if (!$data[$i]['value2']) { return "Instruktorov udio za {$i} osobe je obvezan."; } if ($prethodna_cijena < $data[$i]['value']) { return "Cijena po osobi je za {$i} osobe veća nego za " . ($i - 1) . '.'; } $prethodna_cijena = $data[$i]['value']; if ($prethodno_instruktoru > $data[$i]['value2']) { return "Instruktorova satnica za {$i} osobe je manja nego za " . ($i - 1) . '.'; } $prethodno_instruktoru = $data[$i]['value2']; if ($prethodno_instruktoru > $prethodna_cijena * $i) { return "Instruktorova zarada za {$i} osobe je veća od ukupne zarade."; } } $cijena_vise_osoba = $this->cijena_vise_osoba; if (isset($input['cijena_vise_osoba'])) { $cijena_vise_osoba = $input['cijena_vise_osoba']; } if (!$cijena_vise_osoba) { return 'Cijena za 5 i više osoba je obvezna.'; } if ($prethodna_cijena < $cijena_vise_osoba) { return 'Cijena po osobi je za 5 i više osoba veća nego za 4.'; } $instruktor_udio_vise_osoba = $this->instruktor_udio_vise_osoba; if (isset($input['instruktor_udio_vise_osoba'])) { $instruktor_udio_vise_osoba = $input['instruktor_udio_vise_osoba']; } if (!$instruktor_udio_vise_osoba) { return 'Instruktorov udio za 5 i više osoba je obvezan.'; } //provjera zauzetosti imena $query = Cjenovnik::where('ime', '=', $ime); if ($this->id > 0) { $query = $query->where('id', '!=', $this->id); } if ($query->count() > 0) { return 'Već postoji cjenovnik s imenom ' . $ime . '.'; } //kraj provjere zauzetosti imena //pohrana podataka $this->ime = $ime; $this->cijena_1_osoba = $cijena_1_osoba; $this->cijena_vise_osoba = $cijena_vise_osoba; $this->instruktor_1_osoba = $instruktor_1_osoba; $this->instruktor_udio_vise_osoba = $instruktor_udio_vise_osoba; for ($i = 2; $i < 5; $i++) { $this[$data[$i]['key']] = $data[$i]['value']; $this[$data[$i]['key2']] = $data[$i]['value2']; } if (isset($input['opis'])) { $this->opis = $input['opis']; } $this->save(); }