ok
Direktori : /home2/selectio/www/mm-tailor-billing/app/controllers/ |
Current File : /home2/selectio/www/mm-tailor-billing/app/controllers/Incomes.php |
<?php defined('BASEPATH') or exit('No direct script access allowed'); class Incomes extends MY_Controller { public function __construct() { parent::__construct(); if (!$this->loggedIn) { redirect('login'); } if (!$this->session->userdata('store_id')) { $this->session->set_flashdata('warning', lang('please_select_store')); redirect('stores'); } $this->load->library('form_validation'); $this->load->model('incomes_model'); $this->allowed_types = 'gif|jpg|png|pdf|doc|docx|xls|xlsx|zip'; } public function delete($id = null) { if (DEMO) { $this->session->set_flashdata('error', lang('disabled_in_demo')); redirect($_SERVER['HTTP_REFERER'] ?? 'welcome'); } if (!$this->Admin) { $this->session->set_flashdata('error', lang('access_denied')); redirect('pos'); } if ($this->input->get('id')) { $id = $this->input->get('id'); } if ($this->purchases_model->deletePurchase($id)) { $this->session->set_flashdata('message', lang('purchase_deleted')); redirect('purchases'); } } public function expense_note($id = null) { if (!$this->Admin) { if ($expense->created_by != $this->session->userdata('user_id')) { $this->session->set_flashdata('error', lang('access_denied')); redirect($_SERVER['HTTP_REFERER'] ?? 'pos'); } } $expense = $this->incomes_model->getExpenseByID($id); $this->data['user'] = $this->site->getUser($expense->created_by); $this->data['expense'] = $expense; $this->data['page_title'] = $this->lang->line('expense_note'); $this->load->view($this->theme . 'incomes/expense_note', $this->data); } /* ----------------------------------------------------------------- */ public function view($id = null) { if (!$this->Admin) { $this->session->set_flashdata('error', lang('access_denied')); redirect('pos'); } /*$this->data['purchase'] = $this->purchases_model->getPurchaseByID($id); $this->data['items'] = $this->purchases_model->getAllPurchaseItems($id);*/ $this->data['error'] = (validation_errors() ? validation_errors() : $this->session->flashdata('error')); $this->data['page_title'] = lang('view_purchase'); $this->load->view($this->theme . 'incomes/view', $this->data); } public function get_sub_category() { $category = $this->input->get('category'); $data = $this->site->getAllMmSubCategory($category); $content=''; if($data){ foreach($data as $d){ $content.='<option value="'.$d->id.'">'.$d->sub_name.'</option>'; } }else{ $content.='<option value="">No Data Available</option>'; } echo $content; } public function get_filter_sub_category() { $category = $this->input->get('category'); $data = $this->site->getAllMmSubCategory($category); $content='<option value="">All Sub Category</option>'; if($data){ foreach($data as $d){ $content.='<option value="'.$d->id.'">'.$d->sub_name.'</option>'; } }else{ $content.='<option value="">No Data Available</option>'; } echo $content; } public function get_select_sub_category() { $id = $this->input->get('sub_category'); $data = $this->site->getAllMmSubCategoryByID($id); $content=''; if($data){ $content.='<option value="'.$data->id.'">'.$data->sub_name.'</option>'; }else{ $content.='<option value="">No Data Available</option>'; } echo $content; } // Income Starts Here /* ---- Add Row Based Starts Here ---- */ public function add_income() { if (!$this->session->userdata('store_id')) { $this->session->set_flashdata('warning', lang('please_select_store')); redirect('stores'); } if ($this->input->post('add_income')) { $date=array(); $reference=array(); $amount=array(); /*$category=array();*/ $sub_category=array(); $attachment=array(); $notes=array(); $date = $this->input->post('date'); $reference = $this->input->post('reference'); $amount = $this->input->post('amount'); $category = $this->input->post('category'); $sub_category = $this->input->post('sub_category'); $attachment = $this->input->post('attachment'); $notes = $this->input->post('note'); $created_by = $this->session->userdata('user_id'); $this->incomes_model->addIncomesRowBased($date,$amount,$category,$sub_category,$notes,$created_by); $this->session->set_flashdata('message', lang('income_added')); redirect('incomes/'); } else { $this->data['error'] = (validation_errors() ? validation_errors() : $this->session->flashdata('error')); $this->data['main_category'] = $this->site->getAllMmCategory(2); $this->data['page_title'] = lang('add_income'); $bc = [['link' => site_url('incomes'), 'page' => lang('incomes')], ['link' => site_url('incomes/add_income'), 'page' => lang('incomes')], ['link' => '#', 'page' => lang('add_income')]]; $meta = ['page_title' => lang('add_income'), 'bc' => $bc]; $this->page_construct('incomes/add_income', $this->data, $meta); } } /* ---- Add Row Based Ends Here ---- */ public function index($id = null, $sub_category = null, $start_date = null, $end_date = null) { $this->data['error'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('error'); $this->data['page_title'] = lang('incomes'); $this->data['mm_category'] = $this->site->getAllMMCategories(); $this->data['expense_category'] = $this->site->getAllMmCategory(2); $bc = [['link' => site_url('incomes'), 'page' => lang('incomes')], ['link' => '#', 'page' => lang('incomes')]]; $meta = ['page_title' => lang('incomes'), 'bc' => $bc]; $this->page_construct('incomes/index', $this->data, $meta); } public function edit_income($id = null) { if (!$this->Admin) { $this->session->set_flashdata('error', lang('access_denied')); redirect('pos'); } $this->load->helper('security'); if ($this->input->get('id')) { $id = $this->input->get('id'); } $this->form_validation->set_rules('reference', lang('reference'), 'required'); $this->form_validation->set_rules('amount', lang('amount'), 'required'); $this->form_validation->set_rules('userfile', lang('attachment'), 'xss_clean'); if ($this->form_validation->run() == true) { if ($this->Admin) { $date = trim($this->input->post('date')); } else { $date = date('Y-m-d H:i:s'); } $data = [ 'date' => $date, 'reference' => $this->input->post('reference'), 'amount' => $this->input->post('amount'), 'note' => $this->input->post('note', true), 'category' => $this->input->post('category'), 'sub_category' => $this->input->post('sub_category'), ]; if ($_FILES['userfile']['size'] > 0) { $this->load->library('upload'); $config['upload_path'] = 'uploads/'; $config['allowed_types'] = $this->allowed_types; $config['max_size'] = '2000'; $config['overwrite'] = false; $config['encrypt_name'] = true; $this->upload->initialize($config); if (!$this->upload->do_upload()) { $error = $this->upload->display_errors(); $this->session->set_flashdata('error', $error); redirect($_SERVER['HTTP_REFERER']); } $photo = $this->upload->file_name; $data['attachment'] = $photo; } //$this->tec->print_arrays($data); } elseif ($this->input->post('edit_expense')) { $this->session->set_flashdata('error', validation_errors()); redirect($_SERVER['HTTP_REFERER']); } if ($this->form_validation->run() == true && $this->incomes_model->updateIncomes($id, $data)) { $this->session->set_flashdata('message', lang('income_updated')); redirect('incomes'); } else { $this->data['error'] = (validation_errors() ? validation_errors() : $this->session->flashdata('error')); $this->data['main_category'] = $this->site->getAllMmCategory(2); $this->data['income'] = $this->incomes_model->getIncomesByID($id); $this->data['page_title'] = lang('edit_income'); $bc = [['link' => site_url('incomes'), 'page' => lang('incomes')], ['link' => site_url('incomes'), 'page' => lang('incomes')], ['link' => '#', 'page' => lang('edit_income')]]; $meta = ['page_title' => lang('edit_income'), 'bc' => $bc]; $this->page_construct('incomes/edit_income', $this->data, $meta); } } public function delete_income($id = null) { if (DEMO) { $this->session->set_flashdata('error', lang('disabled_in_demo')); redirect($_SERVER['HTTP_REFERER'] ?? 'welcome'); } if (!$this->Admin) { $this->session->set_flashdata('error', lang('access_denied')); redirect('pos'); } if ($this->input->get('id')) { $id = $this->input->get('id'); } $expense = $this->incomes_model->getIncomesByID($id); if ($this->incomes_model->deleteIncomes($id)) { if ($expense->attachment) { unlink($this->upload_path . $expense->attachment); } $this->session->set_flashdata('message', lang('income_deleted')); redirect('incomes'); } } public function get_incomes($user_id = null) { $category = $this->input->get('category') ? $this->input->get('category') : NULL; $sub_category = $this->input->get('sub_category') ? $this->input->get('sub_category') : NULL; $start_date = $this->input->get('start_date') ? $this->input->get('start_date') : NULL; $end_date = $this->input->get('end_date') ? $this->input->get('end_date') : NULL; $detail_link = anchor('incomes/expense_note/$1', '<i class="fa fa-file-text-o"></i> ' . lang('expense_note'), 'data-toggle="modal" data-target="#myModal2"'); $edit_link = anchor('purchases/edit_expense/$1', '<i class="fa fa-edit"></i> ' . lang('edit_expense'), 'data-toggle="modal" data-target="#myModal"'); $delete_link = "<a href='#' class='po' title='<b>" . $this->lang->line('delete_expense') . "</b>' data-content=\"<p>" . lang('r_u_sure') . "</p><a class='btn btn-danger po-delete' href='" . site_url('purchases/delete_expense/$1') . "'>" . lang('i_m_sure') . "</a> <button class='btn po-close'>" . lang('no') . "</button>\" rel='popover'><i class=\"fa fa-trash-o\"></i> " . lang('delete_expense') . '</a>'; $action = '<div class="text-center"><div class="btn-group text-left">' . '<button type="button" class="btn btn-default btn-xs btn-primary dropdown-toggle" data-toggle="dropdown">' . lang('actions') . ' <span class="caret"></span></button> <ul class="dropdown-menu pull-right" role="menu"> <li>' . $detail_link . '</li> <li>' . $edit_link . '</li> <li>' . $delete_link . '</li> </ul> </div></div>'; $this->load->library('datatables'); if ($this->db->dbdriver == 'sqlite3') { $this->datatables->select($this->db->dbprefix('incomes') . '.id as id, DATE_FORMAT(date, "%d-%m-%Y") as date, reference, amount, note, incomes.category, sub_category, IF(tec_incomes.category=tec_mm_categories.id,mm_categories.name,code) as cat_name, IF(tec_incomes.sub_category=tec_mm_sub_categories.id,mm_sub_categories.sub_name,sub_conf1) as sub_cat_name, (' . $this->db->dbprefix('users') . ".first_name || ' ' || " . $this->db->dbprefix('users') . '.last_name) as user, attachment', false); } else { $this->datatables->select($this->db->dbprefix('incomes') . '.id as id, DATE_FORMAT(date, "%d-%m-%Y") as date, reference, amount, note, incomes.category, sub_category, IF(tec_incomes.category=tec_mm_categories.id,mm_categories.name,code) as cat_name, IF(tec_incomes.sub_category=tec_mm_sub_categories.id,mm_sub_categories.sub_name,sub_conf1) as sub_cat_name, CONCAT(' . $this->db->dbprefix('users') . ".first_name, ' ', " . $this->db->dbprefix('users') . '.last_name) as user, attachment', false); } $this->datatables->from('incomes') ->join('users', 'users.id=incomes.created_by', 'left') ->group_by('incomes.id'); $this->datatables->join('mm_categories', 'incomes.category = mm_categories.id','inner'); $this->datatables->join('mm_sub_categories', 'incomes.sub_category = mm_sub_categories.id','inner'); if (!$this->Admin && !$this->session->userdata('view_right')) { $this->datatables->where('created_by', $this->session->userdata('user_id')); } $this->datatables->where('incomes.store_id', $this->session->userdata('store_id')); $this->datatables->edit_column('category', "<span class='btn btn-info btn-xs'>$3</span>", 'mm_sub_categories.id, category, cat_name'); $this->datatables->edit_column('sub_category', "<span class='btn btn-info btn-xs'>$4</span>", 'mm_sub_categories.id, category, cat_name, sub_cat_name'); $this->datatables->add_column('Actions', "<div class='text-center'><div class='btn-group'><a href='" . site_url('incomes/expense_note/$1') . "' title='" . lang('income_note') . "' class='tip btn btn-primary btn-xs' data-toggle='ajax-modal'><i class='fa fa-file-text-o'></i></a> <a href='" . site_url('incomes/edit_income/$1') . "' title='" . lang('edit_income') . "' class='tip btn btn-warning btn-xs'><i class='fa fa-edit'></i></a> <a href='" . site_url('incomes/delete_income/$1') . "' onClick=\"return confirm('" . lang('alert_x_expense') . "')\" title='" . lang('delete_expense') . "' class='tip btn btn-danger btn-xs'><i class='fa fa-trash-o'></i></a></div></div>", 'id'); $this->datatables->unset_column('id'); if($category) { $this->datatables->where('incomes.category', $category); } if($sub_category) { $this->datatables->where('sub_category', $sub_category); } if($start_date) { $this->datatables->where('date >=', $start_date); } if($end_date) { $this->datatables->where('date <=', $end_date); } echo $this->datatables->generate(); } // Income Ends Here }