ok
Direktori : /home2/selectio/public_html/bharath/application/models/ |
Current File : /home2/selectio/public_html/bharath/application/models/Subjectgroup_model.php |
<?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); } class Subjectgroup_model extends MY_Model { public function __construct() { parent::__construct(); $this->current_session = $this->setting_model->getCurrentSession(); } /** * This funtion takes id as a parameter and will fetch the record. * If id is not provided, then it will fetch all the records form the table. * @param int $id * @return mixed */ public function get($classid = null) { $this->db->select('class_sections.id,class_sections.section_id,sections.section'); $this->db->from('class_sections'); $this->db->join('sections', 'sections.id = class_sections.section_id'); $this->db->where('class_sections.class_id', $classid); $this->db->order_by('class_sections.id'); $query = $this->db->get(); return $query->result_array(); } public function update($data) { if (isset($data['id'])) { $this->db->where('id', $data['id']); $this->db->update('subject_group_subjects', $data); } } public function check_data_exists($data) { $this->db->where('name', $data); $this->db->where('session_id', $this->current_session); $query = $this->db->get('subject_groups'); if ($query->num_rows() > 0) { return $query->row(); } else { return false; } } public function class_exists($str) { $name = $this->security->xss_clean($str); $res = $this->check_data_exists($name); if ($res) { $id = $this->input->post('id'); if (isset($id)) { if ($res->id == $id) { return true; } } $this->form_validation->set_message('class_exists', $this->lang->line('already_exists')); return false; } else { return true; } } public function edit($data, $delete_sections, $add_sections, $delete_subjects, $add_subjects) { $this->db->trans_begin(); if (isset($data['id'])) { $this->db->where('id', $data['id']); $this->db->update('subject_groups', $data); $subject_group_id = $data['id']; } if (!empty($add_sections)) { $section_group_array = array(); foreach ($add_sections as $section_group_key => $section_group_value) { $sections_array = array( 'subject_group_id' => $subject_group_id, 'class_section_id' => $section_group_value, 'session_id' => $this->setting_model->getCurrentSession(), ); $section_group_array[] = $sections_array; } $this->db->insert_batch('subject_group_class_sections', $section_group_array); } if (!empty($add_subjects)) { $subject_group_subject_Array = array(); foreach ($add_subjects as $sub_group_key => $sub_group_value) { $vehicle_array = array( 'subject_group_id' => $subject_group_id, 'subject_id' => $sub_group_value, 'session_id' => $this->setting_model->getCurrentSession(), ); $subject_group_subject_Array[] = $vehicle_array; } $this->db->insert_batch('subject_group_subjects', $subject_group_subject_Array); } if (!empty($delete_sections)) { $this->db->where('subject_group_id', $data['id']); $this->db->where_in('class_section_id', $delete_sections); $this->db->delete('subject_group_class_sections'); } if (!empty($delete_subjects)) { $this->db->where('subject_group_id', $data['id']); $this->db->where_in('subject_id', $delete_subjects); $this->db->delete('subject_group_subjects'); } // $section_group_array = array(); // foreach ($section_group as $section_group_key => $section_group_value) { // $sections_array = array( // 'subject_group_id' => $subject_group_id, // 'class_section_id' => $section_group_value, // 'session_id' => $this->setting_model->getCurrentSession() // ); // $section_group_array[] = $sections_array; // } // $this->db->insert_batch('subject_group_class_sections', $section_group_array); if ($this->db->trans_status() === false) { $this->db->trans_rollback(); } else { $this->db->trans_commit(); } } public function add($data, $subject_group, $section_group) { $this->db->trans_start(); # Starting Transaction $this->db->trans_strict(false); # See Note 01. If you wish can remove as well //=======================Code Start=========================== if (isset($data['id'])) { $this->db->where('id', $data['id']); $this->db->update('subject_groups', $data); $subject_group_id = $data['id']; $message = UPDATE_RECORD_CONSTANT." On subject groups id ".$data['id']; $action = "Update"; $record_id = $data['id']; $this->log($message, $record_id, $action); //======================Code End============================== $this->db->trans_complete(); # Completing transaction /*Optional*/ if ($this->db->trans_status() === false) { # Something went wrong. $this->db->trans_rollback(); return false; } else { //return $return_value; } } else { $this->db->insert('subject_groups', $data); $subject_group_id = $this->db->insert_id(); $message = INSERT_RECORD_CONSTANT." On subject groups id ".$subject_group_id; $action = "Insert"; $record_id = $subject_group_id; $this->log($message, $record_id, $action); //======================Code End============================== $this->db->trans_complete(); # Completing transaction /*Optional*/ if ($this->db->trans_status() === false) { # Something went wrong. $this->db->trans_rollback(); return false; } else { //return $return_value; } } $subject_group_subject_Array = array(); foreach ($subject_group as $sub_group_key => $sub_group_value) { $vehicle_array = array( 'subject_group_id' => $subject_group_id, 'subject_id' => $sub_group_value, 'session_id' => $this->setting_model->getCurrentSession(), ); $subject_group_subject_Array[] = $vehicle_array; } $this->db->insert_batch('subject_group_subjects', $subject_group_subject_Array); $section_group_array = array(); foreach ($section_group as $section_group_key => $section_group_value) { $sections_array = array( 'subject_group_id' => $subject_group_id, 'class_section_id' => $section_group_value, 'session_id' => $this->setting_model->getCurrentSession(), ); $section_group_array[] = $sections_array; } $this->db->insert_batch('subject_group_class_sections', $section_group_array); } public function getDetailbyClassSection($class_id, $section_id) { $this->db->select('class_sections.*,subject_group_subjects.class,sections.section')->from('class_sections'); $this->db->where('class_id', $class_id); $this->db->where('section_id', $section_id); $this->db->join('subject_group_subjects', 'subject_group_subjects.id = class_sections.class_id'); $this->db->where('class_sections.class_id', $class_id); $this->db->join('sections', 'sections.id = class_sections.section_id'); $this->db->where('class_sections.section_id', $section_id); $query = $this->db->get(); return $query->row_array(); } public function getByID($id = null) { $this->db->select('subject_groups.*')->from('subject_groups'); $this->db->where('subject_groups.session_id', $this->current_session); if ($id != null) { $this->db->where('subject_groups.id', $id); } else { $this->db->order_by('subject_groups.id', 'DESC'); } $query = $this->db->get(); $subject_groups = $query->result(); if (!empty($subject_groups)) { foreach ($subject_groups as $subject_group_key => $subject_group_value) { $subject_groups[$subject_group_key]->group_subject = $this->getGroupsubjects($subject_group_value->id); $subject_groups[$subject_group_key]->sections = $this->getClassSectionByGroup($subject_group_value->id); } } return $subject_groups; } public function getClassSectionByGroup($subject_group_id) { $sql = "SELECT subject_group_class_sections.*,classes.id as `class_id`,classes.class,sections.id as `section_id`,sections.section FROM `subject_group_class_sections` INNER JOIN class_sections on class_sections.id=subject_group_class_sections.class_section_id INNER JOIN classes on classes.id=class_sections.class_id INNER join sections on sections.id=class_sections.section_id WHERE subject_group_class_sections.session_id=" . $this->db->escape($this->current_session) . " and subject_group_id=" . $this->db->escape($subject_group_id); $query = $this->db->query($sql); return $query->result(); } public function getGroupsubjects($subject_group_id) { $class_id=""; $subject_groupid_condition=""; $userdata = $this->customlib->getUserData(); $role_id = $userdata["role_id"]; if (isset($role_id) && ($userdata["role_id"] == 2) && ($userdata["class_teacher"] == "yes")) { if($userdata["class_teacher"] == 'yes') { $get_class=$this->teacher_model->get_classbysubject_group_id($subject_group_id); if(!empty($get_class)){ $class_id=$get_class[0]['class_id']; } $my_classes=$this->teacher_model->my_classes($userdata['id']); if(!empty($my_classes)){ if(in_array($class_id,$my_classes)){ $subject_groupid_condition=""; } }else{ $my_subjects=$this->teacher_model->get_subjectby_staffid($userdata['id']); $subject_groupid_condition=" and subject_group_subjects.id in(".$my_subjects['subject'].")"; } } } $sql = "SELECT subject_group_subjects.*,subjects.name,subjects.code,subjects.type FROM `subject_group_subjects` INNER JOIN subjects on subjects.id=subject_group_subjects.subject_id WHERE subject_group_id =" . $this->db->escape($subject_group_id) . " and session_id =" . $this->db->escape($this->current_session)."".$subject_groupid_condition." ORDER BY subjects.name"; //$this->db->order_by('subjects.name', 'ASC'); $query = $this->db->query($sql); return $query->result(); } public function remove($id) { $this->db->trans_start(); # Starting Transaction $this->db->trans_strict(false); # See Note 01. If you wish can remove as well //=======================Code Start=========================== $this->db->where('id', $id); $this->db->delete('subject_groups'); $message = DELETE_RECORD_CONSTANT." On subject groups id ".$id; $action = "Delete"; $record_id = $id; $this->log($message, $record_id, $action); $this->db->trans_complete(); if ($this->db->trans_status() === false) { return false; } else { return true; } } public function getSubjectgroupbyTeacherid($staff_id){ return $this->db->select('GROUP_CONCAT(subject_group_id) as subject_group_ids')->from('subject_timetable')->where('staff_id',$staff_id)->group_by('staff_id')->get()->result_array(); } public function getGroupByClassandSection($class_id, $section_id) { $return=true; $userdata = $this->customlib->getUserData(); $role_id = $userdata["role_id"]; $subject_groupid_condition=""; if (isset($role_id) && ($userdata["role_id"] == 2) && ($userdata["class_teacher"] == "yes")) { if($userdata["class_teacher"] == 'yes') { $subject_groupid=$this->subjectgroup_model->getSubjectgroupbyTeacherid($userdata['id']); $my_classes=$this->teacher_model->my_classes($userdata['id']); if(in_array($class_id,$my_classes)){ $subject_groupid_condition=""; }else{ if(!empty($subject_groupid)){ $subject_groupid_condition=" and subject_groups.id in(".$subject_groupid[0]['subject_group_ids'].")"; }else{ $return=false; } } } } if($return){ $sql = "SELECT subject_groups.name, subject_group_class_sections.* from subject_group_class_sections INNER JOIN class_sections on class_sections.id=subject_group_class_sections.class_section_id INNER JOIN subject_groups on subject_groups.id=subject_group_class_sections.subject_group_id WHERE class_sections.class_id=" . $this->db->escape($class_id) . " and class_sections.section_id=" . $this->db->escape($section_id) . " and subject_groups.session_id=" . $this->db->escape($this->current_session) . " ".$subject_groupid_condition." ORDER by subject_groups.id DESC"; $query = $this->db->query($sql); return $query->result_array(); }else{ return array(); } } public function getClassandSectionTimetable($class_id, $section_id) { $sql = "SELECT subject_group_class_sections.*,subject_group_subjects.id as `subject_group_id`,subject_group_subjects.subject_id,subjects.name,subjects.code,subject_timetable.day,subject_timetable.staff_id,subject_timetable.time_from,subject_timetable.time_to,subject_timetable.room_no,staff.name as `staff_name`,staff.surname FROM `class_sections` INNER JOIN subject_group_class_sections on subject_group_class_sections.class_section_id=class_sections.id INNER JOIN subject_group_subjects on subject_group_subjects.subject_group_id=subject_group_class_sections.subject_group_id INNER JOIN subjects on subjects.id=subject_group_subjects.subject_id INNER JOIN subject_timetable on subject_timetable.subject_group_subject_id=subject_group_subjects.id inner JOIN staff on staff.id= subject_timetable.staff_id WHERE class_sections.class_id=" . $this->db->escape($class_id) . " and class_sections.section_id=" . $this->db->escape($section_id) . " and subject_group_class_sections.session_id=". $this->db->escape($this->current_session); $query = $this->db->query($sql); return $query->result(); } public function check_section_exists($str) { $sections = $this->input->post('sections'); if(!isset($sections)){ return true; } $id = $this->input->post('id'); if (!isset($id)) { $id = 0; } if ($this->check_section_data_exists($sections, $id)) { $this->form_validation->set_message('check_section_exists', $this->lang->line('subjects_already_assigned')); return FALSE; } else { return TRUE; } } function check_section_data_exists($sections, $id) { $this->db->where('session_id', $this->current_session); $this->db->where_in('class_section_id', $sections); $this->db->where('subject_group_id !=', $id); $query = $this->db->get('subject_group_class_sections'); if ($query->num_rows() > 0) { return TRUE; } else { return FALSE; } } }