1122 lines
43 KiB
PHP
1122 lines
43 KiB
PHP
|
<?php
|
||
|
defined('BASEPATH') or exit('No direct script access allowed');
|
||
|
|
||
|
use Nilambar\NepaliDate\NepaliDate;
|
||
|
|
||
|
require_once 'vendor/autoload.php';
|
||
|
|
||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
||
|
// use Nilambar\NepaliDate\NepaliDate;
|
||
|
|
||
|
require_once APPPATH . '/third_party/fpdf/fpdf.php';
|
||
|
// use PhpOffice\PhpSpreadsheet\IOFactory;
|
||
|
// require('vendor/autoload.php');
|
||
|
|
||
|
|
||
|
|
||
|
class Inventory extends CI_Controller
|
||
|
{
|
||
|
|
||
|
private $nepaliDateObject;
|
||
|
private $nepali_current_date;
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
parent::__construct();
|
||
|
$this->load->model('Admin_model');
|
||
|
$this->load->model('Inventory_model');
|
||
|
$this->load->helper('url');
|
||
|
$this->load->library('email');
|
||
|
$this->load->helper('file');
|
||
|
$this->load->helper('common_helper');
|
||
|
$this->load->library('Ciqrcode');
|
||
|
date_default_timezone_set('Asia/Kathmandu');
|
||
|
$this->nepaliDateObject = new NepaliDate();
|
||
|
$this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject);
|
||
|
}
|
||
|
|
||
|
public function dashboard()
|
||
|
{
|
||
|
if (isset($_SESSION['admin_id'])) {
|
||
|
$data['currentURL'] = current_url();
|
||
|
//get logo
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
//get menu list
|
||
|
$data['subject_count'] = $this->db->count_all('subject');
|
||
|
$data['course_count'] = $this->db->count_all('course');
|
||
|
|
||
|
$data['classroom_count'] = $this->db->count_all('classroom');
|
||
|
$data['teacher_count'] = $this->db->count_all('teacher');
|
||
|
$data['student_count'] = $this->db->count_all('students');
|
||
|
$data['exam_count'] = $this->db->count_all('exam');
|
||
|
$data['session_count'] = $this->db->count_all('classroom_session');
|
||
|
$data['application_count'] = $this->db->count_all('applications');
|
||
|
$data['notification_count'] = $this->db->count_all('notifications');
|
||
|
|
||
|
// $data['current_report_data'] = $fee_type_data;
|
||
|
$course_query = "SELECT * FROM course WHERE is_active='yes'";
|
||
|
$data['courses'] = $this->Admin_model->get_query_result($course_query);
|
||
|
// report end by shivakumar
|
||
|
|
||
|
$data['menulist'] = $this->Admin_model->get_adminMenu();
|
||
|
// dd($data['menulist']);
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/dashboard');
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//subject start
|
||
|
|
||
|
public function item_unit()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Item Measurement Units';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
// dd($admin_info);
|
||
|
// $hr_db = $this->load->database('hr', TRUE);
|
||
|
|
||
|
if (isset($_POST['addItemUnit']) && $_POST['addItemUnit'] == 'Add') {
|
||
|
$title = $_POST['title'];
|
||
|
$short_label = $_POST['title'];
|
||
|
$isUnique = $this->Inventory_model->get_unique_name('title', $title, 'inventory_measurements');
|
||
|
|
||
|
if ($isUnique) {
|
||
|
$td['title'] = $title;
|
||
|
$td['short_label'] = $short_label;
|
||
|
$td['is_active'] = 'yes';
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->insert('inventory_measurements', $td);
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Item Unit', 'New item unit has been added.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Item Unit', 'Item unit title already exist.'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/item-unit');
|
||
|
} else if (isset($_POST['updateItemUnit']) && $_POST['updateItemUnit'] == 'Update') {
|
||
|
$title = $_POST['title'];
|
||
|
$short_label = $_POST['short_label'];
|
||
|
$recId = $_POST['unitId'];
|
||
|
|
||
|
$td = array(
|
||
|
'title' => $title,
|
||
|
'short_label' => $short_label,
|
||
|
'is_active' => $_POST['is_active'],
|
||
|
'modified_on' => $this->nepali_current_date,
|
||
|
'modified_by' => $admin_info['admin_name'],
|
||
|
);
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update("inventory_measurements", $td);
|
||
|
|
||
|
if ($update) {
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Item Unit', 'Record has been updated successfully.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Item Unit', 'THE_ADD_ERROR_MSG'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/item-unit');
|
||
|
}
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_measurements');
|
||
|
$data['inventory_measurements'] = $query->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/item_units', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function item_category()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Item Category';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
if (isset($_POST['addCategory']) && $_POST['addCategory'] == 'Add') {
|
||
|
$title = $_POST['title'];
|
||
|
$classBased = $_POST['is_class_based'];
|
||
|
$isUnique = $this->Inventory_model->get_unique_name('title', $title, 'inventory_item_category');
|
||
|
|
||
|
if ($isUnique) {
|
||
|
$td['title'] = $title;
|
||
|
$td['class_based'] = $classBased;
|
||
|
$td['is_active'] = 'yes';
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->insert('inventory_item_category', $td);
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Category', 'Item category has been added.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Category', 'Item category already exist.'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/item-categories');
|
||
|
} else if (isset($_POST['updateCategory']) && $_POST['updateCategory'] == 'Update') {
|
||
|
$title = $_POST['title'];
|
||
|
$recId = $_POST['recId'];
|
||
|
|
||
|
$td = array(
|
||
|
'title' => $title,
|
||
|
'class_based' => $_POST['is_class_based'],
|
||
|
'is_active' => $_POST['is_active'],
|
||
|
'modified_on' => $this->nepali_current_date,
|
||
|
'modified_by' => $admin_info['admin_name'],
|
||
|
);
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update("inventory_item_category", $td);
|
||
|
|
||
|
if ($update) {
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Category', 'Record has been updated successfully.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Category', 'THE_ADD_ERROR_MSG'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/item-categories');
|
||
|
}
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_item_category');
|
||
|
$data['inventory_categories'] = $query->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/item-category', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function item_list()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Item Lists';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
if (isset($_POST['addItem']) && $_POST['addItem'] == 'Add') {
|
||
|
|
||
|
$config['upload_path'] = 'assets_inventory/images/items/';
|
||
|
$config['allowed_types'] = 'gif|jpg|png|jpeg';
|
||
|
$this->load->library('upload', $config);
|
||
|
$this->upload->initialize($config);
|
||
|
|
||
|
$title = $_POST['title'];
|
||
|
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
$photoSize = $_FILES['photo']['size'];
|
||
|
$update_array = array();
|
||
|
|
||
|
if ($photoSize > 0) {
|
||
|
if (!$this->upload->do_upload('photo')) {
|
||
|
$item_photo = "No-Image.jpg";
|
||
|
} else {
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
|
||
|
$item_photo = $photo['upload_data']['file_name'];
|
||
|
}
|
||
|
} else {
|
||
|
$item_photo = "No-Image.jpg";
|
||
|
}
|
||
|
|
||
|
$courses = isset($_POST['course_id']) && !empty($_POST['course_id']) ? $_POST['course_id'] : [];
|
||
|
|
||
|
// dd($_POST['course_id']);
|
||
|
|
||
|
$insert_array = array();
|
||
|
|
||
|
|
||
|
|
||
|
foreach ($courses as $c_key => $c_value) {
|
||
|
$td['title'] = $title;
|
||
|
$td['course_id'] = $c_value;
|
||
|
$td['category_id'] = $_POST['item_category'];
|
||
|
$td['measurement_id'] = $_POST['item_measurement_unit'];
|
||
|
$td['description'] = $_POST['description'];
|
||
|
$td['photo'] = $item_photo;
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
// If the item category is book.
|
||
|
if ($_POST['item_category'] == 1) {
|
||
|
$td['book_publication'] = $_POST['publication'];
|
||
|
$td['book_edition'] = $_POST['edition'];
|
||
|
$td['book_isbn'] = $_POST['isbn'];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
if ($_POST['item_category'] == 3) {
|
||
|
$td['title'] = $title;
|
||
|
$td['category_id'] = $_POST['item_category'];
|
||
|
$td['measurement_id'] = $_POST['item_measurement_unit'];
|
||
|
$td['description'] = $_POST['description'];
|
||
|
$td['photo'] = $item_photo;
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
if ($_POST['item_category'] == 3) {
|
||
|
// dd($_POST);
|
||
|
$td['item_variant'] = implode(',', $_POST['variant']);
|
||
|
}
|
||
|
|
||
|
echo '<pre>';[]
|
||
|
print_r($td);
|
||
|
}
|
||
|
|
||
|
$insert = $this->db->insert('inventory_items', $td);
|
||
|
|
||
|
if ($insert) {
|
||
|
array_push($insert_array, true);
|
||
|
} else {
|
||
|
array_push($insert_array, false);
|
||
|
}
|
||
|
|
||
|
// dd($td);
|
||
|
|
||
|
if (in_array(true, $insert_array)) {
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Item', 'Item has been added.'));
|
||
|
redirect(base_url() . 'admin/inventory/items');
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Item', 'Something went wrong. Please try again later.'));
|
||
|
redirect(base_url() . 'admin/inventory/items');
|
||
|
}
|
||
|
} else if (isset($_POST['updateItem']) && $_POST['updateItem'] == 'Update') {
|
||
|
$title = $_POST['title'];
|
||
|
$recId = $_POST['recId'];
|
||
|
// var_dump($_FILES);
|
||
|
|
||
|
$photoSize = $_FILES['photo']['size'];
|
||
|
// echo $photoSize;
|
||
|
$update_array = array();
|
||
|
|
||
|
if ($photoSize > 0) {
|
||
|
unlink('assets_inventory/images/items/' . $_POST['photo_name']);
|
||
|
$config['upload_path'] = 'assets_inventory/images/items/';
|
||
|
$config['allowed_types'] = 'gif|jpg|png|jpeg';
|
||
|
$this->load->library('upload', $config);
|
||
|
$this->upload->initialize($config);
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
|
||
|
if (!$this->upload->do_upload('photo')) {
|
||
|
$item_photo = "No-Image.jpg";
|
||
|
} else {
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
$item_photo = $photo['upload_data']['file_name'];
|
||
|
}
|
||
|
} else {
|
||
|
$item_photo = $_POST['photo_name'];
|
||
|
}
|
||
|
|
||
|
$courses = isset($_POST['course_id']) && !empty($_POST['course_id']) ? $_POST['course_id'] : [];
|
||
|
|
||
|
foreach ($courses as $c_key => $c_value) {
|
||
|
$td['title'] = $title;
|
||
|
$td['course_id'] = $c_value;
|
||
|
$td['category_id'] = $_POST['item_category'];
|
||
|
$td['measurement_id'] = $_POST['item_measurement_unit'];
|
||
|
$td['description'] = $_POST['description'];
|
||
|
$td['photo'] = $item_photo;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update('inventory_items', $td);
|
||
|
if ($update) {
|
||
|
array_push($update_array, true);
|
||
|
} else {
|
||
|
array_push($update_array, false);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (in_array(true, $update_array)) {
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Item', 'Item has been updated successfully.'));
|
||
|
redirect(base_url() . 'admin/inventory/items');
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Item', 'Something went wrong. Please try again later.'));
|
||
|
redirect(base_url() . 'admin/inventory/items');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$queryCategory = $this->db->query('select * from inventory_item_category WHERE is_active="yes"');
|
||
|
$data['inventory_categories'] = $queryCategory->result_array();
|
||
|
|
||
|
$queryItemUnit = $this->db->query('select * from inventory_measurements WHERE is_active="yes"');
|
||
|
$data['inventory_measurements'] = $queryItemUnit->result_array();
|
||
|
|
||
|
$queryCourse = $this->db->query('select * from course WHERE is_active="yes"');
|
||
|
$data['courses'] = $queryCourse->result_array();
|
||
|
|
||
|
$queryPublications = $this->db->query('select * from inventory_publications WHERE is_active="yes"');
|
||
|
$data['book_publications'] = $queryPublications->result_array();
|
||
|
|
||
|
$query = $this->db->query("SELECT i.*, IF(i.course_id is null, '-', c.course_name) as course_name from inventory_items i LEFT JOIN course c ON i.course_id = c.id");
|
||
|
$data['inventory_items'] = $query->result_array();
|
||
|
|
||
|
$queryVariants = $this->db->query('select * from inventory_variants WHERE is_active="yes"');
|
||
|
$data['inventory_variants'] = $queryVariants->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/item-list', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function item_purchase()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Purchase List';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
if (isset($_POST['deletePurchaseRecord']) && $_POST['deletePurchaseRecord'] == 'Confirm') {
|
||
|
|
||
|
// dd($_POST);
|
||
|
|
||
|
$purchase_record = $this->db->query("SELECT * FROM inventory_item_purchase WHERE id = " . $_POST['recId'])->row_array();
|
||
|
$item_stock = $this->db->query("SELECT * FROM inventory_stocks WHERE item_id = " . $purchase_record['item_id'])->row_array();
|
||
|
|
||
|
$ud['total_stock'] = $item_stock['total_stock'] - $purchase_record['qty'];
|
||
|
$ud['current_stock'] = $item_stock['current_stock'] - $purchase_record['qty'];
|
||
|
$ud['modified_on'] = $this->nepali_current_date;
|
||
|
$ud['modified_by'] = $admin_info['admin_name'];
|
||
|
$this->db->where('id', $item_stock['id']);
|
||
|
$this->db->update('inventory_stocks', $ud);
|
||
|
|
||
|
|
||
|
$this->db->where('id', $_POST['recId']);
|
||
|
$delete = $this->db->delete('inventory_item_purchase');
|
||
|
|
||
|
if ($delete) {
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Purchase Record', 'The purchase record has been deleted successfully.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-purchase');
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Purchase Record', 'Something went wrong. Please try again later.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-purchase');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_items');
|
||
|
$data['inventory_items'] = $query->result_array();
|
||
|
|
||
|
$purchaseQuery = $this->db->query('select ip.*, i.title from inventory_item_purchase ip LEFT JOIN inventory_items i ON i.id=ip.item_id');
|
||
|
$data['purchase_list'] = $purchaseQuery->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/item-purchase', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function add_edit_new_entry($id)
|
||
|
{
|
||
|
$data['currentURL'] = current_url();
|
||
|
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_items');
|
||
|
$data['inventory_items'] = $query->result_array();
|
||
|
$query = $this->db->query('select * from inventory_suppliers');
|
||
|
$data['inventory_suppliers'] = $query->result_array();
|
||
|
|
||
|
$today_date_time = explode(' ', $this->nepali_current_date);
|
||
|
|
||
|
$data['today_date'] = $today_date_time[0];
|
||
|
|
||
|
if ($id == 0) {
|
||
|
$data['title'] = 'Add New Entry';
|
||
|
} else {
|
||
|
$purchaseQuery = $this->db->query('select ip.*, i.title from inventory_item_purchase ip LEFT JOIN inventory_items i ON i.id=ip.item_id WHERE ip.id =' . $id);
|
||
|
|
||
|
|
||
|
$data['purchase_item'] = $purchaseQuery->row_array();
|
||
|
$data['title'] = $data['purchase_item']['title'];
|
||
|
}
|
||
|
|
||
|
if ($_POST > 0) {
|
||
|
|
||
|
if (isset($_POST['addPurchase']) && $_POST['addPurchase'] == 'Add') {
|
||
|
|
||
|
$config['upload_path'] = 'assets_inventory/images/purchase/';
|
||
|
$config['allowed_types'] = 'gif|jpg|png|jpeg';
|
||
|
$this->load->library('upload', $config);
|
||
|
$this->upload->initialize($config);
|
||
|
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
$photoSize = $_FILES['photo']['size'];
|
||
|
echo $photoSize;
|
||
|
|
||
|
if ($photoSize > 0) {
|
||
|
if (!$this->upload->do_upload('photo')) {
|
||
|
$item_photo = "No-Image.jpg";
|
||
|
} else {
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
|
||
|
$item_photo = $photo['upload_data']['file_name'];
|
||
|
}
|
||
|
} else {
|
||
|
$item_photo = "No-Image.jpg";
|
||
|
}
|
||
|
|
||
|
// Start of Inserting in stocks table for tracking stock of items.
|
||
|
|
||
|
$item_stock = $this->db->query("SELECT * FROM inventory_stocks WHERE item_id = " . $_POST['item'])->row_array();
|
||
|
|
||
|
if (empty($item_stock)) {
|
||
|
$sid['item_id'] = $_POST['item'];
|
||
|
$sid['total_stock'] = $_POST['qty'];
|
||
|
$sid['current_stock'] = $_POST['qty'];
|
||
|
$sid['sold_stock'] = 0;
|
||
|
$sid['created_on'] = $this->nepali_current_date;
|
||
|
$sid['modified_on'] = $this->nepali_current_date;
|
||
|
$sid['created_by'] = $admin_info['admin_name'];
|
||
|
$sid['modified_by'] = $admin_info['admin_name'];
|
||
|
$this->db->insert('inventory_stocks', $sid);
|
||
|
} else {
|
||
|
$sid['total_stock'] = $item_stock['total_stock'] + $_POST['qty'];
|
||
|
$sid['current_stock'] = $item_stock['current_stock'] + $_POST['qty'];
|
||
|
$sid['modified_on'] = $this->nepali_current_date;
|
||
|
$sid['modified_by'] = $admin_info['admin_name'];
|
||
|
$this->db->where('id', $item_stock['id']);
|
||
|
$this->db->update('inventory_stocks', $sid);
|
||
|
}
|
||
|
// End of Inserting in stocks table for tracking stock of items.
|
||
|
|
||
|
|
||
|
$td['item_id'] = $_POST['item'];
|
||
|
$td['purchased_from'] = $_POST['supplier'];
|
||
|
$td['purchased_on'] = $_POST['purchased_on'];
|
||
|
$td['qty'] = $_POST['qty'];
|
||
|
$td['remaining_qty'] = $_POST['qty'];
|
||
|
$td['unit_price'] = $_POST['unit_price'];
|
||
|
$td['total_price'] = $_POST['total_price'];
|
||
|
$td['selling_price'] = $_POST['selling_price'];
|
||
|
$td['paid_amount'] = $_POST['paid_amount'];
|
||
|
$td['remaining_amount'] = $_POST['remaining_amount'];
|
||
|
$td['remarks'] = $_POST['remarks'];
|
||
|
$td['photo'] = $item_photo;
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
// dd($_POST);
|
||
|
$insert = $this->db->insert('inventory_item_purchase', $td);
|
||
|
|
||
|
if ($insert) {
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'New Purchase Record', 'New purchase record has been added successfully.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-purchase');
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'New Purchase Record', 'Something went wrong. Please try again later.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-purchase');
|
||
|
}
|
||
|
} else if (isset($_POST['updatePurchase']) && $_POST['updatePurchase'] == 'Update') {
|
||
|
print_r($_FILES);
|
||
|
$photoSize = $_FILES['photo']['size'];
|
||
|
$recId = $_POST['recId'];
|
||
|
|
||
|
if ($photoSize > 0) {
|
||
|
unlink('assets_inventory/images/purchase/' . $_POST['photo_name']);
|
||
|
$config['upload_path'] = 'assets_inventory/images/purchase/';
|
||
|
$config['allowed_types'] = 'gif|jpg|png|jpeg';
|
||
|
$this->load->library('upload', $config);
|
||
|
$this->upload->initialize($config);
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
|
||
|
if (!$this->upload->do_upload('photo')) {
|
||
|
$item_photo = "No-Image.jpg";
|
||
|
} else {
|
||
|
$photo = array('upload_data' => $this->upload->data());
|
||
|
$item_photo = $photo['upload_data']['file_name'];
|
||
|
}
|
||
|
} else {
|
||
|
$item_photo = $_POST['photo_name'];
|
||
|
}
|
||
|
|
||
|
|
||
|
$purchase_record = $this->db->query("SELECT * FROM inventory_item_purchase WHERE id = $recId")->row_array();
|
||
|
$item_stock = $this->db->query("SELECT * FROM inventory_stocks WHERE item_id = " . $_POST['item'])->row_array();
|
||
|
// Start of clearing old records in stocks
|
||
|
$sid['total_stock'] = $item_stock['total_stock'] - $purchase_record['remaining_qty'];
|
||
|
$sid['current_stock'] = $item_stock['current_stock'] - $purchase_record['remaining_qty'];
|
||
|
$sid['modified_on'] = $this->nepali_current_date;
|
||
|
$sid['modified_by'] = $admin_info['admin_name'];
|
||
|
$this->db->where('id', $item_stock['id']);
|
||
|
$this->db->update('inventory_stocks', $sid);
|
||
|
// End of clearing old records in stocks
|
||
|
|
||
|
|
||
|
$td['item_id'] = $_POST['item'];
|
||
|
$td['purchased_from'] = $_POST['supplier'];
|
||
|
$td['purchased_on'] = $_POST['purchased_on'];
|
||
|
$td['qty'] = $_POST['qty'];
|
||
|
$td['remaining_qty'] = $_POST['qty'];
|
||
|
$td['unit_price'] = $_POST['unit_price'];
|
||
|
$td['total_price'] = $_POST['total_price'];
|
||
|
$td['selling_price'] = $_POST['selling_price'];
|
||
|
$td['paid_amount'] = $_POST['paid_amount'];
|
||
|
$td['remaining_amount'] = $_POST['remaining_amount'];
|
||
|
$td['remarks'] = $_POST['remarks'];
|
||
|
$td['photo'] = $item_photo;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update('inventory_item_purchase', $td);
|
||
|
// dd($_POST);
|
||
|
if ($update) {
|
||
|
// Start of Updating new records in stocks
|
||
|
$updated_item_stock = $this->db->query("SELECT * FROM inventory_stocks WHERE item_id = " . $_POST['item'])->row_array();
|
||
|
$uid['total_stock'] = $updated_item_stock['total_stock'] + $_POST['qty'];
|
||
|
$uid['current_stock'] = $updated_item_stock['current_stock'] + $_POST['qty'];
|
||
|
$uid['modified_on'] = $this->nepali_current_date;
|
||
|
$uid['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->where('id', $item_stock['id']);
|
||
|
$this->db->update('inventory_stocks', $uid);
|
||
|
// End of Updating new records in stocks
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Purchase Record', 'Purchase record has been updated successfully.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-purchase');
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Purchase Record', 'Something went wrong. Please try again later.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-purchase');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$data['recId'] = $id;
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/add-edit-new-entry', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function suppliers()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Suppliers';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
// dd($admin_info);
|
||
|
// $hr_db = $this->load->database('hr', TRUE);
|
||
|
|
||
|
if (isset($_POST['addSupplier']) && $_POST['addSupplier'] == 'Add') {
|
||
|
$name = $_POST['name'];
|
||
|
$address = $_POST['address'];
|
||
|
$contact_number = $_POST['contact_number'];
|
||
|
$isUnique = $this->Inventory_model->get_unique_name('name', $name, 'inventory_suppliers');
|
||
|
|
||
|
if ($isUnique) {
|
||
|
$td['name'] = $name;
|
||
|
$td['address'] = $address;
|
||
|
$td['contact_number'] = $contact_number;
|
||
|
$td['is_active'] = 'yes';
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->insert('inventory_suppliers', $td);
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Supplier', 'New supplier has been added.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Supplier', 'Supplier name already exist.'));
|
||
|
}
|
||
|
|
||
|
if (isset($_POST['purchaseId'])) {
|
||
|
redirect(base_url() . 'admin/inventory/add-edit-new-entry/' . $_POST['purchaseId']);
|
||
|
} else {
|
||
|
redirect(base_url() . 'admin/inventory/suppliers');
|
||
|
}
|
||
|
} else if (isset($_POST['updateItemUnit']) && $_POST['updateItemUnit'] == 'Update') {
|
||
|
$name = $_POST['name'];
|
||
|
$address = $_POST['address'];
|
||
|
$contact_number = $_POST['contact_number'];
|
||
|
$isUnique = $this->Inventory_model->get_unique_name('name', $name, 'inventory_suppliers');
|
||
|
if ($isUnique) {
|
||
|
$td = array(
|
||
|
'title' => $title,
|
||
|
'short_label' => $short_label,
|
||
|
'is_active' => $_POST['is_active'],
|
||
|
'modified_on' => $this->nepali_current_date,
|
||
|
'modified_by' => $admin_info['admin_name'],
|
||
|
);
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update("inventory_measurements", $td);
|
||
|
|
||
|
if ($update) {
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Supplier', 'Record has been updated successfully.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Supplier', 'THE_ADD_ERROR_MSG'));
|
||
|
}
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Supplier', 'Supplier name already exist.'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/suppliers');
|
||
|
}
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_suppliers');
|
||
|
$data['inventory_measurements'] = $query->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/suppliers', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function sales()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Sales';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_items');
|
||
|
$data['inventory_items'] = $query->result_array();
|
||
|
|
||
|
$studentQuery = $this->db->query("SELECT * FROM students WHERE is_active = 'yes'");
|
||
|
$data['students'] = $studentQuery->result_array();
|
||
|
|
||
|
$teacherQuery = $this->db->query("SELECT * FROM teacher WHERE is_active = 'yes'");
|
||
|
$data['teachers'] = $teacherQuery->result_array();
|
||
|
|
||
|
$salesQuery = $this->db->query('select iis.*, i.title, s.name, s.studentId from inventory_item_sales iis LEFT JOIN inventory_items i ON i.id=iis.item_id LEFT JOIN students s ON s.id = iis.userId');
|
||
|
$data['sales_list'] = $salesQuery->result_array();
|
||
|
|
||
|
$data['theExportHeader'] = 'Sales List' . '-' . date('YmdHis', strtotime($this->nepali_current_date));
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/sales', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function add_new_sales($id)
|
||
|
{
|
||
|
$data['currentURL'] = current_url();
|
||
|
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
$batchId = $data['school_info']['batch_id'];
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
|
||
|
$studentQuery = $this->db->query("SELECT s.*, cl.section_id,sb.roll_no,c.course_name,se.section_name FROM students s JOIN student_batch sb ON sb.student_id=s.id AND sb.batch_id=$batchId JOIN classroom cl ON cl.id = sb.classroom_id AND s.course=cl.course_id JOIN section se ON cl.section_id=se.id JOIN course c ON c.id=cl.course_id WHERE s.is_active = 'yes'");
|
||
|
$data['students'] = $studentQuery->result_array();
|
||
|
// dd($data['students']);
|
||
|
$teacherQuery = $this->db->query("SELECT * FROM teacher WHERE is_active = 'yes'");
|
||
|
$data['teachers'] = $teacherQuery->result_array();
|
||
|
|
||
|
$query = $this->db->query('SELECT i.*, iis.current_stock as available_stock, m.title as unit_label, m.short_label from inventory_items i JOIN inventory_stocks iis ON i.id = iis.item_id LEFT JOIN inventory_measurements m ON m.id = i.measurement_id');
|
||
|
$data['inventory_items'] = $query->result_array();
|
||
|
|
||
|
foreach ($data['inventory_items'] as $i_key => $item) {
|
||
|
$item_purchases = $this->db->query('SELECT * FROM inventory_item_purchase WHERE item_id = ' . $item['id'] . ' AND remaining_qty > 0 ORDER BY selling_price ASC')->result_array();
|
||
|
|
||
|
$data['inventory_items'][$i_key]['item_purchases'] = $item_purchases;
|
||
|
}
|
||
|
// dd($data['inventory_items']);
|
||
|
|
||
|
$today_date_time = explode(' ', $this->nepali_current_date);
|
||
|
|
||
|
$data['today_date'] = $today_date_time[0];
|
||
|
|
||
|
if ($id == 0) {
|
||
|
$data['title'] = 'Add New Entry';
|
||
|
}
|
||
|
|
||
|
if ($_POST > 0) {
|
||
|
if (isset($_POST['addSalesEntry']) && $_POST['addSalesEntry'] == 'Submit') {
|
||
|
// dd($_POST);
|
||
|
|
||
|
$items = $_POST['itemId'];
|
||
|
$itemQty = $_POST['itemQty'];
|
||
|
$purchaseId = $_POST['purchaseId'];
|
||
|
$studentId = $_POST['studentId'];
|
||
|
$sellingPrice = $_POST['sellingPrice'];
|
||
|
$insert_array = array();
|
||
|
|
||
|
// $dateTime = str_replace(':', '', str_replace(' ', '', str_replace('-', '', $this->nepali_current_date)));
|
||
|
|
||
|
|
||
|
// str_replace(':', '', str_replace(' ', '', str_replace('-', '', strtotime($this->nepali_current_date))));
|
||
|
$salesId = str_replace(':', '', str_replace(' ', '', str_replace('-', '', $this->nepali_current_date)));
|
||
|
|
||
|
// print_r($dateTime);
|
||
|
// dd($insert_array);
|
||
|
|
||
|
// for(int a = 0; a < count($items)
|
||
|
foreach ($items as $i_key => $item) {
|
||
|
|
||
|
$td['item_id'] = $item;
|
||
|
$td['userId'] = $studentId[$i_key];
|
||
|
$td['qty'] = $itemQty[$i_key];
|
||
|
$td['salesId'] = $salesId;
|
||
|
$td['unit_price'] = $sellingPrice[$i_key];
|
||
|
$td['sales_on'] = $this->nepali_current_date;
|
||
|
$td['total_amount'] = $itemQty[$i_key] * $sellingPrice[$i_key];
|
||
|
$td['paid_amount'] = $itemQty[$i_key] * $sellingPrice[$i_key];
|
||
|
$td['remaining_amount'] = $td['paid_amount'] - $td['total_amount'];
|
||
|
|
||
|
// Start of updating stock record in inventory_stocks table
|
||
|
$item_stocks = $this->db->query('SELECT * FROM inventory_stocks WHERE item_id = ' . $item)->row_array();
|
||
|
$is_td['current_stock'] = $item_stocks['current_stock'] - $td['qty'];
|
||
|
$is_td['sold_stock'] = $item_stocks['sold_stock'] + $td['qty'];
|
||
|
$is_td['modified_on'] = $this->nepali_current_date;
|
||
|
$is_td['modified_by'] = $admin_info['admin_name'];
|
||
|
$this->db->where('id', $item_stocks['id']);
|
||
|
$this->db->update('inventory_stocks', $is_td);
|
||
|
// End of updating stock record in inventory_stocks table
|
||
|
|
||
|
|
||
|
// Updating stock record in purchase table
|
||
|
$item_purchase = $this->db->query('SELECT * FROM inventory_item_purchase WHERE id = ' . $purchaseId[$i_key])->row_array();
|
||
|
$ip_td['remaining_qty'] = $item_purchase['remaining_qty'] - $td['qty'];
|
||
|
$ip_td['modified_on'] = $this->nepali_current_date;
|
||
|
$ip_td['modified_by'] = $admin_info['admin_name'];
|
||
|
$this->db->where('id', $item_purchase['id']);
|
||
|
$this->db->update('inventory_item_purchase', $ip_td);
|
||
|
// End of Updating stock record in purchase table
|
||
|
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$insert = $this->db->insert('inventory_item_sales', $td);
|
||
|
|
||
|
if ($insert) {
|
||
|
array_push($insert_array, true);
|
||
|
} else {
|
||
|
array_push($insert_array, false);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!in_array(false, $insert_array)) {
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Sales Record', 'New sales record has been added successfully.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-sales');
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Sales Record', 'Something went wrong. Please try again later.'));
|
||
|
redirect(base_url() . 'admin/inventory/item-sales');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$data['recId'] = $id;
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/add-sales-record', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function item_stocks()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Item Stocks';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
// dd($admin_info);
|
||
|
// $hr_db = $this->load->database('hr', TRUE);
|
||
|
|
||
|
$query = $this->db->query('select iis.*, i.title from inventory_stocks iis JOIN inventory_items i ON i.id = iis.item_id');
|
||
|
$data['inventory_stocks'] = $query->result_array();
|
||
|
$data['theExportHeader'] = 'Stock List' . '-' . date('YmdHis', strtotime($this->nepali_current_date));
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/item-stocks', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function view_sales_details($id)
|
||
|
{
|
||
|
$data['currentURL'] = current_url();
|
||
|
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_items');
|
||
|
$data['inventory_items'] = $query->result_array();
|
||
|
$query = $this->db->query('select * from inventory_suppliers');
|
||
|
$data['inventory_suppliers'] = $query->result_array();
|
||
|
|
||
|
$today_date_time = explode(' ', $this->nepali_current_date);
|
||
|
$batchId = $data['school_info']['batch_id'];
|
||
|
|
||
|
$data['today_date'] = $today_date_time[0];
|
||
|
|
||
|
if ($id == 0) {
|
||
|
$data['title'] = 'Add New Entry';
|
||
|
} else {
|
||
|
// $purchaseQuery = $this->db->query('select ip.*, i.title from inventory_item_purchase ip LEFT JOIN inventory_items i ON i.id=ip.item_id WHERE ip.id =' . $id);
|
||
|
|
||
|
|
||
|
// $data['purchase_item'] = $purchaseQuery->row_array();
|
||
|
// $data['title'] = $data['purchase_item']['title'];
|
||
|
|
||
|
$saleDetail = $this->db->query("SELECT iis.*, i.title, s.name, c.course_name, se.section_name
|
||
|
FROM inventory_item_sales iis
|
||
|
JOIN students s ON s.id = iis.userId
|
||
|
JOIN student_batch sb ON sb.student_id=s.id AND sb.batch_id=$batchId
|
||
|
JOIN inventory_items i ON i.id = iis.item_id
|
||
|
JOIN classroom cl ON cl.id = sb.classroom_id AND s.course=cl.course_id
|
||
|
JOIN section se ON cl.section_id=se.id JOIN course c ON c.id=cl.course_id
|
||
|
WHERE iis.id = $id")->row_array();
|
||
|
// dd($saleDetail);
|
||
|
$data['title'] = $saleDetail['name'];
|
||
|
$data['sales_detail'] = $saleDetail;
|
||
|
}
|
||
|
$data['recId'] = $id;
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/view-sales-detail', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function view_item_details($id)
|
||
|
{
|
||
|
$data['currentURL'] = current_url();
|
||
|
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$today_date_time = explode(' ', $this->nepali_current_date);
|
||
|
$batchId = $data['school_info']['batch_id'];
|
||
|
|
||
|
$data['today_date'] = $today_date_time[0];
|
||
|
|
||
|
if ($id == 0) {
|
||
|
$data['title'] = 'Add New Entry';
|
||
|
} else {
|
||
|
$item = $this->db->query('SELECT i.* FROM inventory_items i WHERE i.id = ' . $id)->row_array();
|
||
|
|
||
|
$item_stocks = $this->db->query('SELECT * FROM inventory_stocks WHERE item_id = ' . $id)->row_array();
|
||
|
$item['stock'] = $item_stocks;
|
||
|
|
||
|
$item_purchase_history = $this->db->query("SELECT ip.*, s.name as supplier_name, s.contact_number as supplier_contact_number, s.address as supplier_address FROM inventory_item_purchase ip JOIN inventory_suppliers s ON s.id = ip.purchased_from WHERE item_id = " . $id)->result_array();
|
||
|
$item['purchases'] = $item_purchase_history;
|
||
|
// dd($item_purchase_history);
|
||
|
// $item_sales_history = $this->db->query("select iis.*, i.title, s.name, s.studentId from inventory_item_sales iis LEFT JOIN inventory_items i ON i.id=iis.item_id LEFT JOIN students s ON s.id = iis.userId WHERE item_id = " . $id)->result_array();
|
||
|
|
||
|
$item_sales_history = $this->db->query("SELECT iis.*, i.title, s.name, c.course_name, se.section_name
|
||
|
FROM inventory_item_sales iis
|
||
|
JOIN students s ON s.id = iis.userId
|
||
|
JOIN student_batch sb ON sb.student_id=s.id AND sb.batch_id=$batchId
|
||
|
JOIN inventory_items i ON i.id = iis.item_id
|
||
|
JOIN classroom cl ON cl.id = sb.classroom_id AND s.course=cl.course_id
|
||
|
JOIN section se ON cl.section_id=se.id JOIN course c ON c.id=cl.course_id WHERE iis.item_id = " . $id)->result_array();
|
||
|
|
||
|
$item['sales'] = $item_sales_history;
|
||
|
|
||
|
$item_measurement_units = $this->db->query("SELECT * FROM inventory_measurements")->result_array();
|
||
|
$data['measurement_units'] = $item_measurement_units;
|
||
|
|
||
|
$courses = $this->db->query("SELECT * FROM course")->result_array();
|
||
|
$data['courses'] = $courses;
|
||
|
|
||
|
$item_categories = $this->db->query("SELECT * FROM inventory_item_category ")->result_array();
|
||
|
$data['categories'] = $item_categories;
|
||
|
|
||
|
|
||
|
|
||
|
$data['item_info'] = $item;;
|
||
|
$data['title'] = $item['title'];
|
||
|
}
|
||
|
$data['recId'] = $id;
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/view-item-detail', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
|
||
|
public function view_invoice($id)
|
||
|
{
|
||
|
$data['currentURL'] = current_url();
|
||
|
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$today_date_time = explode(' ', $this->nepali_current_date);
|
||
|
$batchId = $data['school_info']['batch_id'];
|
||
|
$data['today_date'] = $today_date_time[0];
|
||
|
$data['recId'] = $id;
|
||
|
|
||
|
|
||
|
$salesId = urlsafe_b64decode($id);
|
||
|
|
||
|
$item_sales = $this->db->query('SELECT * FROM inventory_item_sales WHERE salesId = ' . $salesId)->result_array();
|
||
|
|
||
|
$item_id = $item_sales[0]['item_id'];
|
||
|
$userId = $item_sales[0]['userId'];
|
||
|
|
||
|
$item = $this->db->query("SELECT * FROM inventory_items WHERE id = $item_id")->row_array();
|
||
|
$student = $this->db->query("SELECT * FROM students WHERE id = $userId")->row_array();
|
||
|
|
||
|
dd($item_sales);
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/view-item-detail', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function book_publications()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Book Publications';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
// dd($admin_info);
|
||
|
// $hr_db = $this->load->database('hr', TRUE);
|
||
|
|
||
|
if (isset($_POST['addPublication']) && $_POST['addPublication'] == 'Add') {
|
||
|
$title = $_POST['title'];
|
||
|
$isUnique = $this->Inventory_model->get_unique_name('title', $title, 'inventory_publications');
|
||
|
|
||
|
if ($isUnique) {
|
||
|
$td['title'] = $title;
|
||
|
$td['is_active'] = 'yes';
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->insert('inventory_publications', $td);
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Book Publication', 'New publication has been added.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Book Publication', 'Publication title already exist.'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/book-publication');
|
||
|
} else if (isset($_POST['updatePublication']) && $_POST['updatePublication'] == 'Update') {
|
||
|
$title = $_POST['title'];
|
||
|
$recId = $_POST['unitId'];
|
||
|
|
||
|
$td = array(
|
||
|
'title' => $title,
|
||
|
'is_active' => $_POST['is_active'],
|
||
|
'modified_on' => $this->nepali_current_date,
|
||
|
'modified_by' => $admin_info['admin_name'],
|
||
|
);
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update("inventory_publications", $td);
|
||
|
|
||
|
if ($update) {
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Book Publication', 'Record has been updated successfully.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Book Publication', 'THE_ADD_ERROR_MSG'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/book-publication');
|
||
|
}
|
||
|
|
||
|
$query = $this->db->query('select * from inventory_publications');
|
||
|
$data['book_publications'] = $query->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/book_publications', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
|
||
|
public function item_variants()
|
||
|
{
|
||
|
if (!isset($_SESSION['admin_id']))
|
||
|
redirect(base_url() . 'admin');
|
||
|
$data['currentURL'] = current_url();
|
||
|
$data['title'] = 'Item Category';
|
||
|
$data['logo'] = $this->Admin_model->get_logo();
|
||
|
$data['school_info'] = $this->Admin_model->get_logo_from_setting();
|
||
|
|
||
|
$admin_info = $this->db->query("SELECT * FROM admin WHERE id = " . $_SESSION['admin_id'])->row_array();
|
||
|
|
||
|
if (isset($_POST['addVariant']) && $_POST['addVariant'] == 'Add') {
|
||
|
$title = $_POST['title'];
|
||
|
$category = $_POST['item_category'];
|
||
|
$isUnique = $this->Inventory_model->get_unique_name('title', $title, 'inventory_variants');
|
||
|
|
||
|
if ($isUnique) {
|
||
|
$td['title'] = $title;
|
||
|
$td['category'] = $category;
|
||
|
$td['is_active'] = 'yes';
|
||
|
$td['created_on'] = $this->nepali_current_date;
|
||
|
$td['modified_on'] = $this->nepali_current_date;
|
||
|
$td['created_by'] = $admin_info['admin_name'];
|
||
|
$td['modified_by'] = $admin_info['admin_name'];
|
||
|
|
||
|
$this->db->insert('inventory_variants', $td);
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Variants', 'Item variant has been added.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Variants', 'Item variant already exist.'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/item-variants');
|
||
|
} else if (isset($_POST['updateVariant']) && $_POST['updateVariant'] == 'Update') {
|
||
|
$title = $_POST['title'];
|
||
|
$recId = $_POST['recId'];
|
||
|
|
||
|
$td = array(
|
||
|
'title' => $title,
|
||
|
'category' => $_POST['item_category'],
|
||
|
'is_active' => $_POST['is_active'],
|
||
|
'modified_on' => $this->nepali_current_date,
|
||
|
'modified_by' => $admin_info['admin_name'],
|
||
|
);
|
||
|
$this->db->where('id', $recId);
|
||
|
$update = $this->db->update("inventory_variants", $td);
|
||
|
|
||
|
if ($update) {
|
||
|
|
||
|
$this->session->set_flashdata('success', str_replace('%s', 'Variants', 'Record has been updated successfully.'));
|
||
|
} else {
|
||
|
$this->session->set_flashdata('danger', str_replace('%s', 'Variants', 'THE_ADD_ERROR_MSG'));
|
||
|
}
|
||
|
redirect(base_url() . 'admin/inventory/item-variants');
|
||
|
}
|
||
|
|
||
|
$data['inventory_categories'] = $this->db->query("SELECT * FROM inventory_item_category WHERE is_active='yes'")->result_array();
|
||
|
$query = $this->db->query("SELECT iv.*, ic.title AS category_title FROM inventory_variants iv LEFT JOIN inventory_item_category ic ON iv.category=ic.id");
|
||
|
$data['inventory_variants'] = $query->result_array();
|
||
|
|
||
|
$this->load->view('inventory/header', $data);
|
||
|
$this->load->view('inventory/item-variants', $data);
|
||
|
$this->load->view('inventory/footer');
|
||
|
}
|
||
|
}
|