Пример #1
0
function student_ugovoroucenju()
{
    global $userid;
    require "lib/manip.php";
    // Naslov
    ?>
	<h3>Ugovor o učenju</h3>

	<?php 
    // Za koju godinu se prijavljuje?
    $q1 = myquery("select id, naziv from akademska_godina where aktuelna=1");
    $q2 = myquery("select id, naziv from akademska_godina where id>" . mysql_result($q1, 0, 0) . " order by id limit 1");
    if (mysql_num_rows($q2) < 1) {
        //		nicemessage("U ovom trenutku nije aktiviran upis u sljedeću akademsku godinu.");
        //		return;
        // Pretpostavljamo da se upisuje u aktuelnu?
        $zagodinu = mysql_result($q1, 0, 0);
        $zagodinunaziv = mysql_result($q1, 0, 1);
        $q3 = myquery("select id from akademska_godina where id<{$zagodinu} order by id desc limit 1");
        $proslagodina = mysql_result($q3, 0, 0);
    } else {
        $proslagodina = mysql_result($q1, 0, 0);
        $zagodinu = mysql_result($q2, 0, 0);
        $zagodinunaziv = mysql_result($q2, 0, 1);
    }
    ?>
	<p>Za akademsku <?php 
    echo $zagodinunaziv;
    ?>
 godinu.</p>
	<?php 
    // Ulazni podaci
    $studij = intval($_REQUEST['studij']);
    $godina = intval($_REQUEST['godina']);
    // Provjera ispravnosti podataka
    if ($studij != 0) {
        $q5 = myquery("select zavrsni_semestar from studij where id={$studij}");
        if (mysql_num_rows($q5) < 1) {
            niceerror("Neispravan studij");
            $studij = 0;
            unset($_POST['akcija']);
        } else {
            if ($godina < 1 || $godina > mysql_result($q5, 0, 0) / 2) {
                $godina = 1;
            }
        }
    } else {
        unset($_POST['akcija']);
    }
    // Odabir plana studija
    $plan_studija = 0;
    if ($studij > 0) {
        $q5a = myquery("SELECT studij, plan_studija FROM student_studij WHERE student={$userid} AND akademska_godina<={$zagodinu} ORDER BY akademska_godina DESC LIMIT 1");
        if (mysql_num_rows($q5a) > 0 && $studij == mysql_result($q5a, 0, 0)) {
            $plan_studija = mysql_result($q5a, 0, 1);
        }
        if ($plan_studija == 0) {
            // Student nije prethodno studirao na istom studiju ili plan studija nije bio definisan
            // Uzimamo najnoviji plan za odabrani studij
            $q6 = myquery("select godina_vazenja from plan_studija where studij={$studij} order by godina_vazenja desc limit 1");
            if (mysql_num_rows($q6) < 1) {
                niceerror("Nepostojeći studij");
                return;
            }
            $plan_studija = mysql_result($q6, 0, 0);
        }
    }
    // Akcija - kreiranje ugovora
    if ($_POST['akcija'] == "kreiraj_ugovor") {
        // Provjera da li student ima minimalno 30 ECTS kredita po semestru
        // Ako je ovaj uslov ispunjen za oba semestra, slijedi i da ima minimalno
        // 60 ECTS kredita po godini
        $s1predmeti = $s2predmeti = array();
        // Ujedno punimo nizove izbornih predmeta
        for ($sem = $godina * 2 - 1; $sem <= $godina * 2; $sem++) {
            $semestar_ects = 0;
            $q100 = myquery("select p.ects, p.naziv from predmet as p, plan_studija as ps where ps.godina_vazenja={$plan_studija} and ps.studij={$studij} and ps.semestar={$sem} and ps.obavezan=1 and ps.predmet=p.id");
            while ($r100 = mysql_fetch_row($q100)) {
                $semestar_ects += $r100[0];
            }
            $q110 = myquery("select distinct predmet from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and semestar={$sem} and obavezan=0");
            while ($r110 = mysql_fetch_row($q110)) {
                $izabran = $_REQUEST["is{$r110['0']}"];
                if ($izabran == "odsjek{$sem}") {
                    // izborni predmet sa drugog odsjeka
                    $izabran = intval($_REQUEST["odsjek-{$r110['0']}"]);
                } else {
                    $izabran = intval($izabran);
                }
                if ($izabran > 0) {
                    $q120 = myquery("select ects, naziv from predmet where id={$izabran}");
                    if (mysql_num_rows($q120) < 1) {
                        niceerror("Ilegalan izborni predmet");
                        return;
                    }
                    if (provjeri_kapacitet($izabran, $zagodinu, $plan_studija) == 0) {
                        niceerror("Predmet " . mysql_result($q120, 0, 1) . " se ne može izabrati jer su dostupni kapaciteti za taj predmet popunjeni");
                        zamgerlog2("popunjen kapacitet za predmet", $izabran);
                        return;
                    }
                    $semestar_ects += mysql_result($q120, 0, 0);
                    if ($sem == $godina * 2 - 1) {
                        $s1predmeti[] = $izabran;
                    } else {
                        $s2predmeti[] = $izabran;
                    }
                    // Ako spisak izbornih predmeta nije radio buttons
                    // nego checkboxes, $izabran ce biti 0
                } else {
                    foreach ($_REQUEST as $ime => $vrijednost) {
                        $komad = "iz{$r110['0']}-";
                        if (substr($ime, 0, strlen($komad)) == $komad) {
                            // izborni predmet sa drugog odsjeka
                            if (substr($ime, strlen($komad)) == "odsjek") {
                                $izabran = intval($_REQUEST["odsjek-{$r110['0']}"]);
                            } else {
                                $izabran = intval($vrijednost);
                            }
                            $q130 = myquery("select ects, naziv from predmet where id={$izabran}");
                            if (mysql_num_rows($q130) < 1) {
                                niceerror("Ilegalan izborni predmet");
                                return;
                            }
                            if (provjeri_kapacitet($izabran, $zagodinu, $plan_studija) == 0) {
                                niceerror("Predmet " . mysql_result($q130, 0, 1) . " se ne može izabrati jer su dostupni kapaciteti za taj predmet popunjeni");
                                zamgerlog2("popunjen kapacitet za predmet", $izabran);
                                return;
                            }
                            $semestar_ects += mysql_result($q130, 0, 0);
                            if ($sem == $godina * 2 - 1) {
                                $s1predmeti[] = $izabran;
                            } else {
                                $s2predmeti[] = $izabran;
                            }
                        }
                    }
                }
            }
            if ($semestar_ects < 30) {
                niceerror("Niste izabrali dovoljno izbornih predmeta u {$sem}. semestru (ukupno {$semestar_ects} ECTS kredita, a potrebno je 30)");
                return;
            }
        }
        // Sve ok, brišemo stari ugovor iz baze
        $q140 = myquery("select id from ugovoroucenju where student={$userid} and akademska_godina={$zagodinu}");
        while ($r140 = mysql_fetch_row($q140)) {
            $q145 = myquery("delete from ugovoroucenju where id={$r140['0']}");
            $q145 = myquery("delete from ugovoroucenju_izborni where ugovoroucenju={$r140['0']}");
        }
        // Ubacujemo novi ugovor u bazu
        $q150 = myquery("insert into ugovoroucenju set student={$userid}, akademska_godina={$zagodinu}, studij={$studij}, semestar=" . ($godina * 2 - 1));
        // Uzimamo ID ugovora
        $q160 = myquery("select id from ugovoroucenju where student={$userid} and akademska_godina={$zagodinu} and studij={$studij} and semestar=" . ($godina * 2 - 1));
        $id1 = mysql_result($q160, 0, 0);
        foreach ($s1predmeti as $predmet) {
            $q170 = myquery("insert into ugovoroucenju_izborni set ugovoroucenju={$id1}, predmet={$predmet}");
        }
        // Isto za parni semestar
        $q180 = myquery("insert into ugovoroucenju set student={$userid}, akademska_godina={$zagodinu}, studij={$studij}, semestar=" . $godina * 2);
        $q190 = myquery("select id from ugovoroucenju where student={$userid} and akademska_godina={$zagodinu} and studij={$studij} and semestar=" . $godina * 2);
        $id2 = mysql_result($q190, 0, 0);
        foreach ($s2predmeti as $predmet) {
            $q200 = myquery("insert into ugovoroucenju_izborni set ugovoroucenju={$id2}, predmet={$predmet}");
        }
        zamgerlog("student u{$userid} kreirao ugovor o ucenju (ID: {$id1} i {$id2})", 2);
        // 2 - edit
        zamgerlog2("kreirao ugovor o ucenju", intval($id1), intval($id2));
        nicemessage("Kreirali ste Ugovor o učenju!");
        ?>
		<p><a href="?sta=student/ugovoroucenjupdf">Kliknite ovdje da biste ga isprintali.</a></p>
		<?php 
        return;
    }
    // Da li student već ima kreiran ugovor o učenju za sljedeću godinu?
    $q9 = myquery("select count(*) from ugovoroucenju where student={$userid} and akademska_godina={$zagodinu}");
    if (mysql_result($q9, 0, 0) > 0) {
        ?>
		<p>Već imate kreiran Ugovor o učenju.<br />Možete ga preuzeti <a href="?sta=student/ugovoroucenjupdf">klikom ovdje</a>, ili možete kreirati novi ugovor ispod (pri čemu će stari biti pobrisan).</p>
		<p>&nbsp;</p>
		<?php 
    }
    // --- Prikaz formulara za kreiranje ugovora
    // Studij nije odabran, biramo onaj koji student trenutno sluša
    if ($studij == 0) {
        $q10 = myquery("select ss.studij, ss.semestar, s.zavrsni_semestar, s.institucija, s.tipstudija, ss.plan_studija from student_studij as ss, studij as s where ss.student={$userid} and ss.akademska_godina={$proslagodina} and ss.studij=s.id order by semestar desc limit 1");
        if (mysql_num_rows($q10) > 0) {
            $studij = mysql_result($q10, 0, 0);
            $godina = mysql_result($q10, 0, 1) / 2 + 1;
            $plan_studija = mysql_result($q10, 0, 5);
            if (mysql_result($q10, 0, 1) >= mysql_result($q10, 0, 2)) {
                $q20 = myquery("select id from studij where moguc_upis=1 and institucija=" . mysql_result($q10, 0, 3) . " and tipstudija>" . mysql_result($q10, 0, 4));
                // FIXME pretpostavka je da su tipovi studija poredani po ciklusima
                if (mysql_num_rows($q20) > 0) {
                    $studij = mysql_result($q20, 0, 0);
                    $godina = 1;
                    $plan_studija = 0;
                    // Uzećemo najnoviji plan za odabrani studij
                } else {
                    // Nema gdje dalje... postavljamo sve na nulu
                    $studij = 0;
                    $godina = 1;
                }
            }
            if ($plan_studija == 0) {
                // Određujemo najnoviji plan za novi studij
                $q6 = myquery("select godina_vazenja from plan_studija where studij={$studij} order by godina_vazenja desc limit 1");
                if (mysql_num_rows($q6) < 1) {
                    niceerror("Nepostojeći studij");
                    return;
                }
                $plan_studija = mysql_result($q6, 0, 0);
            }
        } else {
            niceerror("Niste nikada bili naš student!");
            // Radi testiranja dozvolićemo nestudentima da uđu
            $godina = 1;
        }
    }
    ?>
	<SCRIPT language="JavaScript">
	// Refresh stranice sa novim izbornim predmetima
	function refresh() {
		var studij = parseInt(document.getElementById('studij').value);
		var godina = parseInt(document.getElementById('godina').value);
		location.replace("index.php?sta=student/ugovoroucenju&studij="+studij+"&godina="+godina);
	}

	// Da bismo spriječili da pritisak na Enter submituje formu
	function noenter() {
		if (window.event && window.event.keyCode == 13) {
			refresh();
			return false;
		}
	}

	// Funckija koja ne dozvoljava da se selektuje različit broj polja od navedenog
	var globalna;
	function jedanod(slot, clicked) {
		var template = "iz"+slot;
		var found=false;
		for (var i=0; i<document.mojaforma.length; i++) {
			var el = document.mojaforma.elements[i];

			if (el.type != "checkbox") continue;
			if (el==clicked) continue;
			if (template == el.name.substr(0,template.length)) {
				if (clicked.checked==true && el.checked==true) {
					el.checked=false; found=true; break; 
				}
				if (clicked.checked==false && el.checked==false) {
					el.checked=true; found=true; break;
				}
			}
		}
		if (!found) {
			globalna=clicked;
			setTimeout("revertuj()", 100);
		}
		return found;
	}
	function drugiodsjek(slot, semestar, enable) {
		var template = "iz"+slot;
		for (var i=0; i<document.mojaforma.length; i++) {
			var el = document.mojaforma.elements[i];
			if (el.type != "checkbox" && el.type != "radio") continue;
			if (el.name.substr(0,template.length) == template) continue;
			if (el.name.substr(0,template.length) == "is"+slot) continue;
			if (el.value == "odsjek"+semestar) el.disabled=enable;
		}
	}
	function revertuj() {
			if (globalna.checked) globalna.checked=false;
			else globalna.checked=true;
	}
	</SCRIPT>

	<form action="index.php" method="POST" name="mojaforma">
	<input type="hidden" name="sta" value="student/ugovoroucenju">
	<input type="hidden" name="akcija" value="kreiraj_ugovor">

	<p>Bjanko Ugovor o učenju: <a href="images/content/150dpi/domestic-contract-0.png">stranica 1</a>, <a href="images/content/150dpi/domestic-contract-1.png">stranica 2</a>!</p>

	<p>Studij: <select name="studij" id="studij" onchange="javascript:refresh()"><option></option>
	<?php 
    // Spisak studija
    $q30 = myquery("select id, naziv from studij where moguc_upis=1 order by tipstudija, naziv");
    while ($r30 = mysql_fetch_row($q30)) {
        print "<option value=\"{$r30['0']}\"";
        if ($r30[0] == $studij) {
            print " selected";
        }
        print ">{$r30['1']}</option>\n";
    }
    $semestar = $godina * 2 - 1;
    ?>
	</select></p>
	<p>Godina studija: <input type="text" name="godina" id="godina" value="<?php 
    echo $godina;
    ?>
" onchange="javascript:refresh()" onkeypress="javascript:return noenter()"></p>
	<p>&nbsp;</p>

	<p><b>Izborni predmeti:</b></p>
	<p><?php 
    echo $semestar;
    ?>
. semestar:<br />
	<?php 
    // Spisak izbornih predmeta
    $ops = $count = 0;
    $q40 = myquery("select predmet from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and semestar={$semestar} and obavezan=0 order by predmet");
    if (mysql_num_rows($q40) < 1) {
        print "Nema izbornih predmeta.";
    } else {
        $ops = $count = 0;
        $slotovi = array();
        while ($r40 = mysql_fetch_row($q40)) {
            $slotovi[] = $r40[0];
        }
        $slotovi[] = 0;
        foreach ($slotovi as $slot) {
            if ($ops == 0) {
                /* nop */
            } else {
                if ($slot == $ops) {
                    $count++;
                } else {
                    if ($count == 0) {
                        $q45 = myquery("select p.id, p.naziv from predmet as p, izborni_slot as iz where iz.id={$ops} and iz.predmet=p.id");
                        $prvi = 1;
                        while ($r45 = mysql_fetch_row($q45)) {
                            print "<input type=\"radio\" name=\"is{$ops}\" value=\"{$r45['0']}\"  onchange=\"drugiodsjek('{$ops}',{$semestar},false);\"";
                            if ($prvi) {
                                print " CHECKED";
                                $prvi = 0;
                            }
                            print ">{$r45['1']}</input><br />\n";
                        }
                        // Predmet sa drugog studija
                        print "<input type=\"radio\" name=\"is{$ops}\" value=\"odsjek{$semestar}\" onchange=\"drugiodsjek('{$ops}',{$semestar},true);\">Predmet sa drugog odsjeka</input><br />\n";
                        print "<select name=\"odsjek-{$ops}\">\n";
                        $spisak_predmeta_drugi_studij = array();
                        $drugi_studiji = array();
                        $q46 = myquery("select tipstudija from studij where id={$studij}");
                        $studij_ts = intval(mysql_result($q46, 0, 0));
                        $q47 = myquery("select ps.predmet, p.naziv, s.kratkinaziv, s.id from plan_studija as ps, studij as s, predmet as p where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=1 and ps.studij=s.id and s.tipstudija={$studij_ts} and ps.predmet=p.id order by s.kratkinaziv, ps.semestar, p.naziv");
                        while ($r47 = mysql_fetch_row($q47)) {
                            $drugi_studiji[$r47[3]] = $r47[2];
                            // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                            $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r47['0']}");
                            if (mysql_result($q48, 0, 0) > 0) {
                                continue;
                            }
                            // Ne nudimo predmete koje je student eventualno vec polozio
                            //				$q49 = myquery("select count(*) from konacna_ocjena where student=$userid and predmet=$r47[0] and ocjena>5");
                            //				if (mysql_result($q49,0,0)>0) continue;
                            $spisak_predmeta_drugi_studij[$r47[0]] = "{$r47['1']} ({$r47['2']})";
                            //print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        // A sada i izborni
                        $q51 = myquery("select ps.predmet, s.kratkinaziv, s.id from plan_studija as ps, studij as s where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=0 and ps.studij=s.id and s.tipstudija={$studij_ts} order by s.kratkinaziv");
                        while ($r51 = mysql_fetch_row($q51)) {
                            $drugi_studiji[$r51[2]] = $r51[1];
                            $q52 = myquery("select izs.predmet, p.naziv from izborni_slot as izs, predmet as p where izs.id={$r51['0']} and izs.predmet=p.id order by p.naziv");
                            while ($r52 = mysql_fetch_row($q52)) {
                                // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                                $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r52['0']}");
                                if (mysql_result($q48, 0, 0) > 0) {
                                    continue;
                                }
                                // Ne nudimo predmete koje je student eventualno vec polozio
                                //					$q49 = myquery("select count(*) from konacna_ocjena where student=$userid and predmet=$r52[0] and ocjena>5");
                                //					if (mysql_result($q49,0,0)>0) continue;
                                $spisak_predmeta_drugi_studij[$r52[0]] = "{$r52['1']} ({$r51['1']})";
                            }
                            //				print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        sort($drugi_studiji);
                        //			sort($spisak_predmeta_drugi_studij);
                        foreach ($drugi_studiji as $studij_id => $studij_naziv) {
                            foreach ($spisak_predmeta_drugi_studij as $predmet_id => $predmet_naziv) {
                                if (strstr($predmet_naziv, "({$studij_naziv})")) {
                                    print "<option value=\"{$predmet_id}\">{$predmet_naziv}</option>\n";
                                }
                            }
                        }
                        print "</select><br>\n";
                    } else {
                        print "(izaberite " . ($count + 1) . " predmeta)<br />\n";
                        $q45 = myquery("select p.id, p.naziv from predmet as p, izborni_slot as iz where iz.id={$ops} and iz.predmet=p.id and p.moguc_upis=1");
                        $prvi = $count + 1;
                        while ($r45 = mysql_fetch_row($q45)) {
                            print "<input type=\"checkbox\" name=\"iz{$ops}-{$r45['0']}\" value=\"{$r45['0']}\"";
                            if ($prvi) {
                                print " CHECKED";
                                $prvi--;
                            }
                            print " onchange=\"javascript:jedanod('{$ops}',this)\">{$r45['1']}</input><br />\n";
                        }
                        // Predmet sa drugog studija
                        print "<input type=\"checkbox\" name=\"iz{$ops}-odsjek\" value=\"odsjek{$semestar}\" onchange=\"javascript:jedanod('{$ops}',this); drugiodsjek('{$ops}',{$semestar},this.checked);\">Predmet sa drugog odsjeka</input><br />\n";
                        print "<select name=\"odsjek-{$ops}\">\n";
                        $spisak_predmeta_drugi_studij = array();
                        $drugi_studiji = array();
                        $q46 = myquery("select tipstudija from studij where id={$studij}");
                        $studij_ts = intval(mysql_result($q46, 0, 0));
                        $q47 = myquery("select ps.predmet, p.naziv, s.kratkinaziv, s.id from plan_studija as ps, studij as s, predmet as p where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=1 and ps.studij=s.id and s.tipstudija={$studij_ts} and ps.predmet=p.id order by s.kratkinaziv, ps.semestar, p.naziv");
                        while ($r47 = mysql_fetch_row($q47)) {
                            $drugi_studiji[$r47[3]] = $r47[2];
                            // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                            $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r47['0']}");
                            if (mysql_result($q48, 0, 0) > 0) {
                                continue;
                            }
                            // Ne nudimo predmete koje je student eventualno vec polozio
                            //				$q49 = myquery("select count(*) from konacna_ocjena where student=$userid and predmet=$r47[0] and ocjena>5");
                            //				if (mysql_result($q49,0,0)>0) continue;
                            $spisak_predmeta_drugi_studij[$r47[0]] = "{$r47['1']} ({$r47['2']})";
                            //print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        // A sada i izborni
                        $q51 = myquery("select ps.predmet, s.kratkinaziv, s.id from plan_studija as ps, studij as s where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=0 and ps.studij=s.id and s.tipstudija={$studij_ts} order by s.kratkinaziv");
                        while ($r51 = mysql_fetch_row($q51)) {
                            $drugi_studiji[$r51[2]] = $r51[1];
                            $q52 = myquery("select izs.predmet, p.naziv from izborni_slot as izs, predmet as p where izs.id={$r51['0']} and izs.predmet=p.id order by p.naziv");
                            while ($r52 = mysql_fetch_row($q52)) {
                                // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                                $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r52['0']}");
                                if (mysql_result($q48, 0, 0) > 0) {
                                    continue;
                                }
                                // Ne nudimo predmete koje je student eventualno vec polozio
                                //					$q49 = myquery("select count(*) from konacna_ocjena where student=$userid and predmet=$r52[0] and ocjena>5");
                                //					if (mysql_result($q49,0,0)>0) continue;
                                $spisak_predmeta_drugi_studij[$r52[0]] = "{$r52['1']} ({$r51['1']})";
                            }
                            //				print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        sort($drugi_studiji);
                        //			sort($spisak_predmeta_drugi_studij);
                        foreach ($drugi_studiji as $studij_id => $studij_naziv) {
                            foreach ($spisak_predmeta_drugi_studij as $predmet_id => $predmet_naziv) {
                                if (strstr($predmet_naziv, "({$studij_naziv})")) {
                                    print "<option value=\"{$predmet_id}\">{$predmet_naziv}</option>\n";
                                }
                            }
                        }
                        print "</select><br>\n";
                    }
                }
            }
            $ops = $slot;
        }
    }
    $semestar = $godina * 2;
    ?>
</p>

	<p><?php 
    echo $semestar;
    ?>
. semestar:<br />
	<?php 
    $q40 = myquery("select predmet from plan_studija as ps where godina_vazenja={$plan_studija} and studij={$studij} and semestar={$semestar} and obavezan=0 order by predmet");
    if (mysql_num_rows($q40) < 1) {
        print "Nema izbornih predmeta.";
    } else {
        $ops = $count = 0;
        $slotovi = array();
        while ($r40 = mysql_fetch_row($q40)) {
            $slotovi[] = $r40[0];
        }
        $slotovi[] = 0;
        foreach ($slotovi as $slot) {
            if ($ops == 0) {
                /* nop */
            } else {
                if ($slot == $ops) {
                    $count++;
                } else {
                    if ($count == 0) {
                        $q45 = myquery("select p.id, p.naziv from predmet as p, izborni_slot as iz where iz.id={$ops} and iz.predmet=p.id");
                        $prvi = 1;
                        while ($r45 = mysql_fetch_row($q45)) {
                            print "<input type=\"radio\" name=\"is{$ops}\" value=\"{$r45['0']}\"  onchange=\"drugiodsjek('{$ops}',{$semestar},false);\"";
                            if ($prvi) {
                                print " CHECKED";
                                $prvi = 0;
                            }
                            print ">{$r45['1']}</input><br />\n";
                        }
                        // Predmet sa drugog studija
                        print "<input type=\"radio\" name=\"is{$ops}\" value=\"odsjek{$semestar}\" onchange=\"drugiodsjek('{$ops}',{$semestar},true);\">Predmet sa drugog odsjeka</input><br />\n";
                        print "<select name=\"odsjek-{$ops}\">\n";
                        $spisak_predmeta_drugi_studij = array();
                        $drugi_studiji = array();
                        $q46 = myquery("select tipstudija from studij where id={$studij}");
                        $studij_ts = intval(mysql_result($q46, 0, 0));
                        $q47 = myquery("select ps.predmet, p.naziv, s.kratkinaziv, s.id from plan_studija as ps, studij as s, predmet as p where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=1 and ps.studij=s.id and s.tipstudija={$studij_ts} and ps.predmet=p.id order by s.kratkinaziv, ps.semestar, p.naziv");
                        while ($r47 = mysql_fetch_row($q47)) {
                            $drugi_studiji[$r47[3]] = $r47[2];
                            // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                            $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r47['0']}");
                            if (mysql_result($q48, 0, 0) > 0) {
                                continue;
                            }
                            // Ne nudimo predmete koje je student eventualno vec polozio
                            $q49 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r47['0']} and ocjena>5");
                            //				if (mysql_result($q49,0,0)>0) continue;
                            $spisak_predmeta_drugi_studij[$r47[0]] = "{$r47['1']} ({$r47['2']})";
                            //print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        // A sada i izborni
                        $q51 = myquery("select ps.predmet, s.kratkinaziv, s.id from plan_studija as ps, studij as s where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=0 and ps.studij=s.id and s.tipstudija={$studij_ts} order by s.kratkinaziv");
                        while ($r51 = mysql_fetch_row($q51)) {
                            $drugi_studiji[$r51[2]] = $r51[1];
                            $q52 = myquery("select izs.predmet, p.naziv from izborni_slot as izs, predmet as p where izs.id={$r51['0']} and izs.predmet=p.id order by p.naziv");
                            while ($r52 = mysql_fetch_row($q52)) {
                                // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                                $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r52['0']}");
                                if (mysql_result($q48, 0, 0) > 0) {
                                    continue;
                                }
                                // Ne nudimo predmete koje je student eventualno vec polozio
                                $q49 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r52['0']} and ocjena>5");
                                //					if (mysql_result($q49,0,0)>0) continue;
                                $spisak_predmeta_drugi_studij[$r52[0]] = "{$r52['1']} ({$r51['1']})";
                            }
                            //				print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        sort($drugi_studiji);
                        //sort($spisak_predmeta_drugi_studij);
                        foreach ($drugi_studiji as $studij_id => $studij_naziv) {
                            foreach ($spisak_predmeta_drugi_studij as $predmet_id => $predmet_naziv) {
                                if (strstr($predmet_naziv, "({$studij_naziv})")) {
                                    print "<option value=\"{$predmet_id}\">{$predmet_naziv}</option>\n";
                                }
                            }
                        }
                        print "</select><br>\n";
                    } else {
                        print "(izaberite " . ($count + 1) . " predmeta)<br />\n";
                        $q45 = myquery("select p.id, p.naziv from predmet as p, izborni_slot as iz where iz.id={$ops} and iz.predmet=p.id");
                        $prvi = $count + 1;
                        while ($r45 = mysql_fetch_row($q45)) {
                            print "<input type=\"checkbox\" name=\"iz{$ops}-{$r45['0']}\" value=\"{$r45['0']}\"";
                            if ($prvi) {
                                print " CHECKED";
                                $prvi--;
                            }
                            print " onchange=\"javascript:jedanod('{$ops}',this)\">{$r45['1']}</input><br />\n";
                        }
                        // Predmet sa drugog studija
                        print "<input type=\"checkbox\" name=\"iz{$ops}-odsjek\" value=\"odsjek{$semestar}\" onchange=\"javascript:jedanod('{$ops}',this); drugiodsjek('{$ops}',{$semestar},this.checked);\">Predmet sa drugog odsjeka</input><br />\n";
                        print "<select name=\"odsjek-{$ops}\">\n";
                        $spisak_predmeta_drugi_studij = array();
                        $drugi_studiji = array();
                        $q46 = myquery("select tipstudija from studij where id={$studij}");
                        $studij_ts = intval(mysql_result($q46, 0, 0));
                        $q47 = myquery("select ps.predmet, p.naziv, s.kratkinaziv, s.id from plan_studija as ps, studij as s, predmet as p where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=1 and ps.studij=s.id and s.tipstudija={$studij_ts} and ps.predmet=p.id order by s.kratkinaziv, ps.semestar, p.naziv");
                        while ($r47 = mysql_fetch_row($q47)) {
                            $drugi_studiji[$r47[3]] = $r47[2];
                            // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                            $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r47['0']}");
                            if (mysql_result($q48, 0, 0) > 0) {
                                continue;
                            }
                            // Ne nudimo predmete koje je student eventualno vec polozio
                            $q49 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r47['0']} and ocjena>5");
                            //				if (mysql_result($q49,0,0)>0) continue;
                            $spisak_predmeta_drugi_studij[$r47[0]] = "{$r47['1']} ({$r47['2']})";
                            //print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        // A sada i izborni
                        $q51 = myquery("select ps.predmet, s.kratkinaziv, s.id from plan_studija as ps, studij as s where ps.godina_vazenja={$plan_studija} and ps.studij!={$studij} and ps.semestar={$semestar} and ps.obavezan=0 and ps.studij=s.id and s.tipstudija={$studij_ts} order by s.kratkinaziv");
                        while ($r51 = mysql_fetch_row($q51)) {
                            $drugi_studiji[$r51[2]] = $r51[1];
                            $q52 = myquery("select izs.predmet, p.naziv from izborni_slot as izs, predmet as p where izs.id={$r51['0']} and izs.predmet=p.id order by p.naziv");
                            while ($r52 = mysql_fetch_row($q52)) {
                                // Ne uzimamo u obzir predmete koji su zajednicki za vise studija, pa ce ih student svakako slusati ili ih je vec slusao
                                $q48 = myquery("select count(*) from plan_studija where godina_vazenja={$plan_studija} and studij={$studij} and obavezan=1 and predmet={$r52['0']}");
                                if (mysql_result($q48, 0, 0) > 0) {
                                    continue;
                                }
                                // Ne nudimo predmete koje je student eventualno vec polozio
                                $q49 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r52['0']} and ocjena>5");
                                //					if (mysql_result($q49,0,0)>0) continue;
                                $spisak_predmeta_drugi_studij[$r52[0]] = "{$r52['1']} ({$r51['1']})";
                            }
                            //				print "<option value=\"$r47[0]\">$r47[1] ($r47[2])</option>\n";
                        }
                        sort($drugi_studiji);
                        //sort($spisak_predmeta_drugi_studij);
                        foreach ($drugi_studiji as $studij_id => $studij_naziv) {
                            foreach ($spisak_predmeta_drugi_studij as $predmet_id => $predmet_naziv) {
                                if (strstr($predmet_naziv, "({$studij_naziv})")) {
                                    print "<option value=\"{$predmet_id}\">{$predmet_naziv}</option>\n";
                                }
                            }
                        }
                        print "</select><br>\n";
                    }
                }
            }
            $ops = $slot;
        }
    }
    ?>
	</p>
	<input type="button" value="Osvježi spisak predmeta" onclick="javascript:refresh()"><br /><br />

	<input type="submit" value="Kreiraj ugovor"></form>


	<p><b>Napomene:</b><br>
	* Ukoliko obnavljate godinu, trebate ponovo izabrati one predmete koje ste već položili.<br>
	* Možete izabrati najviše jedan predmet s drugog odsjeka po semestru, a u zbiru trebate imati najmanje 30 ECTS kredita po semestru odnosno 60 ECTS kredita po godini.<br>
	* Ako želite slušati izborni predmet sa drugog fakulteta, sada ovdje izaberite neki predmet sa našeg fakulteta a ujedno pokrenite proceduru (koja podrazumijeva odobrenje oba fakulteta).</p>
	<?php 
}
Пример #2
0
function student_kolizija()
{
    global $userid;
    require "lib/manip.php";
    // Naslov
    ?>
	<h3>Kolizija</h3>
	<?php 
    // Za koju godinu se prijavljuje?
    $q1 = myquery("select id, naziv from akademska_godina where aktuelna=1");
    $q2 = myquery("select id, naziv from akademska_godina where id>" . mysql_result($q1, 0, 0) . " order by id limit 1");
    if (mysql_num_rows($q2) < 1) {
        //		nicemessage("U ovom trenutku nije aktiviran upis u sljedeću akademsku godinu.");
        //		return;
        // Pretpostavljamo da se upisuje u aktuelnu?
        $zagodinu = mysql_result($q1, 0, 0);
        $zagodinunaziv = mysql_result($q1, 0, 1);
        $q3 = myquery("select id from akademska_godina where id<{$zagodinu} order by id desc limit 1");
        $proslagodina = mysql_result($q3, 0, 0);
        if (mysql_num_rows($q3) < 1) {
            // Definisana je samo jedna akademska godina u bazi
            nicemessage("U ovom trenutku nije aktiviran upis u sljedeću akademsku godinu.");
            return;
        }
    } else {
        $proslagodina = mysql_result($q1, 0, 0);
        $zagodinu = mysql_result($q2, 0, 0);
        $zagodinunaziv = mysql_result($q2, 0, 1);
    }
    ?>
	<p>Za akademsku <?php 
    echo $zagodinunaziv;
    ?>
 godinu.</p>
	<?php 
    // Ulazni podaci
    $studij = intval($_REQUEST['studij']);
    $godina = intval($_REQUEST['godina']);
    $prenosi = intval($_REQUEST['prenosi']);
    // Provjera ispravnosti podataka
    if ($studij != 0) {
        $q5 = myquery("select naziv, zavrsni_semestar from studij where id={$studij}");
        if (mysql_num_rows($q5) < 1) {
            niceerror("Neispravan studij");
            $studij = 0;
            unset($_POST['akcija']);
        } else {
            if ($godina < 1 || $godina > mysql_result($q5, 0, 1) / 2) {
                $godina = 1;
            }
        }
        $naziv_studija = mysql_result($q5, 0, 0);
    } else {
        unset($_POST['akcija']);
    }
    // Šta trenutno sluša student?
    $q10 = myquery("select ss.studij, ss.semestar, s.zavrsni_semestar, s.institucija, s.tipstudija, s.naziv, ss.plan_studija from student_studij as ss, studij as s where ss.student={$userid} and ss.akademska_godina={$proslagodina} and ss.studij=s.id order by semestar desc limit 1");
    if (mysql_num_rows($q10) > 0) {
        $trenutni_studij = mysql_result($q10, 0, 0);
        $trenutni_semestar = mysql_result($q10, 0, 1);
        // Podaci koji nam trebaju radi prelaska sa BSc na MSc
        $szavrsni_semestar = mysql_result($q10, 0, 2);
        $sinstitucija = mysql_result($q10, 0, 3);
        $stipstudija = mysql_result($q10, 0, 4);
        $snazivstudija = mysql_result($q10, 0, 5);
        $najnoviji_plan = mysql_result($q10, 0, 6);
    } else {
        niceerror("Niste nikada bili naš student!");
        return;
        // dozvoliti testiranje nestudentima bi bilo prilično komplikovano, obzirom na dio "provjera uslova za koliziju"
    }
    // Modul kolizija zahtijeva plan studija
    if ($najnoviji_plan == 0) {
        niceerror("Modul za koliziju ne može biti aktiviran ako nije definisan plan studija");
        print "Kontaktirajte vašeg administratora.";
        return;
    }
    // PROVJERA USLOVA ZA KOLIZIJU
    // Od predmeta koje je slušao, koliko je pao?
    $predmet_naziv = $predmet_ects = $predmet_semestar = $predmet_stari = array();
    $izborni = array();
    $q30 = myquery("select semestar, predmet, obavezan from plan_studija where godina_vazenja={$najnoviji_plan} and studij={$trenutni_studij} and semestar<={$trenutni_semestar} order by semestar");
    while ($r30 = mysql_fetch_row($q30)) {
        if ($r30[2] == 1) {
            // obavezan
            $q50 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r30['1']} and ocjena>5");
            if (mysql_result($q50, 0, 0) < 1) {
                $q40 = myquery("select naziv,ects from predmet where id={$r30['1']}");
                $predmet_naziv[$r30[1]] = mysql_result($q40, 0, 0);
                $predmet_ects[$r30[1]] = mysql_result($q40, 0, 1);
                $predmet_semestar[$r30[1]] = $r30[0];
                if ($r30[0] < $trenutni_semestar - 1) {
                    $predmet_stari[$r30[1]] = 1;
                } else {
                    $predmet_stari[$r30[1]] = 0;
                }
            }
        } else {
            // izborni predmet
            $izborni[$r30[1]]++;
            $q60 = myquery("select p.id, p.naziv, p.ects from izborni_slot as iz, predmet as p, ponudakursa as pk, student_predmet as sp where iz.id={$r30['1']} and iz.predmet=p.id and p.id=pk.predmet and pk.akademska_godina={$proslagodina} and pk.id=sp.predmet and sp.student={$userid}");
            // Upit vraća više redova ako postoji više slotova za isti skup predmeta
            while ($r60 = mysql_fetch_row($q60)) {
                $predmet_tmp = $r60[0];
                $q70 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$predmet_tmp} and ocjena>5");
                if (mysql_result($q70, 0, 0) < 1) {
                    $predmet_naziv[$predmet_tmp] = $r60[1];
                    $predmet_ects[$predmet_tmp] = $r60[2];
                    $predmet_semestar[$predmet_tmp] = $r30[0];
                    if ($r30[0] < $trenutni_semestar - 1) {
                        $predmet_stari[$predmet_tmp] = 1;
                    } else {
                        $predmet_stari[$r30[1]] = 0;
                    }
                }
            }
            // Student nije slušao dovoljan broj ponuđenih izbornih predmeta
            // Dešava se u slučaju da je izabran predmet sa drugog odsjeka
            if (mysql_num_rows($q60) < $izborni[$r30[1]]) {
                $q60 = myquery("select p.id, p.naziv, p.ects from izborni_slot as iz, predmet as p where iz.id={$r30['1']} and iz.predmet=p.id");
                $naziv = "Izborni predmet (";
                // Kombinovani naziv svih predmeta
                $polozio = 0;
                $ects = 100;
                // treba nam minimalni ects
                while ($r60 = mysql_fetch_row($q60)) {
                    if (strlen($naziv) > 18) {
                        $naziv .= ", ";
                    }
                    $naziv .= $r60[1];
                    if ($r60[2] < $ects) {
                        $ects = $r60[2];
                    }
                    $q70 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r60['0']} and ocjena>5");
                    if (mysql_result($q70, 0, 0) > 0) {
                        $polozio++;
                    }
                }
                if ($polozio < $izborni[$r30[1]]) {
                    // nije polozio dovoljno izbornih predmeta predmet
                    // Spisak izbornih
                    $q71 = myquery("select iz.predmet from izborni_slot as iz, plan_studija as ps where ps.godina_vazenja={$najnoviji_plan} and ps.studij={$trenutni_studij} and ps.semestar<={$trenutni_semestar} and ps.obavezan=0 and ps.predmet=iz.id");
                    $validni_izborni = array();
                    while ($r71 = mysql_fetch_row($q71)) {
                        $validni_izborni[] = $r71[0];
                    }
                    // Određujemo predmet sa drugog odsjeka koji je slušao
                    $nadjen = 0;
                    $q72 = myquery("select pk.predmet, p.naziv, p.ects, pk.semestar from ponudakursa as pk, student_predmet as sp, predmet as p where sp.student={$userid} and sp.predmet=pk.id and pk.akademska_godina={$proslagodina} and pk.semestar={$r30['0']} and pk.obavezan=0 and pk.predmet=p.id");
                    while ($r72 = mysql_fetch_row($q72)) {
                        if (!in_array($r72[0], $validni_izborni)) {
                            $nadjen = 1;
                            // Da li ga je položio?
                            $q74 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r72['0']} and ocjena>5");
                            if (mysql_result($q74, 0, 0) == 0) {
                                $predmet_naziv[$r72[0]] = $r72[1];
                                $predmet_ects[$r72[0]] = $r72[2];
                                $predmet_semestar[$r72[0]] = $r72[3];
                                if ($r72[3] < $trenutni_semestar - 1) {
                                    $predmet_stari[$r72[0]] = 1;
                                } else {
                                    $predmet_stari[$r72[0]] = 0;
                                }
                            }
                        }
                    }
                    // Nismo pronašli predmet sa drugog odsjeka koji je student slušao
                    // Znači da student nije ni upisao sve potrebne izborne predmete
                    if ($nadjen == 0) {
                        $predmet_naziv[$r30[1]] = $naziv . ")";
                        $predmet_ects[$r30[1]] = $ects;
                        $predmet_semestar[$r30[1]] = $r30[0];
                        if ($r30[0] < $trenutni_semestar - 1) {
                            $predmet_stari[$r30[1]] = 1;
                        } else {
                            $predmet_stari[$r30[1]] = 0;
                        }
                    }
                }
            }
        }
    }
    // Da li je već u koliziji?
    $q15 = myquery("select count(*) from student_predmet as sp, ponudakursa as pk where sp.student={$userid} and sp.predmet=pk.id and pk.studij={$trenutni_studij} and pk.semestar>{$trenutni_semestar} and pk.akademska_godina={$zagodinu}");
    if (mysql_result($q15, 0, 0) > 0) {
        ?>
<p>Vaš zahtjev za koliziju je prihvaćen. Upisani ste u odabrane predmete (vidjećete ih na spisku predmeta kada zvanično počne sljedeća akademska godina).</p><?php 
        return;
    }
    // Uslov za upis u sljedeću godinu
    if (count($predmet_naziv) == 0) {
        ?>
<p>Vi ste dali uslov za upis u <?php 
        echo $snazivstudija;
        ?>
, <?php 
        echo $trenutni_semestar + 1;
        ?>
. semestar bez kolizije! Možete popuniti <a href="?sta=student/ugovoroucenju">Ugovor o učenju</a> kako biste izabrali izborne predmete.</p>
		<?php 
        return;
    } else {
        if (count($predmet_naziv) <= 1) {
            $da_stari_je = 0;
            foreach ($predmet_stari as $stari) {
                if ($stari) {
                    $da_stari_je = 1;
                }
            }
            if ($da_stari_je == 0) {
                ?>
<p>Vi ste dali uslov za upis u <?php 
                echo $snazivstudija;
                ?>
, <?php 
                echo $trenutni_semestar + 1;
                ?>
. semestar bez kolizije! Možete popuniti <a href="?sta=student/ugovoroucenju">Ugovor o učenju</a> kako biste izabrali izborne predmete.</p>
			<?php 
                return;
            }
            // else ide na koliziju
        } else {
            if (count($predmet_naziv) > 3) {
                ?>
<p>Trenutno ne ispunjavate uslov za koliziju jer imate <?php 
                echo count($predmet_naziv);
                ?>
 nepoložena predmeta, a možete imati maksimalno tri.</p>
		<?php 
                /*		<p>Prema trenutnoj evidenciji, Vaši nepoloženi predmeti su:</p>
                		<ul><?
                		foreach ($predmet_naziv as $id=>$naziv) {
                			print "<li>$naziv";
                			if ($predmet_stari[$id]) print " (predmet sa nižih godina, ne može se prenijeti)";
                			print "</li>\n";
                		}
                		?>
                		</ul>*/
                ?>
		<p>Ukoliko je ovo greška i položili ste neki od ovih predmeta, hitno kontaktirajte predmetnog nastavnika kako bi unio ocjenu!!!</p>
		<?php 
                //		return;
            }
        }
    }
    // Nemoguće je da student ima previše starih predmeta (trenutno: više od jedan) jer onda ne bi mogao upisati godinu. Eventualno je mogao koristiti koliziju prošle godine, ali bi onda varijabla $trenutni_semestar bila niža pa ti predmeti ne bi bili "stari"
    // Da li već postoji zahtjev za koliziju?
    $q18 = myquery("select count(*) from kolizija where student={$userid} and akademska_godina={$zagodinu}");
    if (mysql_result($q18, 0, 0) > 0) {
        ?>
		<p>Već imate jedan zahtjev za koliziju. Možete ponovo popuniti zahtjev, pri čemu se stari briše.</p>
		<p>Kliknite na jedan od linkova ispod za printanje zahtjeva za:<br>
		- <a href="?sta=student/kolizijapdf&semestar=1">zimski semestar</a><br>
		- <a href="?sta=student/kolizijapdf&semestar=2">ljetnji semestar</a></p>
		<?php 
    }
    // UNOS U BAZU
    // Akcija za unos podataka o koliziji u bazu
    if ($_POST['akcija'] == "korak2" && $studij > 0 && $godina > 0 && $prenosi > 0) {
        // Provjeravamo da li je odabran ispravan broj ECTSova po semestru
        foreach ($predmet_ects as $id => $ects) {
            if ($id == $_POST['prenosi'] || $_POST["polaze-{$id}"]) {
                continue;
            }
            if ($predmet_semestar[$id] % 2 == 1) {
                $zimskiects += $ects;
            } else {
                $ljetnjiects += $ects;
            }
        }
        $zze = $zle = 0;
        $predmeti1 = $predmeti2 = array();
        foreach ($_POST as $key => $value) {
            if (substr($key, 0, 10) == "obavezni1-" || substr($key, 0, 10) == "izborni1--") {
                $predmet = intval(substr($key, 10));
                $q200 = myquery("select ects from predmet where id={$predmet}");
                if (mysql_num_rows($q200) < 1) {
                    niceerror("Izabran je nepoznat predmet!");
                    return;
                }
                $zze += mysql_result($q200, 0, 0);
                array_push($predmeti1, $predmet);
            }
            if (substr($key, 0, 10) == "obavezni2-" || substr($key, 0, 10) == "izborni2--") {
                $predmet = intval(substr($key, 10));
                $q200 = myquery("select ects from predmet where id={$predmet}");
                if (mysql_num_rows($q200) < 1) {
                    niceerror("Izabran je nepoznat predmet!");
                    return;
                }
                $zle += mysql_result($q200, 0, 0);
                array_push($predmeti2, $predmet);
            }
        }
        if ($zze > 30 - $zimskiects || $zle > 30 - $ljetnjiects) {
            niceerror("Izabrano je previše ECTS kredita u jednom od semestara! {$zze}>" . (30 - $zimskiects) . " {$zle}>" . (30 - $ljetnjiects));
            return;
        }
        // Provjera kapaciteta
        foreach (array_merge($predmeti1, $predmeti2) as $predmet) {
            if (provjeri_kapacitet($predmet, $zagodinu, $najnoviji_plan) == 0) {
                $q117 = myquery("SELECT naziv FROM predmet WHERE id={$predmet}");
                niceerror("Predmet " . mysql_result($q117, 0, 0) . " se ne može izabrati jer su dostupni kapaciteti za taj predmet popunjeni");
                zamgerlog2("popunjen kapacitet za predmet", $predmet);
                return;
            }
        }
        // Sve ok, ubacujemo
        $q210 = myquery("delete from kolizija where student={$userid} and akademska_godina={$zagodinu}");
        // Brisem prethodnu koliziju
        $q212 = myquery("delete from septembar where student={$userid} and akademska_godina={$zagodinu}");
        // Brisem prethodnu koliziju
        foreach ($predmeti1 as $predmet) {
            $q210 = myquery("insert into kolizija set student={$userid}, akademska_godina={$zagodinu}, semestar=1, predmet={$predmet}");
        }
        foreach ($predmeti2 as $predmet) {
            $q210 = myquery("insert into kolizija set student={$userid}, akademska_godina={$zagodinu}, semestar=2, predmet={$predmet}");
        }
        foreach ($predmet_ects as $id => $ects) {
            if ($_POST["polaze-{$id}"]) {
                $q210 = myquery("insert into septembar set student={$userid}, akademska_godina={$zagodinu}, predmet={$id}");
            }
        }
        zamgerlog("student u{$userid} kreirao zahtjev za koliziju", 2);
        // 2 - edit
        nicemessage("Kreirali ste zahtjev za koliziju.");
        ?>
		<p>Studentska služba će vas upisati na odgovarajuće predmete prilikom upisa na godinu.</p>
		<p>Kliknite na jedan od linkova ispod za printanje zahtjeva za:<br>
		- <a href="?sta=student/kolizijapdf&semestar=1">zimski semestar</a><br>
		- <a href="?sta=student/kolizijapdf&semestar=2">ljetnji semestar</a></p>
		<?php 
        return;
    }
    // PRVI EKRAN - IZBOR STUDIJA I PREDMETA ZA PRENOS
    // Ako je bilo koji od primljenih parametara nula, dajemo izbor studija, godine i prenesenog predmeta
    if (!$_POST['akcija'] == "korak1" || $studij == 0 || $godina == 0 || $prenosi == 0) {
        // Odredjujemo ciljni studij
        $studij = $trenutni_studij;
        $godina = intval(($trenutni_semestar + 3) / 2);
        if ($trenutni_semestar >= $szavrsni_semestar) {
            $q20 = myquery("select id, naziv from studij where moguc_upis=1 and institucija={$sinstitucija} and tipstudija>{$stipstudija}");
            // FIXME pretpostavka je da su tipovi studija poredani po ciklusima
            if (mysql_num_rows($q20) > 0) {
                $studij = mysql_result($q20, 0, 0);
                $snazivstudija = mysql_result($q20, 0, 1);
                $godina = 1;
            } else {
                // Nema gdje dalje... postavljamo sve na nulu
                $studij = 0;
                $godina = 1;
            }
        }
        // Određujemo najnoviji plan, ali ovaj put za ciljni studij
        // FIXME: prebaciti gore unutar if(mys...($q2)>0) {    ???
        $q6 = myquery("select godina_vazenja from plan_studija where studij={$studij} order by godina_vazenja desc limit 1");
        if (mysql_num_rows($q6) < 1) {
            niceerror("Nepostojeći studij");
            return;
        }
        $najnoviji_plan = mysql_result($q6, 0, 0);
        ?>
		<form action="index.php" method="POST" name="mojaforma">
		<input type="hidden" name="sta" value="student/kolizija">
		<input type="hidden" name="akcija" value="korak1">
		<?php 
        // Ispis ponude za polaganje
        if (count($predmet_naziv) > 3) {
            ?>
			<p><b>Izaberite predmete koje ste položili ili ih planirate položiti do kraja septembarskog roka:</b><br />
			<?php 
            foreach ($predmet_naziv as $id => $naziv) {
                ?>
				<input type="checkbox" name="polaze-<?php 
                echo $id;
                ?>
" <?php 
                ?>
><?php 
                echo $naziv;
                ?>
 (<?php 
                echo $predmet_semestar[$id];
                ?>
. semestar, <?php 
                echo $predmet_ects[$id];
                ?>
 ECTS)<br />
				<?php 
            }
            ?>
			<p>VAŽNO: Ako ne položite neki od ovih predmeta, Vaš zahtjev za koliziju se poništava!</p>
			<?php 
        }
        // Ispis izbora predmeta koji će student prenijeti
        // Ima li ijedan predmet koji se može prenijeti?
        $ima = 0;
        foreach ($predmet_stari as $id => $stari) {
            if ($stari == 0) {
                $ima = 1;
            }
        }
        if ($ima) {
            ?>
			<p><b>Izaberite predmet koji prenosite redovno:</b><br />
			<?php 
            foreach ($predmet_naziv as $id => $naziv) {
                ?>
				<input type="radio" name="prenosi" value="<?php 
                echo $id;
                ?>
"<?php 
                if ($predmet_stari[$id]) {
                    print " DISABLED";
                }
                ?>
><?php 
                echo $naziv;
                ?>
 (<?php 
                echo $predmet_semestar[$id];
                ?>
. semestar, <?php 
                echo $predmet_ects[$id];
                ?>
 ECTS)<br />
				<?php 
            }
            ?>
			<p>Ostale predmete prenosite "koliziono" što znači da u odgovarajućem semestru (ljetnom ili zimskom) ne možete slušati odgovarajući broj ECTS kredita.</p>
			<?php 
        } else {
            print '<input type="hidden" name="prenosi" value="-1">';
        }
        // Izbor studija
        ?>
		<p><hr><br />
		Studij: <select name="studij" id="studij" onchange="javascript:refresh()"><option></option>
		<?php 
        // Spisak studija
        $q30 = myquery("select id, naziv from studij where moguc_upis=1 order by tipstudija, naziv");
        while ($r30 = mysql_fetch_row($q30)) {
            print "<option value=\"{$r30['0']}\"";
            if ($r30[0] == $studij) {
                print " selected";
            }
            print ">{$r30['1']}</option>\n";
        }
        ?>
		</select></p>
		<p>Godina studija: <input type="text" name="godina" id="godina" value="<?php 
        echo $godina;
        ?>
"></p>
		<p><input type="submit" value="Dalje >>"></p>
		</form>
	
	
		<?php 
        return;
    }
    // if ($studij==0 || $godina==0 || $prenosi==0)
    // ISPIS IZBORA PREDMETA
    // (odnosno korak 2 wizarda)
    ?>
	<form action="index.php" method="POST" name="mojaforma">
	<input type="hidden" name="sta" value="student/kolizija">
	<input type="hidden" name="akcija" value="korak2">
	<?php 
    // Odredjujemo najnoviji plan studija za odabrani studij
    $q6 = myquery("select godina_vazenja from plan_studija where studij={$studij} order by godina_vazenja desc limit 1");
    if (mysql_num_rows($q6) < 1) {
        niceerror("Nepostojeći studij");
        return;
    }
    $najnoviji_plan = mysql_result($q6, 0, 0);
    foreach ($predmet_naziv as $id => $naziv) {
        if ($_POST["polaze-{$id}"] && $id == $_POST['prenosi']) {
            niceerror("Pogrešni podaci!");
            ?>
			Ne možete istovremeno izabrati da ćete predmet položiti i da ga prenosite.
			<?php 
            return;
        }
    }
    $br_polozice = 0;
    foreach ($predmet_naziv as $id => $naziv) {
        if ($_POST["polaze-{$id}"]) {
            $br_polozice++;
        }
    }
    if ($br_polozice > count($predmet_naziv) - 2) {
        niceerror("Pa nećete sve položiti :)");
        ?>
			<p>Vratite se nazad i ostavite barem dva predmeta koja nećete položiti kako biste bili kolizija. Ako sve položite onda niste kolizija.</p>
			<?php 
        return;
    }
    // Ispisujemo izabrani studij, godinu i preneseni predmet
    ?>
	<input type="hidden" name="studij" value="<?php 
    echo $studij;
    ?>
">
	<input type="hidden" name="godina" value="<?php 
    echo $godina;
    ?>
">

	<p>Kolizija za studij <b><?php 
    echo $naziv_studija;
    ?>
</b> (<b><?php 
    echo $godina;
    ?>
.</b> godina)<br />
	<?php 
    foreach ($predmet_naziv as $id => $naziv) {
        if ($_POST["polaze-{$id}"]) {
            ?>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Položiće: <b><?php 
            echo $naziv;
            ?>
</b> (<?php 
            echo $predmet_ects[$id];
            ?>
 ECTS)<br />
			<input type="hidden" name="polaze-<?php 
            echo $id;
            ?>
" value="on">
			<?php 
        }
    }
    foreach ($predmet_naziv as $id => $naziv) {
        if ($id == $_POST['prenosi']) {
            ?>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Preneseni predmet: <b><?php 
            echo $naziv;
            ?>
</b> (<?php 
            echo $predmet_ects[$id];
            ?>
 ECTS)<br />
			<input type="hidden" name="prenosi" value="<?php 
            echo $prenosi;
            ?>
">
			<?php 
        }
    }
    $broj_kolizionih_predmeta = 0;
    foreach ($predmet_naziv as $id => $naziv) {
        if ($id != $_POST['prenosi'] && !$_POST["polaze-{$id}"]) {
            ?>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kolizioni predmet: <b><?php 
            echo $naziv;
            ?>
</b> (<?php 
            echo $predmet_ects[$id];
            ?>
 ECTS)<br />
			<?php 
            $broj_kolizionih_predmeta++;
        }
    }
    if ($broj_kolizionih_predmeta > 3) {
        ?>
		<?php 
        nicemessage("Izabrali ste više od dva koliziona predmeta");
        ?>
		<p>Možete imati maksimalno dva predmeta u koliziji, ostale predmete trebate ili položiti ili prenijeti.</p>
		<p><a href="?sta=student/kolizija">Nazad na izbor studija, godine i prenesenog predmeta</a></p>
		<?php 
        return;
    }
    // Računamo broj ECTSova u zimskom i ljetnjem periodu
    foreach ($predmet_ects as $id => $ects) {
        if ($id == $_POST['prenosi'] || $_POST["polaze-{$id}"]) {
            continue;
        }
        if ($predmet_semestar[$id] % 2 == 1) {
            $zimskiects += $ects;
        } else {
            $ljetnjiects += $ects;
        }
    }
    // JavaScript
    ?>

	<SCRIPT language="JavaScript">
	// Funckija koja ne dozvoljava da se selektuje različit broj polja od navedenog
	var globalna;
	function jedanod(slot, clicked) {
		var template = "izborni-"+slot;
		var found=false;
		for (var i=0; i<document.mojaforma.length; i++) {
			var el = document.mojaforma.elements[i];

			if (el.type != "checkbox") continue;
			if (el==clicked) continue;
			if (template == el.name.substr(0,template.length)) {
				if (clicked.checked==true && el.checked==true) {
					el.checked=false; found=true; break; 
				}
				if (clicked.checked==false && el.checked==false) {
					el.checked=true; found=true; break;
				}
			}
		}
		if (!found) {
			globalna=clicked;
			setTimeout("revertuj()", 100);
		}
		return found;
	}
	function revertuj() {
		if (globalna.checked) globalna.checked=false;
		else globalna.checked=true;
	}
	function updateects(sta, zakoliko, radio) {
		var layer;
		if (sta==0) layer=document.getElementById('zimskiizbor');
		else layer=document.getElementById('ljetnjiizbor');

		var vrijednost=parseFloat(layer.innerHTML);

		if (radio.checked) vrijednost+=zakoliko;
		else vrijednost-=zakoliko;

		layer.innerHTML=vrijednost;

		if (sta==0 && vrijednost><?php 
    echo 30 - $zimskiects;
    ?>
)
			document.getElementById('zimskicrveno').style.color="red";
		else if (sta==0)
			document.getElementById('zimskicrveno').style.color="black";

		if (sta==1 && vrijednost><?php 
    echo 30 - $ljetnjiects;
    ?>
)
			document.getElementById('ljetnjicrveno').style.color="red";
		else if (sta==1)
			document.getElementById('ljetnjicrveno').style.color="black";

	}
	function provjeri_submit() {
		var zimski=parseFloat(document.getElementById('zimskiizbor').innerHTML);
		var ljetnji=parseFloat(document.getElementById('ljetnjiizbor').innerHTML);
		if (zimski><?php 
    echo 30 - $zimskiects;
    ?>
 || ljetnji><?php 
    echo 30 - $ljetnjiects;
    ?>
) {
			alert ("Izabrali ste previše ECTS kredita u koliziji!");
			return false;
		}
		return true;
	}
	</SCRIPT>
	<?php 
    // Ispis
    ?>
	<p><a href="?sta=student/kolizija">Nazad na izbor studija, godine i prenesenog predmeta</a></p>

	<p><hr><br />
	Izaberite predmete koje želite slušati. Možete izabrati maksimalno <?php 
    echo 30 - $zimskiects;
    ?>
 kredita na zimskom semestru i <?php 
    echo 30 - $ljetnjiects;
    ?>
 kredita na ljetnom.</p>
	<p>NAPOMENA: Morate popuniti i <a href="?sta=student/ugovoroucenju">Ugovor o učenju</a>, ali za prethodnu godinu (za <?php 
    echo $godina - 1;
    ?>
. godinu studija).</p>
	<p><span id="zimskicrveno"><b><?php 
    echo $godina * 2 - 1;
    ?>
. semestar (izabrano <span id="zimskiizbor">0</span> kredita, max. <?php 
    echo 30 - $zimskiects;
    ?>
):</b></span><br />
	<?php 
    $q40 = myquery("select predmet, obavezan from plan_studija where godina_vazenja={$najnoviji_plan} and studij={$studij} and semestar=" . ($godina * 2 - 1) . " order by obavezan desc, predmet");
    $is_bilo = array();
    while ($r40 = mysql_fetch_row($q40)) {
        if ($r40[1] == 1) {
            // obavezan
            // Ako je vec polozen predmet preskacemo
            $q45 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r40['0']}");
            if (mysql_result($q45, 0, 0) > 0) {
                continue;
            }
            // Ako je vec polozen predmet preskacemo
            $q50 = myquery("select naziv, ects from predmet where id={$r40['0']}");
            $pnaziv = mysql_result($q50, 0, 0);
            $pects = mysql_result($q50, 0, 1);
            // Zavrsni rad se ne moze izabrati u koliziji
            if ($pects == 12) {
                continue;
            }
            ?>
			<input type="checkbox" name="obavezni1-<?php 
            echo $r40[0];
            ?>
" onchange="javascript:updateects(0, <?php 
            echo $pects;
            ?>
, this)"> <?php 
            echo $pnaziv;
            ?>
 (<?php 
            echo $pects;
            ?>
 ECTS)<br />
			<?php 
        } else {
            // izborni
            if (count($is_bilo) == 0) {
                print "Izborni predmeti:<br />\n";
            }
            // Da li je već bio izborni slot?
            if (in_array($r40[0], $is_bilo)) {
                continue;
            }
            array_push($is_bilo, $r40[0]);
            $q60 = myquery("select p.id, p.naziv, p.ects from predmet as p, izborni_slot as iz where iz.id={$r40['0']} and iz.predmet=p.id");
            while ($r60 = mysql_fetch_row($q60)) {
                // Ako je vec polozen predmet preskacemo
                $q65 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r60['0']}");
                if (mysql_result($q65, 0, 0) > 0) {
                    continue;
                }
                // Ako je vec polozen predmet preskacemo
                $pnaziv = $r60[1];
                $pects = $r60[2];
                ?>
				&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
				<input type="checkbox" name="izborni1--<?php 
                echo $r60[0];
                ?>
" onchange="javascript:updateects(0, <?php 
                echo $pects;
                ?>
, this)"> <?php 
                echo $pnaziv;
                ?>
 (<?php 
                echo $pects;
                ?>
 ECTS)<br />
				<?php 
            }
        }
    }
    ?>
	<p><span id="ljetnjicrveno"><b><?php 
    echo $godina * 2;
    ?>
. semestar (izabrano <span id="ljetnjiizbor">0</span> kredita, max. <?php 
    echo 30 - $ljetnjiects;
    ?>
):</b></span><br />
	<?php 
    $q40 = myquery("select predmet, obavezan from plan_studija where godina_vazenja={$najnoviji_plan} and studij={$studij} and semestar=" . $godina * 2 . " order by obavezan desc, predmet");
    $is_bilo = array();
    while ($r40 = mysql_fetch_row($q40)) {
        if ($r40[1] == 1) {
            // obavezan
            // Ako je vec polozen predmet preskacemo
            $q45 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r40['0']}");
            if (mysql_result($q45, 0, 0) > 0) {
                continue;
            }
            // Ako je vec polozen predmet preskacemo
            $q50 = myquery("select naziv, ects from predmet where id={$r40['0']}");
            $pnaziv = mysql_result($q50, 0, 0);
            $pects = mysql_result($q50, 0, 1);
            // Zavrsni rad se ne moze izabrati u koliziji
            if ($pects == 12) {
                continue;
            }
            ?>
			<input type="checkbox" name="obavezni2-<?php 
            echo $r40[0];
            ?>
" onchange="javascript:updateects(1, <?php 
            echo $pects;
            ?>
, this)"> <?php 
            echo $pnaziv;
            ?>
 (<?php 
            echo $pects;
            ?>
 ECTS)<br />
			<?php 
        } else {
            // izborni
            if (count($is_bilo) == 0) {
                print "Izborni predmeti:<br />\n";
            }
            // Da li je već bio izborni slot?
            if (in_array($r40[0], $is_bilo)) {
                continue;
            }
            array_push($is_bilo, $r40[0]);
            $q60 = myquery("select p.id, p.naziv, p.ects from predmet as p, izborni_slot as iz where iz.id={$r40['0']} and iz.predmet=p.id");
            while ($r60 = mysql_fetch_row($q60)) {
                // Ako je vec polozen predmet preskacemo
                $q65 = myquery("select count(*) from konacna_ocjena where student={$userid} and predmet={$r60['0']}");
                if (mysql_result($q65, 0, 0) > 0) {
                    continue;
                }
                // Ako je vec polozen predmet preskacemo
                $pnaziv = $r60[1];
                $pects = $r60[2];
                ?>
				&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
				<input type="checkbox" name="izborni2--<?php 
                echo $r60[0];
                ?>
" onchange="javascript:updateects(1, <?php 
                echo $pects;
                ?>
, this)"> <?php 
                echo $pnaziv;
                ?>
 (<?php 
                echo $pects;
                ?>
 ECTS)<br />
				<?php 
            }
        }
    }
    ?>
	</p>
	<p>
	<input type="submit" value="Potvrđujem koliziju" onclick="javascript:return provjeri_submit()"></form></p>
	<?php 
}