public function store_naplata($id) { $naplata = new Naplata(); $rezervacija = Rezervacija::with('predmet', 'predmet.c_m_p', 'klijenti')->find($id); if ($rezervacija == null) { return $this->itemNotFound(); } if ($rezervacija->tecaj) { return Redirect::route('Rezervacija.show', $id)->with(self::DANGER_MESSAGE_KEY, 'Tečajvi se ne naplaćuju!'); } if (strtotime($rezervacija->pocetak_rada) > time()) { Session::flash(self::DANGER_MESSAGE_KEY, 'Nije moguće naplatiti instrukcije prije nego se odrade.'); return Redirect::route('Rezervacija.show', $id); } $naplata->rezervacija_id = $rezervacija->id; $naplata->stvarna_kolicina = $rezervacija->kolicina; $naplata->stvarna_mjera = $rezervacija->mjera_id; if (Input::get('mjerechanged') == 'yes') { $error = $naplata->setStvarneVrijednosti(Input::get('stvarna_kolicina'), Input::get('stvarna_mjera')); if ($error) { return Redirect::route('Naplata.create')->with(self::DANGER_MESSAGE_KEY, $error)->withInput(); } } // $polaznici = $rezervacija->klijenti; $changes = array(); $missed_count = 0; foreach ($polaznici as $polaznik) { if (Input::has('polaznicichanged') && Input::has('klijent-came-' . $polaznik->broj_mobitela)) { $changes[$polaznik->broj_mobitela] = array('missed' => 1); $missed_count++; } else { $changes[$polaznik->broj_mobitela] = array('missed' => 0); } } //obracun iznosa $broj_polaznika = $polaznici->count() - $missed_count; $cjenovnik = $rezervacija->predmet->cjenovnik($naplata->stvarna_mjera); $ukupno_satnica = $cjenovnik->getUkupnaSatnica($broj_polaznika); $satnica_za_instruktora = $cjenovnik->getIntruktorovaSatnica($broj_polaznika); $naplata->ukupno_uplaceno = $ukupno_satnica * $naplata->stvarna_kolicina; $naplata->za_instruktora = $satnica_za_instruktora * $naplata->stvarna_kolicina; $naplata->za_tvrtku = $naplata->ukupno_uplaceno - $naplata->za_instruktora; $naplata->napomena = Input::get('napomena', ''); if (strlen($naplata->napomena) > 255) { return Redirect::route('Naplata.create')->with(self::DANGER_MESSAGE_KEY, 'Napomena treba biti kraća od 255 znakova. Trenutna ima ' . strlen($naplata->napomena) . '.')->withInput(); } $naplata->save(); if (count($changes) > 0) { $rezervacija->klijenti()->sync($changes); } Session::flash(self::SUCCESS_MESSAGE_KEY, 'Uspješno ste naplatili'); return Redirect::route('Rezervacija.show', $id); }