ok
Direktori : /home2/selectio/www/geniusgroove.in/crm/application/models/ |
Current File : //home2/selectio/www/geniusgroove.in/crm/application/models/Studentfee_model.php |
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Studentfee_model extends MY_Model { public function __construct() { parent::__construct(); $this->current_session = $this->setting_model->getCurrentSession(); $this->current_date = $this->setting_model->getDateYmd(); } public function getStudentFeesArray($student_session_id, $ids = null) { $query = "SELECT feemasters.id as feemastersid, feemasters.amount as amount,IFNULL(student_fees.id, 'xxx') as invoiceno,IFNULL(student_fees.payment_mode, 'xxx') as payment_mode,IFNULL(student_fees.amount_discount, 'xxx') as discount,IFNULL(student_fees.amount_fine, 'xxx') as fine, IFNULL(student_fees.date, 'xxx') as date,feetype.type ,feecategory.category FROM feemasters LEFT JOIN (select student_fees.id,student_fees.payment_mode,student_fees.feemaster_id,student_fees.amount_fine,student_fees.amount_discount,student_fees.date,student_fees.student_session_id from student_fees , student_session where student_fees.student_session_id=student_session.id and student_session.id=" . $this->db->escape($student_session_id) . ") as student_fees ON student_fees.feemaster_id=feemasters.id LEFT JOIN feetype ON feemasters.feetype_id = feetype.id LEFT JOIN feecategory ON feetype.feecategory_id = feecategory.id where feemasters.id IN (" . $ids . ")"; $query = $this->db->query($query); return $query->result_array(); } public function getCollectBy() { return $this->db->select('id,name,surname')->from('staff')->get()->result_array(); } public function getTotalCollectionBydate($date) { $sql = "SELECT sum(amount) as `amount`, SUM(amount_discount) as `amount_discount` ,SUM(amount_fine) as `amount_fine` FROM `student_fees` where date=" . $this->db->escape($date); $query = $this->db->query($sql); return $query->row(); } public function getStudentFees($id = null) { $this->db->select('feecategory.category,student_fees.id as `invoiceno`,student_fees.date,student_fees.id,student_fees.amount,student_fees.amount_discount,student_fees.amount_fine,student_fees.created_at,feetype.type')->from('student_fees'); $this->db->join('student_session', 'student_session.id = student_fees.student_session_id'); $this->db->join('feemasters', 'feemasters.id = student_fees.feemaster_id'); $this->db->join('feetype', 'feetype.id = feemasters.feetype_id'); $this->db->join('feecategory', 'feetype.feecategory_id = feecategory.id'); $this->db->where('student_session.student_id', $id); $this->db->where('student_session.session_id', $this->current_session); $this->db->order_by('student_fees.id'); $query = $this->db->get(); return $query->result_array(); } public function getFeeByInvoice($id = null) { $this->db->select('feecategory.category,student_fees.date,student_fees.payment_mode,student_fees.id as `student_fee_id`,student_fees.amount,student_fees.amount_discount,student_fees.amount_fine,student_fees.created_at,classes.class,sections.section,feetype.type,students.id,students.admission_no , students.roll_no,students.admission_date,students.firstname,students.middlename, students.lastname,students.image, students.mobileno, students.email ,students.state , students.city , students.pincode , students.religion,students.dob ,students.current_address, students.permanent_address,students.category_id, students.adhar_no,students.samagra_id,students.bank_account_no,students.bank_name, students.ifsc_code , students.guardian_name, students.guardian_relation,students.guardian_phone,students.guardian_address,students.is_active ,students.created_at ,students.updated_at,students.rte')->from('student_fees'); $this->db->join('student_session', 'student_session.id = student_fees.student_session_id'); $this->db->join('feemasters', 'feemasters.id = student_fees.feemaster_id'); $this->db->join('feetype', 'feetype.id = feemasters.feetype_id'); $this->db->join('classes', 'student_session.class_id = classes.id'); $this->db->join('feecategory', 'feetype.feecategory_id = feecategory.id'); $this->db->join('sections', 'sections.id = student_session.section_id'); $this->db->join('students', 'students.id = student_session.student_id'); $this->db->where('student_fees.id', $id); $this->db->where('student_session.session_id', $this->current_session); $this->db->order_by('student_fees.id'); $query = $this->db->get(); return $query->result_array(); } public function getTodayStudentFees() { $this->db->select('student_fees.date,student_fees.id,student_fees.amount,student_fees.amount_discount,student_fees.amount_fine,student_fees.created_at,classes.class,sections.section,students.firstname,students.middlename,students.lastname,students.admission_no,students.roll_no,students.dob,students.guardian_name,feetype.type')->from('student_fees'); $this->db->join('student_session', 'student_session.id = student_fees.student_session_id'); $this->db->join('feemasters', 'feemasters.id = student_fees.feemaster_id'); $this->db->join('feetype', 'feetype.id = feemasters.feetype_id'); $this->db->join('classes', 'student_session.class_id = classes.id'); $this->db->join('sections', 'sections.id = student_session.section_id'); $this->db->join('students', 'students.id = student_session.student_id'); $this->db->where('student_fees.date', $this->current_date); $this->db->where('student_session.session_id', $this->current_session); $this->db->order_by('student_fees.id'); $query = $this->db->get(); return $query->result_array(); } public function remove($id, $sub_invoice) { $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); $q = $this->db->get('student_fees_deposite'); if ($q->num_rows() > 0) { $result = $q->row(); $a = json_decode($result->amount_detail, true); unset($a[$sub_invoice]); if (!empty($a)) { $data['amount_detail'] = json_encode($a); $this->db->where('id', $id); $this->db->update('student_fees_deposite', $data); $message = UPDATE_RECORD_CONSTANT . " On student fees deposite id " . $id; $action = "Update"; $record_id = $id; $this->log($message, $record_id, $action); } else { $this->db->where('id', $id); $this->db->delete('student_fees_deposite'); $message = DELETE_RECORD_CONSTANT . " On student fees deposite id " . $id; $action = "Delete"; $record_id = $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; } } public function add($data) { $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('student_fees', $data); $message = UPDATE_RECORD_CONSTANT . " On student fees id " . $data['id']; $action = "Update"; $record_id = $id = $data['id']; $this->log($message, $record_id, $action); } else { $this->db->insert('student_fees', $data); $id = $this->db->insert_id(); $message = INSERT_RECORD_CONSTANT . " On student fees id " . $id; $action = "Insert"; $record_id = $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 $id; } } public function getMultipleDueFees($feegroups = array(), $fee_groups_feetypes = array(),$transport_groups_feetype_array=array(), $class_id = NULL, $section_id = NULL) { $module=$this->module_model->getPermissionByModulename('transport'); if($module['is_active']){ if (!empty($transport_groups_feetype_array)) { $this->db->select('`student_fees_deposite`.*,IFNULL(student_fees_deposite.amount_detail, 0) as amount_detail,0 as previous_balance_amount,route_pickup_point.fees as amount,students.firstname,students.middlename,students.lastname,student_session.class_id,classes.class,sections.section,student_session.section_id,student_session.student_id,"" as fee_group,"Transport Fees" as name, "Transport Fees" as `fee_type`, transport_feemaster.month as `fee_code`,0 as is_system,student_transport_fees.student_session_id,students.admission_no, `student_session`.`id` as `student_session_id`,0 as is_system,`students`.`id`, `classes`.`class`, `sections`.`id` AS `section_id`, `sections`.`section`, `students`.`id`, `students`.`admission_no`, `students`.`roll_no`, `students`.`admission_date`, `students`.`firstname`,`students`.`middlename`, `students`.`lastname`, `students`.`image`, `students`.`mobileno`, `students`.`email`, `students`.`state`, `students`.`city`, `students`.`pincode`, `students`.`religion`, `students`.`dob`, `students`.`current_address`, `students`.`permanent_address`, IFNULL(students.category_id, 0) as `category_id`, IFNULL(categories.category, "") as `category`, `students`.`adhar_no`, `students`.`samagra_id`, `students`.`bank_account_no`, `students`.`bank_name`, `students`.`ifsc_code`, `students`.`guardian_name`, `students`.`guardian_relation`, `students`.`guardian_phone`, `students`.`guardian_address`, `students`.`is_active`, `students`.`created_at`, `students`.`updated_at`, `students`.`father_name`, `students`.`rte`, `students`.`gender`')->from('student_transport_fees'); $this->db->join('student_fees_deposite', 'student_transport_fees.id = `student_fees_deposite`.`student_transport_fee_id`','left'); $this->db->join('transport_feemaster', '`student_transport_fees`.`transport_feemaster_id` = `transport_feemaster`.`id`','left'); $this->db->join('student_session', 'student_session.id= `student_transport_fees`.`student_session_id`', 'INNER'); $this->db->join('route_pickup_point', 'route_pickup_point.id = student_transport_fees.route_pickup_point_id'); $this->db->join('classes', 'classes.id= student_session.class_id'); $this->db->join('sections', 'sections.id= student_session.section_id'); $this->db->join('students', 'students.id=student_session.student_id'); $this->db->join('categories', '`students`.`category_id` = `categories`.`id`','left'); $this->db->where('student_session.session_id',$this->current_session); $this->db->where_in('transport_feemaster.id',$transport_groups_feetype_array); $this->db->order_by('student_fees_deposite.id','desc'); if($class_id!=null){ $this->db->where('student_session.class_id',$class_id); } if($section_id!=null){ $this->db->where('student_session.section_id',$section_id); } $query1 = $this->db->get(); $result_value1 = $query1->result_array(); }else { $result_value1 = array(); } }else{ $result_value1 = array(); } $where_condition=array(); if ($class_id !=NULL){ $where_condition[]= " AND student_session.class_id=".$class_id; } if ($section_id !=NULL){ $where_condition[]= "student_session.section_id=".$section_id; } $where_condition_string= implode(" AND ", $where_condition); if (!empty($feegroups)) { $query = "SELECT IFNULL(student_fees_deposite.id, 0) as student_fees_deposite_id, IFNULL(student_fees_deposite.fee_groups_feetype_id, 0) as fee_groups_feetype_id, IFNULL(student_fees_deposite.amount_detail, 0) as amount_detail, student_fees_master.id as `fee_master_id`, student_fees_master.amount as `fee_master_amount`,fee_groups_feetype.feetype_id ,fee_groups_feetype.amount,fee_groups_feetype.due_date, `classes`.`id` AS `class_id`, `student_session`.`id` as `student_session_id`, `students`.`id`, `classes`.`class`, `sections`.`id` AS `section_id`, `sections`.`section`, `students`.`id`, `students`.`admission_no`, `students`.`roll_no`, `students`.`admission_date`, `students`.`firstname`,`students`.`middlename`, `students`.`lastname`, `students`.`image`, `students`.`mobileno`, `students`.`email`, `students`.`state`, `students`.`city`, `students`.`pincode`, `students`.`religion`, `students`.`dob`, `students`.`current_address`, `students`.`permanent_address`, IFNULL(students.category_id, 0) as `category_id`, IFNULL(categories.category, '') as `category`, `students`.`adhar_no`, `students`.`samagra_id`, `students`.`bank_account_no`, `students`.`bank_name`, `students`.`ifsc_code`, `students`.`guardian_name`, `students`.`guardian_relation`, `students`.`guardian_phone`, `students`.`guardian_address`, `students`.`is_active`, `students`.`created_at`, `students`.`updated_at`, `students`.`father_name`, `students`.`rte`, `students`.`gender`,fee_groups.name as `fee_group` ,feetype.type as `fee_type`,feetype.code as `fee_code`,fee_groups.is_system FROM `student_fees_master` INNER JOIN fee_session_groups on fee_session_groups.id= student_fees_master.fee_session_group_id INNER JOIN fee_groups on fee_groups.id=fee_session_groups.fee_groups_id INNER JOIN fee_groups_feetype on fee_groups_feetype.fee_session_group_id=student_fees_master.fee_session_group_id and fee_groups_feetype.id in (".$fee_groups_feetypes.")INNER JOIN feetype on feetype.id=fee_groups_feetype.feetype_id LEFT JOIN student_fees_deposite on student_fees_deposite.student_fees_master_id=student_fees_master.id and student_fees_deposite.fee_groups_feetype_id=fee_groups_feetype.id INNER JOIN student_session on student_session.id=student_fees_master.student_session_id INNER JOIN students on students.id=student_session.student_id JOIN `classes` ON `student_session`.`class_id` = `classes`.`id` JOIN `sections` ON `sections`.`id` = `student_session`.`section_id` LEFT JOIN `categories` ON `students`.`category_id` = `categories`.`id` WHERE student_fees_master.fee_session_group_id in (".$feegroups.") AND `students`.`is_active` = 'yes' ".$where_condition_string." ORDER BY student_fees_master.id asc"; $query = $this->db->query($query); $result_value= $query->result_array(); }else{ $result_value=array(); } if(empty($result_value)){ $result_value2=$result_value1; }elseif(empty($result_value1)){ $result_value2=$result_value; }else{ $result_value2=array_merge($result_value,$result_value1); } return $result_value2; } public function getDueStudentFeesByDateClassSection( $class_id = NULL, $section_id = NULL , $date=NULL) { $where_condition=array(); if ($class_id !=NULL){ $where_condition[]= " AND student_session.class_id=".$class_id; } if ($section_id !=NULL){ $where_condition[]= "student_session.section_id=".$section_id; } if ($date !=NULL){ $where_condition[]= "fee_groups_feetype.due_date < " . $this->db->escape($date); } $where_condition_string= implode(" AND ", $where_condition); $query = "SELECT student_fees_master.amount as `previous_balance_amount`,IFNULL(student_fees_deposite.id, 0) as student_fees_deposite_id, IFNULL(student_fees_deposite.fee_groups_feetype_id, 0) as fee_groups_feetype_id, IFNULL(student_fees_deposite.amount_detail, 0) as amount_detail, student_fees_master.id as `fee_master_id`,fee_groups_feetype.feetype_id ,fee_groups_feetype.amount,fee_groups_feetype.due_date, `classes`.`id` AS `class_id`, `student_session`.`id` as `student_session_id`, `students`.`id`, `classes`.`class`, `sections`.`id` AS `section_id`, `sections`.`section`, `students`.`id`, `students`.`admission_no`, `students`.`roll_no`, `students`.`admission_date`, `students`.`firstname`,`students`.`middlename`, `students`.`lastname`, `students`.`image`, `students`.`mobileno`, `students`.`email`, `students`.`state`, `students`.`city`, `students`.`pincode`, `students`.`religion`, `students`.`dob`, `students`.`current_address`, `students`.`permanent_address`, IFNULL(students.category_id, 0) as `category_id`, IFNULL(categories.category, '') as `category`, `students`.`adhar_no`, `students`.`samagra_id`, `students`.`bank_account_no`, `students`.`bank_name`, `students`.`ifsc_code`, `students`.`guardian_name`, `students`.`guardian_relation`, `students`.`guardian_phone`, `students`.`guardian_address`, `students`.`is_active`, `students`.`created_at`, `students`.`updated_at`, `students`.`father_name`, `students`.`rte`, `students`.`gender`,fee_groups.name as `fee_group` ,feetype.type as `fee_type`,feetype.code as `fee_code` , fee_groups.is_system FROM `student_fees_master` INNER JOIN fee_session_groups on fee_session_groups.id= student_fees_master.fee_session_group_id INNER JOIN fee_groups on fee_groups.id=fee_session_groups.fee_groups_id INNER JOIN fee_groups_feetype on fee_groups_feetype.fee_session_group_id=student_fees_master.fee_session_group_id INNER JOIN feetype on feetype.id=fee_groups_feetype.feetype_id LEFT JOIN student_fees_deposite on student_fees_deposite.student_fees_master_id=student_fees_master.id and student_fees_deposite.fee_groups_feetype_id=fee_groups_feetype.id INNER JOIN student_session on student_session.id=student_fees_master.student_session_id INNER JOIN students on students.id=student_session.student_id JOIN `classes` ON `student_session`.`class_id` = `classes`.`id` JOIN `sections` ON `sections`.`id` = `student_session`.`section_id` LEFT JOIN `categories` ON `students`.`category_id` = `categories`.`id` WHERE `students`.`is_active` = 'yes' ".$where_condition_string." ORDER BY student_fees_master.id asc"; $query = $this->db->query($query); $result_value= $query->result_array(); $result_value1 = array(); $module=$this->module_model->getPermissionByModulename('transport'); if($module['is_active']){ $this->db->select('`student_fees_deposite`.*,IFNULL(student_fees_deposite.amount_detail, 0) as amount_detail,0 as previous_balance_amount,route_pickup_point.fees as amount,students.firstname,students.middlename,students.lastname,student_session.class_id,classes.class,sections.section,student_session.section_id,student_session.student_id,"" as fee_group,"Transport Fees" as name, "Transport Fees" as `fee_type`, transport_feemaster.month as `fee_code`,0 as is_system,student_transport_fees.student_session_id,students.admission_no, `student_session`.`id` as `student_session_id`,0 as is_system')->from('student_transport_fees'); $this->db->join('student_fees_deposite', 'student_transport_fees.id = `student_fees_deposite`.`student_transport_fee_id`','left'); $this->db->join('transport_feemaster', '`student_transport_fees`.`transport_feemaster_id` = `transport_feemaster`.`id`','left'); $this->db->join('student_session', 'student_session.id= `student_transport_fees`.`student_session_id`', 'INNER'); $this->db->join('route_pickup_point', 'route_pickup_point.id = student_transport_fees.route_pickup_point_id'); $this->db->join('classes', 'classes.id= student_session.class_id'); $this->db->join('sections', 'sections.id= student_session.section_id'); $this->db->join('students', 'students.id=student_session.student_id'); $this->db->where('student_session.session_id',$this->current_session); $this->db->order_by('student_fees_deposite.id','desc'); if($class_id!=null){ $this->db->where('student_session.class_id',$class_id); } if($section_id!=null){ $this->db->where('student_session.section_id',$section_id); } if($date!=null){ $this->db->where('transport_feemaster.due_date <', ($date)); } $query1 = $this->db->get(); $result_value1 = $query1->result_array(); }else{ $result_value1=array(); } if(empty($result_value)){ $result_value2=$result_value1; }elseif(empty($result_value1)){ $result_value2=$result_value; }else{ $result_value2=array_merge($result_value,$result_value1); } return $result_value2; } public function getDueStudentFees($feegroup_id = null, $fee_groups_feetype_id = null, $class_id = NULL, $section_id = NULL) { $where_condition=array(); if ($class_id !=NULL){ $where_condition[]= " AND student_session.class_id=".$class_id; } if ($section_id !=NULL){ $where_condition[]= "student_session.section_id=".$section_id; } $where_condition_string= implode(" AND ", $where_condition); $query = "SELECT IFNULL(student_fees_deposite.id, 0) as student_fees_deposite_id, IFNULL(student_fees_deposite.fee_groups_feetype_id, 0) as fee_groups_feetype_id, IFNULL(student_fees_deposite.amount_detail, 0) as amount_detail, student_fees_master.id as `fee_master_id`,fee_groups_feetype.feetype_id ,fee_groups_feetype.amount,fee_groups_feetype.due_date, `classes`.`id` AS `class_id`, `student_session`.`id` as `student_session_id`, `students`.`id`, `classes`.`class`, `sections`.`id` AS `section_id`, `sections`.`section`, `students`.`id`, `students`.`admission_no`, `students`.`roll_no`, `students`.`admission_date`, `students`.`firstname`,`students`.`middlename`, `students`.`lastname`, `students`.`image`, `students`.`mobileno`, `students`.`email`, `students`.`state`, `students`.`city`, `students`.`pincode`, `students`.`religion`, `students`.`dob`, `students`.`current_address`, `students`.`permanent_address`, IFNULL(students.category_id, 0) as `category_id`, IFNULL(categories.category, '') as `category`, `students`.`adhar_no`, `students`.`samagra_id`, `students`.`bank_account_no`, `students`.`bank_name`, `students`.`ifsc_code`, `students`.`guardian_name`, `students`.`guardian_relation`, `students`.`guardian_phone`, `students`.`guardian_address`, `students`.`is_active`, `students`.`created_at`, `students`.`updated_at`, `students`.`father_name`, `students`.`rte`, `students`.`gender` FROM `students` JOIN `student_session` ON `student_session`.`student_id` = `students`.`id` JOIN `classes` ON `student_session`.`class_id` = `classes`.`id` JOIN `sections` ON `sections`.`id` = `student_session`.`section_id` LEFT JOIN `categories` ON `students`.`category_id` = `categories`.`id` INNER JOIN student_fees_master on student_fees_master.student_session_id=student_session.id and student_fees_master.fee_session_group_id=" . $this->db->escape($feegroup_id) . " LEFT JOIN student_fees_deposite on student_fees_deposite.student_fees_master_id=student_fees_master.id and student_fees_deposite.fee_groups_feetype_id=" . $this->db->escape($fee_groups_feetype_id) . " INNER JOIN fee_groups_feetype on fee_groups_feetype.id = " . $this->db->escape($fee_groups_feetype_id) . " WHERE `student_session`.`session_id` = " . $this->current_session . " AND `students`.`is_active` = 'yes' ".$where_condition_string." ORDER BY `students`.`id`"; $query = $this->db->query($query); return $query->result_array(); } public function getDueFeeBystudent($class_id = null, $section_id = null, $student_id = null) { $query = "SELECT feemasters.id as feemastersid, feemasters.amount as amount,IFNULL(student_fees.id, 'xxx') as invoiceno,IFNULL(student_fees.amount_discount, 'xxx') as discount,IFNULL(student_fees.amount_fine, 'xxx') as fine,IFNULL(student_fees.payment_mode, 'xxx') as payment_mode,IFNULL(student_fees.date, 'xxx') as date,feetype.type ,feecategory.category,student_fees.description FROM feemasters LEFT JOIN (select student_fees.id,student_fees.feemaster_id,student_fees.payment_mode,student_fees.amount_fine,student_fees.amount_discount,student_fees.date,student_fees.student_session_id,student_fees.description from student_fees , student_session where student_fees.student_session_id=student_session.id and student_session.student_id=" . $this->db->escape($student_id) . " and student_session.class_id=" . $this->db->escape($class_id) . " and student_session.section_id=" . $this->db->escape($section_id) . ") as student_fees ON student_fees.feemaster_id=feemasters.id JOIN feetype ON feemasters.feetype_id = feetype.id JOIN feecategory ON feetype.feecategory_id = feecategory.id where feemasters.class_id=" . $this->db->escape($class_id) . " and feemasters.session_id=" . $this->db->escape($this->current_session); $query = $this->db->query($query); return $query->result_array(); } public function getDueFeeBystudentSection($class_id = null, $section_id = null, $student_session_id = null) { $query = "SELECT feemasters.id as feemastersid, feemasters.amount as amount,IFNULL(student_fees.id, 'xxx') as invoiceno,IFNULL(student_fees.amount_discount, 'xxx') as discount,IFNULL(student_fees.amount_fine, 'xxx') as fine, IFNULL(student_fees.date, 'xxx') as date,feetype.type ,feecategory.category FROM feemasters LEFT JOIN (select student_fees.id,student_fees.feemaster_id,student_fees.amount_fine,student_fees.amount_discount,student_fees.date,student_fees.student_session_id from student_fees , student_session where student_fees.student_session_id=student_session.id and student_session.id=" . $this->db->escape($student_session_id) . " ) as student_fees ON student_fees.feemaster_id=feemasters.id LEFT JOIN feetype ON feemasters.feetype_id = feetype.id LEFT JOIN feecategory ON feetype.feecategory_id = feecategory.id where feemasters.class_id=" . $this->db->escape($class_id) . " and feemasters.session_id=" . $this->db->escape($this->current_session); $query = $this->db->query($query); return $query->result_array(); } public function getFeesByClass($class_id = null, $section_id = null, $student_id = null) { $query = "SELECT feemasters.id as feemastersid, feemasters.amount as amount,IFNULL(student_fees.id, 'xxx') as invoiceno,IFNULL(student_fees.amount_discount, 'xxx') as discount,IFNULL(student_fees.amount_fine, 'xxx') as fine, IFNULL(student_fees.date, 'xxx') as date,feetype.type ,feecategory.category FROM feemasters LEFT JOIN (select student_fees.id,student_fees.feemaster_id,student_fees.amount_fine,student_fees.amount_discount,student_fees.date,student_fees.student_session_id from student_fees , student_session where student_fees.student_session_id=student_session.id and student_session.student_id=" . $this->db->escape($student_id) . " and student_session.class_id=" . $this->db->escape($class_id) . " and student_session.section_id=" . $this->db->escape($section_id) . ") as student_fees ON student_fees.feemaster_id=feemasters.id LEFT JOIN feetype ON feemasters.feetype_id = feetype.id LEFT JOIN feecategory ON feetype.feecategory_id = feecategory.id where feemasters.class_id=" . $this->db->escape($class_id) . " and feemasters.session_id=" . $this->db->escape($this->current_session); $query = $this->db->query($query); return $query->result_array(); } public function getFeeBetweenDate($start_date, $end_date) { $this->db->select('student_fees.date,student_fees.id,student_fees.amount,student_fees.amount_discount,student_fees.amount_fine,student_fees.created_at,students.rte,classes.class,sections.section,students.firstname,students.middlename,students.lastname,students.admission_no,students.roll_no,students.dob,students.guardian_name,feetype.type')->from('student_fees'); $this->db->join('student_session', 'student_session.id = student_fees.student_session_id'); $this->db->join('feemasters', 'feemasters.id = student_fees.feemaster_id'); $this->db->join('feetype', 'feetype.id = feemasters.feetype_id'); $this->db->join('classes', 'student_session.class_id = classes.id'); $this->db->join('sections', 'sections.id = student_session.section_id'); $this->db->join('students', 'students.id = student_session.student_id'); $this->db->where('student_fees.date >=', $start_date); $this->db->where('student_fees.date <=', $end_date); $this->db->where('student_session.session_id', $this->current_session); $this->db->order_by('student_fees.id'); $query = $this->db->get(); return $query->result_array(); } public function getStudentTotalFee($class_id, $student_session_id) { $query = "SELECT a.totalfee,b.fee_deposit,b.payment_mode FROM ( SELECT COALESCE(sum(amount),0) as totalfee FROM `feemasters` WHERE session_id =$this->current_session and class_id=" . $this->db->escape($class_id) . ") as a, (select COALESCE(sum(amount),0) as fee_deposit,payment_mode from student_fees WHERE student_session_id =" . $this->db->escape($student_session_id) . ") as b"; $query = $this->db->query($query); return $query->row(); } }