File: /home/clientsoftwares/public_html/multirest.clientsoftwares.com/application/controllers/Sales.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
//require(APPPATH . 'libraries/REST_Controller.php');
// require(APPPATH . 'libraries/Format.php');
// use \Firebase\JWT\JWT;
class Product extends Cl_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->model('Authentication_model');
$this->load->model('Common_model');
$this->load->model('Sale_model');
$this->load->model('Kitchen_model');
$this->load->model('Waiter_model');
$this->load->model('Master_model');
$this->load->library('form_validation');
$this->Common_model->setDefaultTimezone();
}
public function AddSale()
{
$data = array();
$data['customer_id'] = $this->input->get('customer_id');
$data['sale_no'] = $this->input->get('invoiceNumber');
$data['customerPin'] = $this->input->get('customerPin');
$data['customerName'] = $this->input->get('customerName');
$company_details = $this->Common_model->getDataById($data['customer_id'], "tbl_companies");
$data['subs_id'] = $company_details->subs_id;
$data['total_items'] = $this->input->get('total_items');
$data['sub_total'] = $this->input->get('totalTaxableAmount');
//$data['disc'] = $this->input->get('disc');
//$data['disc_actual'] = $this->input->get('disc_actual');
$data['vat'] = $this->input->get('totalTaxAmount');
$data['paid_amount'] = $this->input->get('totalAmount');
$data['due_amount'] = $this->input->get('totalAmount');
if ($this->input->get('due_payment_date')) {
$data['due_payment_date'] = $this->input->get('due_payment_date');
} else {
$data['due_payment_date'] = null;
}
$data['total_payable'] = $this->input->get('totalAmount');
$data['payment_method_id'] = $this->input->get('paymentTypeCode');
$data['user_id'] = $this->input->get('modifierId');
$data['user_name'] = $this->input->get('modifierName');
//$data['outlet_id'] = $this->session->userdata('outlet_id');
$data['sale_date'] = date('Y-m-d');
$data['sale_time'] = date('h:i A');
//$outlet_id = $this->input->get('outlet_id');
//$sale_no = $this->db->query("SELECT count(id) as bno FROM tbl_sales WHERE outlet_id=$outlet_id")->row('bno');
//$sale_no = str_pad($sale_no + 1, 6, '0', STR_PAD_LEFT);
$data['sale_no'] = $this->input->get('invoiceNumber');
////////////
$food_menu_id = $this->input->get('food_menu_id');
$menu_name = $this->input->get('menu_name');
$price = $this->input->get('price');
$qty = $this->input->get('qty');
$discount_amount = $this->input->get('discountNHiddenTotal');
$total = $this->input->get('total');
/////////////////////
$i = 0;
$this->db->trans_begin();
$query = $this->db->insert('tbl_sales', $data);
$sales_id = $this->db->insert_id();
$comsump = array();
$comsump['outlet_id'] = $this->input->get('outlet_id');
$comsump['date'] = date('Y-m-d');
$comsump['date_time'] = date('h:i A');
$comsump['user_id'] = $this->input->get('user_id');
$comsump['sale_id'] = $sales_id;
$query = $this->db->insert('tbl_sale_consumptions', $comsump);
$sale_consumption_id = $this->db->insert_id();
//////////////////////////////////
/*foreach ($food_menu_id as $value) {
$data1['food_menu_id'] = $value;
$data1['sales_id'] = $sales_id;
$data1['menu_name'] = $menu_name[$i];
$data1['price'] = $price[$i];
$data1['qty'] = $qty[$i];
$data1['discount_amount'] = $discount_amount[$i];
$data1['total'] = $total[$i];
$data1['user_id'] = $this->session->userdata('user_id');
$data1['outlet_id'] = $this->session->userdata('outlet_id');
$data1['cooking_status'] = 'New';
$this->db->insert('tbl_sales_details', $data1);
//////////////////////
$ingredlist = $this->Sale_model->getFoodMenuIngredients($value);
foreach ($ingredlist as $inrow) {
$data3 = array();
$data3['sale_consumption_id'] = $sale_consumption_id;
$data3['ingredient_id'] = $inrow->ingredient_id;
$data3['consumption'] = $inrow->consumption * $qty[$i];
$data3['user_id'] = $this->session->userdata('user_id');
$data3['outlet_id'] = $this->session->userdata('outlet_id');
$this->db->insert('tbl_sale_consumptions_of_menus', $data3);
}
//////////////////////
$i++;
}*/
$returndata = array('sales_id' => $sales_id);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
} else {
//echo json_encode($returndata);
$this->db->trans_commit();
}
echo json_encode([
"statusCode" => 201,
"success" => true,
"error" => null,
"result" => [
"curRcptNo" => $this->input->get('invoiceNumber'),
"totRcptNo" => $this->input->get('invoiceNumber'),
"intrlData" => "6HC662KHKBNDXQRP7GGHQ6YRQM",
"rcptSign" => "FTTUJYUUKLUZ4Q7K",
"sdcDateTime" => "20240220111344",
"branchInfo" => null,
"qrCode" => "https://etimssbx.kra.go.ke/common/link/etims/receipt/indexEtimsReceiptData?Data=P051650007Q00FTTUJYUUKLUZ4Q7K"
]
]);
}
public function AddCreditNote()
{
$data = array();
$data['customer_id'] = $this->input->get('customer_id');
$data['sale_no'] = $this->input->get('invoiceNumber');
$data['originalInvoiceNumber'] = $this->input->get('originalInvoiceNumber');
$data['creditNoteReasonCode'] = $this->input->get('creditNoteReasonCode');
$data['customerPin'] = $this->input->get('customerPin');
$data['customerName'] = $this->input->get('customerName');
$company_details = $this->Common_model->getDataById($data['customer_id'], "tbl_companies");
$data['subs_id'] = $company_details->subs_id;
$data['total_items'] = $this->input->get('total_items');
$data['sub_total'] = $this->input->get('totalTaxableAmount');
//$data['disc'] = $this->input->get('disc');
//$data['disc_actual'] = $this->input->get('disc_actual');
$data['vat'] = $this->input->get('totalTaxAmount');
$data['paid_amount'] = $this->input->get('totalAmount');
$data['due_amount'] = $this->input->get('totalAmount');
if ($this->input->get('due_payment_date')) {
$data['due_payment_date'] = $this->input->get('due_payment_date');
} else {
$data['due_payment_date'] = null;
}
$data['total_payable'] = $this->input->get('totalAmount');
$data['payment_method_id'] = $this->input->get('paymentTypeCode');
$data['user_id'] = $this->input->get('modifierId');
$data['user_name'] = $this->input->get('modifierName');
//$data['outlet_id'] = $this->session->userdata('outlet_id');
$data['sale_date'] = date('Y-m-d');
$data['sale_time'] = date('h:i A');
//$outlet_id = $this->input->get('outlet_id');
//$sale_no = $this->db->query("SELECT count(id) as bno FROM tbl_sales WHERE outlet_id=$outlet_id")->row('bno');
//$sale_no = str_pad($sale_no + 1, 6, '0', STR_PAD_LEFT);
$data['sale_no'] = $this->input->get('invoiceNumber');
////////////
$food_menu_id = $this->input->get('food_menu_id');
$menu_name = $this->input->get('menu_name');
$price = $this->input->get('price');
$qty = $this->input->get('qty');
$discount_amount = $this->input->get('discountNHiddenTotal');
$total = $this->input->get('total');
/////////////////////
$i = 0;
$this->db->trans_begin();
$query = $this->db->insert('tbl_sales', $data);
$sales_id = $this->db->insert_id();
$comsump = array();
$comsump['outlet_id'] = $this->input->get('outlet_id');
$comsump['date'] = date('Y-m-d');
$comsump['date_time'] = date('h:i A');
$comsump['user_id'] = $this->input->get('user_id');
$comsump['sale_id'] = $sales_id;
$query = $this->db->insert('tbl_sale_consumptions', $comsump);
$sale_consumption_id = $this->db->insert_id();
//////////////////////////////////
/*foreach ($food_menu_id as $value) {
$data1['food_menu_id'] = $value;
$data1['sales_id'] = $sales_id;
$data1['menu_name'] = $menu_name[$i];
$data1['price'] = $price[$i];
$data1['qty'] = $qty[$i];
$data1['discount_amount'] = $discount_amount[$i];
$data1['total'] = $total[$i];
$data1['user_id'] = $this->session->userdata('user_id');
$data1['outlet_id'] = $this->session->userdata('outlet_id');
$data1['cooking_status'] = 'New';
$this->db->insert('tbl_sales_details', $data1);
//////////////////////
$ingredlist = $this->Sale_model->getFoodMenuIngredients($value);
foreach ($ingredlist as $inrow) {
$data3 = array();
$data3['sale_consumption_id'] = $sale_consumption_id;
$data3['ingredient_id'] = $inrow->ingredient_id;
$data3['consumption'] = $inrow->consumption * $qty[$i];
$data3['user_id'] = $this->session->userdata('user_id');
$data3['outlet_id'] = $this->session->userdata('outlet_id');
$this->db->insert('tbl_sale_consumptions_of_menus', $data3);
}
//////////////////////
$i++;
}*/
$returndata = array('sales_id' => $sales_id);
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
} else {
//echo json_encode($returndata);
$this->db->trans_commit();
}
echo json_encode([
"statusCode" => 201,
"success" => true,
"error" => null,
"result" => [
"curRcptNo" => $this->input->get('invoiceNumber'),
"totRcptNo" => $this->input->get('invoiceNumber'),
"intrlData" => "6HC662KHKBNDXQRP7GGHQ6YRQM",
"rcptSign" => "FTTUJYUUKLUZ4Q7K",
"sdcDateTime" => "20240220111344",
"branchInfo" => null,
"qrCode" => "https://etimssbx.kra.go.ke/common/link/etims/receipt/indexEtimsReceiptData?Data=P051650007Q00FTTUJYUUKLUZ4Q7K"
]
]);
}
public function receipt()
{
$data = array();
$this->load->view('pdf/api/invoice', $data);
}
}