Newer
Older
<?php defined('SYSPATH') || die('No direct script access.');
private $ID;
public function getID() {
return $this->ID;
}
public static function with($id) {
$g = new self();
public static function findOrCreate($gradeID, $groupNum, $specialization, $facultyID, $year, $form) {
$sql = 'SELECT * FROM CreateGroup(:gradeID, :groupNum, :specialization, :facultyID, :year, :form) AS "ID"';
$id = DB::query(Database::SELECT, $sql)
->param(':gradeID', $gradeID)
->param(':groupNum', (int)$groupNum)
->param(':specialization', $specialization)
->param(':year', $year)
->execute()->get('ID');
if ($id <= 0) {
return null;
}
return Model_Group::with((int)$id);
}
public static function find($gradeID, $groupNum, $formID, $facultyID) {
$sql = 'SELECT * FROM FindGroup(:gradeID, :groupNum, :facultyID, :form ) AS "ID"';
$id = DB::query(Database::SELECT, $sql)
->param(':gradeID', $gradeID)
->param(':groupNum', (int)$groupNum)
->param(':facultyID', $facultyID)
->param(':form', $formID)
->execute()->get('ID');
if ($id <= 0) {
return null;
}
return $id;
}
public function getDisciplines($lazy = true, $semesterID = null, $showglobal = false) {
$semesterID = $semesterID ?: User::instance()->SemesterID;
$sql = 'SELECT * FROM GetDisciplinesForGroup(:id, :semesterID, :showglobal)';
->param(':semesterID', $semesterID)
->param(':showglobal', $showglobal)
$list = [];
foreach ($query as $data)
$list[] = new Model_Discipline($data, true, $lazy);
return $list;
public function getDisciplinesForExport($semesterID = null) {
$semesterID = $semesterID ?: User::instance()->SemesterID;
$sql = 'SELECT * FROM GetDisciplinesForExport(:id, :semesterID)';
$query = DB::query(Database::SELECT, $sql)
->param(':id', $this->ID)
->param(':semesterID', $semesterID)
->execute()->as_array();
$query = Arr::groupByUniqueKey('ID', $query);
forEach($query as &$discipline) {
$discipline["lastExportDate"] = $this->getDisciplineFormExportDate($discipline["ID"], $semesterID);
$discipline["lastExportError"] = $this->getDisciplineFormExportError($discipline["ID"], $semesterID);
$discipline["isOutdated"] = $this->isDisciplineFormOutdated($discipline["ID"], $semesterID);
return $query;
}
public function getDisciplineFormExportDate($disciplineID, $semesterID = null) {
$semesterID = $semesterID ?: User::instance()->SemesterID;
$sql = 'SELECT * FROM GetFormExportDate(:disciplineID, :id, :semesterID) as "Date"';
$date = DB::query(Database::SELECT, $sql)
->param(':disciplineID', $disciplineID)
->param(':id', $this->ID)
->param(':semesterID', $semesterID)
->execute()->get('Date');
return $date;
}
public function getDisciplineFormExportError($disciplineID, $semesterID = null) {
$semesterID = $semesterID ?: User::instance()->SemesterID;
$sql = 'SELECT * FROM IsFormExportFailed(:disciplineID, :id, :semesterID) as "Error"';
$error = DB::query(Database::SELECT, $sql)
->param(':disciplineID', $disciplineID)
->param(':id', $this->ID)
->param(':semesterID', $semesterID)
->execute()->get('Error');
return $error;
}
public function isDisciplineFormOutdated($disciplineID, $semesterID = null) {
$semesterID = $semesterID ?: User::instance()->SemesterID;
$sql = 'SELECT * FROM IsFormOutdated(:disciplineID, :id, :semesterID) as "Count"';
$newGradesCount = DB::query(Database::SELECT, $sql)
->param(':disciplineID', $disciplineID)
->param(':id', $this->ID)
->param(':semesterID', $semesterID)
->execute()->get('Count');
if ($newGradesCount === 0) {
return false;
} else {
return true;
}
}