mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-07-12 16:07:26 -04:00
Replaces calls to config('OSPOS')
- In controllers, models, helpers and libraries - Reduced down to one call per class - Update the OSPOS config on update to ospos_app_config table
This commit is contained in:
committed by
Steve Ireland
parent
bde3cb22c8
commit
2dd8a62e34
@@ -44,7 +44,7 @@ class OSPOSRules
|
||||
|
||||
//GCaptcha Check
|
||||
$gcaptcha_enabled = array_key_exists('gcaptcha_enable', config('OSPOS')->settings)
|
||||
? config('OSPOS')->settings['gcaptcha_enable']
|
||||
? $config['gcaptcha_enable']
|
||||
: false;
|
||||
|
||||
if($gcaptcha_enabled)
|
||||
@@ -73,7 +73,7 @@ class OSPOSRules
|
||||
if(!empty($response))
|
||||
{
|
||||
$check = [
|
||||
'secret' => config('OSPOS')->settings['gcaptcha_secret_key'],
|
||||
'secret' => $config['gcaptcha_secret_key'],
|
||||
'response' => $response,
|
||||
'remoteip' => $this->request->getIPAddress()
|
||||
];
|
||||
|
||||
@@ -5,11 +5,13 @@ namespace App\Controllers;
|
||||
use App\Models\Cashup;
|
||||
use App\Models\Expense;
|
||||
use App\Models\Reports\Summary_payments;
|
||||
use CodeIgniter\Model;
|
||||
|
||||
/**
|
||||
* @property cashup cashup
|
||||
* @property expense expense
|
||||
* @property summary_payments summary_payments
|
||||
* @property array $config
|
||||
*/
|
||||
class Cashups extends Secure_Controller
|
||||
{
|
||||
@@ -20,6 +22,7 @@ class Cashups extends Secure_Controller
|
||||
$this->cashup = model('Cashup');
|
||||
$this->expense = model('Expense');
|
||||
$this->summary_payments = model('Reports/Summary_payments');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
public function getIndex(): void
|
||||
@@ -102,7 +105,7 @@ class Cashups extends Secure_Controller
|
||||
$cash_ups_info->closed_amount_cash = $cash_ups_info->open_amount_cash + $cash_ups_info->transfer_amount_cash;
|
||||
|
||||
// if it's date mode only and not date & time truncate the open and end date to date only
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($this->config['date_or_time_format']))
|
||||
{
|
||||
// search for all the payments given the time range
|
||||
$inputs = [
|
||||
@@ -186,10 +189,10 @@ class Cashups extends Secure_Controller
|
||||
public function save(int $cashup_id = -1): void //TODO: Need to replace -1 with a constant in constants.php
|
||||
{
|
||||
$open_date = $this->request->getPost('open_date', FILTER_SANITIZE_STRING);
|
||||
$open_date_formatter = date_create_from_format(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $open_date);
|
||||
$open_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $open_date);
|
||||
|
||||
$close_date = $this->request->getPost('close_date', FILTER_SANITIZE_NUMBER_INT);
|
||||
$close_date_formatter = date_create_from_format(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $close_date);
|
||||
$close_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $close_date);
|
||||
|
||||
$cash_up_data = [
|
||||
'open_date' => $open_date_formatter->format('Y-m-d H:i:s'),
|
||||
@@ -264,4 +267,4 @@ class Cashups extends Secure_Controller
|
||||
{
|
||||
return ($closed_amount_cash - $open_amount_cash - $transfer_amount_cash + $closed_amount_due + $closed_amount_card + $closed_amount_check);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ use ReflectionException;
|
||||
* @property rounding_mode rounding_mode
|
||||
* @property stock_location stock_location
|
||||
* @property tax tax
|
||||
* @property array config
|
||||
*/
|
||||
class Config extends Secure_Controller
|
||||
{
|
||||
@@ -60,6 +61,7 @@ class Config extends Secure_Controller
|
||||
$this->rounding_mode = model('Rounding_mode');
|
||||
$this->stock_location = model('Stock_location');
|
||||
$this->tax = model('Tax');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -248,7 +250,7 @@ class Config extends Secure_Controller
|
||||
$data['dinner_tables'] = $this->dinner_table->get_all()->getResultArray();
|
||||
$data['customer_rewards'] = $this->customer_rewards->get_all()->getResultArray();
|
||||
$data['support_barcode'] = $this->barcode_lib->get_list_barcodes();
|
||||
$data['logo_exists'] = config('OSPOS')->settings['company_logo'] != '';
|
||||
$data['logo_exists'] = $this->config['company_logo'] != '';
|
||||
$data['line_sequence_options'] = $this->sale_lib->get_line_sequence_options();
|
||||
$data['register_mode_options'] = $this->sale_lib->get_register_mode_options();
|
||||
$data['invoice_type_options'] = $this->sale_lib->get_invoice_type_options();
|
||||
@@ -257,7 +259,7 @@ class Config extends Secure_Controller
|
||||
$data['tax_category_options'] = $this->tax_lib->get_tax_category_options();
|
||||
$data['tax_jurisdiction_options'] = $this->tax_lib->get_tax_jurisdiction_options();
|
||||
$data['show_office_group'] = $this->module->get_show_office_group();
|
||||
$data['currency_code'] = config('OSPOS')->settings['currency_code'];
|
||||
$data['currency_code'] = $this->config['currency_code'];
|
||||
|
||||
// load all the license statements, they are already XSS cleaned in the private function
|
||||
$data['licenses'] = $this->_licenses();
|
||||
@@ -269,7 +271,7 @@ class Config extends Secure_Controller
|
||||
$image_allowed_types = ['jpg','jpeg','gif','svg','webp','bmp','png','tif','tiff'];
|
||||
$data['image_allowed_types'] = array_combine($image_allowed_types,$image_allowed_types);
|
||||
|
||||
$data['selected_image_allowed_types'] = explode('|', config('OSPOS')->settings['image_allowed_types']);
|
||||
$data['selected_image_allowed_types'] = explode('|', $this->config['image_allowed_types']);
|
||||
|
||||
//Load Integrations Related fields
|
||||
$data['mailchimp'] = [];
|
||||
@@ -278,8 +280,8 @@ class Config extends Secure_Controller
|
||||
{
|
||||
$encrypter = Services::encrypter();
|
||||
|
||||
$data['mailchimp']['api_key'] = $encrypter->decrypt(config('OSPOS')->settings['mailchimp_api_key']);
|
||||
$data['mailchimp']['list_id'] = $encrypter->decrypt(config('OSPOS')->settings['mailchimp_list_id']);
|
||||
$data['mailchimp']['api_key'] = $encrypter->decrypt($this->config['mailchimp_api_key']);
|
||||
$data['mailchimp']['list_id'] = $encrypter->decrypt($this->config['mailchimp_list_id']);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -911,7 +913,7 @@ class Config extends Secure_Controller
|
||||
// switches immediately back to the register the mode reflects the change
|
||||
if($success == TRUE)
|
||||
{
|
||||
if(config('OSPOS')->settings['invoice_enable'])
|
||||
if($this->config['invoice_enable'])
|
||||
{
|
||||
$this->sale_lib->set_mode($batch_save_data['default_register_mode']);
|
||||
}
|
||||
@@ -939,7 +941,7 @@ class Config extends Secure_Controller
|
||||
*/
|
||||
private function _check_encryption(): bool //TODO: Hungarian notation
|
||||
{
|
||||
$encryption_key = config('OSPOS')->settings['encryption_key'];
|
||||
$encryption_key = $this->config['encryption_key'];
|
||||
|
||||
// check if the encryption_key config item is the default one
|
||||
if($encryption_key == '' || $encryption_key == 'YOUR KEY')
|
||||
|
||||
@@ -24,6 +24,7 @@ use stdClass;
|
||||
*
|
||||
* @property encryption encryption
|
||||
* @property encrypterinterface encrypter
|
||||
* @property array config
|
||||
*
|
||||
*/
|
||||
class Customers extends Persons
|
||||
@@ -38,10 +39,11 @@ class Customers extends Persons
|
||||
|
||||
$this->customer = model('Customer');
|
||||
$this->tax_code = model('Tax_code');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
|
||||
$encrypter = Services::encrypter();
|
||||
|
||||
$this->_list_id = $encrypter->decrypt(config('OSPOS')->settings['mailchimp_list_id']);
|
||||
$this->_list_id = $encrypter->decrypt($this->config['mailchimp_list_id']);
|
||||
}
|
||||
|
||||
public function getIndex(): void
|
||||
@@ -174,7 +176,7 @@ class Customers extends Persons
|
||||
$data['packages'] = $packages;
|
||||
$data['selected_package'] = $info->package_id;
|
||||
|
||||
if(config('OSPOS')->settings['use_destination_based_tax']) //TODO: This can be shortened for ternary notation
|
||||
if($$this->config['use_destination_based_tax']) //TODO: This can be shortened for ternary notation
|
||||
{
|
||||
$data['use_destination_based_tax'] = TRUE;
|
||||
}
|
||||
@@ -280,7 +282,7 @@ class Customers extends Persons
|
||||
'comments' => $this->request->getPost('comments', FILTER_SANITIZE_STRING)
|
||||
];
|
||||
|
||||
$date_formatter = date_create_from_format(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $this->request->getPost('date', FILTER_SANITIZE_STRING));
|
||||
$date_formatter = date_create_from_format($$this->config['dateformat'] . ' ' . $$this->config['timeformat'], $this->request->getPost('date', FILTER_SANITIZE_STRING));
|
||||
|
||||
$customer_data = [
|
||||
'consent' => $this->request->getPost('consent') != NULL,
|
||||
|
||||
@@ -136,9 +136,10 @@ class Expenses extends Secure_Controller
|
||||
|
||||
public function save(int $expense_id = -1): void //TODO: Replace -1 with a constant
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_STRING);
|
||||
|
||||
$date_formatter = date_create_from_format(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $newdate);
|
||||
$date_formatter = date_create_from_format($config['dateformat'] . ' ' . $config['timeformat'], $newdate);
|
||||
|
||||
$expense_data = [
|
||||
'date' => $date_formatter->format('Y-m-d H:i:s'),
|
||||
|
||||
@@ -74,11 +74,12 @@ class Giftcards extends Secure_Controller
|
||||
|
||||
public function view(int $giftcard_id = -1): void //TODO: Need to replace -1 with a constant
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$giftcard_info = $this->giftcard->get_info($giftcard_id);
|
||||
|
||||
$data['selected_person_name'] = ($giftcard_id > 0 && isset($giftcard_info->person_id)) ? $giftcard_info->first_name . ' ' . $giftcard_info->last_name : '';
|
||||
$data['selected_person_id'] = $giftcard_info->person_id;
|
||||
if(config('OSPOS')->settings['giftcard_number'] == 'random')
|
||||
if($config['giftcard_number'] == 'random')
|
||||
{
|
||||
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : '';
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ require_once('Secure_Controller.php');
|
||||
* @property stock_location stock_location
|
||||
* @property supplier supplier
|
||||
* @property tax_category tax_category
|
||||
* @property array config
|
||||
*/
|
||||
class Items extends Secure_Controller
|
||||
{
|
||||
@@ -56,6 +57,7 @@ class Items extends Secure_Controller
|
||||
$this->stock_location = model('Stock_location');
|
||||
$this->supplier = model('Supplier');
|
||||
$this->tax_category = model('Tax_category');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
public function getIndex(): void
|
||||
@@ -151,14 +153,14 @@ class Items extends Secure_Controller
|
||||
|
||||
if(sizeof($images) < 2 && !file_exists($thumb_path))
|
||||
{
|
||||
$config['image_library'] = 'gd2';
|
||||
$config['source_image'] = $image_path;
|
||||
$config['maintain_ratio'] = TRUE;
|
||||
$config['create_thumb'] = TRUE;
|
||||
$config['width'] = 52;
|
||||
$config['height'] = 32;
|
||||
$gd2_config['image_library'] = 'gd2';
|
||||
$gd2_config['source_image'] = $image_path;
|
||||
$gd2_config['maintain_ratio'] = TRUE;
|
||||
$gd2_config['create_thumb'] = TRUE;
|
||||
$gd2_config['width'] = 52;
|
||||
$gd2_config['height'] = 32;
|
||||
|
||||
$this->image->initialize($config);
|
||||
$this->image->initialize($gd2_config);
|
||||
$this->image->resize();
|
||||
|
||||
$thumb_path = $this->image->full_dst_path;
|
||||
@@ -285,9 +287,9 @@ class Items extends Secure_Controller
|
||||
}
|
||||
}
|
||||
|
||||
$use_destination_based_tax = (boolean)config('OSPOS')->settings['use_destination_based_tax'];
|
||||
$data['include_hsn'] = config('OSPOS')->settings['include_hsn'] === '1';
|
||||
$data['category_dropdown'] = config('OSPOS')->settings['category_dropdown'];
|
||||
$use_destination_based_tax = (boolean)$this->config['use_destination_based_tax'];
|
||||
$data['include_hsn'] = $this->config['include_hsn'] === '1';
|
||||
$data['category_dropdown'] = $this->config['category_dropdown'];
|
||||
|
||||
if($data['category_dropdown'] === '1')
|
||||
{
|
||||
@@ -301,8 +303,8 @@ class Items extends Secure_Controller
|
||||
|
||||
if($item_id === NEW_ITEM)
|
||||
{
|
||||
$data['default_tax_1_rate'] = config('OSPOS')->settings['default_tax_1_rate'];
|
||||
$data['default_tax_2_rate'] = config('OSPOS')->settings['default_tax_2_rate'];
|
||||
$data['default_tax_1_rate'] = $this->config['default_tax_1_rate'];
|
||||
$data['default_tax_2_rate'] = $this->config['default_tax_2_rate'];
|
||||
|
||||
$item_info->receiving_quantity = 1;
|
||||
$item_info->reorder_level = 1;
|
||||
@@ -315,7 +317,7 @@ class Items extends Secure_Controller
|
||||
|
||||
if($use_destination_based_tax)
|
||||
{
|
||||
$item_info->tax_category_id = config('OSPOS')->settings['default_tax_category'];
|
||||
$item_info->tax_category_id = $this->config['default_tax_category'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -323,7 +325,7 @@ class Items extends Secure_Controller
|
||||
$data['item_kit_disabled']
|
||||
&& $item_info->item_type == ITEM_KIT
|
||||
&& !$data['allow_temp_item']
|
||||
&& !(config('OSPOS')->settings['derive_sale_quantity'] === '1')
|
||||
&& !($this->config['derive_sale_quantity'] === '1')
|
||||
);
|
||||
|
||||
$data['item_info'] = $item_info;
|
||||
@@ -472,7 +474,7 @@ class Items extends Secure_Controller
|
||||
|
||||
foreach($result as &$item)
|
||||
{
|
||||
if(empty($item['item_number']) && config('OSPOS')->settings['barcode_generate_if_empty'])
|
||||
if(empty($item['item_number']) && $this->config['barcode_generate_if_empty'])
|
||||
{
|
||||
$barcode_instance = Barcode_lib::barcode_instance($item, $config);
|
||||
$item['item_number'] = $barcode_instance->getData();
|
||||
@@ -621,7 +623,7 @@ class Items extends Secure_Controller
|
||||
$new_item = TRUE;
|
||||
}
|
||||
|
||||
$use_destination_based_tax = (bool)config('OSPOS')->settings['use_destination_based_tax'];
|
||||
$use_destination_based_tax = (bool)$this->config['use_destination_based_tax'];
|
||||
|
||||
if(!$use_destination_based_tax)
|
||||
{
|
||||
@@ -734,9 +736,9 @@ class Items extends Secure_Controller
|
||||
'rules' => [
|
||||
'uploaded[items_image]',
|
||||
'is_image[items_image]',
|
||||
'max_size[items_image,' . config('OSPOS')->settings['image_max_size'] . ']',
|
||||
'max_dims[items_image,' . config('OSPOS')->settings['image_max_width'] . ',' . config('OSPOS')->settings['image_max_height'] . ']',
|
||||
'ext_in[items_image,' . config('OSPOS')->settings['image_allowed_types'] . ']'
|
||||
'max_size[items_image,' . $this->config['image_max_size'] . ']',
|
||||
'max_dims[items_image,' . $this->config['image_max_width'] . ',' . $this->config['image_max_height'] . ']',
|
||||
'ext_in[items_image,' . $this->config['image_allowed_types'] . ']'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
@@ -23,6 +23,7 @@ use ReflectionException;
|
||||
* @property receiving receiving
|
||||
* @property stock_location stock_location
|
||||
* @property supplier supplier
|
||||
* @property array config
|
||||
*/
|
||||
class Receivings extends Secure_Controller
|
||||
{
|
||||
@@ -40,6 +41,7 @@ class Receivings extends Secure_Controller
|
||||
$this->receiving = model('Receiving');
|
||||
$this->stock_location = model('Stock_location');
|
||||
$this->supplier = model('Supplier');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
public function getIndex(): void
|
||||
@@ -135,8 +137,8 @@ class Receivings extends Secure_Controller
|
||||
$this->token_lib->parse_barcode($quantity, $price, $item_id_or_number_or_item_kit_or_receipt);
|
||||
$quantity = ($mode == 'receive' || $mode == 'requisition') ? $quantity : -$quantity;
|
||||
$item_location = $this->receiving_lib->get_stock_source();
|
||||
$discount = config('OSPOS')->settings['default_receivings_discount'];
|
||||
$discount_type = config('OSPOS')->settings['default_receivings_discount_type'];
|
||||
$discount = $this->config['default_receivings_discount'];
|
||||
$discount_type = $this->config['default_receivings_discount_type'];
|
||||
|
||||
if($mode == 'return' && $this->receiving->is_valid_receipt($item_id_or_number_or_item_kit_or_receipt))
|
||||
{
|
||||
@@ -445,7 +447,7 @@ class Receivings extends Secure_Controller
|
||||
{
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_STRING); //TODO: newdate does not follow naming conventions
|
||||
|
||||
$date_formatter = date_create_from_format(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $newdate);
|
||||
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $newdate);
|
||||
$receiving_time = $date_formatter->format('Y-m-d H:i:s');
|
||||
|
||||
$receiving_data = [
|
||||
@@ -485,4 +487,4 @@ class Receivings extends Secure_Controller
|
||||
|
||||
$this->_reload(); //TODO: Hungarian Notation
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ use App\Models\Reports\Summary_sales;
|
||||
use App\Models\Reports\Summary_sales_taxes;
|
||||
use App\Models\Reports\Summary_suppliers;
|
||||
use App\Models\Reports\Summary_taxes;
|
||||
use CodeIgniter\HTTP\Uri;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
@@ -52,6 +51,7 @@ use Config\Services;
|
||||
* @property summary_sales_taxes summary_sales_taxes
|
||||
* @property summary_suppliers summary_suppliers
|
||||
* @property summary_taxes summary_taxes
|
||||
* @property array config
|
||||
*/
|
||||
class Reports extends Secure_Controller
|
||||
{
|
||||
@@ -61,6 +61,7 @@ class Reports extends Secure_Controller
|
||||
$request = Services::request();
|
||||
$method_name = $request->getUri()->getSegment(2);
|
||||
$exploder = explode('_', $method_name);
|
||||
$this->config = config('OSPOS')->settings;
|
||||
|
||||
if(sizeof($exploder) > 1)
|
||||
{
|
||||
@@ -1575,10 +1576,10 @@ class Reports extends Secure_Controller
|
||||
$sale_type_options = [];
|
||||
$sale_type_options['complete'] = lang('Reports.complete');
|
||||
$sale_type_options['sales'] = lang('Reports.completed_sales');
|
||||
if(config('OSPOS')->settings['invoice_enable'])
|
||||
if($this->config['invoice_enable'])
|
||||
{
|
||||
$sale_type_options['quotes'] = lang('Reports.quotes');
|
||||
if(config('OSPOS')->settings['work_order_enable'])
|
||||
if($this->config['work_order_enable'])
|
||||
{
|
||||
$sale_type_options['work_orders'] = lang('Reports.work_orders');
|
||||
}
|
||||
@@ -1909,13 +1910,13 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$subtitle = '';
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($this->config['date_or_time_format']))
|
||||
{
|
||||
$subtitle .= date(config('OSPOS')->settings['dateformat'], strtotime($inputs['start_date'])) . ' - ' . date(config('OSPOS')->settings['dateformat'], strtotime($inputs['end_date']));
|
||||
$subtitle .= date($this->config['dateformat'], strtotime($inputs['start_date'])) . ' - ' . date($this->config['dateformat'], strtotime($inputs['end_date']));
|
||||
}
|
||||
else
|
||||
{
|
||||
$subtitle .= date(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], strtotime(rawurldecode($inputs['start_date']))) . ' - ' . date(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], strtotime(rawurldecode($inputs['end_date'])));
|
||||
$subtitle .= date($this->config['dateformat'] . ' ' . $this->config['timeformat'], strtotime(rawurldecode($inputs['start_date']))) . ' - ' . date($this->config['dateformat'] . ' ' . $this->config['timeformat'], strtotime(rawurldecode($inputs['end_date'])));
|
||||
}
|
||||
|
||||
return $subtitle;
|
||||
|
||||
@@ -39,6 +39,7 @@ use ReflectionException;
|
||||
* @property item_kit item_kit
|
||||
* @property sale sale
|
||||
* @property stock_location stock_location
|
||||
* @property array config
|
||||
*/
|
||||
class Sales extends Secure_Controller
|
||||
{
|
||||
@@ -53,6 +54,7 @@ class Sales extends Secure_Controller
|
||||
$this->sale_lib = new Sale_lib();
|
||||
$this->tax_lib = new Tax_lib();
|
||||
$this->token_lib = new Token_lib();
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
public function getIndex(): void
|
||||
@@ -109,7 +111,7 @@ class Sales extends Secure_Controller
|
||||
'only_due' => FALSE,
|
||||
'only_check' => FALSE,
|
||||
'only_creditcard' => FALSE,
|
||||
'only_invoices' => config('OSPOS')->settings['invoice_enable'] && $this->request->getGet('only_invoices', FILTER_SANITIZE_NUMBER_INT),
|
||||
'only_invoices' => $this->config['invoice_enable'] && $this->request->getGet('only_invoices', FILTER_SANITIZE_NUMBER_INT),
|
||||
'is_valid_receipt' => $this->sale->is_valid_receipt($search)
|
||||
];
|
||||
|
||||
@@ -210,7 +212,7 @@ class Sales extends Secure_Controller
|
||||
$this->sale_lib->set_sale_type(SALE_TYPE_RETURN);
|
||||
}
|
||||
|
||||
if(config('OSPOS')->settings['dinner_table_enable'])
|
||||
if($this->config['dinner_table_enable'])
|
||||
{
|
||||
$occupied_dinner_table = $this->request->getPost('dinner_table', FILTER_SANITIZE_NUMBER_INT);
|
||||
$released_dinner_table = $this->sale_lib->get_dinner_table();
|
||||
@@ -451,8 +453,8 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$discount = config('OSPOS')->settings['default_sales_discount'];
|
||||
$discount_type = config('OSPOS')->settings['default_sales_discount_type'];
|
||||
$discount = $this->config['default_sales_discount'];
|
||||
$discount_type = $this->config['default_sales_discount_type'];
|
||||
|
||||
// check if any discount is assigned to the selected customer
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
@@ -625,7 +627,7 @@ class Sales extends Secure_Controller
|
||||
|
||||
$data['cart'] = $this->sale_lib->get_cart();
|
||||
|
||||
$data['include_hsn'] = (bool)config('OSPOS')->settings['include_hsn'];
|
||||
$data['include_hsn'] = (bool)$this->config['include_hsn'];
|
||||
$__time = time();
|
||||
$data['transaction_time'] = to_datetime($__time);
|
||||
$data['transaction_date'] = to_date($__time);
|
||||
@@ -635,16 +637,16 @@ class Sales extends Secure_Controller
|
||||
$employee_info = $this->employee->get_info($employee_id);
|
||||
$data['employee'] = $employee_info->first_name . ' ' . mb_substr($employee_info->last_name, 0, 1);
|
||||
|
||||
$data['company_info'] = implode("\n", [config('OSPOS')->settings['address'], config('OSPOS')->settings['phone']]);
|
||||
$data['company_info'] = implode("\n", [$this->config['address'], $this->config['phone']]);
|
||||
|
||||
if(config('OSPOS')->settings['account_number'])
|
||||
if($this->config['account_number'])
|
||||
{
|
||||
$data['company_info'] .= "\n" . lang('Sales.account_number') . ": " . config('OSPOS')->settings['account_number'];
|
||||
$data['company_info'] .= "\n" . lang('Sales.account_number') . ": " . $this->config['account_number'];
|
||||
}
|
||||
|
||||
if(config('OSPOS')->settings['tax_id'] != '')
|
||||
if($this->config['tax_id'] != '')
|
||||
{
|
||||
$data['company_info'] .= "\n" . lang('Sales.tax_id') . ": " . config('OSPOS')->settings['tax_id'];
|
||||
$data['company_info'] .= "\n" . lang('Sales.tax_id') . ": " . $this->config['tax_id'];
|
||||
}
|
||||
|
||||
$data['invoice_number_enabled'] = $this->sale_lib->is_invoice_mode();
|
||||
@@ -723,7 +725,7 @@ class Sales extends Secure_Controller
|
||||
|
||||
if($this->sale_lib->is_invoice_mode())
|
||||
{
|
||||
$invoice_format = config('OSPOS')->settings['sales_invoice_format'];
|
||||
$invoice_format = $this->config['sales_invoice_format'];
|
||||
|
||||
// generate final invoice number (if using the invoice in sales by receipt mode then the invoice number can be manually entered or altered in some way
|
||||
if(!empty($invoice_format) && $invoice_number == NULL)
|
||||
@@ -745,7 +747,7 @@ class Sales extends Secure_Controller
|
||||
$sale_type = SALE_TYPE_INVOICE;
|
||||
|
||||
// The PHP file name is the same as the invoice_type key
|
||||
$invoice_view = config('OSPOS')->settings['invoice_type'];
|
||||
$invoice_view = $this->config['invoice_type'];
|
||||
|
||||
// Save the data to the sales table
|
||||
$data['sale_id_num'] = $this->sale->save_value($sale_id, $data['sale_status'], $data['cart'], $customer_id, $employee_id, $data['comments'], $invoice_number, $work_order_number, $quote_number, $sale_type, $data['payments'], $data['dinner_table'], $tax_details);
|
||||
@@ -780,7 +782,7 @@ class Sales extends Secure_Controller
|
||||
if($work_order_number == NULL)
|
||||
{
|
||||
// generate work order number
|
||||
$work_order_format = config('OSPOS')->settings['work_order_format'];
|
||||
$work_order_format = $this->config['work_order_format'];
|
||||
$work_order_number = $this->token_lib->render($work_order_format);
|
||||
}
|
||||
|
||||
@@ -815,7 +817,7 @@ class Sales extends Secure_Controller
|
||||
if($quote_number == NULL)
|
||||
{
|
||||
// generate quote number
|
||||
$quote_format = config('OSPOS')->settings['sales_quote_format'];
|
||||
$quote_format = $this->config['sales_quote_format'];
|
||||
$quote_number = $this->token_lib->render($quote_format);
|
||||
}
|
||||
|
||||
@@ -892,14 +894,14 @@ class Sales extends Secure_Controller
|
||||
$number = $sale_data[$type."_number"];
|
||||
$subject = lang('Sales.' . $type) . ' ' . $number;
|
||||
|
||||
$text = config('OSPOS')->settings['invoice_email_message'];
|
||||
$text = $this->config['invoice_email_message'];
|
||||
$tokens = [
|
||||
new Token_invoice_sequence($sale_data['invoice_number']),
|
||||
new Token_invoice_count('POS ' . $sale_data['sale_id']),
|
||||
new Token_customer((object)$sale_data)
|
||||
];
|
||||
$text = $this->token_lib->render($text, $tokens);
|
||||
$sale_data['mimetype'] = mime_content_type(WRITEPATH . 'uploads/' . config('OSPOS')->settings['company_logo']);
|
||||
$sale_data['mimetype'] = mime_content_type(WRITEPATH . 'uploads/' . $this->config['company_logo']);
|
||||
|
||||
// generate email attachment: invoice in pdf format
|
||||
$view = Services::renderer();
|
||||
@@ -1045,7 +1047,7 @@ class Sales extends Secure_Controller
|
||||
$data['transaction_date'] = to_date(strtotime($sale_info['sale_time']));
|
||||
$data['show_stock_locations'] = $this->stock_location->show_locations('sales');
|
||||
|
||||
$data['include_hsn'] = (bool)config('OSPOS')->settings['include_hsn'];
|
||||
$data['include_hsn'] = (bool)$this->config['include_hsn'];
|
||||
|
||||
// Returns 'subtotal', 'total', 'cash_total', 'payment_total', 'amount_due', 'cash_amount_due', 'payments_cover_total'
|
||||
$totals = $this->sale_lib->get_totals($tax_details[0]);
|
||||
@@ -1084,15 +1086,15 @@ class Sales extends Secure_Controller
|
||||
$data['quote_number'] = $sale_info['quote_number'];
|
||||
$data['sale_status'] = $sale_info['sale_status'];
|
||||
|
||||
$data['company_info'] = implode('\n', [config('OSPOS')->settings['address'], config('OSPOS')->settings['phone']]); //TODO: Duplicated code.
|
||||
$data['company_info'] = implode('\n', [$this->config['address'], $this->config['phone']]); //TODO: Duplicated code.
|
||||
|
||||
if(config('OSPOS')->settings['account_number'])
|
||||
if($this->config['account_number'])
|
||||
{
|
||||
$data['company_info'] .= '\n' . lang('Sales.account_number') . ": " . config('OSPOS')->settings['account_number'];
|
||||
$data['company_info'] .= '\n' . lang('Sales.account_number') . ": " . $this->config['account_number'];
|
||||
}
|
||||
if(config('OSPOS')->settings['tax_id'] != '')
|
||||
if($this->config['tax_id'] != '')
|
||||
{
|
||||
$data['company_info'] .= '\n' . lang('Sales.tax_id') . ": " . config('OSPOS')->settings['tax_id'];
|
||||
$data['company_info'] .= '\n' . lang('Sales.tax_id') . ": " . $this->config['tax_id'];
|
||||
}
|
||||
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['sale_id']);
|
||||
@@ -1125,7 +1127,7 @@ class Sales extends Secure_Controller
|
||||
$data['customer_required'] = lang('Sales.customer_optional');
|
||||
}
|
||||
|
||||
$invoice_type = config('OSPOS')->settings['invoice_type'];
|
||||
$invoice_type = $this->config['invoice_type'];
|
||||
$data['invoice_view'] = $invoice_type;
|
||||
|
||||
return $data;
|
||||
@@ -1197,7 +1199,7 @@ class Sales extends Secure_Controller
|
||||
$data['comment'] = $this->sale_lib->get_comment();
|
||||
$data['email_receipt'] = $this->sale_lib->is_email_receipt();
|
||||
|
||||
if($customer_info && config('OSPOS')->settings['customer_reward_enable'])
|
||||
if($customer_info && $this->config['customer_reward_enable'])
|
||||
{
|
||||
$data['payment_options'] = $this->sale->get_payment_options(TRUE, TRUE);
|
||||
}
|
||||
@@ -1210,7 +1212,7 @@ class Sales extends Secure_Controller
|
||||
$data['change_price'] = $this->employee->has_grant('sales_change_price', $this->employee->get_logged_in_employee_info()->person_id);
|
||||
|
||||
$temp_invoice_number = $this->sale_lib->get_invoice_number();
|
||||
$invoice_format = config('OSPOS')->settings['sales_invoice_format'];
|
||||
$invoice_format = $this->config['sales_invoice_format'];
|
||||
|
||||
if ($temp_invoice_number == NULL || $temp_invoice_number == '')
|
||||
{
|
||||
@@ -1394,7 +1396,7 @@ class Sales extends Secure_Controller
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_STRING);
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
|
||||
$date_formatter = date_create_from_format(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $newdate);
|
||||
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $newdate);
|
||||
$sale_time = $date_formatter->format('Y-m-d H:i:s');
|
||||
|
||||
$sale_data = [
|
||||
@@ -1505,7 +1507,7 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$sale_type = $this->sale_lib->get_sale_type();
|
||||
|
||||
if(config('OSPOS')->settings['dinner_table_enable'])
|
||||
if($this->config['dinner_table_enable'])
|
||||
{
|
||||
$dinner_table = $this->sale_lib->get_dinner_table();
|
||||
$this->dinner_table->release($dinner_table);
|
||||
|
||||
@@ -30,6 +30,7 @@ class Taxes extends Secure_Controller
|
||||
$this->tax_jurisdiction = model('Tax_jurisdiction');
|
||||
|
||||
$this->tax_lib = new Tax_lib();
|
||||
$this->config = config('OSPOS')->settings;
|
||||
|
||||
helper('tax_helper');
|
||||
}
|
||||
@@ -58,7 +59,7 @@ class Taxes extends Secure_Controller
|
||||
$data['tax_categories_table_headers'] = get_tax_categories_table_headers();
|
||||
$data['tax_types'] = $this->tax_lib->get_tax_types();
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($this->config['tax_included'])
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
@@ -134,7 +135,7 @@ class Taxes extends Secure_Controller
|
||||
|
||||
$tax_rate_info = $this->tax->get_rate_info($tax_code, $default_tax_category_id);
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($this->config['tax_included'])
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
@@ -206,9 +207,9 @@ class Taxes extends Secure_Controller
|
||||
|
||||
if($tax_rate_id == -1) //TODO: Replace -1 with constant
|
||||
{
|
||||
$data['rate_tax_code_id'] = config('OSPOS')->settings['default_tax_code'];
|
||||
$data['rate_tax_category_id'] = config('OSPOS')->settings['default_tax_category'];
|
||||
$data['rate_jurisdiction_id'] = config('OSPOS')->settings['default_tax_jurisdiction'];
|
||||
$data['rate_tax_code_id'] = $this->config['default_tax_code'];
|
||||
$data['rate_tax_category_id'] = $this->config['default_tax_category'];
|
||||
$data['rate_jurisdiction_id'] = $this->config['default_tax_jurisdiction'];
|
||||
$data['tax_rounding_code'] = rounding_mode::HALF_UP;
|
||||
$data['tax_rate'] = '0.0000';
|
||||
}
|
||||
@@ -237,7 +238,7 @@ class Taxes extends Secure_Controller
|
||||
$data['rounding_options'] = rounding_mode::get_rounding_options();
|
||||
$data['html_rounding_options'] = $this->get_html_rounding_options();
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($this->config['tax_included'])
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
@@ -304,7 +305,7 @@ class Taxes extends Secure_Controller
|
||||
$data['rounding_options'] = rounding_mode::get_rounding_options();
|
||||
$data['html_rounding_options'] = $this->get_html_rounding_options();
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($this->config['tax_included'])
|
||||
{
|
||||
$data['default_tax_type'] = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
@@ -557,7 +558,7 @@ class Taxes extends Secure_Controller
|
||||
{
|
||||
$tax_jurisdictions = $this->tax_jurisdiction->get_all()->getResultArray();
|
||||
|
||||
if(config('OSPOS')->settings['tax_included']) //TODO: ternary notation
|
||||
if($this->config['tax_included']) //TODO: ternary notation
|
||||
{
|
||||
$default_tax_type = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
}
|
||||
@@ -574,4 +575,4 @@ class Taxes extends Secure_Controller
|
||||
'default_tax_type' => $default_tax_type
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class Migration_database_optimizations extends Migration
|
||||
break;
|
||||
case DATE:
|
||||
$attribute_date = DateTime::createFromFormat('Y-m-d', $attribute_value['attribute_date']);
|
||||
$value = $attribute_date->format(config('OSPOS')->settings['dateformat']);
|
||||
$value = $attribute_date->format($config['dateformat']);
|
||||
break;
|
||||
default:
|
||||
$value = $attribute_value['attribute_value'];
|
||||
|
||||
@@ -16,6 +16,7 @@ define('DEFAULT_DATETIME', mktime(0, 0, 0, 1, 1, 2010));
|
||||
function current_language_code(bool $load_system_language = false): string
|
||||
{
|
||||
$employee = model(Employee::class);
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// Returns the language code of the employee if set or system language code if not
|
||||
if($employee->is_logged_in() && $load_system_language === false)
|
||||
@@ -28,7 +29,7 @@ function current_language_code(bool $load_system_language = false): string
|
||||
}
|
||||
}
|
||||
|
||||
$language_code = config('OSPOS')->settings['language_code'];
|
||||
$language_code = $config['language_code'];
|
||||
|
||||
return empty($language_code) ? DEFAULT_LANGUAGE_CODE : $language_code;
|
||||
}
|
||||
@@ -36,6 +37,7 @@ function current_language_code(bool $load_system_language = false): string
|
||||
function current_language(bool $load_system_language = FALSE): string
|
||||
{
|
||||
$employee = model(Employee::class);
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// Returns the language of the employee if set or system language if not
|
||||
if($employee->is_logged_in() && !$load_system_language)
|
||||
@@ -48,7 +50,7 @@ function current_language(bool $load_system_language = FALSE): string
|
||||
}
|
||||
}
|
||||
|
||||
$language = config('OSPOS')->settings['language'];
|
||||
$language = $config['language'];
|
||||
|
||||
return empty($language) ? DEFAULT_LANGUAGE : $language;
|
||||
}
|
||||
@@ -229,33 +231,34 @@ function get_timeformats(): array
|
||||
function get_payment_options(): array
|
||||
{
|
||||
$payments = [];
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
//TODO: This needs to be switched to a switch statement
|
||||
if(config('OSPOS')->settings['payment_options_order'] == 'debitcreditcash') //TODO: ===
|
||||
if($config['payment_options_order'] == 'debitcreditcash') //TODO: ===
|
||||
{
|
||||
$payments[lang('Sales.debit')] = lang('Sales.debit');
|
||||
$payments[lang('Sales.credit')] = lang('Sales.credit');
|
||||
$payments[lang('Sales.cash')] = lang('Sales.cash');
|
||||
}
|
||||
elseif(config('OSPOS')->settings['payment_options_order'] == 'debitcashcredit') //TODO: ===
|
||||
elseif($config['payment_options_order'] == 'debitcashcredit') //TODO: ===
|
||||
{
|
||||
$payments[lang('Sales.debit')] = lang('Sales.debit');
|
||||
$payments[lang('Sales.cash')] = lang('Sales.cash');
|
||||
$payments[lang('Sales.credit')] = lang('Sales.credit');
|
||||
}
|
||||
elseif(config('OSPOS')->settings['payment_options_order'] == 'creditdebitcash') //TODO: ===
|
||||
elseif($config['payment_options_order'] == 'creditdebitcash') //TODO: ===
|
||||
{
|
||||
$payments[lang('Sales.credit')] = lang('Sales.credit');
|
||||
$payments[lang('Sales.debit')] = lang('Sales.debit');
|
||||
$payments[lang('Sales.cash')] = lang('Sales.cash');
|
||||
}
|
||||
elseif(config('OSPOS')->settings['payment_options_order'] == 'creditcashdebit') //TODO: ===
|
||||
elseif($config['payment_options_order'] == 'creditcashdebit') //TODO: ===
|
||||
{
|
||||
$payments[lang('Sales.credit')] = lang('Sales.credit');
|
||||
$payments[lang('Sales.cash')] = lang('Sales.cash');
|
||||
$payments[lang('Sales.debit')] = lang('Sales.debit');
|
||||
}
|
||||
else // default: if(config('OSPOS')->settings['payment_options_order == 'cashdebitcredit')
|
||||
else // default: if($config['payment_options_order == 'cashdebitcredit')
|
||||
{
|
||||
$payments[lang('Sales.cash')] = lang('Sales.cash');
|
||||
$payments[lang('Sales.debit')] = lang('Sales.debit');
|
||||
@@ -266,7 +269,7 @@ function get_payment_options(): array
|
||||
$payments[lang('Sales.check')] = lang('Sales.check');
|
||||
|
||||
// If India (list of country codes include India) then include Unified Payment Interface
|
||||
if (stripos(config('OSPOS')->settings['country_codes'], 'IN') !== false)
|
||||
if (stripos($config['country_codes'], 'IN') !== false)
|
||||
{
|
||||
$payments[lang('Sales.upi')] = lang('Sales.upi');
|
||||
}
|
||||
@@ -276,40 +279,47 @@ function get_payment_options(): array
|
||||
|
||||
function currency_side(): bool
|
||||
{
|
||||
$fmt = new NumberFormatter(config('OSPOS')->settings['number_locale'], NumberFormatter::CURRENCY);
|
||||
$fmt->setSymbol(NumberFormatter::CURRENCY_SYMBOL, config('OSPOS')->settings['currency_symbol']);
|
||||
$config = config('OSPOS')->settings;
|
||||
$fmt = new NumberFormatter($config['number_locale'], NumberFormatter::CURRENCY);
|
||||
$fmt->setSymbol(NumberFormatter::CURRENCY_SYMBOL, $config['currency_symbol']);
|
||||
|
||||
return !preg_match('/^¤/', $fmt->getPattern());
|
||||
}
|
||||
|
||||
function quantity_decimals(): int
|
||||
{
|
||||
return config('OSPOS')->settings['quantity_decimals'] ? config('OSPOS')->settings['quantity_decimals'] : 0;
|
||||
$config = config('OSPOS')->settings;
|
||||
return $config['quantity_decimals'] ? $config['quantity_decimals'] : 0;
|
||||
}
|
||||
|
||||
function totals_decimals(): int
|
||||
{
|
||||
return config('OSPOS')->settings['currency_decimals'] ? (int)config('OSPOS')->settings['currency_decimals'] : 0;
|
||||
$config = config('OSPOS')->settings;
|
||||
return $config['currency_decimals'] ? (int)$config['currency_decimals'] : 0;
|
||||
}
|
||||
|
||||
function cash_decimals(): int
|
||||
{
|
||||
return config('OSPOS')->settings['cash_decimals'] ? config('OSPOS')->settings['cash_decimals'] : 0;
|
||||
$config = config('OSPOS')->settings;
|
||||
return $config['cash_decimals'] ? $config['cash_decimals'] : 0;
|
||||
}
|
||||
|
||||
function tax_decimals(): int
|
||||
{
|
||||
return config('OSPOS')->settings['tax_decimals'] ? config('OSPOS')->settings['tax_decimals'] : 0;
|
||||
$config = config('OSPOS')->settings;
|
||||
return $config['tax_decimals'] ? $config['tax_decimals'] : 0;
|
||||
}
|
||||
|
||||
function to_date(int $date = DEFAULT_DATE): string
|
||||
{
|
||||
return date(config('OSPOS')->settings['dateformat, $date']);
|
||||
$config = config('OSPOS')->settings;
|
||||
return date($config['dateformat, $date']);
|
||||
}
|
||||
|
||||
function to_datetime(int $datetime = DEFAULT_DATETIME): string
|
||||
{
|
||||
return date(config('OSPOS')->settings['dateformat'] . ' ' . config('OSPOS')->settings['timeformat'], $datetime);
|
||||
$config = config('OSPOS')->settings;
|
||||
return date($config['dateformat'] . ' ' . $config['timeformat'], $datetime);
|
||||
}
|
||||
|
||||
function to_currency(float $number): string
|
||||
@@ -324,7 +334,9 @@ function to_currency_no_money(float $number): string
|
||||
|
||||
function to_currency_tax(float $number): string
|
||||
{
|
||||
if(config('OSPOS')->settings['tax_included']) //TODO: ternary notation
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if($config['tax_included']) //TODO: ternary notation
|
||||
{
|
||||
return to_decimals($number, 'tax_decimals', NumberFormatter::CURRENCY);
|
||||
}
|
||||
@@ -360,15 +372,16 @@ function to_decimals(float $number, string $decimals = NULL, int $type = NumberF
|
||||
return $number;
|
||||
}
|
||||
|
||||
$fmt = new NumberFormatter(config('OSPOS')->settings['number_locale'], $type);
|
||||
$fmt->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, empty($decimals) ? DEFAULT_PRECISION : config('OSPOS')->settings[$decimals]);
|
||||
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, empty($decimals) ? DEFAULT_PRECISION : config('OSPOS')->settings[$decimals]);
|
||||
$config = config('OSPOS')->settings;
|
||||
$fmt = new NumberFormatter($config['number_locale'], $type);
|
||||
$fmt->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, empty($decimals) ? DEFAULT_PRECISION : $config[$decimals]);
|
||||
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, empty($decimals) ? DEFAULT_PRECISION : $config[$decimals]);
|
||||
|
||||
if(empty(config('OSPOS')->settings['thousands_separator']))
|
||||
if(empty($config['thousands_separator']))
|
||||
{
|
||||
$fmt->setAttribute(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
|
||||
}
|
||||
$fmt->setSymbol(NumberFormatter::CURRENCY_SYMBOL, config('OSPOS')->settings['currency_symbol']);
|
||||
$fmt->setSymbol(NumberFormatter::CURRENCY_SYMBOL, $config['currency_symbol']);
|
||||
|
||||
return $fmt->format($number);
|
||||
}
|
||||
@@ -410,14 +423,16 @@ function parse_decimals(string $number, int $decimals = NULL)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if($decimals === NULL)
|
||||
{
|
||||
$decimals = config('OSPOS')->settings['currency_decimals']; //TODO: $decimals is never used.
|
||||
$decimals = $config['currency_decimals']; //TODO: $decimals is never used.
|
||||
}
|
||||
|
||||
$fmt = new NumberFormatter(config('OSPOS')->settings['number_locale'], NumberFormatter::DECIMAL);
|
||||
$fmt = new NumberFormatter($config['number_locale'], NumberFormatter::DECIMAL);
|
||||
|
||||
if(empty(config('OSPOS')->settings['thousands_separator']))
|
||||
if(empty($config['thousands_separator']))
|
||||
{
|
||||
$fmt->setAttribute(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
|
||||
}
|
||||
@@ -482,7 +497,8 @@ function dateformat_momentjs(string $php_format): string
|
||||
|
||||
function dateformat_mysql(): string
|
||||
{
|
||||
$php_format = config('OSPOS')->settings['dateformat'];
|
||||
$config = config('OSPOS')->settings;
|
||||
$php_format = $config['dateformat'];
|
||||
|
||||
$SYMBOLS_MATCHING = [
|
||||
// Day
|
||||
@@ -566,7 +582,8 @@ function dateformat_bootstrap(string $php_format): string
|
||||
|
||||
function valid_date(string $date): bool //TODO: need a better name for $date. Perhaps $candidate. Also the function name would be better as is_valid_date()
|
||||
{
|
||||
return (DateTime::createFromFormat(config('OSPOS')->settings['dateformat'], $date));
|
||||
$config = config('OSPOS')->settings;
|
||||
return (DateTime::createFromFormat($config['dateformat'], $date));
|
||||
}
|
||||
|
||||
function valid_decimal(string $decimal): bool //TODO: need a better name for $decimal. Perhaps $candidate. Also the function name would be better as is_valid_decimal()
|
||||
|
||||
@@ -75,8 +75,9 @@ function get_sales_manage_table_headers(): string
|
||||
['change_due' => lang('Sales.change_due')],
|
||||
['payment_type' => lang('Sales.payment_type')]
|
||||
];
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(config('OSPOS')->settings['invoice_enable'])
|
||||
if($config['invoice_enable'])
|
||||
{
|
||||
$headers[] = ['invoice_number' => lang('Sales.invoice_number')];
|
||||
$headers[] = ['invoice' => ' ', 'sortable' => FALSE, 'escape' => FALSE];
|
||||
@@ -105,7 +106,9 @@ function get_sale_data_row(object $sale): array
|
||||
'payment_type' => $sale->payment_type
|
||||
];
|
||||
|
||||
if(config('OSPOS')->settings['invoice_enable'])
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if($config['invoice_enable'])
|
||||
{
|
||||
$row['invoice_number'] = $sale->invoice_number;
|
||||
$row['invoice'] = empty($sale->invoice_number)
|
||||
@@ -390,7 +393,7 @@ function get_supplier_data_row(object $supplier): array
|
||||
function get_items_manage_table_headers(): string
|
||||
{
|
||||
$attribute = model(Attribute::class);
|
||||
|
||||
$config = config('OSPOS')->settings;
|
||||
$definition_names = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS); //TODO: this should be made into a constant in constants.php
|
||||
|
||||
$headers = [
|
||||
@@ -404,7 +407,7 @@ function get_items_manage_table_headers(): string
|
||||
['quantity' => lang('Items.quantity')]
|
||||
];
|
||||
|
||||
if(config('OSPOS')->settings['use_destination_based_tax'])
|
||||
if($config['use_destination_based_tax'])
|
||||
{
|
||||
$headers[] = ['tax_percents' => lang('Items.tax_category'), 'sortable' => FALSE];
|
||||
}
|
||||
@@ -439,8 +442,9 @@ function get_item_data_row(object $item): array
|
||||
$attribute = model(Attribute::class);
|
||||
$item_taxes = model(Item_taxes::class);
|
||||
$tax_category = model(Tax_category::class);
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(config('OSPOS')->settings['use_destination_based_tax'])
|
||||
if($config['use_destination_based_tax'])
|
||||
{
|
||||
if($item->tax_category_id == NULL) //TODO: === ?
|
||||
{
|
||||
@@ -489,7 +493,7 @@ function get_item_data_row(object $item): array
|
||||
}
|
||||
}
|
||||
|
||||
if(config('OSPOS')->settings['multi_pack_enabled'])
|
||||
if($config['multi_pack_enabled'])
|
||||
{
|
||||
$item->name .= NAME_SEPARATOR . $item->pack_name;
|
||||
}
|
||||
|
||||
@@ -27,21 +27,23 @@ class Barcode_lib
|
||||
|
||||
public function get_barcode_config(): array
|
||||
{
|
||||
$data['company'] = config('OSPOS')->settings['company'];
|
||||
$data['barcode_content'] = config('OSPOS')->settings['barcode_content'];
|
||||
$data['barcode_type'] = config('OSPOS')->settings['barcode_type'];
|
||||
$data['barcode_font'] = config('OSPOS')->settings['barcode_font'];
|
||||
$data['barcode_font_size'] = config('OSPOS')->settings['barcode_font_size'];
|
||||
$data['barcode_height'] = config('OSPOS')->settings['barcode_height'];
|
||||
$data['barcode_width'] = config('OSPOS')->settings['barcode_width'];
|
||||
$data['barcode_first_row'] = config('OSPOS')->settings['barcode_first_row'];
|
||||
$data['barcode_second_row'] = config('OSPOS')->settings['barcode_second_row'];
|
||||
$data['barcode_third_row'] = config('OSPOS')->settings['barcode_third_row'];
|
||||
$data['barcode_num_in_row'] = config('OSPOS')->settings['barcode_num_in_row'];
|
||||
$data['barcode_page_width'] = config('OSPOS')->settings['barcode_page_width'];
|
||||
$data['barcode_page_cellspacing'] = config('OSPOS')->settings['barcode_page_cellspacing'];
|
||||
$data['barcode_generate_if_empty'] = config('OSPOS')->settings['barcode_generate_if_empty'];
|
||||
$data['barcode_formats'] = config('OSPOS')->settings['barcode_formats'];
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$data['company'] = $config['company'];
|
||||
$data['barcode_content'] = $config['barcode_content'];
|
||||
$data['barcode_type'] = $config['barcode_type'];
|
||||
$data['barcode_font'] = $config['barcode_font'];
|
||||
$data['barcode_font_size'] = $config['barcode_font_size'];
|
||||
$data['barcode_height'] = $config['barcode_height'];
|
||||
$data['barcode_width'] = $config['barcode_width'];
|
||||
$data['barcode_first_row'] = $config['barcode_first_row'];
|
||||
$data['barcode_second_row'] = $config['barcode_second_row'];
|
||||
$data['barcode_third_row'] = $config['barcode_third_row'];
|
||||
$data['barcode_num_in_row'] = $config['barcode_num_in_row'];
|
||||
$data['barcode_page_width'] = $config['barcode_page_width'];
|
||||
$data['barcode_page_cellspacing'] = $config['barcode_page_cellspacing'];
|
||||
$data['barcode_generate_if_empty'] = $config['barcode_generate_if_empty'];
|
||||
$data['barcode_formats'] = $config['barcode_formats'];
|
||||
|
||||
return $data;
|
||||
}
|
||||
@@ -246,4 +248,4 @@ class Barcode_lib
|
||||
{
|
||||
return substr($font_file_name, 0, -4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ use Config\Services;
|
||||
* @property email email
|
||||
* @property encryption encryption
|
||||
* @property encrypterinterface encrypter
|
||||
* @property array config
|
||||
*/
|
||||
|
||||
class Email_lib
|
||||
@@ -23,23 +24,25 @@ class Email_lib
|
||||
public function __construct()
|
||||
{
|
||||
$this->email = new Email();
|
||||
$this->config = config('OSPOS')->settings;
|
||||
$encrypter = Services::encrypter();
|
||||
|
||||
$config = [
|
||||
|
||||
|
||||
$email_config = [
|
||||
'mailtype' => 'html',
|
||||
'useragent' => 'OSPOS',
|
||||
'validate' => TRUE,
|
||||
'protocol' => config('OSPOS')->settings['protocol'],
|
||||
'mailpath' => config('OSPOS')->settings['mailpath'],
|
||||
'smtp_host' => config('OSPOS')->settings['smtp_host'],
|
||||
'smtp_user' => config('OSPOS')->settings['smtp_user'],
|
||||
'smtp_pass' => $encrypter->decrypt(config('OSPOS')->settings['smtp_pass']),
|
||||
'smtp_port' => config('OSPOS')->settings['smtp_port'],
|
||||
'smtp_timeout' => config('OSPOS')->settings['smtp_timeout'],
|
||||
'smtp_crypto' => config('OSPOS')->settings['smtp_crypto']
|
||||
'protocol' => $this->config['protocol'],
|
||||
'mailpath' => $this->config['mailpath'],
|
||||
'smtp_host' => $this->config['smtp_host'],
|
||||
'smtp_user' => $this->config['smtp_user'],
|
||||
'smtp_pass' => $encrypter->decrypt($this->config['smtp_pass']),
|
||||
'smtp_port' => $this->config['smtp_port'],
|
||||
'smtp_timeout' => $this->config['smtp_timeout'],
|
||||
'smtp_crypto' => $this->config['smtp_crypto']
|
||||
];
|
||||
|
||||
$this->email->initialize($config);
|
||||
$this->email->initialize($email_config);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,7 +53,7 @@ class Email_lib
|
||||
{
|
||||
$email = $this->email;
|
||||
|
||||
$email->setFrom(config('OSPOS')->settings['email'], config('OSPOS')->settings['company']);
|
||||
$email->setFrom($this->config['email'], $this->config['company']);
|
||||
$email->setTo($to);
|
||||
$email->setSubject($subject);
|
||||
$email->setMessage($message);
|
||||
|
||||
@@ -37,10 +37,11 @@ class MailchimpConnector
|
||||
*/
|
||||
public function __construct(string $api_key = '')
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$encrypter = Services::encrypter();
|
||||
|
||||
$this->_api_key = empty($api_key)
|
||||
? $encrypter->decrypt(config('OSPOS')->settings['mailchimp_api_key']) //TODO: Hungarian notation
|
||||
? $encrypter->decrypt($config['mailchimp_api_key']) //TODO: Hungarian notation
|
||||
: $api_key; //TODO: Hungarian notation
|
||||
|
||||
if(!empty($this->_api_key)) //TODO: Hungarian notation
|
||||
|
||||
@@ -185,6 +185,8 @@ class Receiving_lib
|
||||
//TODO: This array signature needs to be reworked. It's way too long. Perhaps an object needs to be passed rather than these?
|
||||
public function add_item(int $item_id, int $quantity = 1, int $item_location = NULL, float $discount = 0, int $discount_type = 0, float $price = NULL, string $description = NULL, string $serialnumber = NULL, float $receiving_quantity = NULL, int $receiving_id = NULL, bool $include_deleted = FALSE): bool
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
//make sure item exists in database.
|
||||
if(!$this->item->exists($item_id, $include_deleted))
|
||||
{
|
||||
@@ -234,7 +236,7 @@ class Receiving_lib
|
||||
//array records are identified by $insertkey and item_id is just another field.
|
||||
$price = $price != NULL ? $price : $item_info->cost_price;
|
||||
|
||||
if(config('OSPOS')->settings['multi_pack_enabled'])
|
||||
if($config['multi_pack_enabled'])
|
||||
{
|
||||
$item_info->name .= NAME_SEPARATOR . $item_info->pack_name;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ use App\Libraries\Tax_lib;
|
||||
* @property stock_location stock_location
|
||||
* @property Tax_lib tax_lib
|
||||
* @property session session
|
||||
* @property array config
|
||||
*/
|
||||
class Sale_lib
|
||||
{
|
||||
@@ -50,6 +51,7 @@ class Sale_lib
|
||||
$this->rounding_mode = model('enums/Rounding_mode');
|
||||
$this->sale = model('Sale');
|
||||
$this->stock_location = model('Stock_location');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
public function get_line_sequence_options(): array
|
||||
@@ -65,7 +67,7 @@ class Sale_lib
|
||||
{
|
||||
$register_modes = [];
|
||||
|
||||
if(!config('OSPOS')->settings['invoice_enable'])
|
||||
if(!$this->config['invoice_enable'])
|
||||
{
|
||||
$register_modes['sale'] = lang('Sales.sale');
|
||||
}
|
||||
@@ -74,7 +76,7 @@ class Sale_lib
|
||||
$register_modes['sale'] = lang('Sales.receipt');
|
||||
$register_modes['sale_quote'] = lang('Sales.quote');
|
||||
|
||||
if(config('OSPOS')->settings['work_order_enable'])
|
||||
if($this->config['work_order_enable'])
|
||||
{
|
||||
$register_modes['sale_work_order'] = lang('Sales.work_order');
|
||||
}
|
||||
@@ -130,7 +132,7 @@ class Sale_lib
|
||||
|
||||
//TODO: This set of if/elseif/else needs to be converted to a switch statement
|
||||
// Entry sequence (this will render kits in the expected sequence)
|
||||
if(config('OSPOS')->settings['line_sequence'] == '0')
|
||||
if($this->config['line_sequence'] == '0')
|
||||
{
|
||||
$sort = [];
|
||||
foreach($filtered_cart as $k => $v)
|
||||
@@ -140,7 +142,7 @@ class Sale_lib
|
||||
array_multisort($sort['line'], SORT_ASC, $filtered_cart);
|
||||
}
|
||||
// Group by Stock Type (nonstock first - type 1, stock next - type 0)
|
||||
elseif(config('OSPOS')->settings['line_sequence'] == '1') //TODO: Need to change these to constants
|
||||
elseif($this->config['line_sequence'] == '1') //TODO: Need to change these to constants
|
||||
{
|
||||
$sort = [];
|
||||
foreach($filtered_cart as $k => $v)
|
||||
@@ -152,7 +154,7 @@ class Sale_lib
|
||||
array_multisort($sort['stock_type'], SORT_DESC, $sort['description'], SORT_ASC, $sort['name'], SORT_ASC, $filtered_cart);
|
||||
}
|
||||
// Group by Item Category
|
||||
elseif(config('OSPOS')->settings['line_sequence'] == '2') //TODO: Need to change these to constants
|
||||
elseif($this->config['line_sequence'] == '2') //TODO: Need to change these to constants
|
||||
{
|
||||
$sort = [];
|
||||
foreach($filtered_cart as $k => $v)
|
||||
@@ -310,7 +312,7 @@ class Sale_lib
|
||||
|
||||
public function is_invoice_mode(): bool
|
||||
{
|
||||
return ($this->session->get('sales_mode') == 'sale_invoice' && config('OSPOS')->settings['invoice_enable']);
|
||||
return ($this->session->get('sales_mode') == 'sale_invoice' && $this->config['invoice_enable']);
|
||||
}
|
||||
|
||||
public function is_sale_by_receipt_mode(): bool //TODO: This function is not called anywhere in the code.
|
||||
@@ -351,11 +353,11 @@ class Sale_lib
|
||||
|
||||
public function is_print_after_sale(): bool
|
||||
{//TODO: this needs to be converted to a switch statement
|
||||
if(config('OSPOS')->settings['print_receipt_check_behaviour'] == 'always') //TODO: 'behaviour' is the british spelling, but the rest of the code is in American English. Not a big deal, but noticed. Also ===
|
||||
if($this->config['print_receipt_check_behaviour'] == 'always') //TODO: 'behaviour' is the british spelling, but the rest of the code is in American English. Not a big deal, but noticed. Also ===
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
elseif(config('OSPOS')->settings['print_receipt_check_behaviour'] == 'never') //TODO: === ?
|
||||
elseif($this->config['print_receipt_check_behaviour'] == 'never') //TODO: === ?
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -378,11 +380,11 @@ class Sale_lib
|
||||
|
||||
public function is_email_receipt(): bool
|
||||
{//TODO: this needs to be converted to a switch statement
|
||||
if(config('OSPOS')->settings['email_receipt_check_behaviour'] == 'always') //TODO: 'behaviour' is the british spelling, but the rest of the code is in American English. Not a big deal, but noticed. Also ===
|
||||
if($this->config['email_receipt_check_behaviour'] == 'always') //TODO: 'behaviour' is the british spelling, but the rest of the code is in American English. Not a big deal, but noticed. Also ===
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
elseif(config('OSPOS')->settings['email_receipt_check_behaviour'] == 'never') //TODO: === ?
|
||||
elseif($this->config['email_receipt_check_behaviour'] == 'never') //TODO: === ?
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -719,7 +721,7 @@ class Sale_lib
|
||||
{
|
||||
if(!$this->session->get('dinner_table'))
|
||||
{
|
||||
if(config('OSPOS')->settings['dinner_table_enable'])
|
||||
if($this->config['dinner_table_enable'])
|
||||
{
|
||||
$this->set_dinner_table(1); //TODO: Replace 1 with constant
|
||||
}
|
||||
@@ -926,7 +928,7 @@ class Sale_lib
|
||||
$total = $this->get_item_total($quantity, $price, $applied_discount, $discount_type);
|
||||
$discounted_total = $this->get_item_total($quantity, $price, $applied_discount, $discount_type, TRUE);
|
||||
|
||||
if(config('OSPOS')->settings['multi_pack_enabled'])
|
||||
if($this->config['multi_pack_enabled'])
|
||||
{
|
||||
$item_info->name .= NAME_SEPARATOR . $item_info->pack_name;
|
||||
}
|
||||
@@ -1230,7 +1232,7 @@ class Sale_lib
|
||||
*/
|
||||
public function reset_cash_rounding(): int
|
||||
{
|
||||
$cash_rounding_code = config('OSPOS')->settings['cash_rounding_code'];
|
||||
$cash_rounding_code = $this->config['cash_rounding_code'];
|
||||
|
||||
if(cash_decimals() < totals_decimals() || $cash_rounding_code == Rounding_mode::HALF_FIVE) //TODO: convert to ternary notation.
|
||||
{
|
||||
@@ -1378,7 +1380,7 @@ class Sale_lib
|
||||
{
|
||||
$item_total = $this->get_item_total($quantity, $price, $discount, $discount_type, TRUE);
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($this->config['tax_included'])
|
||||
{
|
||||
$tax_fraction = bcdiv(bcadd('100', $tax_percentage), '100');
|
||||
$price_tax_excl = bcdiv($item_total, $tax_fraction);
|
||||
@@ -1396,7 +1398,7 @@ class Sale_lib
|
||||
$subtotal = '0.0';
|
||||
foreach($this->get_cart() as $item)
|
||||
{
|
||||
if($exclude_tax && config('OSPOS')->settings['tax_included'])
|
||||
if($exclude_tax && $this->config['tax_included'])
|
||||
{
|
||||
$subtotal = bcadd($subtotal, $this->get_item_total_tax_exclusive($item['item_id'], $item['quantity'], $item['price'], $item['discount'], $item['discount_type'], $include_discount));
|
||||
}
|
||||
@@ -1420,7 +1422,7 @@ class Sale_lib
|
||||
|
||||
$cash_mode = $this->session->get('cash_mode');
|
||||
|
||||
if(!config('OSPOS')->settings['tax_included'])
|
||||
if(!$this->config['tax_included'])
|
||||
{
|
||||
$cart = $this->get_cart();
|
||||
$this->tax_lib = new \app\Libraries\Tax_lib();
|
||||
@@ -1447,7 +1449,7 @@ class Sale_lib
|
||||
public function check_for_cash_rounding(string $total): string
|
||||
{
|
||||
$cash_decimals = cash_decimals();
|
||||
$cash_rounding_code = config('OSPOS')->settings['cash_rounding_code'];
|
||||
$cash_rounding_code = $this->config['cash_rounding_code'];
|
||||
|
||||
return Rounding_mode::round_number($cash_rounding_code, (float)$total, $cash_decimals);
|
||||
}
|
||||
|
||||
@@ -19,21 +19,18 @@ use Config\Services;
|
||||
|
||||
class Sms_lib
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* SMS sending function
|
||||
* Example of use: $response = sendSMS('4477777777', 'My test message');
|
||||
*/
|
||||
public function sendSMS(int $phone, string $message): bool
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$encrypter = Services::encrypter();
|
||||
|
||||
$username = config('OSPOS')->settings['msg_uid'];
|
||||
$password = $encrypter->decrypt(config('OSPOS')->settings['msg_pwd']);
|
||||
$originator = config('OSPOS')->settings['msg_src'];
|
||||
$username = $config['msg_uid'];
|
||||
$password = $encrypter->decrypt($config['msg_pwd']);
|
||||
$originator = $config['msg_src'];
|
||||
|
||||
$response = FALSE;
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ use App\Libraries\Sale_lib;
|
||||
* @property tax_category tax_category
|
||||
* @property tax_code tax_code
|
||||
* @property tax_jurisdiction tax_jurisdiction
|
||||
* @property array config
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -46,6 +47,7 @@ class Tax_lib
|
||||
$this->tax_category = model('Tax_category');
|
||||
$this->tax_code = model('Tax_code');
|
||||
$this->tax_jurisdiction = model('Tax_jurisdiction');
|
||||
$this->config = config('OSPOS')->settings;
|
||||
}
|
||||
|
||||
public function get_tax_types(): array
|
||||
@@ -98,7 +100,7 @@ class Tax_lib
|
||||
{
|
||||
$taxed = FALSE;
|
||||
|
||||
if(!config('OSPOS')->settings['use_destination_based_tax'])
|
||||
if(!$this->config['use_destination_based_tax'])
|
||||
{
|
||||
// Start of current Base System tax calculations
|
||||
|
||||
@@ -121,7 +123,7 @@ class Tax_lib
|
||||
$tax_basis = $this->sale_lib->get_item_total($item['quantity'], $item['price'], $item['discount'], $item['discount_type'], TRUE);
|
||||
$tax_amount = '0.0';
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($this->config['tax_included'])
|
||||
{
|
||||
$tax_type = Tax_lib::TAX_TYPE_INCLUDED;
|
||||
$tax_amount = $this->get_included_tax($item['quantity'], $item['price'], $item['discount'], $item['discount_type'], $tax['percent'], $tax_decimals, Rounding_mode::HALF_UP);
|
||||
@@ -161,7 +163,7 @@ class Tax_lib
|
||||
// Start of destination based tax calculations
|
||||
if($item['tax_category_id'] == NULL) //TODO: === ?
|
||||
{
|
||||
$item['tax_category_id'] = config('OSPOS')->settings['default_tax_category'];
|
||||
$item['tax_category_id'] = $this->config['default_tax_category'];
|
||||
}
|
||||
|
||||
$taxed = $this->apply_destination_tax($item, $customer_info->city, $customer_info->state, $customer_info->sales_tax_code_id, $register_mode, 0, $taxes, $item_taxes, $item['line']);
|
||||
@@ -274,7 +276,7 @@ class Tax_lib
|
||||
}
|
||||
|
||||
// If tax included then round decimal to tax decimals, otherwise round it to currency_decimals
|
||||
if(config('OSPOS')->settings['tax_included']) //TODO: Convert to ternary notation
|
||||
if($this->config['tax_included']) //TODO: Convert to ternary notation
|
||||
{
|
||||
$decimals = tax_decimals();
|
||||
}
|
||||
@@ -405,7 +407,7 @@ class Tax_lib
|
||||
{
|
||||
if($register_mode == 'sale')
|
||||
{
|
||||
$sales_tax_code_id = config('OSPOS')->settings['default_tax_code']; // overrides customer assigned code
|
||||
$sales_tax_code_id = $this->config['default_tax_code']; // overrides customer assigned code
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -415,7 +417,7 @@ class Tax_lib
|
||||
|
||||
if($sales_tax_code_id == NULL || $sales_tax_code_id == 0)
|
||||
{
|
||||
$sales_tax_code_id = config('OSPOS')->settings['default_tax_code']; // overrides customer assigned code
|
||||
$sales_tax_code_id = $this->config['default_tax_code']; // overrides customer assigned code
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,8 @@ class Token_lib
|
||||
|
||||
public function parse_barcode(string &$quantity, string &$price, string &$item_id_or_number_or_item_kit_or_receipt): void
|
||||
{
|
||||
$barcode_formats = json_decode(config('OSPOS')->settings['barcode_formats']);
|
||||
$config = config('OSPOS')->settings;
|
||||
$barcode_formats = json_decode($config['barcode_formats']);
|
||||
$barcode_tokens = Token::get_barcode_tokens();
|
||||
|
||||
if(!empty($barcode_formats))
|
||||
@@ -164,4 +165,4 @@ class Token_lib
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,16 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use CodeIgniter\Database\ConnectionInterface;
|
||||
use CodeIgniter\Database\ResultInterface;
|
||||
use CodeIgniter\Model;
|
||||
use CodeIgniter\Validation\ValidationInterface;
|
||||
use ReflectionException;
|
||||
|
||||
/**
|
||||
* Appconfig class
|
||||
*
|
||||
* @property mixed config
|
||||
*
|
||||
*/
|
||||
class Appconfig extends Model
|
||||
{
|
||||
@@ -43,21 +45,21 @@ class Appconfig extends Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the parent save() from BaseModel but additionally updates the cached array value.
|
||||
* Calls the parent save() from BaseModel and updates the cached reference.
|
||||
* @param $data
|
||||
* @return bool
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function save($data): bool
|
||||
{
|
||||
$this->config = config('OSPOS');
|
||||
$success = parent::save($data);
|
||||
|
||||
$config = config('OSPOS');
|
||||
$key = array_keys($data)[0];
|
||||
|
||||
if($success)
|
||||
{
|
||||
$this->config[$key] = $data[$key];
|
||||
$config->settings[$key] = $data[$key];
|
||||
$config->update_settings();
|
||||
}
|
||||
|
||||
return $success;
|
||||
@@ -102,7 +104,8 @@ class Appconfig extends Model
|
||||
*/
|
||||
public function acquire_next_invoice_sequence(bool $save = true): string
|
||||
{
|
||||
$last_used = (int)config('OSPOS')->settings['last_used_invoice_number'] + 1;
|
||||
$config = config('OSPOS')->settings;
|
||||
$last_used = (int)$config['last_used_invoice_number'] + 1;
|
||||
|
||||
if($save)
|
||||
{
|
||||
@@ -117,7 +120,8 @@ class Appconfig extends Model
|
||||
*/
|
||||
public function acquire_next_quote_sequence(bool $save = true): string
|
||||
{
|
||||
$last_used = (int)config('OSPOS')->settings['last_used_quote_number'] + 1;
|
||||
$config = config('OSPOS')->settings;
|
||||
$last_used = (int)$config['last_used_quote_number'] + 1;
|
||||
|
||||
if($save)
|
||||
{
|
||||
@@ -132,7 +136,8 @@ class Appconfig extends Model
|
||||
*/
|
||||
public function acquire_next_work_order_sequence(bool $save = true): string
|
||||
{
|
||||
$last_used = (int)config('OSPOS')->settings['last_used_work_order_number'] + 1;
|
||||
$config = config('OSPOS')->settings;
|
||||
$last_used = (int)$config['last_used_work_order_number'] + 1;
|
||||
|
||||
if($save)
|
||||
{
|
||||
|
||||
@@ -67,11 +67,12 @@ class Attribute extends Model
|
||||
*/
|
||||
public function value_exists($attribute_value, string $definition_type = TEXT): bool
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
switch($definition_type)
|
||||
{
|
||||
case DATE:
|
||||
$data_type = 'date';
|
||||
$attribute_date_value = DateTime::createFromFormat(config('OSPOS')->settings['dateformat'], $attribute_value);
|
||||
$attribute_date_value = DateTime::createFromFormat($config['dateformat'], $attribute_value);
|
||||
$attribute_value = $attribute_date_value->format('Y-m-d');
|
||||
break;
|
||||
case DECIMAL:
|
||||
@@ -648,7 +649,8 @@ class Attribute extends Model
|
||||
{
|
||||
$this->db->transStart();
|
||||
|
||||
$locale_date_format = config('OSPOS')->settings['dateformat'];
|
||||
$config = config('OSPOS')->settings;
|
||||
$locale_date_format = $config['dateformat'];
|
||||
|
||||
//New Attribute
|
||||
if(empty($attribute_id) || empty($item_id))
|
||||
|
||||
@@ -60,6 +60,7 @@ class Cashup extends Model
|
||||
*/
|
||||
public function search(string $search, array $filters, int $rows = 0, int $limit_from = 0, string $sort = 'cashup_id', string $order = 'asc', bool $count_only = FALSE): ResultInterface
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$builder = $this->db->table('cash_up AS cash_up');
|
||||
|
||||
// get_found_rows case
|
||||
@@ -105,7 +106,7 @@ class Cashup extends Model
|
||||
|
||||
$builder->where('cash_up.deleted', $filters['is_deleted']);
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: convert this to ternary notation.
|
||||
if(empty($config['date_or_time_format'])) //TODO: convert this to ternary notation.
|
||||
{
|
||||
$builder->where('DATE_FORMAT(cash_up.open_date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']));
|
||||
}
|
||||
|
||||
@@ -226,9 +226,10 @@ class Customer extends Person
|
||||
public function delete($customer_id = null, bool $purge = false): bool
|
||||
{
|
||||
$result = TRUE;
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// if privacy enforcement is selected scramble customer data
|
||||
if(config('OSPOS')->settings['enforce_privacy'])
|
||||
if($config['enforce_privacy'])
|
||||
{
|
||||
$builder = $this->db->table('people');
|
||||
$builder->where('person_id', $customer_id);
|
||||
@@ -421,4 +422,4 @@ class Customer extends Person
|
||||
|
||||
return $builder->get();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ class Expense extends Model
|
||||
*/
|
||||
public function search(string $search, array $filters, int $rows = 0, int $limit_from = 0, string $sort = 'expense_id', string $order = 'asc', bool $count_only = FALSE): ResultInterface
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$builder = $this->db->table('expenses AS expenses');
|
||||
|
||||
// get_found_rows case
|
||||
@@ -113,11 +114,11 @@ class Expense extends Model
|
||||
$builder->where('expenses.deleted', $filters['is_deleted']);
|
||||
|
||||
/* //TODO: Below needs to be replaced with Ternary notation
|
||||
empty(config('OSPOS')->settings['date_or_time_format)
|
||||
empty($config['date_or_time_format)
|
||||
? $builder->where('DATE_FORMAT(expenses.date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']))
|
||||
: $builder->where('expenses.date BETWEEN ' . $this->db->escape(rawurldecode($filters['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($filters['end_date'])));
|
||||
*/
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$builder->where('DATE_FORMAT(expenses.date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']));
|
||||
}
|
||||
@@ -269,12 +270,14 @@ class Expense extends Model
|
||||
*/
|
||||
public function get_payments_summary(string $search, array $filters): array //TODO: $search is passed but never used in the function
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// get payment summary
|
||||
$builder = $this->db->table('expenses');
|
||||
$builder->select('payment_type, COUNT(amount) AS count, SUM(amount) AS amount');
|
||||
$builder->where('deleted', $filters['is_deleted']);
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$builder->where('DATE_FORMAT(date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']));
|
||||
}
|
||||
@@ -331,4 +334,4 @@ class Expense extends Model
|
||||
|
||||
return $builder->get();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,9 @@ class Item extends Model
|
||||
*/
|
||||
public function item_number_exists(string $item_number, string $item_id = ''): bool
|
||||
{
|
||||
if(config('OSPOS')->settings['allow_duplicate_barcodes'])
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if($config['allow_duplicate_barcodes'])
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -93,6 +95,7 @@ class Item extends Model
|
||||
*/
|
||||
public function search(string $search, array $filters, int $rows = 0, int $limit_from = 0, string $sort = 'items.name', string $order = 'asc', bool $count_only = FALSE): ResultInterface
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$builder = $this->db->table('items AS items'); //TODO: I'm not sure if it's needed to write items AS items... I think you can just get away with items
|
||||
|
||||
// get_found_rows case
|
||||
@@ -150,7 +153,7 @@ class Item extends Model
|
||||
$builder->where('location_id', $filters['stock_location_id']);
|
||||
}
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: This needs to be replaced with Ternary notation
|
||||
if(empty($config['date_or_time_format'])) //TODO: This needs to be replaced with Ternary notation
|
||||
{
|
||||
$builder->where('DATE_FORMAT(trans_date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']));
|
||||
}
|
||||
@@ -505,16 +508,17 @@ class Item extends Model
|
||||
|
||||
function get_search_suggestion_format(string $seed = NULL): string
|
||||
{
|
||||
$seed .= ',' . config('OSPOS')->settings['suggestions_first_column'];
|
||||
$config = config('OSPOS')->settings;
|
||||
$seed .= ',' . $config['suggestions_first_column'];
|
||||
|
||||
if(config('OSPOS')->settings['suggestions_second_column'] !== '')
|
||||
if($config['suggestions_second_column'] !== '')
|
||||
{
|
||||
$seed .= ',' . config('OSPOS')->settings['suggestions_second_column'];
|
||||
$seed .= ',' . $config['suggestions_second_column'];
|
||||
}
|
||||
|
||||
if(config('OSPOS')->settings['suggestions_third_column'] !== '')
|
||||
if($config['suggestions_third_column'] !== '')
|
||||
{
|
||||
$seed .= ',' . config('OSPOS')->settings['suggestions_third_column'];
|
||||
$seed .= ',' . $config['suggestions_third_column'];
|
||||
}
|
||||
|
||||
return $seed;
|
||||
@@ -522,13 +526,14 @@ class Item extends Model
|
||||
|
||||
function get_search_suggestion_label($result_row): string
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$label = '';
|
||||
$label1 = config('OSPOS')->settings['suggestions_first_column'];
|
||||
$label2 = config('OSPOS')->settings['suggestions_second_column'];
|
||||
$label3 = config('OSPOS')->settings['suggestions_third_column'];
|
||||
$label1 = $config['suggestions_first_column'];
|
||||
$label2 = $config['suggestions_second_column'];
|
||||
$label3 = $config['suggestions_third_column'];
|
||||
|
||||
// If multi_pack enabled then if "name" is part of the search suggestions then append pack
|
||||
if(config('OSPOS')->settings['multi_pack_enabled'])
|
||||
if($config['multi_pack_enabled'])
|
||||
{
|
||||
$this->append_label($label, $label1, $result_row);
|
||||
$this->append_label($label, $label2, $result_row);
|
||||
@@ -1028,6 +1033,8 @@ class Item extends Model
|
||||
*/
|
||||
function get_item_name(string $as_name = NULL): string
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if($as_name == NULL) //TODO: Replace with ternary notation
|
||||
{
|
||||
$as_name = '';
|
||||
@@ -1037,7 +1044,7 @@ class Item extends Model
|
||||
$as_name = ' AS ' . $as_name;
|
||||
}
|
||||
|
||||
if(config('OSPOS')->settings['multi_pack_enabled']) //TODO: Replace with ternary notation
|
||||
if($config['multi_pack_enabled']) //TODO: Replace with ternary notation
|
||||
{
|
||||
$item_name = "concat(items.name,'" . NAME_SEPARATOR . '\', items.pack_name)' . $as_name;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,9 @@ class Item_kit extends Model
|
||||
*/
|
||||
public function item_number_exists(string $item_kit_number, string $item_kit_id = ''): bool
|
||||
{
|
||||
if(config('OSPOS')->settings['allow_duplicate_barcodes'])
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if($config['allow_duplicate_barcodes'])
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -107,6 +107,7 @@ class Receiving extends Model
|
||||
|
||||
foreach($items as $line => $item_data)
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$cur_item_info = $item->get_info($item['item_id']);
|
||||
|
||||
$receivings_items_data = [
|
||||
@@ -129,7 +130,7 @@ class Receiving extends Model
|
||||
$items_received = $item_data['receiving_quantity'] != 0 ? $item_data['quantity'] * $item_data['receiving_quantity'] : $item_data['quantity'];
|
||||
|
||||
// update cost price, if changed AND is set in config as wanted
|
||||
if($cur_item_info->cost_price != $item_data['price'] && config('OSPOS')->settings['receiving_calculate_average_price'])
|
||||
if($cur_item_info->cost_price != $item_data['price'] && $config['receiving_calculate_average_price'])
|
||||
{
|
||||
$item->change_cost_price($item_data['item_id'], $items_received, $item_data['price'], $cur_item_info->cost_price);
|
||||
}
|
||||
@@ -275,9 +276,11 @@ class Receiving extends Model
|
||||
*/
|
||||
public function create_temp_table(array $inputs): void
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(empty($inputs['receiving_id']))
|
||||
{
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$where = 'WHERE DATE(receiving_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']);
|
||||
}
|
||||
|
||||
@@ -15,11 +15,12 @@ class Summary_discounts extends Summary_report
|
||||
|
||||
public function getData(array $inputs): array
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$builder = $this->db->table('sales_items AS sales_items');
|
||||
|
||||
if($inputs['discount_type'] == FIXED) //TODO: if there are only two options for this if/else statement then it needs to be refactored to use ternary operators. Also ===?
|
||||
{
|
||||
$builder->select('SUM(sales_items.discount) AS total, MAX(CONCAT("' . config('OSPOS')->settings['currency_symbol'] . '",sales_items.discount)) AS discount, count(*) AS count');
|
||||
$builder->select('SUM(sales_items.discount) AS total, MAX(CONCAT("' . $config['currency_symbol'] . '",sales_items.discount)) AS discount, count(*) AS count');
|
||||
$builder->where('discount_type', FIXED);
|
||||
}
|
||||
elseif($inputs['discount_type'] == PERCENT) //TODO: === ?
|
||||
@@ -38,4 +39,4 @@ class Summary_discounts extends Summary_report
|
||||
|
||||
return $builder->get()->getResultArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,12 +16,14 @@ class Summary_expenses_categories extends Summary_report
|
||||
|
||||
public function getData(array $inputs): array
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$builder = $this->db->table('expenses AS expenses');
|
||||
$builder->select('expense_categories.category_name AS category_name, COUNT(expenses.expense_id) AS count, SUM(expenses.amount) AS total_amount, SUM(expenses.tax_amount) AS total_tax_amount');
|
||||
$builder->join('expense_categories AS expense_categories', 'expense_categories.expense_category_id = expenses.expense_category_id', 'LEFT');
|
||||
|
||||
//TODO: convert this to ternary notation
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: Duplicated code
|
||||
if(empty($config['date_or_time_format'])) //TODO: Duplicated code
|
||||
{
|
||||
$builder->where('DATE(expenses.date) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']));
|
||||
}
|
||||
@@ -40,10 +42,12 @@ class Summary_expenses_categories extends Summary_report
|
||||
|
||||
public function getSummaryData(array $inputs): array
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$builder = $this->db->table('expenses AS expenses');
|
||||
$builder->select('SUM(expenses.amount) AS expenses_total_amount, SUM(expenses.tax_amount) AS expenses_total_tax_amount');
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: Duplicated code
|
||||
if(empty($config['date_or_time_format'])) //TODO: Duplicated code
|
||||
{
|
||||
$builder->where('DATE(expenses.date) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']));
|
||||
}
|
||||
@@ -56,4 +60,4 @@ class Summary_expenses_categories extends Summary_report
|
||||
|
||||
return $builder->get()->getRowArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ class Summary_payments extends Summary_report
|
||||
public function getData(array $inputs): array
|
||||
{
|
||||
$cash_payment = lang('Sales.cash'); //TODO: This is never used. Should it be?
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$separator[] = [
|
||||
'trans_group' => '<HR>',
|
||||
@@ -34,7 +35,7 @@ class Summary_payments extends Summary_report
|
||||
$where = ''; //TODO: Duplicated code
|
||||
|
||||
//TODO: this needs to be converted to ternary notation
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) {
|
||||
if(empty($config['date_or_time_format'])) {
|
||||
$where .= 'DATE(sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']);
|
||||
} else {
|
||||
$where .= 'sale_time BETWEEN ' . $this->db->escape(rawurldecode($inputs['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($inputs['end_date']));
|
||||
@@ -170,4 +171,4 @@ class Summary_payments extends Summary_report
|
||||
)'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,10 @@ abstract class Summary_report extends Report
|
||||
*/
|
||||
private function __common_select(array $inputs, &$builder): void //TODO: Hungarian notation
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$where = ''; //TODO: Duplicated code
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$where .= 'DATE(sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']);
|
||||
}
|
||||
@@ -32,7 +33,7 @@ abstract class Summary_report extends Report
|
||||
$cash_adjustment = 'IFNULL(SUM(payments.sale_cash_adjustment), 0)';
|
||||
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($config['tax_included'])
|
||||
{
|
||||
$sale_total = "ROUND(SUM($sale_price), $decimals) + $cash_adjustment";
|
||||
$sale_subtotal = "$sale_total - $sales_tax";
|
||||
@@ -100,8 +101,10 @@ abstract class Summary_report extends Report
|
||||
|
||||
private function __common_where(array $inputs, &$builder): void
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
//TODO: Probably going to need to rework these since you can't reference $builder without it's instantiation.
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: Duplicated code
|
||||
if(empty($config['date_or_time_format'])) //TODO: Duplicated code
|
||||
{
|
||||
$builder->where('DATE(sales.sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']));
|
||||
}
|
||||
@@ -193,4 +196,4 @@ abstract class Summary_report extends Report
|
||||
|
||||
return $builder->get()->getRowArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,9 +17,11 @@ class Summary_sales_taxes extends Summary_report
|
||||
|
||||
protected function _where(array $inputs, object &$builder): void //TODO: hungarian notation
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$builder->where('sales.sale_status', COMPLETED);
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: Duplicated code
|
||||
if(empty($config['date_or_time_format'])) //TODO: Duplicated code
|
||||
{
|
||||
$builder->where('DATE(sales.sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']));
|
||||
}
|
||||
@@ -31,9 +33,11 @@ class Summary_sales_taxes extends Summary_report
|
||||
|
||||
public function getData(array $inputs): array
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$where = 'WHERE sale_status = ' . COMPLETED . ' ';
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$where .= 'AND DATE(sale_time) BETWEEN ' . $this->db->escape($inputs['start_date'])
|
||||
. ' AND ' . $this->db->escape($inputs['end_date']);
|
||||
@@ -55,4 +59,4 @@ class Summary_sales_taxes extends Summary_report
|
||||
|
||||
return $query->getResultArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,11 @@ class Summary_taxes extends Summary_report
|
||||
|
||||
protected function _where(array $inputs, &$builder): void //TODO: hungarian notation
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$builder->where('sales.sale_status', COMPLETED);
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$builder->where('DATE(sales.sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']));
|
||||
}
|
||||
@@ -32,9 +34,11 @@ class Summary_taxes extends Summary_report
|
||||
|
||||
public function getData(array $inputs): array
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
$where = 'WHERE sale_status = ' . COMPLETED . ' '; //TODO: Duplicated code
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: Ternary notation
|
||||
if(empty($config['date_or_time_format'])) //TODO: Ternary notation
|
||||
{
|
||||
$where .= 'AND DATE(sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']);
|
||||
}
|
||||
@@ -44,7 +48,7 @@ class Summary_taxes extends Summary_report
|
||||
}
|
||||
$decimals = totals_decimals();
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($config['tax_included'])
|
||||
{
|
||||
$sale_total = '(CASE WHEN sales_items.discount_type = ' . PERCENT
|
||||
. " THEN sales_items.quantity_purchased * sales_items.item_unit_price - ROUND(sales_items.quantity_purchased * sales_items.item_unit_price * sales_items.discount / 100, $decimals)"
|
||||
|
||||
@@ -37,6 +37,7 @@ class Sale extends Model
|
||||
*/
|
||||
public function get_info(int $sale_id): ResultInterface
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$this->create_temp_table (['sale_id' => $sale_id]);
|
||||
|
||||
$decimals = totals_decimals();
|
||||
@@ -46,7 +47,7 @@ class Sale extends Model
|
||||
. " THEN sales_items.quantity_purchased * sales_items.item_unit_price - ROUND(sales_items.quantity_purchased * sales_items.item_unit_price * sales_items.discount / 100, $decimals) "
|
||||
. 'ELSE sales_items.quantity_purchased * (sales_items.item_unit_price - sales_items.discount) END';
|
||||
|
||||
if(config('OSPOS')->settings['tax_included']) //TODO: This needs to be replaced with Ternary notation
|
||||
if($config['tax_included']) //TODO: This needs to be replaced with Ternary notation
|
||||
{
|
||||
$sale_total = "ROUND(SUM($sale_price), $decimals) + $cash_adjustment";
|
||||
}
|
||||
@@ -110,10 +111,12 @@ class Sale extends Model
|
||||
*/
|
||||
public function search(string $search, array $filters, int $rows = 0, int $limit_from = 0, string $sort = 'sales.sale_time', string $order = 'desc', bool $count_only = FALSE): ResultInterface
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// Pick up only non-suspended records
|
||||
$where = 'sales.sale_status = 0 AND ';
|
||||
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format']))
|
||||
if(empty($config['date_or_time_format']))
|
||||
{
|
||||
$where .= 'DATE(sales.sale_time) BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']);
|
||||
}
|
||||
@@ -297,6 +300,8 @@ class Sale extends Model
|
||||
*/
|
||||
public function get_payments_summary(string $search, array $filters): array
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// get payment summary
|
||||
$builder = $this->db->table('sales AS sales');
|
||||
$builder->select('payment_type, COUNT(payment_amount) AS count, SUM(payment_amount - cash_refund) AS payment_amount');
|
||||
@@ -305,7 +310,7 @@ class Sale extends Model
|
||||
$builder->join('customers AS customer', 'sales.customer_id = customer.person_id', 'LEFT');
|
||||
|
||||
//TODO: This needs to be replaced with Ternary notation
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: duplicated code. We should think about refactoring out a method.
|
||||
if(empty($config['date_or_time_format'])) //TODO: duplicated code. We should think about refactoring out a method.
|
||||
{
|
||||
$builder->where('DATE(sales.sale_time) BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']));
|
||||
}
|
||||
@@ -498,6 +503,8 @@ class Sale extends Model
|
||||
*/
|
||||
public function is_valid_receipt(string &$receipt_sale_id): bool //TODO: like the others, maybe this should be an array rather than a delimited string... either that or the parameter name needs to be changed. $receipt_sale_id implies that it's an int.
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(!empty($receipt_sale_id))
|
||||
{
|
||||
//POS #
|
||||
@@ -507,7 +514,7 @@ class Sale extends Model
|
||||
{
|
||||
return $this->exists($pieces[1]);
|
||||
}
|
||||
elseif(config('OSPOS')->settings['invoice_enable'])
|
||||
elseif($config['invoice_enable'])
|
||||
{
|
||||
$sale_info = $this->get_sale_by_invoice_number($receipt_sale_id);
|
||||
|
||||
@@ -612,6 +619,7 @@ class Sale extends Model
|
||||
public function save_value(int $sale_id, string &$sale_status, array &$items, int $customer_id, int $employee_id, string $comment, string $invoice_number,
|
||||
string $work_order_number, string $quote_number, int $sale_type, array $payments, int $dinner_table_id, array &$sales_taxes): int //TODO: this method returns the sale_id but the override is expecting it to return a bool. The signature needs to be reworked. Generally when there are more than 3 maybe 4 parameters, there's a good chance that an object needs to be passed rather than so many params.
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$attribute = model(Attribute::class);
|
||||
$customer = model(Customer::class);
|
||||
$giftcard = model(Giftcard::class);
|
||||
@@ -769,7 +777,7 @@ class Sale extends Model
|
||||
$this->save_sales_items_taxes($sale_id, $sales_taxes[1]);
|
||||
}
|
||||
|
||||
if(config('OSPOS')->settings['dinner_table_enable'])
|
||||
if($config['dinner_table_enable'])
|
||||
{
|
||||
$dinner_table = model(Dinner_table::class);
|
||||
if($sale_status == COMPLETED) //TODO: === ?
|
||||
@@ -966,7 +974,9 @@ class Sale extends Model
|
||||
*/
|
||||
public function get_sale_items_ordered(int $sale_id): ResultInterface
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
$item = model(Item::class);
|
||||
|
||||
$builder = $this->db->table('sales_items AS sales_items');
|
||||
$builder->select('
|
||||
sales_items.sale_id,
|
||||
@@ -989,12 +999,12 @@ class Sale extends Model
|
||||
$builder->where('sales_items.sale_id', $sale_id);
|
||||
|
||||
// Entry sequence (this will render kits in the expected sequence)
|
||||
if(config('OSPOS')->settings['line_sequence'] == '0') //TODO: Replace these with constants and this should be converted to a switch.
|
||||
if($config['line_sequence'] == '0') //TODO: Replace these with constants and this should be converted to a switch.
|
||||
{
|
||||
$builder->orderBy('line', 'asc');
|
||||
}
|
||||
// Group by Stock Type (nonstock first - type 1, stock next - type 0)
|
||||
elseif(config('OSPOS')->settings['line_sequence'] == '1')
|
||||
elseif($config['line_sequence'] == '1')
|
||||
{
|
||||
$builder->orderBy('stock_type', 'desc');
|
||||
$builder->orderBy('sales_items.description', 'asc');
|
||||
@@ -1002,7 +1012,7 @@ class Sale extends Model
|
||||
$builder->orderBy('items.qty_per_pack', 'asc');
|
||||
}
|
||||
// Group by Item Category
|
||||
elseif(config('OSPOS')->settings['line_sequence'] == '2')
|
||||
elseif($config['line_sequence'] == '2')
|
||||
{
|
||||
$builder->orderBy('category', 'asc');
|
||||
$builder->orderBy('sales_items.description', 'asc');
|
||||
@@ -1152,9 +1162,11 @@ class Sale extends Model
|
||||
*/
|
||||
public function create_temp_table(array $inputs): void
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(empty($inputs['sale_id']))
|
||||
{
|
||||
if(empty(config('OSPOS')->settings['date_or_time_format'])) //TODO: This needs to be replaced with Ternary notation
|
||||
if(empty($config['date_or_time_format'])) //TODO: This needs to be replaced with Ternary notation
|
||||
{
|
||||
$where = 'DATE(sales.sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']);
|
||||
}
|
||||
@@ -1182,7 +1194,7 @@ class Sale extends Model
|
||||
|
||||
$cash_adjustment = 'IFNULL(SUM(payments.sale_cash_adjustment), 0)';
|
||||
|
||||
if(config('OSPOS')->settings['tax_included'])
|
||||
if($config['tax_included'])
|
||||
{
|
||||
$sale_total = "ROUND(SUM($sale_price), $decimals) + $cash_adjustment";
|
||||
$sale_subtotal = "$sale_total - $internal_tax";
|
||||
@@ -1439,8 +1451,9 @@ class Sale extends Model
|
||||
{
|
||||
//Run these queries as a transaction, we want to make sure we do all or nothing
|
||||
$this->db->transStart();
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(config('OSPOS')->settings['dinner_table_enable'])
|
||||
if($config['dinner_table_enable'])
|
||||
{
|
||||
$dinner_table = model(Dinner_table::class);
|
||||
$dinner_table_id = $this->get_dinner_table($sale_id);
|
||||
@@ -1461,8 +1474,9 @@ class Sale extends Model
|
||||
public function clear_suspended_sale_detail(int $sale_id): bool
|
||||
{
|
||||
$this->db->transStart();
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(config('OSPOS')->settings['dinner_table_enable'])
|
||||
if($config['dinner_table_enable'])
|
||||
{
|
||||
$dinner_table = model(Dinner_table::class);
|
||||
$dinner_table_id = $this->get_dinner_table($sale_id);
|
||||
@@ -1507,7 +1521,9 @@ class Sale extends Model
|
||||
*/
|
||||
private function save_customer_rewards(int $customer_id, int $sale_id, float $total_amount, float $total_amount_used): void
|
||||
{
|
||||
if(!empty($customer_id) && config('OSPOS')->settings['customer_reward_enable'])
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
if(!empty($customer_id) && $config['customer_reward_enable'])
|
||||
{
|
||||
$customer = model(Customer::class);
|
||||
$customer_rewards = model(Customer_rewards::class);
|
||||
|
||||
@@ -224,6 +224,8 @@ class Tax_code extends Model
|
||||
*/
|
||||
public function get_sales_tax_code(string $city = '', string $state = '')
|
||||
{
|
||||
$config = config('OSPOS')->settings;
|
||||
|
||||
// if tax code using both city and state cannot be found then try again using just the state
|
||||
// if the state tax code cannot be found then try again using blanks for both
|
||||
$builder = $this->db->table('tax_codes');
|
||||
@@ -252,7 +254,7 @@ class Tax_code extends Model
|
||||
}
|
||||
else
|
||||
{
|
||||
return config('OSPOS')->settings['default_tax_code'];
|
||||
return $config['default_tax_code'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user