mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-27 01:38:48 -04:00
Compare commits
43 Commits
person_att
...
master.3.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4c48e5141 | ||
|
|
b925155ba5 | ||
|
|
d07b9349e3 | ||
|
|
51a8cffc9e | ||
|
|
694b7fe52d | ||
|
|
5669dff7da | ||
|
|
6d8890f61e | ||
|
|
a4bae6536d | ||
|
|
e1e61ba98d | ||
|
|
225bfda867 | ||
|
|
0a2dc49e3e | ||
|
|
dcc9745991 | ||
|
|
339eca6028 | ||
|
|
d1e9b6d943 | ||
|
|
2da34b0789 | ||
|
|
44d89a5ed2 | ||
|
|
0637266560 | ||
|
|
32c99248af | ||
|
|
fad53d52d4 | ||
|
|
29bdb7b75e | ||
|
|
3f1bbf99b4 | ||
|
|
4c3f6e4c31 | ||
|
|
85f577556e | ||
|
|
dc2b2862f9 | ||
|
|
9217f2d12f | ||
|
|
5ebe626543 | ||
|
|
e277fc09ac | ||
|
|
7e2a5eb297 | ||
|
|
bcc9cac570 | ||
|
|
6d4421e13b | ||
|
|
9d320772f5 | ||
|
|
3d441689d0 | ||
|
|
4eacc65785 | ||
|
|
a31ae36e18 | ||
|
|
74ed7488ee | ||
|
|
be72a0169b | ||
|
|
d786039765 | ||
|
|
74724a890f | ||
|
|
8c201816b9 | ||
|
|
5767a3929f | ||
|
|
2311a644ab | ||
|
|
3d65c3fffa | ||
|
|
517635181c |
@@ -7,6 +7,11 @@ branches:
|
||||
services:
|
||||
- docker
|
||||
before_install:
|
||||
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
||||
- sudo apt-get update
|
||||
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
||||
- docker --version
|
||||
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
- chmod +x docker-compose
|
||||
- sudo mv docker-compose /usr/local/bin
|
||||
@@ -22,7 +27,7 @@ script:
|
||||
- docker-compose -f docker-compose.test.yml up --abort-on-container-exit
|
||||
env:
|
||||
global:
|
||||
- DOCKER_COMPOSE_VERSION=1.21.1
|
||||
- DOCKER_COMPOSE_VERSION=1.29.1
|
||||
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
|
||||
- date=`date +%Y%m%d%H%M%S` && branch=${TRAVIS_BRANCH} && rev=`git rev-parse --short=6 HEAD`
|
||||
after_success:
|
||||
|
||||
27
SECURITY.md
Normal file
27
SECURITY.md
Normal file
@@ -0,0 +1,27 @@
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
|
||||
|
||||
- [Security Policy](#security-policy)
|
||||
- [Supported Versions](#supported-versions)
|
||||
- [Reporting a Vulnerability](#reporting-a-vulnerability)
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
We release patches for security vulnerabilities. Which versions are eligible
|
||||
receiving such patches depend on the CVSS v3.0 Rating:
|
||||
|
||||
| CVSS v3.0 | Supported Versions |
|
||||
| --------- | -------------------------------------------------- |
|
||||
| 7.3 | 3.5.5 |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please report (suspected) security vulnerabilities to
|
||||
**[jekkos](mailto:jekkos@opensourcepos.org)**. You will receive a response from
|
||||
us within 48 hours. If the issue is confirmed, we will release a patch as soon
|
||||
as possible depending on complexity but historically within a few days.
|
||||
@@ -1,3 +1,18 @@
|
||||
Version 3.3.5
|
||||
-------------
|
||||
+ Translation updates (Romanian, Ukranian, Vietnamese, Thai, Polish, Swedish, Portugese, Arabic, French, Chinese, Dutch, Tamil, Turkish, Spanish)
|
||||
+ New login page restyle
|
||||
+ Partial BS5 upgrade
|
||||
+ Username verification fix on employee insert/update
|
||||
+ Minor report fixes
|
||||
+ Attribute encoding fix
|
||||
+ Grunt/CI updates
|
||||
+ Database and performance optimizations
|
||||
+ CSV item import improvements
|
||||
+ Fix decimal render
|
||||
+ Translation fallback in other languages than english
|
||||
+ Fixes for docker to make it run on Windows
|
||||
|
||||
Version 3.3.4
|
||||
-------------
|
||||
+ Translation updates (Hungarian, Indonesian, Bosnian, Ukranian, Vietnamese, Spanish)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
|
||||
|
|
||||
*/
|
||||
$config['application_version'] = '3.4.0-dev';
|
||||
$config['application_version'] = '3.3.5';
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -110,6 +110,7 @@ define('ITEM', 0);
|
||||
define('ITEM_KIT', 1);
|
||||
define('ITEM_AMOUNT_ENTRY', 2);
|
||||
define('ITEM_TEMP', 3);
|
||||
define('NEW_ITEM', -1);
|
||||
|
||||
define('PRINT_ALL', 0);
|
||||
define('PRINT_PRICED', 1);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once("Secure_Controller.php");
|
||||
require_once('Secure_Controller.php');
|
||||
|
||||
class Attributes extends Secure_Controller
|
||||
{
|
||||
@@ -24,16 +24,16 @@ class Attributes extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? definition.definition_name : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$attributes = $this->Attribute->search($search, $limit, $offset, $sort, $order);
|
||||
$total_rows = $this->Attribute->get_found_rows($search);
|
||||
|
||||
$data_rows = array();
|
||||
$data_rows = [];
|
||||
foreach($attributes->result() as $attribute)
|
||||
{
|
||||
$attribute->definition_flags = $this->_get_attributes($attribute->definition_flags);
|
||||
$attribute->definition_flags = $this->get_attributes($attribute->definition_flags);
|
||||
$data_rows[] = get_attribute_definition_data_row($attribute, $this);
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ class Attributes extends Secure_Controller
|
||||
{
|
||||
$definition_flags = 0;
|
||||
|
||||
$flags = (empty($this->input->post('definition_flags'))) ? array() : $this->input->post('definition_flags');
|
||||
$flags = (empty($this->input->post('definition_flags'))) ? [] : $this->input->post('definition_flags');
|
||||
|
||||
foreach($flags as $flag)
|
||||
{
|
||||
@@ -129,15 +129,15 @@ class Attributes extends Secure_Controller
|
||||
public function get_row($row_id)
|
||||
{
|
||||
$attribute_definition_info = $this->Attribute->get_info($row_id);
|
||||
$attribute_definition_info->definition_flags = $this->_get_attributes($attribute_definition_info->definition_flags);
|
||||
$attribute_definition_info->definition_flags = $this->get_attributes($attribute_definition_info->definition_flags);
|
||||
$data_row = $this->xss_clean(get_attribute_definition_data_row($attribute_definition_info));
|
||||
|
||||
echo json_encode($data_row);
|
||||
}
|
||||
|
||||
private function _get_attributes($definition_flags = 0)
|
||||
private function get_attributes($definition_flags = 0)
|
||||
{
|
||||
$definition_flag_names = array();
|
||||
$definition_flag_names = [];
|
||||
foreach (Attribute::get_definition_flags() as $id => $term)
|
||||
{
|
||||
if ($id & $definition_flags)
|
||||
@@ -163,11 +163,11 @@ class Attributes extends Secure_Controller
|
||||
$data['definition_info'] = $info;
|
||||
|
||||
$show_all = Attribute::SHOW_IN_ITEMS | Attribute::SHOW_IN_RECEIVINGS | Attribute::SHOW_IN_SALES;
|
||||
$data['definition_flags'] = $this->_get_attributes($show_all);
|
||||
$data['definition_flags'] = $this->get_attributes($show_all);
|
||||
$selected_flags = $info->definition_flags === '' ? $show_all : $info->definition_flags;
|
||||
$data['selected_definition_flags'] = $this->_get_attributes($selected_flags);
|
||||
$data['selected_definition_flags'] = $this->get_attributes($selected_flags);
|
||||
|
||||
$this->load->view("attributes/form", $data);
|
||||
$this->load->view('attributes/form', $data);
|
||||
}
|
||||
|
||||
public function delete_value($attribute_id)
|
||||
@@ -189,4 +189,4 @@ class Attributes extends Secure_Controller
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('attributes_definition_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ class Cashups extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'cashup_id' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
$filters = array(
|
||||
'start_date' => $this->input->get('start_date'),
|
||||
|
||||
@@ -58,7 +58,7 @@ class Customers extends Persons
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? LAST_NAME : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$customers = $this->Customer->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -17,7 +17,7 @@ class Employees extends Persons
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? LAST_NAME : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$employees = $this->Employee->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -60,6 +60,7 @@ class Employees extends Persons
|
||||
$person_info->$property = $this->xss_clean($value);
|
||||
}
|
||||
$data['person_info'] = $person_info;
|
||||
$data['employee_id'] = $employee_id;
|
||||
|
||||
$modules = array();
|
||||
foreach($this->Module->get_all_modules()->result() as $module)
|
||||
@@ -190,5 +191,11 @@ class Employees extends Persons
|
||||
echo json_encode(array('success' => FALSE, 'message' => $this->lang->line('employees_cannot_be_deleted')));
|
||||
}
|
||||
}
|
||||
|
||||
public function check_username($employee_id)
|
||||
{
|
||||
$exists = $this->Employee->username_exists($employee_id, $this->input->get('username'));
|
||||
echo !$exists ? 'true' : 'false';
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -30,7 +30,7 @@ class Expenses extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'expense_id' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
$filters = array(
|
||||
'start_date' => $this->input->get('start_date'),
|
||||
|
||||
@@ -24,7 +24,7 @@ class Expenses_categories extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'category_name' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$expense_categories = $this->Expense_category->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -24,7 +24,7 @@ class Giftcards extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'giftcard_number' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$giftcards = $this->Giftcard->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -59,7 +59,7 @@ class Item_kits extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? NAME : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$item_kits = $this->Item_kit->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -54,10 +54,10 @@ class Sales extends Secure_Controller
|
||||
public function search()
|
||||
{
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$order = $this->input->get('order');
|
||||
$sort = $this->input->post('sort') === NULL ? 'sales.sale_time' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$filters = array('sale_type' => 'all',
|
||||
'location_id' => 'all',
|
||||
|
||||
@@ -35,7 +35,7 @@ class Suppliers extends Persons
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? LAST_NAME : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$suppliers = $this->Supplier->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -25,7 +25,7 @@ class Tax_categories extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'tax_category' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$tax_categories = $this->Tax_category->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -29,7 +29,7 @@ class Tax_codes extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'tax_code_name' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$tax_codes = $this->Tax_code->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -25,7 +25,7 @@ class Tax_jurisdictions extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'jurisdiction_name' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$tax_jurisdictions = $this->Tax_jurisdiction->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -57,7 +57,7 @@ class Taxes extends Secure_Controller
|
||||
$search = $this->input->get('search');
|
||||
$limit = $this->input->get('limit');
|
||||
$offset = $this->input->get('offset');
|
||||
$sort = $this->input->get('sort');
|
||||
$sort = $this->input->post('sort') === NULL ? 'tax_code_name' : $this->db->escape($this->input->get('sort'));
|
||||
$order = $this->input->get('order');
|
||||
|
||||
$tax_rates = $this->Tax->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -1,30 +1,20 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Generates the header content for the import_items.csv file
|
||||
*
|
||||
* @return string Comma separated headers for the CSV file
|
||||
*/
|
||||
function generate_import_items_csv($stock_locations,$attributes)
|
||||
{
|
||||
$csv_headers = pack("CCC",0xef,0xbb,0xbf); //Encode the Byte-Order Mark (BOM) so that UTF-8 File headers display properly in Microsoft Excel
|
||||
$csv_headers .= 'Barcode,"Item Name",Category,"Supplier ID","Cost Price","Unit Price","Tax 1 Name","Tax 1 Percent","Tax 2 Name","Tax 2 Percent","Reorder Level",Description,"Allow Alt Description","Item has Serial Number",item_image,HSN';
|
||||
$csv_headers = pack('CCC',0xef,0xbb,0xbf); //Encode the Byte-Order Mark (BOM) so that UTF-8 File headers display properly in Microsoft Excel
|
||||
$csv_headers .= 'Id,Barcode,"Item Name",Category,"Supplier ID","Cost Price","Unit Price","Tax 1 Name","Tax 1 Percent","Tax 2 Name","Tax 2 Percent","Reorder Level",Description,"Allow Alt Description","Item has Serial Number",Image,HSN';
|
||||
$csv_headers .= generate_stock_location_headers($stock_locations);
|
||||
$csv_headers .= generate_attribute_headers($attributes);
|
||||
|
||||
return $csv_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a list of stock location names as a string
|
||||
*
|
||||
* @return string Comma-separated list of stock location names
|
||||
*/
|
||||
function generate_stock_location_headers($locations)
|
||||
{
|
||||
$location_headers = "";
|
||||
$location_headers = '';
|
||||
|
||||
foreach($locations as $location_id => $location_name)
|
||||
foreach($locations as $location_name)
|
||||
{
|
||||
$location_headers .= ',"location_' . $location_name . '"';
|
||||
}
|
||||
@@ -32,14 +22,9 @@ function generate_stock_location_headers($locations)
|
||||
return $location_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a list of attribute names as a string
|
||||
*
|
||||
* @return string Comma-separated list of attribute names
|
||||
*/
|
||||
function generate_attribute_headers($attribute_names)
|
||||
{
|
||||
$attribute_headers = "";
|
||||
$attribute_headers = '';
|
||||
unset($attribute_names[-1]);
|
||||
|
||||
foreach($attribute_names as $attribute_name)
|
||||
@@ -50,61 +35,59 @@ function generate_attribute_headers($attribute_names)
|
||||
return $attribute_headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the contents of a given CSV formatted file into a two-dimensional array
|
||||
*
|
||||
* @param string $file_name Name of the file to read.
|
||||
* @return boolean|array[][] two-dimensional array with the file contents or FALSE on failure.
|
||||
*/
|
||||
function get_csv_file($file_name)
|
||||
{
|
||||
ini_set("auto_detect_line_endings", true);
|
||||
//TODO: current implementation reads the entire file in. This is memory intensive for large files.
|
||||
//We may want to rework the CSV import feature to read the file in chunks, process it and continue.
|
||||
//It must be done in a way that does not significantly negatively affect performance.
|
||||
ini_set('auto_detect_line_endings', true);
|
||||
|
||||
$csv_rows = FALSE;
|
||||
|
||||
if(($csv_file = fopen($file_name,'r')) !== FALSE)
|
||||
{
|
||||
$CI =& get_instance();
|
||||
$CI->load->helper('security');
|
||||
|
||||
$csv_rows = [];
|
||||
|
||||
//Skip Byte-Order Mark
|
||||
if(bom_exists($csv_file) === TRUE)
|
||||
{
|
||||
fseek($csv_file, 3);
|
||||
}
|
||||
|
||||
while (($data = fgetcsv($csv_file)) !== FALSE)
|
||||
$headers = fgetcsv($csv_file);
|
||||
|
||||
while(($row = fgetcsv($csv_file)) !== FALSE)
|
||||
{
|
||||
//Skip empty lines
|
||||
if(array(null) !== $data)
|
||||
//Skip empty lines
|
||||
if($row !== array(null))
|
||||
{
|
||||
$line_array[] = $data;
|
||||
$csv_rows[] = array_combine($headers, $CI->security->xss_clean($row));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
|
||||
fclose($csv_file);
|
||||
}
|
||||
|
||||
return $line_array;
|
||||
return $csv_rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the first three characters of a file for the Byte-Order Mark then returns the file position to the first character.
|
||||
*
|
||||
* @param object $file_handle File handle to check
|
||||
* @return bool Returns TRUE if the BOM exists and FALSE otherwise.
|
||||
*/
|
||||
function bom_exists(&$file_handle)
|
||||
{
|
||||
$str = fread($file_handle,3);
|
||||
$result = FALSE;
|
||||
$candidate = fread($file_handle, 3);
|
||||
|
||||
rewind($file_handle);
|
||||
|
||||
$bom = pack("CCC", 0xef, 0xbb, 0xbf);
|
||||
$bom = pack('CCC', 0xef, 0xbb, 0xbf);
|
||||
|
||||
if (0 === strncmp($str, $bom, 3))
|
||||
if (0 === strncmp($candidate, $bom, 3))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
$result = TRUE;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
?>
|
||||
@@ -249,7 +249,7 @@ function get_payment_options()
|
||||
$config = get_instance()->config;
|
||||
$lang = get_instance()->lang;
|
||||
|
||||
$payments = array();
|
||||
$payments = [];
|
||||
|
||||
|
||||
if($config->item('payment_options_order') == 'debitcreditcash')
|
||||
@@ -388,7 +388,7 @@ function to_quantity_decimals($number)
|
||||
return to_decimals($number, 'quantity_decimals');
|
||||
}
|
||||
|
||||
function to_decimals($number, $decimals=NULL, $type=\NumberFormatter::DECIMAL)
|
||||
function to_decimals($number, $decimals = NULL, $type=\NumberFormatter::DECIMAL)
|
||||
{
|
||||
// ignore empty strings and return
|
||||
// NOTE: do not change it to empty otherwise tables will show a 0 with no decimal nor currency symbol
|
||||
@@ -424,7 +424,6 @@ function parse_tax($number)
|
||||
function parse_decimals($number, $decimals = NULL)
|
||||
{
|
||||
// ignore empty strings and return
|
||||
|
||||
if(empty($number))
|
||||
{
|
||||
return $number;
|
||||
@@ -442,7 +441,7 @@ function parse_decimals($number, $decimals = NULL)
|
||||
|
||||
$config = get_instance()->config;
|
||||
|
||||
if($decimals == NULL)
|
||||
if($decimals === NULL)
|
||||
{
|
||||
$decimals = $config->item('currency_decimals');
|
||||
}
|
||||
@@ -600,12 +599,13 @@ function dateformat_bootstrap($php_format)
|
||||
|
||||
function valid_date($date)
|
||||
{
|
||||
return preg_match('/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])(?:( [0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/', $date);
|
||||
$config = get_instance()->Appconfig;
|
||||
return (DateTime::createFromFormat($config->get('dateformat'), $date));
|
||||
}
|
||||
|
||||
function valid_decimal($decimal)
|
||||
{
|
||||
return preg_match('/^(\d*\.)?\d+$/', $decimal);
|
||||
return (preg_match('/^(\d*\.)?\d+$/', $decimal) === 1);
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -8,6 +8,7 @@ $lang["employees_confirm_restore"] = "Are you sure you want to restore the selec
|
||||
$lang["employees_current_password"] = "Current Password";
|
||||
$lang["employees_current_password_invalid"] = "Current Password is invalid";
|
||||
$lang["employees_employee"] = "Employee";
|
||||
$lang["employees_username_duplicate"] = "Employee username is already in use. Please choose another one.";
|
||||
$lang["employees_error_adding_updating"] = "Employee add or update failed";
|
||||
$lang["employees_error_deleting_demo_admin"] = "You cannot delete the demo admin user";
|
||||
$lang["employees_error_updating_demo_admin"] = "You cannot change the demo admin user";
|
||||
|
||||
@@ -8,6 +8,7 @@ $lang["employees_confirm_restore"] = "Are you sure you want to restore selected
|
||||
$lang["employees_current_password"] = "Current Password";
|
||||
$lang["employees_current_password_invalid"] = "Current Password is invalid.";
|
||||
$lang["employees_employee"] = "Employee";
|
||||
$lang["employees_username_duplicate"] = "Employee username is already in use. Please choose another one.";
|
||||
$lang["employees_error_adding_updating"] = "Employee add or update failed.";
|
||||
$lang["employees_error_deleting_demo_admin"] = "You can not delete the demo admin user.";
|
||||
$lang["employees_error_updating_demo_admin"] = "You can not change the demo admin user.";
|
||||
|
||||
@@ -4,7 +4,7 @@ $lang["attributes_attribute_value_invalid_chars"] = "El valor del atributo no pu
|
||||
$lang["attributes_confirm_delete"] = "¿Está seguro de que desea borrar los atributos seleccionados?";
|
||||
$lang["attributes_confirm_restore"] = "¿Está seguro de que desea restaurar los atributos seleccionados?";
|
||||
$lang["attributes_definition_cannot_be_deleted"] = "No se han podido borrar los atributos seleccionados";
|
||||
$lang["attributes_definition_error_adding_updating"] = "El atributo %1 no pudo ser agregado o actualizado. Por favor compruebe el registro de errores.";
|
||||
$lang["attributes_definition_error_adding_updating"] = "El atributo %1 no pudo ser agregado o actulizado. Por favor, compruebe el registro de errores.";
|
||||
$lang["attributes_definition_flags"] = "Visibilidad del atributo";
|
||||
$lang["attributes_definition_group"] = "Grupo";
|
||||
$lang["attributes_definition_id"] = "Id";
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<?php
|
||||
|
||||
$lang["tables_all"] = "Todos";
|
||||
<?php
|
||||
$lang["tables_all"] = "Todas";
|
||||
$lang["tables_columns"] = "Columnas";
|
||||
$lang["tables_hide_show_pagination"] = "Ocultar/Mostrar paginación";
|
||||
$lang["tables_loading"] = "Por favor espere...";
|
||||
$lang["tables_page_from_to"] = "Mostrando desde {0} hasta {1} de {2} resultados";
|
||||
$lang["tables_refresh"] = "Actualizar";
|
||||
$lang["tables_page_from_to"] = "Mostrando desde {0} hasta {1} - En total {2} resultados";
|
||||
$lang["tables_refresh"] = "Refrescar";
|
||||
$lang["tables_rows_per_page"] = "{0} resultados por página";
|
||||
$lang["tables_toggle"] = "Ocultar/Mostrar";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["cashups_amount"] = "Cantidad";
|
||||
$lang["cashups_amount_number"] = "Cantidad debe ser un numero";
|
||||
$lang["cashups_amount_required"] = "Cantidad es un campo obligatorio.";
|
||||
@@ -9,8 +8,8 @@ $lang["cashups_close_employee"] = "Cerrado por";
|
||||
$lang["cashups_closed_amount_card"] = "Tarjetas";
|
||||
$lang["cashups_closed_amount_cash"] = "Efectivo Final";
|
||||
$lang["cashups_closed_amount_check"] = "Cheques";
|
||||
$lang["cashups_closed_amount_due"] = "Deudado";
|
||||
$lang["cashups_closed_amount_total"] = "Total";
|
||||
$lang["cashups_closed_amount_due"] = "Cobros pendientes";
|
||||
$lang["cashups_closed_amount_total"] = "Balance Total";
|
||||
$lang["cashups_closed_date"] = "Fecha de Cierre";
|
||||
$lang["cashups_confirm_delete"] = "¿Estás seguro de que quieres borrar el Turno seleccionado?";
|
||||
$lang["cashups_confirm_restore"] = "¿Está seguro de que desea restaurar los Turnos seleccionados?";
|
||||
@@ -24,7 +23,7 @@ $lang["cashups_is_deleted"] = "Borrado";
|
||||
$lang["cashups_new"] = "Nuevo Turno";
|
||||
$lang["cashups_no_cashups_to_display"] = "No hay Turnos para mostrar";
|
||||
$lang["cashups_none_selected"] = "No ha seleccionado ningún Turno";
|
||||
$lang["cashups_note"] = "Notas";
|
||||
$lang["cashups_note"] = "Nota de pago";
|
||||
$lang["cashups_one_or_multiple"] = "Turno(s)";
|
||||
$lang["cashups_open_amount_cash"] = "Efectivo Inicial";
|
||||
$lang["cashups_open_date"] = "Fecha de Apertura";
|
||||
@@ -34,5 +33,16 @@ $lang["cashups_successful_adding"] = "Turno agregado con éxito";
|
||||
$lang["cashups_successful_deleted"] = "Turno borrado con éxito";
|
||||
$lang["cashups_successful_updating"] = "Turno actualizado con éxito";
|
||||
$lang["cashups_total"] = "Total";
|
||||
$lang["cashups_transfer_amount_cash"] = "Entrada/Salida de Efectivo";
|
||||
$lang["cashups_transfer_amount_cash"] = "Salida/Entrada de Efectivo";
|
||||
$lang["cashups_update"] = "Actualizar Turno";
|
||||
$lang["cashups_warning"] = "No enviar a menos que sea Abierto o Cerrado en el día";
|
||||
$lang['cashups_transfer_amount_cash'] = "Entrada/Salida de Efectivo";
|
||||
$lang['cashups_transfer_amount_cash_minus'] = "Convertir en Efectivo = -";
|
||||
$lang["cashups_info_employee"] = "Empleado Información de Efectivo";
|
||||
$lang["cashups_giftcard"] = "Tarjetas de Regalo de Efectivo";
|
||||
$lang["cashups_enable_expected"] = "Mostrar Ventas";
|
||||
$lang["cashups_closed_amount_giftcard"] = "Tarjetas de Regalo";
|
||||
$lang["cashups_confirm_submit"] = "¿Está seguro que desea enviar este efectivo? La jornada estará cerrada.";
|
||||
$lang["cashups_cash_difference"] = "Diferencia de Efectivo: ";
|
||||
$lang["cashups_cancel_cashups_enter"] = "Pulse Aceptar para enviar o haga clic en Cancelar para continuar editando";
|
||||
$lang["cashups_cancel_cashups"] = "Cancelar";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["common_address_1"] = "Dirección 1";
|
||||
$lang["common_address_2"] = "Dirección 2";
|
||||
$lang["common_city"] = "Ciudad";
|
||||
@@ -8,16 +7,16 @@ $lang["common_comments"] = "Comentarios";
|
||||
$lang["common_common"] = "Común";
|
||||
$lang["common_confirm_search"] = "Has seleccionado una o más filas. Éstas no estarán seleccionadas después de tu búsqueda. ¿Seguro(a) que quieres hacer esta búsqueda?";
|
||||
$lang["common_copyrights"] = "© 2010 - %1";
|
||||
$lang["common_correct_errors"] = "Por favor corrija los errores identificados antes de guardar";
|
||||
$lang["common_correct_errors"] = "Por favor, corrija los errores identificados antes de guardar";
|
||||
$lang["common_country"] = "País";
|
||||
$lang["common_date"] = "Fecha";
|
||||
$lang["common_delete"] = "Borrar";
|
||||
$lang["common_det"] = "Detalles";
|
||||
$lang["common_det"] = "detalles";
|
||||
$lang["common_download_import_template"] = "Descargar Plantilla de Importación de CSV (CSV)";
|
||||
$lang["common_edit"] = "Editar";
|
||||
$lang["common_edit"] = "editar";
|
||||
$lang["common_email"] = "Email";
|
||||
$lang["common_email_invalid_format"] = "El correo-e no está en el formato requerido.";
|
||||
$lang["common_export_csv"] = "Exportar CSV";
|
||||
$lang["common_export_csv"] = "Reporte en CSV";
|
||||
$lang["common_export_csv_no"] = "No";
|
||||
$lang["common_export_csv_yes"] = "Si";
|
||||
$lang["common_fields_required_message"] = "Los campos en rojo son requeridos";
|
||||
@@ -28,12 +27,12 @@ $lang["common_gender"] = "Género";
|
||||
$lang["common_gender_female"] = "F";
|
||||
$lang["common_gender_male"] = "M";
|
||||
$lang["common_gender_undefined"] = "";
|
||||
$lang["common_icon"] = "";
|
||||
$lang["common_id"] = "Id";
|
||||
$lang["common_icon"] = "Icono";
|
||||
$lang["common_id"] = "Identificación";
|
||||
$lang["common_import"] = "Importar";
|
||||
$lang["common_import_change_file"] = "Cambiar";
|
||||
$lang["common_import_csv"] = "Importar CSV";
|
||||
$lang["common_import_full_path"] = "Se requiere la ruta completa del archivo CSV";
|
||||
$lang["common_import_full_path"] = "La ruta completa al archivo CSV es requerida";
|
||||
$lang["common_import_remove_file"] = "Quitar";
|
||||
$lang["common_import_select_file"] = "Selecciona archivo";
|
||||
$lang["common_inv"] = "Inv";
|
||||
@@ -42,9 +41,9 @@ $lang["common_last_name_required"] = "Apellidos es un campo requerido.";
|
||||
$lang["common_last_page"] = "Ultima";
|
||||
$lang["common_learn_about_project"] = "para leer la información más reciente acerca del proyecto.";
|
||||
$lang["common_list_of"] = "Lista de";
|
||||
$lang["common_logo"] = "";
|
||||
$lang["common_logo_mark"] = "";
|
||||
$lang["common_logout"] = "Salir";
|
||||
$lang["common_logo"] = "Logotipo";
|
||||
$lang["common_logo_mark"] = "Marca";
|
||||
$lang["common_logout"] = "Cerrar sesión";
|
||||
$lang["common_migration_needed"] = "La migración de la base de datos hacia %1 comenzará después de iniciar sesión.";
|
||||
$lang["common_new"] = "Nuevo";
|
||||
$lang["common_no"] = "";
|
||||
@@ -64,8 +63,8 @@ $lang["common_return_policy"] = "Política de Devolución";
|
||||
$lang["common_search"] = "Buscar";
|
||||
$lang["common_search_options"] = "Opciones de búsqueda";
|
||||
$lang["common_searched_for"] = "Buscado";
|
||||
$lang["common_software_short"] = "";
|
||||
$lang["common_software_title"] = "";
|
||||
$lang["common_software_short"] = "OSPOS";
|
||||
$lang["common_software_title"] = "Punto de Venta Open Source";
|
||||
$lang["common_state"] = "Estado";
|
||||
$lang["common_submit"] = "Enviar";
|
||||
$lang["common_total_spent"] = "Total gastado";
|
||||
@@ -73,7 +72,40 @@ $lang["common_unknown"] = "Desconocido";
|
||||
$lang["common_view_recent_sales"] = "Ver Ventas Recientes";
|
||||
$lang["common_website"] = "opensourcepos.org";
|
||||
$lang["common_welcome"] = "Bienvenido(a)";
|
||||
$lang["common_welcome_message"] = "Bienvenido(a) a OSPOS. Haz click en algún módulo para empezar.";
|
||||
$lang["common_welcome_message"] = "Bienvenido(a) a OSPOS. Haz click en algún módulo, para empezar.";
|
||||
$lang["common_yes"] = "";
|
||||
$lang["common_you_are_using_ospos"] = "Estás usando Open Source Point Of Sale Versión";
|
||||
$lang["common_zip"] = "Código Postal";
|
||||
$lang["commom_carrier"] = "Operadores
|
||||
|
||||
AT&T
|
||||
@txt.att.net
|
||||
|
||||
Boost Mobile\t
|
||||
@smsmyboostmobile.com
|
||||
|
||||
Cricket\t
|
||||
@sms.cricketwireless.net
|
||||
|
||||
Sprint\t
|
||||
@messaging.sprintpcs.com
|
||||
|
||||
T-Mobile
|
||||
@tmomail.net
|
||||
|
||||
U.S. Cellular\t
|
||||
@email.uscc.net
|
||||
|
||||
Verizon\t
|
||||
@vtext.com
|
||||
|
||||
Virgin Mobile\t
|
||||
@vmobl.com";
|
||||
$lang["common_position"] = "Posición";
|
||||
$lang["common_people"] = "Personas";
|
||||
$lang["common_manager"] = "Administrador";
|
||||
$lang["common_fields_required_message_unique"] = "Los campos en rojo son obligatorios y deben ser únicos";
|
||||
$lang["common_dashboard"] = "Tablero";
|
||||
$lang["common_color"] = "Colores del tema";
|
||||
$lang["common_clerk"] = "Empleado";
|
||||
$lang["common_admin"] = "Administrador";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["config_address"] = "Dirección del Comercio";
|
||||
$lang["config_address_required"] = "Dirección del Comercio es requerida.";
|
||||
$lang["config_all_set"] = "¡Todos los permisos de archivo están configurados correctamente!";
|
||||
@@ -18,7 +17,7 @@ $lang["config_barcode_generate_if_empty"] = "Generar si esta vacio.";
|
||||
$lang["config_barcode_height"] = "Alto (px)";
|
||||
$lang["config_barcode_id"] = "Id/Artículo";
|
||||
$lang["config_barcode_info"] = "Información de Configuración de Código de Barras";
|
||||
$lang["config_barcode_layout"] = "Presentación Código Barras";
|
||||
$lang["config_barcode_layout"] = "Diseño Código de Barras";
|
||||
$lang["config_barcode_name"] = "Nombre";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_number_in_row"] = "Número en la línea";
|
||||
@@ -27,14 +26,14 @@ $lang["config_barcode_page_width"] = "Mostrar ancho de página";
|
||||
$lang["config_barcode_price"] = "Precio";
|
||||
$lang["config_barcode_second_row"] = "Fila 2";
|
||||
$lang["config_barcode_third_row"] = "Fila 3";
|
||||
$lang["config_barcode_tooltip"] = "Cuidado: esta característica puede causar duplicados ser importados o creados. No lo use si no quiere códigos de barras duplicadas.";
|
||||
$lang["config_barcode_tooltip"] = "Cuidado: esta característica puede causar duplicados ser importados o creados, No lo use si no quiere códigos de barras duplicadas.";
|
||||
$lang["config_barcode_type"] = "Tipo de Código de Barra";
|
||||
$lang["config_barcode_width"] = "Ancho (px)";
|
||||
$lang["config_bottom"] = "Abajo";
|
||||
$lang["config_cash_decimals"] = "Decimales del efectivo";
|
||||
$lang["config_cash_decimals"] = "Decimales del Efectivo";
|
||||
$lang["config_cash_decimals_tooltip"] = "Si los decimales del efectivo y del tipo de moneda son los mismos no habrá redondeo de los pagos en efectivo.";
|
||||
$lang["config_cash_rounding"] = "Redondeo de efectivo";
|
||||
$lang["config_category_dropdown"] = "";
|
||||
$lang["config_cash_rounding"] = "Redondeo del Efectivo";
|
||||
$lang["config_category_dropdown"] = "Mostrar Categoria como desplegable";
|
||||
$lang["config_center"] = "Centro";
|
||||
$lang["config_comma"] = "coma";
|
||||
$lang["config_company"] = "Nombre del Comercio";
|
||||
@@ -44,16 +43,16 @@ $lang["config_company_remove_image"] = "Quitar Imagen";
|
||||
$lang["config_company_required"] = "Nombre del Comercio es requerido";
|
||||
$lang["config_company_select_image"] = "Seleccionar Imagen";
|
||||
$lang["config_company_website_url"] = "Sitio Web no es una URL estándar (http://...).";
|
||||
$lang["config_country_codes"] = "Codigo de pais";
|
||||
$lang["config_country_codes"] = "Código de País";
|
||||
$lang["config_country_codes_tooltip"] = "Lista de codigo de paises separado por coma para busqueda de direcciones.";
|
||||
$lang["config_currency_code"] = "Código de Moneda";
|
||||
$lang["config_currency_decimals"] = "Decimales de moneda";
|
||||
$lang["config_currency_symbol"] = "Símbolo de moneda";
|
||||
$lang["config_customer_reward"] = "Premio";
|
||||
$lang["config_currency_decimals"] = "Decimales del tipo de moneda";
|
||||
$lang["config_currency_symbol"] = "Símbolo de la moneda";
|
||||
$lang["config_customer_reward"] = "Cat. de Cliente";
|
||||
$lang["config_customer_reward_duplicate"] = "La recompensa debe ser única.";
|
||||
$lang["config_customer_reward_enable"] = "Activar los premios para los consumidores";
|
||||
$lang["config_customer_reward_invalid_chars"] = "El nombre del premio no puede contener el carácter '_'";
|
||||
$lang["config_customer_reward_required"] = "El premio es un campo obligatorio";
|
||||
$lang["config_customer_reward_enable"] = "Activar recompenza para clientes";
|
||||
$lang["config_customer_reward_invalid_chars"] = "El nombre de la recompenza no puede contener el carácter '_'";
|
||||
$lang["config_customer_reward_required"] = "El nombre es un campo obligatorio";
|
||||
$lang["config_customer_sales_tax_support"] = "Habilitar la gestión de impuestos en las ventas a clientes";
|
||||
$lang["config_date_or_time_format"] = "Filtro de fecha y hora";
|
||||
$lang["config_datetimeformat"] = "Formato de fecha y hora";
|
||||
@@ -74,7 +73,7 @@ $lang["config_default_item_columns"] = "Columnas de Productos Visibles por Defec
|
||||
$lang["config_default_origin_tax_code"] = "Código de impuesto por defecto";
|
||||
$lang["config_default_receivings_discount"] = "Descuento por Defecto para Recibos";
|
||||
$lang["config_default_receivings_discount_number"] = "El Descuento por Defecto Para Los Recibos Debe Ser Un Número.";
|
||||
$lang["config_default_receivings_discount_required"] = "El Descuento Predeterminado para los Recibos es un campo obligatorio.";
|
||||
$lang["config_default_receivings_discount_required"] = "El Descuento Predeterminado para los Recibos es un campo obligatorio.";
|
||||
$lang["config_default_sales_discount"] = "Descuento Predeterminado para Ventas";
|
||||
$lang["config_default_sales_discount_number"] = "Descuento en ventas predeterminado debe ser un número.";
|
||||
$lang["config_default_sales_discount_required"] = "Descuento en ventas predeterminado es requerido.";
|
||||
@@ -96,7 +95,7 @@ $lang["config_dinner_table_enable"] = "Activar Mesa de Restaurante";
|
||||
$lang["config_dinner_table_invalid_chars"] = "El nombre de la mesa no puede contener '_'.";
|
||||
$lang["config_dinner_table_required"] = "La mesa es un campo obligatorio.";
|
||||
$lang["config_dot"] = "punto";
|
||||
$lang["config_email"] = "Correo-e";
|
||||
$lang["config_email"] = "E-mail";
|
||||
$lang["config_email_configuration"] = "Configuracion de correo";
|
||||
$lang["config_email_mailpath"] = "Ruta a Sendmail";
|
||||
$lang["config_email_protocol"] = "Protocolo";
|
||||
@@ -127,7 +126,7 @@ $lang["config_financial_year_may"] = "1º de Mayo";
|
||||
$lang["config_financial_year_nov"] = "1º de Noviembre";
|
||||
$lang["config_financial_year_oct"] = "1º de Octubre";
|
||||
$lang["config_financial_year_sep"] = "1º de Septiembre";
|
||||
$lang["config_floating_labels"] = "";
|
||||
$lang["config_floating_labels"] = "Etiquetas flotantes";
|
||||
$lang["config_gcaptcha_enable"] = "Inicio de sesión con reCAPTCHA";
|
||||
$lang["config_gcaptcha_secret_key"] = "Llave secreta reCAPTCHA";
|
||||
$lang["config_gcaptcha_secret_key_required"] = "reCAPTCHA Secret Key es requerida si se usa";
|
||||
@@ -147,7 +146,7 @@ $lang["config_image_restrictions"] = "Restricciones de carga de imágenes";
|
||||
$lang["config_include_hsn"] = "Incluir Soporte para Códigos HSN";
|
||||
$lang["config_info"] = "Información";
|
||||
$lang["config_info_configuration"] = "Información del Comercio";
|
||||
$lang["config_input_groups"] = "";
|
||||
$lang["config_input_groups"] = "Introducir Grupos";
|
||||
$lang["config_integrations"] = "Componentes Integrados";
|
||||
$lang["config_integrations_configuration"] = "Componentes de Terceros Integrados";
|
||||
$lang["config_invoice"] = "Factura";
|
||||
@@ -157,8 +156,8 @@ $lang["config_invoice_email_message"] = "Plantilla de Factura por Email";
|
||||
$lang["config_invoice_enable"] = "Activar Facturación";
|
||||
$lang["config_invoice_printer"] = "Impresora Facturadora";
|
||||
$lang["config_invoice_type"] = "Tipo de Factura";
|
||||
$lang["config_is_readable"] = "";
|
||||
$lang["config_is_writable"] = "es grabable, pero los permisos son superiores a 750.";
|
||||
$lang["config_is_readable"] = "es legible, pero los permisos de lectura son incorrectos. Pongalos en 640 o 660 cargue nuevamente.";
|
||||
$lang["config_is_writable"] = "es escribible, pero los permisos de escritura son incorrectos. Pongalos en 750 y recargue la página de nuevo.";
|
||||
$lang["config_jsprintsetup_required"] = "Advertencia!Esta funcionalidad desactivada solo funciona con el addon jsPrintSetup de FireFox instalado. Guardar de todas formas?";
|
||||
$lang["config_language"] = "Idioma";
|
||||
$lang["config_last_used_invoice_number"] = "Último numero de factura utilizado";
|
||||
@@ -177,16 +176,16 @@ $lang["config_locale_info"] = "Informacion de la configuracion de la zona";
|
||||
$lang["config_location"] = "Inventario";
|
||||
$lang["config_location_configuration"] = "Ubicación de Inventario";
|
||||
$lang["config_location_info"] = "Información de Configuración de Ubicación";
|
||||
$lang["config_login_form"] = "";
|
||||
$lang["config_login_form"] = "Estilo del formulario de inicio de sesión";
|
||||
$lang["config_logout"] = "Desea hacer un respaldo antes de salir? Pulsa [OK] para respaldar o [Cancelar] para salir.";
|
||||
$lang["config_mailchimp"] = "Correo Chimp";
|
||||
$lang["config_mailchimp_api_key"] = "Clave de la API Mailchimp";
|
||||
$lang["config_mailchimp"] = "Correo MailChimp";
|
||||
$lang["config_mailchimp_api_key"] = "Clave API de Mailchimp";
|
||||
$lang["config_mailchimp_configuration"] = "Configuración de Mailchimp";
|
||||
$lang["config_mailchimp_key_successfully"] = "Clave API correcta.";
|
||||
$lang["config_mailchimp_key_unsuccessfully"] = "Clave API incorrecta.";
|
||||
$lang["config_mailchimp_lists"] = "Lista(s) de Mailchimp";
|
||||
$lang["config_mailchimp_tooltip"] = "Haga clic en el icono de una clave de API.";
|
||||
$lang["config_message"] = "Mensaje";
|
||||
$lang["config_message"] = "Mensajes SMS";
|
||||
$lang["config_message_configuration"] = "Configuracion del mensaje";
|
||||
$lang["config_msg_msg"] = "Texto del mensaje guardado";
|
||||
$lang["config_msg_msg_placeholder"] = "Si desea usar un formato de SMS guarde su mensaje aquí, en caso contrario deje en blanco.";
|
||||
@@ -205,18 +204,18 @@ $lang["config_number_locale"] = "Localización";
|
||||
$lang["config_number_locale_invalid"] = "Localización ingresada invalida. Revisa el link en el tooltip para encontrar informacion.";
|
||||
$lang["config_number_locale_required"] = "Numero localizacion es un campo requerido.";
|
||||
$lang["config_number_locale_tooltip"] = "Encontrar una zonificacion adecuada en este enlace.";
|
||||
$lang["config_os_timezone"] = "";
|
||||
$lang["config_os_timezone"] = "Zona Horaria Local:";
|
||||
$lang["config_ospos_info"] = "Información de la Instalación OSPOS";
|
||||
$lang["config_payment_options_order"] = "Orden de opciones de pago";
|
||||
$lang["config_perm_risk"] = "Permisos superiores a 750 dejan este software en riesgo.";
|
||||
$lang["config_phone"] = "Teléfono del Comercio";
|
||||
$lang["config_perm_risk"] = "Los permisos incorrectos dejan a este software en riesgo.";
|
||||
$lang["config_phone"] = "Teléfono comercial";
|
||||
$lang["config_phone_required"] = "Teléfono del Comercio es requerido.";
|
||||
$lang["config_print_bottom_margin"] = "Margen Inferior";
|
||||
$lang["config_print_bottom_margin_number"] = "Margen Inferior debe ser un número.";
|
||||
$lang["config_print_bottom_margin_required"] = "Margen Inferior es requerido.";
|
||||
$lang["config_print_delay_autoreturn"] = "Devolver automatico a Vender";
|
||||
$lang["config_print_delay_autoreturn_number"] = "Tiempo espera para Devolver a la venta es requerido.";
|
||||
$lang["config_print_delay_autoreturn_required"] = "Tiempo espera Devolver a la Venta debe ser numero.";
|
||||
$lang["config_print_delay_autoreturn"] = "Regresar automaticamente a Vender";
|
||||
$lang["config_print_delay_autoreturn_number"] = "Tiempo espera requerido para regresar a ventas.";
|
||||
$lang["config_print_delay_autoreturn_required"] = "El tiempo espera debe ser numérico.";
|
||||
$lang["config_print_footer"] = "Imprimir el pie de página del navegador";
|
||||
$lang["config_print_header"] = "Imprimir el encabezado del navegador";
|
||||
$lang["config_print_left_margin"] = "Margen Izquierdo";
|
||||
@@ -233,7 +232,7 @@ $lang["config_print_silently"] = "Mostrar configuracion pre- impresión";
|
||||
$lang["config_print_top_margin"] = "Margen Superior";
|
||||
$lang["config_print_top_margin_number"] = "Margen Superior debe ser un número.";
|
||||
$lang["config_print_top_margin_required"] = "Margen Superior es requerido.";
|
||||
$lang["config_quantity_decimals"] = "Cantidad de decimales";
|
||||
$lang["config_quantity_decimals"] = "Decimales de Cantidades";
|
||||
$lang["config_quote_default_comments"] = "Comentario inicial de cotizaciones";
|
||||
$lang["config_receipt"] = "Recibo";
|
||||
$lang["config_receipt_configuration"] = "Parámetros de Impresión";
|
||||
@@ -251,13 +250,13 @@ $lang["config_receipt_show_tax_ind"] = "Mostrar indicador de impuestos";
|
||||
$lang["config_receipt_show_taxes"] = "Mostrar impuestos";
|
||||
$lang["config_receipt_show_total_discount"] = "Mostrar Descuento Total";
|
||||
$lang["config_receipt_template"] = "Formato de recibo";
|
||||
$lang["config_receiving_calculate_average_price"] = "Cal. precio prom. (Recepción)";
|
||||
$lang["config_receiving_calculate_average_price"] = "Cambiar precio de coste. (Recepción)";
|
||||
$lang["config_recv_invoice_format"] = "Formato de Factura de Recepción";
|
||||
$lang["config_register_mode_default"] = "Modo de registro por defecto";
|
||||
$lang["config_report_an_issue"] = "";
|
||||
$lang["config_return_policy_required"] = "Política de Devolución es requerida.";
|
||||
$lang["config_reward"] = "Premio";
|
||||
$lang["config_reward_configuration"] = "Configuración de premios";
|
||||
$lang["config_report_an_issue"] = "Informe de algún problema";
|
||||
$lang["config_return_policy_required"] = "Política de Devolución requerida.";
|
||||
$lang["config_reward"] = "Recompenzas";
|
||||
$lang["config_reward_configuration"] = "Configuración de Recompenzas";
|
||||
$lang["config_right"] = "Derecha";
|
||||
$lang["config_sales_invoice_format"] = "Formato de Facturas de Venta";
|
||||
$lang["config_sales_quote_format"] = "Formato de presupuesto de las ventas";
|
||||
@@ -276,12 +275,12 @@ $lang["config_suggestions_first_column"] = "Columna 1";
|
||||
$lang["config_suggestions_layout"] = "Sugerencias de búsqueda";
|
||||
$lang["config_suggestions_second_column"] = "Columna 2";
|
||||
$lang["config_suggestions_third_column"] = "Columna 3";
|
||||
$lang["config_system_conf"] = "Setup & Conf";
|
||||
$lang["config_system_conf"] = "Sistema OSPOS";
|
||||
$lang["config_system_info"] = "System Info";
|
||||
$lang["config_table"] = "Mesa";
|
||||
$lang["config_table_configuration"] = "Configuración de Mesa";
|
||||
$lang["config_takings_printer"] = "Impresión de retenciones";
|
||||
$lang["config_tax"] = "Imp";
|
||||
$lang["config_tax"] = "Impuestos";
|
||||
$lang["config_tax_category"] = "Categoría impuesto";
|
||||
$lang["config_tax_category_duplicate"] = "Categoría de impuesto ingresada ya existe.";
|
||||
$lang["config_tax_category_invalid_chars"] = "Categoría de impuesto ingresada es invalida.";
|
||||
@@ -292,13 +291,38 @@ $lang["config_tax_decimals"] = "Decimales de impuestos";
|
||||
$lang["config_tax_id"] = "Identificador del Impuesto";
|
||||
$lang["config_tax_included"] = "Impuestos incluidos";
|
||||
$lang["config_theme"] = "Tema";
|
||||
$lang["config_theme_preview"] = "";
|
||||
$lang["config_theme_preview"] = "Vista Previa del Tema:";
|
||||
$lang["config_thousands_separator"] = "Separador de miles";
|
||||
$lang["config_timezone"] = "Zona Horaria";
|
||||
$lang["config_timezone_error"] = "";
|
||||
$lang["config_timezone_error"] = "La zona horaria de OSPOS es diferente de tu zona horaria local.";
|
||||
$lang["config_top"] = "Arriba";
|
||||
$lang["config_use_destination_based_tax"] = "Usar Impuesto Basado en Destino";
|
||||
$lang["config_user_timezone"] = "";
|
||||
$lang["config_user_timezone"] = "Zona Horaria OSPOS:";
|
||||
$lang["config_website"] = "Sitio Web";
|
||||
$lang["config_work_order_enable"] = "Soporte Ordenes de Trabajo";
|
||||
$lang["config_work_order_format"] = "Formato Ordenes de trabajo";
|
||||
$lang['config_wholesale_markup'] = "Marcado al por mayor";
|
||||
$lang["config_suggestions_fifth_column"] = "Columna 5";
|
||||
$lang["config_suggestions_fourth_column"] = "Columna 4";
|
||||
$lang["config_show_due_enable"] = "Mostrar vencimientos de clientes";
|
||||
$lang["config_service_charge"] = "Costo de Servicio";
|
||||
$lang["config_receipt_category"] = "Recibo con categoría";
|
||||
$lang["config_item_markup"] = "Marcado de Artículo";
|
||||
$lang['config_enable_avatar_tooltip'] = "Habilitar Avatares para que se muestren en el menú desplegable Categorías y Registrarse ";
|
||||
$lang['config_enable_avatar'] = "Habilitar Avatar";
|
||||
$lang['config_enable_right_bar_tooltip'] = "Cambiar la barra lateral de izquierda a derecha ";
|
||||
$lang['config_enable_right_bar'] = " Habilitar la barra lateral derecha";
|
||||
$lang['config_enable_new_look'] = "Habilitar nueva apariencia";
|
||||
$lang["config_enable_dropdown_tooltip"] = "No podrá agregar nuevas categorías si esto está marcado";
|
||||
$lang["config_default_tax_rate_3"] = "Tasa de Impuestos 3";
|
||||
$lang["config_current_employee_only"] = "Mostrar registro sólo del empleado actual";
|
||||
$lang["config_company_avatar"] = "Avatar de Empleado";
|
||||
$lang["config_change_apperance_tooltip"] = "Cambiar Aspecto de OSPOS";
|
||||
$lang["config_quick_cash_enable"] = "Activar Botones de Efectivo";
|
||||
$lang["config_cash_button_6"] = "Botón 6";
|
||||
$lang["config_cash_button_5"] = "Botón 5";
|
||||
$lang["config_cash_button_4"] = "Botón 4";
|
||||
$lang["config_cash_button_3"] = "Botón 3";
|
||||
$lang["config_cash_button_2"] = "Botón 2";
|
||||
$lang["config_cash_button_1"] = "Botón 1";
|
||||
$lang["config_cash_button"] = "Botones de Efectivo Rápido";
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["customers_account_number"] = "Cuenta #";
|
||||
$lang["customers_account_number_duplicate"] = "Este número de cuenta ya esta en la base de datos.";
|
||||
$lang["customers_available_points"] = "Puntos disponibles";
|
||||
$lang["customers_available_points"] = "Puntos Disponibles";
|
||||
$lang["customers_average"] = "Gasto promedio";
|
||||
$lang["customers_avg_discount"] = "Descuento promedio";
|
||||
$lang["customers_basic_information"] = "Información";
|
||||
@@ -32,7 +31,7 @@ $lang["customers_mailchimp_activity_open"] = "Correo abierto";
|
||||
$lang["customers_mailchimp_activity_total"] = "Correo enviado";
|
||||
$lang["customers_mailchimp_activity_unopen"] = "Correo sin abrir";
|
||||
$lang["customers_mailchimp_email_client"] = "Correo del cliente";
|
||||
$lang["customers_mailchimp_info"] = "Mail chimp";
|
||||
$lang["customers_mailchimp_info"] = "Correo Mailchimp";
|
||||
$lang["customers_mailchimp_member_rating"] = "Porcentaje";
|
||||
$lang["customers_mailchimp_status"] = "Estado";
|
||||
$lang["customers_mailchimp_vip"] = "VIP";
|
||||
@@ -52,3 +51,4 @@ $lang["customers_taxable"] = "Gravable";
|
||||
$lang["customers_total"] = "Total";
|
||||
$lang["customers_update"] = "Actualizar Cliente";
|
||||
$lang["rewards_package"] = "Paquete de premios";
|
||||
$lang["customers_available_points_value"] = "Puntos Disponibles";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["employees_basic_information"] = "Información Básica de Empleados";
|
||||
$lang["employees_cannot_be_deleted"] = "No se pudieron borrar empleados. Uno o más empleados tiene ventas procesadas o estás tratando de borrarte a tí mismo(a).";
|
||||
$lang["employees_change_password"] = "Cambiar Contraseña";
|
||||
@@ -35,3 +34,9 @@ $lang["employees_update"] = "Actualizar Empleado";
|
||||
$lang["employees_username"] = "Usuario";
|
||||
$lang["employees_username_minlength"] = "El nombre de usuario debe ser por lo menos, 5 caracteres.";
|
||||
$lang["employees_username_required"] = "Nombre de usuario es requerido.";
|
||||
$lang["employees_manager"] = "Encargado";
|
||||
$lang["employees_username_duplicate"] = "Nombre de Usuario de Empleado yá está en uso. Por favor escoja otro.";
|
||||
$lang["employees_commission"] = "Tasa de Comisión";
|
||||
$lang["employees_clerk"] = "Empleado";
|
||||
$lang["employees_change_employee"] = "Cambio de Empleado";
|
||||
$lang["employees_administrator"] = "Administrador";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["expenses_add_item"] = "Agregar Gasto";
|
||||
$lang["expenses_amount"] = "Monto";
|
||||
$lang["expenses_amount_number"] = "Monto debe ser numerico";
|
||||
@@ -12,8 +11,8 @@ $lang["expenses_categories_name"] = "Categoria";
|
||||
$lang["expenses_category_required"] = "categoria es un campo requerido";
|
||||
$lang["expenses_check"] = "Cheque";
|
||||
$lang["expenses_check_filter"] = "Cheque";
|
||||
$lang["expenses_confirm_delete"] = "¿Esta seguro de querer borrar los gastos seleccionados?";
|
||||
$lang["expenses_confirm_restore"] = "¿Esta seguro de querer recuperar los gastos seleccionados?";
|
||||
$lang["expenses_confirm_delete"] = "¿Esta seguro que quiere borrar (el)los gasto(s) seleccionado(s)?";
|
||||
$lang["expenses_confirm_restore"] = "¿Está seguro que quiere restaurar (el)los gasto(s) seleccionado(s)?";
|
||||
$lang["expenses_credit"] = "Tarjeta Credito";
|
||||
$lang["expenses_credit_filter"] = "Tarjeta Credito";
|
||||
$lang["expenses_date"] = "Fecha";
|
||||
@@ -44,3 +43,6 @@ $lang["expenses_supplier_name"] = "Proveedor";
|
||||
$lang["expenses_supplier_tax_code"] = "Codigo Imp";
|
||||
$lang["expenses_tax_amount"] = "Imp";
|
||||
$lang["expenses_update"] = "Actualizar Gasto";
|
||||
$lang["expenses_tax_amount_number"] = "Número de Importe de Impuestos";
|
||||
$lang["expenses_new_supplier"] = "Nuevo Proveedor";
|
||||
$lang["expenses_ip_address"] = "Dirección IP";
|
||||
|
||||
@@ -1,29 +1,28 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["item_kits_add_item"] = "Agregar Artículo";
|
||||
$lang["item_kits_all"] = "Todo";
|
||||
$lang["item_kits_cannot_be_deleted"] = "Borrado de Kit(s) de Artículos fallido.";
|
||||
$lang["item_kits_confirm_delete"] = "¿Estás seguro(a) de querer borrar los kits seleccionados?";
|
||||
$lang["item_kits_confirm_restore"] = "Esta seguro de quere restaurar lo(s) kit(s) seleccionado(s)?";
|
||||
$lang["item_kits_description"] = "Descripción del Kit de Artículos";
|
||||
$lang["item_kits_confirm_restore"] = "Esta seguro de quere restaurar los kit seleccionados?";
|
||||
$lang["item_kits_description"] = "Descripción";
|
||||
$lang["item_kits_discount"] = "Descuento";
|
||||
$lang["item_kits_discount_fixed"] = "Descuento Fijo";
|
||||
$lang["item_kits_discount_percent"] = "Porcentaje de descuento";
|
||||
$lang["item_kits_discount_type"] = "Tipo de Descuento";
|
||||
$lang["item_kits_error_adding_updating"] = "Error agregando/actualizando Kit de Artículos.";
|
||||
$lang["item_kits_find_kit_item"] = "Kit de Artículo";
|
||||
$lang["item_kits_info"] = "Info de Kit de Artículos";
|
||||
$lang["item_kits_find_kit_item"] = "Buscar Kit";
|
||||
$lang["item_kits_info"] = "Info de Kit";
|
||||
$lang["item_kits_item"] = "Artículo";
|
||||
$lang["item_kits_item_kit_number"] = "";
|
||||
$lang["item_kits_item_kit_number_duplicate"] = "";
|
||||
$lang["item_kits_item_kit_number"] = "Código";
|
||||
$lang["item_kits_item_number_duplicate"] = "Código de Kit Duplicado";
|
||||
$lang["item_kits_item_number"] = "";
|
||||
$lang["item_kits_items"] = "Artículos";
|
||||
$lang["item_kits_kit"] = "Id Kit";
|
||||
$lang["item_kits_kit"] = "Id";
|
||||
$lang["item_kits_kit_and_components"] = "Artículos y componentes";
|
||||
$lang["item_kits_kit_and_stock"] = "Artículos y stocks";
|
||||
$lang["item_kits_kit_only"] = "Solo artículos";
|
||||
$lang["item_kits_name"] = "Nombre del Kit de Artículos";
|
||||
$lang["item_kits_new"] = "Nuevo Kit de Artículos";
|
||||
$lang["item_kits_name"] = "Nombre del Kit";
|
||||
$lang["item_kits_new"] = "Nuevo Kit";
|
||||
$lang["item_kits_no_item_kits_to_display"] = "Sin kits de artículos para mostrar.";
|
||||
$lang["item_kits_none_selected"] = "No has seleccionado Kits de Artículos.";
|
||||
$lang["item_kits_one_or_multiple"] = "Kit(s) de Artículos";
|
||||
@@ -31,8 +30,10 @@ $lang["item_kits_price_option"] = "Opción del precio";
|
||||
$lang["item_kits_priced_only"] = "Solo con precio";
|
||||
$lang["item_kits_print_option"] = "Opciones de impresión";
|
||||
$lang["item_kits_quantity"] = "Cantidad";
|
||||
$lang["item_kits_sequence"] = "Secuencia";
|
||||
$lang["item_kits_sequence"] = "Orden";
|
||||
$lang["item_kits_successful_adding"] = "Has agregado satisfactoriamente un Kit de Artículos";
|
||||
$lang["item_kits_successful_deleted"] = "Has borrado satisfactoriamente";
|
||||
$lang["item_kits_successful_updating"] = "Has actualizado satisfactoriamente un Kit de Artículos";
|
||||
$lang["item_kits_update"] = "Actualizar Kit de Artículos";
|
||||
$lang["item_kits_unit_price"] = "Precio Unitario";
|
||||
$lang["item_kits_item_kit_number_duplicate"] = "El Número del Kit de Artículo yá está presente en la base de datos.";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["items_add_minus"] = "Inventario a agregar/substraer.";
|
||||
$lang["items_allow_alt_description"] = "Permitir Descripción Alternativa";
|
||||
$lang["items_amount_entry"] = "Monto entrada";
|
||||
@@ -18,9 +17,9 @@ $lang["items_confirm_bulk_edit"] = "¿Estás seguro(a) de querer editar los art
|
||||
$lang["items_confirm_bulk_edit_wipe_taxes"] = "Toda la información de impuesto del articulo sera cambiada.";
|
||||
$lang["items_confirm_delete"] = "¿Estás seguro(a) de querer borrar los artículos seleccionados?";
|
||||
$lang["items_confirm_restore"] = "Esta seguro de querer restaurar lo(s) articulo(s) seleccionada(s)?";
|
||||
$lang["items_cost_price"] = "Precio de Compra";
|
||||
$lang["items_cost_price_number"] = "Precio de Compra debe ser número.";
|
||||
$lang["items_cost_price_required"] = "Precio de Compra es requerido.";
|
||||
$lang["items_cost_price"] = "Precio de Costo";
|
||||
$lang["items_cost_price_number"] = "Precio de Costo debe ser un número.";
|
||||
$lang["items_cost_price_required"] = "Precio de Costo es requerido.";
|
||||
$lang["items_count"] = "Actualizar Inventario";
|
||||
$lang["items_csv_import_failed"] = "Falló la importación de Hoja de Cálculo";
|
||||
$lang["items_csv_import_nodata_wrongformat"] = "El archivo subido no tiene datos o el formato es incorrecto.";
|
||||
@@ -68,7 +67,7 @@ $lang["items_none"] = "Ninguno";
|
||||
$lang["items_none_selected"] = "No has seleccionado artículos para editar";
|
||||
$lang["items_nonstock"] = "Sin stock";
|
||||
$lang["items_number_information"] = "Número del Artículo";
|
||||
$lang["items_number_required"] = "UPC/EAN/ISBN es requerido.";
|
||||
$lang["items_number_required"] = "UPC/EAN/ISBN es requerido";
|
||||
$lang["items_one_or_multiple"] = "articulo(s)";
|
||||
$lang["items_pack_name"] = "Nombre del Paquete";
|
||||
$lang["items_qty_per_pack"] = "Cantidad por Paquete";
|
||||
@@ -80,11 +79,11 @@ $lang["items_remove_image"] = "Quitar Imagen";
|
||||
$lang["items_reorder_level"] = "Cantidad Mínima";
|
||||
$lang["items_reorder_level_number"] = "Cantidad Mínima debe ser número.";
|
||||
$lang["items_reorder_level_required"] = "Cantidad Mínima es requerido.";
|
||||
$lang["items_retrive_item_info"] = "Obtener Info de Artículo";
|
||||
$lang["items_retrive_item_info"] = "Obtener Información de Artículo";
|
||||
$lang["items_sales_tax_1"] = "Impuesto de Ventas 1";
|
||||
$lang["items_sales_tax_2"] = "Impuesto de Ventas 2";
|
||||
$lang["items_search_attributes"] = "Atributos de búsqueda";
|
||||
$lang["items_select_image"] = "Seleccionar Imagen";
|
||||
$lang["items_search_attributes"] = "Atributos de búsqueda. Formato de fecha Y-m-d";
|
||||
$lang["items_select_image"] = "Seleccionar Imagen";
|
||||
$lang["items_serialized_items"] = "Artículos Serializados";
|
||||
$lang["items_standard"] = "Estándar";
|
||||
$lang["items_stock"] = "Existencia";
|
||||
@@ -110,3 +109,10 @@ $lang["items_unit_price_required"] = "Precio de Venta es requerido.";
|
||||
$lang["items_upc_database"] = "Base de datos UPC";
|
||||
$lang["items_update"] = "Actualizar Artículo";
|
||||
$lang["items_use_inventory_menu"] = "Usar Menú de Inventario";
|
||||
$lang["items_markup"] = "El marcado de elementos está habilitado";
|
||||
$lang["items_tax_3"] = "Impuestos 3";
|
||||
$lang["items_item_id"] = "Id del Artículo";
|
||||
$lang["items_is_printed"] = "No impreso";
|
||||
$lang["items_edit"] = "Editar";
|
||||
$lang["items_categories"] = "Categorías. Seleccione el número de artículo.";
|
||||
$lang["items_category_new"] = "Nueva Categoría";
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["login_gcaptcha"] = "No soy un robot.";
|
||||
$lang["login_go"] = "Ir";
|
||||
$lang["login_invalid_gcaptcha"] = "Inválido, no soy un robot.";
|
||||
$lang["login_invalid_gcaptcha"] = "Por favor verifique si usted no es un robot.";
|
||||
$lang["login_invalid_installation"] = "La instalación no es correcta, comprueba el fichero php.ini.";
|
||||
$lang["login_invalid_username_and_password"] = "Usuario o Contraseña no válidos.";
|
||||
$lang["login_invalid_username_and_password"] = "Usuario y/o Contraseña no validos.";
|
||||
$lang["login_login"] = "Iniciar Sesión";
|
||||
$lang["login_logout"] = "";
|
||||
$lang["login_migration_needed"] = "";
|
||||
$lang["login_logout"] = "Cerrar sesión";
|
||||
$lang["login_migration_needed"] = "La migración de la base de datos a %1 se iniciará después del inicio de sesión.";
|
||||
$lang["login_password"] = "Contraseña";
|
||||
$lang["login_username"] = "Usuario";
|
||||
$lang["login_welcome"] = "";
|
||||
$lang["login_welcome"] = "Bienvenido a %1!";
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["module_attributes"] = "Atributos";
|
||||
$lang["module_attributes_desc"] = "Agregar, Actualizar, Eliminar y Buscar atributos.";
|
||||
$lang["module_both"] = "Ambos";
|
||||
$lang["module_cashups"] = "Turnos";
|
||||
$lang["module_cashups"] = "Día de apertura o Cierre";
|
||||
$lang["module_cashups_desc"] = "Agregar, Actualizar, Borrar y Buscar Turnos.";
|
||||
$lang["module_config"] = "Configuración de la Tienda";
|
||||
$lang["module_config_desc"] = "Cambiar la configuración de OSPOS.";
|
||||
@@ -39,3 +38,9 @@ $lang["module_suppliers"] = "Proveedores";
|
||||
$lang["module_suppliers_desc"] = "Agregar, Actualizar, Borrar y Buscar Proveedores.";
|
||||
$lang["module_taxes"] = "Impuestos";
|
||||
$lang["module_taxes_desc"] = "Configurar Impuestos de Ventas.";
|
||||
$lang["module_timeclocks_categories_desc"] = "Agregar, Actualizar, Borrar, y buscar Reloj de Registro de Categorías";
|
||||
$lang["module_timeclocks_categories"] = "Reloj de Registro de Categorías";
|
||||
$lang["module_timeclocks_desc"] = "Reloj de Registro.";
|
||||
$lang["module_timeclocks"] = "Reloj de Registro";
|
||||
$lang["module_admin_cashups_desc"] = "Administrador de retiro";
|
||||
$lang["module_admin_cashups"] = "Administrador de retiro";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["receivings_cancel_receiving"] = "Cancelar";
|
||||
$lang["receivings_cannot_be_deleted"] = "Ingreso(s) no se borraron.";
|
||||
$lang["receivings_comments"] = "Comentarios";
|
||||
@@ -34,7 +33,7 @@ $lang["receivings_reference"] = "Referencia";
|
||||
$lang["receivings_register"] = "Entrada de Artículos";
|
||||
$lang["receivings_requisition"] = "Requisición";
|
||||
$lang["receivings_return"] = "Devolver";
|
||||
$lang["receivings_select_supplier"] = "Seleccionar Proveedor (Opcional)";
|
||||
$lang["receivings_select_supplier"] = "Seleccionar Proveedor (Requerido)";
|
||||
$lang["receivings_ship_pack"] = "Paquete de Envío";
|
||||
$lang["receivings_start_typing_supplier_name"] = "Empieza a escribir el nombre del proveedor...";
|
||||
$lang["receivings_stock"] = "Inventario";
|
||||
@@ -52,3 +51,6 @@ $lang["receivings_transaction_failed"] = "La(s) Transaccion(es) de Entrada Falla
|
||||
$lang["receivings_unable_to_add_item"] = "No se pudo agregar el artículo.";
|
||||
$lang["receivings_unsuccessfully_updated"] = "Actualizacion de Recepción fallida.";
|
||||
$lang["receivings_update"] = "Editar";
|
||||
$lang["receivings_daily"] = "Recepción Diaria";
|
||||
$lang["receivings_confirm_restore"] = "Seguro que quiere restaurar esta recepción? Éste será restaurado.";
|
||||
$lang["receivings_amount_due"] = "Importe Adeudado";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["reports_all"] = "Todo";
|
||||
$lang["reports_authority"] = "Autorización";
|
||||
$lang["reports_canceled"] = "Cancelado";
|
||||
@@ -110,7 +109,7 @@ $lang["reports_sold_to"] = "Vendido A";
|
||||
$lang["reports_stock_location"] = "Ubicación de Inventario";
|
||||
$lang["reports_sub_total_value"] = "SubTotal";
|
||||
$lang["reports_subtotal"] = "Sub-total";
|
||||
$lang["reports_summary_reports"] = "Reportes Resumidos";
|
||||
$lang["reports_summary_reports"] = "Reportes Resumidos de Ventas";
|
||||
$lang["reports_supplied_by"] = "Provisto por";
|
||||
$lang["reports_supplier"] = "Proveedor";
|
||||
$lang["reports_suppliers"] = "Proveedores";
|
||||
@@ -139,3 +138,9 @@ $lang["reports_unit_price"] = "Precio de Venta";
|
||||
$lang["reports_used"] = "Puntos usados";
|
||||
$lang["reports_work_orders"] = "Ordenes";
|
||||
$lang["reports_zero_and_less"] = "Cero y negativos";
|
||||
$lang["reports_tax_name"] = "Nombres de Impuestos";
|
||||
$lang["reports_sold_items"] = "Artículos Vendidos";
|
||||
$lang["reports_service_charge"] = "Costo de Servicio";
|
||||
$lang["reports_expenses_payment_amount"] = "Pago";
|
||||
$lang["reports_detailed_receivings_report_input"] = "Entrada detallada del reporte de recepción";
|
||||
$lang["reports_commission"] = "Comisión";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["customers_available_points"] = "Puntos disponibles";
|
||||
$lang["rewards_package"] = "Premios";
|
||||
$lang["rewards_remaining_balance"] = "El remanente de puntos es ";
|
||||
@@ -10,23 +9,23 @@ $lang["sales_amount_tendered"] = "Cantidad Recibida";
|
||||
$lang["sales_authorized_signature"] = "Firma Autorizada";
|
||||
$lang["sales_cancel_sale"] = "Cancelar Venta";
|
||||
$lang["sales_cash"] = "Efectivo";
|
||||
$lang["sales_cash_adjustment"] = "";
|
||||
$lang["sales_cash_adjustment"] = "Ajuste de Efectivo";
|
||||
$lang["sales_cash_deposit"] = "Deposito Efectivo";
|
||||
$lang["sales_cash_filter"] = "Efectivo";
|
||||
$lang["sales_change_due"] = "Cambio";
|
||||
$lang["sales_change_price"] = "Cambiar el precio de venta";
|
||||
$lang["sales_check"] = "Comprobación de ventas";
|
||||
$lang["sales_check"] = "Cheque";
|
||||
$lang["sales_check_balance"] = "Balance de Cheque";
|
||||
$lang["sales_check_filter"] = "Comprobar";
|
||||
$lang["sales_check_filter"] = "Cheque";
|
||||
$lang["sales_comment"] = "Comentario";
|
||||
$lang["sales_comments"] = "Comentarios";
|
||||
$lang["sales_complete_sale"] = "Completar Venta";
|
||||
$lang["sales_confirm_cancel_sale"] = "¿Seguro(a) de querer limpiar esta venta? Todos los artículos serán limpiados.";
|
||||
$lang["sales_confirm_delete"] = "¿Seguro(a) de querer borrar las ventas seleccionadas?";
|
||||
$lang["sales_confirm_cancel_sale"] = "¿Seguro quiere cancelar esta venta? Todos los artículos serán eliminados.";
|
||||
$lang["sales_confirm_delete"] = "¿Seguro quiere borrar las ventas seleccionadas?";
|
||||
$lang["sales_confirm_restore"] = "Esta seguro de querer restaurar la(s) venta(s) seleccionada(s)?";
|
||||
$lang["sales_credit"] = "Tarjeta de Crédito";
|
||||
$lang["sales_credit_deposit"] = "Deposito Credito";
|
||||
$lang["sales_credit_filter"] = "";
|
||||
$lang["sales_credit_filter"] = "Tarjeta de Crédito";
|
||||
$lang["sales_customer"] = "cliente";
|
||||
$lang["sales_customer_address"] = "Direccion";
|
||||
$lang["sales_customer_discount"] = "Descuento";
|
||||
@@ -41,8 +40,9 @@ $lang["sales_date_range"] = "Rango de Fecha";
|
||||
$lang["sales_date_required"] = "Una fecha correcta debe ser ingresada.";
|
||||
$lang["sales_date_type"] = "Campo de Fecha es requerido.";
|
||||
$lang["sales_debit"] = "Tarjeta de Débito";
|
||||
$lang["sales_debit_filter"] = "Tarjeta de Débito";
|
||||
$lang["sales_delete"] = "Permitir borrar";
|
||||
$lang["sales_delete_confirmation"] = "¿Seguro(a) de querer borrar esta venta? Esta acción no se puede deshacer.";
|
||||
$lang["sales_delete_confirmation"] = "¿Seguro quiere borrar esta venta? Esta acción no se puede deshacer.";
|
||||
$lang["sales_delete_entire_sale"] = "Borrar la venta completa";
|
||||
$lang["sales_delete_successful"] = "Venta borrada correctamente.";
|
||||
$lang["sales_delete_unsuccessful"] = "Venta no borrada, fallida.";
|
||||
@@ -52,8 +52,8 @@ $lang["sales_discard_quote"] = "Descartar";
|
||||
$lang["sales_discount"] = "Descuento";
|
||||
$lang["sales_discount_included"] = "% Descuento";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_due"] = "Deudado";
|
||||
$lang["sales_due_filter"] = "Deudado";
|
||||
$lang["sales_due"] = "Adeudado";
|
||||
$lang["sales_due_filter"] = "Adeudado";
|
||||
$lang["sales_edit"] = "Editar";
|
||||
$lang["sales_edit_item"] = "Editar Artículo";
|
||||
$lang["sales_edit_sale"] = "Editar Venta";
|
||||
@@ -112,7 +112,7 @@ $lang["sales_price"] = "Precio";
|
||||
$lang["sales_print_after_sale"] = "Imprimir recibo después de una venta";
|
||||
$lang["sales_quantity"] = "Cantidad";
|
||||
$lang["sales_quantity_less_than_reorder_level"] = "Advertencia. La cantidad deseada es insuficiente.";
|
||||
$lang["sales_quantity_less_than_zero"] = "Advertencia. La cantidad deseada es insuficiente. Puedes procesar la venta pero verifica el inventario.";
|
||||
$lang["sales_quantity_less_than_zero"] = "Advertencia. La cantidad deseada está agotada en stock. Puedes procesar la venta pero audita el inventario.";
|
||||
$lang["sales_quantity_of_items"] = "Cantidad de %1 articulos";
|
||||
$lang["sales_quote"] = "Cotizar";
|
||||
$lang["sales_quote_number"] = "Número de Presupuesto";
|
||||
@@ -162,11 +162,11 @@ $lang["sales_tax"] = "Imp";
|
||||
$lang["sales_tax_id"] = "Identificador del Impuesto";
|
||||
$lang["sales_tax_invoice"] = "Impuesto de la Factura";
|
||||
$lang["sales_tax_percent"] = "% de Imp";
|
||||
$lang["sales_taxed_ind"] = "I";
|
||||
$lang["sales_taxed_ind"] = "Ventas gravadas";
|
||||
$lang["sales_total"] = "Total";
|
||||
$lang["sales_total_tax_exclusive"] = "Sin impuesto";
|
||||
$lang["sales_transaction_failed"] = "La transacción de venta falló.";
|
||||
$lang["sales_unable_to_add_item"] = "No se puede agregar el artículo a la venta";
|
||||
$lang["sales_unable_to_add_item"] = "Error al agregar artículo a la venta. Agotado";
|
||||
$lang["sales_unsuccessfully_deleted"] = "Ha fallado la eliminación de la Venta.";
|
||||
$lang["sales_unsuccessfully_restored"] = "Restaurar Venta fallida.";
|
||||
$lang["sales_unsuccessfully_suspended_sale"] = "Venta suspendida satisfactoriamente.";
|
||||
@@ -180,3 +180,22 @@ $lang["sales_work_order_number"] = "Numero Orden Trabajo";
|
||||
$lang["sales_work_order_number_duplicate"] = "El numero de orden de trabajo debe ser unico.";
|
||||
$lang["sales_work_order_sent"] = "Orden de trabajo enviada a";
|
||||
$lang["sales_work_order_unsent"] = "Orden de trabajo fallida al enviar a";
|
||||
$lang["sales_wholesale"] = "Precio al por mayor";
|
||||
$lang["sales_visa"] = "Tarjeta Visa";
|
||||
$lang["sales_sales_total"] = "Ventas Totales";
|
||||
$lang["sales_show_due"] = "Mostrar los Importes Adeudados";
|
||||
$lang["sales_service_charge"] = "Costo de Servicio";
|
||||
$lang["sales_remove_discount"] = "Descuentos";
|
||||
$lang["sales_payments"] = "Pagos";
|
||||
$lang["sales_mc"] = "Tarjeta Master Card";
|
||||
$lang["sales_giftcard_filter"] = "Tarjeta de Regalo";
|
||||
$lang['sales_daily_sales'] = "Sus Ventas Diarias";
|
||||
$lang["sales_customer_total_spent"] = "Total Gastado";
|
||||
$lang["sales_current_table"] = "Tabla Actual";
|
||||
$lang["sales_complete"] = "Completa";
|
||||
$lang["sales_company_name"] = "Nombre de Comañía";
|
||||
$lang["sales_close"] = "Cerrar Lista";
|
||||
$lang["sales_cash_4"] = "20";
|
||||
$lang["sales_cash_3"] = "10";
|
||||
$lang["sales_cash_2"] = "5";
|
||||
$lang["sales_cash_1"] = "1";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["taxes_add_exception"] = "Añadir excepción";
|
||||
$lang["taxes_cascade"] = "Cascada";
|
||||
$lang["taxes_cascade_sequence"] = "Secuencia en cascada";
|
||||
@@ -78,3 +77,4 @@ $lang["taxes_tax_rounding"] = "Redondeo de Impuestos";
|
||||
$lang["taxes_tax_type"] = "Tipo de Impuesto";
|
||||
$lang["taxes_update"] = "Actualizar Tasa de Impuesto";
|
||||
$lang["taxes_vat_tax"] = "IVA";
|
||||
$lang["taxes_no_taxes"] = "Sin Importe de Impuestos";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["employees_basic_information"] = "Información";
|
||||
$lang["employees_cannot_be_deleted"] = "No se puede borrar los empleados seleccionados, uno o más de ellos tienen ventas registradas ó intentas borrar tu propia cuenta.";
|
||||
$lang["employees_change_password"] = "Cambiar contraseña";
|
||||
@@ -35,3 +34,4 @@ $lang["employees_update"] = "Actualizar Empleado";
|
||||
$lang["employees_username"] = "Nombre de Usuario";
|
||||
$lang["employees_username_minlength"] = "Nombre de usuario debe tener por lo menos 5 letras.";
|
||||
$lang["employees_username_required"] = "Es necesario el nombre de usuario.";
|
||||
$lang["employees_username_duplicate"] = "El usuario del empleado ya esta en uso. Favor de escoger otro.";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["item_kits_add_item"] = "Agregar Artículo";
|
||||
$lang["item_kits_all"] = "Todo";
|
||||
$lang["item_kits_cannot_be_deleted"] = "Borrado de Kit(s) de Artículos fallido.";
|
||||
@@ -7,7 +6,7 @@ $lang["item_kits_confirm_delete"] = "¿Estás seguro(a) de querer borrar los kit
|
||||
$lang["item_kits_confirm_restore"] = "¿Está seguro de querer restaurar lo(s) kit(s) seleccionado(s)?";
|
||||
$lang["item_kits_description"] = "Descripción del Kit de Artículos";
|
||||
$lang["item_kits_discount"] = "Descuento";
|
||||
$lang["item_kits_discount_fixed"] = "";
|
||||
$lang["item_kits_discount_fixed"] = "Descuento Fijo";
|
||||
$lang["item_kits_discount_percent"] = "Porcentaje de descuento";
|
||||
$lang["item_kits_discount_type"] = "Tipo de Descuento";
|
||||
$lang["item_kits_error_adding_updating"] = "Error agregando/actualizando Kit de Artículos.";
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
<?php
|
||||
|
||||
$lang["items_add_minus"] = "";
|
||||
$lang["items_allow_alt_description"] = "";
|
||||
$lang["items_amount_entry"] = "";
|
||||
$lang["items_bulk_edit"] = "";
|
||||
$lang["items_buy_price_required"] = "";
|
||||
$lang["items_cannot_be_deleted"] = "";
|
||||
$lang["items_cannot_find_item"] = "";
|
||||
$lang["items_category"] = "";
|
||||
$lang["items_category_required"] = "";
|
||||
$lang["items_change_all_to_allow_alt_desc"] = "";
|
||||
$lang["items_change_all_to_not_allow_allow_desc"] = "";
|
||||
$lang["items_change_all_to_serialized"] = "";
|
||||
$lang["items_change_all_to_unserialized"] = "";
|
||||
$lang["items_change_image"] = "";
|
||||
<?php
|
||||
$lang["items_add_minus"] = "Inventario a agregar o disminuir.";
|
||||
$lang["items_allow_alt_description"] = "Permitir Descripción Alternativa";
|
||||
$lang["items_amount_entry"] = "Ingrese Cantidad";
|
||||
$lang["items_bulk_edit"] = "Edición Masiva";
|
||||
$lang["items_buy_price_required"] = "Precio de Compra es un campo requerido.";
|
||||
$lang["items_cannot_be_deleted"] = "No se puede borrar el item(s) seleccionado, uno a mas de los items seleccionados tienen ventas.";
|
||||
$lang["items_cannot_find_item"] = "Articulo no encontrado.";
|
||||
$lang["items_category"] = "Categoría";
|
||||
$lang["items_category_required"] = "Categoría es un campo requerido.";
|
||||
$lang["items_change_all_to_allow_alt_desc"] = "Permitir Descripción Alternativa para todo.";
|
||||
$lang["items_change_all_to_not_allow_allow_desc"] = "No permitir Descripción Alternativa para todo.";
|
||||
$lang["items_change_all_to_serialized"] = "Cambiar todo a Serializado";
|
||||
$lang["items_change_all_to_unserialized"] = "Cambiar todo a No-Serializado";
|
||||
$lang["items_change_image"] = "Cambiar Imagen";
|
||||
$lang["items_confirm_bulk_edit"] = "";
|
||||
$lang["items_confirm_bulk_edit_wipe_taxes"] = "";
|
||||
$lang["items_confirm_delete"] = "";
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
$lang["login_gcaptcha"] = "";
|
||||
$lang["login_go"] = "";
|
||||
$lang["login_invalid_gcaptcha"] = "";
|
||||
$lang["login_invalid_installation"] = "";
|
||||
$lang["login_invalid_username_and_password"] = "";
|
||||
$lang["login_login"] = "";
|
||||
$lang["login_logout"] = "";
|
||||
$lang["login_migration_needed"] = "";
|
||||
$lang["login_password"] = "";
|
||||
$lang["login_username"] = "";
|
||||
$lang["login_welcome"] = "";
|
||||
<?php
|
||||
$lang["login_gcaptcha"] = "No soy un robot.";
|
||||
$lang["login_go"] = "Entrar";
|
||||
$lang["login_invalid_gcaptcha"] = "Por favor compruebe que usted no es un robot.";
|
||||
$lang["login_invalid_installation"] = "La instalacion no es correcta, revise el archivo php.ini.";
|
||||
$lang["login_invalid_username_and_password"] = "Usuario y/o Password Invalido.";
|
||||
$lang["login_login"] = "Login";
|
||||
$lang["login_logout"] = "Salir";
|
||||
$lang["login_migration_needed"] = "Una migración de base de datos a %1 empezara después de entrar.";
|
||||
$lang["login_password"] = "Contraseña";
|
||||
$lang["login_username"] = "Usuario";
|
||||
$lang["login_welcome"] = "Bienvenido a %1!";
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
<?php
|
||||
|
||||
$lang["messages_first_name"] = "";
|
||||
$lang["messages_last_name"] = "";
|
||||
$lang["messages_message"] = "";
|
||||
$lang["messages_message_placeholder"] = "";
|
||||
$lang["messages_message_required"] = "";
|
||||
$lang["messages_multiple_phones"] = "";
|
||||
$lang["messages_phone"] = "";
|
||||
$lang["messages_phone_number_required"] = "";
|
||||
$lang["messages_phone_placeholder"] = "";
|
||||
$lang["messages_sms_send"] = "";
|
||||
$lang["messages_successfully_sent"] = "";
|
||||
$lang["messages_unsuccessfully_sent"] = "";
|
||||
<?php
|
||||
$lang["messages_first_name"] = "Nombre(s)";
|
||||
$lang["messages_last_name"] = "Apellido(s)";
|
||||
$lang["messages_message"] = "Mensaje";
|
||||
$lang["messages_message_placeholder"] = "Tu mensaje aquí...";
|
||||
$lang["messages_message_required"] = "Requiere mensaje";
|
||||
$lang["messages_multiple_phones"] = "(En caso de varios destinatarios, ingrese los números de teléfono separado por comas)";
|
||||
$lang["messages_phone"] = "Número de teléfono";
|
||||
$lang["messages_phone_number_required"] = "Requiere de número telefónico";
|
||||
$lang["messages_phone_placeholder"] = "Números de teléfonos celulares aquí...";
|
||||
$lang["messages_sms_send"] = "Enviar SMS";
|
||||
$lang["messages_successfully_sent"] = "Mensaje enviado exitosamente a: ";
|
||||
$lang["messages_unsuccessfully_sent"] = "Mensaje no enviado a: ";
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
<?php
|
||||
|
||||
$lang["module_attributes"] = "";
|
||||
$lang["module_attributes_desc"] = "";
|
||||
$lang["module_both"] = "";
|
||||
$lang["module_cashups"] = "";
|
||||
$lang["module_cashups_desc"] = "";
|
||||
$lang["module_config"] = "";
|
||||
$lang["module_config_desc"] = "";
|
||||
$lang["module_customers"] = "";
|
||||
$lang["module_customers_desc"] = "";
|
||||
$lang["module_employees"] = "";
|
||||
$lang["module_employees_desc"] = "";
|
||||
$lang["module_expenses"] = "";
|
||||
$lang["module_expenses_categories"] = "";
|
||||
$lang["module_expenses_categories_desc"] = "";
|
||||
<?php
|
||||
$lang["module_attributes"] = "Atributos";
|
||||
$lang["module_attributes_desc"] = "Agregar, Actualizar, Borrar y Buscar atributos.";
|
||||
$lang["module_both"] = "Ambos";
|
||||
$lang["module_cashups"] = "Corte de Caja";
|
||||
$lang["module_cashups_desc"] = "Agregar, Actualizar, Borrar y Buscar Cortes de Caja.";
|
||||
$lang["module_config"] = "Configuración";
|
||||
$lang["module_config_desc"] = "Cambiar Configuracion de OSPOS.";
|
||||
$lang["module_customers"] = "Clientes";
|
||||
$lang["module_customers_desc"] = "Agregar, Actualizar, Borrar y Buscar Clientes.";
|
||||
$lang["module_employees"] = "Empleados";
|
||||
$lang["module_employees_desc"] = "Agregar, Actualizar, Borrar y Buscar Empleados.";
|
||||
$lang["module_expenses"] = "Gastos";
|
||||
$lang["module_expenses_categories"] = "Categorías de Gastos";
|
||||
$lang["module_expenses_categories_desc"] = "Agregar, Actualizar, y Borrar Categorías de Gastos.";
|
||||
$lang["module_expenses_desc"] = "";
|
||||
$lang["module_giftcards"] = "";
|
||||
$lang["module_giftcards_desc"] = "";
|
||||
|
||||
@@ -1,54 +1,53 @@
|
||||
<?php
|
||||
|
||||
$lang["receivings_cancel_receiving"] = "";
|
||||
$lang["receivings_cannot_be_deleted"] = "";
|
||||
$lang["receivings_comments"] = "";
|
||||
$lang["receivings_complete_receiving"] = "";
|
||||
$lang["receivings_confirm_cancel_receiving"] = "";
|
||||
$lang["receivings_confirm_delete"] = "";
|
||||
$lang["receivings_confirm_finish_receiving"] = "";
|
||||
$lang["receivings_cost"] = "";
|
||||
$lang["receivings_date"] = "";
|
||||
$lang["receivings_date_required"] = "";
|
||||
$lang["receivings_date_type"] = "";
|
||||
$lang["receivings_delete_entire_sale"] = "";
|
||||
$lang["receivings_discount"] = "";
|
||||
$lang["receivings_edit"] = "";
|
||||
$lang["receivings_edit_sale"] = "";
|
||||
$lang["receivings_employee"] = "";
|
||||
$lang["receivings_error_editing_item"] = "";
|
||||
$lang["receivings_error_requisition"] = "";
|
||||
$lang["receivings_find_or_scan_item"] = "";
|
||||
$lang["receivings_find_or_scan_item_or_receipt"] = "";
|
||||
$lang["receivings_id"] = "";
|
||||
$lang["receivings_item_name"] = "";
|
||||
$lang["receivings_mode"] = "";
|
||||
$lang["receivings_new_supplier"] = "";
|
||||
$lang["receivings_one_or_multiple"] = "";
|
||||
$lang["receivings_print_after_sale"] = "";
|
||||
$lang["receivings_quantity"] = "";
|
||||
$lang["receivings_receipt"] = "";
|
||||
$lang["receivings_receipt_number"] = "";
|
||||
$lang["receivings_receiving"] = "";
|
||||
$lang["receivings_reference"] = "";
|
||||
$lang["receivings_register"] = "";
|
||||
$lang["receivings_requisition"] = "";
|
||||
$lang["receivings_return"] = "";
|
||||
$lang["receivings_select_supplier"] = "";
|
||||
$lang["receivings_ship_pack"] = "";
|
||||
$lang["receivings_start_typing_supplier_name"] = "";
|
||||
$lang["receivings_stock"] = "";
|
||||
$lang["receivings_stock_destination"] = "";
|
||||
$lang["receivings_stock_locaiton"] = "";
|
||||
$lang["receivings_stock_source"] = "";
|
||||
$lang["receivings_successfully_deleted"] = "";
|
||||
$lang["receivings_successfully_updated"] = "";
|
||||
$lang["receivings_supplier"] = "";
|
||||
$lang["receivings_supplier_address"] = "";
|
||||
$lang["receivings_supplier_email"] = "";
|
||||
$lang["receivings_supplier_location"] = "";
|
||||
$lang["receivings_total"] = "";
|
||||
$lang["receivings_transaction_failed"] = "";
|
||||
$lang["receivings_unable_to_add_item"] = "";
|
||||
$lang["receivings_unsuccessfully_updated"] = "";
|
||||
$lang["receivings_update"] = "";
|
||||
<?php
|
||||
$lang["receivings_cancel_receiving"] = "Cancelar";
|
||||
$lang["receivings_cannot_be_deleted"] = "Falló al borrar Entrada(s).";
|
||||
$lang["receivings_comments"] = "Comentarios";
|
||||
$lang["receivings_complete_receiving"] = "Completado";
|
||||
$lang["receivings_confirm_cancel_receiving"] = "Esta seguro que quiere eliminar esta recepción? Todos los items se borraran.";
|
||||
$lang["receivings_confirm_delete"] = "Esta seguro que quiere borrar esta recepción? Esta acción no se puede deshacer.";
|
||||
$lang["receivings_confirm_finish_receiving"] = "Esta seguro que quiere enviar esta recepción? Esto no se puede deshacer.";
|
||||
$lang["receivings_cost"] = "Costo";
|
||||
$lang["receivings_date"] = "Fecha de Recibido";
|
||||
$lang["receivings_date_required"] = "Se debe de agregar la fecha correcta.";
|
||||
$lang["receivings_date_type"] = "Fecha es un campo obligatorio.";
|
||||
$lang["receivings_delete_entire_sale"] = "Borrar Venta Completa";
|
||||
$lang["receivings_discount"] = "Descuento";
|
||||
$lang["receivings_edit"] = "Editar";
|
||||
$lang["receivings_edit_sale"] = "Editar Recepción";
|
||||
$lang["receivings_employee"] = "Empleado";
|
||||
$lang["receivings_error_editing_item"] = "Fallo la edición del item.";
|
||||
$lang["receivings_error_requisition"] = "No se puede mover el inventario desde o hacia la misma Ubicación.";
|
||||
$lang["receivings_find_or_scan_item"] = "Encontrar o Escanear Articulo";
|
||||
$lang["receivings_find_or_scan_item_or_receipt"] = "Encontrar o Escanear Articulo o Recibo";
|
||||
$lang["receivings_id"] = "ID de Recepción";
|
||||
$lang["receivings_item_name"] = "Nombre del Articulo";
|
||||
$lang["receivings_mode"] = "Modo de Recepción";
|
||||
$lang["receivings_new_supplier"] = "Nuevo Proveedor";
|
||||
$lang["receivings_one_or_multiple"] = "recepción(es)";
|
||||
$lang["receivings_print_after_sale"] = "Imprimir después de la Venta";
|
||||
$lang["receivings_quantity"] = "Cant.";
|
||||
$lang["receivings_receipt"] = "Recibo de Recepcion";
|
||||
$lang["receivings_receipt_number"] = "Recepción #";
|
||||
$lang["receivings_receiving"] = "Recibir";
|
||||
$lang["receivings_reference"] = "Referencia";
|
||||
$lang["receivings_register"] = "Recepción de Artículos";
|
||||
$lang["receivings_requisition"] = "Requisición";
|
||||
$lang["receivings_return"] = "Devolución";
|
||||
$lang["receivings_select_supplier"] = "Seleccionar Proveedor (Opcional)";
|
||||
$lang["receivings_ship_pack"] = "Empaque de Envio";
|
||||
$lang["receivings_start_typing_supplier_name"] = "Empiece a escribir el nombre del Proveedor...";
|
||||
$lang["receivings_stock"] = "Inventario";
|
||||
$lang["receivings_stock_destination"] = "Destino del Inventario";
|
||||
$lang["receivings_stock_locaiton"] = "Ubicación del Inventario";
|
||||
$lang["receivings_stock_source"] = "Origen del Inventario";
|
||||
$lang["receivings_successfully_deleted"] = "Se ha borrado exitosamente";
|
||||
$lang["receivings_successfully_updated"] = "Recepción actualizada exitosamente";
|
||||
$lang["receivings_supplier"] = "Proveedor";
|
||||
$lang["receivings_supplier_address"] = "Dirección";
|
||||
$lang["receivings_supplier_email"] = "Email";
|
||||
$lang["receivings_supplier_location"] = "Ubicación";
|
||||
$lang["receivings_total"] = "Total";
|
||||
$lang["receivings_transaction_failed"] = "Transacción de Recepción falló.";
|
||||
$lang["receivings_unable_to_add_item"] = "Agregar Articulo a Recepción falló.";
|
||||
$lang["receivings_unsuccessfully_updated"] = "Actualización de Recepción falló.";
|
||||
$lang["receivings_update"] = "Actualizar";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["reports_all"] = "Todas";
|
||||
$lang["reports_authority"] = "Autoridad";
|
||||
$lang["reports_canceled"] = "Cancelado";
|
||||
@@ -11,10 +10,10 @@ $lang["reports_code_invoice"] = "INV";
|
||||
$lang["reports_code_pos"] = "POS";
|
||||
$lang["reports_code_quote"] = "Q";
|
||||
$lang["reports_code_return"] = "RET";
|
||||
$lang["reports_code_type"] = "";
|
||||
$lang["reports_code_work_order"] = "";
|
||||
$lang["reports_comments"] = "";
|
||||
$lang["reports_complete"] = "";
|
||||
$lang["reports_code_type"] = "Tipo";
|
||||
$lang["reports_code_work_order"] = "OT";
|
||||
$lang["reports_comments"] = "Comentarios";
|
||||
$lang["reports_complete"] = "Ventas y Devoluciones Completadas";
|
||||
$lang["reports_completed_sales"] = "";
|
||||
$lang["reports_confirm_delete"] = "";
|
||||
$lang["reports_confirm_restore"] = "";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["items_add_minus"] = "";
|
||||
$lang["items_allow_alt_description"] = "";
|
||||
$lang["items_amount_entry"] = "";
|
||||
@@ -7,17 +6,17 @@ $lang["items_bulk_edit"] = "";
|
||||
$lang["items_buy_price_required"] = "";
|
||||
$lang["items_cannot_be_deleted"] = "";
|
||||
$lang["items_cannot_find_item"] = "";
|
||||
$lang["items_category"] = "";
|
||||
$lang["items_category_required"] = "";
|
||||
$lang["items_change_all_to_allow_alt_desc"] = "";
|
||||
$lang["items_change_all_to_not_allow_allow_desc"] = "";
|
||||
$lang["items_category"] = "Categorie";
|
||||
$lang["items_category_required"] = "Campul Categorie este obligatoriu.";
|
||||
$lang["items_change_all_to_allow_alt_desc"] = "Permite descriere alternativa pentru tot.";
|
||||
$lang["items_change_all_to_not_allow_allow_desc"] = "Nu permite descriere alternativa pentru tot.";
|
||||
$lang["items_change_all_to_serialized"] = "";
|
||||
$lang["items_change_all_to_unserialized"] = "";
|
||||
$lang["items_change_image"] = "";
|
||||
$lang["items_confirm_bulk_edit"] = "";
|
||||
$lang["items_confirm_bulk_edit_wipe_taxes"] = "";
|
||||
$lang["items_confirm_delete"] = "";
|
||||
$lang["items_confirm_restore"] = "";
|
||||
$lang["items_change_image"] = "Schimbare imagine";
|
||||
$lang["items_confirm_bulk_edit"] = "Sigur doriti editarea produsului/produselor selectate?";
|
||||
$lang["items_confirm_bulk_edit_wipe_taxes"] = "Toate informatiile cu privire la taxe, vor fi inlocuite.";
|
||||
$lang["items_confirm_delete"] = "Sigur doriti stergerea produselor selectate?";
|
||||
$lang["items_confirm_restore"] = "Sigur doriti restaurarea produselor selectate?";
|
||||
$lang["items_cost_price"] = "";
|
||||
$lang["items_cost_price_number"] = "";
|
||||
$lang["items_cost_price_required"] = "";
|
||||
@@ -110,3 +109,5 @@ $lang["items_unit_price_required"] = "";
|
||||
$lang["items_upc_database"] = "";
|
||||
$lang["items_update"] = "";
|
||||
$lang["items_use_inventory_menu"] = "";
|
||||
$lang["items_categories"] = "Categorii - selectare numar produs.";
|
||||
$lang["items_category_new"] = "Categorie noua";
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
<?php
|
||||
$lang["expenses_add_item"] = "Add Expense";
|
||||
$lang["expenses_amount"] = "Amount";
|
||||
$lang["expenses_amount_number"] = "Amount must be a number";
|
||||
$lang["expenses_amount_required"] = "Expense Amount required";
|
||||
$lang["expenses_by_category"] = "Category";
|
||||
$lang["expenses_cannot_be_deleted"] = "Could not delete Category Expense(s)";
|
||||
$lang["expenses_cash"] = "Cash";
|
||||
$lang["expenses_cash_filter"] = "Cash";
|
||||
$lang["expenses_categories_name"] = "Category";
|
||||
$lang["expenses_category_required"] = "category is a required field";
|
||||
$lang["expenses_check"] = "Check";
|
||||
$lang["expenses_check_filter"] = "Check";
|
||||
$lang["expenses_confirm_delete"] = "தேர்ந்தெடுக்கப்பட்ட செலவை நீக்க விரும்புகிறீர்களா?";
|
||||
$lang["expenses_add_item"] = "செலவை சேர்க்கவும்";
|
||||
$lang["expenses_amount"] = "தொகை";
|
||||
$lang["expenses_amount_number"] = "தொகை ஒரு எண்ணாக இருக்க வேண்டும்";
|
||||
$lang["expenses_amount_required"] = "செலவுத் தொகை தேவை";
|
||||
$lang["expenses_by_category"] = "வகை";
|
||||
$lang["expenses_cannot_be_deleted"] = "செலவு(களு)க்கான வகையை நீக்க முடியவில்லை";
|
||||
$lang["expenses_cash"] = "பணம்";
|
||||
$lang["expenses_cash_filter"] = "பணம்";
|
||||
$lang["expenses_categories_name"] = "வகை";
|
||||
$lang["expenses_category_required"] = "வகை என்பது தேவையான புலம்";
|
||||
$lang["expenses_check"] = "சரிபார்";
|
||||
$lang["expenses_check_filter"] = "சரிபார்";
|
||||
$lang["expenses_confirm_delete"] = "தேர்ந்தெடுக்கப்பட்ட செலவு(களை) நீக்க விரும்புகிறீர்களா?";
|
||||
$lang["expenses_confirm_restore"] = "தேர்ந்தெடுக்கப்பட்ட செலவு(களை) மீட்டெடுக்க விரும்புகிறீர்களா?";
|
||||
$lang["expenses_credit"] = "Credit Card";
|
||||
$lang["expenses_credit_filter"] = "Credit Card";
|
||||
$lang["expenses_date"] = "Date";
|
||||
$lang["expenses_date_number"] = "date must be a number";
|
||||
$lang["expenses_date_required"] = "date is a required field";
|
||||
$lang["expenses_debit"] = "Debit Card";
|
||||
$lang["expenses_debit_filter"] = "Debit Card";
|
||||
$lang["expenses_description"] = "Description";
|
||||
$lang["expenses_due"] = "Due";
|
||||
$lang["expenses_due_filter"] = "Due";
|
||||
$lang["expenses_employee"] = "Created By";
|
||||
$lang["expenses_error_adding_updating"] = "Error adding/updating Expense";
|
||||
$lang["expenses_expense_id"] = "Id";
|
||||
$lang["expenses_expenses_employee"] = "Employee";
|
||||
$lang["expenses_info"] = "Expense Info";
|
||||
$lang["expenses_is_deleted"] = "Deleted";
|
||||
$lang["expenses_name_required"] = "Expense Name required";
|
||||
$lang["expenses_new"] = "New Expense";
|
||||
$lang["expenses_no_expenses_to_display"] = "There are no Expenses to display";
|
||||
$lang["expenses_none_selected"] = "You have not selected any Expense";
|
||||
$lang["expenses_one_or_multiple"] = "Expense(s)";
|
||||
$lang["expenses_payment"] = "Payment Type";
|
||||
$lang["expenses_start_typing_supplier_name"] = "Start Typing Supplier's name...";
|
||||
$lang["expenses_successful_adding"] = "Expense add successful";
|
||||
$lang["expenses_successful_deleted"] = "Expense delete successful";
|
||||
$lang["expenses_successful_updating"] = "Expense update successful";
|
||||
$lang["expenses_supplier_name"] = "Supplier";
|
||||
$lang["expenses_supplier_tax_code"] = "Tax Code";
|
||||
$lang["expenses_tax_amount"] = "Tax";
|
||||
$lang["expenses_update"] = "Update Expense";
|
||||
$lang["expenses_credit"] = "கடன் அட்டை";
|
||||
$lang["expenses_credit_filter"] = "கடன் அட்டை";
|
||||
$lang["expenses_date"] = "தேதி";
|
||||
$lang["expenses_date_number"] = "தேதி ஒரு எண்ணாக இருக்க வேண்டும்";
|
||||
$lang["expenses_date_required"] = "தேதி என்பது ஒரு தேவையான புலம்";
|
||||
$lang["expenses_debit"] = "பற்று அட்டை";
|
||||
$lang["expenses_debit_filter"] = "பற்று அட்டை";
|
||||
$lang["expenses_description"] = "விளக்கம்";
|
||||
$lang["expenses_due"] = "கொடுக்க வேண்டிய";
|
||||
$lang["expenses_due_filter"] = "கொடுக்க வேண்டிய";
|
||||
$lang["expenses_employee"] = "உருவாக்கியவர்";
|
||||
$lang["expenses_error_adding_updating"] = "செலவைச் சேர்ப்பதில் / புதுப்பிப்பதில் பிழை";
|
||||
$lang["expenses_expense_id"] = "அடையாளம்";
|
||||
$lang["expenses_expenses_employee"] = "பணியாளர்";
|
||||
$lang["expenses_info"] = "செலவு தகவல்";
|
||||
$lang["expenses_is_deleted"] = "நீக்கப்பட்டது";
|
||||
$lang["expenses_name_required"] = "செலவுக்கான பெயர் தேவை";
|
||||
$lang["expenses_new"] = "புதிய செலவு";
|
||||
$lang["expenses_no_expenses_to_display"] = "காண்பிக்க செலவுகள் எதுவும் இல்லை";
|
||||
$lang["expenses_none_selected"] = "நீங்கள் எந்த செலவையும் தேர்ந்தெடுக்கவில்லை";
|
||||
$lang["expenses_one_or_multiple"] = "செலவு(கள்)";
|
||||
$lang["expenses_payment"] = "கட்டண வகை";
|
||||
$lang["expenses_start_typing_supplier_name"] = "வழங்குபவரின் பெயரைத் தட்டச்சு செய்யத் தொடங்குங்கள் ...";
|
||||
$lang["expenses_successful_adding"] = "செலவு வெற்றிகரமாக சேர்க்கிறது";
|
||||
$lang["expenses_successful_deleted"] = "செலவு வெற்றிகரமாக நீக்கப்பட்டது";
|
||||
$lang["expenses_successful_updating"] = "செலவு வெற்றிகரமாக புதுப்பிக்கப்படுகிறது";
|
||||
$lang["expenses_supplier_name"] = "வழங்குபவர்";
|
||||
$lang["expenses_supplier_tax_code"] = "வரி குறியீடு";
|
||||
$lang["expenses_tax_amount"] = "வரி";
|
||||
$lang["expenses_update"] = "செலவுகள் புதுப்பிப்பு";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["common_address_1"] = "ที่อยู่";
|
||||
$lang["common_address_2"] = "ที่อยู่ (เพิ่มเติม)";
|
||||
$lang["common_city"] = "อำเภอ";
|
||||
@@ -28,8 +27,8 @@ $lang["common_gender"] = "เพศ";
|
||||
$lang["common_gender_female"] = "หญิง";
|
||||
$lang["common_gender_male"] = "ชาย";
|
||||
$lang["common_gender_undefined"] = "";
|
||||
$lang["common_icon"] = "";
|
||||
$lang["common_id"] = "ID";
|
||||
$lang["common_icon"] = "ไอคอน";
|
||||
$lang["common_id"] = "ไอดี";
|
||||
$lang["common_import"] = "นำเข้า";
|
||||
$lang["common_import_change_file"] = "เปลี่ยน";
|
||||
$lang["common_import_csv"] = "นำเข้าไฟล์ CSV";
|
||||
@@ -42,8 +41,8 @@ $lang["common_last_name_required"] = "นามสกุล จำเป็น
|
||||
$lang["common_last_page"] = "ลำดับสุดท้าย";
|
||||
$lang["common_learn_about_project"] = "เพื่อศึกษาข้อมูลล่าสุดของโครงการ";
|
||||
$lang["common_list_of"] = "รายการ";
|
||||
$lang["common_logo"] = "";
|
||||
$lang["common_logo_mark"] = "";
|
||||
$lang["common_logo"] = "โลโก้";
|
||||
$lang["common_logo_mark"] = "เครื่องหมาย";
|
||||
$lang["common_logout"] = "ออกจากระบบ";
|
||||
$lang["common_migration_needed"] = "การย้ายฐานข้อมูลไปยัง %1 จะเริ่มขึ้นหลังจากเข้าสู่ระบบ";
|
||||
$lang["common_new"] = "สร้างใหม่";
|
||||
@@ -64,8 +63,8 @@ $lang["common_return_policy"] = "นโยบายคืนสินค้า";
|
||||
$lang["common_search"] = "ค้นหา";
|
||||
$lang["common_search_options"] = "ตัวเลือกการค้นหา";
|
||||
$lang["common_searched_for"] = "การค้นหา";
|
||||
$lang["common_software_short"] = "";
|
||||
$lang["common_software_title"] = "";
|
||||
$lang["common_software_short"] = "โอเอสพีโอเอส";
|
||||
$lang["common_software_title"] = "โอเพ่นซอร์สพอยออฟเซล";
|
||||
$lang["common_state"] = "จังหวัด";
|
||||
$lang["common_submit"] = "ส่งข้อมูล";
|
||||
$lang["common_total_spent"] = "ยอดสั่งซื้อทั้งหมด";
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["config_address"] = "ที่อยู่";
|
||||
$lang["config_address_required"] = "ที่อยู่ต้องกรอก";
|
||||
$lang["config_all_set"] = "การตั้งค่าอนุญาตไฟล์ทั้งหมดถูกต้อง!";
|
||||
@@ -127,7 +126,7 @@ $lang["config_financial_year_may"] = "วันที่ 1 พฤษภาคม
|
||||
$lang["config_financial_year_nov"] = "วันที่ 1 พฤศจิกายน";
|
||||
$lang["config_financial_year_oct"] = "วันที่ 1 ตุลาคม";
|
||||
$lang["config_financial_year_sep"] = "วันที่ 1 กันยายน";
|
||||
$lang["config_floating_labels"] = "";
|
||||
$lang["config_floating_labels"] = "Floating Labels";
|
||||
$lang["config_gcaptcha_enable"] = "ขอรหัสยืนยันใหม่ เพื่อเข้าระบบ";
|
||||
$lang["config_gcaptcha_secret_key"] = "รหัสลับ สำหรับรหัสยืนยัน";
|
||||
$lang["config_gcaptcha_secret_key_required"] = "จำเป็นต้องระบุ รหัสลับ สำหรับรหัสยืนยัน";
|
||||
@@ -147,7 +146,7 @@ $lang["config_image_restrictions"] = "ข้อจำกัดของไฟล
|
||||
$lang["config_include_hsn"] = "เพิ่มการรองรับ HSN Codes";
|
||||
$lang["config_info"] = "ข้อมูลร้านค้า";
|
||||
$lang["config_info_configuration"] = "ข้อมูลร้านค้า";
|
||||
$lang["config_input_groups"] = "";
|
||||
$lang["config_input_groups"] = "Input Groups";
|
||||
$lang["config_integrations"] = "การเข้าร่วม";
|
||||
$lang["config_integrations_configuration"] = "การเข้าร่วมกับบุคคลภายนอก";
|
||||
$lang["config_invoice"] = "ใบแจ้งหนี้";
|
||||
@@ -177,7 +176,7 @@ $lang["config_locale_info"] = "ข้อมูลเขตพื้นที่"
|
||||
$lang["config_location"] = "สินค้าคงคลัง";
|
||||
$lang["config_location_configuration"] = "ตำแหน่งสินค้าคงคลัง";
|
||||
$lang["config_location_info"] = "ข้อมูลตำแหน่งสินค้าคงคลัง";
|
||||
$lang["config_login_form"] = "";
|
||||
$lang["config_login_form"] = "รูปแบบแบบฟอร์มการเข้าระบบ";
|
||||
$lang["config_logout"] = "ต้องการสำรองข้อมูลก่อนออกจากระบบหรือไม่? [OK] สำรองข้อมูล / [Cancel] ออกจากระบบ";
|
||||
$lang["config_mailchimp"] = "ระบบส่งอีเมล์เมล์ชิม";
|
||||
$lang["config_mailchimp_api_key"] = "API Key สำหรับระบบส่งอีเมล์เมล์ชิม";
|
||||
@@ -292,7 +291,7 @@ $lang["config_tax_decimals"] = "จำนวนทศนิยมภาษี";
|
||||
$lang["config_tax_id"] = "เลขประจำตัวผู้เสียภาษี";
|
||||
$lang["config_tax_included"] = "รวมภาษีแล้ว";
|
||||
$lang["config_theme"] = "Theme";
|
||||
$lang["config_theme_preview"] = "";
|
||||
$lang["config_theme_preview"] = "ดูตัวอย่างธีม:";
|
||||
$lang["config_thousands_separator"] = "ตัวคั่นหลักพัน";
|
||||
$lang["config_timezone"] = "โซนเวลา";
|
||||
$lang["config_timezone_error"] = "เขตเวลาของระบบ OSPOS แตกต่างกับเขตเวลาปัจจุบันของคุณ";
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
<?php
|
||||
|
||||
<?php
|
||||
$lang["login_gcaptcha"] = "ฉันไม่ใช่หุ่นยนต์";
|
||||
$lang["login_go"] = "ไป";
|
||||
$lang["login_invalid_gcaptcha"] = "กรุณาแสดงตัวตนว่าคุณไม่ใช่หุ่นยนต์";
|
||||
$lang["login_invalid_installation"] = "การติดตั้งไม่ถูกต้องตรวจสอบการตั้งค่าที่ไฟล์ php.ini ของคุณ";
|
||||
$lang["login_invalid_username_and_password"] = "ชื่อผู้ใช้/รหัส ไม่ถูกต้อง";
|
||||
$lang["login_invalid_username_and_password"] = "ชื่อผู้ใช้งานและ/หรือรหัสผ่านเข้าระบบไม่ถูกต้อง";
|
||||
$lang["login_login"] = "ลงชื่อเข้าใช้";
|
||||
$lang["login_logout"] = "";
|
||||
$lang["login_migration_needed"] = "";
|
||||
$lang["login_logout"] = "ออกจากระบบ";
|
||||
$lang["login_migration_needed"] = "การย้ายฐานข้อมูลไปยัง %1 จะเริ่มต้นหลังจากเข้าสู่ระบบ";
|
||||
$lang["login_password"] = "รหัสผ่าน";
|
||||
$lang["login_username"] = "ชื่อผู้ใช้";
|
||||
$lang["login_welcome"] = "";
|
||||
$lang["login_welcome"] = "ยินดีต้อนรับสู่ %1!";
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
<title>403 Yasaklı</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
<p>Dizin erişimi yasaktır.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -21,18 +21,24 @@ class Attribute extends CI_Model
|
||||
*/
|
||||
public function exists($definition_id, $deleted = FALSE)
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->where('deleted', $deleted);
|
||||
|
||||
return ($this->db->get()->num_rows() == 1);
|
||||
return ($this->db->get('attribute_definitions')->num_rows() == 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether an attribute_link row exists given an item_id and optionally a definition_id
|
||||
* @param int $item_id
|
||||
* @param boolean $definition_id
|
||||
* @return boolean TRUE if at least one attribute_link exists or FALSE if no attributes exist.
|
||||
*/
|
||||
public function link_exists($item_id, $definition_id = FALSE)
|
||||
{
|
||||
$this->db->where('item_id', $item_id);
|
||||
$this->db->where('sale_id');
|
||||
$this->db->where('receiving_id');
|
||||
$this->db->from('attribute_links');
|
||||
|
||||
if(empty($definition_id))
|
||||
{
|
||||
$this->db->where('definition_id <>');
|
||||
@@ -43,25 +49,38 @@ class Attribute extends CI_Model
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
}
|
||||
|
||||
$this->db->where('item_id', $item_id);
|
||||
|
||||
return ($this->db->get()->num_rows() > 0);
|
||||
return ($this->db->get('attribute_links')->num_rows() > 0);
|
||||
}
|
||||
|
||||
/*
|
||||
Determines if a given attribute_value exists in the attribute_values table and returns the attribute_id if it does
|
||||
* Determines if a given attribute_value exists in the attribute_values table and returns the attribute_id if it does
|
||||
*/
|
||||
public function value_exists($attribute_value)
|
||||
public function value_exists($attribute_value, $definition_type = TEXT)
|
||||
{
|
||||
$this->db->distinct('attribute_id');
|
||||
$this->db->from('attribute_values');
|
||||
$this->db->where('attribute_value', $attribute_value);
|
||||
switch($definition_type)
|
||||
{
|
||||
case DATE:
|
||||
$data_type = 'date';
|
||||
$attribute_date_value = DateTime::createFromFormat($this->Appconfig->get('dateformat'), $attribute_value);
|
||||
$attribute_value = $attribute_date_value->format('Y-m-d');
|
||||
break;
|
||||
case DECIMAL:
|
||||
$data_type = 'decimal';
|
||||
break;
|
||||
default:
|
||||
$data_type = 'value';
|
||||
break;
|
||||
}
|
||||
|
||||
$query = $this->db->get();
|
||||
if ($query->num_rows() > 0)
|
||||
$this->db->select('attribute_id');
|
||||
$this->db->where("attribute_$data_type", $attribute_value);
|
||||
$query = $this->db->get('attribute_values');
|
||||
|
||||
if($query->num_rows() > 0)
|
||||
{
|
||||
return $query->row()->attribute_id;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -86,7 +105,7 @@ class Attribute extends CI_Model
|
||||
//Get empty base parent object, as $item_id is NOT an item
|
||||
$item_obj = new stdClass();
|
||||
|
||||
//Get all the fields from items table
|
||||
//Get all the fields from attribute_definitions table
|
||||
foreach($this->db->list_fields('attribute_definitions') as $field)
|
||||
{
|
||||
$item_obj->$field = '';
|
||||
@@ -106,9 +125,10 @@ class Attribute extends CI_Model
|
||||
$this->db->join('attribute_definitions AS parent_definition', 'parent_definition.definition_id = definition.definition_fk', 'left');
|
||||
|
||||
$this->db->group_start();
|
||||
$this->db->like('definition.definition_name', $search);
|
||||
$this->db->or_like('definition.definition_type', $search);
|
||||
$this->db->like('definition.definition_name', $search);
|
||||
$this->db->or_like('definition.definition_type', $search);
|
||||
$this->db->group_end();
|
||||
|
||||
$this->db->where('definition.deleted', 0);
|
||||
$this->db->order_by($sort, $order);
|
||||
|
||||
@@ -122,68 +142,63 @@ class Attribute extends CI_Model
|
||||
|
||||
public function get_attributes_by_item($item_id)
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->join('attribute_links', 'attribute_links.definition_id = attribute_definitions.definition_id');
|
||||
$this->db->where('item_id', $item_id);
|
||||
$this->db->where('receiving_id');
|
||||
$this->db->where('sale_id');
|
||||
$this->db->where('receiving_id');
|
||||
$this->db->where('deleted', 0);
|
||||
$this->db->order_by('definition_name','ASC');
|
||||
$this->db->order_by('definition_name', 'ASC');
|
||||
|
||||
$results = $this->db->get()->result_array();
|
||||
$results = $this->db->get('attribute_definitions')->result_array();
|
||||
|
||||
return $this->_to_array($results, 'definition_id');
|
||||
return $this->to_array($results, 'definition_id');
|
||||
}
|
||||
|
||||
public function get_values_by_definitions($definition_ids)
|
||||
{
|
||||
if(count($definition_ids ? : []))
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
|
||||
$this->db->group_start();
|
||||
$this->db->where_in('definition_fk', array_keys($definition_ids));
|
||||
$this->db->or_where_in('definition_id', array_keys($definition_ids));
|
||||
$this->db->where('definition_type !=', GROUP);
|
||||
$this->db->where_in('definition_fk', array_keys($definition_ids));
|
||||
$this->db->or_where_in('definition_id', array_keys($definition_ids));
|
||||
$this->db->where('definition_type !=', GROUP);
|
||||
$this->db->group_end();
|
||||
|
||||
$this->db->where('deleted', 0);
|
||||
|
||||
$results = $this->db->get()->result_array();
|
||||
$results = $this->db->get('attribute_definitions')->result_array();
|
||||
|
||||
return $this->_to_array($results, 'definition_id');
|
||||
return $this->to_array($results, 'definition_id');
|
||||
}
|
||||
|
||||
return array();
|
||||
return [];
|
||||
}
|
||||
|
||||
public function get_definitions_by_type($attribute_type, $definition_id = NO_DEFINITION_ID)
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->where('definition_type', $attribute_type);
|
||||
$this->db->where('deleted', 0);
|
||||
$this->db->where('definition_fk');
|
||||
|
||||
if($definition_id != CATEGORY_DEFINITION_ID)
|
||||
{
|
||||
$this->db->where('definition_id != ', $definition_id);
|
||||
$this->db->where('definition_id <>', $definition_id);
|
||||
}
|
||||
|
||||
$this->db->where('definition_fk');
|
||||
$results = $this->db->get()->result_array();
|
||||
$results = $this->db->get('attribute_definitions')->result_array();
|
||||
|
||||
return $this->_to_array($results, 'definition_id', 'definition_name');
|
||||
return $this->to_array($results, 'definition_id', 'definition_name');
|
||||
}
|
||||
|
||||
public function get_definitions_by_flags($definition_flags)
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->where('definition_flags &', $definition_flags);
|
||||
$this->db->where('deleted', 0);
|
||||
$this->db->where('definition_type <>', GROUP);
|
||||
$this->db->order_by('definition_id');
|
||||
$results = $this->db->get()->result_array();
|
||||
$results = $this->db->get('attribute_definitions')->result_array();
|
||||
|
||||
return $this->_to_array($results, 'definition_id', 'definition_name');
|
||||
return $this->to_array($results, 'definition_id', 'definition_name');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -194,7 +209,6 @@ class Attribute extends CI_Model
|
||||
*/
|
||||
public function get_definition_names($groups = TRUE)
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->where('deleted', 0);
|
||||
$this->db->order_by('definition_name','ASC');
|
||||
|
||||
@@ -203,11 +217,10 @@ class Attribute extends CI_Model
|
||||
$this->db->where_not_in('definition_type',GROUP);
|
||||
}
|
||||
|
||||
$results = $this->db->get()->result_array();
|
||||
|
||||
$results = $this->db->get('attribute_definitions')->result_array();
|
||||
$definition_name = array(-1 => $this->lang->line('common_none_selected_text'));
|
||||
|
||||
return $definition_name + $this->_to_array($results, 'definition_id', 'definition_name');
|
||||
return $definition_name + $this->to_array($results, 'definition_id', 'definition_name');
|
||||
}
|
||||
|
||||
public function get_definition_values($definition_id)
|
||||
@@ -216,23 +229,22 @@ class Attribute extends CI_Model
|
||||
|
||||
if($definition_id > 0 || $definition_id == CATEGORY_DEFINITION_ID)
|
||||
{
|
||||
$this->db->from('attribute_links');
|
||||
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->where('item_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->order_by('attribute_value','ASC');
|
||||
|
||||
$results = $this->db->get()->result_array();
|
||||
$results = $this->db->get('attribute_links')->result_array();
|
||||
|
||||
return $this->_to_array($results, 'attribute_id', 'attribute_value');
|
||||
return $this->to_array($results, 'attribute_id', 'attribute_value');
|
||||
}
|
||||
|
||||
return $attribute_values;
|
||||
}
|
||||
|
||||
private function _to_array($results, $key, $value = '')
|
||||
private function to_array($results, $key, $value = '')
|
||||
{
|
||||
return array_column(array_map(function($result) use ($key, $value) {
|
||||
return array_column(array_map(function($result) use ($key, $value){
|
||||
return [$result[$key], empty($value) ? $result : $result[$value]];
|
||||
}, $results), 1, 0);
|
||||
}
|
||||
@@ -242,10 +254,9 @@ class Attribute extends CI_Model
|
||||
*/
|
||||
public function get_total_rows()
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->where('deleted', 0);
|
||||
|
||||
return $this->db->count_all_results();
|
||||
return $this->db->count_all_results('attribute_definitions');
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -256,73 +267,83 @@ class Attribute extends CI_Model
|
||||
return $this->search($search)->num_rows();
|
||||
}
|
||||
|
||||
private function check_data_validity($definition, $from, $to)
|
||||
private function check_data_validity($definition_id, $from, $to)
|
||||
{
|
||||
$success = FALSE;
|
||||
|
||||
if($from === TEXT)
|
||||
{
|
||||
$this->db->select('item_id,attribute_value');
|
||||
$this->db->from('attribute_values');
|
||||
$this->db->join('attribute_links', 'attribute_values.attribute_id = attribute_links.attribute_id');
|
||||
$this->db->where('definition_id',$definition);
|
||||
$success = TRUE;
|
||||
|
||||
if($to === DATE)
|
||||
$this->db->distinct()->select('attribute_value');
|
||||
$this->db->join('attribute_links', 'attribute_values.attribute_id = attribute_links.attribute_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
foreach($this->db->get('attribute_values')->result() as $attribute)
|
||||
{
|
||||
foreach($this->db->get()->result_array() as $row)
|
||||
switch($to)
|
||||
{
|
||||
if(valid_date($row['attribute_value']) === FALSE)
|
||||
{
|
||||
log_message('ERROR', 'item_id: ' . $row['item_id'] . ' with attribute_value: ' . $row['attribute_value'] . ' cannot be converted to datetime');
|
||||
$success = FALSE;
|
||||
}
|
||||
case DATE:
|
||||
$success = valid_date($attribute->attribute_value);
|
||||
break;
|
||||
case DECIMAL:
|
||||
$success = valid_decimal($attribute->attribute_value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if($to === DECIMAL)
|
||||
{
|
||||
foreach($this->db->get()->result_array() as $row)
|
||||
|
||||
if($success === FALSE)
|
||||
{
|
||||
if(valid_decimal($row['attribute_value']) === FALSE)
|
||||
$affected_items = $this->get_items_by_value($attribute->attribute_value, $definition_id);
|
||||
foreach($affected_items as $affected_item)
|
||||
{
|
||||
log_message('ERROR', 'item_id: ' . $row['item_id'] . ' with attribute_value: ' . $row['attribute_value'] . ' cannot be converted to decimal');
|
||||
$success = FALSE;
|
||||
$affected_items[] = $affected_item['item_id'];
|
||||
}
|
||||
|
||||
log_message('ERROR', "Attribute_value: '$attribute->attribute_value' cannot be converted to $to. Affected Items: ". implode(',', $affected_items));
|
||||
unset($affected_items);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $success;
|
||||
}
|
||||
|
||||
private function convert_definition_type($definition_id, $from_type, $to_type)
|
||||
/**
|
||||
* Returns all item_ids with a specific attribute_value and attribute_definition
|
||||
* @param string $attribute_value
|
||||
* @param int $definition_id
|
||||
* @return array
|
||||
*/
|
||||
private function get_items_by_value($attribute_value, $definition_id)
|
||||
{
|
||||
$this->db->select('item_id');
|
||||
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->where('attribute_value', $attribute_value);
|
||||
return $this->db->get('attribute_links')->result_array();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Converts data in attribute_values and attribute_links tables associated with the conversion of one attribute type to another.
|
||||
* @param int $definition_id
|
||||
* @param string $from_type
|
||||
* @param string $to_type
|
||||
* @return boolean
|
||||
*/
|
||||
private function convert_definition_data($definition_id, $from_type, $to_type)
|
||||
{
|
||||
$success = FALSE;
|
||||
|
||||
//From TEXT
|
||||
if($from_type === TEXT)
|
||||
{
|
||||
//To DATETIME or DECIMAL
|
||||
if(in_array($to_type, [DATE, DECIMAL], TRUE))
|
||||
{
|
||||
$field = ($to_type === DATE ? 'attribute_date' : 'attribute_decimal');
|
||||
|
||||
if($this->check_data_validity($definition_id, $from_type, $to_type))
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$query = 'UPDATE ospos_attribute_values ';
|
||||
$query .= 'INNER JOIN ospos_attribute_links ';
|
||||
$query .= 'ON ospos_attribute_values.attribute_id = ospos_attribute_links.attribute_id ';
|
||||
$query .= 'SET '. $field .'= attribute_value, ';
|
||||
$query .= 'attribute_value = NULL ';
|
||||
$query .= 'WHERE definition_id = ' . $this->db->escape($definition_id);
|
||||
$success = $this->db->query($query);
|
||||
|
||||
$this->db->trans_complete();
|
||||
$attributes_to_convert = $this->get_attributes_by_definition($definition_id);
|
||||
$success = $this->attribute_cleanup($attributes_to_convert, $definition_id, $to_type);
|
||||
}
|
||||
}
|
||||
|
||||
//To DROPDOWN or CHECKBOX
|
||||
else if($to_type === DROPDOWN)
|
||||
{
|
||||
$success = TRUE;
|
||||
@@ -333,57 +354,44 @@ class Attribute extends CI_Model
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$query = 'UPDATE ospos_attribute_values values ';
|
||||
$query .= 'INNER JOIN ospos_attribute_links links ';
|
||||
$query .= 'ON values.attribute_id = links.attribute_id ';
|
||||
$query .= "SET links.attribute_id = IF((values.attribute_value IN('FALSE','0','') OR (values.attribute_value IS NULL)), $checkbox_attribute_values[0], $checkbox_attribute_values[1]) ";
|
||||
$query .= 'WHERE definition_id = ' . $this->db->escape($definition_id);
|
||||
$query = 'UPDATE '. $this->db->dbprefix('attribute_links') .' links ';
|
||||
$query .= 'JOIN '. $this->db->dbprefix('attribute_values') .' vals ';
|
||||
$query .= 'ON vals.attribute_id = links.attribute_id ';
|
||||
$query .= "SET links.attribute_id = IF((attribute_value IN('FALSE','0','') OR (attribute_value IS NULL)), $checkbox_attribute_values[0], $checkbox_attribute_values[1]) ";
|
||||
$query .= 'WHERE definition_id = '. $this->db->escape($definition_id);
|
||||
$success = $this->db->query($query);
|
||||
|
||||
$this->db->trans_complete();
|
||||
}
|
||||
}
|
||||
|
||||
//From DROPDOWN
|
||||
else if($from_type === DROPDOWN)
|
||||
{
|
||||
//To TEXT
|
||||
if(in_array($to_type, [TEXT, CHECKBOX], TRUE))
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$this->db->from('ospos_attribute_links');
|
||||
$this->db->where('definition_id',$definition_id);
|
||||
$this->db->where('item_id', NULL);
|
||||
$success = $this->db->delete();
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
//To CHECKBOX
|
||||
if($to_type === CHECKBOX)
|
||||
{
|
||||
$checkbox_attribute_values = $this->checkbox_attribute_values($definition_id);
|
||||
|
||||
$this->db->trans_start();
|
||||
|
||||
$query = 'UPDATE ospos_attribute_values vals ';
|
||||
$query .= 'INNER JOIN ospos_attribute_links links ';
|
||||
$query = 'UPDATE '. $this->db->dbprefix('attribute_links') .' links ';
|
||||
$query .= 'JOIN '. $this->db->dbprefix('attribute_values') .' vals ';
|
||||
$query .= 'ON vals.attribute_id = links.attribute_id ';
|
||||
$query .= "SET links.attribute_id = IF((vals.attribute_value IN('FALSE','0','') OR (vals.attribute_value IS NULL)), $checkbox_attribute_values[0], $checkbox_attribute_values[1]) ";
|
||||
$query .= 'WHERE links.definition_id = ' . $this->db->escape($definition_id);
|
||||
$query .= "SET links.attribute_id = IF((attribute_value IN('FALSE','0','') OR (attribute_value IS NULL)), $checkbox_attribute_values[0], $checkbox_attribute_values[1]) ";
|
||||
$query .= 'WHERE definition_id = '. $this->db->escape($definition_id);
|
||||
$success = $this->db->query($query);
|
||||
|
||||
$this->db->trans_complete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//From any other type
|
||||
else
|
||||
{
|
||||
$success = TRUE;
|
||||
}
|
||||
|
||||
$this->delete_orphaned_links($definition_id);
|
||||
$this->delete_orphaned_values();
|
||||
return $success;
|
||||
}
|
||||
|
||||
@@ -410,7 +418,6 @@ class Attribute extends CI_Model
|
||||
*/
|
||||
public function save_definition(&$definition_data, $definition_id = NO_DEFINITION_ID)
|
||||
{
|
||||
//Run these queries as a transaction, we want to make sure we do all or nothing
|
||||
$this->db->trans_start();
|
||||
|
||||
//Definition doesn't exist
|
||||
@@ -418,7 +425,7 @@ class Attribute extends CI_Model
|
||||
{
|
||||
if($this->exists($definition_id,TRUE))
|
||||
{
|
||||
$success = $this->undelete($definition_id);
|
||||
$success = $this->undelete_definition($definition_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -430,26 +437,27 @@ class Attribute extends CI_Model
|
||||
//Definition already exists
|
||||
else
|
||||
{
|
||||
$this->db->select('definition_type, definition_name');
|
||||
$this->db->from('attribute_definitions');
|
||||
//Get current definition type and name
|
||||
$this->db->select('definition_type');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
$row = $this->db->get()->row();
|
||||
$row = $this->db->get('attribute_definitions')->row();
|
||||
$from_definition_type = $row->definition_type;
|
||||
$from_definition_name = $row->definition_name;
|
||||
$to_definition_type = $definition_data['definition_type'];
|
||||
|
||||
//Update the definition values
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
$success = $this->db->update('attribute_definitions', $definition_data);
|
||||
$definition_data['definition_id'] = $definition_id;
|
||||
|
||||
if($from_definition_type !== $to_definition_type)
|
||||
{
|
||||
if(!$this->convert_definition_type($definition_id,$from_definition_type,$to_definition_type))
|
||||
if($this->convert_definition_data($definition_id, $from_definition_type, $to_definition_type) === FALSE)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$success = $this->db->update('attribute_definitions', $definition_data);
|
||||
$definition_data['definition_id'] = $definition_id;
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
@@ -461,14 +469,14 @@ class Attribute extends CI_Model
|
||||
|
||||
public function get_definition_by_name($definition_name, $definition_type = FALSE)
|
||||
{
|
||||
$this->db->from('attribute_definitions');
|
||||
$this->db->where('definition_name', $definition_name);
|
||||
|
||||
if($definition_type != FALSE)
|
||||
{
|
||||
$this->db->where('definition_type', $definition_type);
|
||||
}
|
||||
|
||||
return $this->db->get()->result_array();
|
||||
return $this->db->get('attribute_definitions')->result_array();
|
||||
}
|
||||
|
||||
public function save_link($item_id, $definition_id, $attribute_id)
|
||||
@@ -485,7 +493,10 @@ class Attribute extends CI_Model
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->insert('attribute_links', array('attribute_id' => $attribute_id, 'item_id' => $item_id, 'definition_id' => $definition_id));
|
||||
$this->db->insert('attribute_links', array(
|
||||
'attribute_id' => $attribute_id,
|
||||
'item_id' => $item_id,
|
||||
'definition_id' => $definition_id));
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
@@ -493,20 +504,30 @@ class Attribute extends CI_Model
|
||||
return $this->db->trans_status();
|
||||
}
|
||||
|
||||
public function delete_link($item_id)
|
||||
public function delete_link($item_id, $definition_id = FALSE)
|
||||
{
|
||||
$delete_data = array('item_id' => $item_id);
|
||||
|
||||
//Exclude rows where sale_id or receiving_id has a value
|
||||
$this->db->where('sale_id');
|
||||
$this->db->where('receiving_id');
|
||||
|
||||
return $this->db->delete('attribute_links', array('item_id' => $item_id));
|
||||
if(!empty($definition_id))
|
||||
{
|
||||
$delete_data += ['definition_id' => $definition_id];
|
||||
}
|
||||
|
||||
$success = $this->db->delete('attribute_links', $delete_data);
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
public function get_link_value($item_id, $definition_id)
|
||||
{
|
||||
$this->db->where('item_id', $item_id);
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->where('sale_id');
|
||||
$this->db->where('receiving_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
return $this->db->get('attribute_links')->row_object();
|
||||
}
|
||||
@@ -516,11 +537,11 @@ class Attribute extends CI_Model
|
||||
$format = $this->db->escape(dateformat_mysql());
|
||||
$this->db->select("GROUP_CONCAT(attribute_value SEPARATOR ', ') AS attribute_values");
|
||||
$this->db->select("GROUP_CONCAT(DATE_FORMAT(attribute_date, $format) SEPARATOR ', ') AS attribute_dtvalues");
|
||||
$this->db->from('attribute_links');
|
||||
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id');
|
||||
$this->db->join('attribute_definitions', 'attribute_definitions.definition_id = attribute_links.definition_id');
|
||||
$this->db->where('definition_type <>', GROUP);
|
||||
$this->db->where('deleted', 0);
|
||||
$this->db->where('item_id', intval($item_id));
|
||||
|
||||
if(!empty($id))
|
||||
{
|
||||
@@ -532,37 +553,47 @@ class Attribute extends CI_Model
|
||||
$this->db->where('receiving_id');
|
||||
}
|
||||
|
||||
$this->db->where('item_id', (int) $item_id);
|
||||
$this->db->where('definition_flags & ', $definition_flags);
|
||||
|
||||
return $this->db->get();
|
||||
return $this->db->get('attribute_links');
|
||||
}
|
||||
|
||||
public function get_attribute_value($item_id, $definition_id)
|
||||
{
|
||||
$this->db->from('attribute_values');
|
||||
$this->db->join('attribute_links', 'attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->where('item_id', intval($item_id));
|
||||
$this->db->where('sale_id');
|
||||
$this->db->where('receiving_id');
|
||||
$this->db->where('item_id', (int) $item_id);
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
return $this->db->get()->row_object();
|
||||
return $this->db->get('attribute_values')->row_object();
|
||||
}
|
||||
|
||||
public function get_attribute_values($item_id)
|
||||
{
|
||||
$this->db->select('attribute_values.attribute_value, attribute_values.attribute_decimal, attribute_values.attribute_date, attribute_links.definition_id');
|
||||
$this->db->join('attribute_values', 'attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->where('item_id', intval($item_id));
|
||||
|
||||
$results = $this->db->get('attribute_links')->result_array();
|
||||
|
||||
return $this->to_array($results, 'definition_id');
|
||||
}
|
||||
|
||||
|
||||
public function copy_attribute_links($item_id, $sale_receiving_fk, $id)
|
||||
{
|
||||
$this->db->query(
|
||||
'INSERT INTO ospos_attribute_links (item_id, definition_id, attribute_id, ' . $sale_receiving_fk . ')
|
||||
SELECT ' . $this->db->escape($item_id) . ', definition_id, attribute_id, ' . $this->db->escape($id) . '
|
||||
FROM ' . $this->db->dbprefix('attribute_links') . '
|
||||
WHERE item_id = ' . $this->db->escape($item_id) . ' AND sale_id IS NULL AND receiving_id IS NULL'
|
||||
'INSERT INTO ' . $this->db->dbprefix('attribute_links') . ' (item_id, definition_id, attribute_id, ' . $sale_receiving_fk . ')
|
||||
SELECT ' . $this->db->escape($item_id) . ', definition_id, attribute_id, ' . $this->db->escape($id) . '
|
||||
FROM ' . $this->db->dbprefix('attribute_links') . '
|
||||
WHERE item_id = ' . $this->db->escape($item_id) . ' AND sale_id IS NULL AND receiving_id IS NULL'
|
||||
);
|
||||
}
|
||||
|
||||
public function get_suggestions($definition_id, $term)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
$this->db->distinct();
|
||||
$this->db->select('attribute_value, attribute_values.attribute_id');
|
||||
$this->db->from('attribute_definitions AS definition');
|
||||
@@ -586,25 +617,32 @@ class Attribute extends CI_Model
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$locale_date_format = $this->Appconfig->get('dateformat');
|
||||
|
||||
//New Attribute
|
||||
if(empty($attribute_id) || empty($item_id))
|
||||
{
|
||||
if(in_array($definition_type, [TEXT, DROPDOWN, CHECKBOX], TRUE))
|
||||
{
|
||||
$attribute_id = $this->value_exists($attribute_value);
|
||||
//Update attribute_value
|
||||
$attribute_id = $this->value_exists($attribute_value, $definition_type);
|
||||
|
||||
if(empty($attribute_id))
|
||||
if($attribute_id === FALSE)
|
||||
{
|
||||
switch($definition_type)
|
||||
{
|
||||
$this->db->insert('attribute_values', array('attribute_value' => $attribute_value));
|
||||
case DATE:
|
||||
$data_type = 'date';
|
||||
$attribute_date_value = DateTime::createFromFormat($locale_date_format, $attribute_value);
|
||||
$attribute_value = $attribute_date_value->format('Y-m-d');
|
||||
break;
|
||||
case DECIMAL:
|
||||
$data_type = 'decimal';
|
||||
break;
|
||||
default:
|
||||
$data_type = 'value';
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if($definition_type == DECIMAL)
|
||||
{
|
||||
$this->db->insert('attribute_values', array('attribute_decimal' => $attribute_value));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->insert('attribute_values', array('attribute_date' => date('Y-m-d', strtotime($attribute_value))));
|
||||
|
||||
$this->db->insert('attribute_values', array("attribute_$data_type" => $attribute_value));
|
||||
}
|
||||
|
||||
$attribute_id = $attribute_id ? $attribute_id : $this->db->insert_id();
|
||||
@@ -614,24 +652,26 @@ class Attribute extends CI_Model
|
||||
'item_id' => empty($item_id) ? NULL : $item_id,
|
||||
'definition_id' => $definition_id));
|
||||
}
|
||||
|
||||
//Existing Attribute
|
||||
else
|
||||
{
|
||||
$this->db->where('attribute_id', $attribute_id);
|
||||
switch($definition_type)
|
||||
{
|
||||
case DATE:
|
||||
$data_type = 'date';
|
||||
$attribute_date_value = DateTime::createFromFormat($locale_date_format, $attribute_value);
|
||||
$attribute_value = $attribute_date_value->format('Y-m-d');
|
||||
break;
|
||||
case DECIMAL:
|
||||
$data_type = 'decimal';
|
||||
break;
|
||||
default:
|
||||
$data_type = 'value';
|
||||
break;
|
||||
}
|
||||
|
||||
if(in_array($definition_type, [TEXT, DROPDOWN], TRUE))
|
||||
{
|
||||
$this->db->update('attribute_values', array('attribute_value' => $attribute_value));
|
||||
}
|
||||
else if($definition_type == DECIMAL)
|
||||
{
|
||||
$this->db->update('attribute_values', array('attribute_decimal' => $attribute_value));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->update('attribute_values', array('attribute_date' => date('Y-m-d', strtotime($attribute_value))));
|
||||
}
|
||||
$this->db->where('attribute_id', $attribute_id);
|
||||
$this->db->update('attribute_values', array("attribute_$data_type" => $attribute_value));
|
||||
}
|
||||
|
||||
$this->db->trans_complete();
|
||||
@@ -641,14 +681,14 @@ class Attribute extends CI_Model
|
||||
|
||||
public function delete_value($attribute_value, $definition_id)
|
||||
{
|
||||
return $this->db->query("DELETE atrv, atrl FROM " . $this->db->dbprefix('attribute_values') . " atrv, " . $this->db->dbprefix('attribute_links') . " atrl " .
|
||||
"WHERE atrl.attribute_id = atrv.attribute_id AND atrv.attribute_value = " . $this->db->escape($attribute_value) . " AND atrl.definition_id = " . $this->db->escape($definition_id));
|
||||
return $this->db->query('DELETE atrv, atrl FROM ' . $this->db->dbprefix('attribute_values') . ' atrv, ' . $this->db->dbprefix('attribute_links') . ' atrl ' .
|
||||
'WHERE atrl.attribute_id = atrv.attribute_id AND atrv.attribute_value = ' . $this->db->escape($attribute_value) . ' AND atrl.definition_id = ' . $this->db->escape($definition_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes an Attribute definition from the database and associated column in the items_import.csv
|
||||
*
|
||||
* @param unknown $definition_id Attribute definition ID to remove.
|
||||
* @param int $definition_id Attribute definition ID to remove.
|
||||
* @return boolean TRUE if successful and FALSE if there is a failure
|
||||
*/
|
||||
public function delete_definition($definition_id)
|
||||
@@ -666,6 +706,33 @@ class Attribute extends CI_Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes any attribute_links for a specific definition that do not have an item_id associated with them and are not DROPDOWN types
|
||||
*
|
||||
* @param int $definition_id
|
||||
* @return boolean TRUE is returned if the delete was successful or FALSE if there were any failures
|
||||
*/
|
||||
public function delete_orphaned_links($definition_id)
|
||||
{
|
||||
$this->db->select('definition_type');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
$definition = $this->db->get('attribute_definitions')->row();
|
||||
|
||||
if($definition->definition_type != DROPDOWN)
|
||||
{
|
||||
$this->db->trans_start();
|
||||
|
||||
$this->db->where('item_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
$this->db->delete('attribute_links');
|
||||
|
||||
$this->db->trans_complete();
|
||||
|
||||
return $this->db->trans_status();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Deletes any orphaned values that do not have associated links
|
||||
* @param int $definition_id
|
||||
* @return boolean TRUE is returned if the delete was successful or FALSE if there were any failures
|
||||
@@ -693,6 +760,48 @@ class Attribute extends CI_Model
|
||||
{
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
return $this->db->update('attribute_definitions', array('deleted'=>0));
|
||||
return $this->db->update('attribute_definitions', array('deleted' => 0));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param array attributes attributes that need to be fixed
|
||||
* @param int $definition_id
|
||||
* @param string $definition_type This dictates what column should be populated in any new attribute_values that are created
|
||||
*/
|
||||
public function attribute_cleanup($attributes, $definition_id, $definition_type)
|
||||
{
|
||||
$this->db->trans_begin();
|
||||
|
||||
foreach($attributes as $attribute)
|
||||
{
|
||||
$new_attribute_id = $this->save_value($attribute['attribute_value'], $definition_id, FALSE, $attribute['attribute_id'], $definition_type);
|
||||
|
||||
if($this->save_link($attribute['item_id'], $definition_id, $new_attribute_id) == FALSE)
|
||||
{
|
||||
log_message('Error', 'Transaction failed');
|
||||
$this->db->trans_rollback();
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
$success = $this->delete_orphaned_links($definition_id);
|
||||
|
||||
$this->db->trans_commit();
|
||||
return $success;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all attribute_ids and item_ids assigned to that definition_id
|
||||
*
|
||||
* @param int $definition_id
|
||||
* @return array All attribute_id and item_id pairs in the attribute_links table with that attribute definition_id
|
||||
*/
|
||||
public function get_attributes_by_definition($definition_id)
|
||||
{
|
||||
$this->db->select('attribute_links.attribute_id, item_id, attribute_value, attribute_decimal, attribute_date');
|
||||
$this->db->join('attribute_values', 'attribute_values.attribute_id = attribute_links.attribute_id');
|
||||
$this->db->where('definition_id', $definition_id);
|
||||
|
||||
return $this->db->get('attribute_links')->result_array();
|
||||
}
|
||||
}
|
||||
@@ -18,10 +18,11 @@ class Employee extends Person
|
||||
return ($this->db->get()->num_rows() == 1);
|
||||
}
|
||||
|
||||
public function username_exists($username)
|
||||
public function username_exists($employee_id, $username)
|
||||
{
|
||||
$this->db->from('employees');
|
||||
$this->db->where('employees.username', $username);
|
||||
$this->db->where('employees.person_id <>', $employee_id);
|
||||
|
||||
return ($this->db->get()->num_rows() == 1);
|
||||
}
|
||||
@@ -105,7 +106,7 @@ class Employee extends Person
|
||||
//Run these queries as a transaction, we want to make sure we do all or nothing
|
||||
$this->db->trans_start();
|
||||
|
||||
if(ENVIRONMENT != 'testing' && !$this->username_exists($employee_data['username']) && parent::save($person_data, $employee_id))
|
||||
if(ENVIRONMENT != 'testing' && parent::save($person_data, $employee_id))
|
||||
{
|
||||
if(!$employee_id || !$this->exists($employee_id))
|
||||
{
|
||||
|
||||
@@ -12,16 +12,15 @@ class Item extends CI_Model
|
||||
{
|
||||
// check if $item_id is a number and not a string starting with 0
|
||||
// because cases like 00012345 will be seen as a number where it is a barcode
|
||||
if(ctype_digit($item_id) && substr($item_id, 0, 1) != '0')
|
||||
if(ctype_digit($item_id) && substr($item_id, 0, 1) !== '0')
|
||||
{
|
||||
$this->db->from('items');
|
||||
$this->db->where('item_id', (int) $item_id);
|
||||
if($ignore_deleted == FALSE)
|
||||
$this->db->where('item_id', intval($item_id));
|
||||
if($ignore_deleted === FALSE)
|
||||
{
|
||||
$this->db->where('deleted', $deleted);
|
||||
}
|
||||
|
||||
return ($this->db->get()->num_rows() == 1);
|
||||
return ($this->db->get('items')->num_rows() === 1);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
@@ -37,16 +36,15 @@ class Item extends CI_Model
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$this->db->from('items');
|
||||
$this->db->where('item_number', (string) $item_number);
|
||||
// check if $item_id is a number and not a string starting with 0
|
||||
// because cases like 00012345 will be seen as a number where it is a barcode
|
||||
if(ctype_digit($item_id) && substr($item_id, 0, 1) != '0')
|
||||
{
|
||||
$this->db->where('item_id !=', (int) $item_id);
|
||||
$this->db->where('item_id !=', intval($item_id));
|
||||
}
|
||||
|
||||
return $this->db->get()->num_rows() >= 1;
|
||||
return ($this->db->get('items')->num_rows() >= 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -82,7 +80,7 @@ class Item extends CI_Model
|
||||
public function search($search, $filters, $rows = 0, $limit_from = 0, $sort = 'items.name', $order = 'asc', $count_only = FALSE)
|
||||
{
|
||||
// get_found_rows case
|
||||
if($count_only == TRUE)
|
||||
if($count_only === TRUE)
|
||||
{
|
||||
$this->db->select('COUNT(DISTINCT items.item_id) AS count');
|
||||
}
|
||||
@@ -208,7 +206,7 @@ class Item extends CI_Model
|
||||
}
|
||||
|
||||
// get_found_rows case
|
||||
if($count_only == TRUE)
|
||||
if($count_only === TRUE)
|
||||
{
|
||||
return $this->db->get()->row()->count;
|
||||
}
|
||||
@@ -262,13 +260,12 @@ class Item extends CI_Model
|
||||
$this->db->select('GROUP_CONCAT(attribute_value SEPARATOR \'|\') AS attribute_values');
|
||||
$this->db->select('GROUP_CONCAT(attribute_decimal SEPARATOR \'|\') AS attribute_dvalues');
|
||||
$this->db->select('GROUP_CONCAT(attribute_date SEPARATOR \'|\') AS attribute_dtvalues');
|
||||
$this->db->from('items');
|
||||
$this->db->join('attribute_links', 'attribute_links.item_id = items.item_id', 'left');
|
||||
$this->db->join('attribute_values', 'attribute_links.attribute_id = attribute_values.attribute_id', 'left');
|
||||
$this->db->where('items.item_id', $item_id);
|
||||
$this->db->group_by('items.item_id');
|
||||
|
||||
$query = $this->db->get();
|
||||
$query = $this->db->get('items');
|
||||
|
||||
if($query->num_rows() == 1)
|
||||
{
|
||||
@@ -294,17 +291,14 @@ class Item extends CI_Model
|
||||
*/
|
||||
public function get_info_by_id_or_number($item_id, $include_deleted = TRUE)
|
||||
{
|
||||
$this->db->from('items');
|
||||
|
||||
$this->db->group_start();
|
||||
|
||||
$this->db->where('items.item_number', $item_id);
|
||||
|
||||
// check if $item_id is a number and not a string starting with 0
|
||||
// because cases like 00012345 will be seen as a number where it is a barcode
|
||||
if(ctype_digit($item_id) && substr($item_id, 0, 1) != '0')
|
||||
{
|
||||
$this->db->or_where('items.item_id', (int) $item_id);
|
||||
$this->db->or_where('items.item_id', intval($item_id));
|
||||
}
|
||||
|
||||
$this->db->group_end();
|
||||
@@ -318,7 +312,7 @@ class Item extends CI_Model
|
||||
// due to barcode and item_id clash
|
||||
$this->db->limit(1);
|
||||
|
||||
$query = $this->db->get();
|
||||
$query = $this->db->get('items');
|
||||
|
||||
if($query->num_rows() == 1)
|
||||
{
|
||||
@@ -390,10 +384,16 @@ class Item extends CI_Model
|
||||
$this->db->where('item_id', $item_data['item_id']);
|
||||
$this->db->update('items', array('low_sell_item_id'=>$item_data['item_id']));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$item_data['item_id'] = $item_id;
|
||||
}
|
||||
|
||||
$this->db->where('item_id', $item_id);
|
||||
|
||||
@@ -546,7 +546,7 @@ class Item extends CI_Model
|
||||
|
||||
public function get_search_suggestions($search, $filters = array('is_deleted' => FALSE, 'search_custom' => FALSE), $unique = FALSE, $limit = 25)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
$non_kit = array(ITEM, ITEM_AMOUNT_ENTRY);
|
||||
|
||||
$this->db->select($this->get_search_suggestion_format('item_id, name, pack_name'));
|
||||
@@ -614,16 +614,16 @@ class Item extends CI_Model
|
||||
}
|
||||
|
||||
//Search by custom fields
|
||||
if($filters['search_custom'] != FALSE)
|
||||
if($filters['search_custom'] !== FALSE)
|
||||
{
|
||||
$this->db->from('attribute_links');
|
||||
$this->db->join('attribute_values','attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->join('attribute_values', 'attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->join('attribute_definitions', 'attribute_definitions.definition_id = attribute_links.definition_id');
|
||||
$this->db->like('attribute_value', $search);
|
||||
$this->db->where('definition_type', TEXT);
|
||||
$this->db->where('deleted', $filters['is_deleted']);
|
||||
$this->db->where_in('item_type', $non_kit); // standard, exclude kit items since kits will be picked up later
|
||||
|
||||
foreach($this->db->get()->result() as $row)
|
||||
foreach($this->db->get('attribute_links')->result() as $row)
|
||||
{
|
||||
$suggestions[] = array('value' => $row->item_id, 'label' => $this->get_search_suggestion_label($row));
|
||||
}
|
||||
@@ -642,7 +642,7 @@ class Item extends CI_Model
|
||||
|
||||
public function get_stock_search_suggestions($search, $filters = array('is_deleted' => FALSE, 'search_custom' => FALSE), $unique = FALSE, $limit = 25)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
$non_kit = array(ITEM, ITEM_AMOUNT_ENTRY);
|
||||
|
||||
$this->db->select($this->get_search_suggestion_format('item_id, name, pack_name'));
|
||||
@@ -716,16 +716,16 @@ class Item extends CI_Model
|
||||
}
|
||||
|
||||
//Search by custom fields
|
||||
if($filters['search_custom'] != FALSE)
|
||||
if($filters['search_custom'] !== FALSE)
|
||||
{
|
||||
$this->db->from('attribute_links');
|
||||
$this->db->join('attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->join('attribute_values', 'attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->join('attribute_definitions', 'attribute_definitions.definition_id = attribute_links.definition_id');
|
||||
$this->db->like('attribute_value', $search);
|
||||
$this->db->where('definition_type', TEXT);
|
||||
$this->db->where('stock_type', '0'); // stocked items only
|
||||
$this->db->where('deleted', $filters['is_deleted']);
|
||||
foreach($this->db->get()->result() as $row)
|
||||
|
||||
foreach($this->db->get('attribute_links')->result() as $row)
|
||||
{
|
||||
$suggestions[] = array('value' => $row->item_id, 'label' => $this->get_search_suggestion_label($row));
|
||||
}
|
||||
@@ -743,16 +743,15 @@ class Item extends CI_Model
|
||||
|
||||
public function get_kit_search_suggestions($search, $filters = array('is_deleted' => FALSE, 'search_custom' => FALSE), $unique = FALSE, $limit = 25)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
$non_kit = array(ITEM, ITEM_AMOUNT_ENTRY);
|
||||
|
||||
$this->db->select('item_id, name');
|
||||
$this->db->from('items');
|
||||
$this->db->where('deleted', $filters['is_deleted']);
|
||||
$this->db->where('item_type', ITEM_KIT);
|
||||
$this->db->like('name', $search);
|
||||
$this->db->order_by('name', 'asc');
|
||||
foreach($this->db->get()->result() as $row)
|
||||
foreach($this->db->get('items')->result() as $row)
|
||||
{
|
||||
$suggestions[] = array('value' => $row->item_id, 'label' => $row->name);
|
||||
}
|
||||
@@ -778,6 +777,7 @@ class Item extends CI_Model
|
||||
$this->db->distinct();
|
||||
$this->db->like('category', $search);
|
||||
$this->db->order_by('category', 'asc');
|
||||
|
||||
foreach($this->db->get()->result() as $row)
|
||||
{
|
||||
$suggestions[] = array('label' => $row->category);
|
||||
@@ -787,10 +787,12 @@ class Item extends CI_Model
|
||||
$this->db->select('company_name');
|
||||
$this->db->from('suppliers');
|
||||
$this->db->like('company_name', $search);
|
||||
|
||||
// restrict to non deleted companies only if is_deleted is FALSE
|
||||
$this->db->where('deleted', $filters['is_deleted']);
|
||||
$this->db->distinct();
|
||||
$this->db->order_by('company_name', 'asc');
|
||||
|
||||
foreach($this->db->get()->result() as $row)
|
||||
{
|
||||
$suggestions[] = array('label' => $row->company_name);
|
||||
@@ -813,31 +815,19 @@ class Item extends CI_Model
|
||||
}
|
||||
|
||||
//Search by custom fields
|
||||
if($filters['search_custom'] != FALSE)
|
||||
if($filters['search_custom'] !== FALSE)
|
||||
{
|
||||
// This section is currently never used but custom fields are replaced with attributes
|
||||
// therefore in case this feature is required a proper query needs to be written here
|
||||
/*
|
||||
$this->db->from('items');
|
||||
$this->db->group_start();
|
||||
$this->db->where('item_type', ITEM_KIT);
|
||||
$this->db->like('custom1', $search);
|
||||
$this->db->or_like('custom2', $search);
|
||||
$this->db->or_like('custom3', $search);
|
||||
$this->db->or_like('custom4', $search);
|
||||
$this->db->or_like('custom5', $search);
|
||||
$this->db->or_like('custom6', $search);
|
||||
$this->db->or_like('custom7', $search);
|
||||
$this->db->or_like('custom8', $search);
|
||||
$this->db->or_like('custom9', $search);
|
||||
$this->db->or_like('custom10', $search);
|
||||
$this->db->group_end();
|
||||
$this->db->join('attribute_values', 'attribute_links.attribute_id = attribute_values.attribute_id');
|
||||
$this->db->join('attribute_definitions', 'attribute_definitions.definition_id = attribute_links.definition_id');
|
||||
$this->db->like('attribute_value', $search);
|
||||
$this->db->where('definition_type', TEXT);
|
||||
$this->db->where('stock_type', '0'); // stocked items only
|
||||
$this->db->where('deleted', $filters['is_deleted']);
|
||||
foreach($this->db->get()->result() as $row)
|
||||
|
||||
foreach($this->db->get('attribute_links')->result() as $row)
|
||||
{
|
||||
$suggestions[] = array('value' => $row->item_id, 'label' => $row->name);
|
||||
$suggestions[] = array('value' => $row->item_id, 'label' => $this->get_search_suggestion_label($row));
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -852,7 +842,7 @@ class Item extends CI_Model
|
||||
|
||||
public function get_low_sell_suggestions($search)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
|
||||
$this->db->select($this->get_search_suggestion_format('item_id, pack_name'));
|
||||
$this->db->from('items');
|
||||
@@ -870,7 +860,7 @@ class Item extends CI_Model
|
||||
|
||||
public function get_category_suggestions($search)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
$this->db->distinct();
|
||||
$this->db->select('category');
|
||||
$this->db->from('items');
|
||||
@@ -887,7 +877,7 @@ class Item extends CI_Model
|
||||
|
||||
public function get_location_suggestions($search)
|
||||
{
|
||||
$suggestions = array();
|
||||
$suggestions = [];
|
||||
$this->db->distinct();
|
||||
$this->db->select('location');
|
||||
$this->db->from('items');
|
||||
|
||||
@@ -10,7 +10,7 @@ class Summary_items extends Summary_report
|
||||
array('item_name' => $this->lang->line('reports_item')),
|
||||
array('category' => $this->lang->line('reports_category')),
|
||||
array('unit_price' => $this->lang->line('reports_unit_price'), 'sorter' => 'number_sorter'),
|
||||
array('quantity' => $this->lang->line('reports_quantity')),
|
||||
array('quantity' => $this->lang->line('reports_quantity'), 'sorter' => 'number_sorter'),
|
||||
array('subtotal' => $this->lang->line('reports_subtotal'), 'sorter' => 'number_sorter'),
|
||||
array('tax' => $this->lang->line('reports_tax'), 'sorter' => 'number_sorter'),
|
||||
array('total' => $this->lang->line('reports_total'), 'sorter' => 'number_sorter'),
|
||||
|
||||
@@ -8,7 +8,7 @@ class Summary_taxes extends Summary_report
|
||||
{
|
||||
return array(
|
||||
array('tax_percent' => $this->lang->line('reports_tax_percent'), 'sorter' => 'number_sorter'),
|
||||
array('report_count' => $this->lang->line('reports_sales')),
|
||||
array('report_count' => $this->lang->line('reports_sales'), 'sorter' => 'number_sorter'),
|
||||
array('subtotal' => $this->lang->line('reports_subtotal'), 'sorter' => 'number_sorter'),
|
||||
array('tax' => $this->lang->line('reports_tax'), 'sorter' => 'number_sorter'),
|
||||
array('total' => $this->lang->line('reports_total'), 'sorter' => 'number_sorter'));
|
||||
|
||||
@@ -209,8 +209,10 @@ $(document).ready(function()
|
||||
last_name: 'required',
|
||||
username:
|
||||
{
|
||||
|
||||
required: true,
|
||||
minlength: 5
|
||||
minlength: 5,
|
||||
remote: '<?php echo site_url("$controller_name/check_username/$employee_id")?>'
|
||||
},
|
||||
password:
|
||||
{
|
||||
@@ -238,8 +240,9 @@ $(document).ready(function()
|
||||
username:
|
||||
{
|
||||
required: "<?php echo $this->lang->line('employees_username_required'); ?>",
|
||||
minlength: "<?php echo $this->lang->line('employees_username_minlength'); ?>"
|
||||
},
|
||||
minlength: "<?php echo $this->lang->line('employees_username_minlength'); ?>",
|
||||
remote: "<?php echo $this->lang->line('employees_username_duplicate'); ?>"
|
||||
},
|
||||
password:
|
||||
{
|
||||
<?php
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<ul id="error_message_box" class="error_message_box"></ul>
|
||||
|
||||
<?php echo form_open_multipart('items/do_csv_import/', array('id'=>'csv_form', 'class'=>'form-horizontal')); ?>
|
||||
<?php echo form_open_multipart('items/import_csv_file/', array('id'=>'csv_form', 'class'=>'form-horizontal')); ?>
|
||||
<fieldset id="item_basic_info">
|
||||
<div class="form-group form-group-sm">
|
||||
<div class="col-xs-12">
|
||||
<a href="<?php echo site_url('items/csv'); ?>"><?php echo $this->lang->line('common_download_import_template'); ?></a>
|
||||
<a href="<?php echo site_url('items/generate_csv_file'); ?>"><?php echo $this->lang->line('common_download_import_template'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<div class='col-xs-12'>
|
||||
<div class="fileinput fileinput-new input-group" data-provides="fileinput">
|
||||
<div class="form-control" data-trigger="fileinput"><i class="glyphicon glyphicon-file fileinput-exists"></i><span class="fileinput-filename"></span></div>
|
||||
<span class="input-group-addon input-sm btn btn-default btn-file"><span class="fileinput-new"><?php echo $this->lang->line("common_import_select_file"); ?></span><span class="fileinput-exists"><?php echo $this->lang->line("common_import_change_file"); ?></span><input type="file" id="file_path" name="file_path" accept=".csv"></span>
|
||||
<a href="#" class="input-group-addon input-sm btn btn-default fileinput-exists" data-dismiss="fileinput"><?php echo $this->lang->line("common_import_remove_file"); ?></a>
|
||||
<span class="input-group-addon input-sm btn btn-default btn-file"><span class="fileinput-new"><?php echo $this->lang->line('common_import_select_file'); ?></span><span class="fileinput-exists"><?php echo $this->lang->line('common_import_change_file'); ?></span><input type="file" id="file_path" name="file_path" accept=".csv"></span>
|
||||
<a href="#" class="input-group-addon input-sm btn btn-default fileinput-exists" data-dismiss="fileinput"><?php echo $this->lang->line('common_import_remove_file'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php $this->load->view("partial/header"); ?>
|
||||
<?php $this->load->view('partial/header'); ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
@@ -17,7 +17,7 @@ $(document).ready(function()
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
// load the preset datarange picker
|
||||
// load the preset daterange picker
|
||||
<?php $this->load->view('partial/daterangepicker'); ?>
|
||||
// set the beginning of time as starting date
|
||||
$('#daterangepicker').data('daterangepicker').setStartDate("<?php echo date($this->config->item('dateformat'), mktime(0,0,0,01,01,2010));?>");
|
||||
@@ -58,28 +58,28 @@ $(document).ready(function()
|
||||
</script>
|
||||
|
||||
<div id="title_bar" class="btn-toolbar print_hide">
|
||||
<button class='btn btn-info btn-sm pull-right modal-dlg' data-btn-submit='<?php echo $this->lang->line('common_submit') ?>' data-href='<?php echo site_url($controller_name."/csv_import"); ?>'
|
||||
<button class='btn btn-info btn-sm pull-right modal-dlg' data-btn-submit='<?php echo $this->lang->line('common_submit') ?>' data-href='<?php echo site_url("$controller_name/csv_import"); ?>'
|
||||
title='<?php echo $this->lang->line('items_import_items_csv'); ?>'>
|
||||
<span class="glyphicon glyphicon-import"> </span><?php echo $this->lang->line('common_import_csv'); ?>
|
||||
<span class="glyphicon glyphicon-import"> </span><?php echo $this->lang->line('common_import_csv'); ?>
|
||||
</button>
|
||||
|
||||
<button class='btn btn-info btn-sm pull-right modal-dlg' data-btn-new='<?php echo $this->lang->line('common_new') ?>' data-btn-submit='<?php echo $this->lang->line('common_submit') ?>' data-href='<?php echo site_url($controller_name."/view"); ?>'
|
||||
<button class='btn btn-info btn-sm pull-right modal-dlg' data-btn-new='<?php echo $this->lang->line('common_new') ?>' data-btn-submit='<?php echo $this->lang->line('common_submit') ?>' data-href='<?php echo site_url("$controller_name/view"); ?>'
|
||||
title='<?php echo $this->lang->line($controller_name . '_new'); ?>'>
|
||||
<span class="glyphicon glyphicon-tag"> </span><?php echo $this->lang->line($controller_name. '_new'); ?>
|
||||
<span class="glyphicon glyphicon-tag"> </span><?php echo $this->lang->line($controller_name. '_new'); ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="toolbar">
|
||||
<div class="pull-left form-inline" role="toolbar">
|
||||
<button id="delete" class="btn btn-default btn-sm print_hide">
|
||||
<span class="glyphicon glyphicon-trash"> </span><?php echo $this->lang->line("common_delete"); ?>
|
||||
<span class="glyphicon glyphicon-trash"> </span><?php echo $this->lang->line('common_delete'); ?>
|
||||
</button>
|
||||
<button id="bulk_edit" class="btn btn-default btn-sm modal-dlg print_hide", data-btn-submit='<?php echo $this->lang->line('common_submit') ?>', data-href='<?php echo site_url($controller_name."/bulk_edit"); ?>'
|
||||
<button id="bulk_edit" class="btn btn-default btn-sm modal-dlg print_hide", data-btn-submit='<?php echo $this->lang->line('common_submit') ?>', data-href='<?php echo site_url("$controller_name/bulk_edit"); ?>'
|
||||
title='<?php echo $this->lang->line('items_edit_multiple_items'); ?>'>
|
||||
<span class="glyphicon glyphicon-edit"> </span><?php echo $this->lang->line("items_bulk_edit"); ?>
|
||||
<span class="glyphicon glyphicon-edit"> </span><?php echo $this->lang->line("items_bulk_edit"); ?>
|
||||
</button>
|
||||
<button id="generate_barcodes" class="btn btn-default btn-sm print_hide" data-href='<?php echo site_url($controller_name."/generate_barcodes"); ?>' title='<?php echo $this->lang->line('items_generate_barcodes');?>'>
|
||||
<span class="glyphicon glyphicon-barcode"> </span><?php echo $this->lang->line("items_generate_barcodes"); ?>
|
||||
<button id="generate_barcodes" class="btn btn-default btn-sm print_hide" data-href='<?php echo site_url("$controller_name/generate_barcodes"); ?>' title='<?php echo $this->lang->line('items_generate_barcodes');?>'>
|
||||
<span class="glyphicon glyphicon-barcode"> </span><?php echo $this->lang->line('items_generate_barcodes'); ?>
|
||||
</button>
|
||||
<?php echo form_input(array('name'=>'daterangepicker', 'class'=>'form-control input-sm', 'id'=>'daterangepicker')); ?>
|
||||
<?php echo form_multiselect('filters[]', $filters, '', array('id'=>'filters', 'class'=>'selectpicker show-menu-arrow', 'data-none-selected-text'=>$this->lang->line('common_none_selected_text'), 'data-selected-text-format'=>'count > 1', 'data-style'=>'btn-default btn-sm', 'data-width'=>'fit')); ?>
|
||||
@@ -96,4 +96,4 @@ $(document).ready(function()
|
||||
<table id="table"></table>
|
||||
</div>
|
||||
|
||||
<?php $this->load->view("partial/footer"); ?>
|
||||
<?php $this->load->view('partial/footer'); ?>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "opensourcepos",
|
||||
"description": "Open Source Point of Sale is a web based POS system written in the PHP language. It uses MySQL as backend and has a simple user interface",
|
||||
"version": "3.4.0",
|
||||
"version": "3.3.5",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
"jekkos <jekkos - at - opensourcepos.org>",
|
||||
|
||||
@@ -14,7 +14,7 @@ networks:
|
||||
|
||||
services:
|
||||
ospos:
|
||||
image: jekkos/opensourcepos:3.4.0
|
||||
image: jekkos/opensourcepos:3.3.5
|
||||
restart: always
|
||||
depends_on:
|
||||
- mysql
|
||||
|
||||
@@ -14,7 +14,7 @@ networks:
|
||||
|
||||
services:
|
||||
ospos:
|
||||
image: jekkos/opensourcepos:3.3.4
|
||||
image: jekkos/opensourcepos:3.3.5
|
||||
restart: always
|
||||
depends_on:
|
||||
- mysql
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "opensourcepos",
|
||||
"version": "3.4.0",
|
||||
"version": "3.3.5",
|
||||
"description": "Open Source Point of Sale is a web based point of sale system written in the PHP language. It uses MySQL as the data storage back-end and has a simple user interface.",
|
||||
"main": "index.php",
|
||||
"license": "MIT",
|
||||
|
||||
Reference in New Issue
Block a user