load->helper('form'); $this->config->load('app-config'); $this->load->library("datatables"); } public function index() { if (!$this->rbac->hasPrivilege('income', 'can_view')) { access_denied(); } $this->session->set_userdata('top_menu', 'Income'); $this->session->set_userdata('sub_menu', 'income/index'); $data['title'] = 'Add Income'; $data['title_list'] = 'Recent Incomes'; $this->form_validation->set_rules('inc_head_id', $this->lang->line('income_head'), 'trim|required|xss_clean'); $this->form_validation->set_rules('amount', $this->lang->line('amount'), 'trim|required|xss_clean'); $this->form_validation->set_rules('name', $this->lang->line('name'), 'trim|required|xss_clean'); $this->form_validation->set_rules('date', $this->lang->line('date'), 'trim|required|xss_clean'); $this->form_validation->set_rules('documents', $this->lang->line('documents'), 'callback_handle_upload'); if ($this->form_validation->run() == false) { } else { $data = array( 'inc_head_id' => $this->input->post('inc_head_id'), 'name' => $this->input->post('name'), 'date' => date('Y-m-d', $this->customlib->datetostrtotime($this->input->post('date'))), 'amount' => $this->input->post('amount'), 'invoice_no' => $this->input->post('invoice_no'), 'note' => $this->input->post('description'), 'documents' => $this->input->post('documents'), ); $insert_id = $this->income_model->add($data); if (isset($_FILES["documents"]) && !empty($_FILES['documents']['name'])) { $fileInfo = pathinfo($_FILES["documents"]["name"]); $img_name = $insert_id . '.' . $fileInfo['extension']; move_uploaded_file($_FILES["documents"]["tmp_name"], "./uploads/school_income/" . $img_name); $data_img = array('id' => $insert_id, 'documents' => 'uploads/school_income/' . $img_name); $this->income_model->add($data_img); } $this->session->set_flashdata('msg', '
' . $this->lang->line('success_message') . '
'); redirect('admin/income/index'); } $income_result = $this->income_model->get(); $data['incomelist'] = $income_result; $incomeHead = $this->incomehead_model->get(); $data['incheadlist'] = $incomeHead; $this->load->view('layout/header', $data); $this->load->view('admin/income/incomeList', $data); $this->load->view('layout/footer', $data); } public function download($documents) { $this->load->helper('download'); $filepath = "./uploads/school_income/" . $this->uri->segment(6); $data = file_get_contents($filepath); $name = $this->uri->segment(6); force_download($name, $data); } public function view($id) { if (!$this->rbac->hasPrivilege('income', 'can_view')) { access_denied(); } $data['title'] = 'Fees Master List'; $income = $this->income_model->get($id); $data['income'] = $income; $this->load->view('layout/header', $data); $this->load->view('income/incomeShow', $data); $this->load->view('layout/footer', $data); } public function getByFeecategory() { $feecategory_id = $this->input->get('feecategory_id'); $data = $this->feetype_model->getTypeByFeecategory($feecategory_id); echo json_encode($data); } public function getStudentCategoryFee() { $type = $this->input->post('type'); $class_id = $this->input->post('class_id'); $data = $this->income_model->getTypeByFeecategory($type, $class_id); if (empty($data)) { $status = 'fail'; } else { $status = 'success'; } $array = array('status' => $status, 'data' => $data); echo json_encode($array); } public function delete($id) { if (!$this->rbac->hasPrivilege('income', 'can_delete')) { access_denied(); } $data['title'] = 'Fees Master List'; $this->income_model->remove($id); redirect('admin/income/index'); } public function create() { $data['title'] = 'Add Fees Master'; $this->form_validation->set_rules('income', $this->lang->line('fees_master'), 'trim|required|xss_clean'); if ($this->form_validation->run() == false) { $this->load->view('layout/header', $data); $this->load->view('income/incomeCreate', $data); $this->load->view('layout/footer', $data); } else { $data = array( 'income' => $this->input->post('income'), ); $this->income_model->add($data); $this->session->set_flashdata('msg', '
' . $this->lang->line('success_message') . '
'); redirect('income/index'); } } public function handle_upload() { $image_validate = $this->config->item('file_validate'); $result = $this->filetype_model->get(); if (isset($_FILES["documents"]) && !empty($_FILES['documents']['name'])) { $file_type = $_FILES["documents"]['type']; $file_size = $_FILES["documents"]["size"]; $file_name = $_FILES["documents"]["name"]; $allowed_extension = array_map('trim', array_map('strtolower', explode(',', $result->file_extension))); $allowed_mime_type = array_map('trim', array_map('strtolower', explode(',', $result->file_mime))); $ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION)); if ($files = filesize($_FILES['documents']['tmp_name'])) { if (!in_array($file_type, $allowed_mime_type)) { $this->form_validation->set_message('handle_upload', 'File Type Not Allowed'); return false; } if (!in_array($ext, $allowed_extension) || !in_array($file_type, $allowed_mime_type)) { $this->form_validation->set_message('handle_upload', 'Extension Not Allowed'); return false; } if ($file_size > $result->file_size) { $this->form_validation->set_message('handle_upload', $this->lang->line('file_size_shoud_be_less_than') . number_format($image_validate['upload_size'] / 1048576, 2) . " MB"); return false; } } else { $this->form_validation->set_message('handle_upload', "File Type / Extension Error Uploading Image"); return false; } return true; } return true; } public function edit($id) { if (!$this->rbac->hasPrivilege('income', 'can_edit')) { access_denied(); } $data['title'] = 'Edit Fees Master'; $data['id'] = $id; $income = $this->income_model->get($id); $data['income'] = $income; $data['title_list'] = 'Fees Master List'; $expnseHead = $this->incomehead_model->get(); $data['incheadlist'] = $expnseHead; $this->form_validation->set_rules('inc_head_id', $this->lang->line('income_head'), 'trim|required|xss_clean'); $this->form_validation->set_rules('amount', $this->lang->line('amount'), 'trim|required|xss_clean'); $this->form_validation->set_rules('name', $this->lang->line('name'), 'trim|required|xss_clean'); $this->form_validation->set_rules('date', $this->lang->line('date'), 'trim|required|xss_clean'); $this->form_validation->set_rules('documents', $this->lang->line('documents'), 'callback_handle_upload'); if ($this->form_validation->run() == false) { $this->load->view('layout/header', $data); $this->load->view('admin/income/incomeEdit', $data); $this->load->view('layout/footer', $data); } else { $data = array( 'id' => $id, 'inc_head_id' => $this->input->post('inc_head_id'), 'name' => $this->input->post('name'), 'date' => date('Y-m-d', $this->customlib->datetostrtotime($this->input->post('date'))), 'amount' => $this->input->post('amount'), 'invoice_no' => $this->input->post('invoice_no'), 'note' => $this->input->post('description'), ); $insert_id = $this->income_model->add($data); if (isset($_FILES["documents"]) && !empty($_FILES['documents']['name'])) { $fileInfo = pathinfo($_FILES["documents"]["name"]); $img_name = $id . '.' . $fileInfo['extension']; move_uploaded_file($_FILES["documents"]["tmp_name"], "./uploads/school_income/" . $img_name); $data_img = array('id' => $id, 'documents' => 'uploads/school_income/' . $img_name); $this->income_model->add($data_img); } $this->session->set_flashdata('msg', '
' . $this->lang->line('success_message') . '
'); redirect('admin/income/index'); } } public function incomeSearch() { if (!$this->rbac->hasPrivilege('search_due_fees', 'can_view')) { access_denied(); } $data['searchlist'] = $this->customlib->get_searchtype(); $this->session->set_userdata('top_menu', 'Income'); $this->session->set_userdata('sub_menu', 'income/incomesearch'); $data['search_type'] = ''; $data['title'] = 'Search Income'; $this->load->view('layout/header', $data); $this->load->view('admin/income/incomeSearch', $data); $this->load->view('layout/footer', $data); } public function getincomelist() { $m = $this->income_model->getincomelist(); $m = json_decode($m); $currency_symbol = $this->customlib->getSchoolCurrencyFormat(); $dt_data = array(); if (!empty($m->data)) { foreach ($m->data as $key => $value) { $editbtn = ''; $deletebtn = ''; $documents = ''; $inc_head_id = $value->inc_head_id; $arr1 = str_split($inc_head_id); $title = "" . $value->name . " "; if ($value->documents) { $documents = ""; } if ($this->rbac->hasPrivilege('income', 'can_edit')) { $editbtn = ""; } if ($this->rbac->hasPrivilege('income', 'can_delete')) { $deletebtn = ''; $deletebtn = "lang->line('delete_confirm') . '"' . " )' href='" . base_url() . "admin/income/delete/" . $value->id . "' class='btn btn-default btn-xs' data-placement='left' title='" . $this->lang->line('delete') . "' data-toggle='tooltip'>"; } if ($value->documents) { $document = " "; } $row = array(); $row[] = $title; if ($value->note == "") { $row[] = $this->lang->line('no_description'); } else { $row[] = $value->note; } $row[] = $value->invoice_no; $row[] = date($this->customlib->getSchoolDateFormat(), $this->customlib->dateyyyymmddTodateformat($value->date)); $row[] = $value->income_category; $row[] = $currency_symbol . $value->amount; $row[] = $documents . ' ' . $editbtn . ' ' . $deletebtn; $dt_data[] = $row; } } $json_data = array( "draw" => intval($m->draw), "recordsTotal" => intval($m->recordsTotal), "recordsFiltered" => intval($m->recordsFiltered), "data" => $dt_data, ); echo json_encode($json_data); } public function checkvalidation() { $button_type = $this->input->post('button_type'); if ($button_type == "search_filter") { $this->form_validation->set_rules('search_type', $this->lang->line('search') . " " . $this->lang->line('type'), 'required|trim|xss_clean'); } elseif ($button_type == "search_full") { $this->form_validation->set_rules('search_text', $this->lang->line('keyword'), 'required|trim|xss_clean'); } if ($this->form_validation->run() == false) { $error = array(); if ($button_type == "search_filter") { $error['search_type'] = form_error('search_type'); } elseif ($button_type == "search_full") { $error['search_text'] = form_error('search_text'); } $array = array('status' => 0, 'error' => $error); echo json_encode($array); } else { $button_type = $this->input->post('button_type'); $search_text = $this->input->post('search_text'); $date_from="" ; $date_to="" ; $search_type = $this->input->post('search_type'); if($search_type=='period'){ $date_from= $this->input->post('date_from'); $date_to= $this->input->post('date_to'); } $params = array('button_type' => $button_type, 'search_type'=>$search_type, 'search_text' => $search_text,'date_from' => $date_from, 'date_to' => $date_to); $array = array('status' => 1, 'error' => '', 'params' => $params); echo json_encode($array); } } public function getincomesearchlist() { $search_type = $this->input->post('search_type'); $button_type = $this->input->post('button_type'); $search_text = $this->input->post('search_text'); if($button_type=='search_filter'){ if ($search_type!="") { if ($search_type == 'all') { $dates = $this->customlib->get_betweendate('this_year'); } else { $dates = $this->customlib->get_betweendate($search_type); } } else { $dates = $this->customlib->get_betweendate('this_year'); $search_type = ''; } $dateformat = $this->customlib->getSchoolDateFormat(); $date_from = date('Y-m-d', strtotime($dates['from_date'])); $date_to = date('Y-m-d', strtotime($dates['to_date'])); $data['exp_title'] = 'Income Result From ' . date($dateformat, strtotime($date_from)) . " To " . date($dateformat, strtotime($date_to)); $date_from = date('Y-m-d', $this->customlib->dateYYYYMMDDtoStrtotime($date_from)); $date_to = date('Y-m-d', $this->customlib->dateYYYYMMDDtoStrtotime($date_to)); $resultList = $this->income_model->search("", $date_from, $date_to); }else{ $search_text = $this->input->post('search_text'); $resultList = $this->income_model->search($search_text, "", ""); $resultList= $resultList; } $m = json_decode($resultList); $currency_symbol = $this->customlib->getSchoolCurrencyFormat(); $dt_data = array(); $total_amount = 0; if (!empty($m->data)) { foreach ($m->data as $key => $value) { $total_amount += $value->amount; $row = array(); $row[] = $value->name; $row[] = $value->invoice_no; $row[] = $value->income_category; $row[] = date($this->customlib->getSchoolDateFormat(), $this->customlib->dateyyyymmddTodateformat($value->date)); $row[] = $currency_symbol . $value->amount; $dt_data[] = $row; } $footer_row = array(); $footer_row[] = ""; $footer_row[] = ""; $footer_row[] = ""; $footer_row[] = ""; $footer_row[] = "" . $this->lang->line('grand_total') . " : " . $currency_symbol . $total_amount . ""; $dt_data[] = $footer_row; } $json_data = array( "draw" => intval($m->draw), "recordsTotal" => intval($m->recordsTotal), "recordsFiltered" => intval($m->recordsFiltered), "data" => $dt_data, ); echo json_encode($json_data); } }