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);
}
}