BBnepal-Accounts/account/application/controllers/inventory/Sales.php
2024-10-08 15:47:07 +05:45

127 lines
5.4 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Sales extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('MStocks');
$this->load->model('MSales');
checkLogin();
}
public function _remap($alias = "", $params = array())
{
$data['dataValue'] = $this->session;
$data['pageTitle'] = "Sales";
switch ($alias) {
case 'create':
$data['items'] = $this->MStocks->getSellableItems();
$data['fiscalStart'] = NepaliDate($this->session->userdata['FiscalYear']->fiscalyear_from);
$data['fiscalEnd'] = NepaliDate($this->session->userdata['FiscalYear']->fiscalyear_to);
loadView("inventory/sales/create", $data);
break;
case 'store':
// print_r(filter_var($_POST['salesDate']));die;
if (isset($_POST['accounts_id'])) {
$TableData = array(
'transaction_type' => "Sales Entry",
'accounts_id' => filter_var($_POST['accounts_id']),
'sales_date' => filter_var($_POST['salesDate']),
'discount' => filter_var($_POST['discountpercentage']),
'vatToggle' => filter_var($_POST['vatToggleValue']),
'created_on' => date('Y-m-d H:i:s'),
'created_by' => 'admin',
'remarks' => '',
'status' => 1,
);
$this->db->insert('tbl_sales', $TableData);
$sales_id = $this->db->insert_id();
$i = 0;
// print_r($_POST);die;
foreach ($_POST['item_id'] as $item) {
if ($item != 0 || $_POST['qty'][$i] != 0 || $_POST['rate'][$i] != 0 || $_POST['vat'][$i] != 0) :
$TableData = array(
'sales_id' => $sales_id,
'items_id' => $item,
'qty' => $_POST['qty'][$i],
'rate' => $_POST['rate'][$i],
'vat' => $_POST['vat'][$i],
'created_on' => date('Y-m-d H:i:s'),
'created_by' => 'admin',
'status' => 1,
);
$i += 1;
$this->db->insert('tbl_salesdetails', $TableData);
endif;
}
}
// print_r($TableData);
// die;
// $this->db->where('sales_id', $sales_id);
$this->MStocks->addSalesToStock($this->db->where('sales_id', $sales_id)->get('tbl_salesdetails')->result());
redirect("inventory/sales/list");
break;
case 'sales_register':
$data['SalesRecords'] = $this->MSales->getSalesRecords();
loadView("inventory/sales/register", $data);
break;
case 'details':
$id = $this->uri->segment(4);
$data['Sales'] = $this->db->where('sales_id', $id)->get("tbl_sales")->row();
$data['SalesDetails'] = $this->db->where('sales_id', $id)->get('tbl_salesdetails')->result();
loadView("inventory/sales/view", $data);
break;
case 'edit':
if (isset($_POST['submit'])) {
$id = $this->uri->segment(4);
$TableData = array(
'transaction_type' => filter_var($_POST['transaction_type']),
'accounts_id' => filter_var($_POST['accounts_id']),
'sales_date' => filter_var($_POST['sales_date']),
'discount' => filter_var($_POST['discountpercentage']),
'created_on' => date('Y-m-d H:i:s'),
'created_by' => 'admin',
'remarks' => filter_var($_POST['remarks']),
'status' => 1,
);
$this->db->where('sales_id', $id);
$this->db->update('tbl_sales', $TableData);
redirect("inventory/sales/list");
}
loadView("inventory/sales/edit", $data);
break;
case 'delete':
$id = $this->uri->segment(4);
$this->db->where('sales_id', $id);
$this->db->delete('tbl_sales');
$this->db->where('sales_id', $id);
$this->db->delete('tbl_salesdetails');
redirect("inventory/sales/list");
break;
case 'getunitbyitem':
$id = $this->uri->segment(4);
$unit = $this->MStocks->getUnitByItemId($id);
echo json_encode($unit);
break;
default:
$data['SalesRecords'] = $this->MSales->getSalesRecords();
loadView("inventory/sales/list", $data);
}
}
// public function getUnitByItemId($id) {
// $unitName = $this->MStocks->getUnitByItemId($id);
// echo json_encode(['unitName' => $unitName]);
// }
}