public function dodaj($izvedbe) { $vse = Input::get(); if (Input::get('isci')) { return $this->najdi2($vse, []); } elseif (Input::get('dodajp')) { return $this->dodajPredmet($vse); } elseif (Input::get('posod')) { $prof = Profesor::get(); $profesor = []; for ($i = 0; $i < count($prof); $i++) { $profesor[$i + 1] = $prof[$i]->ime_profesorja . " " . $prof[$i]->priimek_profesorja; } $profesor[""] = "/"; asort($profesor); $izv = explode(" ", $izvedbe); $studleto = Studijsko_leto::get(); $leto = []; for ($i = 0; $i < count($studleto); $i++) { $leto[$i] = $studleto[$i]->stevilka_studijskega_leta; } array_unshift($leto, ""); $stleto = $vse['stleto']; $stlet = Studijsko_leto::where('stevilka_studijskega_leta', $leto[$stleto])->pluck('sifra_studijskega_leta'); $izvajalci = []; for ($i = 0; $i < count($izv) - 1; $i++) { $prof1 = Input::get('prof1' . $i); $prof2 = Input::get('prof2' . $i); $prof3 = Input::get('prof3' . $i); $sifra1 = Profesor::where('ime_profesorja', explode(" ", $profesor[$prof1])[0])->where('priimek_profesorja', implode(" ", array_slice(explode(" ", $profesor[$prof1]), 1, count(explode(" ", $profesor[$prof1])) + 1)))->pluck('sifra_profesorja'); $sifra2 = Profesor::where('ime_profesorja', explode(" ", $profesor[$prof2])[0])->where('priimek_profesorja', implode(" ", array_slice(explode(" ", $profesor[$prof2]), 1, count(explode(" ", $profesor[$prof2])) + 1)))->pluck('sifra_profesorja'); $sifra3 = Profesor::where('ime_profesorja', explode(" ", $profesor[$prof3])[0])->where('priimek_profesorja', implode(" ", array_slice(explode(" ", $profesor[$prof3]), 1, count(explode(" ", $profesor[$prof3])) + 1)))->pluck('sifra_profesorja'); if ($sifra1 == null) { if ($sifra2 != null) { $sifra1 = $sifra2; $sifra2 = $sifra3; $sifra3 = null; } elseif ($sifra3 != null) { $sifra1 = $sifra3; $sifra3 = null; } } if ($sifra2 == null) { if ($sifra3 != null) { $sifra2 = $sifra3; $sifra3 = null; } } if ($sifra1 == null) { $sifra1 = $i + 10000; } if ($sifra2 == null) { $sifra2 = $i + 20001; } if ($sifra3 == null) { $sifra3 = $i + 30007; } $izvajalci[$i] = [$sifra1, $sifra2, $sifra3]; } $dup = []; $z = 0; foreach (array_count_values($izv) as $d) { if ($d == 3) { $dup[$z] = 3; $dup[$z + 1] = 3; $dup[$z + 2] = 3; $z += 2; } if ($d == 2) { $dup[$z] = 2; $dup[$z + 1] = 2; $z++; } $dup[$z] = 1; $z++; } $messages = []; for ($i = 0; $i < count($izv) - 1; $i++) { $idpredmeta = Input::get('idpredmeta' . $i); if ($dup[$i] == 1) { if (max(array_count_values($izvajalci[$i])) == 1) { if (min($izvajalci[$i]) != $i + 10000) { if ($izvajalci[$i][1] != $i + 20001) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => $izvajalci[$i][1]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => null]); } if ($izvajalci[$i][2] != $i + 30007) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => $izvajalci[$i][2]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => null]); } if ($izvajalci[$i][0] != $i + 10000) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => $izvajalci[$i][0]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => null]); } } } else { $messages[] = "Ne sme biti dvakrat isti profesor! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } } elseif ($dup[$i] == 2) { $result = array_diff($izvajalci[$i], $izvajalci[$i + 1]); $filtered = array_filter($result, function ($x) { return $x <= 10000; }); if (!empty($filtered)) { if (max(array_count_values($izvajalci[$i])) == 1) { if (min($izvajalci[$i]) != $i + 10000) { if ($izvajalci[$i][1] != $i + 20001) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => $izvajalci[$i][1]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => null]); } if ($izvajalci[$i][2] != $i + 30007) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => $izvajalci[$i][2]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => null]); } if ($izvajalci[$i][0] != $i + 10000) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => $izvajalci[$i][0]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => null]); } } } else { $messages[] = "Ne sme biti dvakrat isti profesor! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } $i++; $idpredmeta = Input::get('idpredmeta' . $i); if (max(array_count_values($izvajalci[$i])) == 1) { if (min($izvajalci[$i]) != $i + 10000) { if ($izvajalci[$i][1] != $i + 20001) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => $izvajalci[$i][1]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => null]); } if ($izvajalci[$i][2] != $i + 30007) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => $izvajalci[$i][2]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => null]); } if ($izvajalci[$i][0] != $i + 10000) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => $izvajalci[$i][0]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => null]); } } } else { $messages[] = "Ne sme biti dvakrat isti profesor! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } } else { $messages[] = "Isto trojico profesorjev! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } } else { $result = array_diff($izvajalci[$i], $izvajalci[$i + 1]); $result2 = array_diff($izvajalci[$i], $izvajalci[$i + 2]); $result3 = array_diff($izvajalci[$i + 1], $izvajalci[$i + 2]); $filtered = array_filter($result, function ($x) { return $x <= 10000; }); $filtered2 = array_filter($result2, function ($x) { return $x <= 10000; }); $filtered3 = array_filter($result3, function ($x) { return $x <= 10000; }); if (!empty($filtered) && !empty($filtered2) && !empty($filtered3)) { if (max(array_count_values($izvajalci[$i])) == 1) { if (min($izvajalci[$i]) != $i + 10000) { if ($izvajalci[$i][1] != $i + 20001) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => $izvajalci[$i][1]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => null]); } if ($izvajalci[$i][2] != $i + 30007) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => $izvajalci[$i][2]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => null]); } if ($izvajalci[$i][0] != $i + 10000) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => $izvajalci[$i][0]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => null]); } } } else { $messages[] = "Ne sme biti dvakrat isti profesor! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } $i++; $idpredmeta = Input::get('idpredmeta' . $i); if (max(array_count_values($izvajalci[$i])) == 1) { if (min($izvajalci[$i]) != $i + 10000) { if ($izvajalci[$i][1] != $i + 20001) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => $izvajalci[$i][1]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => null]); } if ($izvajalci[$i][2] != $i + 30007) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => $izvajalci[$i][2]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => null]); } if ($izvajalci[$i][0] != $i + 10000) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => $izvajalci[$i][0]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => null]); } } } else { $messages[] = "Ne sme biti dvakrat isti profesor! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } $i++; $idpredmeta = Input::get('idpredmeta' . $i); if (max(array_count_values($izvajalci[$i])) == 1) { if (min($izvajalci[$i]) != $i + 10000) { if ($izvajalci[$i][1] != $i + 20001) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => $izvajalci[$i][1]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja2' => null]); } if ($izvajalci[$i][2] != $i + 30007) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => $izvajalci[$i][2]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja3' => null]); } if ($izvajalci[$i][0] != $i + 10000) { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => $izvajalci[$i][0]]); } else { Izvedba_predmeta::where('sifra_predmeta', explode(" ", $izvedbe)[$i])->where('sifra_studijskega_leta', $stlet)->where('id', $idpredmeta)->update(['sifra_profesorja' => null]); } } } else { $messages[] = "Ne sme biti dvakrat isti profesor! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } } else { $messages[] = "Isto trojico profesorjev! (predmet: " . explode(" ", $izvedbe)[$i] . ")"; } } } return $this->najdi2($vse, $messages); } else { return $this->brisiPredmet($vse); } }