| Server IP : 188.114.97.2 / Your IP : 104.23.197.231 Web Server : Apache/2.4.59 (Debian) System : Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : edlftp ( 1002) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/nicolasj/www/sms.formationlangues.be/application/models/ |
Upload File : |
<?php
class Parent_model extends CI_Model
{
public function get_entry(int $id, bool $add_user = false): ?stdClass
{
if ($id <= 0) {
return null;
}
$result = $this->db->get_where('parent', ['parent_id' => $id])->result();
if (!empty($result) && !empty($result[0])) {
if ($add_user) {
$this->load->model('users_model');
$result[0]->user = $this->users_model->get_entry($id);
}
return $result[0];
}
return null;
}
public function update_entry(int $id, array $fields): bool
{
if ($id <= 0 || empty($fields)) {
return false;
}
return $this->db->update('parent', $fields, ['parent_id' => $id]);
}
public function get_students_parent(array $student_ids): array
{
if (empty($student_ids)) {
return [];
}
$student_list_ids = implode(',', $student_ids);
$query = $this->db->query(
"SELECT pu.first_name, pu.last_name, pu.email, s.student_id FROM student s
INNER JOIN user pu ON s.parent_id = pu.user_id
WHERE s.student_id IN ($student_list_ids)
GROUP BY pu.user_id"
);
$parents = $query->result();
$parents_tree = [];
foreach ($parents as $p) {
$parents_tree[(int) $p->student_id] = $p;
}
return $parents_tree;
}
public function listing_all_parents(): array
{
$query = $this->db->query(
"SELECT p.*, u.first_name, u.last_name, u.email,
GROUP_CONCAT(DISTINCT CONCAT('{ \"id\": ', c.ID, ', \"course_name\": \"', c.CourseName, '\"}') SEPARATOR ',') AS children_courses_json,
GROUP_CONCAT(DISTINCT CONCAT('{ \"id\": ', su.user_id, ', \"first_name\": \"', su.first_name, '\", \"last_name\": \"', su.last_name, '\"}') SEPARATOR ',') AS children_json
FROM `parent` p
LEFT JOIN user u ON p.parent_id = u.user_id
LEFT JOIN student s ON p.parent_id = s.parent_id
LEFT JOIN user su ON s.student_id = su.user_id
LEFT JOIN course_student_new cs ON s.student_id = cs.student_id
LEFT JOIN course_new c ON cs.course_id = c.ID
WHERE u.Archived != 1
GROUP BY p.parent_id"
);
$parents = $query->result();
foreach ($parents as &$parent) {
$parent->children = json_decode("[{$parent->children_json}]");
$parent->children_courses = json_decode("[{$parent->children_courses_json}]");
}
return $parents;
}
}