<?
	/** Funkcje operujące na bazie danych, przeznaczone dla zastosowań asystenta.
	 *
	 * Wyniki dzialania wszystkich funkcji sa umieszczane w sesji. Wyciegane są z tamtąd prze funcje wyświetlające wz pliku Aview.inc.php.
	 * @author Lukasz Chmielewski
	 * @package XPAsystent
	 */

	 /** */
	if ( defined( '_A_DB_FUN' ) ) return;
	define( '_A_DB_FUN', 1 );

	/** Funkcja wyciągająca z bazy danych dane o cyklach dydaktycznych, w ktorych uczestniczyl asystent.
	 * @author Lukasz Chmielewski
	 * @version 0.3	 
	 * @param string $cyk nazwa tabelki do której są wstawiane dane
	 * @param int $asys
	 * @param string $literka
	 */
	function readCycle($cyk, $asys, $literka, $czep = 'false', $czy = 'false') {
		global $sess;

		$i = 0;
		//print("Tu<BR>");

		if ($czy == 'true') {
			//print("Tu00<BR>");
			$sel =
			"select distinct 
				KOD, OPIS, DATA_OD, DATA_DO, DATA_ZAKON, STATUS_CYKLU 
			from 
				XP_CYKLE_DYDAKTYCZNE, XP_ZAJECIA_CYKLI, XP_PROWADZACY_GRUP 
			where 
				CDYD_KOD = KOD and 
				ZAJ_CYK_ID = XP_ZAJECIA_CYKLI.ID and 
				XP_ZAJECIA_CYKLI.XP_OBSLUGA = 'Y' and
				XP_PROWADZACY_GRUP.PRAC_ID = '" . $asys . "'";
		}
		else {
			//print("Tu01<BR>");
			$sel =
			"select distinct 
				KOD, OPIS, DATA_OD, DATA_DO, DATA_ZAKON, STATUS_CYKLU 
			from 
				XP_CYKLE_DYDAKTYCZNE, XP_ZAJECIA_CYKLI, XP_PROWADZACY_GRUP 
			where 
				CDYD_KOD = KOD and 
				ZAJ_CYK_ID = XP_ZAJECIA_CYKLI.ID and 
				XP_ZAJECIA_CYKLI.XP_OBSLUGA = 'Y' and
				XP_PROWADZACY_GRUP.PRAC_ID = '" . $asys . "' and 
				STATUS_CYKLU = '" . $literka . "'";
			$czep = 'false';
		}

		$q = new CQuery($sel);
		$sess->set("$cyk", array());
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				//print($czep."Tu1<BR>");
				if (!(($literka=="")&&($czep=='true')&&
				($arr["STATUS_CYKLU"]!='N')&&
				($arr["STATUS_CYKLU"]!='A')&&
				($arr["STATUS_CYKLU"]!='B'))) {
					//print("Tu2<BR>");
					$sess->setTab("$cyk", $arr["KOD"], 
						array(	"op" => $arr["OPIS"], 
							"od" => $arr["DATA_OD"], 
							"do" => $arr["DATA_DO"], 
							"st" => $arr["STATUS_CYKLU"], 
							"zakon" => $arr["DATA_ZAKON"]));
				}
			}
		}
		$q->free();
	}

	/** Funkcja wyciągająca z bazy danych grupy dla danego asystenta w danym cyklu (ewentualnie).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param array $kod identyfikiator przedmiotu w bazie danych
	 * @param string $asys identyfikator asystenta w bazie danych
	 */
	function readGroups($kod, $asys) {
		global $sess;

		if (!isset($kod)) {
			$sel =
			"select 
				GR_NR, NAZWA, DATA_ZAKON, CDYD_KOD, STATUS_CYKLU, 
				XP_PROWADZACY_GRUP.ZAJ_CYK_ID CYK_ID, 
				XP_CYKLE_DYDAKTYCZNE.OPIS CYKL
			from 
				XP_PROWADZACY_GRUP, XP_ZAJECIA_CYKLI, 
				XP_PRZEDMIOTY, XP_CYKLE_DYDAKTYCZNE 
			where 
				XP_PROWADZACY_GRUP.PRAC_ID = '" . $asys . "' and
				XP_PROWADZACY_GRUP.ZAJ_CYK_ID = XP_ZAJECIA_CYKLI.ID and
				XP_ZAJECIA_CYKLI.XP_OBSLUGA = 'Y' and
				PRZ_KOD = XP_PRZEDMIOTY.KOD and 
				XP_CYKLE_DYDAKTYCZNE.KOD = CDYD_KOD";
		}
		else {
			$sel =
			"select 
				GR_NR, NAZWA, DATA_ZAKON, CDYD_KOD, STATUS_CYKLU, 
				XP_PROWADZACY_GRUP.ZAJ_CYK_ID CYK_ID, 
				XP_CYKLE_DYDAKTYCZNE.OPIS CYKL
			from 
				XP_PROWADZACY_GRUP, XP_ZAJECIA_CYKLI, 
				XP_PRZEDMIOTY, XP_CYKLE_DYDAKTYCZNE 
			where 
				XP_PROWADZACY_GRUP.PRAC_ID = '" . $asys . "' and
				XP_PROWADZACY_GRUP.ZAJ_CYK_ID = XP_ZAJECIA_CYKLI.ID and
				XP_ZAJECIA_CYKLI.XP_OBSLUGA = 'Y' and
				PRZ_KOD = XP_PRZEDMIOTY.KOD and 
				XP_CYKLE_DYDAKTYCZNE.KOD = CDYD_KOD and 
				XP_CYKLE_DYDAKTYCZNE.KOD = '" . $kod . "'";
		}

		$q = new CQuery($sel);
		$sess->set("Agrupy_cykli", array());
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				$sess->setTab2("Agrupy_cykli", $arr["GR_NR"], $arr["CYK_ID"], 
					array(	"ck" => $arr["CYKL"], 
						"cdyd" => $arr["CDYD_KOD"], 
						"przed" => $arr["NAZWA"]));
			}
		}
		$q->free();
	}

	/** Funkcja wyciągająca z bazy danych, dane konkretnej grupy. 
	 *
	 * Wyciąga zadania lub osoby danej grupy.
	 * @author Lukasz Chmielewski
	 * @version 0.2
	 * @param int $gr identyfikiator grupy w bazie danych
	 * @param string $cyk - cykl
	 * @param string $co informuje co trzeba pobrac: liste osob, czy liste zadan
	 * @param string $prze - przedmiot
	 * @param string $cngry
	 * @param string $cgry
	 */
	function readGroupData($gr, $cyk, $co, $prze, $cngry, $cgry) {
		global $sess;		

		$sess->set("Agrupa", array(	"gr" => $gr, 
						"cyk" => $cyk,
						"przed" => $prze,
						"cgr" => $cgry,
						"cngr" => $cngry));
		
		if (($co == 2)||($co == 3)) {
			$sel =
			"select ID ,PESEL, INDEKS, IMIE, NAZWISKO, EMAIL
			from
				XP_OSOBY, XP_OSOBY_GRUP
			where
				ID = OS_ID and GR_NR = '" . $gr . "' and 
				ZAJ_CYK_ID = '" . $cyk . "'";

			$q = new CQuery($sel);
			$sess->set("Aosoby_grupy", array());
			if ($q->num_rows()) {
				while ($arr = $q->fetch_array()) {
					$sess->setTab("Aosoby_grupy", $arr["ID"], 
						array(	"pes" => $arr["PESEL"], 
							"ind" => $arr["INDEKS"],
							"im" => $arr["IMIE"],
							"em" => $arr["EMAIL"],
							"nazw" => $arr["NAZWISKO"]));
				}
			}
			$q->free();
		}
		if (($co == 1)||($co == 3)) {
			$sel =
			"select XP_ZADANIE.ID ZADANIE, NUMER_ZAD NUMER, NAZWA, NALEZY, XP_ZADANIE_GRUPY.ID ZAD_GR,
			IF (GR_TERMIN1 is NULL, IF (TERMIN2 is NULL,TERMIN1,TERMIN2),GR_TERMIN1) TERM
			from
				XP_ZADANIE, XP_ZADANIE_GRUPY
			where
				ID_ZAD = XP_ZADANIE.ID and 
				GR_NR = '" . $gr . "' and ZAJ_CYKLI = '" . $cyk . "'
				order by NUMER_ZAD";
//NALEZY = 'Y' and

			$q = new CQuery($sel);
			$sess->set("Azadania_grupy", array());
			if ($q->num_rows()) {
				while ($arr = $q->fetch_array()) {
					//print ("ala");
					$sess->setTab("Azadania_grupy", $arr["ZADANIE"], 
						array(	"num" => $arr["NUMER"], 
							"ter" => $arr["TERM"], 
							"nal" => $arr["NALEZY"],
							"zgr" => $arr["ZAD_GR"],
							"zad" => $arr["NAZWA"]));
				}
			}
			$q->free();
		}

		$sel =
		"select ID , NUMER_ZAD , NAZWA
		from
			XP_ZADANIE
		where
			ZAJ_CYKLI = '" . $cyk . "'
			order by NUMER_ZAD";

		$q = new CQuery($sel);
		$sess->set("Aall_zadania_grupy", array());
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				//print($arr["NAZWA"]);
				$sess->setTab("Aall_zadania_grupy", $arr["ID"], 
						array(	"num" => $arr["NUMER_ZAD"], 
							"zad" => $arr["NAZWA"]));
			}
		}
		$q->free();

		$sel =
		"select PESEL, IMIE, NAZWISKO, EMAIL
		from
			XP_ZAJECIA_CYKLI tab1, XP_PROWADZACY_PRZEDMIOTY_CYKLI tab2, XP_OSOBY
		where
			XP_OSOBY.ID = tab2.PRAC_ID and
			tab1.PRZ_KOD = tab2.PRZ_KOD and
			tab1.CDYD_KOD = tab2.CDYD_KOD and
			tab1.XP_OBSLUGA = 'Y' and
			tab1.ID = '" . $cyk . "'";

		$q = new CQuery($sel);
		$sess->set("Awykladowca", array());
		$licz = 1;
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				$sess->setTab("Awykladowca",$licz++,
						array(	"im" => $arr["IMIE"],
							"nz" => $arr["NAZWISKO"],
							"em" => $arr["EMAIL"]));
			}
		}
		//print($licz);
		$q->free();
	}

	/** Funkcja wyciągająca z bazy danych dane konkretnej osoby: dane osobiste i oddane zadania.
	 *
	 * Parametry, oprócz id, slużą do wpisania do sesji dancyh danej grupy (inne cześci programu muszą o tym wiedzieć).
	 * @param int $id identyfikiator osoby
	 * @author Lukasz Chmielewski
	 * @version 0.4
	 */

	function readPersonData($id, $gr, $cyk, $prze, $cngry, $cgry) {
		global $sess;

		$sess->set("Agrupa", array(	"gr" => $gr, 
						"cyk" => $cyk,
						"przed" => $prze,
						"cgr" => $cgry,
						"cngr" => $cngry));

		$sel =
		"select 
			XP_ODDANE_PRACE.ID ZADOD,
			XP_ZADANIE.ID ZAD, NUMER_ZAD , NAZWA, 
			GR_TERMIN1, TERMIN1, TERMIN2,
			POBLAZANIE, 
			XP_ZADANIE.ZAKRES_SPR, XP_ZADANIE.POZIOM_SPR, 
			XP_ZADANIE_GRUPY.ZAKRES_SPR, XP_ZADANIE_GRUPY.POZIOM_SPR,
			IF (GR_TERMIN1 is NULL, IF (TERMIN2 is NULL,TERMIN1,TERMIN2),GR_TERMIN1) TERM,
			UTW_DATE, MOD_DATE, AUTOR,
			ODDANIE, FILE, STATUS,
			if (TERMIN1 > ODDANIE, 2 ,(if (DATE_ADD(TERMIN1, interval POBLAZANIE hour) > ODDANIE, 1, 0))) WYNIK1,
			if (TERMIN2 > ODDANIE, 2 ,(if (DATE_ADD(TERMIN2, interval POBLAZANIE hour) > ODDANIE, 1, 0))) WYNIK2,
			if (GR_TERMIN1 > ODDANIE, 2 ,(if (DATE_ADD(GR_TERMIN1, interval POBLAZANIE hour) > ODDANIE, 1, 0))) WYNIK3

		from
			XP_ZADANIE, XP_ODDANE_PRACE, XP_ZADANIE_GRUPY
		where
			XP_ODDANE_PRACE.ID_ZAD = XP_ZADANIE.ID and
			XP_ZADANIE_GRUPY.ID_ZAD = XP_ZADANIE.ID and
			ID_STUD = '" . $id . "' and
			NALEZY = 'Y' and
			GR_NR = '" . $gr . "' and ZAJ_CYKLI = '" . $cyk . "'
			order by NUMER_ZAD";

		$q = new CQuery($sel);
		$sess->set("Aosoba_zadania", array());
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				//print("ALA");
				$sess->setTab("Aosoba_zadania", $arr["ZADOD"],
					array(	"nz" => $arr["NAZWA"], 
						"zad" => $arr["ZAD"], 
						"tm" => $arr["TERM"], 
						"num" => $arr["NUMER_ZAD"], 
						"tm1" => $arr["TERMIN1"], 
						"tm2" => $arr["TERMIN2"], 
						"grtm1" => $arr["GR_TERMIN1"], 
						"pb" => $arr["POBLAZANIE"], 
						"od" => $arr["ODDANIE"],
						"wyn1" => $arr["WYNIK1"],
						"wyn2" => $arr["WYNIK2"],
						"wyn3" => $arr["WYNIK3"],
						"st" => $arr["STATUS"],
						"fl" => $arr["FILE"]));
			}
		}
		$q->free();

		$sel =
		"select * from XP_OSOBY where ID = '" . $id . "'";

		$q = new CQuery($sel);
		if ($q->num_rows() == 1) {
			$arr = $q->fetch_array();
			$sess->set("Aosoba", array(	"pes" => $arr["PESEL"], 
							"ind" => $arr["INDEKS"], 
							"im" => $arr["IMIE"], 
							"nz" => $arr["NAZWISKO"], 
							"pl" => $arr["PLEC"], 
							"em" => $arr["EMAIL"]));
		}
		else {
			die();
		}
		$q->free();
	}

	/** Funkcja wyciągająca z bazy danych dane konkretnego zadania: dane zadania i osoby, ktore je oddaly.
	 *
	 * Parametry, oprócz id (zadania), slużą do wpisania do sesji dancyh danej grupy (inne cześci programu muszą o tym wiedzieć).
	 * @param int $id identyfikiator zadania
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function readExerciseData($id, $gr, $cyk, $prze, $cngry, $cgry) {
		global $sess;

		$sess->set("Agrupa", array(	"gr" => $gr, 
						"cyk" => $cyk,
						"przed" => $prze,
						"cgr" => $cgry,
						"cngr" => $cngry));

		$sel =
		"select 
			XP_OSOBY.ID STUDENT, XP_ODDANE_PRACE.ID KLUCZ,
			FILE, STATUS,
			ODDANIE,  INDEKS, IMIE, NAZWISKO,
			if ((DATE_ADD(
			(IF (GR_TERMIN1 is NULL, IF (TERMIN2 is NULL,TERMIN1,TERMIN2),GR_TERMIN1)),
			interval POBLAZANIE HOUR) > ODDANIE),1,0) TERM
		from
			XP_ZADANIE_GRUPY, XP_ZADANIE, XP_ODDANE_PRACE, XP_OSOBY_GRUP, XP_OSOBY
		where
			XP_ZADANIE_GRUPY.ID_ZAD = '" . $id . "' and
			XP_ZADANIE_GRUPY.ID_ZAD = XP_ZADANIE.ID and
			XP_ODDANE_PRACE.ID_ZAD = XP_ZADANIE.ID and
			XP_ODDANE_PRACE.ID_STUD = XP_OSOBY.ID and
			NALEZY = 'Y' and
			XP_OSOBY_GRUP.OS_ID = XP_OSOBY.ID and
			XP_ZADANIE.ZAJ_CYKLI = XP_OSOBY_GRUP.ZAJ_CYK_ID and
			XP_ZADANIE_GRUPY.GR_NR = XP_OSOBY_GRUP.GR_NR and
			XP_ZADANIE_GRUPY.GR_NR = '" . $gr . "' and XP_ZADANIE.ZAJ_CYKLI = '" . $cyk . "'
			order by STATUS";

		$q = new CQuery($sel);
		$sess->set("Zadanie_osoby", array());
		//print($q->num_rows());
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				//print("ALA");
				$sess->setTab("Zadanie_osoby", $arr["KLUCZ"],
					array(	"stud" => $arr["STUDENT"],
						"nz" => $arr["NAZWISKO"], 
						"im" => $arr["IMIE"], 
						"ind" => $arr["INDEKS"], 
						"tm" => $arr["TERM"], 
						"st" => $arr["STATUS"],
						"fl" => $arr["FILE"], 
						"od" => $arr["ODDANIE"]));
			}
		}
		$q->free();

		$sel =
		"select
			AUTOR, NUMER_ZAD, LINK_URL, NAZWA, TERMIN1, TERMIN2, 
			POBLAZANIE, GR_TERMIN1, 
			XP_ZADANIE.ZAKRES_SPR ZADANIE_ZAKRES_SPR, XP_ZADANIE.POZIOM_SPR ZADANIE_POZIOM_SPR, 
			XP_ZADANIE_GRUPY.ZAKRES_SPR GRUPA_ZAKRES_SPR, XP_ZADANIE_GRUPY.POZIOM_SPR GRUPA_POZIOM_SPR, 
			XP_ZADANIE_GRUPY.ID GRUPA_ID,
			UTW_DATE , MOD_DATE, 
			IMIE, NAZWISKO
		from 
			XP_ZADANIE, XP_OSOBY, XP_ZADANIE_GRUPY
		where 
			AUTOR = XP_OSOBY.ID and 
			XP_ZADANIE_GRUPY.ID_ZAD = XP_ZADANIE.ID and
			XP_ZADANIE_GRUPY.GR_NR = '" . $gr . "' and
			NALEZY = 'Y' and
			XP_ZADANIE.ZAJ_CYKLI = '" . $cyk . "' and
			XP_ZADANIE.ID = '" . $id . "'";

		$q = new CQuery($sel);
		//$ala1 = $q->num_rows();
		//$ala2 = $id;
		//$ala3 = $cyk;
		//$ala4 = $gr;
		//print("$ala1;$ala2;$ala3;$ala4");
		if ($q->num_rows() == 1) {
			$arr = $q->fetch_array();
			$sess->set("Azadanie", array(	"id" => $id,
							"nr" => $arr["NUMER_ZAD"], 
							"url" => $arr["LINK_URL"], 
							"tm1" => $arr["TERMIN1"], 
							"nz" => $arr["NAZWA"], 
							"tm2" => $arr["TERMIN2"], 
							"pb" => $arr["POBLAZANIE"], 
							"zad_zak" => $arr["ZADANIE_ZAKRES_SPR"], 
							"zad_poz" => $arr["ZADANIE_POZIOM_SPR"], 
							"gr_zak" => $arr["GRUPA_ZAKRES_SPR"], 
							"gr_id" => $arr["GRUPA_ID"], 
							"gr_poz" => $arr["GRUPA_POZIOM_SPR"], 
							"utw" => $arr["UTW_DATE"], 
							"mod" => $arr["MOD_DATE"], 
							"grtm" => $arr["GR_TERMIN1"], 
							"aut_im" => $arr["IMIE"], 
							"aut_nz" => $arr["NAZWISKO"]));
		}
		else {
		$ala1 = $q->num_rows();
		print("gdzies byl blad przy wstawianiu; kolumn: $ala1;");
			die();
		}
		$q->free();
	}

	/** Funkcja wyciągająca z bazy danych ,,malo'' danych o konkretnym zadaniu.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param int $id identyfikiator zadania
	 */
	function readLittleData($id) {
		global $sess;

		$sel =
		"select XP_ZADANIE.ID ZAD, NUMER_ZAD , NAZWA
		from
			XP_ZADANIE
		where
			ID = '" . $id . "'";

		$q = new CQuery($sel);
		if ($q->num_rows() == 1) {
			//print("ala");
			$arr = $q->fetch_array();
			$sess->set("Azadanie", array(	"id" => $id,
							"nr" => $arr["NUMER_ZAD"], 
							"nz" => $arr["NAZWA"]));
		}
		else {
			die();
		}
		$q->free();
	}

	/** Funkcja wyciągająca z bazy danych dane do zmodyfikowania (aby je wyswietlic w formularzu).
	 * @param int $id identyfikiator zadania
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function readModData($id) {
		global $sess;

		$sel =
		"select ID, GR_TERMIN1, NALEZY, POZIOM_SPR, ZAKRES_SPR
		from
			XP_ZADANIE_GRUPY
		where
			ID = '" . $id . "'";

		$q = new CQuery($sel);
		//print($id);
		if ($q->num_rows() == 1) {
			//print("ala");
			$arr = $q->fetch_array();
			$sess->set("Amod", array(	"i" => $arr["ID"],
							"tm" => $arr["GR_TERMIN1"], 
							"nal" => $arr["NALEZY"], 
							"poz" => $arr["POZIOM_SPR"], 
							"zak" => $arr["ZAKRES_SPR"]));
		}
		else {
			die();
		}
		$q->free();
	}

	/** Funkcja wstawiajaca do bazy danych polaczenie zadania z grupa.
	 *
	 * Początkowo dane są wstawiane domyślnie (lub przy incie 0).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function insertGroup($ng,$nz) {
		global $sess;

		//print("$ng;$nz");
		$sel =
		"insert into XP_ZADANIE_GRUPY values (0, '" . $ng . "', '" . $nz . "',NULL,'Y',0,0)";

		$q = new CQuery($sel);//jak sprawdzic poprawnosc
		//czy to dobrze
		//$q->free();
		return 'x';
	}

	/** Funkcja zmieniajaca dane polaczenia zadania z grupa.
	 *
	 * Parametry to wiele wartości daty itd. Dość dziwne zastosowanie funkcji DATE_ADD.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function changeGroup($zg,  $year, $month, $day, $hour, $minutes, $seconds,  $nal,$poz,$zak) {
		global $sess;

//		print("$zg,$ter,$nal,$poz,$zak");
		$sel = 
		"update XP_ZADANIE_GRUPY set 
			GR_TERMIN1 =
		DATE_ADD(
		DATE_ADD(
		DATE_ADD(
		DATE_ADD(
			DATE_ADD(
				DATE_ADD(\"2000-01-01 00:00:00\", INTERVAL ('" . $year . "' - 2000) YEAR),
				INTERVAL ('" . $month . "' - 1) month
			),
			INTERVAL ('" . $day . "' - 1) day
		), INTERVAL ('" . $hour . "') hour
		), INTERVAL ('" . $minutes . "') minute
		), INTERVAL ('" . $seconds . "') second
		),
			NALEZY =	'" . $nal . "',
			POZIOM_SPR =	'" . $poz . "',
			ZAKRES_SPR =	'" . $zak . "'
		where
			ID = '" . $zg . "'";

		$q = new CQuery($sel);//jak sprawdzic poprawnosc
		//$q->free();
		return 'x';
	}

	/** Funkcja wyciągająca z bazy danych dane raportu na temat konkretnego zadania (danej grupy). 
	 *
	 * Jeśli raport juz jest sesji to nie jest pobierany ponownie. Sąpobierane wszystkie możliwe dane raportu.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function readRaportData($id, $gr, $cyk, $prze, $cngry, $cgry) {
		global $sess;

		$test = &$sess->get("Araport");
		if (isset($test)) {
			if (($gr == $test['gr']) && ($cyk == $test['cyk']) && ($id == $test['id'])) {
				//print("return<br>");
				return;
			}
			else {
				$sess->del("Azadanie_raport");
				$sess->del("Araport");
			}
		}

		//print ($cyk);
		$sess->set("Araport", array('gr'=>$gr,'cyk'=>$cyk,'id'=>$id));

		$sel =
		"select 
			OSOBY1.ID STUDENT1, OSOBY2.ID STUDENT2 ,
			DIFF1, DIFF2, MOD1, MOD2, MOD3, WC,
			OSOBY1.IMIE IMIE1, OSOBY1.NAZWISKO NAZWISKO1, OSOBY1.EMAIL EMAIL1,
			OSOBY2.IMIE IMIE2, OSOBY2.NAZWISKO NAZWISKO2, OSOBY2.EMAIL EMAIL2, 
			XP_PROWADZACY_GRUP.GR_NR KTO, ZAD_GR2.GR_NR KTO2, ZAD_GR1.GR_NR KTO1,
			XP_PLAGIAT.OPIS OP_PLAG, XP_PLAGIAT.ID IDENT,
			PROWADZACY.IMIE IMIE3, PROWADZACY.NAZWISKO NAZWISKO3, PROWADZACY.EMAIL EMAIL3,
			XP_ZADANIE.NUMER_ZAD NR_ZAD, XP_ZADANIE.NAZWA NZ_ZAD			
		from
			XP_ZADANIE_GRUPY ZAD_GR1, XP_ZADANIE_GRUPY ZAD_GR2, 
			XP_ODDANE_PRACE ODDANE1, XP_ODDANE_PRACE ODDANE2, 
			XP_OSOBY_GRUP OS_GR1, XP_OSOBY_GRUP OS_GR2, XP_OSOBY OSOBY1, XP_OSOBY OSOBY2, 
			XP_OSOBY PROWADZACY, XP_PROWADZACY_GRUP, XP_ZADANIE, XP_PLAGIAT
		where
			XP_ZADANIE.ID = '" . $id . "' and XP_ZADANIE.ZAJ_CYKLI = '" . $cyk . "' and
			OS_GR1.ZAJ_CYK_ID = '" . $cyk . "' and
			OS_GR2.ZAJ_CYK_ID = '" . $cyk . "' and
			((ZAD_GR1.GR_NR = '" . $gr . "' and XP_PROWADZACY_GRUP.GR_NR = ZAD_GR2.GR_NR)
			or 
			(ZAD_GR2.GR_NR = '" . $gr . "' and XP_PROWADZACY_GRUP.GR_NR = ZAD_GR1.GR_NR)) and
			ZAD_GR1.ID_ZAD = XP_ZADANIE.ID and
			ZAD_GR2.ID_ZAD = XP_ZADANIE.ID and
			ODDANE1.ID_ZAD = XP_ZADANIE.ID and
			ODDANE2.ID_ZAD = XP_ZADANIE.ID and
			ODDANE1.ID_STUD = OSOBY1.ID and
			ODDANE2.ID_STUD = OSOBY2.ID and
			XP_PLAGIAT.ID_ZAD1 = ODDANE1.ID and 
			XP_PLAGIAT.ID_ZAD2 = ODDANE2.ID and
			OS_GR1.OS_ID = OSOBY1.ID and
			OS_GR2.OS_ID = OSOBY2.ID and
			ZAD_GR1.GR_NR = OS_GR1.GR_NR and
			ZAD_GR2.GR_NR = OS_GR2.GR_NR and
			PROWADZACY.ID = XP_PROWADZACY_GRUP.PRAC_ID and
			XP_PROWADZACY_GRUP.ZAJ_CYK_ID = XP_ZADANIE.ZAJ_CYKLI";

		$q = new CQuery($sel);
		$sess->set("Azadanie_raport", array());
		if ($q->num_rows()) {
			while ($arr = $q->fetch_array()) {
				$sess->setTab("Azadanie_raport", $arr["IDENT"],
					array(	"im1" => $arr["IMIE1"], 
						"im2" => $arr["IMIE2"], 
						"im3" => $arr["IMIE3"], 
						"nz1" => $arr["NAZWISKO1"], 
						"nz2" => $arr["NAZWISKO2"], 
						"nz3" => $arr["NAZWISKO3"], 
						"st1" => $arr["STUDENT1"], 
						"st2" => $arr["STUDENT2"], 
						"em1" => $arr["EMAIL1"], 
						"em2" => $arr["EMAIL2"], 
						"em3" => $arr["EMAIL3"], 
						"gr2" => $arr["KTO2"], 
						"gr1" => $arr["KTO1"], 
						"kto" => $arr["KTO"], 
						"md1" => $arr["MOD1"], 
						"md2" => $arr["MOD2"], 
						"md3" => $arr["MOD3"], 
						"wc" => $arr["WC"], 
						"df1" => $arr["DIFF1"], 
						"df2" => $arr["DIFF2"], 
						"op" => $arr["OP_PLAG"], 
						"nrzad" => $arr["NR_ZAD"], 
						"nzzad" => $arr["NZ_ZAD"]));
			}
		}
		//print ("<BR>".(count ($sess->get("Azadanie_raport")))."<BR>");
		$q->free();
	}

?>
