MOON
Server: Apache
System: Linux 101-53-147-124.cprapid.com 4.18.0-553.121.1.el8_10.x86_64 #1 SMP Thu Apr 30 09:06:34 EDT 2026 x86_64
User: clientsoftwares (1005)
PHP: 8.2.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
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);
    }
}