Server IP : 192.185.129.71 / Your IP : 18.118.3.199 Web Server : Apache System : Linux bh-ht-3.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64 User : svymadmin ( 4072) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home4/svymadmin/public_html/vivekaexcel.edu.in/bkp/school/application/controllers/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Accountant extends CI_Controller { function __construct() { parent::__construct(); $this->load->database(); $this->load->library('session'); $this->load->model(array('Ajaxdataload_model' => 'ajaxload')); /*cache control*/ $this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); $this->output->set_header('Pragma: no-cache'); } /***default functin, redirects to login page if no accountant logged in yet***/ public function index() { if ($this->session->userdata('accountant_login') != 1) redirect(site_url('login'), 'refresh'); if ($this->session->userdata('accountant_login') == 1) redirect(site_url('accountant/dashboard'), 'refresh'); } /***ADMIN DASHBOARD***/ function dashboard() { if ($this->session->userdata('accountant_login') != 1) redirect(base_url(), 'refresh'); $page_data['page_name'] = 'dashboard'; $page_data['page_title'] = get_phrase('accountant_dashboard'); $this->load->view('backend/index', $page_data); } /******MANAGE BILLING / INVOICES WITH STATUS*****/ function invoice($param1 = '', $param2 = '', $param3 = '') { if ($this->session->userdata('accountant_login') != 1) redirect(base_url(), 'refresh'); if ($param1 == 'create') { $data['student_id'] = $this->input->post('student_id'); $data['title'] = $this->input->post('title'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data['amount'] = $this->input->post('amount'); $data['amount_paid'] = $this->input->post('amount_paid'); $data['due'] = $data['amount'] - $data['amount_paid']; $data['status'] = $this->input->post('status'); $data['creation_timestamp'] = strtotime($this->input->post('date')); $data['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->insert('invoice', $data); $invoice_id = $this->db->insert_id(); $data2['invoice_id'] = $invoice_id; $data2['student_id'] = $this->input->post('student_id'); $data2['title'] = $this->input->post('title'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data2['payment_type'] = 'income'; $data2['method'] = $this->input->post('method'); $data2['amount'] = $this->input->post('amount_paid'); $data2['timestamp'] = strtotime($this->input->post('date')); $data2['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->insert('payment' , $data2); $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully')); redirect(site_url('accountant/student_payment'), 'refresh'); } if ($param1 == 'create_mass_invoice') { foreach ($this->input->post('student_id') as $id) { $data['student_id'] = $id; $data['title'] = $this->input->post('title'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data['amount'] = $this->input->post('amount'); $data['amount_paid'] = $this->input->post('amount_paid'); $data['due'] = $data['amount'] - $data['amount_paid']; $data['status'] = $this->input->post('status'); $data['creation_timestamp'] = strtotime($this->input->post('date')); $data['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->insert('invoice', $data); $invoice_id = $this->db->insert_id(); $data2['invoice_id'] = $invoice_id; $data2['student_id'] = $id; $data2['title'] = $this->input->post('title'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data2['payment_type'] = 'income'; $data2['method'] = $this->input->post('method'); $data2['amount'] = $this->input->post('amount_paid'); $data2['timestamp'] = strtotime($this->input->post('date')); $data2['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->insert('payment' , $data2); } $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully')); redirect(site_url('accountant/student_payment'), 'refresh'); } if ($param1 == 'do_update') { $data['student_id'] = $this->input->post('student_id'); $data['title'] = $this->input->post('title'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data['amount'] = $this->input->post('amount'); $data['status'] = $this->input->post('status'); $data['creation_timestamp'] = strtotime($this->input->post('date')); $this->db->where('invoice_id', $param2); $this->db->update('invoice', $data); $this->session->set_flashdata('flash_message' , get_phrase('data_updated')); redirect(site_url('accountant/income'), 'refresh'); } else if ($param1 == 'edit') { $page_data['edit_data'] = $this->db->get_where('invoice', array( 'invoice_id' => $param2 ))->result_array(); } if ($param1 == 'take_payment') { $data['invoice_id'] = $this->input->post('invoice_id'); $data['student_id'] = $this->input->post('student_id'); $data['title'] = $this->input->post('title'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data['payment_type'] = 'income'; $data['method'] = $this->input->post('method'); $data['amount'] = $this->input->post('amount'); $data['timestamp'] = strtotime($this->input->post('timestamp')); $data['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->insert('payment' , $data); $status['status'] = $this->input->post('status'); $this->db->where('invoice_id' , $param2); $this->db->update('invoice' , array('status' => $status['status'])); $data2['amount_paid'] = $this->input->post('amount'); $data2['status'] = $this->input->post('status'); $this->db->where('invoice_id' , $param2); $this->db->set('amount_paid', 'amount_paid + ' . $data2['amount_paid'], FALSE); $this->db->set('due', 'due - ' . $data2['amount_paid'], FALSE); $this->db->update('invoice'); $this->session->set_flashdata('flash_message' , get_phrase('payment_successfull')); redirect(site_url('accountant/income'), 'refresh'); } if ($param1 == 'delete') { $this->db->where('invoice_id', $param2); $this->db->delete('invoice'); $this->session->set_flashdata('flash_message' , get_phrase('data_deleted')); redirect(site_url('accountant/income'), 'refresh'); } $page_data['page_name'] = 'invoice'; $page_data['page_title'] = get_phrase('manage_invoice/payment'); $this->db->order_by('creation_timestamp', 'desc'); $page_data['invoices'] = $this->db->get('invoice')->result_array(); $this->load->view('backend/index', $page_data); } /**********ACCOUNTING********************/ function income($param1 = 'invoices', $param2 = '', $param3 = '') { if ($this->session->userdata('accountant_login') != 1) redirect(site_url('login'), 'refresh'); $page_data['page_name'] = 'income'; $page_data['inner'] = $param1; $page_data['page_title'] = get_phrase('student_payments'); $this->load->view('backend/index', $page_data); } function get_invoices() { if ($this->session->userdata('accountant_login') != 1) redirect(site_url('login'), 'refresh'); $columns = array( 0 => 'invoice_id', 1 => 'student', 2 => 'title', 3 => 'total', 4 => 'paid', 5 => 'status', 6 => 'date', 7 => 'options', 8 => 'invoice_id' ); $limit = $this->input->post('length'); $start = $this->input->post('start'); $order = $columns[$this->input->post('order')[0]['column']]; $dir = $this->input->post('order')[0]['dir']; $totalData = $this->ajaxload->all_invoices_count(); $totalFiltered = $totalData; if(empty($this->input->post('search')['value'])) { $invoices = $this->ajaxload->all_invoices($limit,$start,$order,$dir); } else { $search = $this->input->post('search')['value']; $invoices = $this->ajaxload->invoice_search($limit,$start,$search,$order,$dir); $totalFiltered = $this->ajaxload->invoice_search_count($search); } $data = array(); if(!empty($invoices)) { foreach ($invoices as $row) { if ($row->due == 0) { $status = '<button class="btn btn-success btn-xs">'.get_phrase('paid').'</button>'; $payment_option = ''; } else { $status = '<button class="btn btn-danger btn-xs">'.get_phrase('unpaid').'</button>'; $payment_option = '<li><a href="#" onclick="invoice_pay_modal('.$row->invoice_id.')"><i class="entypo-bookmarks"></i> '.get_phrase('take_payment').'</a></li><li class="divider"></li>'; } $options = '<div class="btn-group"><button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"> Action <span class="caret"></span></button><ul class="dropdown-menu dropdown-default pull-right" role="menu">'.$payment_option.'<li><a href="#" onclick="invoice_view_modal('.$row->invoice_id.')"><i class="entypo-credit-card"></i> '.get_phrase('view_invoice').'</a></li><li class="divider"></li><li><a href="#" onclick="invoice_edit_modal('.$row->invoice_id.')"><i class="entypo-pencil"></i> '.get_phrase('edit').'</a></li><li class="divider"></li><li><a href="#" onclick="invoice_delete_confirm('.$row->invoice_id.')"><i class="entypo-trash"></i> '.get_phrase('delete').'</a></li></ul></div>'; $nestedData['invoice_id'] = $row->invoice_id; $nestedData['student'] = $this->crud_model->get_type_name_by_id('student',$row->student_id); $nestedData['title'] = $row->title; $nestedData['total'] = $row->amount; $nestedData['paid'] = $row->amount_paid; $nestedData['status'] = $status; $nestedData['date'] = date('d M,Y', $row->creation_timestamp); $nestedData['options'] = $options; $data[] = $nestedData; } } $json_data = array( "draw" => intval($this->input->post('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data ); echo json_encode($json_data); } function get_payments() { if ($this->session->userdata('accountant_login') != 1) redirect(site_url('login'), 'refresh'); $columns = array( 0 => 'payment_id', 1 => 'title', 2 => 'description', 3 => 'method', 4 => 'amount', 5 => 'date', 6 => 'options', 7 => 'payment_id' ); $limit = $this->input->post('length'); $start = $this->input->post('start'); $order = $columns[$this->input->post('order')[0]['column']]; $dir = $this->input->post('order')[0]['dir']; $totalData = $this->ajaxload->all_payments_count(); $totalFiltered = $totalData; if(empty($this->input->post('search')['value'])) { $payments = $this->ajaxload->all_payments($limit,$start,$order,$dir); } else { $search = $this->input->post('search')['value']; $payments = $this->ajaxload->payment_search($limit,$start,$search,$order,$dir); $totalFiltered = $this->ajaxload->payment_search_count($search); } $data = array(); if(!empty($payments)) { foreach ($payments as $row) { if ($row->method == 1) $method = get_phrase('cash'); else if ($row->method == 2) $method = get_phrase('cheque'); else if ($row->method == 3) $method = get_phrase('card'); else if ($row->method == 'Paypal') $method = 'Paypal'; else $method = 'Stripe'; $options = '<a href="#" onclick="invoice_view_modal('.$row->invoice_id.')"><i class="entypo-credit-card"></i> '.get_phrase('view_invoice').'</a>'; $nestedData['payment_id'] = $row->payment_id; $nestedData['title'] = $row->title; $nestedData['description'] = $row->description; $nestedData['method'] = $method; $nestedData['amount'] = $row->amount; $nestedData['date'] = date('d M,Y', $row->timestamp); $nestedData['options'] = $options; $data[] = $nestedData; } } $json_data = array( "draw" => intval($this->input->post('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data ); echo json_encode($json_data); } function student_payment($param1 = '' , $param2 = '' , $param3 = '') { if ($this->session->userdata('accountant_login') != 1) redirect('login', 'refresh'); $page_data['page_name'] = 'student_payment'; $page_data['page_title'] = get_phrase('create_student_payment'); $this->load->view('backend/index', $page_data); } function expense($param1 = '' , $param2 = '') { if ($this->session->userdata('accountant_login') != 1) redirect('login', 'refresh'); if ($param1 == 'create') { $data['title'] = $this->input->post('title'); $data['expense_category_id'] = $this->input->post('expense_category_id'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data['payment_type'] = 'expense'; $data['method'] = $this->input->post('method'); $data['amount'] = $this->input->post('amount'); $data['timestamp'] = strtotime($this->input->post('timestamp')); $data['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->insert('payment' , $data); $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully')); redirect(site_url('accountant/expense'), 'refresh'); } if ($param1 == 'edit') { $data['title'] = $this->input->post('title'); $data['expense_category_id'] = $this->input->post('expense_category_id'); if ($this->input->post('description') != null) { $data['description'] = $this->input->post('description'); } $data['payment_type'] = 'expense'; $data['method'] = $this->input->post('method'); $data['amount'] = $this->input->post('amount'); $data['timestamp'] = strtotime($this->input->post('timestamp')); $data['year'] = $this->db->get_where('settings' , array('type' => 'running_year'))->row()->description; $this->db->where('payment_id' , $param2); $this->db->update('payment' , $data); $this->session->set_flashdata('flash_message' , get_phrase('data_updated')); redirect(site_url('accountant/expense'), 'refresh'); } if ($param1 == 'delete') { $this->db->where('payment_id' , $param2); $this->db->delete('payment'); $this->session->set_flashdata('flash_message' , get_phrase('data_deleted')); redirect(site_url('accountant/expense'), 'refresh'); } $page_data['page_name'] = 'expense'; $page_data['page_title'] = get_phrase('expenses'); $this->load->view('backend/index', $page_data); } function expense_category($param1 = '' , $param2 = '') { if ($this->session->userdata('accountant_login') != 1) redirect('login', 'refresh'); if ($param1 == 'create') { $data['name'] = $this->input->post('name'); $this->db->insert('expense_category' , $data); $this->session->set_flashdata('flash_message' , get_phrase('data_added_successfully')); redirect(site_url('accountant/expense_category'), 'refresh'); } if ($param1 == 'edit') { $data['name'] = $this->input->post('name'); $this->db->where('expense_category_id' , $param2); $this->db->update('expense_category' , $data); $this->session->set_flashdata('flash_message' , get_phrase('data_updated')); redirect(site_url('accountant/expense_category'), 'refresh'); } if ($param1 == 'delete') { $this->db->where('expense_category_id' , $param2); $this->db->delete('expense_category'); $this->session->set_flashdata('flash_message' , get_phrase('data_deleted')); redirect(site_url('accountant/expense_category'), 'refresh'); } $page_data['page_name'] = 'expense_category'; $page_data['page_title'] = get_phrase('expense_category'); $this->load->view('backend/index', $page_data); } // MANAGE OWN PROFILE AND CHANGE PASSWORD function manage_profile($param1 = '', $param2 = '', $param3 = '') { if ($this->session->userdata('accountant_login') != 1) redirect(site_url('login'), 'refresh'); if ($param1 == 'update_profile_info') { $data['name'] = $this->input->post('name'); $data['email'] = $this->input->post('email'); $validation = email_validation_for_edit($data['email'], $this->session->userdata('accountant_id'), 'accountant'); if ($validation == 1) { $this->db->where('accountant_id', $this->session->userdata('accountant_id')); $this->db->update('accountant', $data); $this->session->set_flashdata('flash_message', get_phrase('account_updated')); } else{ $this->session->set_flashdata('error_message', get_phrase('this_email_id_is_not_available')); } redirect(site_url('accountant/manage_profile'), 'refresh'); } if ($param1 == 'change_password') { $data['password'] = sha1($this->input->post('password')); $data['new_password'] = sha1($this->input->post('new_password')); $data['confirm_new_password'] = sha1($this->input->post('confirm_new_password')); $current_password = $this->db->get_where('accountant', array( 'accountant_id' => $this->session->userdata('accountant_id') ))->row()->password; if ($current_password == $data['password'] && $data['new_password'] == $data['confirm_new_password']) { $this->db->where('accountant_id', $this->session->userdata('accountant_id')); $this->db->update('accountant', array( 'password' => $data['new_password'] )); $this->session->set_flashdata('flash_message', get_phrase('password_updated')); } else { $this->session->set_flashdata('flash_message', get_phrase('password_mismatch')); } redirect(site_url('accountant/manage_profile'), 'refresh'); } $page_data['page_name'] = 'manage_profile'; $page_data['page_title'] = get_phrase('manage_profile'); $page_data['edit_data'] = $this->db->get_where('accountant', array( 'accountant_id' => $this->session->userdata('accountant_id') ))->result_array(); $this->load->view('backend/index', $page_data); } function get_expenses() { if ($this->session->userdata('accountant_login') != 1) redirect(site_url('login'), 'refresh'); $columns = array( 0 => 'payment_id', 1 => 'title', 2 => 'category', 3 => 'method', 4 => 'amount', 5 => 'date', 6 => 'options', 7 => 'payment_id' ); $limit = $this->input->post('length'); $start = $this->input->post('start'); $order = $columns[$this->input->post('order')[0]['column']]; $dir = $this->input->post('order')[0]['dir']; $totalData = $this->ajaxload->all_expenses_count(); $totalFiltered = $totalData; if(empty($this->input->post('search')['value'])) { $expenses = $this->ajaxload->all_expenses($limit,$start,$order,$dir); } else { $search = $this->input->post('search')['value']; $expenses = $this->ajaxload->expense_search($limit,$start,$search,$order,$dir); $totalFiltered = $this->ajaxload->expense_search_count($search); } $data = array(); if(!empty($expenses)) { foreach ($expenses as $row) { $category = $this->db->get_where('expense_category', array('expense_category_id' => $row->expense_category_id))->row()->name; if ($row->method == 1) $method = get_phrase('cash'); else if ($row->method == 2) $method = get_phrase('cheque'); else $method = get_phrase('card'); $options = '<div class="btn-group"><button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown"> Action <span class="caret"></span></button><ul class="dropdown-menu dropdown-default pull-right" role="menu"><li><a href="#" onclick="expense_edit_modal('.$row->payment_id.')"><i class="entypo-pencil"></i> '.get_phrase('edit').'</a></li><li class="divider"></li><li><a href="#" onclick="expense_delete_confirm('.$row->payment_id.')"><i class="entypo-trash"></i> '.get_phrase('delete').'</a></li></ul></div>'; $nestedData['payment_id'] = $row->payment_id; $nestedData['title'] = $row->title; $nestedData['category'] = $category; $nestedData['method'] = $method; $nestedData['amount'] = $row->amount; $nestedData['date'] = date('d M,Y', $row->timestamp); $nestedData['options'] = $options; $data[] = $nestedData; } } $json_data = array( "draw" => intval($this->input->post('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data ); echo json_encode($json_data); } function get_sections_for_ssph($class_id) { $sections = $this->db->get_where('section', array('class_id' => $class_id))->result_array(); $options = ''; foreach ($sections as $row) { $options .= '<option value="'.$row['section_id'].'">'.$row['name'].'</option>'; } echo '<select class="" name="section_id" id="section_id">'.$options.'</select>'; } function get_students_for_ssph($class_id, $section_id) { $enrolls = $this->db->get_where('enroll', array('class_id' => $class_id, 'section_id' => $section_id))->result_array(); $options = ''; foreach ($enrolls as $row) { $name = $this->db->get_where('student', array('student_id' => $row['student_id']))->row()->name; $options .= '<option value="'.$row['student_id'].'">'.$name.'</option>'; } echo '<select class="" name="student_id" id="student_id">'.$options.'</select>'; } function get_payment_history_for_ssph($student_id) { $page_data['student_id'] = $student_id; $this->load->view('backend/admin/student_specific_payment_history_table', $page_data); } }