mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-25 08:44:42 -04:00
Compare commits
1 Commits
validation
...
revert-inp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0992a92e7 |
@@ -33,21 +33,21 @@ after_success:
|
||||
- mv dist/opensourcepos.zip "dist/opensourcepos.$version.$rev.zip"
|
||||
deploy:
|
||||
- provider: npm
|
||||
edge: true
|
||||
src: dist/opensourcepos.$version.$rev.tgz
|
||||
registry: https://npm.pkg.github.com
|
||||
file: dist/opensourcepos.$version.$rev.tgz
|
||||
registry: npm.pkg.github.com
|
||||
email: jeroen@steganos.dev
|
||||
skip_cleanup: true
|
||||
api_key:
|
||||
secure: "DNPJOrT51wdO0BAbkX2hKowdXYh7x8d43xvAw7eVfOslyBPiv6Bb/1QdC2Bpnlqe0WiJVS5hvBTMrJ+vSDK5i/l8jA+ZoI6ms1+P1DQ6sBBMBQI2fuvRCrJj+Fp3WnaduZb/N7R+FqdKQwD/ZORyhzJ4whtHkrO8uC7cY/wlacU="
|
||||
|
||||
on:
|
||||
all_branches: true
|
||||
- provider: releases
|
||||
edge: true
|
||||
file: dist/opensourcepos.$version.$rev.zip
|
||||
name: "OpensourcePos $version"
|
||||
release_notes_file: CHANGELOG.md
|
||||
prerelease: true
|
||||
skip_cleanup: true
|
||||
|
||||
user: jekkos
|
||||
overwrite: true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Server Requirements
|
||||
|
||||
- PHP version `7.4` is supported, PHP version `≤7.3` is NOT supported. Please note that PHP needs to have the extensions `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` , `php-curl` and `php-xml` installed and enabled. PHP version `8.x` is only supported by the code that is still under development in master branch.
|
||||
- PHP version `7.4` to `8.3` are supported, PHP version `≤7.3` is NOT supported. Please note that PHP needs to have the extensions `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` , `php-curl` and `php-xml` installed and enabled.
|
||||
- MySQL `5.6` and `5.7` are supported, also MariaDB replacement `10.x` is supported and might offer better performance.
|
||||
- Apache `2.4` is supported. Nginx should work fine too, see [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Local-Deployment-using-LEMP).
|
||||
- Raspberry PI based installations proved to work, see [wiki page here](<https://github.com/opensourcepos/opensourcepos/wiki/Installing-on-Raspberry-PI---Orange-PI-(Headless-OSPOS)>).
|
||||
|
||||
@@ -277,7 +277,7 @@ class App extends BaseConfig
|
||||
* @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/
|
||||
* @see http://www.w3.org/TR/CSP/
|
||||
*/
|
||||
public bool $CSPEnabled = false; //TODO: Currently CSP3 tags are not supported so enabling this causes problems with script-src-elem, style-src-attr and style-src-elem
|
||||
public bool $CSPEnabled = false;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
@@ -47,45 +47,28 @@ class ContentSecurityPolicy extends BaseConfig
|
||||
*
|
||||
* @var list<string>|string|null
|
||||
*/
|
||||
public $defaultSrc = [
|
||||
'self',
|
||||
'www.google.com',
|
||||
];
|
||||
public $defaultSrc;
|
||||
|
||||
/**
|
||||
* Lists allowed scripts' URLs.
|
||||
*
|
||||
* @var list<string>|string
|
||||
*/
|
||||
public $scriptSrc = [
|
||||
'self',
|
||||
'unsafe-inline',
|
||||
'unsafe-eval',
|
||||
'www.google.com www.gstatic.com'
|
||||
];
|
||||
public $scriptSrc = 'self';
|
||||
|
||||
/**
|
||||
* Lists allowed stylesheets' URLs.
|
||||
*
|
||||
* @var list<string>|string
|
||||
*/
|
||||
public $styleSrc = [
|
||||
'self',
|
||||
'unsafe-inline',
|
||||
'nonce-{csp-style-nonce}',
|
||||
'https://fonts.googleapis.com',
|
||||
];
|
||||
public $styleSrc = 'self';
|
||||
|
||||
/**
|
||||
* Defines the origins from which images can be loaded.
|
||||
*
|
||||
* @var list<string>|string
|
||||
*/
|
||||
public $imageSrc = [
|
||||
'self',
|
||||
'data:',
|
||||
'blob:',
|
||||
];
|
||||
public $imageSrc = 'self';
|
||||
|
||||
/**
|
||||
* Restricts the URLs that can appear in a page's `<base>` element.
|
||||
@@ -109,21 +92,14 @@ class ContentSecurityPolicy extends BaseConfig
|
||||
*
|
||||
* @var list<string>|string
|
||||
*/
|
||||
public $connectSrc = [
|
||||
'self',
|
||||
'nominatim.openstreetmap.org',
|
||||
];
|
||||
public $connectSrc = 'self';
|
||||
|
||||
/**
|
||||
* Specifies the origins that can serve web fonts.
|
||||
*
|
||||
* @var list<string>|string
|
||||
*/
|
||||
public $fontSrc = [
|
||||
'self',
|
||||
'fonts.googleapis.com',
|
||||
'fonts.gstatic.com',
|
||||
];
|
||||
public $fontSrc;
|
||||
|
||||
/**
|
||||
* Lists valid endpoints for submission from `<form>` tags.
|
||||
@@ -162,7 +138,7 @@ class ContentSecurityPolicy extends BaseConfig
|
||||
*
|
||||
* @var list<string>|string
|
||||
*/
|
||||
public $objectSrc = 'none';
|
||||
public $objectSrc = 'self';
|
||||
|
||||
/**
|
||||
* @var list<string>|string|null
|
||||
|
||||
@@ -26,7 +26,7 @@ use CodeIgniter\HotReloader\HotReloader;
|
||||
* Events::on('create', [$myInstance, 'myMethod']);
|
||||
*/
|
||||
|
||||
Events::on('pre_system', static function (): void {
|
||||
Events::on('pre_system', static function () {
|
||||
if (ENVIRONMENT !== 'testing') {
|
||||
if (ini_get('zlib.output_compression')) {
|
||||
throw FrameworkException::forEnabledZlibOutputCompression();
|
||||
@@ -50,7 +50,7 @@ Events::on('pre_system', static function (): void {
|
||||
Services::toolbar()->respond();
|
||||
// Hot Reload route - for framework use on the hot reloader.
|
||||
if (ENVIRONMENT === 'development') {
|
||||
Services::routes()->get('__hot-reload', static function (): void {
|
||||
Services::routes()->get('__hot-reload', static function () {
|
||||
(new HotReloader())->run();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -60,10 +60,12 @@ class Exceptions extends BaseConfig
|
||||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* WHETHER TO THROW AN EXCEPTION ON DEPRECATED ERRORS
|
||||
* LOG DEPRECATIONS INSTEAD OF THROWING?
|
||||
* --------------------------------------------------------------------------
|
||||
* If set to `true`, DEPRECATED errors are only logged and no exceptions are
|
||||
* thrown. This option also works for user deprecations.
|
||||
* By default, CodeIgniter converts deprecations into exceptions. Also,
|
||||
* starting in PHP 8.1 will cause a lot of deprecated usage warnings.
|
||||
* Use this option to temporarily cease the warnings and instead log those.
|
||||
* This option also works for user deprecations.
|
||||
*/
|
||||
public bool $logDeprecations = true;
|
||||
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
namespace Config;
|
||||
|
||||
use CodeIgniter\Config\BaseService;
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
use Config\Services as AppServices;
|
||||
use HTMLPurifier;
|
||||
use HTMLPurifier_Config;
|
||||
|
||||
@@ -34,29 +32,6 @@ class Services extends BaseService
|
||||
* }
|
||||
*/
|
||||
|
||||
/**
|
||||
* Responsible for loading the language string translations.
|
||||
*
|
||||
* @return MY_Language
|
||||
*/
|
||||
public static function language(?string $locale = null, bool $getShared = true)
|
||||
{
|
||||
if ($getShared) {
|
||||
return static::getSharedInstance('language', $locale)->setLocale($locale);
|
||||
}
|
||||
|
||||
if (AppServices::get('request') instanceof IncomingRequest) {
|
||||
$requestLocale = AppServices::get('request')->getLocale();
|
||||
} else {
|
||||
$requestLocale = Locale::getDefault();
|
||||
}
|
||||
|
||||
// Use '?:' for empty string check
|
||||
$locale = $locale ?: $requestLocale;
|
||||
|
||||
return new \App\Libraries\MY_Language($locale);
|
||||
}
|
||||
|
||||
private static $htmlPurifier;
|
||||
|
||||
public static function htmlPurifier($getShared = true)
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Attribute;
|
||||
use Config\Services;
|
||||
|
||||
require_once('Secure_Controller.php');
|
||||
|
||||
@@ -38,10 +37,10 @@ class Attributes extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(ATTRIBUTE_DEFINITION_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'definition_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$attributes = $this->attribute->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -64,7 +63,7 @@ class Attributes extends Secure_Controller
|
||||
*/
|
||||
public function postSaveAttributeValue(): void
|
||||
{
|
||||
$success = $this->attribute->saveAttributeValue(
|
||||
$success = $this->attribute->save_value(
|
||||
html_entity_decode($this->request->getPost('attribute_value')),
|
||||
$this->request->getPost('definition_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
$this->request->getPost('item_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
@@ -131,7 +130,7 @@ class Attributes extends Secure_Controller
|
||||
|
||||
foreach($definition_values as $definition_value)
|
||||
{
|
||||
$this->attribute->saveAttributeValue($definition_value, $definition_data['definition_id']);
|
||||
$this->attribute->save_value($definition_value, $definition_data['definition_id']);
|
||||
}
|
||||
|
||||
echo json_encode([
|
||||
@@ -180,7 +179,7 @@ class Attributes extends Secure_Controller
|
||||
*/
|
||||
public function getRow(int $row_id): void
|
||||
{
|
||||
$attribute_definition_info = $this->attribute->getAttributeInfo($row_id);
|
||||
$attribute_definition_info = $this->attribute->get_info($row_id);
|
||||
$attribute_definition_info->definition_flags = $this->get_attributes($attribute_definition_info->definition_flags);
|
||||
$data_row = get_attribute_definition_data_row($attribute_definition_info);
|
||||
|
||||
@@ -210,7 +209,7 @@ class Attributes extends Secure_Controller
|
||||
*/
|
||||
public function getView(int $definition_id = NO_DEFINITION_ID): void
|
||||
{
|
||||
$info = $this->attribute->getAttributeInfo($definition_id);
|
||||
$info = $this->attribute->get_info($definition_id);
|
||||
foreach(get_object_vars($info) as $property => $value)
|
||||
{
|
||||
$info->$property = $value;
|
||||
|
||||
@@ -6,14 +6,13 @@ use App\Models\Cashup;
|
||||
use App\Models\Expense;
|
||||
use App\Models\Reports\Summary_payments;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
|
||||
class Cashups extends Secure_Controller
|
||||
{
|
||||
private Cashup $cashup;
|
||||
private Expense $expense;
|
||||
private Summary_payments $summary_payments;
|
||||
private array $config;
|
||||
private Cashup $cashup;
|
||||
private Expense $expense;
|
||||
private Summary_payments $summary_payments;
|
||||
private array $config;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@@ -43,10 +42,10 @@ class Cashups extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(CASHUPS_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'cashup_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$filters = [
|
||||
'start_date' => $this->request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS), //TODO: Is this the best way to filter dates
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -87,10 +87,10 @@ class Customers extends Persons
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(CUSTOMER_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'people.person_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$customers = $this->customer->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -125,8 +125,7 @@ class Customers extends Persons
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->customer->get_search_suggestions($search);
|
||||
$suggestions = $this->customer->get_search_suggestions($this->request->getGet('term'), 25,true);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -136,8 +135,7 @@ class Customers extends Persons
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->customer->get_search_suggestions($search, 25, false);
|
||||
$suggestions = $this->customer->get_search_suggestions($this->request->getPost('term'), 25, false);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -185,7 +183,14 @@ class Customers extends Persons
|
||||
$data['packages'] = $packages;
|
||||
$data['selected_package'] = $info->package_id;
|
||||
|
||||
$data['use_destination_based_tax'] = $this->config['use_destination_based_tax'];
|
||||
if($this->config['use_destination_based_tax']) //TODO: This can be shortened for ternary notation
|
||||
{
|
||||
$data['use_destination_based_tax'] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['use_destination_based_tax'] = false;
|
||||
}
|
||||
|
||||
// retrieve the total amount the customer spent so far together with min, max and average values
|
||||
$stats = $this->customer->get_stats($customer_id);
|
||||
@@ -412,7 +417,7 @@ class Customers extends Persons
|
||||
*/
|
||||
public function getCsv(): DownloadResponse
|
||||
{
|
||||
$name = 'importCustomers.csv';
|
||||
$name = 'import_customers.csv';
|
||||
$data = file_get_contents(WRITEPATH . "uploads/$name");
|
||||
return $this->response->download($name, $data);
|
||||
}
|
||||
@@ -532,5 +537,4 @@ class Customers extends Persons
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Module;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -27,10 +26,10 @@ class Employees extends Persons
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(PERSON_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'people.person_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$employees = $this->employee->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -52,8 +51,7 @@ class Employees extends Persons
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->employee->get_search_suggestions($search, 25, true);
|
||||
$suggestions = $this->employee->get_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 25, true);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -63,8 +61,7 @@ class Employees extends Persons
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->employee->get_search_suggestions($search);
|
||||
$suggestions = $this->employee->get_search_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ namespace App\Controllers;
|
||||
use App\Models\Expense;
|
||||
use App\Models\Expense_category;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
|
||||
class Expenses extends Secure_Controller
|
||||
{
|
||||
@@ -45,10 +44,10 @@ class Expenses extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(EXPENSE_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'expense_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$filters = [
|
||||
'start_date' => $this->request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
@@ -192,6 +191,19 @@ class Expenses extends Secure_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the expense amount for validity. Used in app\Views\expenses\form.php
|
||||
*
|
||||
* @return void
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function ajax_check_amount(): void
|
||||
{
|
||||
$value = $this->request->getPost();
|
||||
$parsed_value = filter_var(prepare_decimal(array_pop($value)), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
echo json_encode (['success' => $parsed_value !== false]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Expense_category;
|
||||
use Config\Services;
|
||||
|
||||
class Expenses_categories extends Secure_Controller //TODO: Is this class ever used?
|
||||
{
|
||||
@@ -31,10 +30,10 @@ class Expenses_categories extends Secure_Controller //TODO: Is this class ever u
|
||||
**/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(EXPENSE_CATEGORY_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'expense_category_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$expense_categories = $this->expense_category->search($search, $limit, $offset, $sort, $order);
|
||||
|
||||
@@ -4,7 +4,6 @@ namespace App\Controllers;
|
||||
|
||||
use App\Models\Giftcard;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
|
||||
class Giftcards extends Secure_Controller
|
||||
{
|
||||
@@ -32,10 +31,10 @@ class Giftcards extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(GIFTCARD_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'giftcard_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$giftcards = $this->giftcard->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -58,8 +57,7 @@ class Giftcards extends Secure_Controller
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->giftcard->get_search_suggestions($search, true);
|
||||
$suggestions = $this->giftcard->get_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS), true);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -69,8 +67,7 @@ class Giftcards extends Secure_Controller
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->giftcard->get_search_suggestions($search);
|
||||
$suggestions = $this->giftcard->get_search_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -172,9 +169,9 @@ class Giftcards extends Secure_Controller
|
||||
*/
|
||||
public function postCheckNumberGiftcard(): void
|
||||
{
|
||||
$giftcard_amount = parse_decimals($this->request->getPost('giftcard_amount'));
|
||||
$giftcard_amount = prepare_decimal($this->request->getPost('giftcard_amount'));
|
||||
$parsed_value = filter_var($giftcard_amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
echo json_encode (['success' => $parsed_value !== false && $parsed_value > 0 && $giftcard_amount !== false, 'giftcard_amount' => to_currency_no_money($parsed_value)]);
|
||||
echo json_encode (['success' => $parsed_value !== false, 'giftcard_amount' => to_currency_no_money($parsed_value)]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,7 +7,6 @@ use App\Libraries\Barcode_lib;
|
||||
use App\Models\Item;
|
||||
use App\Models\Item_kit;
|
||||
use App\Models\Item_kit_items;
|
||||
use Config\Services;
|
||||
|
||||
class Item_kits extends Secure_Controller
|
||||
{
|
||||
@@ -76,10 +75,10 @@ class Item_kits extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search') ?? '';
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? '';
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(ITEM_KIT_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'item_kit_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$item_kits = $this->item_kit->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -101,8 +100,7 @@ class Item_kits extends Secure_Controller
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->item_kit->get_search_suggestions($search);
|
||||
$suggestions = $this->item_kit->get_search_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
@@ -95,10 +95,10 @@ class Items extends Secure_Controller
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(ITEM_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'item_id');
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit');
|
||||
$offset = $this->request->getGet('offset');
|
||||
$sort = $this->request->getGet('sort');
|
||||
$order = $this->request->getGet('order');
|
||||
|
||||
$this->item_lib->set_item_location($this->request->getGet('stock_location'));
|
||||
|
||||
@@ -182,8 +182,7 @@ class Items extends Secure_Controller
|
||||
'is_deleted' => $this->request->getPost('is_deleted') !== null
|
||||
];
|
||||
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->item->get_search_suggestions($search, $options);
|
||||
$suggestions = $this->item->get_search_suggestions($this->request->getPostGet('term'), $options);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -195,8 +194,7 @@ class Items extends Secure_Controller
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->item->get_search_suggestions($search, ['search_custom' => false, 'is_deleted' => false], true);
|
||||
$suggestions = $this->item->get_search_suggestions($this->request->getGet('term'), ['search_custom' => false, 'is_deleted' => false], true);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -267,16 +265,18 @@ class Items extends Secure_Controller
|
||||
* @param int $item_id
|
||||
* @return void
|
||||
*/
|
||||
public function getView(int $item_id = NEW_ENTRY): void //TODO: Long function. Perhaps we need to refactor out some methods.
|
||||
public function getView(int $item_id = NEW_ENTRY): void //TODO: Super long function. Perhaps we need to refactor out some methods.
|
||||
{
|
||||
$item_id ??= NEW_ENTRY;
|
||||
// Set default values
|
||||
if($item_id == null) $item_id = NEW_ENTRY;
|
||||
|
||||
if($item_id === NEW_ENTRY)
|
||||
{
|
||||
$data = [];
|
||||
}
|
||||
|
||||
$data['allow_temp_item'] = $this->session->get('allow_temp_items'); //allow_temp_items is set in the index function of items.php or sales.php
|
||||
//allow_temp_items is set in the index function of items.php or sales.php
|
||||
$data['allow_temp_item'] = $this->session->get('allow_temp_items');
|
||||
$data['item_tax_info'] = $this->item_taxes->get_info($item_id);
|
||||
$data['default_tax_1_rate'] = '';
|
||||
$data['default_tax_2_rate'] = '';
|
||||
@@ -314,7 +314,7 @@ class Items extends Secure_Controller
|
||||
|
||||
$item_info->receiving_quantity = 1;
|
||||
$item_info->reorder_level = 1;
|
||||
$item_info->item_type = ITEM; //Standard
|
||||
$item_info->item_type = ITEM; //Standard
|
||||
$item_info->item_id = $item_id;
|
||||
$item_info->stock_type = HAS_STOCK;
|
||||
$item_info->tax_category_id = null;
|
||||
@@ -346,9 +346,14 @@ class Items extends Secure_Controller
|
||||
$data['suppliers'] = $suppliers;
|
||||
$data['selected_supplier'] = $item_info->supplier_id;
|
||||
|
||||
$data['hsn_code'] = $data['include_hsn']
|
||||
? $item_info->hsn_code
|
||||
: '';
|
||||
if($data['include_hsn']) //TODO: Transform this to ternary notation
|
||||
{
|
||||
$data['hsn_code'] = $item_info->hsn_code;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['hsn_code'] = '';
|
||||
}
|
||||
|
||||
if($use_destination_based_tax)
|
||||
{
|
||||
@@ -398,6 +403,7 @@ class Items extends Secure_Controller
|
||||
$data['image_path'] = '';
|
||||
}
|
||||
|
||||
|
||||
$stock_locations = $this->stock_location->get_undeleted_all()->getResultArray();
|
||||
|
||||
foreach($stock_locations as $location)
|
||||
@@ -513,8 +519,6 @@ class Items extends Secure_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Gathers attribute value information for an item and returns it in a view.
|
||||
*
|
||||
* @param int $item_id
|
||||
* @return void
|
||||
*/
|
||||
@@ -765,7 +769,23 @@ class Items extends Secure_Controller
|
||||
$success &= $this->inventory->insert($inv_data, false);
|
||||
}
|
||||
}
|
||||
$this->saveItemAttributes($item_id);
|
||||
|
||||
// Save item attributes
|
||||
$attribute_links = $this->request->getPost('attribute_links') ?? [];
|
||||
$attribute_ids = $this->request->getPost('attribute_ids');
|
||||
|
||||
$this->attribute->delete_link($item_id);
|
||||
|
||||
foreach($attribute_links as $definition_id => $attribute_value)
|
||||
{
|
||||
$definition_type = $this->attribute->get_info($definition_id)->definition_type;
|
||||
|
||||
$attribute_id = $definition_type === DROPDOWN
|
||||
? $attribute_value
|
||||
: $this->attribute->save_value($attribute_value, $definition_id, $item_id, $attribute_ids[$definition_id], $definition_type);
|
||||
|
||||
$this->attribute->save_link($item_id, $definition_id, $attribute_id);
|
||||
}
|
||||
|
||||
if($success && $upload_success)
|
||||
{
|
||||
@@ -1102,9 +1122,7 @@ class Items extends Secure_Controller
|
||||
}
|
||||
|
||||
//Remove false, null, '' and empty strings but keep 0
|
||||
$item_data = array_filter($item_data, function($value) {
|
||||
return $value !== null && strlen($value);
|
||||
});
|
||||
$item_data = array_filter($item_data, 'strlen');
|
||||
|
||||
if(!$is_failed_row && $this->item->save_value($item_data, $item_id))
|
||||
{
|
||||
@@ -1307,15 +1325,15 @@ class Items extends Secure_Controller
|
||||
*/
|
||||
private function store_attribute_value(string $value, array $attribute_data, int $item_id)
|
||||
{
|
||||
$attribute_id = $this->attribute->attributeValueExists($value, $attribute_data['definition_type']);
|
||||
$attribute_id = $this->attribute->value_exists($value, $attribute_data['definition_type']);
|
||||
|
||||
$this->attribute->deleteAttributeLinks($item_id, $attribute_data['definition_id']);
|
||||
$this->attribute->delete_link($item_id, $attribute_data['definition_id']);
|
||||
|
||||
if(!$attribute_id)
|
||||
{
|
||||
$attribute_id = $this->attribute->saveAttributeValue($value, $attribute_data['definition_id'], $item_id, false, $attribute_data['definition_type']);
|
||||
$attribute_id = $this->attribute->save_value($value, $attribute_data['definition_id'], $item_id, false, $attribute_data['definition_type']);
|
||||
}
|
||||
else if(!$this->attribute->saveAttributeLink($item_id, $attribute_data['definition_id'], $attribute_id))
|
||||
else if(!$this->attribute->save_link($item_id, $attribute_data['definition_id'], $attribute_id))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -1423,38 +1441,4 @@ class Items extends Secure_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves item attributes for a given item.
|
||||
*
|
||||
* @param int $itemId The item for which attributes need to be saved to.
|
||||
* @return void
|
||||
*/
|
||||
public function saveItemAttributes(int $itemId): void
|
||||
{
|
||||
$attributeLinks = $this->request->getPost('attribute_links') ?? [];
|
||||
$attributeIds = $this->request->getPost('attribute_ids');
|
||||
|
||||
$this->attribute->deleteAttributeLinks($itemId);
|
||||
|
||||
foreach($attributeLinks as $definitionId => $attributeValue)
|
||||
{
|
||||
$definitionType = $this->attribute->getAttributeInfo($definitionId)->definition_type;
|
||||
|
||||
switch($definitionType)
|
||||
{
|
||||
case DROPDOWN:
|
||||
$attributeId = $attributeValue;
|
||||
break;
|
||||
case DECIMAL:
|
||||
$attributeValue = prepare_decimal($attributeValue);
|
||||
//Fall through to save the attribute value
|
||||
default:
|
||||
$attributeId = $this->attribute->saveAttributeValue($attributeValue, $definitionId, $itemId, $attributeIds[$definitionId], $definitionType);
|
||||
break;
|
||||
}
|
||||
|
||||
$this->attribute->saveAttributeLink($itemId, $definitionId, $attributeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Person;
|
||||
use Config\Services;
|
||||
use function Tamtamchik\NameCase\str_name_case;
|
||||
|
||||
abstract class Persons extends Secure_Controller
|
||||
@@ -35,8 +34,7 @@ abstract class Persons extends Secure_Controller
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->person->get_search_suggestions($search);
|
||||
$suggestions = $this->person->get_search_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -65,7 +63,7 @@ abstract class Persons extends Secure_Controller
|
||||
{
|
||||
$adjusted_name = str_name_case($input);
|
||||
|
||||
//TODO:Use preg_replace to match HTML entities and convert them to lowercase. This is a workaround for https://github.com/tamtamchik/namecase/issues/20
|
||||
// Use preg_replace to match HTML entities and convert them to lowercase.
|
||||
return preg_replace_callback('/&[a-zA-Z0-9#]+;/', function($matches) { return strtolower($matches[0]); }, $adjusted_name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ use App\Models\Receiving;
|
||||
use App\Models\Stock_location;
|
||||
use App\Models\Supplier;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
use ReflectionException;
|
||||
|
||||
class Receivings extends Secure_Controller
|
||||
@@ -61,9 +60,8 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function getItemSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->item->get_search_suggestions($search, ['search_custom' => false, 'is_deleted' => false], true);
|
||||
$suggestions = array_merge($suggestions, $this->item_kit->get_search_suggestions($search));
|
||||
$suggestions = $this->item->get_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS), ['search_custom' => false, 'is_deleted' => false], true);
|
||||
$suggestions = array_merge($suggestions, $this->item_kit->get_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS)));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -76,9 +74,8 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function getStockItemSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->item->get_stock_search_suggestions($search, ['search_custom' => false, 'is_deleted' => false], true);
|
||||
$suggestions = array_merge($suggestions, $this->item_kit->get_search_suggestions($search));
|
||||
$suggestions = $this->item->get_stock_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS), ['search_custom' => false, 'is_deleted' => false], true);
|
||||
$suggestions = array_merge($suggestions, $this->item_kit->get_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS)));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ use App\Models\Stock_location;
|
||||
use App\Models\Tokens\Token_invoice_count;
|
||||
use App\Models\Tokens\Token_customer;
|
||||
use App\Models\Tokens\Token_invoice_sequence;
|
||||
use Config\Services;
|
||||
use CodeIgniter\Config\Services;
|
||||
use Config\OSPOS;
|
||||
use ReflectionException;
|
||||
use stdClass;
|
||||
@@ -136,7 +136,7 @@ class Sales extends Secure_Controller
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(SALES_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'sale_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$filters = [
|
||||
@@ -185,9 +185,7 @@ class Sales extends Secure_Controller
|
||||
public function getItemSearch(): void
|
||||
{
|
||||
$suggestions = [];
|
||||
$receipt = $search = $this->request->getGet('term') != ''
|
||||
? $this->request->getGet('term')
|
||||
: null;
|
||||
$receipt = $search = $this->request->getGet('term') != '' ? $this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS) : null;
|
||||
|
||||
if($this->sale_lib->get_mode() == 'return' && $this->sale->is_valid_receipt($receipt))
|
||||
{
|
||||
@@ -205,9 +203,7 @@ class Sales extends Secure_Controller
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getPost('term') != ''
|
||||
? $this->request->getPost('term')
|
||||
: null;
|
||||
$search = $this->request->getPost('term') != '' ? $this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS) : null;
|
||||
|
||||
$suggestions = $this->sale->get_search_suggestions($search);
|
||||
|
||||
@@ -360,7 +356,7 @@ class Sales extends Secure_Controller
|
||||
*/
|
||||
public function postSetPrintAfterSale(): void
|
||||
{
|
||||
$this->sale_lib->set_print_after_sale($this->request->getPost('sales_print_after_sale') != 'false');
|
||||
$this->sale_lib->set_print_after_sale($this->request->getPost('sales_print_after_sale') != null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -633,9 +629,9 @@ class Sales extends Secure_Controller
|
||||
$data = [];
|
||||
|
||||
$rules = [
|
||||
'price' => 'trim|required|decimal_locale',
|
||||
'quantity' => 'trim|required|decimal_locale',
|
||||
'discount' => 'trim|permit_empty|decimal_locale',
|
||||
'price' => 'trim|required|numeric',
|
||||
'quantity' => 'trim|required|numeric',
|
||||
'discount' => 'trim|permit_empty|numeric',
|
||||
];
|
||||
|
||||
if($this->validate($rules))
|
||||
@@ -750,7 +746,7 @@ class Sales extends Secure_Controller
|
||||
$data['invoice_number_enabled'] = $this->sale_lib->is_invoice_mode();
|
||||
$data['cur_giftcard_value'] = $this->sale_lib->get_giftcard_remainder();
|
||||
$data['cur_rewards_value'] = $this->sale_lib->get_rewards_remainder();
|
||||
$data['print_after_sale'] = $this->session->get('sales_print_after_sale');
|
||||
$data['print_after_sale'] = $this->sale_lib->is_print_after_sale();
|
||||
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
|
||||
$data['email_receipt'] = $this->sale_lib->is_email_receipt();
|
||||
$customer_id = $this->sale_lib->get_customer();
|
||||
@@ -1532,7 +1528,7 @@ class Sales extends Secure_Controller
|
||||
* @param int $sale_id
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function postSave(int $sale_id = NEW_ENTRY): void
|
||||
public function save(int $sale_id = NEW_ENTRY): void
|
||||
{
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
@@ -1549,6 +1545,7 @@ class Sales extends Secure_Controller
|
||||
];
|
||||
|
||||
// In order to maintain tradition the only element that can change on prior payments is the payment type
|
||||
$payments = [];
|
||||
$amount_tendered = 0;
|
||||
$number_of_payments = $this->request->getPost('number_of_payments', FILTER_SANITIZE_NUMBER_INT);
|
||||
for($i = 0; $i < $number_of_payments; ++$i)
|
||||
@@ -1578,7 +1575,7 @@ class Sales extends Secure_Controller
|
||||
$cash_refund = 0.00;
|
||||
}
|
||||
|
||||
$sale_data['payments'][] = [
|
||||
$sale_data['payments'] = [
|
||||
'payment_id' => $payment_id,
|
||||
'payment_type' => $payment_type,
|
||||
'payment_amount' => $payment_amount,
|
||||
@@ -1589,12 +1586,13 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
|
||||
$payment_id = NEW_ENTRY;
|
||||
$payment_amount_new = $this->request->getPost('payment_amount_new');
|
||||
$payment_amount_new = prepare_decimal($this->request->getPost('payment_amount_new'));
|
||||
|
||||
$payment_amount = filter_var($payment_amount_new, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$payment_type = $this->request->getPost('payment_type_new', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
if($payment_type != PAYMENT_TYPE_UNASSIGNED && !empty($payment_amount_new))
|
||||
if($payment_type != PAYMENT_TYPE_UNASSIGNED && $payment_amount <> 0)
|
||||
{
|
||||
$payment_amount = filter_var(prepare_decimal($payment_amount_new), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$cash_refund = 0;
|
||||
if($payment_type == lang('Sales.cash_adjustment'))
|
||||
{
|
||||
@@ -1612,7 +1610,7 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
}
|
||||
|
||||
$sale_data['payments'][] = [
|
||||
$sale_data['payments'] = [
|
||||
'payment_id' => $payment_id,
|
||||
'payment_type' => $payment_type,
|
||||
'payment_amount' => $payment_amount,
|
||||
|
||||
@@ -82,11 +82,6 @@ class Secure_Controller extends BaseController
|
||||
view('viewData', $this->global_view_data);
|
||||
}
|
||||
|
||||
public function sanitizeSortColumn($headers, $field, $default): string
|
||||
{
|
||||
return $field != null && in_array($field, array_keys(array_merge(...$headers))) ? $field : $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX function used to confirm whether values sent in the request are numeric
|
||||
* @return void
|
||||
@@ -94,15 +89,14 @@ class Secure_Controller extends BaseController
|
||||
*/
|
||||
public function getCheckNumeric(): void
|
||||
{
|
||||
$result = true;
|
||||
|
||||
foreach($this->request->getGet(null, FILTER_SANITIZE_FULL_SPECIAL_CHARS) as $value)
|
||||
{
|
||||
if (parse_decimals($value) === false)
|
||||
{
|
||||
echo 'false';
|
||||
return;
|
||||
}
|
||||
$result &= (int)parse_decimals($value);
|
||||
}
|
||||
echo 'true';
|
||||
|
||||
echo $result !== false ? 'true' : 'false';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Supplier;
|
||||
use Config\Services;
|
||||
|
||||
class Suppliers extends Persons
|
||||
{
|
||||
@@ -45,10 +44,10 @@ class Suppliers extends Persons
|
||||
**/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->sanitizeSortColumn(SUPPLIER_HEADERS, $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'people.person_id');
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$suppliers = $this->supplier->search($search, $limit, $offset, $sort, $order);
|
||||
@@ -71,8 +70,7 @@ class Suppliers extends Persons
|
||||
**/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->supplier->get_search_suggestions($search, true);
|
||||
$suggestions = $this->supplier->get_search_suggestions($this->request->getGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS), true);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -82,8 +80,7 @@ class Suppliers extends Persons
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->supplier->get_search_suggestions($search, false);
|
||||
$suggestions = $this->supplier->get_search_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS), false);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Tax_category;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
* @property tax_category tax_category
|
||||
@@ -36,7 +35,7 @@ class Tax_categories extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Tax_code;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
* @property tax_code tax_code
|
||||
@@ -46,7 +45,7 @@ class Tax_codes extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
use App\Models\Tax_jurisdiction;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
* @property tax_jurisdiction tax_jurisdiction
|
||||
@@ -39,7 +38,7 @@ class Tax_jurisdictions extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
@@ -9,7 +9,6 @@ use App\Models\Tax_category;
|
||||
use App\Models\Tax_code;
|
||||
use App\Models\Tax_jurisdiction;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
|
||||
class Taxes extends Secure_Controller
|
||||
{
|
||||
@@ -83,7 +82,7 @@ class Taxes extends Secure_Controller
|
||||
*/
|
||||
public function getSearch(): void
|
||||
{
|
||||
$search = $this->request->getGet('search');
|
||||
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
|
||||
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
|
||||
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
@@ -107,8 +106,7 @@ class Taxes extends Secure_Controller
|
||||
*/
|
||||
public function suggest_search(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->tax->get_search_suggestions($search); //TODO: There is no get_search_suggestions function in the tax model
|
||||
$suggestions = $this->tax->get_search_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS)); //TODO: There is no get_search_suggestions function in the tax model
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -120,8 +118,7 @@ class Taxes extends Secure_Controller
|
||||
*/
|
||||
public function suggest_tax_categories(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$suggestions = $this->tax_category->get_tax_category_suggestions($search);
|
||||
$suggestions = $this->tax_category->get_tax_category_suggestions($this->request->getPost('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -461,8 +458,7 @@ class Taxes extends Secure_Controller
|
||||
*/
|
||||
public function getSuggestTaxCodes(): void
|
||||
{
|
||||
$search = $this->request->getPostGet('term');
|
||||
$suggestions = $this->tax_code->get_tax_codes_search_suggestions($search);
|
||||
$suggestions = $this->tax_code->get_tax_codes_search_suggestions($this->request->getPostGet('term', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
|
||||
@@ -153,14 +153,7 @@ class Migration_Sales_Tax_Data extends Migration
|
||||
. $this->db->prefixTable('sales_taxes')
|
||||
. ' as ST ON SIT.sale_id = ST.sale_id WHERE ST.sale_id is null GROUP BY SIT.sale_id, ST.sale_id'
|
||||
. ' ORDER BY SIT.sale_id) as US')->getResultArray();
|
||||
|
||||
if(!$result)
|
||||
{
|
||||
error_log('Database error in 20170502221506_sales_tax_data.php related to sales_taxes or sales_items_taxes.');
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $result[0]['COUNT(*)'] ?: 0;
|
||||
return $result[0]['COUNT(*)'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -133,14 +133,7 @@ class Migration_TaxAmount extends Migration
|
||||
. ' as ST ON SIT.sale_id = ST.sale_id GROUP BY SIT.sale_id, ST.sale_id'
|
||||
. ' ORDER BY SIT.sale_id) as US')->getResultArray();
|
||||
|
||||
if(!$result)
|
||||
{
|
||||
error_log('Database error in 20200202000000_taxamount.php related to sales_taxes or sales_items_taxes.');
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
return $result[0]['COUNT(*)'] ?: 0;
|
||||
return $result[0]['COUNT(*)'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,6 @@ namespace App\Database\Migrations;
|
||||
use CodeIgniter\Database\Migration;
|
||||
use CodeIgniter\Database\ResultInterface;
|
||||
use App\Models\Attribute;
|
||||
use Config\Database;
|
||||
use Config\OSPOS;
|
||||
use DateTime;
|
||||
|
||||
@@ -29,12 +28,12 @@ class Migration_database_optimizations extends Migration
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->select('attribute_id, attribute_value, attribute_decimal, attribute_date');
|
||||
$builder->groupStart();
|
||||
$builder->where('attribute_value IS NOT NULL');
|
||||
$builder->where('attribute_date IS NOT NULL');
|
||||
$builder->where('attribute_value IS NOT NULL');
|
||||
$builder->where('attribute_date IS NOT NULL');
|
||||
$builder->groupEnd();
|
||||
$builder->orGroupStart();
|
||||
$builder->where('attribute_value IS NOT NULL');
|
||||
$builder->where('attribute_decimal IS NOT NULL');
|
||||
$builder->where('attribute_value IS NOT NULL');
|
||||
$builder->where('attribute_decimal IS NOT NULL');
|
||||
$builder->groupEnd();
|
||||
$attribute_values = $builder->get();
|
||||
|
||||
@@ -46,40 +45,37 @@ class Migration_database_optimizations extends Migration
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->delete(['attribute_id' => $attribute_value['attribute_id']]);
|
||||
|
||||
//TODO: This should be converted to using CI4 QueryBuilder
|
||||
$query = 'SELECT links.definition_id, links.item_id, links.attribute_id, defs.definition_type'
|
||||
. ' FROM ospos_attribute_links links'
|
||||
. ' JOIN ospos_attribute_definitions defs ON defs.definition_id = links.definition_id'
|
||||
. ' WHERE attribute_id = ' . $attribute_value['attribute_id'];
|
||||
$attribute_links = $this->db->query($query);
|
||||
|
||||
$builder = $this->db->table('attribute_links');
|
||||
$builder->select('links.definition_id, links.item_id, links.attribute_id, defs.definition_type');
|
||||
$builder->join('attribute_definitions defs', 'defs.definition_id = links.definition_id');
|
||||
$builder->where('attribute_id', $attribute_value['attribute_id']);
|
||||
$attribute_links = $builder->get();
|
||||
|
||||
if($attribute_links)
|
||||
foreach($attribute_links->getResultArray() as $attribute_link)
|
||||
{
|
||||
$builder = $this->db->table('attribute_links');
|
||||
$attribute_links = $attribute_links->getResultArray() ?: [];
|
||||
$builder->where('attribute_id', $attribute_link['attribute_id']);
|
||||
$builder->where('item_id', $attribute_link['item_id']);
|
||||
$builder->delete();
|
||||
|
||||
foreach($attribute_links->getResultArray() as $attribute_link)
|
||||
switch($attribute_link['definition_type'])
|
||||
{
|
||||
$builder->where('attribute_id', $attribute_link['attribute_id']);
|
||||
$builder->where('item_id', $attribute_link['item_id']);
|
||||
$builder->delete();
|
||||
|
||||
switch($attribute_link['definition_type'])
|
||||
{
|
||||
case DECIMAL:
|
||||
$value = $attribute_value['attribute_decimal'];
|
||||
break;
|
||||
case DATE:
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$attribute_date = DateTime::createFromFormat('Y-m-d', $attribute_value['attribute_date']);
|
||||
$value = $attribute_date->format($config['dateformat']);
|
||||
break;
|
||||
default:
|
||||
$value = $attribute_value['attribute_value'];
|
||||
break;
|
||||
}
|
||||
|
||||
$attribute->saveAttributeValue($value, $attribute_link['definition_id'], $attribute_link['item_id'], false, $attribute_link['definition_type']);
|
||||
case DECIMAL:
|
||||
$value = $attribute_value['attribute_decimal'];
|
||||
break;
|
||||
case DATE:
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$attribute_date = DateTime::createFromFormat('Y-m-d', $attribute_value['attribute_date']);
|
||||
$value = $attribute_date->format($config['dateformat']);
|
||||
break;
|
||||
default:
|
||||
$value = $attribute_value['attribute_value'];
|
||||
break;
|
||||
}
|
||||
|
||||
$attribute->save_value($value, $attribute_link['definition_id'], $attribute_link['item_id'], false, $attribute_link['definition_type']);
|
||||
}
|
||||
}
|
||||
$this->db->transComplete();
|
||||
@@ -100,22 +96,15 @@ class Migration_database_optimizations extends Migration
|
||||
$column = 'attribute_' . strtolower($attribute_type);
|
||||
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->select("$column");
|
||||
$builder->select("$column, attribute_id");
|
||||
$builder->groupBy($column);
|
||||
$builder->having("COUNT($column) > 1");
|
||||
$duplicated_values = $builder->get();
|
||||
|
||||
foreach($duplicated_values->getResultArray() as $duplicated_value)
|
||||
{
|
||||
$subquery_builder = $this->db->table('attribute_values');
|
||||
$subquery_builder->select('attribute_id');
|
||||
$subquery_builder->where($column, $duplicated_value[$column]);
|
||||
$subquery = $subquery_builder->getCompiledSelect();
|
||||
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->select('attribute_id');
|
||||
$builder->where($column, $duplicated_value[$column]);
|
||||
$builder->where("attribute_id IN ($subquery)", null, false);
|
||||
$attribute_ids_to_fix = $builder->get();
|
||||
|
||||
$this->reassign_duplicate_attribute_values($attribute_ids_to_fix, $duplicated_value);
|
||||
@@ -132,18 +121,15 @@ class Migration_database_optimizations extends Migration
|
||||
*/
|
||||
private function reassign_duplicate_attribute_values(ResultInterface $attribute_ids_to_fix, array $attribute_value): void
|
||||
{
|
||||
$attribute_ids = $attribute_ids_to_fix->getResultArray();
|
||||
$retain_attribute_id = $attribute_ids[0]['attribute_id'];
|
||||
|
||||
foreach($attribute_ids as $attribute_id)
|
||||
foreach($attribute_ids_to_fix->getResultArray() as $attribute_id)
|
||||
{
|
||||
//Update attribute_link with the attribute_id we are keeping
|
||||
$builder = $this->db->table('attribute_links');
|
||||
$builder->where('attribute_id', $attribute_id['attribute_id']);
|
||||
$builder->update(['attribute_id' => $retain_attribute_id]);
|
||||
$builder->update(['attribute_id' => $attribute_value['attribute_id']]);
|
||||
|
||||
//Delete the row from attribute_values if it isn't our keeper
|
||||
if($attribute_id['attribute_id'] !== $retain_attribute_id)
|
||||
if($attribute_id['attribute_id'] !== $attribute_value['attribute_id'])
|
||||
{
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->delete(['attribute_id' => $attribute_id['attribute_id']]);
|
||||
|
||||
@@ -32,13 +32,14 @@ class Migration_remove_duplicate_links extends Migration
|
||||
$this->db->transStart();
|
||||
|
||||
$builder = $this->db->table('attribute_links');
|
||||
$builder->select('item_id, definition_id, attribute_id, COUNT(*) as count');
|
||||
$builder->where('sale_id', null);
|
||||
$builder->where('receiving_id', null);
|
||||
$builder->groupBy('item_id');
|
||||
$builder->groupBy('definition_id');
|
||||
$builder->groupBy('attribute_id');
|
||||
$builder->having('count > 1');
|
||||
$builder->having('COUNT(item_id) > 1');
|
||||
$builder->having('COUNT(definition_id) > 1');
|
||||
$builder->having('COUNT(attribute_id) > 1');
|
||||
$duplicated_links = $builder->get();
|
||||
|
||||
$builder = $this->db->table('attribute_links');
|
||||
@@ -51,7 +52,7 @@ class Migration_remove_duplicate_links extends Migration
|
||||
$builder->where('definition_id', $duplicated_link['definition_id']);
|
||||
$builder->delete();
|
||||
|
||||
$attribute->saveAttributeLink($duplicated_link['item_id'], $duplicated_link['definition_id'], $duplicated_link['attribute_id']);
|
||||
$attribute->save_link($duplicated_link['item_id'], $duplicated_link['definition_id'], $duplicated_link['attribute_id']);
|
||||
}
|
||||
|
||||
$this->db->transComplete();
|
||||
|
||||
@@ -3,28 +3,18 @@
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
use Config\Database;
|
||||
|
||||
class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
|
||||
private array $constraints;
|
||||
|
||||
class Migration_fix_keys_for_db_upgrade extends Migration
|
||||
{
|
||||
/**
|
||||
* Perform a migration step.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$this->db->query("ALTER TABLE `ospos_tax_codes` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;");
|
||||
|
||||
if (!$this->index_exists('ospos_customers', 'company_name'))
|
||||
{
|
||||
$this->db->query("ALTER TABLE `ospos_customers` ADD INDEX(`company_name`)");
|
||||
}
|
||||
|
||||
$checkSql = "SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND TABLE_NAME = '" . $this->db->prefixTable('sales_items_taxes') . "' AND CONSTRAINT_NAME = 'ospos_sales_items_taxes_ibfk_1'";
|
||||
$foreignKeyExists = $this->db->query($checkSql)->getRow();
|
||||
|
||||
if ($foreignKeyExists)
|
||||
if($foreignKeyExists)
|
||||
{
|
||||
$this->db->query('ALTER TABLE ' . $this->db->prefixTable('sales_items_taxes') . ' DROP FOREIGN KEY ospos_sales_items_taxes_ibfk_1');
|
||||
}
|
||||
@@ -32,11 +22,6 @@ class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
$this->db->query('ALTER TABLE ' . $this->db->prefixTable('sales_items_taxes')
|
||||
. ' ADD CONSTRAINT ospos_sales_items_taxes_ibfk_1 FOREIGN KEY (sale_id, item_id, line) '
|
||||
. ' REFERENCES ' . $this->db->prefixTable('sales_items') . ' (sale_id, item_id, line)');
|
||||
|
||||
|
||||
$this->create_primary_key('customers', 'person_id');
|
||||
$this->create_primary_key('employees', 'person_id');
|
||||
$this->create_primary_key('suppliers', 'person_id');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -47,7 +32,7 @@ class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
$checkSql = "SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND TABLE_NAME = '" . $this->db->prefixTable('sales_items_taxes') . "' AND CONSTRAINT_NAME = 'ospos_sales_items_taxes_ibfk_1'";
|
||||
$foreignKeyExists = $this->db->query($checkSql)->getRow();
|
||||
|
||||
if ($foreignKeyExists)
|
||||
if($foreignKeyExists)
|
||||
{
|
||||
$this->db->query('ALTER TABLE ' . $this->db->prefixTable('sales_items_taxes') . ' DROP CONSTRAINT ospos_sales_items_taxes_ibfk_1');
|
||||
}
|
||||
@@ -56,107 +41,4 @@ class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
. ' ADD CONSTRAINT ospos_sales_items_taxes_ibfk_1 FOREIGN KEY (sale_id) '
|
||||
. ' REFERENCES ' . $this->db->prefixTable('sales_items') . ' (sale_id)');
|
||||
}
|
||||
|
||||
private function create_primary_key(string $table, string $index): void
|
||||
{
|
||||
$result = $this->db->query('SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name= \'' . $this->db->getPrefix() . "$table' AND column_key = '$index'");
|
||||
|
||||
if ( ! $result->getRowArray())
|
||||
{
|
||||
$constraintsDropped = $this->delete_index($table, $index);
|
||||
|
||||
$forge = Database::forge();
|
||||
$forge->addPrimaryKey($table, '');
|
||||
|
||||
if($constraintsDropped)
|
||||
{
|
||||
$this->recreateConstraints($table, $index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function index_exists(string $table, string $index): bool
|
||||
{
|
||||
$result = $this->db->query('SELECT COUNT(*) FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = \'' . $this->db->getPrefix() . "$table' AND index_name = '$index'");
|
||||
$row_array = $result->getRowArray();
|
||||
return $row_array && $row_array['COUNT(*)'] > 0;
|
||||
}
|
||||
|
||||
private function delete_index(string $table, string $index): bool
|
||||
{
|
||||
$constraintsDropped = false;
|
||||
if ($this->index_exists($table, $index))
|
||||
{
|
||||
$constraintsDropped = $this->dropConstraints($table, $index);
|
||||
$forge = Database::forge();
|
||||
$forge->dropKey($table, $index, FALSE);
|
||||
}
|
||||
|
||||
return $constraintsDropped;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if a foreign key constraint exists and drops it if it does.
|
||||
* @param string $table The table name to check for the constraint
|
||||
* @param string $index The index name to check for the constraint
|
||||
* @return void
|
||||
*/
|
||||
private function dropConstraints(string $table, string $index): bool
|
||||
{
|
||||
$sql = "SELECT
|
||||
kcu.CONSTRAINT_NAME,
|
||||
kcu.COLUMN_NAME,
|
||||
kcu.TABLE_NAME,
|
||||
kcu.REFERENCED_COLUMN_NAME,
|
||||
kcu.REFERENCED_TABLE_NAME,
|
||||
rc.UPDATE_RULE,
|
||||
rc.DELETE_RULE
|
||||
FROM information_schema.KEY_COLUMN_USAGE kcu
|
||||
JOIN information_schema.REFERENTIAL_CONSTRAINTS rc
|
||||
ON kcu.CONSTRAINT_NAME = rc.CONSTRAINT_NAME
|
||||
WHERE kcu.TABLE_SCHEMA = DATABASE()
|
||||
AND (kcu.REFERENCED_TABLE_NAME = '" . $this->db->getPrefix() . "$table'
|
||||
AND kcu.REFERENCED_COLUMN_NAME = '$index'
|
||||
OR kcu.TABLE_NAME = '" . $this->db->getPrefix() . "$table'
|
||||
AND kcu.COLUMN_NAME = '$index')
|
||||
";
|
||||
$query = $this->db->query($sql);
|
||||
$this->constraints = $query->getResult();
|
||||
|
||||
$constraintsDropped = false;
|
||||
foreach($this->constraints as $constraint)
|
||||
{
|
||||
$constraintName = $constraint->CONSTRAINT_NAME;
|
||||
$referencingTable = str_replace($this->db->getPrefix(), '', $constraint->TABLE_NAME);
|
||||
|
||||
$forge = Database::forge();
|
||||
if($forge->dropForeignKey($referencingTable, $constraintName))
|
||||
{
|
||||
$constraintsDropped = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $constraintsDropped;
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-creates the missing foreign key constraint which needed to be dropped in order to add the Primary Key
|
||||
* @return void
|
||||
*/
|
||||
private function recreateConstraints(): void
|
||||
{
|
||||
$forge = Database::forge();
|
||||
foreach($this->constraints as $constraint)
|
||||
{
|
||||
$index = $constraint->COLUMN_NAME;
|
||||
$table = str_replace($this->db->getPrefix(), '', $constraint->TABLE_NAME);
|
||||
$referencedTable = $constraint->REFERENCED_TABLE_NAME;
|
||||
$constraintName = $constraint->CONSTRAINT_NAME;
|
||||
$onUpdate = $constraint->UPDATE_RULE;
|
||||
$onDelete = $constraint->DELETE_RULE;
|
||||
|
||||
$forge->addForeignKey($index, $referencedTable, $index, $onUpdate, $onDelete, $constraintName);
|
||||
$forge->processIndexes($table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Database\Migrations;
|
||||
|
||||
use CodeIgniter\Database\Migration;
|
||||
use App\Models\Attribute;
|
||||
use CodeIgniter\Database\ResultInterface;
|
||||
|
||||
class fix_duplicate_attributes extends Migration
|
||||
{
|
||||
/**
|
||||
* Perform a migration step.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$rows_to_keep = $this->get_all_duplicate_attributes();
|
||||
$this->remove_duplicate_attributes($rows_to_keep);
|
||||
|
||||
helper('migration');
|
||||
|
||||
$this->drop_foreign_key_constraints();
|
||||
|
||||
execute_script(APPPATH . 'Database/Migrations/sqlscripts/3.4.0_attribute_links_unique_constraint.sql');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves from the database all rows where the item_id and definition_id are the same AND the sale_id/receiving_id is null.
|
||||
* It also excludes null item_id rows as those are dropdown items.
|
||||
*
|
||||
* @return ResultInterface Results containing item_id, definition_id and attribute_id in each row.
|
||||
*/
|
||||
private function get_all_duplicate_attributes(): ResultInterface
|
||||
{
|
||||
$builder = $this->db->table('attribute_links');
|
||||
$builder->select('item_id, definition_id, MIN(attribute_id) as attribute_id');
|
||||
$builder->where('sale_id IS NULL');
|
||||
$builder->where('receiving_id IS NULL');
|
||||
$builder->where('item_id IS NOT NULL');
|
||||
$builder->groupBy('item_id, definition_id');
|
||||
$builder->having('COUNT(attribute_id) > 1');
|
||||
return $builder->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the duplicate attributes from the database.
|
||||
*
|
||||
* @param ResultInterface $rows_to_keep A multidimensional associative array containing item_id, definition_id and attribute_id in each row which should be kept in the database.
|
||||
* @return void
|
||||
*/
|
||||
private function remove_duplicate_attributes(ResultInterface $rows_to_keep): void
|
||||
{
|
||||
$attribute = model(Attribute::class);
|
||||
foreach($rows_to_keep->getResult() as $row)
|
||||
{
|
||||
$attribute->deleteAttributeLinks($row->item_id, $row->definition_id); //Deletes all attribute links for the item_id/definition_id combination
|
||||
$attribute->saveAttributeLink($row->item_id, $row->definition_id, $row->attribute_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Drops the foreign key constraints from the attribute_links table.
|
||||
* This is required to successfully create the generated unique constraint.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function drop_foreign_key_constraints(): void
|
||||
{
|
||||
$foreignKeys = [
|
||||
'ospos_attribute_links_ibfk_1',
|
||||
'ospos_attribute_links_ibfk_2',
|
||||
'ospos_attribute_links_ibfk_3',
|
||||
'ospos_attribute_links_ibfk_4',
|
||||
'ospos_attribute_links_ibfk_5'
|
||||
];
|
||||
|
||||
$current_prefix = $this->db->getPrefix();
|
||||
$this->db->setPrefix('');
|
||||
$database_name = $this->db->database;
|
||||
|
||||
foreach ($foreignKeys as $fk)
|
||||
{
|
||||
$builder = $this->db->table('INFORMATION_SCHEMA.TABLE_CONSTRAINTS');
|
||||
$builder->select('CONSTRAINT_NAME');
|
||||
$builder->where('TABLE_SCHEMA', $database_name);
|
||||
$builder->where('TABLE_NAME', 'ospos_attribute_links');
|
||||
$builder->where('CONSTRAINT_TYPE', 'FOREIGN KEY');
|
||||
$builder->where('CONSTRAINT_NAME', $fk);
|
||||
$query = $builder->get();
|
||||
|
||||
if($query->getNumRows() > 0)
|
||||
{
|
||||
$this->db->query("ALTER TABLE `ospos_attribute_links` DROP FOREIGN KEY `$fk`");
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->setPrefix($current_prefix);
|
||||
}
|
||||
|
||||
/**
|
||||
* Revert a migration step.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# Prevents duplicate attribute links with the same definition_id and item_id.
|
||||
# This accounts for dropdown rows (null item_id) and rows associated with sales or receivings.
|
||||
ALTER TABLE `ospos_attribute_links`
|
||||
ADD COLUMN `generated_unique_column` VARCHAR(255) GENERATED ALWAYS AS (
|
||||
CASE
|
||||
WHEN `sale_id` IS NULL AND `receiving_id` IS NULL AND `item_id` IS NOT NULL THEN CONCAT(`definition_id`, '-', `item_id`)
|
||||
ELSE NULL
|
||||
END
|
||||
) STORED,
|
||||
ADD UNIQUE INDEX `attribute_links_uq3` (`generated_unique_column`);
|
||||
|
||||
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_1` FOREIGN KEY (`definition_id`) REFERENCES `ospos_attribute_definitions` (`definition_id`) ON DELETE RESTRICT;
|
||||
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_2` FOREIGN KEY (`attribute_id`) REFERENCES `ospos_attribute_values` (`attribute_id`) ON DELETE RESTRICT;
|
||||
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_3` FOREIGN KEY (`item_id`) REFERENCES `ospos_items` (`item_id`);
|
||||
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_4` FOREIGN KEY (`receiving_id`) REFERENCES `ospos_receivings` (`receiving_id`);
|
||||
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_5` FOREIGN KEY (`sale_id`) REFERENCES `ospos_sales` (`sale_id`);
|
||||
@@ -14,7 +14,3 @@ ALTER TABLE ospos_sessions ADD PRIMARY KEY (id, ip_address);
|
||||
UPDATE `ospos_app_config`
|
||||
SET `value` = REPLACE(value, '|', ',')
|
||||
WHERE `key` = 'image_allowed_types';
|
||||
|
||||
-- due to language rename, reset to english
|
||||
UPDATE `ospos_app_config` SET `value` = 'en' WHERE `key` = 'language_code' ;
|
||||
UPDATE `ospos_app_config` SET `value` = 'english' WHERE `key` = 'language' ;
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
#ospos_attribute_values table
|
||||
ALTER TABLE `ospos_attribute_values` ADD UNIQUE(`attribute_date`);
|
||||
ALTER TABLE `ospos_attribute_values` ADD UNIQUE(`attribute_decimal`);
|
||||
ALTER TABLE `ospos_attribute_values` ADD UNIQUE(`attribute_decimal`);
|
||||
|
||||
#opsos_attribute_definitions table
|
||||
ALTER TABLE `ospos_attribute_definitions` MODIFY `definition_flags` tinyint(1) NOT NULL;
|
||||
ALTER TABLE `ospos_attribute_definitions` ADD INDEX(`definition_name`);
|
||||
ALTER TABLE `ospos_attribute_definitions` ADD INDEX(`definition_name`);
|
||||
ALTER TABLE `ospos_attribute_definitions` ADD INDEX(`definition_type`);
|
||||
|
||||
#opsos_attribute_links table
|
||||
ALTER TABLE `ospos_attribute_links` ADD UNIQUE INDEX `attribute_links_uq2` (`item_id`,`sale_id`,`receiving_id`,`definition_id`,`attribute_id`);
|
||||
|
||||
#ospos_cash_up table
|
||||
ALTER TABLE `ospos_cash_up` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
|
||||
@@ -15,9 +18,12 @@ ALTER TABLE `ospos_customers` DROP FOREIGN KEY `ospos_customers_ibfk_1`;
|
||||
ALTER TABLE `ospos_customers_points` DROP FOREIGN KEY `ospos_customers_points_ibfk_1`;
|
||||
ALTER TABLE `ospos_sales` DROP FOREIGN KEY `ospos_sales_ibfk_2`;
|
||||
|
||||
DROP INDEX `person_id` ON `ospos_customers`;
|
||||
ALTER TABLE `ospos_customers` MODIFY `taxable` tinyint(1) DEFAULT 1 NOT NULL;
|
||||
ALTER TABLE `ospos_customers` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_customers` MODIFY `discount_type` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_customers` ADD PRIMARY KEY(`person_id`);
|
||||
ALTER TABLE `ospos_customers` ADD INDEX(`company_name`);
|
||||
|
||||
ALTER TABLE `ospos_customers` ADD CONSTRAINT `ospos_customers_ibfk_1` FOREIGN KEY (`person_id`) REFERENCES `ospos_people`(`person_id`);
|
||||
ALTER TABLE `ospos_customers_points` ADD CONSTRAINT `ospos_customers_points_ibfk_1` FOREIGN KEY (`person_id`) REFERENCES `ospos_customers` (`person_id`);
|
||||
@@ -41,8 +47,10 @@ ALTER TABLE `ospos_employees` DROP FOREIGN KEY `ospos_employees_ibfk_1`;
|
||||
ALTER TABLE `ospos_cash_up` DROP FOREIGN KEY `ospos_cash_up_ibfk_1`;
|
||||
ALTER TABLE `ospos_cash_up` DROP FOREIGN KEY `ospos_cash_up_ibfk_2`;
|
||||
|
||||
DROP INDEX `person_id` ON `ospos_employees`;
|
||||
ALTER TABLE `ospos_employees` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_employees` MODIFY `hash_version` tinyint(1) DEFAULT 2 NOT NULL;
|
||||
ALTER TABLE `ospos_employees` ADD PRIMARY KEY(`person_id`);
|
||||
|
||||
ALTER TABLE `ospos_sales_payments` ADD CONSTRAINT `ospos_sales_payments_ibfk_2` FOREIGN KEY (`employee_id`) REFERENCES `ospos_employees` (`person_id`);
|
||||
ALTER TABLE `ospos_sales` ADD CONSTRAINT `ospos_sales_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `ospos_employees` (`person_id`);
|
||||
@@ -67,7 +75,6 @@ ALTER TABLE `ospos_expense_categories` ADD INDEX(`category_description`);
|
||||
ALTER TABLE `ospos_giftcards` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
|
||||
#ospos_items table
|
||||
ALTER TABLE `ospos_items` DROP FOREIGN KEY `ospos_items_ibfk_1`;
|
||||
ALTER TABLE `ospos_items` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_items` MODIFY `stock_type` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_items` MODIFY `item_type` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
@@ -82,7 +89,7 @@ ALTER TABLE `ospos_item_kits` MODIFY `print_option` tinyint(1) DEFAULT 0 NOT NUL
|
||||
ALTER TABLE `ospos_item_kits` ADD INDEX(`name`,`description`);
|
||||
|
||||
#ospos_people table
|
||||
ALTER TABLE `ospos_people` ADD INDEX(`first_name`, `last_name`, `email`, `phone_number`);
|
||||
ALTER TABLE `ospos_people` ADD INDEX(`first_name`, `last_name`, `email`, `phone_number`);
|
||||
|
||||
#ospos_receivings_items
|
||||
ALTER TABLE `ospos_receivings_items` MODIFY `discount_type` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
@@ -105,7 +112,7 @@ ALTER TABLE `ospos_sales_taxes` MODIFY `print_sequence` tinyint(1) DEFAULT 0 NOT
|
||||
ALTER TABLE `ospos_sales_taxes` MODIFY `rounding_code` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
|
||||
#ospos_sessions table
|
||||
ALTER TABLE `ospos_sessions` ADD INDEX(`id`);
|
||||
ALTER TABLE `ospos_sessions` ADD INDEX(`id`);
|
||||
ALTER TABLE `ospos_sessions` ADD INDEX(`ip_address`);
|
||||
|
||||
#ospos_stock_locations table
|
||||
@@ -113,11 +120,14 @@ ALTER TABLE `ospos_stock_locations` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NU
|
||||
|
||||
#ospos_suppliers table
|
||||
ALTER TABLE `ospos_expenses` DROP FOREIGN KEY `ospos_expenses_ibfk_3`;
|
||||
ALTER TABLE `ospos_items` DROP FOREIGN KEY `ospos_items_ibfk_1`;
|
||||
ALTER TABLE `ospos_receivings` DROP FOREIGN KEY `ospos_receivings_ibfk_2`;
|
||||
ALTER TABLE `ospos_suppliers` DROP FOREIGN KEY `ospos_suppliers_ibfk_1`;
|
||||
|
||||
DROP INDEX `person_id` ON `ospos_suppliers`;
|
||||
ALTER TABLE `ospos_suppliers` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_suppliers` MODIFY `category` tinyint(1) NOT NULL;
|
||||
ALTER TABLE `ospos_suppliers` ADD PRIMARY KEY(`person_id`);
|
||||
ALTER TABLE `ospos_suppliers` ADD INDEX(`category`);
|
||||
ALTER TABLE `ospos_suppliers` ADD INDEX(`company_name`, `deleted`);
|
||||
|
||||
@@ -130,6 +140,9 @@ ALTER TABLE `ospos_suppliers` ADD CONSTRAINT `ospos_suppliers_ibfk_1` FOREIGN KE
|
||||
ALTER TABLE `ospos_tax_categories` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_tax_categories` MODIFY `tax_group_sequence` tinyint(1) NOT NULL;
|
||||
|
||||
#ospos_tax_codes table
|
||||
ALTER TABLE `ospos_tax_codes` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
|
||||
#ospos_tax_jurisdictions table
|
||||
ALTER TABLE `ospos_tax_jurisdictions` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
ALTER TABLE `ospos_tax_jurisdictions` MODIFY `tax_group_sequence` tinyint(1) DEFAULT 0 NOT NULL;
|
||||
|
||||
@@ -428,8 +428,7 @@ function to_quantity_decimals(?string $number): string
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a string to locale-specific number format for display.
|
||||
*
|
||||
* @param string|null $number
|
||||
* @param string|null $decimals
|
||||
* @param int $type
|
||||
* @return string
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
|
||||
use CodeIgniter\Encryption\Encryption;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
@@ -120,17 +119,3 @@ function remove_backup(): void
|
||||
}
|
||||
log_message('info', "File $backup_path has been removed");
|
||||
}
|
||||
|
||||
function purifyHtml($data)
|
||||
{
|
||||
if(is_array($data))
|
||||
{
|
||||
return array_map('purifyHtml', $data);
|
||||
}
|
||||
elseif(is_string($data))
|
||||
{
|
||||
return Services::HtmlPurifier()->purify($data);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ use App\Models\Tax_category;
|
||||
use CodeIgniter\Database\ResultInterface;
|
||||
use CodeIgniter\Session\Session;
|
||||
use Config\OSPOS;
|
||||
use Config\Services;
|
||||
|
||||
/**
|
||||
* Tabular views helper
|
||||
@@ -16,11 +15,11 @@ use Config\Services;
|
||||
/**
|
||||
* Basic tabular headers function
|
||||
*/
|
||||
function transform_headers_readonly(array $headers): string
|
||||
function transform_headers_readonly(array $array): string //TODO: $array needs to be refactored to a new name. Perhaps $headers?
|
||||
{
|
||||
$result = [];
|
||||
|
||||
foreach($headers as $key => $value)
|
||||
foreach($array as $key => $value)
|
||||
{
|
||||
$result[] = ['field' => $key, 'title' => $value, 'sortable' => $value != '', 'switchable' => !preg_match('(^$| )', $value)];
|
||||
}
|
||||
@@ -31,21 +30,21 @@ function transform_headers_readonly(array $headers): string
|
||||
/**
|
||||
* Basic tabular headers function
|
||||
*/
|
||||
function transform_headers(array $headers, bool $readonly = false, bool $editable = true): string //TODO: $array needs to be refactored to a new name. Perhaps $headers?
|
||||
function transform_headers(array $array, bool $readonly = false, bool $editable = true): string //TODO: $array needs to be refactored to a new name. Perhaps $headers?
|
||||
{
|
||||
$result = [];
|
||||
|
||||
if(!$readonly)
|
||||
{
|
||||
$headers = array_merge ([['checkbox' => 'select', 'sortable' => false]], $headers);
|
||||
$array = array_merge ([['checkbox' => 'select', 'sortable' => false]], $array);
|
||||
}
|
||||
|
||||
if($editable)
|
||||
{
|
||||
$headers[] = ['edit' => ''];
|
||||
$array[] = ['edit' => ''];
|
||||
}
|
||||
|
||||
foreach($headers as $element) //TODO: This might be clearer to refactor this to `foreach($headers as $header)`
|
||||
foreach($array as $element) //TODO: This might be clearer to refactor this to `foreach($headers as $header)`
|
||||
{
|
||||
reset($element);
|
||||
$result[] = [
|
||||
@@ -63,22 +62,20 @@ function transform_headers(array $headers, bool $readonly = false, bool $editabl
|
||||
return json_encode($result);
|
||||
}
|
||||
|
||||
define("SALES_HEADERS", [
|
||||
['sale_id' => lang('Common.id')],
|
||||
['sale_time' => lang('Sales.sale_time')],
|
||||
['customer_name' => lang('Customers.customer')],
|
||||
['amount_due' => lang('Sales.amount_due')],
|
||||
['amount_tendered' => lang('Sales.amount_tendered')],
|
||||
['change_due' => lang('Sales.change_due')],
|
||||
['payment_type' => lang('Sales.payment_type')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the sales tabular view
|
||||
*/
|
||||
function get_sales_manage_table_headers(): string
|
||||
{
|
||||
$headers = SALES_HEADERS;
|
||||
$headers = [
|
||||
['sale_id' => lang('Common.id')],
|
||||
['sale_time' => lang('Sales.sale_time')],
|
||||
['customer_name' => lang('Customers.customer')],
|
||||
['amount_due' => lang('Sales.amount_due')],
|
||||
['amount_tendered' => lang('Sales.amount_tendered')],
|
||||
['change_due' => lang('Sales.change_due')],
|
||||
['payment_type' => lang('Sales.payment_type')]
|
||||
];
|
||||
$config = config(OSPOS::class)->settings;
|
||||
|
||||
if($config['invoice_enable'])
|
||||
@@ -189,20 +186,18 @@ function get_sales_manage_payments_summary(array $payments): string
|
||||
return $table;
|
||||
}
|
||||
|
||||
define('PERSON_HEADERS', [
|
||||
['people.person_id' => lang('Common.id')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['email' => lang('Common.email')],
|
||||
['phone_number' => lang('Common.phone_number')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the people tabular view
|
||||
*/
|
||||
function get_people_manage_table_headers(): string
|
||||
{
|
||||
$headers = PERSON_HEADERS;
|
||||
$headers = [
|
||||
['people.person_id' => lang('Common.id')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['email' => lang('Common.email')],
|
||||
['phone_number' => lang('Common.phone_number')]
|
||||
];
|
||||
|
||||
$employee = model(Employee::class);
|
||||
$session = session();
|
||||
@@ -251,21 +246,19 @@ function get_person_data_row(object $person): array
|
||||
];
|
||||
}
|
||||
|
||||
define('CUSTOMER_HEADERS', [
|
||||
['people.person_id' => lang('Common.id')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['email' => lang('Common.email')],
|
||||
['phone_number' => lang('Common.phone_number')],
|
||||
['total' => lang('Common.total_spent'), 'sortable' => false]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the customer tabular view
|
||||
*/
|
||||
function get_customer_manage_table_headers(): string
|
||||
{
|
||||
$headers = CUSTOMER_HEADERS;
|
||||
$headers = [
|
||||
['people.person_id' => lang('Common.id')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['email' => lang('Common.email')],
|
||||
['phone_number' => lang('Common.phone_number')],
|
||||
['total' => lang('Common.total_spent'), 'sortable' => false]
|
||||
];
|
||||
|
||||
$employee = model(Employee::class);
|
||||
$session = session();
|
||||
@@ -315,23 +308,21 @@ function get_customer_data_row(object $person, object $stats): array
|
||||
];
|
||||
}
|
||||
|
||||
define('SUPPLIER_HEADERS', [
|
||||
['people.person_id' => lang('Common.id')],
|
||||
['company_name' => lang('Suppliers.company_name')],
|
||||
['agency_name' => lang('Suppliers.agency_name')],
|
||||
['category' => lang('Suppliers.category')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['email' => lang('Common.email')],
|
||||
['phone_number' => lang('Common.phone_number')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the suppliers tabular view
|
||||
*/
|
||||
function get_suppliers_manage_table_headers(): string
|
||||
{
|
||||
$headers = SUPPLIER_HEADERS;
|
||||
$headers = [
|
||||
['people.person_id' => lang('Common.id')],
|
||||
['company_name' => lang('Suppliers.company_name')],
|
||||
['agency_name' => lang('Suppliers.agency_name')],
|
||||
['category' => lang('Suppliers.category')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['email' => lang('Common.email')],
|
||||
['phone_number' => lang('Common.phone_number')]
|
||||
];
|
||||
|
||||
$employee = model(Employee::class);
|
||||
$session = session();
|
||||
@@ -383,17 +374,6 @@ function get_supplier_data_row(object $supplier): array
|
||||
];
|
||||
}
|
||||
|
||||
define('ITEM_HEADERS', [
|
||||
['items.item_id' => lang('Common.id')],
|
||||
['item_number' => lang('Items.item_number')],
|
||||
['name' => lang('Items.name')],
|
||||
['category' => lang('Items.category')],
|
||||
['company_name' => lang('Suppliers.company_name')],
|
||||
['cost_price' => lang('Items.cost_price')],
|
||||
['unit_price' => lang('Items.unit_price')],
|
||||
['quantity' => lang('Items.quantity')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the items tabular view
|
||||
*/
|
||||
@@ -403,7 +383,16 @@ function get_items_manage_table_headers(): string
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$definition_names = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS); //TODO: this should be made into a constant in constants.php
|
||||
|
||||
$headers = ITEM_HEADERS;
|
||||
$headers = [
|
||||
['items.item_id' => lang('Common.id')],
|
||||
['item_number' => lang('Items.item_number')],
|
||||
['name' => lang('Items.name')],
|
||||
['category' => lang('Items.category')],
|
||||
['company_name' => lang('Suppliers.company_name')],
|
||||
['cost_price' => lang('Items.cost_price')],
|
||||
['unit_price' => lang('Items.unit_price')],
|
||||
['quantity' => lang('Items.quantity')]
|
||||
];
|
||||
|
||||
if($config['use_destination_based_tax'])
|
||||
{
|
||||
@@ -458,8 +447,7 @@ function get_item_data_row(object $item): array
|
||||
{
|
||||
$tax_percents .= to_tax_decimals($tax_info['percent']) . '%, ';
|
||||
}
|
||||
|
||||
// remove ', ' from last item
|
||||
// remove ', ' from last item //TODO: if this won't be added back into the code then it should be deleted.
|
||||
$tax_percents = substr($tax_percents, 0, -2);
|
||||
$tax_percents = !$tax_percents ? '-' : $tax_percents;
|
||||
}
|
||||
@@ -467,7 +455,7 @@ function get_item_data_row(object $item): array
|
||||
$controller = get_controller();
|
||||
|
||||
$image = null;
|
||||
if(!empty($item->pic_filename))
|
||||
if($item->pic_filename != '') //TODO: !== ?
|
||||
{
|
||||
$ext = pathinfo($item->pic_filename, PATHINFO_EXTENSION);
|
||||
|
||||
@@ -493,7 +481,7 @@ function get_item_data_row(object $item): array
|
||||
'item_number' => $item->item_number,
|
||||
'name' => $item->name,
|
||||
'category' => $item->category,
|
||||
'company_name' => $item->company_name, //TODO: This isn't in the items table. Should this be here?
|
||||
'company_name' => $item->company_name,
|
||||
'cost_price' => to_currency($item->cost_price),
|
||||
'unit_price' => to_currency($item->unit_price),
|
||||
'quantity' => to_quantity_decimals($item->quantity),
|
||||
@@ -533,20 +521,20 @@ function get_item_data_row(object $item): array
|
||||
return $columns + expand_attribute_values($definition_names, (array) $item) + $icons;
|
||||
}
|
||||
|
||||
define('GIFTCARD_HEADERS', [
|
||||
['giftcard_id' => lang('Common.id')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['giftcard_number' => lang('Giftcards.giftcard_number')],
|
||||
['value' => lang('Giftcards.card_value')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the giftcard tabular view
|
||||
*/
|
||||
function get_giftcards_manage_table_headers(): string
|
||||
{
|
||||
return transform_headers(GIFTCARD_HEADERS);
|
||||
$headers = [
|
||||
['giftcard_id' => lang('Common.id')],
|
||||
['last_name' => lang('Common.last_name')],
|
||||
['first_name' => lang('Common.first_name')],
|
||||
['giftcard_number' => lang('Giftcards.giftcard_number')],
|
||||
['value' => lang('Giftcards.card_value')]
|
||||
];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -574,21 +562,21 @@ function get_giftcard_data_row(object $giftcard): array
|
||||
];
|
||||
}
|
||||
|
||||
define('ITEM_KIT_HEADERS', [
|
||||
['item_kit_id' => lang('Item_kits.kit')],
|
||||
['item_kit_number' => lang('Item_kits.item_kit_number')],
|
||||
['name' => lang('Item_kits.name')],
|
||||
['description' => lang('Item_kits.description')],
|
||||
['total_cost_price' => lang('Items.cost_price'), 'sortable' => false],
|
||||
['total_unit_price' => lang('Items.unit_price'), 'sortable' => false]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the item kits tabular view
|
||||
*/
|
||||
function get_item_kits_manage_table_headers(): string
|
||||
{
|
||||
return transform_headers(ITEM_KIT_HEADERS);
|
||||
$headers = [
|
||||
['item_kit_id' => lang('Item_kits.kit')],
|
||||
['item_kit_number' => lang('Item_kits.item_kit_number')],
|
||||
['name' => lang('Item_kits.name')],
|
||||
['description' => lang('Item_kits.description')],
|
||||
['total_cost_price' => lang('Items.cost_price'), 'sortable' => false],
|
||||
['total_unit_price' => lang('Items.unit_price'), 'sortable' => false]
|
||||
];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -663,29 +651,25 @@ function expand_attribute_values(array $definition_names, array $row): array
|
||||
$attribute_value = $indexed_values[$definition_id];
|
||||
$attribute_values["$definition_id"] = $attribute_value;
|
||||
}
|
||||
else
|
||||
{
|
||||
$attribute_values["$definition_id"] = "";
|
||||
}
|
||||
}
|
||||
|
||||
return $attribute_values;
|
||||
}
|
||||
|
||||
define('ATTRIBUTE_DEFINITION_HEADERS', [
|
||||
['definition_id' => lang('Attributes.definition_id')],
|
||||
['definition_name' => lang('Attributes.definition_name')],
|
||||
['definition_type' => lang('Attributes.definition_type')],
|
||||
['definition_flags' => lang('Attributes.definition_flags')],
|
||||
['definition_group' => lang('Attributes.definition_group')],
|
||||
]);
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
function get_attribute_definition_manage_table_headers(): string
|
||||
{
|
||||
return transform_headers(ATTRIBUTE_DEFINITION_HEADERS);
|
||||
$headers = [
|
||||
['definition_id' => lang('Attributes.definition_id')],
|
||||
['definition_name' => lang('Attributes.definition_name')],
|
||||
['definition_type' => lang('Attributes.definition_type')],
|
||||
['definition_flags' => lang('Attributes.definition_flags')],
|
||||
['definition_group' => lang('Attributes.definition_group')],
|
||||
];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -708,7 +692,7 @@ function get_attribute_definition_data_row(object $attribute_row): array
|
||||
}
|
||||
else
|
||||
{
|
||||
$definition_flags = implode(', ', $attribute_row->definition_flags);
|
||||
$definition_flags = implode(', ', $attribute->get_definition_flags());
|
||||
}
|
||||
|
||||
return [
|
||||
@@ -729,18 +713,18 @@ function get_attribute_definition_data_row(object $attribute_row): array
|
||||
];
|
||||
}
|
||||
|
||||
define('EXPENSE_CATEGORY_HEADERS', [
|
||||
['expense_category_id' => lang('Expenses_categories.category_id')],
|
||||
['category_name' => lang('Expenses_categories.name')],
|
||||
['category_description' => lang('Expenses_categories.description')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the expense categories tabular view
|
||||
*/
|
||||
function get_expense_category_manage_table_headers(): string
|
||||
{
|
||||
return transform_headers(EXPENSE_CATEGORY_HEADERS);
|
||||
$headers = [
|
||||
['expense_category_id' => lang('Expenses_categories.category_id')],
|
||||
['category_name' => lang('Expenses_categories.name')],
|
||||
['category_description' => lang('Expenses_categories.description')]
|
||||
];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -766,25 +750,26 @@ function get_expense_category_data_row(object $expense_category): array
|
||||
];
|
||||
}
|
||||
|
||||
define('EXPENSE_HEADERS', [
|
||||
['expense_id' => lang('Expenses.expense_id')],
|
||||
['date' => lang('Expenses.date')],
|
||||
['supplier_name' => lang('Expenses.supplier_name')],
|
||||
['supplier_tax_code' => lang('Expenses.supplier_tax_code')],
|
||||
['amount' => lang('Expenses.amount')],
|
||||
['tax_amount' => lang('Expenses.tax_amount')],
|
||||
['payment_type' => lang('Expenses.payment')],
|
||||
['category_name' => lang('Expenses_categories.name')],
|
||||
['description' => lang('Expenses.description')],
|
||||
['created_by' => lang('Expenses.employee')]
|
||||
]);
|
||||
|
||||
/**
|
||||
* Get the header for the expenses tabular view
|
||||
*/
|
||||
function get_expenses_manage_table_headers(): string
|
||||
{
|
||||
return transform_headers(EXPENSE_HEADERS);
|
||||
$headers = [
|
||||
['expense_id' => lang('Expenses.expense_id')],
|
||||
['date' => lang('Expenses.date')],
|
||||
['supplier_name' => lang('Expenses.supplier_name')],
|
||||
['supplier_tax_code' => lang('Expenses.supplier_tax_code')],
|
||||
['amount' => lang('Expenses.amount')],
|
||||
['tax_amount' => lang('Expenses.tax_amount')],
|
||||
['payment_type' => lang('Expenses.payment')],
|
||||
['category_name' => lang('Expenses_categories.name')],
|
||||
['description' => lang('Expenses.description')],
|
||||
['created_by' => lang('Expenses.employee')]
|
||||
];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -858,7 +843,13 @@ function get_expenses_manage_payments_summary(array $payments, ResultInterface $
|
||||
return $table;
|
||||
}
|
||||
|
||||
define('CASHUPS_HEADERS', [
|
||||
|
||||
/**
|
||||
* Get the header for the cashup tabular view
|
||||
*/
|
||||
function get_cashups_manage_table_headers(): string
|
||||
{
|
||||
$headers = [
|
||||
['cashup_id' => lang('Cashups.id')],
|
||||
['open_date' => lang('Cashups.opened_date')],
|
||||
['open_employee_id' => lang('Cashups.open_employee')],
|
||||
@@ -872,16 +863,7 @@ define('CASHUPS_HEADERS', [
|
||||
['closed_amount_card' => lang('Cashups.closed_amount_card')],
|
||||
['closed_amount_check' => lang('Cashups.closed_amount_check')],
|
||||
['closed_amount_total' => lang('Cashups.closed_amount_total')]
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* Get the header for the cashup tabular view
|
||||
*/
|
||||
function get_cashups_manage_table_headers(): string
|
||||
{
|
||||
$headers = CASHUPS_HEADERS;
|
||||
];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<?php
|
||||
return [
|
||||
'gcaptcha' => "أنا لست روبوتاً.",
|
||||
'go' => "البَدْء",
|
||||
'invalid_gcaptcha' => "يرجى التحقق من أنك لست روبوتًا.",
|
||||
'invalid_installation' => "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.",
|
||||
'invalid_username_and_password' => "اسم المستخدم/كلمة المرور غير صحيحة.",
|
||||
'login' => "دخول",
|
||||
'logout' => "تسجيل خروج",
|
||||
'migration_needed' => "سيبدأ ترحيل قاعدة البيانات إلى{0} بعد تسجيل الدخول.",
|
||||
'password' => "كلمة السر",
|
||||
'required_username' => "خانة أسم المستخدم مطلوبة.",
|
||||
'username' => "اسم المستخدم",
|
||||
'welcome' => "مرحباً بك في{0}!",
|
||||
return [
|
||||
"gcaptcha" => "أنا لست روبوت.",
|
||||
"go" => "البدء",
|
||||
"invalid_gcaptcha" => "يرجى التحقق من أنك لست روبوتًا.",
|
||||
"invalid_installation" => "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.",
|
||||
"invalid_username_and_password" => "اسم المستخدم/كلمة المرور غير صحيحة.",
|
||||
"login" => "دخول",
|
||||
"logout" => "تسجيل خروج",
|
||||
"migration_needed" => "سيبدأ ترحيل قاعدة البيانات إلى{0} بعد تسجيل الدخول.",
|
||||
"password" => "كلمة السر",
|
||||
"required_username" => "",
|
||||
"username" => "اسم المستخدم",
|
||||
"welcome" => "مرحباً بك في{0}!",
|
||||
];
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'gcaptcha' => "I'm not a robot.",
|
||||
'go' => "Go",
|
||||
'invalid_gcaptcha' => "Please verify that you are not a robot.",
|
||||
'invalid_installation' => "The installation is not correct, check your php.ini file.",
|
||||
'invalid_username_and_password' => "Invalid username and/or password.",
|
||||
'login' => "Login",
|
||||
'logout' => "Logout",
|
||||
'migration_needed' => "A database migration to {0} will start after login.",
|
||||
'password' => "Password",
|
||||
'required_username' => "The username field is required.",
|
||||
'username' => "Username",
|
||||
'welcome' => "Welcome to {0}!",
|
||||
"gcaptcha" => "I'm not a robot.",
|
||||
"go" => "Go",
|
||||
"invalid_gcaptcha" => "Please verify that you are not a robot.",
|
||||
"invalid_installation" => "The installation is not correct, check your php.ini file.",
|
||||
"invalid_username_and_password" => "Invalid username and/or password.",
|
||||
"login" => "Login",
|
||||
"logout" => "Logout",
|
||||
"migration_needed" => "A database migration to {0} will start after login.",
|
||||
"password" => "Password",
|
||||
"required_username" => "",
|
||||
"username" => "Username",
|
||||
"welcome" => "Welcome to {0}!",
|
||||
];
|
||||
|
||||
@@ -1,89 +1,88 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'address_1' => "Dirección 1",
|
||||
'address_2' => "Dirección 2",
|
||||
'admin' => "Administrador",
|
||||
'city' => "Ciudad",
|
||||
'clerk' => "Empleado",
|
||||
'close' => "Cerrar",
|
||||
'color' => "Colores del tema",
|
||||
'comments' => "Comentarios",
|
||||
'common' => "Común",
|
||||
'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?",
|
||||
'copyrights' => "© 2010 - {0}",
|
||||
'correct_errors' => "Por favor, corrija los errores identificados antes de guardar",
|
||||
'country' => "País",
|
||||
'dashboard' => "Tablero",
|
||||
'date' => "Fecha",
|
||||
'delete' => "Borrar",
|
||||
'det' => "detalles",
|
||||
'download_import_template' => "Descargar Plantilla de Importación de CSV (CSV)",
|
||||
'edit' => "editar",
|
||||
'email' => "Email",
|
||||
'email_invalid_format' => "El correo-e no está en el formato requerido.",
|
||||
'export_csv' => "Reporte en CSV",
|
||||
'export_csv_no' => "No",
|
||||
'export_csv_yes' => "Si",
|
||||
'fields_required_message' => "Los campos en rojo son requeridos",
|
||||
'fields_required_message_unique' => "Los campos en rojo son obligatorios y deben ser únicos",
|
||||
'first_name' => "Nombre",
|
||||
'first_name_required' => "Nombre es un campo requerido.",
|
||||
'first_page' => "Primera",
|
||||
'gender' => "Género",
|
||||
'gender_female' => "F",
|
||||
'gender_male' => "M",
|
||||
'gender_undefined' => "",
|
||||
'icon' => "Icono",
|
||||
'id' => "Identificación",
|
||||
'import' => "Importar",
|
||||
'import_change_file' => "Cambiar",
|
||||
'import_csv' => "Importar CSV",
|
||||
'import_full_path' => "La ruta completa al archivo CSV es requerida",
|
||||
'import_remove_file' => "Quitar",
|
||||
'import_select_file' => "Selecciona archivo",
|
||||
'inv' => "Inv",
|
||||
'last_name' => "Apellidos",
|
||||
'last_name_required' => "Apellidos es un campo requerido.",
|
||||
'last_page' => "Ultima",
|
||||
'learn_about_project' => "para leer la información más reciente acerca del proyecto.",
|
||||
'list_of' => "Lista de",
|
||||
'logo' => "Logotipo",
|
||||
'logo_mark' => "Marca",
|
||||
'logout' => "Cerrar sesión",
|
||||
'manager' => "Administrador",
|
||||
'migration_needed' => "La migración de la base de datos hacia {0} comenzará después de iniciar sesión.",
|
||||
'new' => "Nuevo",
|
||||
'no' => "No",
|
||||
'no_persons_to_display' => "No hay nadie que mostrar.",
|
||||
'none_selected_text' => "Seleccionar",
|
||||
'or' => "Ó",
|
||||
'people' => "Personas",
|
||||
'phone_number' => "Teléfono",
|
||||
'phone_number_required' => "El numoero de telefono es requerido",
|
||||
'please_visit_my' => "Por favor, visita mi",
|
||||
'position' => "Posición",
|
||||
'powered_by' => "Potenciado por",
|
||||
'price' => "Precio",
|
||||
'print' => "Imprimir",
|
||||
'remove' => "Eliminar",
|
||||
'required' => "Requerido",
|
||||
'restore' => "Restaurar",
|
||||
'return_policy' => "Política de Devolución",
|
||||
'search' => "Buscar",
|
||||
'search_options' => "Opciones de búsqueda",
|
||||
'searched_for' => "Buscado",
|
||||
'software_short' => "OSPOS",
|
||||
'software_title' => "Punto de Venta Open Source",
|
||||
'state' => "Estado",
|
||||
'submit' => "Enviar",
|
||||
'total_spent' => "Total gastado",
|
||||
'unknown' => "Desconocido",
|
||||
'view_recent_sales' => "Ver Ventas Recientes",
|
||||
'website' => "opensourcepos.org",
|
||||
'welcome' => "Bienvenido(a)",
|
||||
'welcome_message' => "Bienvenido(a) a OSPOS. Haz click en un módulo, para empezar.",
|
||||
'yes' => "Si",
|
||||
'you_are_using_ospos' => "Estás usando Open Source Point Of Sale Versión",
|
||||
'zip' => "Código Postal",
|
||||
"address_1" => "Dirección 1",
|
||||
"address_2" => "Dirección 2",
|
||||
"admin" => "Administrador",
|
||||
"city" => "Ciudad",
|
||||
"clerk" => "Empleado",
|
||||
"close" => "Cerrar",
|
||||
"color" => "Colores del tema",
|
||||
"comments" => "Comentarios",
|
||||
"common" => "Común",
|
||||
"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?",
|
||||
"copyrights" => "© 2010 - {0}",
|
||||
"correct_errors" => "Por favor, corrija los errores identificados antes de guardar",
|
||||
"country" => "País",
|
||||
"dashboard" => "Tablero",
|
||||
"date" => "Fecha",
|
||||
"delete" => "Borrar",
|
||||
"det" => "detalles",
|
||||
"download_import_template" => "Descargar Plantilla de Importación de CSV (CSV)",
|
||||
"edit" => "editar",
|
||||
"email" => "Email",
|
||||
"email_invalid_format" => "El correo-e no está en el formato requerido.",
|
||||
"export_csv" => "Reporte en CSV",
|
||||
"export_csv_no" => "No",
|
||||
"export_csv_yes" => "Si",
|
||||
"fields_required_message" => "Los campos en rojo son requeridos",
|
||||
"fields_required_message_unique" => "Los campos en rojo son obligatorios y deben ser únicos",
|
||||
"first_name" => "Nombre",
|
||||
"first_name_required" => "Nombre es un campo requerido.",
|
||||
"first_page" => "Primera",
|
||||
"gender" => "Género",
|
||||
"gender_female" => "F",
|
||||
"gender_male" => "M",
|
||||
"gender_undefined" => "",
|
||||
"icon" => "Icono",
|
||||
"id" => "Identificación",
|
||||
"import" => "Importar",
|
||||
"import_change_file" => "Cambiar",
|
||||
"import_csv" => "Importar CSV",
|
||||
"import_full_path" => "La ruta completa al archivo CSV es requerida",
|
||||
"import_remove_file" => "Quitar",
|
||||
"import_select_file" => "Selecciona archivo",
|
||||
"inv" => "Inv",
|
||||
"last_name" => "Apellidos",
|
||||
"last_name_required" => "Apellidos es un campo requerido.",
|
||||
"last_page" => "Ultima",
|
||||
"learn_about_project" => "para leer la información más reciente acerca del proyecto.",
|
||||
"list_of" => "Lista de",
|
||||
"logo" => "Logotipo",
|
||||
"logo_mark" => "Marca",
|
||||
"logout" => "Cerrar sesión",
|
||||
"manager" => "Administrador",
|
||||
"migration_needed" => "La migración de la base de datos hacia {0} comenzará después de iniciar sesión.",
|
||||
"new" => "Nuevo",
|
||||
"no" => "",
|
||||
"no_persons_to_display" => "No hay nadie que mostrar.",
|
||||
"none_selected_text" => "Seleccionar",
|
||||
"or" => "Ó",
|
||||
"people" => "Personas",
|
||||
"phone_number" => "Teléfono",
|
||||
"phone_number_required" => "El numoero de telefono es requerido",
|
||||
"please_visit_my" => "Por favor, visita mi",
|
||||
"position" => "Posición",
|
||||
"powered_by" => "Potenciado por",
|
||||
"price" => "Precio",
|
||||
"print" => "Imprimir",
|
||||
"remove" => "Eliminar",
|
||||
"required" => "Requerido",
|
||||
"restore" => "Restaurar",
|
||||
"return_policy" => "Política de Devolución",
|
||||
"search" => "Buscar",
|
||||
"search_options" => "Opciones de búsqueda",
|
||||
"searched_for" => "Buscado",
|
||||
"software_short" => "OSPOS",
|
||||
"software_title" => "Punto de Venta Open Source",
|
||||
"state" => "Estado",
|
||||
"submit" => "Enviar",
|
||||
"total_spent" => "Total gastado",
|
||||
"unknown" => "Desconocido",
|
||||
"view_recent_sales" => "Ver Ventas Recientes",
|
||||
"website" => "opensourcepos.org",
|
||||
"welcome" => "Bienvenido(a)",
|
||||
"welcome_message" => "Bienvenido(a) a OSPOS. Haz click en un módulo, para empezar.",
|
||||
"yes" => "",
|
||||
"you_are_using_ospos" => "Estás usando Open Source Point Of Sale Versión",
|
||||
"zip" => "Código Postal",
|
||||
];
|
||||
|
||||
@@ -1,331 +1,330 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'address' => "Dirección del Comercio",
|
||||
'address_required' => "Dirección del Comercio es requerida.",
|
||||
'all_set' => "¡Todos los permisos de archivo están configurados correctamente!",
|
||||
'allow_duplicate_barcodes' => "Permitir código barras duplicados",
|
||||
'apostrophe' => "apostrofe",
|
||||
'backup_button' => "Respaldo",
|
||||
'backup_database' => "Respaldo de Base de Datos",
|
||||
'barcode' => "Código Barras",
|
||||
'barcode_company' => "Nombre del Comercio",
|
||||
'barcode_configuration' => "Configuración de Código de Barras",
|
||||
'barcode_content' => "Contenido de Código de Barras",
|
||||
'barcode_first_row' => "Fila 1",
|
||||
'barcode_font' => "Fuente",
|
||||
'barcode_formats' => "Formato entrada",
|
||||
'barcode_generate_if_empty' => "Generar si esta vacio.",
|
||||
'barcode_height' => "Alto (px)",
|
||||
'barcode_id' => "Id/Artículo",
|
||||
'barcode_info' => "Información de Configuración de Código de Barras",
|
||||
'barcode_layout' => "Diseño Código de Barras",
|
||||
'barcode_name' => "Nombre",
|
||||
'barcode_number' => "UPC/EAN/ISBN",
|
||||
'barcode_number_in_row' => "Número en la línea",
|
||||
'barcode_page_cellspacing' => "Mostrar espacios de celdas de página.",
|
||||
'barcode_page_width' => "Mostrar ancho de página",
|
||||
'barcode_price' => "Precio",
|
||||
'barcode_second_row' => "Fila 2",
|
||||
'barcode_third_row' => "Fila 3",
|
||||
'barcode_tooltip' => "Cuidado: esta característica puede causar duplicados ser importados o creados, No lo use si no quiere códigos de barras duplicadas.",
|
||||
'barcode_type' => "Tipo de Código de Barra",
|
||||
'barcode_width' => "Ancho (px)",
|
||||
'bottom' => "Abajo",
|
||||
'cash_button' => "Botones de Efectivo Rápido",
|
||||
'cash_button_1' => "Botón 1",
|
||||
'cash_button_2' => "Botón 2",
|
||||
'cash_button_3' => "Botón 3",
|
||||
'cash_button_4' => "Botón 4",
|
||||
'cash_button_5' => "Botón 5",
|
||||
'cash_button_6' => "Botón 6",
|
||||
'cash_decimals' => "Decimales del Efectivo",
|
||||
'cash_decimals_tooltip' => "Si los decimales del efectivo y del tipo de moneda son los mismos no habrá redondeo de los pagos en efectivo.",
|
||||
'cash_rounding' => "Redondeo del Efectivo",
|
||||
'category_dropdown' => "Mostrar Categoria como desplegable",
|
||||
'center' => "Centro",
|
||||
'change_apperance_tooltip' => "Cambiar Aspecto de OSPOS",
|
||||
'comma' => "coma",
|
||||
'company' => "Nombre del Comercio",
|
||||
'company_avatar' => "Avatar de Empleado",
|
||||
'company_change_image' => "Cambiar Imagen",
|
||||
'company_logo' => "Logotipo del Comercio",
|
||||
'company_remove_image' => "Quitar Imagen",
|
||||
'company_required' => "Nombre del Comercio es requerido",
|
||||
'company_select_image' => "Seleccionar Imagen",
|
||||
'company_website_url' => "Sitio Web no es una URL estándar (http://...).",
|
||||
'country_codes' => "Código de País",
|
||||
'country_codes_tooltip' => "Lista de codigo de paises separado por coma para busqueda de direcciones.",
|
||||
'currency_code' => "Código de Moneda",
|
||||
'currency_decimals' => "Decimales del tipo de moneda",
|
||||
'currency_symbol' => "Símbolo de la moneda",
|
||||
'current_employee_only' => "Mostrar registro sólo del empleado actual",
|
||||
'customer_reward' => "Cat. de Cliente",
|
||||
'customer_reward_duplicate' => "La recompensa debe ser única.",
|
||||
'customer_reward_enable' => "Activar recompenza para clientes",
|
||||
'customer_reward_invalid_chars' => "El nombre de la recompenza no puede contener el carácter '_'",
|
||||
'customer_reward_required' => "El nombre es un campo obligatorio",
|
||||
'customer_sales_tax_support' => "Habilitar la gestión de impuestos en las ventas a clientes",
|
||||
'date_or_time_format' => "Filtro de fecha y hora",
|
||||
'datetimeformat' => "Formato de fecha y hora",
|
||||
'decimal_point' => "Punto Decimal",
|
||||
'default_barcode_font_size_number' => "Tamaño de fuente de código de barras debe ser número.",
|
||||
'default_barcode_font_size_required' => "Tamaño de fuente de código de barras es requerido.",
|
||||
'default_barcode_height_number' => "Alto del código de barras debe ser un número.",
|
||||
'default_barcode_height_required' => "Altura del código de barras es requerido.",
|
||||
'default_barcode_num_in_row_number' => "Número por fila del código de barras debe ser un número.",
|
||||
'default_barcode_num_in_row_required' => "Número de código de barras predeterminado en fila es un campo obligatorio.",
|
||||
'default_barcode_page_cellspacing_number' => "Espacios de celdas por página del código de barras debe ser un número.",
|
||||
'default_barcode_page_cellspacing_required' => "Espacios de celdas por página del código de barras es requerido.",
|
||||
'default_barcode_page_width_number' => "Ancho de página del código de barras debe ser un número.",
|
||||
'default_barcode_page_width_required' => "Ancho de página del código de barras es requerido.",
|
||||
'default_barcode_width_number' => "Ancho del código de barras debe ser número.",
|
||||
'default_barcode_width_required' => "Ancho del código de barras es requerido.",
|
||||
'default_item_columns' => "Columnas de Productos Visibles por Defecto",
|
||||
'default_origin_tax_code' => "Código de impuesto por defecto",
|
||||
'default_receivings_discount' => "Descuento por Defecto para Recibos",
|
||||
'default_receivings_discount_number' => "El Descuento por Defecto Para Los Recibos Debe Ser Un Número.",
|
||||
'default_receivings_discount_required' => "El Descuento Predeterminado para los Recibos es un campo obligatorio.",
|
||||
'default_sales_discount' => "Descuento Predeterminado para Ventas",
|
||||
'default_sales_discount_number' => "Descuento en ventas predeterminado debe ser un número.",
|
||||
'default_sales_discount_required' => "Descuento en ventas predeterminado es requerido.",
|
||||
'default_tax_category' => "Categoría de Tasa predeterminada",
|
||||
'default_tax_code' => "Código de Impuesto Predeterminado",
|
||||
'default_tax_jurisdiction' => "Jurisdicción de Impuesto Predeterminado",
|
||||
'default_tax_name_number' => "El nombre de el impuesto debe ser letras.",
|
||||
'default_tax_name_required' => "El nombre del impuesto predeterminado es requerido.",
|
||||
'default_tax_rate' => "% de Impuestos Predeterminado",
|
||||
'default_tax_rate_1' => "Impuesto 1",
|
||||
'default_tax_rate_2' => "Impuesto 2",
|
||||
'default_tax_rate_3' => "Tasa de Impuestos 3",
|
||||
'default_tax_rate_number' => "El Impuesto Predeterminado debe ser un número.",
|
||||
'default_tax_rate_required' => "El Impuesto Predeterminado es requerido.",
|
||||
'derive_sale_quantity' => "Permitir cantidad de venta derivada",
|
||||
'derive_sale_quantity_tooltip' => "Si se marca entonces se proporcionará un nuevo tipo para los artículos ordenados por cantidad extendida",
|
||||
'dinner_table' => "Mesa",
|
||||
'dinner_table_duplicate' => "Utilice un nombre de mesa único.",
|
||||
'dinner_table_enable' => "Activar Mesa de Restaurante",
|
||||
'dinner_table_invalid_chars' => "El nombre de la mesa no puede contener '_'.",
|
||||
'dinner_table_required' => "La mesa es un campo obligatorio.",
|
||||
'dot' => "punto",
|
||||
'email' => "E-mail",
|
||||
'email_configuration' => "Configuracion de correo",
|
||||
'email_mailpath' => "Ruta a Sendmail",
|
||||
'email_protocol' => "Protocolo",
|
||||
'email_receipt_check_behaviour' => "Selector de Recibir por Correo",
|
||||
'email_receipt_check_behaviour_always' => "Siempre activado",
|
||||
'email_receipt_check_behaviour_last' => "Recordar ultima vez",
|
||||
'email_receipt_check_behaviour_never' => "Siempre desactivado",
|
||||
'email_smtp_crypto' => "Encriptado SMTP",
|
||||
'email_smtp_host' => "Servidor SMTP",
|
||||
'email_smtp_pass' => "Pasword SMTP",
|
||||
'email_smtp_port' => "Puerto SMTP",
|
||||
'email_smtp_timeout' => "Tiempo falla SMTP",
|
||||
'email_smtp_user' => "Usuario SMTP",
|
||||
'enable_avatar' => "Habilitar Avatar",
|
||||
'enable_avatar_tooltip' => "Habilitar Avatares para que se muestren en el menú desplegable Categorías y Registrarse ",
|
||||
'enable_dropdown_tooltip' => "No podrá agregar nuevas categorías si esto está marcado",
|
||||
'enable_new_look' => "Habilitar nueva apariencia",
|
||||
'enable_right_bar' => " Habilitar la barra lateral derecha",
|
||||
'enable_right_bar_tooltip' => "Cambiar la barra lateral de izquierda a derecha ",
|
||||
'enforce_privacy' => "Forzar privacidad",
|
||||
'enforce_privacy_tooltip' => "Proteja la privacidad de los clientes aplicando codificación de datos en caso de que se eliminen",
|
||||
'fax' => "Fax",
|
||||
'file_perm' => "Hay problemas con los permisos de archivo. Por favor corrija y vuelva a recargar esta página.",
|
||||
'financial_year' => "Inicio del año fiscal",
|
||||
'financial_year_apr' => "1º de Abril",
|
||||
'financial_year_aug' => "1º de Agosto",
|
||||
'financial_year_dec' => "1º de Diciembre",
|
||||
'financial_year_feb' => "1º de Febrero",
|
||||
'financial_year_jan' => "1º de Enero",
|
||||
'financial_year_jul' => "1º de Julio",
|
||||
'financial_year_jun' => "1º de Junio",
|
||||
'financial_year_mar' => "1º de Marzo",
|
||||
'financial_year_may' => "1º de Mayo",
|
||||
'financial_year_nov' => "1º de Noviembre",
|
||||
'financial_year_oct' => "1º de Octubre",
|
||||
'financial_year_sep' => "1º de Septiembre",
|
||||
'floating_labels' => "Etiquetas flotantes",
|
||||
'gcaptcha_enable' => "Inicio de sesión con reCAPTCHA",
|
||||
'gcaptcha_secret_key' => "Llave secreta reCAPTCHA",
|
||||
'gcaptcha_secret_key_required' => "reCAPTCHA Secret Key es requerida si se usa",
|
||||
'gcaptcha_site_key' => "Llave del sitio reCAPTCHA",
|
||||
'gcaptcha_site_key_required' => "reCAPTCHA Site Key es requerida si se usa",
|
||||
'gcaptcha_tooltip' => "Proteja la página de inicio de sesión con Google reCAPTCHA, haga clic en el icono de un par de claves de API.",
|
||||
'general' => "General",
|
||||
'general_configuration' => "Configuración General",
|
||||
'giftcard_number' => "Número de tarjeta de regalo",
|
||||
'giftcard_random' => "Generar aleatoriamente",
|
||||
'giftcard_series' => "Generar en serie",
|
||||
'image_allowed_file_types' => "Tipos de archivos permitidos",
|
||||
'image_max_height_tooltip' => "Altura máxima permitida de las cargas de imágenes en píxeles (px).",
|
||||
'image_max_size_tooltip' => "Tamaño máximo de archivo permitido de cargas de imágenes en kilobytes (kb).",
|
||||
'image_max_width_tooltip' => "Ancho máximo permitido de las cargas de imágenes en píxeles (px).",
|
||||
'image_restrictions' => "Restricciones de carga de imágenes",
|
||||
'include_hsn' => "Incluir Soporte para Códigos HSN",
|
||||
'info' => "Información",
|
||||
'info_configuration' => "Información del Comercio",
|
||||
'input_groups' => "Introducir Grupos",
|
||||
'integrations' => "Componentes Integrados",
|
||||
'integrations_configuration' => "Componentes de Terceros Integrados",
|
||||
'invoice' => "Factura",
|
||||
'invoice_configuration' => "Parámetros de Impresión",
|
||||
'invoice_default_comments' => "Comentarios predeterminados en la factura",
|
||||
'invoice_email_message' => "Plantilla de Factura por Email",
|
||||
'invoice_enable' => "Habilitar Facturación",
|
||||
'invoice_printer' => "Impresora Facturadora",
|
||||
'invoice_type' => "Tipo de Factura",
|
||||
'is_readable' => "es legible, pero los permisos de lectura son incorrectos. Pongalos en 640 o 660 cargue nuevamente.",
|
||||
'is_writable' => "es escribible, pero los permisos de escritura son incorrectos. Pongalos en 750 y recargue la página de nuevo.",
|
||||
'item_markup' => "Marcado de Artículo",
|
||||
'jsprintsetup_required' => "Advertencia!Esta funcionalidad desactivada solo funciona con el addon jsPrintSetup de FireFox instalado. Guardar de todas formas?",
|
||||
'language' => "Idioma",
|
||||
'last_used_invoice_number' => "Último numero de factura utilizado",
|
||||
'last_used_quote_number' => "Último número de presupuesto utilizado",
|
||||
'last_used_work_order_number' => "Ultimo usado sin numero",
|
||||
'left' => "Izquierda",
|
||||
'license' => "Licencia",
|
||||
'license_configuration' => "Anuncio de Licencia",
|
||||
'line_sequence' => "Secuencia de linea",
|
||||
'lines_per_page' => "Líneas por página",
|
||||
'lines_per_page_number' => "Líneas por página debe ser un número.",
|
||||
'lines_per_page_required' => "Líneas por página es requerido.",
|
||||
'locale' => "Localización",
|
||||
'locale_configuration' => "Configuración de la zona local",
|
||||
'locale_info' => "Informacion de la configuracion de la zona",
|
||||
'location' => "Inventario",
|
||||
'location_configuration' => "Ubicación de Inventario",
|
||||
'location_info' => "Información de Configuración de Ubicación",
|
||||
'login_form' => "Estilo del formulario de inicio de sesión",
|
||||
'logout' => "Desea hacer un respaldo antes de salir? Pulsa [OK] para respaldar o [Cancelar] para salir.",
|
||||
'mailchimp' => "Correo MailChimp",
|
||||
'mailchimp_api_key' => "Clave API de Mailchimp",
|
||||
'mailchimp_configuration' => "Configuración de Mailchimp",
|
||||
'mailchimp_key_successfully' => "Clave API correcta.",
|
||||
'mailchimp_key_unsuccessfully' => "Clave API incorrecta.",
|
||||
'mailchimp_lists' => "Lista(s) de Mailchimp",
|
||||
'mailchimp_tooltip' => "Haga clic en el icono de una clave de API.",
|
||||
'message' => "Mensajes SMS",
|
||||
'message_configuration' => "Configuracion del mensaje",
|
||||
'msg_msg' => "Texto del mensaje guardado",
|
||||
'msg_msg_placeholder' => "Si desea usar un formato de SMS guarde su mensaje aquí, en caso contrario deje en blanco.",
|
||||
'msg_pwd' => "SMS-API Password",
|
||||
'msg_pwd_required' => "SMS-API Password es un campo requerido",
|
||||
'msg_src' => "SMS-API ID remitente",
|
||||
'msg_src_required' => "SMS-API ID remitente es un campo requerido",
|
||||
'msg_uid' => "SMS-API Usuario",
|
||||
'msg_uid_required' => "SMS-API Usuario es un campo requerido",
|
||||
'multi_pack_enabled' => "Empaquetado Múltiple por Producto",
|
||||
'no_risk' => "Sin riesgos de seguridad/vulnerabilidad.",
|
||||
'none' => "ninguno",
|
||||
'notify_alignment' => "Posición de notificacion",
|
||||
'number_format' => "Formato de número",
|
||||
'number_locale' => "Localización",
|
||||
'number_locale_invalid' => "Localización ingresada invalida. Revisa el link en el tooltip para encontrar informacion.",
|
||||
'number_locale_required' => "Numero localizacion es un campo requerido.",
|
||||
'number_locale_tooltip' => "Encontrar una zonificacion adecuada en este enlace.",
|
||||
'os_timezone' => "Zona Horaria Local:",
|
||||
'ospos_info' => "Información de la Instalación OSPOS",
|
||||
'payment_options_order' => "Orden de opciones de pago",
|
||||
'perm_risk' => "Los permisos incorrectos dejan a este software en riesgo.",
|
||||
'phone' => "Teléfono comercial",
|
||||
'phone_required' => "Teléfono del Comercio es requerido.",
|
||||
'print_bottom_margin' => "Margen Inferior",
|
||||
'print_bottom_margin_number' => "Margen Inferior debe ser un número.",
|
||||
'print_bottom_margin_required' => "Margen Inferior es requerido.",
|
||||
'print_delay_autoreturn' => "Regresar automaticamente a Vender",
|
||||
'print_delay_autoreturn_number' => "Tiempo espera requerido para regresar a ventas.",
|
||||
'print_delay_autoreturn_required' => "El tiempo espera debe ser numérico.",
|
||||
'print_footer' => "Imprimir el pie de página del navegador",
|
||||
'print_header' => "Imprimir el encabezado del navegador",
|
||||
'print_left_margin' => "Margen Izquierdo",
|
||||
'print_left_margin_number' => "Margen Izquierdo debe ser un número.",
|
||||
'print_left_margin_required' => "Margen Izquierdo es requerido.",
|
||||
'print_receipt_check_behaviour' => "Selección de Imprimir recibo",
|
||||
'print_receipt_check_behaviour_always' => "Siempre activado",
|
||||
'print_receipt_check_behaviour_last' => "Recordar la ultima vez",
|
||||
'print_receipt_check_behaviour_never' => "Siempre desactivo",
|
||||
'print_right_margin' => "Margen Derecho",
|
||||
'print_right_margin_number' => "Margen Derecho debe ser un número.",
|
||||
'print_right_margin_required' => "Margen Derecho es requerido.",
|
||||
'print_silently' => "Mostrar configuracion pre- impresión",
|
||||
'print_top_margin' => "Margen Superior",
|
||||
'print_top_margin_number' => "Margen Superior debe ser un número.",
|
||||
'print_top_margin_required' => "Margen Superior es requerido.",
|
||||
'quantity_decimals' => "Decimales de Cantidades",
|
||||
'quick_cash_enable' => "Activar Botones de Efectivo",
|
||||
'quote_default_comments' => "Comentario inicial de cotizaciones",
|
||||
'receipt' => "Recibo",
|
||||
'receipt_category' => "Recibo con categoría",
|
||||
'receipt_configuration' => "Parámetros de Impresión",
|
||||
'receipt_default' => "Normal",
|
||||
'receipt_font_size' => "Tamaño letra",
|
||||
'receipt_font_size_number' => "Debe ser un numero el tamaño de letra.",
|
||||
'receipt_font_size_required' => "El tamaño de letra es requerido.",
|
||||
'receipt_info' => "Información de Configuración de Recibo",
|
||||
'receipt_printer' => "Impresora de Ticket",
|
||||
'receipt_short' => "Resumido",
|
||||
'receipt_show_company_name' => "Mostrar el nombre de la empresa",
|
||||
'receipt_show_description' => "Mostrar descripcion",
|
||||
'receipt_show_serialnumber' => "Mostrar numero de serie",
|
||||
'receipt_show_tax_ind' => "Mostrar indicador de impuestos",
|
||||
'receipt_show_taxes' => "Mostrar impuestos",
|
||||
'receipt_show_total_discount' => "Mostrar Descuento Total",
|
||||
'receipt_template' => "Formato de recibo",
|
||||
'receiving_calculate_average_price' => "Calcular Promedio de Precio. (Recepción)",
|
||||
'recv_invoice_format' => "Formato de Factura de Recepción",
|
||||
'register_mode_default' => "Modo de registro por defecto",
|
||||
'report_an_issue' => "Informe de algún problema",
|
||||
'return_policy_required' => "Política de Devolución requerida.",
|
||||
'reward' => "Recompensas",
|
||||
'reward_configuration' => "Configuración de recompensas",
|
||||
'right' => "Derecha",
|
||||
'sales_invoice_format' => "Formato de Facturas de Venta",
|
||||
'sales_quote_format' => "Formato de presupuesto de las ventas",
|
||||
'saved_successfully' => "Configuración guardada satisfactoriamente.",
|
||||
'saved_unsuccessfully' => "Configuración no guardada.",
|
||||
'security_issue' => "Advertencia de vulnerabilidad de seguridad",
|
||||
'server_notice' => "Por Favor Use la Siguiente Información para Reportar Problemas.",
|
||||
'service_charge' => "Costo de Servicio",
|
||||
'show_due_enable' => "Mostrar vencimientos de clientes",
|
||||
'show_office_group' => "Mostrar icono oficina",
|
||||
'statistics' => "Enviar estadísticas",
|
||||
'statistics_tooltip' => "Envíe estadísticas para el desarrollo y mejora de funciones.",
|
||||
'stock_location' => "Ubicación de Inventario",
|
||||
'stock_location_duplicate' => "El nombre de inventario debe ser único.",
|
||||
'stock_location_invalid_chars' => "Nombre de la Ubicación de Inventario no debe contener '_'.",
|
||||
'stock_location_required' => "Número de Ubicación de Inventario es requerido.",
|
||||
'suggestions_fifth_column' => "Columna 5",
|
||||
'suggestions_first_column' => "Columna 1",
|
||||
'suggestions_fourth_column' => "Columna 4",
|
||||
'suggestions_layout' => "Sugerencias de búsqueda",
|
||||
'suggestions_second_column' => "Columna 2",
|
||||
'suggestions_third_column' => "Columna 3",
|
||||
'system_conf' => "Sistema OSPOS",
|
||||
'system_info' => "System Info",
|
||||
'table' => "Mesa",
|
||||
'table_configuration' => "Configuración de Mesa",
|
||||
'takings_printer' => "Impresión de retenciones",
|
||||
'tax' => "Impuestos",
|
||||
'tax_category' => "Categoría impuesto",
|
||||
'tax_category_duplicate' => "Categoría de impuesto ingresada ya existe.",
|
||||
'tax_category_invalid_chars' => "Categoría de impuesto ingresada es invalida.",
|
||||
'tax_category_required' => "Categoría de impuesto es requerida.",
|
||||
'tax_category_used' => "La categoría de impuestos no puede borrarse, esta en uso.",
|
||||
'tax_configuration' => "Configuracion Impuesto",
|
||||
'tax_decimals' => "Decimales de impuestos",
|
||||
'tax_id' => "Identificador del Impuesto",
|
||||
'tax_included' => "Impuestos incluidos",
|
||||
'theme' => "Tema",
|
||||
'theme_preview' => "Vista Previa del Tema:",
|
||||
'thousands_separator' => "Separador de miles",
|
||||
'timezone' => "Zona Horaria",
|
||||
'timezone_error' => "La zona horaria de OSPOS es diferente de tu zona horaria local.",
|
||||
'top' => "Arriba",
|
||||
'use_destination_based_tax' => "Usar Impuesto Basado en Destino",
|
||||
'user_timezone' => "Zona Horaria OSPOS:",
|
||||
'website' => "Sitio Web",
|
||||
'wholesale_markup' => "Marcado al por mayor",
|
||||
'work_order_enable' => "Soporte Ordenes de Trabajo",
|
||||
'work_order_format' => "Formato Ordenes de trabajo",
|
||||
"address" => "Dirección del Comercio",
|
||||
"address_required" => "Dirección del Comercio es requerida.",
|
||||
"all_set" => "¡Todos los permisos de archivo están configurados correctamente!",
|
||||
"allow_duplicate_barcodes" => "Permitir código barras duplicados",
|
||||
"apostrophe" => "apostrofe",
|
||||
"backup_button" => "Respaldo",
|
||||
"backup_database" => "Respaldo de Base de Datos",
|
||||
"barcode" => "Código Barras",
|
||||
"barcode_company" => "Nombre del Comercio",
|
||||
"barcode_configuration" => "Configuración de Código de Barras",
|
||||
"barcode_content" => "Contenido de Código de Barras",
|
||||
"barcode_first_row" => "Fila 1",
|
||||
"barcode_font" => "Fuente",
|
||||
"barcode_formats" => "Formato entrada",
|
||||
"barcode_generate_if_empty" => "Generar si esta vacio.",
|
||||
"barcode_height" => "Alto (px)",
|
||||
"barcode_id" => "Id/Artículo",
|
||||
"barcode_info" => "Información de Configuración de Código de Barras",
|
||||
"barcode_layout" => "Diseño Código de Barras",
|
||||
"barcode_name" => "Nombre",
|
||||
"barcode_number" => "UPC/EAN/ISBN",
|
||||
"barcode_number_in_row" => "Número en la línea",
|
||||
"barcode_page_cellspacing" => "Mostrar espacios de celdas de página.",
|
||||
"barcode_page_width" => "Mostrar ancho de página",
|
||||
"barcode_price" => "Precio",
|
||||
"barcode_second_row" => "Fila 2",
|
||||
"barcode_third_row" => "Fila 3",
|
||||
"barcode_tooltip" => "Cuidado: esta característica puede causar duplicados ser importados o creados, No lo use si no quiere códigos de barras duplicadas.",
|
||||
"barcode_type" => "Tipo de Código de Barra",
|
||||
"barcode_width" => "Ancho (px)",
|
||||
"bottom" => "Abajo",
|
||||
"cash_button" => "Botones de Efectivo Rápido",
|
||||
"cash_button_1" => "Botón 1",
|
||||
"cash_button_2" => "Botón 2",
|
||||
"cash_button_3" => "Botón 3",
|
||||
"cash_button_4" => "Botón 4",
|
||||
"cash_button_5" => "Botón 5",
|
||||
"cash_button_6" => "Botón 6",
|
||||
"cash_decimals" => "Decimales del Efectivo",
|
||||
"cash_decimals_tooltip" => "Si los decimales del efectivo y del tipo de moneda son los mismos no habrá redondeo de los pagos en efectivo.",
|
||||
"cash_rounding" => "Redondeo del Efectivo",
|
||||
"category_dropdown" => "Mostrar Categoria como desplegable",
|
||||
"center" => "Centro",
|
||||
"change_apperance_tooltip" => "Cambiar Aspecto de OSPOS",
|
||||
"comma" => "coma",
|
||||
"company" => "Nombre del Comercio",
|
||||
"company_avatar" => "Avatar de Empleado",
|
||||
"company_change_image" => "Cambiar Imagen",
|
||||
"company_logo" => "Logotipo del Comercio",
|
||||
"company_remove_image" => "Quitar Imagen",
|
||||
"company_required" => "Nombre del Comercio es requerido",
|
||||
"company_select_image" => "Seleccionar Imagen",
|
||||
"company_website_url" => "Sitio Web no es una URL estándar (http://...).",
|
||||
"country_codes" => "Código de País",
|
||||
"country_codes_tooltip" => "Lista de codigo de paises separado por coma para busqueda de direcciones.",
|
||||
"currency_code" => "Código de Moneda",
|
||||
"currency_decimals" => "Decimales del tipo de moneda",
|
||||
"currency_symbol" => "Símbolo de la moneda",
|
||||
"current_employee_only" => "Mostrar registro sólo del empleado actual",
|
||||
"customer_reward" => "Cat. de Cliente",
|
||||
"customer_reward_duplicate" => "La recompensa debe ser única.",
|
||||
"customer_reward_enable" => "Activar recompenza para clientes",
|
||||
"customer_reward_invalid_chars" => "El nombre de la recompenza no puede contener el carácter '_'",
|
||||
"customer_reward_required" => "El nombre es un campo obligatorio",
|
||||
"customer_sales_tax_support" => "Habilitar la gestión de impuestos en las ventas a clientes",
|
||||
"date_or_time_format" => "Filtro de fecha y hora",
|
||||
"datetimeformat" => "Formato de fecha y hora",
|
||||
"decimal_point" => "Punto Decimal",
|
||||
"default_barcode_font_size_number" => "Tamaño de fuente de código de barras debe ser número.",
|
||||
"default_barcode_font_size_required" => "Tamaño de fuente de código de barras es requerido.",
|
||||
"default_barcode_height_number" => "Alto del código de barras debe ser un número.",
|
||||
"default_barcode_height_required" => "Altura del código de barras es requerido.",
|
||||
"default_barcode_num_in_row_number" => "Número por fila del código de barras debe ser un número.",
|
||||
"default_barcode_num_in_row_required" => "Número de código de barras predeterminado en fila es un campo obligatorio.",
|
||||
"default_barcode_page_cellspacing_number" => "Espacios de celdas por página del código de barras debe ser un número.",
|
||||
"default_barcode_page_cellspacing_required" => "Espacios de celdas por página del código de barras es requerido.",
|
||||
"default_barcode_page_width_number" => "Ancho de página del código de barras debe ser un número.",
|
||||
"default_barcode_page_width_required" => "Ancho de página del código de barras es requerido.",
|
||||
"default_barcode_width_number" => "Ancho del código de barras debe ser número.",
|
||||
"default_barcode_width_required" => "Ancho del código de barras es requerido.",
|
||||
"default_item_columns" => "Columnas de Productos Visibles por Defecto",
|
||||
"default_origin_tax_code" => "Código de impuesto por defecto",
|
||||
"default_receivings_discount" => "Descuento por Defecto para Recibos",
|
||||
"default_receivings_discount_number" => "El Descuento por Defecto Para Los Recibos Debe Ser Un Número.",
|
||||
"default_receivings_discount_required" => "El Descuento Predeterminado para los Recibos es un campo obligatorio.",
|
||||
"default_sales_discount" => "Descuento Predeterminado para Ventas",
|
||||
"default_sales_discount_number" => "Descuento en ventas predeterminado debe ser un número.",
|
||||
"default_sales_discount_required" => "Descuento en ventas predeterminado es requerido.",
|
||||
"default_tax_category" => "Categoría de Tasa predeterminada",
|
||||
"default_tax_code" => "Código de Impuesto Predeterminado",
|
||||
"default_tax_jurisdiction" => "Jurisdicción de Impuesto Predeterminado",
|
||||
"default_tax_name_number" => "El nombre de el impuesto debe ser letras.",
|
||||
"default_tax_name_required" => "El nombre del impuesto predeterminado es requerido.",
|
||||
"default_tax_rate" => "% de Impuestos Predeterminado",
|
||||
"default_tax_rate_1" => "Impuesto 1",
|
||||
"default_tax_rate_2" => "Impuesto 2",
|
||||
"default_tax_rate_3" => "Tasa de Impuestos 3",
|
||||
"default_tax_rate_number" => "El Impuesto Predeterminado debe ser un número.",
|
||||
"default_tax_rate_required" => "El Impuesto Predeterminado es requerido.",
|
||||
"derive_sale_quantity" => "Permitir cantidad de venta derivada",
|
||||
"derive_sale_quantity_tooltip" => "Si se marca entonces se proporcionará un nuevo tipo para los artículos ordenados por cantidad extendida",
|
||||
"dinner_table" => "Mesa",
|
||||
"dinner_table_duplicate" => "Utilice un nombre de mesa único.",
|
||||
"dinner_table_enable" => "Activar Mesa de Restaurante",
|
||||
"dinner_table_invalid_chars" => "El nombre de la mesa no puede contener '_'.",
|
||||
"dinner_table_required" => "La mesa es un campo obligatorio.",
|
||||
"dot" => "punto",
|
||||
"email" => "E-mail",
|
||||
"email_configuration" => "Configuracion de correo",
|
||||
"email_mailpath" => "Ruta a Sendmail",
|
||||
"email_protocol" => "Protocolo",
|
||||
"email_receipt_check_behaviour" => "Selector de Recibir por Correo",
|
||||
"email_receipt_check_behaviour_always" => "Siempre activado",
|
||||
"email_receipt_check_behaviour_last" => "Recordar ultima vez",
|
||||
"email_receipt_check_behaviour_never" => "Siempre desactivado",
|
||||
"email_smtp_crypto" => "Encriptado SMTP",
|
||||
"email_smtp_host" => "Servidor SMTP",
|
||||
"email_smtp_pass" => "Pasword SMTP",
|
||||
"email_smtp_port" => "Puerto SMTP",
|
||||
"email_smtp_timeout" => "Tiempo falla SMTP",
|
||||
"email_smtp_user" => "Usuario SMTP",
|
||||
"enable_avatar" => "Habilitar Avatar",
|
||||
"enable_avatar_tooltip" => "Habilitar Avatares para que se muestren en el menú desplegable Categorías y Registrarse ",
|
||||
"enable_dropdown_tooltip" => "No podrá agregar nuevas categorías si esto está marcado",
|
||||
"enable_new_look" => "Habilitar nueva apariencia",
|
||||
"enable_right_bar" => " Habilitar la barra lateral derecha",
|
||||
"enable_right_bar_tooltip" => "Cambiar la barra lateral de izquierda a derecha ",
|
||||
"enforce_privacy" => "Forzar privacidad",
|
||||
"enforce_privacy_tooltip" => "Proteja la privacidad de los clientes aplicando codificación de datos en caso de que se eliminen",
|
||||
"fax" => "Fax",
|
||||
"file_perm" => "Hay problemas con los permisos de archivo. Por favor corrija y vuelva a recargar esta página.",
|
||||
"financial_year" => "Inicio del año fiscal",
|
||||
"financial_year_apr" => "1º de Abril",
|
||||
"financial_year_aug" => "1º de Agosto",
|
||||
"financial_year_dec" => "1º de Diciembre",
|
||||
"financial_year_feb" => "1º de Febrero",
|
||||
"financial_year_jan" => "1º de Enero",
|
||||
"financial_year_jul" => "1º de Julio",
|
||||
"financial_year_jun" => "1º de Junio",
|
||||
"financial_year_mar" => "1º de Marzo",
|
||||
"financial_year_may" => "1º de Mayo",
|
||||
"financial_year_nov" => "1º de Noviembre",
|
||||
"financial_year_oct" => "1º de Octubre",
|
||||
"financial_year_sep" => "1º de Septiembre",
|
||||
"floating_labels" => "Etiquetas flotantes",
|
||||
"gcaptcha_enable" => "Inicio de sesión con reCAPTCHA",
|
||||
"gcaptcha_secret_key" => "Llave secreta reCAPTCHA",
|
||||
"gcaptcha_secret_key_required" => "reCAPTCHA Secret Key es requerida si se usa",
|
||||
"gcaptcha_site_key" => "Llave del sitio reCAPTCHA",
|
||||
"gcaptcha_site_key_required" => "reCAPTCHA Site Key es requerida si se usa",
|
||||
"gcaptcha_tooltip" => "Proteja la página de inicio de sesión con Google reCAPTCHA, haga clic en el icono de un par de claves de API.",
|
||||
"general" => "General",
|
||||
"general_configuration" => "Configuración General",
|
||||
"giftcard_number" => "Número de tarjeta de regalo",
|
||||
"giftcard_random" => "Generar aleatoriamente",
|
||||
"giftcard_series" => "Generar en serie",
|
||||
"image_allowed_file_types" => "Tipos de archivos permitidos",
|
||||
"image_max_height_tooltip" => "Altura máxima permitida de las cargas de imágenes en píxeles (px).",
|
||||
"image_max_size_tooltip" => "Tamaño máximo de archivo permitido de cargas de imágenes en kilobytes (kb).",
|
||||
"image_max_width_tooltip" => "Ancho máximo permitido de las cargas de imágenes en píxeles (px).",
|
||||
"image_restrictions" => "Restricciones de carga de imágenes",
|
||||
"include_hsn" => "Incluir Soporte para Códigos HSN",
|
||||
"info" => "Información",
|
||||
"info_configuration" => "Información del Comercio",
|
||||
"input_groups" => "Introducir Grupos",
|
||||
"integrations" => "Componentes Integrados",
|
||||
"integrations_configuration" => "Componentes de Terceros Integrados",
|
||||
"invoice" => "Factura",
|
||||
"invoice_configuration" => "Parámetros de Impresión",
|
||||
"invoice_default_comments" => "Comentarios predeterminados en la factura",
|
||||
"invoice_email_message" => "Plantilla de Factura por Email",
|
||||
"invoice_enable" => "Activar Facturación",
|
||||
"invoice_printer" => "Impresora Facturadora",
|
||||
"invoice_type" => "Tipo de Factura",
|
||||
"is_readable" => "es legible, pero los permisos de lectura son incorrectos. Pongalos en 640 o 660 cargue nuevamente.",
|
||||
"is_writable" => "es escribible, pero los permisos de escritura son incorrectos. Pongalos en 750 y recargue la página de nuevo.",
|
||||
"item_markup" => "Marcado de Artículo",
|
||||
"jsprintsetup_required" => "Advertencia!Esta funcionalidad desactivada solo funciona con el addon jsPrintSetup de FireFox instalado. Guardar de todas formas?",
|
||||
"language" => "Idioma",
|
||||
"last_used_invoice_number" => "Último numero de factura utilizado",
|
||||
"last_used_quote_number" => "Último número de presupuesto utilizado",
|
||||
"last_used_work_order_number" => "Ultimo usado sin numero",
|
||||
"left" => "Izquierda",
|
||||
"license" => "Licencia",
|
||||
"license_configuration" => "Anuncio de Licencia",
|
||||
"line_sequence" => "Secuencia de linea",
|
||||
"lines_per_page" => "Líneas por página",
|
||||
"lines_per_page_number" => "Líneas por página debe ser un número.",
|
||||
"lines_per_page_required" => "Líneas por página es requerido.",
|
||||
"locale" => "Localización",
|
||||
"locale_configuration" => "Configuración de la zona local",
|
||||
"locale_info" => "Informacion de la configuracion de la zona",
|
||||
"location" => "Inventario",
|
||||
"location_configuration" => "Ubicación de Inventario",
|
||||
"location_info" => "Información de Configuración de Ubicación",
|
||||
"login_form" => "Estilo del formulario de inicio de sesión",
|
||||
"logout" => "Desea hacer un respaldo antes de salir? Pulsa [OK] para respaldar o [Cancelar] para salir.",
|
||||
"mailchimp" => "Correo MailChimp",
|
||||
"mailchimp_api_key" => "Clave API de Mailchimp",
|
||||
"mailchimp_configuration" => "Configuración de Mailchimp",
|
||||
"mailchimp_key_successfully" => "Clave API correcta.",
|
||||
"mailchimp_key_unsuccessfully" => "Clave API incorrecta.",
|
||||
"mailchimp_lists" => "Lista(s) de Mailchimp",
|
||||
"mailchimp_tooltip" => "Haga clic en el icono de una clave de API.",
|
||||
"message" => "Mensajes SMS",
|
||||
"message_configuration" => "Configuracion del mensaje",
|
||||
"msg_msg" => "Texto del mensaje guardado",
|
||||
"msg_msg_placeholder" => "Si desea usar un formato de SMS guarde su mensaje aquí, en caso contrario deje en blanco.",
|
||||
"msg_pwd" => "SMS-API Password",
|
||||
"msg_pwd_required" => "SMS-API Password es un campo requerido",
|
||||
"msg_src" => "SMS-API ID remitente",
|
||||
"msg_src_required" => "SMS-API ID remitente es un campo requerido",
|
||||
"msg_uid" => "SMS-API Usuario",
|
||||
"msg_uid_required" => "SMS-API Usuario es un campo requerido",
|
||||
"multi_pack_enabled" => "Empaquetado Múltiple por Producto",
|
||||
"no_risk" => "Sin riesgos de seguridad/vulnerabilidad.",
|
||||
"none" => "ninguno",
|
||||
"notify_alignment" => "Posición de notificacion",
|
||||
"number_format" => "Formato de número",
|
||||
"number_locale" => "Localización",
|
||||
"number_locale_invalid" => "Localización ingresada invalida. Revisa el link en el tooltip para encontrar informacion.",
|
||||
"number_locale_required" => "Numero localizacion es un campo requerido.",
|
||||
"number_locale_tooltip" => "Encontrar una zonificacion adecuada en este enlace.",
|
||||
"os_timezone" => "Zona Horaria Local:",
|
||||
"ospos_info" => "Información de la Instalación OSPOS",
|
||||
"payment_options_order" => "Orden de opciones de pago",
|
||||
"perm_risk" => "Los permisos incorrectos dejan a este software en riesgo.",
|
||||
"phone" => "Teléfono comercial",
|
||||
"phone_required" => "Teléfono del Comercio es requerido.",
|
||||
"print_bottom_margin" => "Margen Inferior",
|
||||
"print_bottom_margin_number" => "Margen Inferior debe ser un número.",
|
||||
"print_bottom_margin_required" => "Margen Inferior es requerido.",
|
||||
"print_delay_autoreturn" => "Regresar automaticamente a Vender",
|
||||
"print_delay_autoreturn_number" => "Tiempo espera requerido para regresar a ventas.",
|
||||
"print_delay_autoreturn_required" => "El tiempo espera debe ser numérico.",
|
||||
"print_footer" => "Imprimir el pie de página del navegador",
|
||||
"print_header" => "Imprimir el encabezado del navegador",
|
||||
"print_left_margin" => "Margen Izquierdo",
|
||||
"print_left_margin_number" => "Margen Izquierdo debe ser un número.",
|
||||
"print_left_margin_required" => "Margen Izquierdo es requerido.",
|
||||
"print_receipt_check_behaviour" => "Selección de Imprimir recibo",
|
||||
"print_receipt_check_behaviour_always" => "Siempre activado",
|
||||
"print_receipt_check_behaviour_last" => "Recordar la ultima vez",
|
||||
"print_receipt_check_behaviour_never" => "Siempre desactivo",
|
||||
"print_right_margin" => "Margen Derecho",
|
||||
"print_right_margin_number" => "Margen Derecho debe ser un número.",
|
||||
"print_right_margin_required" => "Margen Derecho es requerido.",
|
||||
"print_silently" => "Mostrar configuracion pre- impresión",
|
||||
"print_top_margin" => "Margen Superior",
|
||||
"print_top_margin_number" => "Margen Superior debe ser un número.",
|
||||
"print_top_margin_required" => "Margen Superior es requerido.",
|
||||
"quantity_decimals" => "Decimales de Cantidades",
|
||||
"quick_cash_enable" => "Activar Botones de Efectivo",
|
||||
"quote_default_comments" => "Comentario inicial de cotizaciones",
|
||||
"receipt" => "Recibo",
|
||||
"receipt_category" => "Recibo con categoría",
|
||||
"receipt_configuration" => "Parámetros de Impresión",
|
||||
"receipt_default" => "Normal",
|
||||
"receipt_font_size" => "Tamaño letra",
|
||||
"receipt_font_size_number" => "Debe ser un numero el tamaño de letra.",
|
||||
"receipt_font_size_required" => "El tamaño de letra es requerido.",
|
||||
"receipt_info" => "Información de Configuración de Recibo",
|
||||
"receipt_printer" => "Impresora de Ticket",
|
||||
"receipt_short" => "Resumido",
|
||||
"receipt_show_company_name" => "Mostrar el nombre de la empresa",
|
||||
"receipt_show_description" => "Mostrar descripcion",
|
||||
"receipt_show_serialnumber" => "Mostrar numero de serie",
|
||||
"receipt_show_tax_ind" => "Mostrar indicador de impuestos",
|
||||
"receipt_show_taxes" => "Mostrar impuestos",
|
||||
"receipt_show_total_discount" => "Mostrar Descuento Total",
|
||||
"receipt_template" => "Formato de recibo",
|
||||
"receiving_calculate_average_price" => "Calcular Promedio de Precio. (Recepción)",
|
||||
"recv_invoice_format" => "Formato de Factura de Recepción",
|
||||
"register_mode_default" => "Modo de registro por defecto",
|
||||
"report_an_issue" => "Informe de algún problema",
|
||||
"return_policy_required" => "Política de Devolución requerida.",
|
||||
"reward" => "Recompensas",
|
||||
"reward_configuration" => "Configuración de recompensas",
|
||||
"right" => "Derecha",
|
||||
"sales_invoice_format" => "Formato de Facturas de Venta",
|
||||
"sales_quote_format" => "Formato de presupuesto de las ventas",
|
||||
"saved_successfully" => "Configuración guardada satisfactoriamente.",
|
||||
"saved_unsuccessfully" => "Configuración no guardada.",
|
||||
"security_issue" => "Advertencia de vulnerabilidad de seguridad",
|
||||
"server_notice" => "Por Favor Use la Siguiente Información para Reportar Problemas.",
|
||||
"service_charge" => "Costo de Servicio",
|
||||
"show_due_enable" => "Mostrar vencimientos de clientes",
|
||||
"show_office_group" => "Mostrar icono oficina",
|
||||
"statistics" => "Enviar estadísticas",
|
||||
"statistics_tooltip" => "Envíe estadísticas para el desarrollo y mejora de funciones.",
|
||||
"stock_location" => "Ubicación de Inventario",
|
||||
"stock_location_duplicate" => "El nombre de inventario debe ser único.",
|
||||
"stock_location_invalid_chars" => "Nombre de la Ubicación de Inventario no debe contener '_'.",
|
||||
"stock_location_required" => "Número de Ubicación de Inventario es requerido.",
|
||||
"suggestions_fifth_column" => "Columna 5",
|
||||
"suggestions_first_column" => "Columna 1",
|
||||
"suggestions_fourth_column" => "Columna 4",
|
||||
"suggestions_layout" => "Sugerencias de búsqueda",
|
||||
"suggestions_second_column" => "Columna 2",
|
||||
"suggestions_third_column" => "Columna 3",
|
||||
"system_conf" => "Sistema OSPOS",
|
||||
"system_info" => "System Info",
|
||||
"table" => "Mesa",
|
||||
"table_configuration" => "Configuración de Mesa",
|
||||
"takings_printer" => "Impresión de retenciones",
|
||||
"tax" => "Impuestos",
|
||||
"tax_category" => "Categoría impuesto",
|
||||
"tax_category_duplicate" => "Categoría de impuesto ingresada ya existe.",
|
||||
"tax_category_invalid_chars" => "Categoría de impuesto ingresada es invalida.",
|
||||
"tax_category_required" => "Categoría de impuesto es requerida.",
|
||||
"tax_category_used" => "La categoría de impuestos no puede borrarse, esta en uso.",
|
||||
"tax_configuration" => "Configuracion Impuesto",
|
||||
"tax_decimals" => "Decimales de impuestos",
|
||||
"tax_id" => "Identificador del Impuesto",
|
||||
"tax_included" => "Impuestos incluidos",
|
||||
"theme" => "Tema",
|
||||
"theme_preview" => "Vista Previa del Tema:",
|
||||
"thousands_separator" => "Separador de miles",
|
||||
"timezone" => "Zona Horaria",
|
||||
"timezone_error" => "La zona horaria de OSPOS es diferente de tu zona horaria local.",
|
||||
"top" => "Arriba",
|
||||
"use_destination_based_tax" => "Usar Impuesto Basado en Destino",
|
||||
"user_timezone" => "Zona Horaria OSPOS:",
|
||||
"website" => "Sitio Web",
|
||||
"wholesale_markup" => "Marcado al por mayor",
|
||||
"work_order_enable" => "Soporte Ordenes de Trabajo",
|
||||
"work_order_format" => "Formato Ordenes de trabajo",
|
||||
];
|
||||
|
||||
@@ -1,72 +1,71 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_minus' => "Inventario a agregar/substraer.",
|
||||
'allow_alt_description' => "Permitir Descripción Alternativa",
|
||||
'bulk_edit' => "Edición Múltiple",
|
||||
'cannot_be_deleted' => "No se puede borrar las tarjetas seleccionadas. Una o más tiene ventas.",
|
||||
'cannot_find_giftcard' => "Tarjeta Regalo no encontrada.",
|
||||
'cannot_use' => "Tarjeta Regalo {0} no puede ser usada: Cliente invalido.",
|
||||
'card_value' => "Valor",
|
||||
'category' => "Categoría",
|
||||
'change_all_to_allow_alt_desc' => "Permitir Descripción Alternativa para todos.",
|
||||
'change_all_to_not_allow_allow_desc' => "No permitir descripción alternativa para todos.",
|
||||
'change_all_to_serialized' => "Cambiar Todo A Serializado",
|
||||
'change_all_to_unserialized' => "Cambiar Todo A Deserializado",
|
||||
'confirm_bulk_edit' => "¿Seguro(a) de querer editar las tarjetas de regalo seleccionadas?",
|
||||
'confirm_delete' => "¿Seguro(a) de querer eliminar las tarjetas de regalo seleccionadas?",
|
||||
'confirm_restore' => "Esta seguro de querer restaurar la(s) entrada(s) seleccionada(s)?",
|
||||
'cost_price' => "Precio al Por Mayor",
|
||||
'count' => "Actualizar Inventario",
|
||||
'csv_import_failed' => "Falló, se recomeinda usar LibreOffice.",
|
||||
'current_quantity' => "Cantidad Actual",
|
||||
'description' => "Descripción",
|
||||
'details_count' => "Detalles del Levantamiento de Inventario",
|
||||
'do_nothing' => "No hacer nada",
|
||||
'edit_fields_you_want_to_update' => "Edita los campos que quieras actualizar en TODAS las tarjetas de regalo seleccionadas.",
|
||||
'edit_multiple_giftcards' => "Editando Múltiples Tarjetas de Regalo.",
|
||||
'error_adding_updating' => "Error agregando/actualizando tarjeta de regalo.",
|
||||
'error_updating_multiple' => "Error actualizando tarjetas de regalo.",
|
||||
'generate_barcodes' => "Generar Códigos de Barras",
|
||||
'giftcard' => "Tarjeta de Regalo",
|
||||
'giftcard_number' => "Número de Tarjeta de Regalo",
|
||||
'info_provided_by' => "Info provista por",
|
||||
'inventory_comments' => "Comentarios",
|
||||
'is_serialized' => "La Tarjeta de Regalo tiene Número de Serie",
|
||||
'low_inventory_giftcards' => "Tarjetas con Bajo Inventario",
|
||||
'manually_editing_of_quantity' => "Edición Manual de Cantidad",
|
||||
'must_select_giftcard_for_barcode' => "Debes seleccionar por lo menos 1 tarjeta para generar códigos de barras.",
|
||||
'new' => "Nueva Tarjeta de Regalo",
|
||||
'no_description_giftcards' => "Tarjetas de Regalo sin Descripción",
|
||||
'no_giftcards_to_display' => "No hay Tarjetas de Regalo.",
|
||||
'none' => "Ninguno(a)",
|
||||
'none_selected' => "No has seleccionado tarjetas de regalo para editar.",
|
||||
'number' => "Número de Tarjeta de Regalo debe ser un número.",
|
||||
'number_information' => "Número de Tarjeta de Regalo",
|
||||
'number_required' => "Número de Tarjeta de Regalo es requerido.",
|
||||
'one_or_multiple' => "tarjeta(s) de regalo",
|
||||
'person_id' => "Cliente",
|
||||
'quantity' => "Cantidad",
|
||||
'quantity_required' => "Cantidad es requerido. Por favor, haz click en (X) para cancelar.",
|
||||
'remaining_balance' => "El valor excedente de la tarjeta de regalo {0} es de {1}!",
|
||||
'reorder_level' => "Cantidad Mínima",
|
||||
'retrive_giftcard_info' => "Obtener Info de Tarjeta de Regalo",
|
||||
'sales_tax_1' => "Impuesto de Venta 1",
|
||||
'sales_tax_2' => "Impuesto de Venta 2",
|
||||
'serialized_giftcards' => "Tarjetas Serializadas",
|
||||
'successful_adding' => "Has agregado satisfactoriamente una tarjeta de regalo",
|
||||
'successful_bulk_edit' => "Has actualizado satisfactoriamente las tarjetas de regalo seleccionadas",
|
||||
'successful_deleted' => "Has borrado satisfactoriamente",
|
||||
'successful_updating' => "Has actualizado satisfactoriamente una tarjeta de regalo",
|
||||
'supplier' => "Proveedor",
|
||||
'tax_1' => "Impuesto 1",
|
||||
'tax_2' => "Impuesto 2",
|
||||
'tax_percent' => "Porcentaje de Impuesto",
|
||||
'tax_percents' => "Porcentaje de Impuesto(s)",
|
||||
'unit_price' => "Precio Unitario",
|
||||
'upc_database' => "Base de Datos UPC",
|
||||
'update' => "Actualizar Tarjeta de Regalo",
|
||||
'use_inventory_menu' => "Usar Menú de Inventario",
|
||||
'value' => "Valor de Tarjeta de Regalo debe ser un número.",
|
||||
'value_required' => "Valor de Tarjeta de Regalo es requerido.",
|
||||
"add_minus" => "Inventario a agregar/substraer.",
|
||||
"allow_alt_description" => "Permitir Descripción Alternativa",
|
||||
"bulk_edit" => "Edición Múltiple",
|
||||
"cannot_be_deleted" => "No se puede borrar las tarjetas seleccionadas. Una o más tiene ventas.",
|
||||
"cannot_find_giftcard" => "Tarjeta Regalo no encontrada.",
|
||||
"cannot_use" => "Tarjeta Regalo {0} no puede ser usada: Cliente invalido.",
|
||||
"card_value" => "Valor",
|
||||
"category" => "Categoría",
|
||||
"change_all_to_allow_alt_desc" => "Permitir Descripción Alternativa En Todos.",
|
||||
"change_all_to_not_allow_allow_desc" => "No Permitir Descripción Alternativa Para Todos.",
|
||||
"change_all_to_serialized" => "Cambiar Todo A Serializado",
|
||||
"change_all_to_unserialized" => "Cambiar Todo A Deserializado",
|
||||
"confirm_bulk_edit" => "¿Seguro(a) de querer editar las tarjetas de regalo seleccionadas?",
|
||||
"confirm_delete" => "¿Seguro(a) de querer eliminar las tarjetas de regalo seleccionadas?",
|
||||
"confirm_restore" => "Esta seguro de querer restaurar la(s) entrada(s) seleccionada(s)?",
|
||||
"cost_price" => "Precio de Costo",
|
||||
"count" => "Actualizar Inventario",
|
||||
"csv_import_failed" => "Falló, se recomeinda usar LibreOffice.",
|
||||
"current_quantity" => "Cantidad Actual",
|
||||
"description" => "Descripción",
|
||||
"details_count" => "Detalles del Levantamiento de Inventario",
|
||||
"do_nothing" => "No hacer nada",
|
||||
"edit_fields_you_want_to_update" => "Edita los campos que quieras actualizar en TODAS las tarjetas de regalo seleccionadas.",
|
||||
"edit_multiple_giftcards" => "Editando Múltiples Tarjetas de Regalo.",
|
||||
"error_adding_updating" => "Error agregando/actualizando tarjeta de regalo.",
|
||||
"error_updating_multiple" => "Error actualizando tarjetas de regalo.",
|
||||
"generate_barcodes" => "Generar Códigos de Barras",
|
||||
"giftcard" => "Tarjeta de Regalo",
|
||||
"giftcard_number" => "Número de Tarjeta de Regalo",
|
||||
"info_provided_by" => "Info provista por",
|
||||
"inventory_comments" => "Comentarios",
|
||||
"is_serialized" => "La Tarjeta de Regalo tiene Número de Serie",
|
||||
"low_inventory_giftcards" => "Tarjetas con Bajo Inventario",
|
||||
"manually_editing_of_quantity" => "Edición Manual de Cantidad",
|
||||
"must_select_giftcard_for_barcode" => "Debes seleccionar por lo menos 1 tarjeta para generar códigos de barras.",
|
||||
"new" => "Nueva Tarjeta de Regalo",
|
||||
"no_description_giftcards" => "Tarjetas de Regalo sin Descripción",
|
||||
"no_giftcards_to_display" => "No hay Tarjetas de Regalo.",
|
||||
"none" => "Ninguno(a)",
|
||||
"none_selected" => "No has seleccionado tarjetas de regalo para editar.",
|
||||
"number" => "Número de Tarjeta de Regalo debe ser un número.",
|
||||
"number_information" => "Número de Tarjeta de Regalo",
|
||||
"number_required" => "Número de Tarjeta de Regalo es requerido.",
|
||||
"one_or_multiple" => "tarjeta(s) de regalo",
|
||||
"person_id" => "Cliente",
|
||||
"quantity" => "Cantidad",
|
||||
"quantity_required" => "Cantidad es requerido. Por favor, haz click en (X) para cancelar.",
|
||||
"remaining_balance" => "El valor excedente de la tarjeta de regalo {0} es de {1}!",
|
||||
"reorder_level" => "Cantidad Mínima",
|
||||
"retrive_giftcard_info" => "Obtener Info de Tarjeta de Regalo",
|
||||
"sales_tax_1" => "Impuesto de Venta 1",
|
||||
"sales_tax_2" => "Impuesto de Venta 2",
|
||||
"serialized_giftcards" => "Tarjetas Serializadas",
|
||||
"successful_adding" => "Has agregado satisfactoriamente una tarjeta de regalo",
|
||||
"successful_bulk_edit" => "Has actualizado satisfactoriamente las tarjetas de regalo seleccionadas",
|
||||
"successful_deleted" => "Has borrado satisfactoriamente",
|
||||
"successful_updating" => "Has actualizado satisfactoriamente una tarjeta de regalo",
|
||||
"supplier" => "Proveedor",
|
||||
"tax_1" => "Impuesto 1",
|
||||
"tax_2" => "Impuesto 2",
|
||||
"tax_percent" => "Porcentaje de Impuesto",
|
||||
"tax_percents" => "Porcentaje de Impuesto(s)",
|
||||
"unit_price" => "Precio Unitario",
|
||||
"upc_database" => "Base de Datos UPC",
|
||||
"update" => "Actualizar Tarjeta de Regalo",
|
||||
"use_inventory_menu" => "Usar Menú de Inventario",
|
||||
"value" => "Valor de Tarjeta de Regalo debe ser un número.",
|
||||
"value_required" => "Valor de Tarjeta de Regalo es requerido.",
|
||||
];
|
||||
|
||||
@@ -1,121 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_minus' => "Inventario a agregar/substraer.",
|
||||
'allow_alt_description' => "Permitir Descripción Alternativa",
|
||||
'amount_entry' => "Monto entrada",
|
||||
'bulk_edit' => "Edición Múltiple",
|
||||
'buy_price_required' => "Precio de Compra es requerido.",
|
||||
'cannot_be_deleted' => "No se pueden borrar los artículos seleccionados. Uno o más tiene(n) ventas.",
|
||||
'cannot_find_item' => "Articulo no encontrado.",
|
||||
'categories' => "Categorías. Seleccione el número de artículo.",
|
||||
'category' => "Categoría",
|
||||
'category_new' => "Nueva Categoría",
|
||||
'category_required' => "Categoría es requerido.",
|
||||
'change_all_to_allow_alt_desc' => "Permitir Descripción Alternativa para todos.",
|
||||
'change_all_to_not_allow_allow_desc' => "No permitir descripción alternativa para todos.",
|
||||
'change_all_to_serialized' => "Cambiar Todo A Serializado",
|
||||
'change_all_to_unserialized' => "Cambiar Todo A Deserializado",
|
||||
'change_image' => "Cambiar Imagen",
|
||||
'confirm_bulk_edit' => "¿Estás seguro(a) de querer editar los artículos seleccionados?",
|
||||
'confirm_bulk_edit_wipe_taxes' => "Toda la información de impuesto del articulo sera cambiada.",
|
||||
'confirm_delete' => "¿Estás seguro(a) de querer borrar los artículos seleccionados?",
|
||||
'confirm_restore' => "Esta seguro de querer restaurar lo(s) articulo(s) seleccionada(s)?",
|
||||
'cost_price' => "Precio al Por Mayor",
|
||||
'cost_price_number' => "Precio al Por Mayor debe ser un número.",
|
||||
'cost_price_required' => "Precio al Por Mayor es un campo requerido.",
|
||||
'count' => "Actualizar Inventario",
|
||||
'csv_import_failed' => "Falló la importación de Hoja de Cálculo",
|
||||
'csv_import_nodata_wrongformat' => "El archivo subido no tiene datos o el formato es incorrecto.",
|
||||
'csv_import_partially_failed' => "Hubo {0} falla(s) en la importación de producto(s) en la(s) línea(s): {1}. Ninguna fila ha sido importada.",
|
||||
'csv_import_success' => "Se importaron los articulos exitosamente.",
|
||||
'current_quantity' => "Cantidad Actual",
|
||||
'default_pack_name' => "Cada",
|
||||
'description' => "Descripción",
|
||||
'details_count' => "Detalles de Cuenta de Inventario",
|
||||
'do_nothing' => "No Hacer Nada",
|
||||
'edit' => "Editar",
|
||||
'edit_fields_you_want_to_update' => "Edita los campos para actualizar en los artículos seleccionados.",
|
||||
'edit_multiple_items' => "Editando Artículos Múltiples",
|
||||
'empty_upc_items' => "Items con UPC Vacio",
|
||||
'error_adding_updating' => "Error agregando/actualizando artículo",
|
||||
'error_updating_multiple' => "Error actualizando artículos",
|
||||
'generate_barcodes' => "Generar Códigos de Barras",
|
||||
'hsn_code' => "Nomenclatura de Sistemas Harmonizados",
|
||||
'image' => "Avatar",
|
||||
'import_items_csv' => "Importar Artículos desde CSV",
|
||||
'info_provided_by' => "Info provista por",
|
||||
'inventory' => "Inventario",
|
||||
'inventory_CSV_import_quantity' => "Catidad Importada desde CSV",
|
||||
'inventory_comments' => "Comentarios",
|
||||
'inventory_data_tracking' => "Seguimiento de datos de inventario",
|
||||
'inventory_date' => "Fecha",
|
||||
'inventory_employee' => "Empleado",
|
||||
'inventory_in_out_quantity' => "Cantidad E/S",
|
||||
'inventory_remarks' => "Observaciones",
|
||||
'is_deleted' => "Eliminado",
|
||||
'is_printed' => "No impreso",
|
||||
'is_serialized' => "El Artículo tiene Número de Serie",
|
||||
'item' => "Artículo",
|
||||
'item_id' => "Id del Artículo",
|
||||
'item_number' => "UPC/EAN/ISBN",
|
||||
'item_number_duplicate' => "El número de artículo ya esta presente en la base de datos.",
|
||||
'kit' => "Kits de artículos",
|
||||
'location' => "Ubicación",
|
||||
'low_inventory_items' => "Artículos de Inventario Escaso",
|
||||
'low_sell_item' => "Producto de bajas ventas",
|
||||
'manually_editing_of_quantity' => "Edición Manual de Cantidad",
|
||||
'markup' => "El marcado de elementos está habilitado",
|
||||
'name' => "Nombre Artículo",
|
||||
'name_required' => "Nombre de Artículo es requerido.",
|
||||
'new' => "Nuevo Artículo",
|
||||
'no_description_items' => "Artículos sin Descripción",
|
||||
'no_items_to_display' => "Sin datos que mostrar.",
|
||||
'none' => "Ninguno",
|
||||
'none_selected' => "No has seleccionado artículos para editar",
|
||||
'nonstock' => "Sin stock",
|
||||
'number_information' => "Número del Artículo",
|
||||
'number_required' => "UPC/EAN/ISBN es un campo requerido.",
|
||||
'one_or_multiple' => "articulo(s)",
|
||||
'pack_name' => "Nombre del Paquete",
|
||||
'qty_per_pack' => "Cantidad por Paquete",
|
||||
'quantity' => "Cantidad en Stock",
|
||||
'quantity_number' => "Cantidad debe ser número.",
|
||||
'quantity_required' => "Cantidad es requerido.",
|
||||
'receiving_quantity' => "Cantidad Recibida",
|
||||
'remove_image' => "Quitar Imagen",
|
||||
'reorder_level' => "Cantidad Mínima",
|
||||
'reorder_level_number' => "Cantidad Mínima debe ser número.",
|
||||
'reorder_level_required' => "Cantidad Mínima es requerido.",
|
||||
'retrive_item_info' => "Obtener Información de Artículo",
|
||||
'sales_tax_1' => "Impuesto de Ventas 1",
|
||||
'sales_tax_2' => "Impuesto de Ventas 2",
|
||||
'search_attributes' => "Atributos de Búsqueda",
|
||||
'select_image' => "Seleccionar Imagen",
|
||||
'serialized_items' => "Artículos Serializados",
|
||||
'standard' => "Estándar",
|
||||
'stock' => "Existencia",
|
||||
'stock_location' => "Ubicación de Inventario",
|
||||
'stock_type' => "Tipo de stock",
|
||||
'successful_adding' => "Has agregado satisfactoriamente un artículo",
|
||||
'successful_bulk_edit' => "Has actualizado satisfactoriamente los artículos seleccionados",
|
||||
'successful_deleted' => "Has borrado satisfactoriamente",
|
||||
'successful_updating' => "Has actualizando satisfactoriamente un artículo",
|
||||
'supplier' => "Proveedor",
|
||||
'tax_1' => "Impuesto 1",
|
||||
'tax_2' => "Impuesto 2",
|
||||
'tax_3' => "Impuestos 3",
|
||||
'tax_category' => "Categoría del Impuesto",
|
||||
'tax_percent' => "Porcentaje de Impuesto",
|
||||
'tax_percent_number' => "Impuesto porcentaje debe ser numerico",
|
||||
'tax_percent_required' => "Porcentaje de Impuesto es requerido.",
|
||||
'tax_percents' => "Porcentaje de Impuesto(s)",
|
||||
'temp' => "Temporal",
|
||||
'type' => "Tipo de ítem",
|
||||
'unit_price' => "Precio de Venta",
|
||||
'unit_price_number' => "Precio de Venta debe ser número.",
|
||||
'unit_price_required' => "Precio de Venta es requerido.",
|
||||
'upc_database' => "Base de datos UPC",
|
||||
'update' => "Actualizar Artículo",
|
||||
'use_inventory_menu' => "Usar Menú de Inventario",
|
||||
"add_minus" => "Inventario a agregar/substraer.",
|
||||
"allow_alt_description" => "Permitir Descripción Alternativa",
|
||||
"amount_entry" => "Monto entrada",
|
||||
"bulk_edit" => "Edición Múltiple",
|
||||
"buy_price_required" => "Precio de Compra es requerido.",
|
||||
"cannot_be_deleted" => "No se pueden borrar los artículos seleccionados. Uno o más tiene(n) ventas.",
|
||||
"cannot_find_item" => "Articulo no encontrado.",
|
||||
"categories" => "Categorías. Seleccione el número de artículo.",
|
||||
"category" => "Categoría",
|
||||
"category_new" => "Nueva Categoría",
|
||||
"category_required" => "Categoría es requerido.",
|
||||
"change_all_to_allow_alt_desc" => "Permitir Descripción Alternativa para todos.",
|
||||
"change_all_to_not_allow_allow_desc" => "Denegar Descripción Alternativa para todos.",
|
||||
"change_all_to_serialized" => "Cambiar Todo A Serializado",
|
||||
"change_all_to_unserialized" => "Cambiar Todo A Deserializado",
|
||||
"change_image" => "Cambiar Imagen",
|
||||
"confirm_bulk_edit" => "¿Estás seguro(a) de querer editar los artículos seleccionados?",
|
||||
"confirm_bulk_edit_wipe_taxes" => "Toda la información de impuesto del articulo sera cambiada.",
|
||||
"confirm_delete" => "¿Estás seguro(a) de querer borrar los artículos seleccionados?",
|
||||
"confirm_restore" => "Esta seguro de querer restaurar lo(s) articulo(s) seleccionada(s)?",
|
||||
"cost_price" => "Precio al Por Mayor",
|
||||
"cost_price_number" => "Precio al Por Mayor debe ser un número.",
|
||||
"cost_price_required" => "Precio al Por Mayor es un campo requerido.",
|
||||
"count" => "Actualizar Inventario",
|
||||
"csv_import_failed" => "Falló la importación de Hoja de Cálculo",
|
||||
"csv_import_nodata_wrongformat" => "El archivo subido no tiene datos o el formato es incorrecto.",
|
||||
"csv_import_partially_failed" => "Hubo {0} falla(s) en la importación de producto(s) en la(s) línea(s): {1}. Ninguna fila ha sido importada.",
|
||||
"csv_import_success" => "Se importaron los articulos exitosamente.",
|
||||
"current_quantity" => "Cantidad Actual",
|
||||
"default_pack_name" => "Cada",
|
||||
"description" => "Descripción",
|
||||
"details_count" => "Detalles de Cuenta de Inventario",
|
||||
"do_nothing" => "No Hacer Nada",
|
||||
"edit" => "Editar",
|
||||
"edit_fields_you_want_to_update" => "Edita los campos para actualizar en los artículos seleccionados.",
|
||||
"edit_multiple_items" => "Editando Artículos Múltiples",
|
||||
"empty_upc_items" => "Items con UPC Vacio",
|
||||
"error_adding_updating" => "Error agregando/actualizando artículo",
|
||||
"error_updating_multiple" => "Error actualizando artículos",
|
||||
"generate_barcodes" => "Generar Códigos de Barras",
|
||||
"hsn_code" => "Nomenclatura de Sistemas Harmonizados",
|
||||
"image" => "Avatar",
|
||||
"import_items_csv" => "Importar Artículos desde CSV",
|
||||
"info_provided_by" => "Info provista por",
|
||||
"inventory" => "Inventario",
|
||||
"inventory_CSV_import_quantity" => "Catidad Importada desde CSV",
|
||||
"inventory_comments" => "Comentarios",
|
||||
"inventory_data_tracking" => "Seguimiento de datos de inventario",
|
||||
"inventory_date" => "Fecha",
|
||||
"inventory_employee" => "Empleado",
|
||||
"inventory_in_out_quantity" => "Cantidad E/S",
|
||||
"inventory_remarks" => "Observaciones",
|
||||
"is_deleted" => "Eliminado",
|
||||
"is_printed" => "No impreso",
|
||||
"is_serialized" => "El Artículo tiene Número de Serie",
|
||||
"item" => "Artículo",
|
||||
"item_id" => "Id del Artículo",
|
||||
"item_number" => "UPC/EAN/ISBN",
|
||||
"item_number_duplicate" => "El número de artículo ya esta presente en la base de datos.",
|
||||
"kit" => "Kits de artículos",
|
||||
"location" => "Ubicación",
|
||||
"low_inventory_items" => "Artículos de Inventario Escaso",
|
||||
"low_sell_item" => "Producto de bajas ventas",
|
||||
"manually_editing_of_quantity" => "Edición Manual de Cantidad",
|
||||
"markup" => "El marcado de elementos está habilitado",
|
||||
"name" => "Nombre Artículo",
|
||||
"name_required" => "Nombre de Artículo es requerido.",
|
||||
"new" => "Nuevo Artículo",
|
||||
"no_description_items" => "Artículos sin Descripción",
|
||||
"no_items_to_display" => "Sin datos que mostrar.",
|
||||
"none" => "Ninguno",
|
||||
"none_selected" => "No has seleccionado artículos para editar",
|
||||
"nonstock" => "Sin stock",
|
||||
"number_information" => "Número del Artículo",
|
||||
"number_required" => "UPC/EAN/ISBN es un campo requerido.",
|
||||
"one_or_multiple" => "articulo(s)",
|
||||
"pack_name" => "Nombre del Paquete",
|
||||
"qty_per_pack" => "Cantidad por Paquete",
|
||||
"quantity" => "Cantidad en Stock",
|
||||
"quantity_number" => "Cantidad debe ser número.",
|
||||
"quantity_required" => "Cantidad es requerido.",
|
||||
"receiving_quantity" => "Cantidad Recibida",
|
||||
"remove_image" => "Quitar Imagen",
|
||||
"reorder_level" => "Cantidad Mínima",
|
||||
"reorder_level_number" => "Cantidad Mínima debe ser número.",
|
||||
"reorder_level_required" => "Cantidad Mínima es requerido.",
|
||||
"retrive_item_info" => "Obtener Información de Artículo",
|
||||
"sales_tax_1" => "Impuesto de Ventas 1",
|
||||
"sales_tax_2" => "Impuesto de Ventas 2",
|
||||
"search_attributes" => "Atributos de Búsqueda",
|
||||
"select_image" => "Seleccionar Imagen",
|
||||
"serialized_items" => "Artículos Serializados",
|
||||
"standard" => "Estándar",
|
||||
"stock" => "Existencia",
|
||||
"stock_location" => "Ubicación de Inventario",
|
||||
"stock_type" => "Tipo de stock",
|
||||
"successful_adding" => "Has agregado satisfactoriamente un artículo",
|
||||
"successful_bulk_edit" => "Has actualizado satisfactoriamente los artículos seleccionados",
|
||||
"successful_deleted" => "Has borrado satisfactoriamente",
|
||||
"successful_updating" => "Has actualizando satisfactoriamente un artículo",
|
||||
"supplier" => "Proveedor",
|
||||
"tax_1" => "Impuesto 1",
|
||||
"tax_2" => "Impuesto 2",
|
||||
"tax_3" => "Impuestos 3",
|
||||
"tax_category" => "Categoría del Impuesto",
|
||||
"tax_percent" => "Porcentaje de Impuesto",
|
||||
"tax_percent_number" => "Impuesto porcentaje debe ser numerico",
|
||||
"tax_percent_required" => "Porcentaje de Impuesto es requerido.",
|
||||
"tax_percents" => "Porcentaje de Impuesto(s)",
|
||||
"temp" => "Temporal",
|
||||
"type" => "Tipo de ítem",
|
||||
"unit_price" => "Precio de Venta",
|
||||
"unit_price_number" => "Precio de Venta debe ser número.",
|
||||
"unit_price_required" => "Precio de Venta es requerido.",
|
||||
"upc_database" => "Base de datos UPC",
|
||||
"update" => "Actualizar Artículo",
|
||||
"use_inventory_menu" => "Usar Menú de Inventario",
|
||||
];
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'gcaptcha' => "No soy un robot.",
|
||||
'go' => "Ir",
|
||||
'invalid_gcaptcha' => "Por favor verifique si usted no es un robot.",
|
||||
'invalid_installation' => "La instalación no es correcta, comprueba el fichero php.ini.",
|
||||
'invalid_username_and_password' => "Usuario y/o Contraseña no validos.",
|
||||
'login' => "Iniciar Sesión",
|
||||
'logout' => "Cerrar sesión",
|
||||
'migration_needed' => "La migración de la base de datos a {0} se iniciará después del inicio de sesión.",
|
||||
'password' => "Contraseña",
|
||||
'required_username' => "El campo de nombre de usuario es obligatorio.",
|
||||
'username' => "Usuario",
|
||||
'welcome' => "Bienvenido a {0}!",
|
||||
"gcaptcha" => "No soy un robot.",
|
||||
"go" => "Ir",
|
||||
"invalid_gcaptcha" => "Por favor verifique si usted no es un robot.",
|
||||
"invalid_installation" => "La instalación no es correcta, comprueba el fichero php.ini.",
|
||||
"invalid_username_and_password" => "Usuario y/o Contraseña no validos.",
|
||||
"login" => "Iniciar Sesión",
|
||||
"logout" => "Cerrar sesión",
|
||||
"migration_needed" => "La migración de la base de datos a {0} se iniciará después del inicio de sesión.",
|
||||
"password" => "Contraseña",
|
||||
"required_username" => "",
|
||||
"username" => "Usuario",
|
||||
"welcome" => "Bienvenido a {0}!",
|
||||
];
|
||||
|
||||
@@ -1,226 +1,224 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'customers_available_points' => "Puntos Disponibles",
|
||||
'rewards_package' => "Paquete de recompensas",
|
||||
'rewards_remaining_balance' => "El remanente de puntos es ",
|
||||
'account_number' => "Cuenta #",
|
||||
'add_payment' => "Agregar Pago",
|
||||
'amount_due' => "Monto Adeudado",
|
||||
'amount_tendered' => "Cantidad Recibida",
|
||||
'authorized_signature' => "Firma Autorizada",
|
||||
'cancel_sale' => "Cancelar Venta",
|
||||
'cash' => "Efectivo",
|
||||
'cash_1' => "1",
|
||||
'cash_2' => "5",
|
||||
'cash_3' => "10",
|
||||
'cash_4' => "20",
|
||||
'cash_adjustment' => "Ajuste de Efectivo",
|
||||
'cash_deposit' => "Deposito Efectivo",
|
||||
'cash_filter' => "Efectivo",
|
||||
'change_due' => "Cambio",
|
||||
'change_price' => "Cambiar el precio de venta",
|
||||
'check' => "Cheque",
|
||||
'check_balance' => "Balance de Cheque",
|
||||
'check_filter' => "Cheque",
|
||||
'close' => "Cerrar Lista",
|
||||
'comment' => "Comentario",
|
||||
'comments' => "Comentarios",
|
||||
'company_name' => "Nombre de Comañía",
|
||||
'complete' => "Completa",
|
||||
'complete_sale' => "Completar Venta",
|
||||
'confirm_cancel_sale' => "¿Seguro quiere cancelar esta venta? Todos los artículos serán eliminados.",
|
||||
'confirm_delete' => "¿Seguro quiere borrar las ventas seleccionadas?",
|
||||
'confirm_restore' => "Esta seguro de querer restaurar la(s) venta(s) seleccionada(s)?",
|
||||
'credit' => "Tarjeta de Crédito",
|
||||
'credit_deposit' => "Deposito Credito",
|
||||
'credit_filter' => "Tarjeta de Crédito",
|
||||
'current_table' => "Tabla Actual",
|
||||
'customer' => "cliente",
|
||||
'customer_address' => "Direccion",
|
||||
'customer_discount' => "Descuento",
|
||||
'customer_email' => "Email",
|
||||
'customer_location' => "Ubicacion",
|
||||
'customer_mailchimp_status' => "Estado de Mailchimp",
|
||||
'customer_optional' => "(Obligatorio para Pagos Vencidos)",
|
||||
'customer_required' => "(Requerido)",
|
||||
'customer_total' => "Total",
|
||||
'customer_total_spent' => "Total Gastado",
|
||||
'daily_sales' => "Sus Ventas Diarias",
|
||||
'date' => "Fecha",
|
||||
'date_range' => "Rango de Fecha",
|
||||
'date_required' => "Una fecha correcta debe ser ingresada.",
|
||||
'date_type' => "Campo de Fecha es requerido.",
|
||||
'debit' => "Tarjeta de Débito",
|
||||
'debit_filter' => "Tarjeta de Débito",
|
||||
'delete' => "Permitir borrar",
|
||||
'delete_confirmation' => "¿Seguro quiere borrar esta venta? Esta acción no se puede deshacer.",
|
||||
'delete_entire_sale' => "Borrar la venta completa",
|
||||
'delete_successful' => "Venta borrada correctamente.",
|
||||
'delete_unsuccessful' => "Venta no borrada, fallida.",
|
||||
'description_abbrv' => "Descrp.",
|
||||
'discard' => "Descartar",
|
||||
'discard_quote' => "Descartar",
|
||||
'discount' => "Descuento",
|
||||
'discount_included' => "% Descuento",
|
||||
'discount_short' => "%",
|
||||
'due' => "Adeudado",
|
||||
'due_filter' => "Adeudado",
|
||||
'edit' => "Editar",
|
||||
'edit_item' => "Editar Artículo",
|
||||
'edit_sale' => "Editar Venta",
|
||||
'email_receipt' => "Enviar Ticket",
|
||||
'employee' => "Empleado",
|
||||
'entry' => "Entrada",
|
||||
'error_editing_item' => "Error editando artículo",
|
||||
'find_or_scan_item' => "Encontrar/Escanear Artículo",
|
||||
'find_or_scan_item_or_receipt' => "Encontrar/Escanear Artículo o Entrada",
|
||||
'giftcard' => "Tarjeta de Regalo",
|
||||
'giftcard_balance' => "Balance de Tarjeta de Regalo",
|
||||
'giftcard_filter' => "Tarjeta de Regalo",
|
||||
'giftcard_number' => "Número de Tarjeta de Regalo",
|
||||
'group_by_category' => "Grupo por Categoría",
|
||||
'group_by_type' => "Grupo por Tipo",
|
||||
'hsn' => "HSN",
|
||||
'id' => "ID de Venta",
|
||||
'include_prices' => "Incluir precios?",
|
||||
'invoice' => "Factura de venta",
|
||||
'invoice_confirm' => "Esta factura sera enviada a",
|
||||
'invoice_enable' => "Número de Factura",
|
||||
'invoice_filter' => "Facturas",
|
||||
'invoice_no_email' => "Este cliente no tiene un email válido.",
|
||||
'invoice_number' => "Factura #",
|
||||
'invoice_number_duplicate' => "Por favor ingrese un número de factura único.",
|
||||
'invoice_sent' => "Factura enviada a",
|
||||
'invoice_total' => "Total Facturado",
|
||||
'invoice_type_custom_invoice' => "Factura Personalizada",
|
||||
'invoice_type_custom_tax_invoice' => "Factura de Impuesto personalizada",
|
||||
'invoice_type_invoice' => "Factura",
|
||||
'invoice_type_tax_invoice' => "Factura de Impuestos",
|
||||
'invoice_unsent' => "Fallo el envio de la factura a",
|
||||
'invoice_update' => "Actualizar",
|
||||
'item_insufficient_of_stock' => "Cantidad insuficiente en existencia.",
|
||||
'item_name' => "Nombre del Artículo",
|
||||
'item_number' => "UPC/EAN/ISBN",
|
||||
'item_out_of_stock' => "El artículo está agotado.",
|
||||
'key_browser' => "Atajos Útiles",
|
||||
'key_cancel' => "Cancelar actual Cotización/Factura/Venta",
|
||||
'key_customer_search' => "Búsqueda de Clientes",
|
||||
'key_finish_quote' => "Finish Quote/Invoice witdout payment",
|
||||
'key_finish_sale' => "Agregar Pago y Completar Factura/Venta",
|
||||
'key_full' => "Abrir en Pantalla Completa",
|
||||
'key_function' => "Function",
|
||||
'key_help' => "Atajos",
|
||||
'key_help_modal' => "Abrir Ventana de Atajos",
|
||||
'key_in' => "Acercar",
|
||||
'key_item_search' => "Buscar Artículo",
|
||||
'key_out' => "Alejar",
|
||||
'key_payment' => "Agregar Pago",
|
||||
'key_print' => "Imprimir Página Actual",
|
||||
'key_restore' => "Restaurar Pantalla/Zoom Original",
|
||||
'key_search' => "Buscar Tablas de Reportes",
|
||||
'key_suspend' => "Suspender Venta Actual",
|
||||
'key_suspended' => "Mostrar Ventas Suspendidas",
|
||||
'key_system' => "Atajos del Sistema",
|
||||
'key_tendered' => "Editar Importe Licitado",
|
||||
'key_title' => "Atajas de Teclado para Ventas",
|
||||
'mc' => "Tarjeta Master Card",
|
||||
'mode' => "Modo",
|
||||
'must_enter_numeric' => "Cantidad Recibida debe ser número.",
|
||||
'must_enter_numeric_giftcard' => "Número de Tarjeta de Regalo debe ser número.",
|
||||
'new_customer' => "Cliente Nuevo",
|
||||
'new_item' => "Artículo Nuevo",
|
||||
'no_description' => "Ninguno",
|
||||
'no_filter' => "Todos",
|
||||
'no_items_in_cart' => "No hay artículos en el carrito.",
|
||||
'no_sales_to_display' => "No hay ventas que mostrar.",
|
||||
'none_selected' => "No has seleccionado venta para borrar.",
|
||||
'nontaxed_ind' => " Ventas no gravadas ",
|
||||
'not_authorized' => "Esta accion no esta autorizada.",
|
||||
'one_or_multiple' => "venta(s)",
|
||||
'payment' => "Tipo de Pago",
|
||||
'payment_amount' => "Cantidad",
|
||||
'payment_not_cover_total' => "La Cantidad Recibida no cubre el pago total.",
|
||||
'payment_type' => "Tipo",
|
||||
'payments' => "Pagos",
|
||||
'payments_total' => "Pagado",
|
||||
'price' => "Precio",
|
||||
'print_after_sale' => "Imprimir recibo después de una venta",
|
||||
'quantity' => "Cantidad",
|
||||
'quantity_less_than_reorder_level' => "Advertencia. La cantidad deseada es insuficiente.",
|
||||
'quantity_less_than_zero' => "Advertencia. La cantidad deseada no tiene stock suficiente. Puedes procesar la venta pero revisa tu inventario.",
|
||||
'quantity_of_items' => "Cantidad de {0} articulos",
|
||||
'quote' => "Cotizar",
|
||||
'quote_number' => "Número de Presupuesto",
|
||||
'quote_number_duplicate' => "Cotizacion debe ser unico.",
|
||||
'quote_sent' => "Cotizacion enviada a",
|
||||
'quote_unsent' => "Cotización no se pudo enviar",
|
||||
'receipt' => "Recibo de Venta",
|
||||
'receipt_no_email' => "Este cliente no tiene una dirección de correo valido.",
|
||||
'receipt_number' => "Venta #",
|
||||
'receipt_sent' => "Recibo enviada a",
|
||||
'receipt_unsent' => "Fallo el envio del recibo a",
|
||||
'refund' => "Tipo de reembolso",
|
||||
'register' => "Registro de Ventas",
|
||||
'remove_customer' => "Borrar Cliente",
|
||||
'remove_discount' => "Descuentos",
|
||||
'return' => "Devolución",
|
||||
'rewards' => "Puntos",
|
||||
'rewards_balance' => "Balance de puntos",
|
||||
'sale' => "Venta",
|
||||
'sale_by_invoice' => "Venta por factura",
|
||||
'sale_for_customer' => "Cliente:",
|
||||
'sale_time' => "Hora",
|
||||
'sales_tax' => "Impuesto",
|
||||
'sales_total' => "Ventas Totales",
|
||||
'select_customer' => "Seleccionar Cliente",
|
||||
'send_invoice' => "Enviar Factura",
|
||||
'send_quote' => "Enviar Cotización",
|
||||
'send_receipt' => "Enviar Recibo",
|
||||
'send_work_order' => "Enviar Orden de Trabajo",
|
||||
'serial' => "Serie",
|
||||
'service_charge' => "Costo de Servicio",
|
||||
'show_due' => "Mostrar los Importes Adeudados",
|
||||
'show_invoice' => "Factura",
|
||||
'show_receipt' => "Recibo",
|
||||
'start_typing_customer_name' => "Empieza a escribir el cliente...",
|
||||
'start_typing_item_name' => "Empieza a escribir o escanea el código de barras...",
|
||||
'stock' => "Inventario",
|
||||
'stock_location' => "Localizacion",
|
||||
'sub_total' => "SubTotal",
|
||||
'successfully_deleted' => "Borrada satisfactoriamente",
|
||||
'successfully_restored' => "Restaurado satisfactoriamente",
|
||||
'successfully_suspended_sale' => "La venta ha sido suspendida.",
|
||||
'successfully_updated' => "La venta ha sido actualizada.",
|
||||
'suspend_sale' => "Suspender",
|
||||
'suspended_doc_id' => "Documento",
|
||||
'suspended_sale_id' => "Id",
|
||||
'suspended_sales' => "Suspendidas",
|
||||
'table' => "Datos",
|
||||
'takings' => "Ventas Diarias",
|
||||
'tax' => "Imp",
|
||||
'tax_id' => "Identificador del Impuesto",
|
||||
'tax_invoice' => "Impuesto de la Factura",
|
||||
'tax_percent' => "% de Imp",
|
||||
'taxed_ind' => "Ventas gravadas",
|
||||
'total' => "Total",
|
||||
'total_tax_exclusive' => "Sin impuesto",
|
||||
'transaction_failed' => "La transacción de venta falló.",
|
||||
'unable_to_add_item' => "Error al agregar artículo a la venta",
|
||||
'unsuccessfully_deleted' => "Ha fallado la eliminación de la Venta.",
|
||||
'unsuccessfully_restored' => "Restaurar Venta fallida.",
|
||||
'unsuccessfully_suspended_sale' => "Venta suspendida satisfactoriamente.",
|
||||
'unsuccessfully_updated' => "Ha fallado la actualización de la venta.",
|
||||
'unsuspend' => "Retomar",
|
||||
'unsuspend_and_delete' => "Retomar y Borrar",
|
||||
'update' => "Editar",
|
||||
'upi' => "PIN UPI",
|
||||
'visa' => "Tarjeta Visa",
|
||||
'wholesale' => "Precio al por mayor",
|
||||
'work_order' => "Orden trabajo",
|
||||
'work_order_number' => "Numero Orden Trabajo",
|
||||
'work_order_number_duplicate' => "El numero de orden de trabajo debe ser unico.",
|
||||
'work_order_sent' => "Orden de trabajo enviada a",
|
||||
'work_order_unsent' => "Orden de trabajo fallida al enviar a",
|
||||
'selected_customer' => "Cliente seleccionado",
|
||||
"customers_available_points" => "Puntos Disponibles",
|
||||
"rewards_package" => "Paquete de recompensas",
|
||||
"rewards_remaining_balance" => "El remanente de puntos es ",
|
||||
"account_number" => "Cuenta #",
|
||||
"add_payment" => "Agregar Pago",
|
||||
"amount_due" => "Monto Adeudado",
|
||||
"amount_tendered" => "Cantidad Recibida",
|
||||
"authorized_signature" => "Firma Autorizada",
|
||||
"cancel_sale" => "Cancelar Venta",
|
||||
"cash" => "Efectivo",
|
||||
"cash_1" => "1",
|
||||
"cash_2" => "5",
|
||||
"cash_3" => "10",
|
||||
"cash_4" => "20",
|
||||
"cash_adjustment" => "Ajuste de Efectivo",
|
||||
"cash_deposit" => "Deposito Efectivo",
|
||||
"cash_filter" => "Efectivo",
|
||||
"change_due" => "Cambio",
|
||||
"change_price" => "Cambiar el precio de venta",
|
||||
"check" => "Cheque",
|
||||
"check_balance" => "Balance de Cheque",
|
||||
"check_filter" => "Cheque",
|
||||
"close" => "Cerrar Lista",
|
||||
"comment" => "Comentario",
|
||||
"comments" => "Comentarios",
|
||||
"company_name" => "Nombre de Comañía",
|
||||
"complete" => "Completa",
|
||||
"complete_sale" => "Completar Venta",
|
||||
"confirm_cancel_sale" => "¿Seguro quiere cancelar esta venta? Todos los artículos serán eliminados.",
|
||||
"confirm_delete" => "¿Seguro quiere borrar las ventas seleccionadas?",
|
||||
"confirm_restore" => "Esta seguro de querer restaurar la(s) venta(s) seleccionada(s)?",
|
||||
"credit" => "Tarjeta de Crédito",
|
||||
"credit_deposit" => "Deposito Credito",
|
||||
"credit_filter" => "Tarjeta de Crédito",
|
||||
"current_table" => "Tabla Actual",
|
||||
"customer" => "cliente",
|
||||
"customer_address" => "Direccion",
|
||||
"customer_discount" => "Descuento",
|
||||
"customer_email" => "Email",
|
||||
"customer_location" => "Ubicacion",
|
||||
"customer_mailchimp_status" => "Estado de Mailchimp",
|
||||
"customer_optional" => "(Obligatorio para Pagos Vencidos)",
|
||||
"customer_required" => "(Requerido)",
|
||||
"customer_total" => "Total",
|
||||
"customer_total_spent" => "Total Gastado",
|
||||
"daily_sales" => "Sus Ventas Diarias",
|
||||
"date" => "Fecha",
|
||||
"date_range" => "Rango de Fecha",
|
||||
"date_required" => "Una fecha correcta debe ser ingresada.",
|
||||
"date_type" => "Campo de Fecha es requerido.",
|
||||
"debit" => "Tarjeta de Débito",
|
||||
"debit_filter" => "Tarjeta de Débito",
|
||||
"delete" => "Permitir borrar",
|
||||
"delete_confirmation" => "¿Seguro quiere borrar esta venta? Esta acción no se puede deshacer.",
|
||||
"delete_entire_sale" => "Borrar la venta completa",
|
||||
"delete_successful" => "Venta borrada correctamente.",
|
||||
"delete_unsuccessful" => "Venta no borrada, fallida.",
|
||||
"description_abbrv" => "Descrp.",
|
||||
"discard" => "Descartar",
|
||||
"discard_quote" => "Descartar",
|
||||
"discount" => "Descuento",
|
||||
"discount_included" => "% Descuento",
|
||||
"discount_short" => "%",
|
||||
"due" => "Adeudado",
|
||||
"due_filter" => "Adeudado",
|
||||
"edit" => "Editar",
|
||||
"edit_item" => "Editar Artículo",
|
||||
"edit_sale" => "Editar Venta",
|
||||
"email_receipt" => "Enviar Ticket",
|
||||
"employee" => "Empleado",
|
||||
"entry" => "Entrada",
|
||||
"error_editing_item" => "Error editando artículo",
|
||||
"find_or_scan_item" => "Encontrar/Escanear Artículo",
|
||||
"find_or_scan_item_or_receipt" => "Encontrar/Escanear Artículo o Entrada",
|
||||
"giftcard" => "Tarjeta de Regalo",
|
||||
"giftcard_balance" => "Balance de Tarjeta de Regalo",
|
||||
"giftcard_filter" => "Tarjeta de Regalo",
|
||||
"giftcard_number" => "Número de Tarjeta de Regalo",
|
||||
"group_by_category" => "Grupo por Categoría",
|
||||
"group_by_type" => "Grupo por Tipo",
|
||||
"hsn" => "HSN",
|
||||
"id" => "ID de Venta",
|
||||
"include_prices" => "Incluir precios?",
|
||||
"invoice" => "Factura de venta",
|
||||
"invoice_confirm" => "Esta factura sera enviada a",
|
||||
"invoice_enable" => "Crear factura",
|
||||
"invoice_filter" => "Facturas",
|
||||
"invoice_no_email" => "Este cliente no tiene un email válido.",
|
||||
"invoice_number" => "Factura #",
|
||||
"invoice_number_duplicate" => "Por favor ingrese un número de factura único.",
|
||||
"invoice_sent" => "Factura enviada a",
|
||||
"invoice_total" => "Total Facturado",
|
||||
"invoice_type_custom_invoice" => "Factura Personalizada",
|
||||
"invoice_type_custom_tax_invoice" => "Factura de Impuesto personalizada",
|
||||
"invoice_type_invoice" => "Factura",
|
||||
"invoice_type_tax_invoice" => "Factura de Impuestos",
|
||||
"invoice_unsent" => "Fallo el envio de la factura a",
|
||||
"invoice_update" => "Actualizar",
|
||||
"item_insufficient_of_stock" => "Cantidad insuficiente en existencia.",
|
||||
"item_name" => "Nombre del Artículo",
|
||||
"item_number" => "UPC/EAN/ISBN",
|
||||
"item_out_of_stock" => "El artículo está agotado.",
|
||||
"key_browser" => "Atajos Útiles",
|
||||
"key_cancel" => "Cancelar actual Cotización/Factura/Venta",
|
||||
"key_customer_search" => "Búsqueda de Clientes",
|
||||
"key_finish_quote" => "Finish Quote/Invoice witdout payment",
|
||||
"key_finish_sale" => "Agregar Pago y Completar Factura/Venta",
|
||||
"key_full" => "Abrir en Pantalla Completa",
|
||||
"key_function" => "Function",
|
||||
"key_help" => "Atajos",
|
||||
"key_help_modal" => "Abrir Ventana de Atajos",
|
||||
"key_in" => "Acercar",
|
||||
"key_item_search" => "Buscar Artículo",
|
||||
"key_out" => "Alejar",
|
||||
"key_payment" => "Agregar Pago",
|
||||
"key_print" => "Imprimir Página Actual",
|
||||
"key_restore" => "Restaurar Pantalla/Zoom Original",
|
||||
"key_search" => "Buscar Tablas de Reportes",
|
||||
"key_suspend" => "Suspender Venta Actual",
|
||||
"key_suspended" => "Mostrar Ventas Suspendidas",
|
||||
"key_system" => "Atajos del Sistema",
|
||||
"key_tendered" => "Editar Importe Licitado",
|
||||
"key_title" => "Atajas de Teclado para Ventas",
|
||||
"mc" => "Tarjeta Master Card",
|
||||
"mode" => "Modo",
|
||||
"must_enter_numeric" => "Cantidad Recibida debe ser número.",
|
||||
"must_enter_numeric_giftcard" => "Número de Tarjeta de Regalo debe ser número.",
|
||||
"new_customer" => "Cliente Nuevo",
|
||||
"new_item" => "Artículo Nuevo",
|
||||
"no_description" => "Ninguno",
|
||||
"no_filter" => "Todos",
|
||||
"no_items_in_cart" => "No hay artículos en el carrito.",
|
||||
"no_sales_to_display" => "No hay ventas que mostrar.",
|
||||
"none_selected" => "No has seleccionado venta para borrar.",
|
||||
"nontaxed_ind" => " Ventas no gravadas ",
|
||||
"not_authorized" => "Esta accion no esta autorizada.",
|
||||
"one_or_multiple" => "venta(s)",
|
||||
"payment" => "Tipo de Pago",
|
||||
"payment_amount" => "Cantidad",
|
||||
"payment_not_cover_total" => "La Cantidad Recibida no cubre el pago total.",
|
||||
"payment_type" => "Tipo",
|
||||
"payments" => "Pagos",
|
||||
"payments_total" => "Pagado",
|
||||
"price" => "Precio",
|
||||
"print_after_sale" => "Imprimir recibo después de una venta",
|
||||
"quantity" => "Cantidad",
|
||||
"quantity_less_than_reorder_level" => "Advertencia. La cantidad deseada es insuficiente.",
|
||||
"quantity_less_than_zero" => "Advertencia. La cantidad deseada no tiene stock suficiente. Puedes procesar la venta pero revisa tu inventario.",
|
||||
"quantity_of_items" => "Cantidad de {0} articulos",
|
||||
"quote" => "Cotizar",
|
||||
"quote_number" => "Número de Presupuesto",
|
||||
"quote_number_duplicate" => "Cotizacion debe ser unico.",
|
||||
"quote_sent" => "Cotizacion enviada a",
|
||||
"quote_unsent" => "Cotización no se pudo enviar",
|
||||
"receipt" => "Recibo de Venta",
|
||||
"receipt_no_email" => "Este cliente no tiene una dirección de correo valido.",
|
||||
"receipt_number" => "Venta #",
|
||||
"receipt_sent" => "Recibo enviada a",
|
||||
"receipt_unsent" => "Fallo el envio del recibo a",
|
||||
"refund" => "Tipo de reembolso",
|
||||
"register" => "Registro de Ventas",
|
||||
"remove_customer" => "Borrar Cliente",
|
||||
"remove_discount" => "Descuentos",
|
||||
"return" => "Devolución",
|
||||
"rewards" => "Puntos",
|
||||
"rewards_balance" => "Balance de puntos",
|
||||
"sale" => "Venta",
|
||||
"sale_by_invoice" => "Venta por factura",
|
||||
"sale_for_customer" => "Cliente:",
|
||||
"sale_time" => "Hora",
|
||||
"sales_tax" => "Impuesto",
|
||||
"sales_total" => "Ventas Totales",
|
||||
"select_customer" => "Seleccionar Cliente",
|
||||
"send_invoice" => "Enviar Factura",
|
||||
"send_quote" => "Enviar Cotización",
|
||||
"send_receipt" => "Enviar Recibo",
|
||||
"send_work_order" => "Enviar Orden de Trabajo",
|
||||
"serial" => "Serie",
|
||||
"service_charge" => "Costo de Servicio",
|
||||
"show_due" => "Mostrar los Importes Adeudados",
|
||||
"show_invoice" => "Factura",
|
||||
"show_receipt" => "Recibo",
|
||||
"start_typing_customer_name" => "Empieza a escribir el cliente...",
|
||||
"start_typing_item_name" => "Empieza a escribir o escanea el código de barras...",
|
||||
"stock" => "Inventario",
|
||||
"stock_location" => "Localizacion",
|
||||
"sub_total" => "SubTotal",
|
||||
"successfully_deleted" => "Borrada satisfactoriamente",
|
||||
"successfully_restored" => "Restaurado satisfactoriamente",
|
||||
"successfully_suspended_sale" => "La venta ha sido suspendida.",
|
||||
"successfully_updated" => "La venta ha sido actualizada.",
|
||||
"suspend_sale" => "Suspender",
|
||||
"suspended_doc_id" => "Documento",
|
||||
"suspended_sale_id" => "Id",
|
||||
"suspended_sales" => "Suspendidas",
|
||||
"table" => "Datos",
|
||||
"takings" => "Ventas Diarias",
|
||||
"tax" => "Imp",
|
||||
"tax_id" => "Identificador del Impuesto",
|
||||
"tax_invoice" => "Impuesto de la Factura",
|
||||
"tax_percent" => "% de Imp",
|
||||
"taxed_ind" => "Ventas gravadas",
|
||||
"total" => "Total",
|
||||
"total_tax_exclusive" => "Sin impuesto",
|
||||
"transaction_failed" => "La transacción de venta falló.",
|
||||
"unable_to_add_item" => "Error al agregar artículo a la venta",
|
||||
"unsuccessfully_deleted" => "Ha fallado la eliminación de la Venta.",
|
||||
"unsuccessfully_restored" => "Restaurar Venta fallida.",
|
||||
"unsuccessfully_suspended_sale" => "Venta suspendida satisfactoriamente.",
|
||||
"unsuccessfully_updated" => "Ha fallado la actualización de la venta.",
|
||||
"unsuspend" => "Retomar",
|
||||
"unsuspend_and_delete" => "Retomar y Borrar",
|
||||
"update" => "Editar",
|
||||
"upi" => "PIN UPI",
|
||||
"visa" => "Tarjeta Visa",
|
||||
"wholesale" => "Precio al por mayor",
|
||||
"work_order" => "Orden trabajo",
|
||||
"work_order_number" => "Numero Orden Trabajo",
|
||||
"work_order_number_duplicate" => "El numero de orden de trabajo debe ser unico.",
|
||||
"work_order_sent" => "Orden de trabajo enviada a",
|
||||
"work_order_unsent" => "Orden de trabajo fallida al enviar a",
|
||||
];
|
||||
|
||||
@@ -1,88 +1,88 @@
|
||||
<?php
|
||||
return [
|
||||
'address_1' => "Alamat 1",
|
||||
'address_2' => "Alamat 2",
|
||||
'admin' => "",
|
||||
'city' => "Kota",
|
||||
'clerk' => "",
|
||||
'close' => "Tutup",
|
||||
'color' => "",
|
||||
'comments' => "Komentar",
|
||||
'common' => "umum",
|
||||
'confirm_search' => "Anda telah memilih satu atau beberapa baris, ini tidak akan dipilih lagi setelah pencarian Anda. Apakah Anda yakin ingin mengirimkan pencarian ini?",
|
||||
'copyrights' => "© 2010 - {0}",
|
||||
'correct_errors' => "Silahkan perbaiki kesalahan sebelum menyimpan",
|
||||
'country' => "Negara",
|
||||
'dashboard' => "",
|
||||
'date' => "Tanggal",
|
||||
'delete' => "Hapus",
|
||||
'det' => "detil",
|
||||
'download_import_template' => "Unduh yang Diimpor dalam format CSV (CSV)",
|
||||
'edit' => "ubah",
|
||||
'email' => "Email",
|
||||
'email_invalid_format' => "Alamat email tidak dalam format yang benar.",
|
||||
'export_csv' => "Ekspor ke CSV",
|
||||
'export_csv_no' => "Tidak",
|
||||
'export_csv_yes' => "Ya",
|
||||
'fields_required_message' => "Bagian yang berwarna merah harus diisi",
|
||||
'fields_required_message_unique' => "",
|
||||
'first_name' => "Nama Depan",
|
||||
'first_name_required' => "Nama Depan harus diisi.",
|
||||
'first_page' => "Pertama",
|
||||
'gender' => "Jenis Kelamin",
|
||||
'gender_female' => "P",
|
||||
'gender_male' => "L",
|
||||
'gender_undefined' => "",
|
||||
'icon' => "ikon",
|
||||
'id' => "Nomor ID",
|
||||
'import' => "Impor",
|
||||
'import_change_file' => "Ubah",
|
||||
'import_csv' => "Impor dari CSV",
|
||||
'import_full_path' => "Diperlukan alamat lengkap file CSV",
|
||||
'import_remove_file' => "Hapus",
|
||||
'import_select_file' => "Pilih file",
|
||||
'inv' => "Persediaan",
|
||||
'last_name' => "Nama Belakang",
|
||||
'last_name_required' => "Nama belakang harus diisi.",
|
||||
'last_page' => "Akhir",
|
||||
'learn_about_project' => "Untuk mempelajari informasi terbaru tentang proyek ini.",
|
||||
'list_of' => "Daftar",
|
||||
'logo' => "Logo",
|
||||
'logo_mark' => "Tanda",
|
||||
'logout' => "Keluar",
|
||||
'manager' => "",
|
||||
'migration_needed' => "Migrasi data ke {0} akan dimulai setelah masuk.",
|
||||
'new' => "Baru",
|
||||
'no' => "Tidak",
|
||||
'no_persons_to_display' => "Tidak ada orang yang ditampilkan.",
|
||||
'none_selected_text' => "[Pilih]",
|
||||
'or' => "ATAU",
|
||||
'people' => "",
|
||||
'phone_number' => "Nomor Telepon",
|
||||
'phone_number_required' => "Nomer Telepon Wajib Diisi",
|
||||
'please_visit_my' => "Silahkan kunjungi",
|
||||
'position' => "",
|
||||
'powered_by' => "Diberdayakan oleh",
|
||||
'price' => "Harga",
|
||||
'print' => "Cetak",
|
||||
'remove' => "Hapus",
|
||||
'required' => "Diperlukan",
|
||||
'restore' => "Kembalikan",
|
||||
'return_policy' => "Kebijakan Retur",
|
||||
'search' => "Cari",
|
||||
'search_options' => "Pilihan pencarian",
|
||||
'searched_for' => "Mencari untuk",
|
||||
'software_short' => "OSPOS",
|
||||
'software_title' => "Sumber Terbuka Titik Penjualan",
|
||||
'state' => "Provinsi",
|
||||
'submit' => "Kirim",
|
||||
'total_spent' => "Total",
|
||||
'unknown' => "Tidak diketahui",
|
||||
'view_recent_sales' => "Lihat Penjualan Terkini",
|
||||
'website' => "Situs",
|
||||
'welcome' => "Selamat Datang",
|
||||
'welcome_message' => "Selamat Datang di OSPOS, klik modul di bawah ini untuk memulai.",
|
||||
'yes' => "Iya",
|
||||
'you_are_using_ospos' => "Anda menggunakan Open Source Point Of Sale Versi",
|
||||
'zip' => "Kode POS",
|
||||
return [
|
||||
"address_1" => "Alamat 1",
|
||||
"address_2" => "Alamat 2",
|
||||
"admin" => "",
|
||||
"city" => "Kota",
|
||||
"clerk" => "",
|
||||
"close" => "Tutup",
|
||||
"color" => "",
|
||||
"comments" => "Komentar",
|
||||
"common" => "umum",
|
||||
"confirm_search" => "Anda telah memilih satu atau beberapa baris, ini tidak akan dipilih lagi setelah pencarian Anda. Apakah Anda yakin ingin mengirimkan pencarian ini?",
|
||||
"copyrights" => "© 2010 - {0}",
|
||||
"correct_errors" => "Silahkan perbaiki kesalahan sebelum menyimpan",
|
||||
"country" => "Negara",
|
||||
"dashboard" => "",
|
||||
"date" => "Tanggal",
|
||||
"delete" => "Hapus",
|
||||
"det" => "detil",
|
||||
"download_import_template" => "Unduh yang Diimpor dalam format CSV (CSV)",
|
||||
"edit" => "ubah",
|
||||
"email" => "Email",
|
||||
"email_invalid_format" => "Alamat email tidak dalam format yang benar.",
|
||||
"export_csv" => "Ekspor ke CSV",
|
||||
"export_csv_no" => "Tidak",
|
||||
"export_csv_yes" => "Ya",
|
||||
"fields_required_message" => "Bagian yang berwarna merah harus diisi",
|
||||
"fields_required_message_unique" => "",
|
||||
"first_name" => "Nama Depan",
|
||||
"first_name_required" => "Nama Depan harus diisi.",
|
||||
"first_page" => "Pertama",
|
||||
"gender" => "Jenis Kelamin",
|
||||
"gender_female" => "P",
|
||||
"gender_male" => "L",
|
||||
"gender_undefined" => "",
|
||||
"icon" => "ikon",
|
||||
"id" => "Nomor ID",
|
||||
"import" => "Impor",
|
||||
"import_change_file" => "Ubah",
|
||||
"import_csv" => "Impor dari CSV",
|
||||
"import_full_path" => "Diperlukan alamat lengkap file CSV",
|
||||
"import_remove_file" => "Hapus",
|
||||
"import_select_file" => "Pilih file",
|
||||
"inv" => "Persediaan",
|
||||
"last_name" => "Nama Belakang",
|
||||
"last_name_required" => "Nama belakang harus diisi.",
|
||||
"last_page" => "Akhir",
|
||||
"learn_about_project" => "Untuk mempelajari informasi terbaru tentang proyek ini.",
|
||||
"list_of" => "Daftar",
|
||||
"logo" => "Logo",
|
||||
"logo_mark" => "Tanda",
|
||||
"logout" => "Keluar",
|
||||
"manager" => "",
|
||||
"migration_needed" => "Migrasi data ke {0} akan dimulai setelah masuk.",
|
||||
"new" => "Baru",
|
||||
"no" => "",
|
||||
"no_persons_to_display" => "Tidak ada orang yang ditampilkan.",
|
||||
"none_selected_text" => "[Pilih]",
|
||||
"or" => "ATAU",
|
||||
"people" => "",
|
||||
"phone_number" => "Nomor Telepon",
|
||||
"phone_number_required" => "Nomer Telepon Wajib Diisi",
|
||||
"please_visit_my" => "Silahkan kunjungi",
|
||||
"position" => "",
|
||||
"powered_by" => "Diberdayakan oleh",
|
||||
"price" => "Harga",
|
||||
"print" => "Cetak",
|
||||
"remove" => "Hapus",
|
||||
"required" => "Diperlukan",
|
||||
"restore" => "Kembalikan",
|
||||
"return_policy" => "Kebijakan Retur",
|
||||
"search" => "Cari",
|
||||
"search_options" => "Pilihan pencarian",
|
||||
"searched_for" => "Mencari untuk",
|
||||
"software_short" => "OSPOS",
|
||||
"software_title" => "Sumber Terbuka Titik Penjualan",
|
||||
"state" => "Provinsi",
|
||||
"submit" => "Kirim",
|
||||
"total_spent" => "Total",
|
||||
"unknown" => "Tidak diketahui",
|
||||
"view_recent_sales" => "Lihat Penjualan Terkini",
|
||||
"website" => "Situs",
|
||||
"welcome" => "Selamat Datang",
|
||||
"welcome_message" => "Selamat Datang di OSPOS, klik modul di bawah ini untuk memulai.",
|
||||
"yes" => "",
|
||||
"you_are_using_ospos" => "Anda menggunakan Open Source Point Of Sale Versi",
|
||||
"zip" => "Kode POS",
|
||||
];
|
||||
|
||||
@@ -1,120 +1,120 @@
|
||||
<?php
|
||||
return [
|
||||
'add_minus' => "Menambah atau mengurangi Inventori.",
|
||||
'allow_alt_description' => "Deskripsi Alternatif dimungkinkan",
|
||||
'amount_entry' => "Jumlah entri",
|
||||
'bulk_edit' => "Ubah Massal",
|
||||
'buy_price_required' => "Harga Beli wajib diisi.",
|
||||
'cannot_be_deleted' => "Tidak dapat menghapus item terpilih, satu atau lebih item yang dipilih memiliki penjualan.",
|
||||
'cannot_find_item' => "Item tidak ditemukan.",
|
||||
'categories' => "",
|
||||
'category' => "Kategori",
|
||||
'category_new' => "",
|
||||
'category_required' => "Kategori wajib diisi.",
|
||||
'change_all_to_allow_alt_desc' => "Izinkan deskripsi alternatif untuk semua.",
|
||||
'change_all_to_not_allow_allow_desc' => "Tidak diizinkan deskripsi alternatif untuk semua.",
|
||||
'change_all_to_serialized' => "Ubah semua menggunakan nomor serial",
|
||||
'change_all_to_unserialized' => "Ubah semua tanpa nomor serial",
|
||||
'change_image' => "Ubah Gambar",
|
||||
'confirm_bulk_edit' => "Apakah Anda yakin ingin merubah semua item yang dipilih?",
|
||||
'confirm_bulk_edit_wipe_taxes' => "Semua item informasi pajak akan diganti.",
|
||||
'confirm_delete' => "Apakah Anda yakin ingin menghapus item yang dipilih?",
|
||||
'confirm_restore' => "Anda yakin ingin mengembalikan item terpilih?",
|
||||
'cost_price' => "Harga Beli",
|
||||
'cost_price_number' => "Harga beli harus berupa angka.",
|
||||
'cost_price_required' => "Harga beli harus diisi.",
|
||||
'count' => "Mutasi/Penyesuaian Inventori",
|
||||
'csv_import_failed' => "Impor dari CSV tidak berhasil dilakukan",
|
||||
'csv_import_nodata_wrongformat' => "Berkas unggahan tidak berisi data atau format salah.",
|
||||
'csv_import_partially_failed' => "Terdapat {0} item yang gagal diimpor pada baris: {1}. Tidak ada kolom yang diimpor.",
|
||||
'csv_import_success' => "Impor item berhasil.",
|
||||
'current_quantity' => "Jumlah Saat ini",
|
||||
'default_pack_name' => "Setiap",
|
||||
'description' => "Deskripsi",
|
||||
'details_count' => "Jumlah Detail Inventori",
|
||||
'do_nothing' => "Tidak ada Perubahan",
|
||||
'edit' => "",
|
||||
'edit_fields_you_want_to_update' => "Edit ruas untuk item terpilih.",
|
||||
'edit_multiple_items' => "Ubah Beberapa Item",
|
||||
'empty_upc_items' => "UPC Items Kosong",
|
||||
'error_adding_updating' => "Kesalahan ketika menambahkan/memperbarui item",
|
||||
'error_updating_multiple' => "Kesalahan ketika memperbarui item",
|
||||
'generate_barcodes' => "Buat Barcode",
|
||||
'hsn_code' => "Kode HSN",
|
||||
'image' => "Gambar",
|
||||
'import_items_csv' => "Impor item dari CSV sheet",
|
||||
'info_provided_by' => "Info disediakan oleh",
|
||||
'inventory' => "Inventori",
|
||||
'inventory_CSV_import_quantity' => "Jumlah telah diimpor dari CSV",
|
||||
'inventory_comments' => "Keterangan",
|
||||
'inventory_data_tracking' => "Pelacakan Data Inventaris",
|
||||
'inventory_date' => "Tanggal",
|
||||
'inventory_employee' => "Karyawan",
|
||||
'inventory_in_out_quantity' => "Jumlah Masuk/Keluar",
|
||||
'inventory_remarks' => "Komentar",
|
||||
'is_deleted' => "Item dihapus",
|
||||
'is_printed' => "",
|
||||
'is_serialized' => "Item Memiliki Nomor Serial",
|
||||
'item' => "Item Barang",
|
||||
'item_id' => "",
|
||||
'item_number' => "Kode Barang",
|
||||
'item_number_duplicate' => "Nomor item telah ada pada basis data.",
|
||||
'kit' => "Perlengkapan",
|
||||
'location' => "Lokasi Barang",
|
||||
'low_inventory_items' => "Daftar Stock Rendah",
|
||||
'low_sell_item' => "Produk dengan Penjualan yang Rendah",
|
||||
'manually_editing_of_quantity' => "Perubahan jumlah Stok secara manual",
|
||||
'markup' => "",
|
||||
'name' => "Nama Barang",
|
||||
'name_required' => "Nama item wajib diisi.",
|
||||
'new' => "Buat Barang Baru",
|
||||
'no_description_items' => "Produk/Item tidak ada deskripsi",
|
||||
'no_items_to_display' => "Tidak ada item untuk ditampilkan.",
|
||||
'none' => "Tidak Ada",
|
||||
'none_selected' => "Anda belum memilih Barang untuk diubah",
|
||||
'nonstock' => "Tidak ada stok",
|
||||
'number_information' => "Nomor Barang",
|
||||
'number_required' => "Barcode harus diisi.",
|
||||
'one_or_multiple' => "Item Barang",
|
||||
'pack_name' => "Nama paket",
|
||||
'qty_per_pack' => "Jumlah per paket",
|
||||
'quantity' => "Jumlah",
|
||||
'quantity_number' => "Jumlah harus berupa angka.",
|
||||
'quantity_required' => "Jumlah wajib diisi.",
|
||||
'receiving_quantity' => "Jumlah per penerimaan",
|
||||
'remove_image' => "Hapus gambar",
|
||||
'reorder_level' => "Batas pesan ulang",
|
||||
'reorder_level_number' => "Batas pesan ulang harus berupa angka.",
|
||||
'reorder_level_required' => "Batas pesan ulang wajib diisi.",
|
||||
'retrive_item_info' => "Dapatkan Info Barang",
|
||||
'sales_tax_1' => "Pajak Penjualan1",
|
||||
'sales_tax_2' => "Pajak Penjualan2",
|
||||
'search_attributes' => "Cari Atribut",
|
||||
'select_image' => "Pilih Gambar",
|
||||
'serialized_items' => "Serial Item",
|
||||
'standard' => "Standar",
|
||||
'stock' => "Stok",
|
||||
'stock_location' => "Lokasi Stok",
|
||||
'stock_type' => "Jenis Stok",
|
||||
'successful_adding' => "Item Barang telah berhasil ditambahkan",
|
||||
'successful_bulk_edit' => "Anda telah berhasil memperbarui item yang dipilih",
|
||||
'successful_deleted' => "Item Barang telah berhasil dihapus",
|
||||
'successful_updating' => "Item Barang telah berhasil diperbarui",
|
||||
'supplier' => "Pemasok",
|
||||
'tax_1' => "Pajak 1",
|
||||
'tax_2' => "Pajak 2",
|
||||
'tax_3' => "",
|
||||
'tax_category' => "Kategori Pajak",
|
||||
'tax_percent' => "Tarif Pajak",
|
||||
'tax_percent_number' => "Nilai persen pajak harus berupa angka",
|
||||
'tax_percent_required' => "Tarif Pajak wajib diisi.",
|
||||
'tax_percents' => "Tarif Pajak",
|
||||
'temp' => "Sementara",
|
||||
'type' => "Tipe Item",
|
||||
'unit_price' => "Harga Jual",
|
||||
'unit_price_number' => "Harga satuan harus berupa angka.",
|
||||
'unit_price_required' => "Harga Jual wajib diisi.",
|
||||
'upc_database' => "Database UPC",
|
||||
'update' => "Ubah",
|
||||
'use_inventory_menu' => "Gunakan Inv. Menu",
|
||||
return [
|
||||
"add_minus" => "Menambah atau mengurangi Inventori.",
|
||||
"allow_alt_description" => "Deskripsi Alternatif dimungkinkan",
|
||||
"amount_entry" => "Jumlah entri",
|
||||
"bulk_edit" => "Ubah Massal",
|
||||
"buy_price_required" => "Harga Beli wajib diisi.",
|
||||
"cannot_be_deleted" => "Tidak dapat menghapus item terpilih, satu atau lebih item yang dipilih memiliki penjualan.",
|
||||
"cannot_find_item" => "Item tidak ditemukan.",
|
||||
"categories" => "",
|
||||
"category" => "Kategori",
|
||||
"category_new" => "",
|
||||
"category_required" => "Kategori wajib diisi.",
|
||||
"change_all_to_allow_alt_desc" => "Izinkan deskripsi alternatif untuk semua.",
|
||||
"change_all_to_not_allow_allow_desc" => "Tidak diizinkan deskripsi alternatif untuk semua.",
|
||||
"change_all_to_serialized" => "Ubah semua menggunakan nomor serial",
|
||||
"change_all_to_unserialized" => "Ubah semua tanpa nomor serial",
|
||||
"change_image" => "Ubah Gambar",
|
||||
"confirm_bulk_edit" => "Apakah Anda yakin ingin merubah semua item yang dipilih?",
|
||||
"confirm_bulk_edit_wipe_taxes" => "Semua item informasi pajak akan diganti.",
|
||||
"confirm_delete" => "Apakah Anda yakin ingin menghapus item yang dipilih?",
|
||||
"confirm_restore" => "Anda yakin ingin mengembalikan item terpilih?",
|
||||
"cost_price" => "Harga Beli",
|
||||
"cost_price_number" => "Harga beli harus berupa angka.",
|
||||
"cost_price_required" => "Harga beli harus diisi.",
|
||||
"count" => "Mutasi/Penyesuaian Inventori",
|
||||
"csv_import_failed" => "Impor dari CSV tidak berhasil dilakukan",
|
||||
"csv_import_nodata_wrongformat" => "Berkas unggahan tidak berisi data atau format salah.",
|
||||
"csv_import_partially_failed" => "Terdapat {0} item yang gagal diimpor pada baris: {1}. Tidak ada kolom yang diimpor.",
|
||||
"csv_import_success" => "Impor item berhasil.",
|
||||
"current_quantity" => "Jumlah Saat ini",
|
||||
"default_pack_name" => "Setiap",
|
||||
"description" => "Deskripsi",
|
||||
"details_count" => "Jumlah Detail Inventori",
|
||||
"do_nothing" => "Tidak ada Perubahan",
|
||||
"edit" => "",
|
||||
"edit_fields_you_want_to_update" => "Edit ruas untuk item terpilih.",
|
||||
"edit_multiple_items" => "Ubah Beberapa Item",
|
||||
"empty_upc_items" => "UPC Items Kosong",
|
||||
"error_adding_updating" => "Kesalahan ketika menambahkan/memperbarui item",
|
||||
"error_updating_multiple" => "Kesalahan ketika memperbarui item",
|
||||
"generate_barcodes" => "Buat Barcode",
|
||||
"hsn_code" => "Kode HSN",
|
||||
"image" => "Gambar",
|
||||
"import_items_csv" => "Impor item dari CSV sheet",
|
||||
"info_provided_by" => "Info disediakan oleh",
|
||||
"inventory" => "Inventori",
|
||||
"inventory_CSV_import_quantity" => "Jumlah telah diimpor dari CSV",
|
||||
"inventory_comments" => "Keterangan",
|
||||
"inventory_data_tracking" => "Pelacakan Data Inventaris",
|
||||
"inventory_date" => "Tanggal",
|
||||
"inventory_employee" => "Karyawan",
|
||||
"inventory_in_out_quantity" => "Jumlah Masuk/Keluar",
|
||||
"inventory_remarks" => "Komentar",
|
||||
"is_deleted" => "Item dihapus",
|
||||
"is_printed" => "",
|
||||
"is_serialized" => "Item Memiliki Nomor Serial",
|
||||
"item" => "Item Barang",
|
||||
"item_id" => "",
|
||||
"item_number" => "Kode Barang",
|
||||
"item_number_duplicate" => "Nomor item telah ada pada basis data.",
|
||||
"kit" => "Paket",
|
||||
"location" => "Lokasi Barang",
|
||||
"low_inventory_items" => "Daftar Stock Rendah",
|
||||
"low_sell_item" => "Produk dengan Penjualan yang Rendah",
|
||||
"manually_editing_of_quantity" => "Perubahan jumlah Stok secara manual",
|
||||
"markup" => "",
|
||||
"name" => "Nama Barang",
|
||||
"name_required" => "Nama item wajib diisi.",
|
||||
"new" => "Buat Barang Baru",
|
||||
"no_description_items" => "Produk/Item tidak ada deskripsi",
|
||||
"no_items_to_display" => "Tidak ada item untuk ditampilkan.",
|
||||
"none" => "Tidak Ada",
|
||||
"none_selected" => "Anda belum memilih Barang untuk diubah",
|
||||
"nonstock" => "Tidak ada stok",
|
||||
"number_information" => "Nomor Barang",
|
||||
"number_required" => "Barcode harus diisi.",
|
||||
"one_or_multiple" => "Item Barang",
|
||||
"pack_name" => "Nama paket",
|
||||
"qty_per_pack" => "Jumlah per paket",
|
||||
"quantity" => "Jumlah",
|
||||
"quantity_number" => "Jumlah harus berupa angka.",
|
||||
"quantity_required" => "Jumlah wajib diisi.",
|
||||
"receiving_quantity" => "Jumlah per penerimaan",
|
||||
"remove_image" => "Hapus gambar",
|
||||
"reorder_level" => "Batas pesan ulang",
|
||||
"reorder_level_number" => "Batas pesan ulang harus berupa angka.",
|
||||
"reorder_level_required" => "Batas pesan ulang wajib diisi.",
|
||||
"retrive_item_info" => "Dapatkan Info Barang",
|
||||
"sales_tax_1" => "Pajak Penjualan1",
|
||||
"sales_tax_2" => "Pajak Penjualan2",
|
||||
"search_attributes" => "Cari Atribut",
|
||||
"select_image" => "Pilih Gambar",
|
||||
"serialized_items" => "Serial Item",
|
||||
"standard" => "Standar",
|
||||
"stock" => "Stok",
|
||||
"stock_location" => "Lokasi Stok",
|
||||
"stock_type" => "Jenis Stok",
|
||||
"successful_adding" => "Item Barang telah berhasil ditambahkan",
|
||||
"successful_bulk_edit" => "Anda telah berhasil memperbarui item yang dipilih",
|
||||
"successful_deleted" => "Item Barang telah berhasil dihapus",
|
||||
"successful_updating" => "Item Barang telah berhasil diperbarui",
|
||||
"supplier" => "Pemasok",
|
||||
"tax_1" => "Pajak 1",
|
||||
"tax_2" => "Pajak 2",
|
||||
"tax_3" => "",
|
||||
"tax_category" => "Kategori Pajak",
|
||||
"tax_percent" => "Tarif Pajak",
|
||||
"tax_percent_number" => "Nilai persen pajak harus berupa angka",
|
||||
"tax_percent_required" => "Tarif Pajak wajib diisi.",
|
||||
"tax_percents" => "Tarif Pajak",
|
||||
"temp" => "Sementara",
|
||||
"type" => "Tipe Item",
|
||||
"unit_price" => "Harga Jual",
|
||||
"unit_price_number" => "Harga satuan harus berupa angka.",
|
||||
"unit_price_required" => "Harga Jual wajib diisi.",
|
||||
"upc_database" => "Database UPC",
|
||||
"update" => "Ubah",
|
||||
"use_inventory_menu" => "Gunakan Inv. Menu",
|
||||
];
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<?php
|
||||
return [
|
||||
'gcaptcha' => "Saya bukan robot.",
|
||||
'go' => "Lanjutkan",
|
||||
'invalid_gcaptcha' => "Tolong buktikan bahwa anda bukan robot.",
|
||||
'invalid_installation' => "Instalasi tidak benar, periksa file php.ini Anda.",
|
||||
'invalid_username_and_password' => "Nama Pengguna Atau Sandi Salah.",
|
||||
'login' => "Masuk",
|
||||
'logout' => "Keluar",
|
||||
'migration_needed' => "Migrasi basis data untuk {0} akan mulai setelah masuk.",
|
||||
'password' => "Kata kunci",
|
||||
'required_username' => "Kolom nama pengguna wajib diisi.",
|
||||
'username' => "Nama Anda",
|
||||
'welcome' => "Selamat Datang di {0}!",
|
||||
return [
|
||||
"gcaptcha" => "Saya bukan robot.",
|
||||
"go" => "Lanjutkan",
|
||||
"invalid_gcaptcha" => "Tolong buktikan bahwa anda bukan robot.",
|
||||
"invalid_installation" => "Instalasi tidak benar, periksa file php.ini Anda.",
|
||||
"invalid_username_and_password" => "Nama Pengguna Atau Sandi Salah.",
|
||||
"login" => "Masuk",
|
||||
"logout" => "Keluar",
|
||||
"migration_needed" => "Migrasi basis data untuk {0} akan mulai setelah masuk.",
|
||||
"password" => "Kata kunci",
|
||||
"required_username" => "",
|
||||
"username" => "Nama Anda",
|
||||
"welcome" => "Selamat Datang di {0}!",
|
||||
];
|
||||
|
||||
@@ -1,225 +1,224 @@
|
||||
<?php
|
||||
return [
|
||||
'customers_available_points' => "Poin tersedia",
|
||||
'rewards_package' => "Hadiah",
|
||||
'rewards_remaining_balance' => "Poin hadiah yang tersisa adalah ",
|
||||
'account_number' => "Akun #",
|
||||
'add_payment' => "Terima",
|
||||
'amount_due' => "Uang Kembalian",
|
||||
'amount_tendered' => "Nilai Pembayaran",
|
||||
'authorized_signature' => "Tanda tangan",
|
||||
'cancel_sale' => "Batal Jual",
|
||||
'cash' => "Tunai",
|
||||
'cash_1' => "",
|
||||
'cash_2' => "",
|
||||
'cash_3' => "",
|
||||
'cash_4' => "",
|
||||
'cash_adjustment' => "Penyesuaian Kas",
|
||||
'cash_deposit' => "Deposit Tunai",
|
||||
'cash_filter' => "Tunai",
|
||||
'change_due' => "Kembalian Uang",
|
||||
'change_price' => "Ubah Harga Jual",
|
||||
'check' => "Cek",
|
||||
'check_balance' => "Aktifkan pengingat",
|
||||
'check_filter' => "Cek",
|
||||
'close' => "",
|
||||
'comment' => "Catatan",
|
||||
'comments' => "Keterangan",
|
||||
'company_name' => "",
|
||||
'complete' => "",
|
||||
'complete_sale' => "Selesai",
|
||||
'confirm_cancel_sale' => "Apakah anda yakin ingin mengosongkan transaksi penjualan ini? Semua item akan dihapus.",
|
||||
'confirm_delete' => "Apakah anda yakin akan menghapus penjualan terpilih?",
|
||||
'confirm_restore' => "Apakah anda yakin akan mengembalikan penjualan terpilih?",
|
||||
'credit' => "Kartu Kredit",
|
||||
'credit_deposit' => "Deposit Kredit",
|
||||
'credit_filter' => "Kartu Kredit",
|
||||
'current_table' => "",
|
||||
'customer' => "Pelanggan",
|
||||
'customer_address' => "Alamat",
|
||||
'customer_discount' => "Diskon",
|
||||
'customer_email' => "Email",
|
||||
'customer_location' => "Lokasi",
|
||||
'customer_mailchimp_status' => "Status MailChimp",
|
||||
'customer_optional' => "(Diperlukan untuk Pembayaran Jatuh Tempo)",
|
||||
'customer_required' => "(Dibutuhkan)",
|
||||
'customer_total' => "Total",
|
||||
'customer_total_spent' => "",
|
||||
'daily_sales' => "",
|
||||
'date' => "Tanggal Penjualan",
|
||||
'date_range' => "Rentang Tanggal",
|
||||
'date_required' => "Masukkan tanggal yang benar.",
|
||||
'date_type' => "Tanggal tidak boleh kosong.",
|
||||
'debit' => "Kartu Debit",
|
||||
'debit_filter' => "",
|
||||
'delete' => "Boleh dihapus",
|
||||
'delete_confirmation' => "Apakah anda yakin ingin menghapus transaksi penjualan ini, Pilihan ini tidak dapat dibatalkan.",
|
||||
'delete_entire_sale' => "Hapus Transaksi Penjualan",
|
||||
'delete_successful' => "Transaksi Penjualan berhasil dihapus.",
|
||||
'delete_unsuccessful' => "Transaksi Penjualan gagal dihapus.",
|
||||
'description_abbrv' => "Deskripsi.",
|
||||
'discard' => "Buang",
|
||||
'discard_quote' => "",
|
||||
'discount' => "Diskon",
|
||||
'discount_included' => "% Diskon",
|
||||
'discount_short' => "%",
|
||||
'due' => "Jatuh tempo",
|
||||
'due_filter' => "Jatuh tempo",
|
||||
'edit' => "Ubah",
|
||||
'edit_item' => "Ubah Item",
|
||||
'edit_sale' => "Ubah Penjualan",
|
||||
'email_receipt' => "email Faktur",
|
||||
'employee' => "Karyawan",
|
||||
'entry' => "Entri",
|
||||
'error_editing_item' => "mengubah item salah",
|
||||
'find_or_scan_item' => "Cari/Scan Item",
|
||||
'find_or_scan_item_or_receipt' => "Cari atau Scan Item atau Faktur",
|
||||
'giftcard' => "Kupon Bonus",
|
||||
'giftcard_balance' => "Nilai Kupon Bonus",
|
||||
'giftcard_filter' => "",
|
||||
'giftcard_number' => "Nomor Kartu Bonus",
|
||||
'group_by_category' => "Dikelompokkan berdasarkan Kategori",
|
||||
'group_by_type' => "Dikelompokkan berdasarkan Jenis",
|
||||
'hsn' => "HSN",
|
||||
'id' => "ID Penjualan",
|
||||
'include_prices' => "Termasuk Harga?",
|
||||
'invoice' => "Faktur",
|
||||
'invoice_confirm' => "Faktur ini akan dikirim ke",
|
||||
'invoice_enable' => "Buat Faktur",
|
||||
'invoice_filter' => "Faktur",
|
||||
'invoice_no_email' => "Pelanggan ini tidak memiliki alamat email yang valid.",
|
||||
'invoice_number' => "Nomor Nota",
|
||||
'invoice_number_duplicate' => "Nomor nota harus unik.",
|
||||
'invoice_sent' => "Faktur dikirim kepada",
|
||||
'invoice_total' => "Total faktur",
|
||||
'invoice_type_custom_invoice' => "Faktur kustom (custom_invoice.php)",
|
||||
'invoice_type_custom_tax_invoice' => "Faktur pajak kustom (custom_tax_invoice.php)",
|
||||
'invoice_type_invoice' => "Faktur (invoice.php)",
|
||||
'invoice_type_tax_invoice' => "Faktur pajak (tax_invoice.php)",
|
||||
'invoice_unsent' => "Faktur gagal dikirim kepada",
|
||||
'invoice_update' => "Menghitung ulang",
|
||||
'item_insufficient_of_stock' => "Stok Item tidak mencukupi.",
|
||||
'item_name' => "Nama Barang",
|
||||
'item_number' => "Barang #",
|
||||
'item_out_of_stock' => "Barang habis.",
|
||||
'key_browser' => "Pintasan bermanfaat",
|
||||
'key_cancel' => "Membatalkan Penawaran/Faktur/Penjualan saat ini",
|
||||
'key_customer_search' => "Pencarian Pelanggan",
|
||||
'key_finish_quote' => "Selesaikan Struk/Faktur tanpa pembayaran",
|
||||
'key_finish_sale' => "Tambahkan Pembayaran dan Lengkapi Faktur/Penjualan",
|
||||
'key_full' => "Buka dalam Mode Layar Penuh",
|
||||
'key_function' => "Fungsi",
|
||||
'key_help' => "Pintasan",
|
||||
'key_help_modal' => "Buka Jendela Pintasan",
|
||||
'key_in' => "Perbesar",
|
||||
'key_item_search' => "Pencarian Barang",
|
||||
'key_out' => "Perkecil",
|
||||
'key_payment' => "Tambahkan Pembayaran",
|
||||
'key_print' => "Cetak Halaman sekarang",
|
||||
'key_restore' => "Reset tampilan zum",
|
||||
'key_search' => "Cari Tabel Laporan",
|
||||
'key_suspend' => "Tangguhkan Penjualan saat ini",
|
||||
'key_suspended' => "Tampilkan Penjualan yang Ditangguhkan",
|
||||
'key_system' => "Pemintas Sistem",
|
||||
'key_tendered' => "Edit jumlah yang dibayarkan",
|
||||
'key_title' => "Pintasan Papan Ketik Penjualan",
|
||||
'mc' => "",
|
||||
'mode' => "Jenis Transaksi",
|
||||
'must_enter_numeric' => "Nilai yang dimasukkan harus berupa angka.",
|
||||
'must_enter_numeric_giftcard' => "Nomor Gift Card harus berupa angka.",
|
||||
'new_customer' => "Pelanggan Baru",
|
||||
'new_item' => "Barang Baru",
|
||||
'no_description' => "Tidak ada deskripsi",
|
||||
'no_filter' => "Semua",
|
||||
'no_items_in_cart' => "Tidak ada Barang dalam Keranjang Belanja.",
|
||||
'no_sales_to_display' => "Tidak ada penjualan yang ditampilkan.",
|
||||
'none_selected' => "Anda belum memilih Penjualan untuk dihapus.",
|
||||
'nontaxed_ind' => " . ",
|
||||
'not_authorized' => "Aksi ini tidak resmi.",
|
||||
'one_or_multiple' => "Penjualan",
|
||||
'payment' => "Jenis Pembayaran",
|
||||
'payment_amount' => "Jumlah",
|
||||
'payment_not_cover_total' => "Jumlah pembayaran harus lebih besar atau sama dengan Total.",
|
||||
'payment_type' => "Jenis",
|
||||
'payments' => "",
|
||||
'payments_total' => "Total Pembayaran",
|
||||
'price' => "Harga",
|
||||
'print_after_sale' => "Cetak Faktur setelah penjualan",
|
||||
'quantity' => "Jumlah",
|
||||
'quantity_less_than_reorder_level' => "Peringatan: Stok Inventori barang ini dibawah level order ulang.",
|
||||
'quantity_less_than_zero' => "Peringatan: Stok Inventori tidak cukup. Proses penjualan masih dapat dilanjutkan, tapi periksa Inventori.",
|
||||
'quantity_of_items' => "Jumlah dari {0} item",
|
||||
'quote' => "Penawaran",
|
||||
'quote_number' => "No. Penawaran",
|
||||
'quote_number_duplicate' => "No. Penawaran tidak boleh sama.",
|
||||
'quote_sent' => "Penawaran dikirim ke",
|
||||
'quote_unsent' => "Penawaran gagal dikirim ke",
|
||||
'receipt' => "Faktur Penjualan",
|
||||
'receipt_no_email' => "Pembeli ini tidak memiliki surel yang valid.",
|
||||
'receipt_number' => "POS #",
|
||||
'receipt_sent' => "Nota dikirim ke",
|
||||
'receipt_unsent' => "Noto gagal dikirim kepada",
|
||||
'refund' => "Tipe Pengembalian Dana",
|
||||
'register' => "Transaksi Penjualan",
|
||||
'remove_customer' => "Hapus Pelanggan",
|
||||
'remove_discount' => "",
|
||||
'return' => "Retur",
|
||||
'rewards' => "Poin Penghargaan",
|
||||
'rewards_balance' => "Jumlah Poin Penghargaan",
|
||||
'sale' => "Penjualan",
|
||||
'sale_by_invoice' => "Penjualan berdasarkan Faktur",
|
||||
'sale_for_customer' => "Pelanggan:",
|
||||
'sale_time' => "Waktu",
|
||||
'sales_tax' => "Pajak Penjualan",
|
||||
'sales_total' => "",
|
||||
'select_customer' => "Pilih Pelanggan",
|
||||
'send_invoice' => "Kirim Faktur",
|
||||
'send_quote' => "Kirim Penawaran",
|
||||
'send_receipt' => "Kirim Nota",
|
||||
'send_work_order' => "Kirim Order Kerja",
|
||||
'serial' => "Seri",
|
||||
'service_charge' => "",
|
||||
'show_due' => "",
|
||||
'show_invoice' => "Tampilkan Faktur",
|
||||
'show_receipt' => "Tampilkan Nota",
|
||||
'start_typing_customer_name' => "Ketik Nama Pelanggan...",
|
||||
'start_typing_item_name' => "Ketik Nama Barang atau Scan Barcode...",
|
||||
'stock' => "Stok",
|
||||
'stock_location' => "Lokasi Stock",
|
||||
'sub_total' => "Sub-total",
|
||||
'successfully_deleted' => "Transaksi Penjualan berhasil dihapus",
|
||||
'successfully_restored' => "Berhasil dikembalikan",
|
||||
'successfully_suspended_sale' => "Penjualan berhasil ditangguhkan.",
|
||||
'successfully_updated' => "Penjualan berhasil diperbarui.",
|
||||
'suspend_sale' => "Tangguhkan",
|
||||
'suspended_doc_id' => "Dokumen",
|
||||
'suspended_sale_id' => "ID Penjualan ditangguhkan",
|
||||
'suspended_sales' => "Penangguhan",
|
||||
'table' => "Meja",
|
||||
'takings' => "Daftar Penjualan",
|
||||
'tax' => "Pajak",
|
||||
'tax_id' => "ID Pajak",
|
||||
'tax_invoice' => "Faktur Pajak",
|
||||
'tax_percent' => "Pajak %",
|
||||
'taxed_ind' => "P",
|
||||
'total' => "Total",
|
||||
'total_tax_exclusive' => "Tidak termasuk pajak",
|
||||
'transaction_failed' => "Transaksi Penjualan gagal.",
|
||||
'unable_to_add_item' => "Tidak dapat menambahkan item pada penjualan",
|
||||
'unsuccessfully_deleted' => "Transaksi Penjualan gagal dihapus.",
|
||||
'unsuccessfully_restored' => "Transaksi Penjualan gagal dikembalikan.",
|
||||
'unsuccessfully_suspended_sale' => "Transaksi penjualan gagal ditangguhkan.",
|
||||
'unsuccessfully_updated' => "Transaksi Penjualan gagal diperbaharui.",
|
||||
'unsuspend' => "Tidak Ditangguhkan",
|
||||
'unsuspend_and_delete' => "Batalkan dan hapus penangguhan",
|
||||
'update' => "Ubah",
|
||||
'upi' => "UPI",
|
||||
'visa' => "",
|
||||
'wholesale' => "",
|
||||
'work_order' => "Perintah Kerja",
|
||||
'work_order_number' => "Nomor Perintah Kerja",
|
||||
'work_order_number_duplicate' => "Nomor Perintah Kerja tidak boleh sama.",
|
||||
'work_order_sent' => "Perintah Kerja dikirim ke",
|
||||
'work_order_unsent' => "Perintah Kerja gagal dikirim ke",
|
||||
'selected_customer' => "Pelanggan Terpilih",
|
||||
return [
|
||||
"customers_available_points" => "Poin tersedia",
|
||||
"rewards_package" => "Hadiah",
|
||||
"rewards_remaining_balance" => "Poin hadiah yang tersisa adalah ",
|
||||
"account_number" => "Akun #",
|
||||
"add_payment" => "Terima",
|
||||
"amount_due" => "Uang Kembalian",
|
||||
"amount_tendered" => "Nilai Pembayaran",
|
||||
"authorized_signature" => "Tanda tangan",
|
||||
"cancel_sale" => "Batal Jual",
|
||||
"cash" => "Tunai",
|
||||
"cash_1" => "",
|
||||
"cash_2" => "",
|
||||
"cash_3" => "",
|
||||
"cash_4" => "",
|
||||
"cash_adjustment" => "Penyesuaian Kas",
|
||||
"cash_deposit" => "Deposit Tunai",
|
||||
"cash_filter" => "Tunai",
|
||||
"change_due" => "Kembalian Uang",
|
||||
"change_price" => "Ubah Harga Jual",
|
||||
"check" => "Cek",
|
||||
"check_balance" => "Aktifkan pengingat",
|
||||
"check_filter" => "Cek",
|
||||
"close" => "",
|
||||
"comment" => "Catatan",
|
||||
"comments" => "Keterangan",
|
||||
"company_name" => "",
|
||||
"complete" => "",
|
||||
"complete_sale" => "Selesai",
|
||||
"confirm_cancel_sale" => "Apakah anda yakin ingin mengosongkan transaksi penjualan ini? Semua item akan dihapus.",
|
||||
"confirm_delete" => "Apakah anda yakin akan menghapus penjualan terpilih?",
|
||||
"confirm_restore" => "Apakah anda yakin akan mengembalikan penjualan terpilih?",
|
||||
"credit" => "Kartu Kredit",
|
||||
"credit_deposit" => "Deposit Kredit",
|
||||
"credit_filter" => "Kartu Kredit",
|
||||
"current_table" => "",
|
||||
"customer" => "Pelanggan",
|
||||
"customer_address" => "Alamat",
|
||||
"customer_discount" => "Diskon",
|
||||
"customer_email" => "Email",
|
||||
"customer_location" => "Lokasi",
|
||||
"customer_mailchimp_status" => "Status MailChimp",
|
||||
"customer_optional" => "(Diperlukan untuk Pembayaran Jatuh Tempo)",
|
||||
"customer_required" => "(Dibutuhkan)",
|
||||
"customer_total" => "Total",
|
||||
"customer_total_spent" => "",
|
||||
"daily_sales" => "",
|
||||
"date" => "Tanggal Penjualan",
|
||||
"date_range" => "Rentang Tanggal",
|
||||
"date_required" => "Masukkan tanggal yang benar.",
|
||||
"date_type" => "Tanggal tidak boleh kosong.",
|
||||
"debit" => "Kartu Debit",
|
||||
"debit_filter" => "",
|
||||
"delete" => "Boleh dihapus",
|
||||
"delete_confirmation" => "Apakah anda yakin ingin menghapus transaksi penjualan ini, Pilihan ini tidak dapat dibatalkan.",
|
||||
"delete_entire_sale" => "Hapus Transaksi Penjualan",
|
||||
"delete_successful" => "Transaksi Penjualan berhasil dihapus.",
|
||||
"delete_unsuccessful" => "Transaksi Penjualan gagal dihapus.",
|
||||
"description_abbrv" => "Deskripsi.",
|
||||
"discard" => "Buang",
|
||||
"discard_quote" => "",
|
||||
"discount" => "Diskon",
|
||||
"discount_included" => "% Diskon",
|
||||
"discount_short" => "%",
|
||||
"due" => "Jatuh tempo",
|
||||
"due_filter" => "Jatuh tempo",
|
||||
"edit" => "Ubah",
|
||||
"edit_item" => "Ubah Item",
|
||||
"edit_sale" => "Ubah Penjualan",
|
||||
"email_receipt" => "email Faktur",
|
||||
"employee" => "Karyawan",
|
||||
"entry" => "Entri",
|
||||
"error_editing_item" => "mengubah item salah",
|
||||
"find_or_scan_item" => "Cari/Scan Item",
|
||||
"find_or_scan_item_or_receipt" => "Cari atau Scan Item atau Faktur",
|
||||
"giftcard" => "Kupon Bonus",
|
||||
"giftcard_balance" => "Nilai Kupon Bonus",
|
||||
"giftcard_filter" => "",
|
||||
"giftcard_number" => "Nomor Kartu Bonus",
|
||||
"group_by_category" => "Dikelompokkan berdasarkan Kategori",
|
||||
"group_by_type" => "Dikelompokkan berdasarkan Jenis",
|
||||
"hsn" => "HSN",
|
||||
"id" => "ID Penjualan",
|
||||
"include_prices" => "Termasuk Harga?",
|
||||
"invoice" => "Faktur",
|
||||
"invoice_confirm" => "Faktur ini akan dikirim ke",
|
||||
"invoice_enable" => "Buat Faktur",
|
||||
"invoice_filter" => "Faktur",
|
||||
"invoice_no_email" => "Pelanggan ini tidak memiliki alamat email yang valid.",
|
||||
"invoice_number" => "Nomor Nota",
|
||||
"invoice_number_duplicate" => "Nomor nota harus unik.",
|
||||
"invoice_sent" => "Faktur dikirim kepada",
|
||||
"invoice_total" => "Total faktur",
|
||||
"invoice_type_custom_invoice" => "Faktur kustom (custom_invoice.php)",
|
||||
"invoice_type_custom_tax_invoice" => "Faktur pajak kustom (custom_tax_invoice.php)",
|
||||
"invoice_type_invoice" => "Faktur (invoice.php)",
|
||||
"invoice_type_tax_invoice" => "Faktur pajak (tax_invoice.php)",
|
||||
"invoice_unsent" => "Faktur gagal dikirim kepada",
|
||||
"invoice_update" => "Menghitung ulang",
|
||||
"item_insufficient_of_stock" => "Stok Item tidak mencukupi.",
|
||||
"item_name" => "Nama Barang",
|
||||
"item_number" => "Barang #",
|
||||
"item_out_of_stock" => "Barang habis.",
|
||||
"key_browser" => "Pintasan bermanfaat",
|
||||
"key_cancel" => "Membatalkan Penawaran/Faktur/Penjualan saat ini",
|
||||
"key_customer_search" => "Pencarian Pelanggan",
|
||||
"key_finish_quote" => "Selesaikan Struk/Faktur tanpa pembayaran",
|
||||
"key_finish_sale" => "Tambahkan Pembayaran dan Lengkapi Faktur/Penjualan",
|
||||
"key_full" => "Buka dalam Mode Layar Penuh",
|
||||
"key_function" => "Fungsi",
|
||||
"key_help" => "Pintasan",
|
||||
"key_help_modal" => "Buka Jendela Pintasan",
|
||||
"key_in" => "Perbesar",
|
||||
"key_item_search" => "Pencarian Barang",
|
||||
"key_out" => "Perkecil",
|
||||
"key_payment" => "Tambahkan Pembayaran",
|
||||
"key_print" => "Cetak Halaman sekarang",
|
||||
"key_restore" => "Reset tampilan zum",
|
||||
"key_search" => "Cari Tabel Laporan",
|
||||
"key_suspend" => "Tangguhkan Penjualan saat ini",
|
||||
"key_suspended" => "Tampilkan Penjualan yang Ditangguhkan",
|
||||
"key_system" => "Pemintas Sistem",
|
||||
"key_tendered" => "Edit jumlah yang dibayarkan",
|
||||
"key_title" => "Pintasan Papan Ketik Penjualan",
|
||||
"mc" => "",
|
||||
"mode" => "Jenis Transaksi",
|
||||
"must_enter_numeric" => "Nilai yang dimasukkan harus berupa angka.",
|
||||
"must_enter_numeric_giftcard" => "Nomor Gift Card harus berupa angka.",
|
||||
"new_customer" => "Pelanggan Baru",
|
||||
"new_item" => "Barang Baru",
|
||||
"no_description" => "Tidak ada deskripsi",
|
||||
"no_filter" => "Semua",
|
||||
"no_items_in_cart" => "Tidak ada Barang dalam Keranjang Belanja.",
|
||||
"no_sales_to_display" => "Tidak ada penjualan yang ditampilkan.",
|
||||
"none_selected" => "Anda belum memilih Penjualan untuk dihapus.",
|
||||
"nontaxed_ind" => " . ",
|
||||
"not_authorized" => "Aksi ini tidak resmi.",
|
||||
"one_or_multiple" => "Penjualan",
|
||||
"payment" => "Jenis Pembayaran",
|
||||
"payment_amount" => "Jumlah",
|
||||
"payment_not_cover_total" => "Jumlah pembayaran harus lebih besar atau sama dengan Total.",
|
||||
"payment_type" => "Jenis",
|
||||
"payments" => "",
|
||||
"payments_total" => "Total Pembayaran",
|
||||
"price" => "Harga",
|
||||
"print_after_sale" => "Cetak Faktur setelah penjualan",
|
||||
"quantity" => "Jumlah",
|
||||
"quantity_less_than_reorder_level" => "Peringatan: Stok Inventori barang ini dibawah level order ulang.",
|
||||
"quantity_less_than_zero" => "Peringatan: Stok Inventori tidak cukup. Proses penjualan masih dapat dilanjutkan, tapi periksa Inventori.",
|
||||
"quantity_of_items" => "Jumlah dari {0} item",
|
||||
"quote" => "Penawaran",
|
||||
"quote_number" => "No. Penawaran",
|
||||
"quote_number_duplicate" => "No. Penawaran tidak boleh sama.",
|
||||
"quote_sent" => "Penawaran dikirim ke",
|
||||
"quote_unsent" => "Penawaran gagal dikirim ke",
|
||||
"receipt" => "Faktur Penjualan",
|
||||
"receipt_no_email" => "Pembeli ini tidak memiliki surel yang valid.",
|
||||
"receipt_number" => "POS #",
|
||||
"receipt_sent" => "Nota dikirim ke",
|
||||
"receipt_unsent" => "Noto gagal dikirim kepada",
|
||||
"refund" => "Tipe Pengembalian Dana",
|
||||
"register" => "Transaksi Penjualan",
|
||||
"remove_customer" => "Hapus Pelanggan",
|
||||
"remove_discount" => "",
|
||||
"return" => "Retur",
|
||||
"rewards" => "Poin Penghargaan",
|
||||
"rewards_balance" => "Jumlah Poin Penghargaan",
|
||||
"sale" => "Penjualan",
|
||||
"sale_by_invoice" => "Penjualan berdasarkan Faktur",
|
||||
"sale_for_customer" => "Pelanggan:",
|
||||
"sale_time" => "Waktu",
|
||||
"sales_tax" => "Pajak Penjualan",
|
||||
"sales_total" => "",
|
||||
"select_customer" => "Pilih Pelanggan",
|
||||
"send_invoice" => "Kirim Faktur",
|
||||
"send_quote" => "Kirim Penawaran",
|
||||
"send_receipt" => "Kirim Nota",
|
||||
"send_work_order" => "Kirim Order Kerja",
|
||||
"serial" => "Seri",
|
||||
"service_charge" => "",
|
||||
"show_due" => "",
|
||||
"show_invoice" => "Tampilkan Faktur",
|
||||
"show_receipt" => "Tampilkan Nota",
|
||||
"start_typing_customer_name" => "Ketik Nama Pelanggan...",
|
||||
"start_typing_item_name" => "Ketik Nama Barang atau Scan Barcode...",
|
||||
"stock" => "Stok",
|
||||
"stock_location" => "Lokasi Stock",
|
||||
"sub_total" => "Sub-total",
|
||||
"successfully_deleted" => "Transaksi Penjualan berhasil dihapus",
|
||||
"successfully_restored" => "Berhasil dikembalikan",
|
||||
"successfully_suspended_sale" => "Penjualan berhasil ditangguhkan.",
|
||||
"successfully_updated" => "Penjualan berhasil diperbarui.",
|
||||
"suspend_sale" => "Tangguhkan",
|
||||
"suspended_doc_id" => "Dokumen",
|
||||
"suspended_sale_id" => "ID Penjualan ditangguhkan",
|
||||
"suspended_sales" => "Penangguhan",
|
||||
"table" => "Meja",
|
||||
"takings" => "Daftar Penjualan",
|
||||
"tax" => "Pajak",
|
||||
"tax_id" => "ID Pajak",
|
||||
"tax_invoice" => "Faktur Pajak",
|
||||
"tax_percent" => "Pajak %",
|
||||
"taxed_ind" => "P",
|
||||
"total" => "Total",
|
||||
"total_tax_exclusive" => "Tidak termasuk pajak",
|
||||
"transaction_failed" => "Transaksi Penjualan gagal.",
|
||||
"unable_to_add_item" => "Tidak dapat menambahkan item pada penjualan",
|
||||
"unsuccessfully_deleted" => "Transaksi Penjualan gagal dihapus.",
|
||||
"unsuccessfully_restored" => "Transaksi Penjualan gagal dikembalikan.",
|
||||
"unsuccessfully_suspended_sale" => "Transaksi penjualan gagal ditangguhkan.",
|
||||
"unsuccessfully_updated" => "Transaksi Penjualan gagal diperbaharui.",
|
||||
"unsuspend" => "Tidak Ditangguhkan",
|
||||
"unsuspend_and_delete" => "Batalkan dan hapus penangguhan",
|
||||
"update" => "Ubah",
|
||||
"upi" => "UPI",
|
||||
"visa" => "",
|
||||
"wholesale" => "",
|
||||
"work_order" => "Perintah Kerja",
|
||||
"work_order_number" => "Nomor Perintah Kerja",
|
||||
"work_order_number_duplicate" => "Nomor Perintah Kerja tidak boleh sama.",
|
||||
"work_order_sent" => "Perintah Kerja dikirim ke",
|
||||
"work_order_unsent" => "Perintah Kerja gagal dikirim ke",
|
||||
];
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => "alla",
|
||||
'columns' => "Kolumner",
|
||||
'hide_show_pagination' => "Dölj/visa sida",
|
||||
'loading' => "Laddar, vänligen vänta...",
|
||||
'page_from_to' => "Visar {0} till {1} av {2} rader",
|
||||
'refresh' => "Ladda om",
|
||||
'rows_per_page' => "{0} rader per sida",
|
||||
'toggle' => "Växla",
|
||||
"all" => "alla",
|
||||
"columns" => "Kolumner",
|
||||
"hide_show_pagination" => "Dölj/visa sida",
|
||||
"loading" => "Laddar, ha tålamod...",
|
||||
"page_from_to" => "Visar {0} till {1} av {2} rader",
|
||||
"refresh" => "Ladda om",
|
||||
"rows_per_page" => "{0} rader per sida",
|
||||
"toggle" => "Växla",
|
||||
];
|
||||
|
||||
@@ -1,50 +1,49 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'amount' => "Summa",
|
||||
'amount_number' => "Summa måste vara ett nummer",
|
||||
'amount_required' => "Summa kan ej lämnas tomt.",
|
||||
'cancel_cashups' => "",
|
||||
'cancel_cashups_enter' => "",
|
||||
'cannot_be_deleted' => "Dagskassa kan inte tas bort",
|
||||
'cash_difference' => "",
|
||||
'close_date' => "Datum för avslut",
|
||||
'close_employee' => "Stängdes av",
|
||||
'closed_amount_card' => "Kort",
|
||||
'closed_amount_cash' => "Stängda kontanter",
|
||||
'closed_amount_check' => "Kontroller",
|
||||
'closed_amount_due' => "Avgifter",
|
||||
'closed_amount_giftcard' => "",
|
||||
'closed_amount_total' => "Total",
|
||||
'closed_date' => "Avslutat datum",
|
||||
'confirm_delete' => "Är du säker på att du vill ta bort den valda dagskassan?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda dagsavslut?",
|
||||
'confirm_submit' => "",
|
||||
'date_number' => "Datum måste vara ett nummer",
|
||||
'date_required' => "Datum är ett fält som krävs",
|
||||
'description' => "Beskrivning",
|
||||
'enable_expected' => "",
|
||||
'error_adding_updating' => "Fel vid tilläggning/uppdatering av dagskassa",
|
||||
'giftcard' => "",
|
||||
'id' => "Id",
|
||||
'info' => "Information om dagskassor",
|
||||
'info_employee' => "",
|
||||
'is_deleted' => "Raderad",
|
||||
'new' => "Ny dagskassa",
|
||||
'no_cashups_to_display' => "Finns inga dagskassor att visa",
|
||||
'none_selected' => "Du har inte vald någon dagskassa",
|
||||
'note' => "Anteckningar",
|
||||
'one_or_multiple' => "Dagskassor",
|
||||
'open_amount_cash' => "Öppna kontanter",
|
||||
'open_date' => "Öppningsdatum",
|
||||
'open_employee' => "Öppnad av",
|
||||
'opened_date' => "Öppningsdatum",
|
||||
'successful_adding' => "Dagskassa tillagd",
|
||||
'successful_deleted' => "Dagskassa raderades",
|
||||
'successful_updating' => "Dagskassa uppdaterades",
|
||||
'total' => "Toralt",
|
||||
'transfer_amount_cash' => "Växelkassa",
|
||||
'transfer_amount_cash_minus' => "",
|
||||
'update' => "Uppdatera dagskassa",
|
||||
'warning' => "",
|
||||
"amount" => "Summa",
|
||||
"amount_number" => "Summa måste vara ett nummer",
|
||||
"amount_required" => "Summa kan ej lämnas tomt.",
|
||||
"cancel_cashups" => "",
|
||||
"cancel_cashups_enter" => "",
|
||||
"cannot_be_deleted" => "Dagskassa kan ej raderas",
|
||||
"cash_difference" => "",
|
||||
"close_date" => "Avslutsdatum",
|
||||
"close_employee" => "Avslutad av",
|
||||
"closed_amount_card" => "Kort",
|
||||
"closed_amount_cash" => "Stängda kontanter",
|
||||
"closed_amount_check" => "Checkar",
|
||||
"closed_amount_due" => "Avgifter",
|
||||
"closed_amount_giftcard" => "",
|
||||
"closed_amount_total" => "Total",
|
||||
"closed_date" => "Avslutat datum",
|
||||
"confirm_delete" => "Är du säker på att du vill ta bort den valda dagskassan?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda dagsavslut?",
|
||||
"confirm_submit" => "",
|
||||
"date_number" => "Datum måste vara ett nummer",
|
||||
"date_required" => "Datum måste anges",
|
||||
"description" => "Beskrivning",
|
||||
"enable_expected" => "",
|
||||
"error_adding_updating" => "Fel vid tillägg / uppdatering av dagskassa",
|
||||
"giftcard" => "",
|
||||
"id" => "Id",
|
||||
"info" => "Dagskassa information",
|
||||
"info_employee" => "",
|
||||
"is_deleted" => "Raderad",
|
||||
"new" => "Ny dagskassa",
|
||||
"no_cashups_to_display" => "Finns inga dagskassor att visa",
|
||||
"none_selected" => "Du har inte vald någon dagskassa",
|
||||
"note" => "Anteckningar",
|
||||
"one_or_multiple" => "Dagskassor",
|
||||
"open_amount_cash" => "Öppna kontanter",
|
||||
"open_date" => "Öppningsdatum",
|
||||
"open_employee" => "Öppnad av",
|
||||
"opened_date" => "Öppningsdatum",
|
||||
"successful_adding" => "Dagskassa tillagd",
|
||||
"successful_deleted" => "Dagskassa raderades",
|
||||
"successful_updating" => "Dagskassa uppdaterades",
|
||||
"total" => "Toralt",
|
||||
"transfer_amount_cash" => "Växelkassa",
|
||||
"transfer_amount_cash_minus" => "",
|
||||
"update" => "Uppdatera dagskassa",
|
||||
"warning" => "",
|
||||
];
|
||||
|
||||
@@ -1,89 +1,88 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'address_1' => "Adress 1",
|
||||
'address_2' => "Adress 2",
|
||||
'admin' => "",
|
||||
'city' => "Stad",
|
||||
'clerk' => "",
|
||||
'close' => "Stäng",
|
||||
'color' => "",
|
||||
'comments' => "Kommentarer",
|
||||
'common' => "allmänt",
|
||||
'confirm_search' => "Du har valt en eller flera rader, dessa kommer inte längre att väljas efter din sökning. Är du säker på att du vill skicka in den här sökningen?",
|
||||
'copyrights' => "© 2010 - {0}",
|
||||
'correct_errors' => "Vänligen rätta till identifierade fel innan du sparar",
|
||||
'country' => "Land",
|
||||
'dashboard' => "",
|
||||
'date' => "Datum",
|
||||
'delete' => "Radera",
|
||||
'det' => "detaljer",
|
||||
'download_import_template' => "Hämta importerad CSV-mall (CSV)",
|
||||
'edit' => "redigera",
|
||||
'email' => "E-post",
|
||||
'email_invalid_format' => "E-postadressen är inte i rätt format.",
|
||||
'export_csv' => "CSV Export",
|
||||
'export_csv_no' => "Nej",
|
||||
'export_csv_yes' => "Ja",
|
||||
'fields_required_message' => "Fält markerade i rött är obligatoriska",
|
||||
'fields_required_message_unique' => "",
|
||||
'first_name' => "Förnamn",
|
||||
'first_name_required' => "Förnamn är ett obligatoriskt fält.",
|
||||
'first_page' => "Första",
|
||||
'gender' => "Kön",
|
||||
'gender_female' => "Kvinna",
|
||||
'gender_male' => "Man",
|
||||
'gender_undefined' => "",
|
||||
'icon' => "Ikon",
|
||||
'id' => "ID",
|
||||
'import' => "Import",
|
||||
'import_change_file' => "Ändra",
|
||||
'import_csv' => "CSV-import",
|
||||
'import_full_path' => "Fullständig sökväg till CSV-fil krävs",
|
||||
'import_remove_file' => "Radera",
|
||||
'import_select_file' => "Välj fil",
|
||||
'inv' => "Fakt",
|
||||
'last_name' => "Efternamn",
|
||||
'last_name_required' => "Efternamn är ett obligatoriskt fält.",
|
||||
'last_page' => "Sista",
|
||||
'learn_about_project' => "för att lära sig den senaste informationen om projektet.",
|
||||
'list_of' => "Lista av",
|
||||
'logo' => "Logga",
|
||||
'logo_mark' => "Varumärke",
|
||||
'logout' => "Logga ut",
|
||||
'manager' => "",
|
||||
'migration_needed' => "Migration av databasen {0} kommer att påbörjas efter login.",
|
||||
'new' => "Ny",
|
||||
'no' => "Nej",
|
||||
'no_persons_to_display' => "Det finns inga personer att visa.",
|
||||
'none_selected_text' => "[Inget valt]",
|
||||
'or' => "Eller",
|
||||
'people' => "",
|
||||
'phone_number' => "Telefonnummer",
|
||||
'phone_number_required' => "",
|
||||
'please_visit_my' => "Vänligen besök",
|
||||
'position' => "",
|
||||
'powered_by' => "Drivs av",
|
||||
'price' => "Pris",
|
||||
'print' => "Skriv ut",
|
||||
'remove' => "Radera",
|
||||
'required' => "Krävs",
|
||||
'restore' => "Återställ",
|
||||
'return_policy' => "Retur policy",
|
||||
'search' => "Sök",
|
||||
'search_options' => "Sökalternativ",
|
||||
'searched_for' => "Sök efter",
|
||||
'software_short' => "OSPOS",
|
||||
'software_title' => "Point of Sale med öppen källkod",
|
||||
'state' => "Län",
|
||||
'submit' => "Spara",
|
||||
'total_spent' => "Totalt spenderat",
|
||||
'unknown' => "Okänt",
|
||||
'view_recent_sales' => "Visa senaste försäljningar",
|
||||
'website' => "opensourcepos.org",
|
||||
'welcome' => "Välkommen",
|
||||
'welcome_message' => "Välkommen till OSPOS, klicka på en modul nedan för att komma igång.",
|
||||
'yes' => "Ja",
|
||||
'you_are_using_ospos' => "Du använder Open Source Point of Sale version",
|
||||
'zip' => "Postnummer",
|
||||
"address_1" => "Adress 1",
|
||||
"address_2" => "Adress 2",
|
||||
"admin" => "",
|
||||
"city" => "Stad",
|
||||
"clerk" => "",
|
||||
"close" => "Stäng",
|
||||
"color" => "",
|
||||
"comments" => "Kommentarer",
|
||||
"common" => "allmänt",
|
||||
"confirm_search" => "Du har valt en eller flera rader, dessa kommer inte längre att väljas efter din sökning. Är du säker på att du vill skicka in den här sökningen?",
|
||||
"copyrights" => "© 2010 - {0}",
|
||||
"correct_errors" => "Rätta identifierat fel innan du sparar",
|
||||
"country" => "Land",
|
||||
"dashboard" => "",
|
||||
"date" => "Datum",
|
||||
"delete" => "Radera",
|
||||
"det" => "detaljer",
|
||||
"download_import_template" => "Hämta importerad CSV-mall (CSV)",
|
||||
"edit" => "Ändra",
|
||||
"email" => "E-mail",
|
||||
"email_invalid_format" => "E-postadressen är inte i rätt format.",
|
||||
"export_csv" => "CSV Export",
|
||||
"export_csv_no" => "Nej",
|
||||
"export_csv_yes" => "Ja",
|
||||
"fields_required_message" => "Fält markerade i rött är obligatoriska",
|
||||
"fields_required_message_unique" => "",
|
||||
"first_name" => "Förnamn",
|
||||
"first_name_required" => "Förnamn är ett obligatoriskt fält.",
|
||||
"first_page" => "Första",
|
||||
"gender" => "Kön",
|
||||
"gender_female" => "Kvinna",
|
||||
"gender_male" => "Man",
|
||||
"gender_undefined" => "",
|
||||
"icon" => "Ikon",
|
||||
"id" => "ID",
|
||||
"import" => "Import",
|
||||
"import_change_file" => "Ändra",
|
||||
"import_csv" => "CSV-import",
|
||||
"import_full_path" => "Fullständig sökväg till CSV-fil krävs",
|
||||
"import_remove_file" => "Radera",
|
||||
"import_select_file" => "Välj fil",
|
||||
"inv" => "Fakt",
|
||||
"last_name" => "Efternamn",
|
||||
"last_name_required" => "Efternamn är ett obligatoriskt fält.",
|
||||
"last_page" => "Sista",
|
||||
"learn_about_project" => "för att lära sig den senaste informationen om projektet.",
|
||||
"list_of" => "Lista av",
|
||||
"logo" => "Logga",
|
||||
"logo_mark" => "",
|
||||
"logout" => "Logga ut",
|
||||
"manager" => "",
|
||||
"migration_needed" => "Migration av databasen {0} kommer att påbörjas efter login.",
|
||||
"new" => "Ny",
|
||||
"no" => "",
|
||||
"no_persons_to_display" => "Det finns inga personer att visa.",
|
||||
"none_selected_text" => "[Inget valt]",
|
||||
"or" => "Eller",
|
||||
"people" => "",
|
||||
"phone_number" => "Telefonnummer",
|
||||
"phone_number_required" => "",
|
||||
"please_visit_my" => "Vänligen besök",
|
||||
"position" => "",
|
||||
"powered_by" => "Drivs av",
|
||||
"price" => "Pris",
|
||||
"print" => "Skriv ut",
|
||||
"remove" => "Radera",
|
||||
"required" => "Krävs",
|
||||
"restore" => "Återställ",
|
||||
"return_policy" => "Retur policy",
|
||||
"search" => "Sök",
|
||||
"search_options" => "Sökalternativ",
|
||||
"searched_for" => "Sök efter",
|
||||
"software_short" => "",
|
||||
"software_title" => "",
|
||||
"state" => "Län",
|
||||
"submit" => "Spara",
|
||||
"total_spent" => "Totalt spenderat",
|
||||
"unknown" => "Okänt",
|
||||
"view_recent_sales" => "Visa senaste försäljningar",
|
||||
"website" => "opensourcepos.org",
|
||||
"welcome" => "Välkommen",
|
||||
"welcome_message" => "Välkommen till OSPOS, klicka på en modul nedan för att komma igång.",
|
||||
"yes" => "",
|
||||
"you_are_using_ospos" => "Du använder Open Source Point of Sale version",
|
||||
"zip" => "Postnummer",
|
||||
];
|
||||
|
||||
@@ -1,331 +1,330 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'address' => "Företagsadress",
|
||||
'address_required' => "Företagsadress är ett obligatoriskt fält.",
|
||||
'all_set' => "Alla filbehörigheter är korrekt inställda!",
|
||||
'allow_duplicate_barcodes' => "Tillåt duplicera streckkoder",
|
||||
'apostrophe' => "apostrof",
|
||||
'backup_button' => "Backup",
|
||||
'backup_database' => "Säkerhetskopiera databas",
|
||||
'barcode' => "Streckkod",
|
||||
'barcode_company' => "Företagsnamn",
|
||||
'barcode_configuration' => "Streckkodskonfiguration",
|
||||
'barcode_content' => "Streckkod innehåll",
|
||||
'barcode_first_row' => "Rad 1",
|
||||
'barcode_font' => "Font",
|
||||
'barcode_formats' => "Inmatningsformat",
|
||||
'barcode_generate_if_empty' => "Skapa om tom.",
|
||||
'barcode_height' => "Höjd (px)",
|
||||
'barcode_id' => "Artikel-id / namn",
|
||||
'barcode_info' => "Streckkodskonfigurationsinformation",
|
||||
'barcode_layout' => "Streckkodslayout",
|
||||
'barcode_name' => "Namn",
|
||||
'barcode_number' => "Streckkod",
|
||||
'barcode_number_in_row' => "Antal i rad",
|
||||
'barcode_page_cellspacing' => "Visa kolumnbredd.",
|
||||
'barcode_page_width' => "Visa sidbredd",
|
||||
'barcode_price' => "Pris",
|
||||
'barcode_second_row' => "Rad 2",
|
||||
'barcode_third_row' => "Rad 3",
|
||||
'barcode_tooltip' => "Varning: Den här funktionen kan orsaka att duplicerade objekt importeras eller skapas. Använd inte om du inte vill ha dubbla streckkoder.",
|
||||
'barcode_type' => "Streckkodstyp",
|
||||
'barcode_width' => "Bredd (px)",
|
||||
'bottom' => "Botten",
|
||||
'cash_button' => "",
|
||||
'cash_button_1' => "",
|
||||
'cash_button_2' => "",
|
||||
'cash_button_3' => "",
|
||||
'cash_button_4' => "",
|
||||
'cash_button_5' => "",
|
||||
'cash_button_6' => "",
|
||||
'cash_decimals' => "Kontant decimaler",
|
||||
'cash_decimals_tooltip' => "Om kontanterna och valutadecimalen är desamma kommer ingen öresutjämning att äga rum.",
|
||||
'cash_rounding' => "Öresavjämning",
|
||||
'category_dropdown' => "Visa kategori som en rullgardinsmeny",
|
||||
'center' => "Mitten",
|
||||
'change_apperance_tooltip' => "",
|
||||
'comma' => "komma",
|
||||
'company' => "Företasnamn",
|
||||
'company_avatar' => "",
|
||||
'company_change_image' => "Ändra bild",
|
||||
'company_logo' => "Företagslogo",
|
||||
'company_remove_image' => "Radera bild",
|
||||
'company_required' => "Företagsnamn är ett obligatoriskt fält",
|
||||
'company_select_image' => "Välj Bild",
|
||||
'company_website_url' => "Företagets webbplats är inte en giltig URL (http: // ...).",
|
||||
'country_codes' => "Landskod",
|
||||
'country_codes_tooltip' => "Kommaseparerad lista över landskoder för nominatimadressuppslag.",
|
||||
'currency_code' => "Valutakod",
|
||||
'currency_decimals' => "Valuta Decimaler",
|
||||
'currency_symbol' => "Valutasymbol",
|
||||
'current_employee_only' => "",
|
||||
'customer_reward' => "Bonus",
|
||||
'customer_reward_duplicate' => "Bonus måste vara unik.",
|
||||
'customer_reward_enable' => "Aktivera kundbonus",
|
||||
'customer_reward_invalid_chars' => "Bonus kan inte innehålla '_'",
|
||||
'customer_reward_required' => "Bonus är ett obligatoriskt fält",
|
||||
'customer_sales_tax_support' => "Kundomsättningskatt Support",
|
||||
'date_or_time_format' => "Datum och tidsfilter",
|
||||
'datetimeformat' => "Datum och tid Format",
|
||||
'decimal_point' => "Decimalpunkt",
|
||||
'default_barcode_font_size_number' => "Standard streckkods teckensnittstorlek måste vara ett nummer.",
|
||||
'default_barcode_font_size_required' => "Standard streckkodstorlekstorlek är ett obligatoriskt fält.",
|
||||
'default_barcode_height_number' => "Standard streckkodshöjd måste vara ett nummer.",
|
||||
'default_barcode_height_required' => "Standard streckkodshöjd är ett obligatoriskt fält.",
|
||||
'default_barcode_num_in_row_number' => "Standard streckkodsnummer i rad måste vara ett nummer.",
|
||||
'default_barcode_num_in_row_required' => "Standard streckkodsnummer i rad måste vara ett nummer.",
|
||||
'default_barcode_page_cellspacing_number' => "Standard Streckkodssida Cellspacing måste vara ett nummer.",
|
||||
'default_barcode_page_cellspacing_required' => "Standard Streckkodssida Cellspacing är ett obligatoriskt fält.",
|
||||
'default_barcode_page_width_number' => "Standard streckkodssidans bredd måste vara ett nummer.",
|
||||
'default_barcode_page_width_required' => "Standard streckkodssidans bredd är ett obligatoriskt fält.",
|
||||
'default_barcode_width_number' => "Standard streckkodsbredd måste vara ett nummer.",
|
||||
'default_barcode_width_required' => "Standard streckkodsbredd är ett obligatoriskt fält.",
|
||||
'default_item_columns' => "Standard synliga artikel kolumner",
|
||||
'default_origin_tax_code' => "Standard Urkomstskattkod",
|
||||
'default_receivings_discount' => "Standardmottagningsrabatt",
|
||||
'default_receivings_discount_number' => "Standardmottagningsrabatten måste vara ett nummer.",
|
||||
'default_receivings_discount_required' => "Standardmottagningsrabatt är ett obligatoriskt fält.",
|
||||
'default_sales_discount' => "Standard Försäljningsrabatt %",
|
||||
'default_sales_discount_number' => "Standardförsäljningsrabatt måste vara ett nummer.",
|
||||
'default_sales_discount_required' => "Standardförsäljningsrabatt är ett obligatoriskt fält.",
|
||||
'default_tax_category' => "Standardskattskategori",
|
||||
'default_tax_code' => "Standard skattetabell",
|
||||
'default_tax_jurisdiction' => "Standardskattejurisdiktion",
|
||||
'default_tax_name_number' => "Standardskattnamn måste vara en sträng.",
|
||||
'default_tax_name_required' => "Standardskattnamn är ett obligatoriskt fält.",
|
||||
'default_tax_rate' => "Standardskattesats%",
|
||||
'default_tax_rate_1' => "Skattesats 1",
|
||||
'default_tax_rate_2' => "Skattesats 2",
|
||||
'default_tax_rate_3' => "",
|
||||
'default_tax_rate_number' => "Standardskattesats måste vara ett nummer.",
|
||||
'default_tax_rate_required' => "Standardskattesats är ett obligatoriskt fält.",
|
||||
'derive_sale_quantity' => "Tillåt avledad försäljningskvantitet",
|
||||
'derive_sale_quantity_tooltip' => "Om den är markerad kommer en ny objekttyp att tillhandahållas för poster som beställts med förlängd mängd",
|
||||
'dinner_table' => "Bord",
|
||||
'dinner_table_duplicate' => "Bordsnummer måste vara unik.",
|
||||
'dinner_table_enable' => "Aktivera bord",
|
||||
'dinner_table_invalid_chars' => "Bordsnamn får inte innehålla '_'.",
|
||||
'dinner_table_required' => "Bord är ett obligatoriskt fält.",
|
||||
'dot' => "punkt",
|
||||
'email' => "E-post",
|
||||
'email_configuration' => "E-mail Konfiguration",
|
||||
'email_mailpath' => "Sökväg till Sendmail",
|
||||
'email_protocol' => "Protokol",
|
||||
'email_receipt_check_behaviour' => "Kryssruta för e-postkvitto",
|
||||
'email_receipt_check_behaviour_always' => "Alltid förikryssad",
|
||||
'email_receipt_check_behaviour_last' => "Kom ihåg det senaste valet",
|
||||
'email_receipt_check_behaviour_never' => "Alltid urkryssad",
|
||||
'email_smtp_crypto' => "SMTP kryptering",
|
||||
'email_smtp_host' => "SMTP Server",
|
||||
'email_smtp_pass' => "SMTP Lösenord",
|
||||
'email_smtp_port' => "SMTP Port",
|
||||
'email_smtp_timeout' => "SMTP Timeout",
|
||||
'email_smtp_user' => "SMTP Användarnamn",
|
||||
'enable_avatar' => "",
|
||||
'enable_avatar_tooltip' => "",
|
||||
'enable_dropdown_tooltip' => "",
|
||||
'enable_new_look' => "",
|
||||
'enable_right_bar' => "",
|
||||
'enable_right_bar_tooltip' => "",
|
||||
'enforce_privacy' => "Upprätthålla integritet",
|
||||
'enforce_privacy_tooltip' => "Skydda kundernas integritet genom att kryptera data om deras data raderas",
|
||||
'fax' => "Fax",
|
||||
'file_perm' => "There are problems with file permissions please fix and reload this page.",
|
||||
'financial_year' => "Räkenskapsårets början",
|
||||
'financial_year_apr' => "1 april",
|
||||
'financial_year_aug' => "1 augusti",
|
||||
'financial_year_dec' => "1 december",
|
||||
'financial_year_feb' => "1 februari",
|
||||
'financial_year_jan' => "1 januari",
|
||||
'financial_year_jul' => "1 juli",
|
||||
'financial_year_jun' => "1 juni",
|
||||
'financial_year_mar' => "1 mars",
|
||||
'financial_year_may' => "1 maj",
|
||||
'financial_year_nov' => "1 november",
|
||||
'financial_year_oct' => "1 oktober",
|
||||
'financial_year_sep' => "1 september",
|
||||
'floating_labels' => "Flytande etiketter",
|
||||
'gcaptcha_enable' => "Inloggningssida reCAPTCHA",
|
||||
'gcaptcha_secret_key' => "Hemlig nyckel för reCAPTCHA",
|
||||
'gcaptcha_secret_key_required' => "reCAPTCHA Secret Key är ett obligatoriskt fält",
|
||||
'gcaptcha_site_key' => "Sid-nyckel för reCAPTCHA",
|
||||
'gcaptcha_site_key_required' => "reCAPTCHA Site Key är ett obligatoriskt fält",
|
||||
'gcaptcha_tooltip' => "Skydda inloggningssidan med Google reCAPTCHA, klicka på ikonen för ett API-nyckelpar.",
|
||||
'general' => "Allmämt",
|
||||
'general_configuration' => "Allmänna inställningar",
|
||||
'giftcard_number' => "Presentkortsnummer",
|
||||
'giftcard_random' => "Slumpa fram",
|
||||
'giftcard_series' => "Generera i serie",
|
||||
'image_allowed_file_types' => "Tillåtna filtyper",
|
||||
'image_max_height_tooltip' => "Högsta tillåtna höjd för bilduppladdningar i pixlar (px).",
|
||||
'image_max_size_tooltip' => "Högsta tillåtna filstorlek för bilduppladdningar i kilobyte (kb).",
|
||||
'image_max_width_tooltip' => "Högsta tillåtna bredd för bilduppladdningar i pixlar (px).",
|
||||
'image_restrictions' => "Begränsningar för bildöverföring",
|
||||
'include_hsn' => "Inkludera stöd för HSN-koder",
|
||||
'info' => "Information",
|
||||
'info_configuration' => "Butiksinformation",
|
||||
'input_groups' => "Inmatningsgrupper",
|
||||
'integrations' => "Integrationer",
|
||||
'integrations_configuration' => "Tredjepartsintegrationer",
|
||||
'invoice' => "Faktura",
|
||||
'invoice_configuration' => "Faktura utskriftsinställningar",
|
||||
'invoice_default_comments' => "Standardfaktura kommentarer",
|
||||
'invoice_email_message' => "Faktura e-postmall",
|
||||
'invoice_enable' => "Aktivera Fakturering",
|
||||
'invoice_printer' => "Faktura skrivare",
|
||||
'invoice_type' => "Fakturatyp",
|
||||
'is_readable' => "är läsbar, men behörigheterna är felaktigt inställda. Ställ in den på 640 eller 660 och uppdatera.",
|
||||
'is_writable' => "är skrivbar, men behörigheterna är felaktigt inställda. Ställ in den på 750 och uppdatera.",
|
||||
'item_markup' => "",
|
||||
'jsprintsetup_required' => "Varning: Den här funktionaliteten fungerar bara om du har installerat FireFox jsPrintSetup addon. Spara ändå?",
|
||||
'language' => "Språk",
|
||||
'last_used_invoice_number' => "Senast använt Fakturanummer",
|
||||
'last_used_quote_number' => "Senast använt Qouta nummer",
|
||||
'last_used_work_order_number' => "Senast använt arbetsordernummer",
|
||||
'left' => "Vänster",
|
||||
'license' => "Licens",
|
||||
'license_configuration' => "Licensvilkor",
|
||||
'line_sequence' => "Linjesekvens",
|
||||
'lines_per_page' => "Linjer per sida",
|
||||
'lines_per_page_number' => "Linjer per sida måste vara ett nummer.",
|
||||
'lines_per_page_required' => "Linjer per sida är ett obligatoriskt fält.",
|
||||
'locale' => "Lokalisering",
|
||||
'locale_configuration' => "Lokaliseringskonfiguration",
|
||||
'locale_info' => "Lokaliseringskonfigurationsinformation",
|
||||
'location' => "Lager",
|
||||
'location_configuration' => "Lagerplatser",
|
||||
'location_info' => "Platskonfigurationsinformation",
|
||||
'login_form' => "Formulär-stil för inloggning",
|
||||
'logout' => "Vill du göra en säkerhetskopiering innan du loggar ut? Klicka på [OK] för att säkerhetskopiera eller [Avbryt] för att logga ut.",
|
||||
'mailchimp' => "MailChimp",
|
||||
'mailchimp_api_key' => "API-nyckel för MailChimp",
|
||||
'mailchimp_configuration' => "Mailchimp konfiguration",
|
||||
'mailchimp_key_successfully' => "API-nyckeln är giltig.",
|
||||
'mailchimp_key_unsuccessfully' => "API-nyckeln är ogiltig.",
|
||||
'mailchimp_lists' => "MailChimp Listor",
|
||||
'mailchimp_tooltip' => "Klicka på ikonen för en API-nyckel.",
|
||||
'message' => "Medelande",
|
||||
'message_configuration' => "Meddelandekonfiguration",
|
||||
'msg_msg' => "Sparade SMS",
|
||||
'msg_msg_placeholder' => "Om du vill använda en SMS-mall, spara ditt meddelande här, annars lämna rutan tomt.",
|
||||
'msg_pwd' => "SMS-API-lösenord",
|
||||
'msg_pwd_required' => "SMS-API lösenord är ett obligatoriskt fält",
|
||||
'msg_src' => "SMS-API Sender-ID",
|
||||
'msg_src_required' => "SMS-API Sender-ID är ett obligatoriskt fält",
|
||||
'msg_uid' => "SMS-API Användarnamn",
|
||||
'msg_uid_required' => "SMS-API Användarnamn är ett obligatoriskt fält",
|
||||
'multi_pack_enabled' => "Flera paket per artikel",
|
||||
'no_risk' => "Ingen säkerhet/sårbarhetsrisker.",
|
||||
'none' => "inga",
|
||||
'notify_alignment' => "Meddelande Popup Position",
|
||||
'number_format' => "Nummerformat",
|
||||
'number_locale' => "Lokalisering",
|
||||
'number_locale_invalid' => "Den angivna lokaliseringen är ogiltig. Kontrollera länken i verktygstipset för att hitta en giltig plats.",
|
||||
'number_locale_required' => "Nummerlandskap är ett obligatoriskt fält.",
|
||||
'number_locale_tooltip' => "Hitta en lämplig ort genom denna länk.",
|
||||
'os_timezone' => "OSPOS-tidszon:",
|
||||
'ospos_info' => "OSPOS installationsinfo",
|
||||
'payment_options_order' => "Betalningsalternativ ordnning",
|
||||
'perm_risk' => "Felaktiga behörigheter gör att denna programvara är i fara.",
|
||||
'phone' => "Företagets telefon",
|
||||
'phone_required' => "Företagets telefon är ett obligatoriskt fält.",
|
||||
'print_bottom_margin' => "Marginal botten",
|
||||
'print_bottom_margin_number' => "Marginalbotten måste vara ett nummer.",
|
||||
'print_bottom_margin_required' => "Marginalbotten är ett obligatoriskt fält.",
|
||||
'print_delay_autoreturn' => "Autoreturn to Sale-försening",
|
||||
'print_delay_autoreturn_number' => "Fördröjning av autoreturn to Sale är ett obligatoriskt fält.",
|
||||
'print_delay_autoreturn_required' => "Fördröjning av autoreturn to Sale måste vara ett nummer.",
|
||||
'print_footer' => "Skriv ut sidfot",
|
||||
'print_header' => "Skriv ut sidhuvudet",
|
||||
'print_left_margin' => "Marginal vänster",
|
||||
'print_left_margin_number' => "Marginal vänster måste vara ett nummer.",
|
||||
'print_left_margin_required' => "Marginal vänster är ett obligatoriskt fält.",
|
||||
'print_receipt_check_behaviour' => "Kryssrutan Skriv ut kvitto",
|
||||
'print_receipt_check_behaviour_always' => "Kontrolleras alltid",
|
||||
'print_receipt_check_behaviour_last' => "Kom ihåg det senaste valet",
|
||||
'print_receipt_check_behaviour_never' => "Alltid urkryssad",
|
||||
'print_right_margin' => "Marginal höger",
|
||||
'print_right_margin_number' => "Marginal höger måste vara ett tal.",
|
||||
'print_right_margin_required' => "Marginal höger är ett obligatoriskt fält.",
|
||||
'print_silently' => "Visa utskriftsdialog",
|
||||
'print_top_margin' => "Marginal top",
|
||||
'print_top_margin_number' => "Marginal Top måste vara ett nummer.",
|
||||
'print_top_margin_required' => "Margin Top är ett obligatoriskt fält.",
|
||||
'quantity_decimals' => "Antal decimaler",
|
||||
'quick_cash_enable' => "",
|
||||
'quote_default_comments' => "Standardoffert kommentar",
|
||||
'receipt' => "Kvitto",
|
||||
'receipt_category' => "",
|
||||
'receipt_configuration' => "Kvittosutskriftsinställningar",
|
||||
'receipt_default' => "Standard",
|
||||
'receipt_font_size' => "Textstorlek",
|
||||
'receipt_font_size_number' => "Teckensnittstorlek måste vara ett nummer.",
|
||||
'receipt_font_size_required' => "Teckensnittstorlek är ett obligatoriskt fält.",
|
||||
'receipt_info' => "Kvittokonfigurationsinformation",
|
||||
'receipt_printer' => "Kvittoskrivare",
|
||||
'receipt_short' => "Kort",
|
||||
'receipt_show_company_name' => "Visa företagsnamn",
|
||||
'receipt_show_description' => "Visa beskrivning",
|
||||
'receipt_show_serialnumber' => "Visa serienummer",
|
||||
'receipt_show_tax_ind' => "Visa skatteindikator",
|
||||
'receipt_show_taxes' => "Visa skatter",
|
||||
'receipt_show_total_discount' => "Visa total rabatt",
|
||||
'receipt_template' => "Kvitto mall",
|
||||
'receiving_calculate_average_price' => "Beräkna avg. Pris (Inleverans)",
|
||||
'recv_invoice_format' => "Mottagningsfakturaformat",
|
||||
'register_mode_default' => "Standardregisterläge",
|
||||
'report_an_issue' => "Rapportera ett problem",
|
||||
'return_policy_required' => "Returpolicy är ett obligatoriskt fält.",
|
||||
'reward' => "Bonus",
|
||||
'reward_configuration' => "Bonuskonfiguration",
|
||||
'right' => "Höger",
|
||||
'sales_invoice_format' => "Försäljningsfakturaformat",
|
||||
'sales_quote_format' => "Försäljningsquotaformat",
|
||||
'saved_successfully' => "Konfigurationen sparades.",
|
||||
'saved_unsuccessfully' => "Konfigurationsbesparingen misslyckades.",
|
||||
'security_issue' => "Varning för säkerhetsrisker",
|
||||
'server_notice' => "Vänligen använd nedanstående info för fel-rapportering.",
|
||||
'service_charge' => "",
|
||||
'show_due_enable' => "",
|
||||
'show_office_group' => "Visa kontorsikon",
|
||||
'statistics' => "Skicka statistik",
|
||||
'statistics_tooltip' => "Skicka statistik för utveckling och funktionsförbättringsändamål.",
|
||||
'stock_location' => "Lagerplats",
|
||||
'stock_location_duplicate' => "Lagerplats måste vara unik.",
|
||||
'stock_location_invalid_chars' => "Lagerplatsen kan inte innehålla '_'.",
|
||||
'stock_location_required' => "Lagerplats är ett obligatoriskt fält.",
|
||||
'suggestions_fifth_column' => "",
|
||||
'suggestions_first_column' => "Kolumn 1",
|
||||
'suggestions_fourth_column' => "",
|
||||
'suggestions_layout' => "Sök förslag till layout",
|
||||
'suggestions_second_column' => "Kolumn 2",
|
||||
'suggestions_third_column' => "Kolumn 3",
|
||||
'system_conf' => "Ställ in & Konf",
|
||||
'system_info' => "System Info",
|
||||
'table' => "Bord",
|
||||
'table_configuration' => "Bordsinställningar",
|
||||
'takings_printer' => "Kvittoskrivare",
|
||||
'tax' => "Skatt",
|
||||
'tax_category' => "Skattekategori",
|
||||
'tax_category_duplicate' => "Den angivna skattekategori existerar redan.",
|
||||
'tax_category_invalid_chars' => "Den angivna skattekategori är ogiltig.",
|
||||
'tax_category_required' => "Skattekategori krävs.",
|
||||
'tax_category_used' => "Skattekategori kan inte raderas eftersom den används.",
|
||||
'tax_configuration' => "Skattkonfiguration",
|
||||
'tax_decimals' => "Skatt decimaler",
|
||||
'tax_id' => "Skatteid",
|
||||
'tax_included' => "Skatt ingår",
|
||||
'theme' => "Tema",
|
||||
'theme_preview' => "Förhandsgranska tema:",
|
||||
'thousands_separator' => "Tusentals separator",
|
||||
'timezone' => "Tidszon",
|
||||
'timezone_error' => "OSPOS-tidszon skiljer sig från din lokala tidszon.",
|
||||
'top' => "Top",
|
||||
'use_destination_based_tax' => "Använd destinationsbaserad skatt",
|
||||
'user_timezone' => "Lokal tidszon:",
|
||||
'website' => "Hemsida",
|
||||
'wholesale_markup' => "",
|
||||
'work_order_enable' => "Arbetsorderstöd",
|
||||
'work_order_format' => "Arbetsorderformat",
|
||||
"address" => "Företagsadress",
|
||||
"address_required" => "Företagsadress är ett obligatoriskt fält.",
|
||||
"all_set" => "All file permissions are set correctly!",
|
||||
"allow_duplicate_barcodes" => "Tillåt duplicera streckkoder",
|
||||
"apostrophe" => "apostrof",
|
||||
"backup_button" => "Backup",
|
||||
"backup_database" => "Säkerhetskopiera databas",
|
||||
"barcode" => "Streckkod",
|
||||
"barcode_company" => "Företagsnamn",
|
||||
"barcode_configuration" => "Streckkodskonfiguration",
|
||||
"barcode_content" => "Streckkod innehåll",
|
||||
"barcode_first_row" => "Rad 1",
|
||||
"barcode_font" => "Font",
|
||||
"barcode_formats" => "Inmatningsformat",
|
||||
"barcode_generate_if_empty" => "Skapa om tom.",
|
||||
"barcode_height" => "Höjd (px)",
|
||||
"barcode_id" => "Artikel-id / namn",
|
||||
"barcode_info" => "Streckkodskonfigurationsinformation",
|
||||
"barcode_layout" => "Streckkodslayout",
|
||||
"barcode_name" => "Namn",
|
||||
"barcode_number" => "Streckkod",
|
||||
"barcode_number_in_row" => "Antal i rad",
|
||||
"barcode_page_cellspacing" => "Visa kolumnbredd.",
|
||||
"barcode_page_width" => "Visa sidbredd",
|
||||
"barcode_price" => "Pris",
|
||||
"barcode_second_row" => "Rad 2",
|
||||
"barcode_third_row" => "Rad 3",
|
||||
"barcode_tooltip" => "Varning: Den här funktionen kan orsaka att duplicerade objekt importeras eller skapas. Använd inte om du inte vill ha dubbla streckkoder.",
|
||||
"barcode_type" => "Streckkodstyp",
|
||||
"barcode_width" => "Bredd (px)",
|
||||
"bottom" => "Botten",
|
||||
"cash_button" => "",
|
||||
"cash_button_1" => "",
|
||||
"cash_button_2" => "",
|
||||
"cash_button_3" => "",
|
||||
"cash_button_4" => "",
|
||||
"cash_button_5" => "",
|
||||
"cash_button_6" => "",
|
||||
"cash_decimals" => "Kontant decimaler",
|
||||
"cash_decimals_tooltip" => "Om kontanterna och valutadecimalen är desamma kommer ingen öresutjämning att äga rum.",
|
||||
"cash_rounding" => "Öresavjämning",
|
||||
"category_dropdown" => "Visa kategori som en rullgardinsmeny",
|
||||
"center" => "Mitten",
|
||||
"change_apperance_tooltip" => "",
|
||||
"comma" => "komma",
|
||||
"company" => "Företasnamn",
|
||||
"company_avatar" => "",
|
||||
"company_change_image" => "Ändra bild",
|
||||
"company_logo" => "Företagslogo",
|
||||
"company_remove_image" => "Radera bild",
|
||||
"company_required" => "Företagsnamn är ett obligatoriskt fält",
|
||||
"company_select_image" => "Välj Bild",
|
||||
"company_website_url" => "Företagets webbplats är inte en giltig URL (http: // ...).",
|
||||
"country_codes" => "Landskod",
|
||||
"country_codes_tooltip" => "Kommaseparerad lista över landskoder för nominatimadressuppslag.",
|
||||
"currency_code" => "Valutakod",
|
||||
"currency_decimals" => "Valuta Decimaler",
|
||||
"currency_symbol" => "Valutasymbol",
|
||||
"current_employee_only" => "",
|
||||
"customer_reward" => "Bonus",
|
||||
"customer_reward_duplicate" => "Bonus måste vara unik.",
|
||||
"customer_reward_enable" => "Aktivera kundbonus",
|
||||
"customer_reward_invalid_chars" => "Bonus kan inte innehålla '_'",
|
||||
"customer_reward_required" => "Bonus är ett obligatoriskt fält",
|
||||
"customer_sales_tax_support" => "Kundomsättningskatt Support",
|
||||
"date_or_time_format" => "Datum och tidsfilter",
|
||||
"datetimeformat" => "Datum och tid Format",
|
||||
"decimal_point" => "Decimalpunkt",
|
||||
"default_barcode_font_size_number" => "Standard streckkods teckensnittstorlek måste vara ett nummer.",
|
||||
"default_barcode_font_size_required" => "Standard streckkodstorlekstorlek är ett obligatoriskt fält.",
|
||||
"default_barcode_height_number" => "Standard streckkodshöjd måste vara ett nummer.",
|
||||
"default_barcode_height_required" => "Standard streckkodshöjd är ett obligatoriskt fält.",
|
||||
"default_barcode_num_in_row_number" => "Standard streckkodsnummer i rad måste vara ett nummer.",
|
||||
"default_barcode_num_in_row_required" => "Standard streckkodsnummer i rad måste vara ett nummer.",
|
||||
"default_barcode_page_cellspacing_number" => "Standard Streckkodssida Cellspacing måste vara ett nummer.",
|
||||
"default_barcode_page_cellspacing_required" => "Standard Streckkodssida Cellspacing är ett obligatoriskt fält.",
|
||||
"default_barcode_page_width_number" => "Standard streckkodssidans bredd måste vara ett nummer.",
|
||||
"default_barcode_page_width_required" => "Standard streckkodssidans bredd är ett obligatoriskt fält.",
|
||||
"default_barcode_width_number" => "Standard streckkodsbredd måste vara ett nummer.",
|
||||
"default_barcode_width_required" => "Standard streckkodsbredd är ett obligatoriskt fält.",
|
||||
"default_item_columns" => "Standard synliga artikel kolumner",
|
||||
"default_origin_tax_code" => "Standard Urkomstskattkod",
|
||||
"default_receivings_discount" => "Standardmottagningsrabatt",
|
||||
"default_receivings_discount_number" => "Standardmottagningsrabatten måste vara ett nummer.",
|
||||
"default_receivings_discount_required" => "Standardmottagningsrabatt är ett obligatoriskt fält.",
|
||||
"default_sales_discount" => "Standard Försäljningsrabatt %",
|
||||
"default_sales_discount_number" => "Standardförsäljningsrabatt måste vara ett nummer.",
|
||||
"default_sales_discount_required" => "Standardförsäljningsrabatt är ett obligatoriskt fält.",
|
||||
"default_tax_category" => "Standardskattskategori",
|
||||
"default_tax_code" => "Standard skattetabell",
|
||||
"default_tax_jurisdiction" => "Standardskattejurisdiktion",
|
||||
"default_tax_name_number" => "Standardskattnamn måste vara en sträng.",
|
||||
"default_tax_name_required" => "Standardskattnamn är ett obligatoriskt fält.",
|
||||
"default_tax_rate" => "Standardskattesats%",
|
||||
"default_tax_rate_1" => "Skattesats 1",
|
||||
"default_tax_rate_2" => "Skattesats 2",
|
||||
"default_tax_rate_3" => "",
|
||||
"default_tax_rate_number" => "Standardskattesats måste vara ett nummer.",
|
||||
"default_tax_rate_required" => "Standardskattesats är ett obligatoriskt fält.",
|
||||
"derive_sale_quantity" => "Tillåt avledad försäljningskvantitet",
|
||||
"derive_sale_quantity_tooltip" => "Om den är markerad kommer en ny objekttyp att tillhandahållas för poster som beställts med förlängd mängd",
|
||||
"dinner_table" => "Bord",
|
||||
"dinner_table_duplicate" => "Bordsnummer måste vara unik.",
|
||||
"dinner_table_enable" => "Aktivera bord",
|
||||
"dinner_table_invalid_chars" => "Bordsnamn får inte innehålla '_'.",
|
||||
"dinner_table_required" => "Bord är ett obligatoriskt fält.",
|
||||
"dot" => "punkt",
|
||||
"email" => "E-mail",
|
||||
"email_configuration" => "E-mail Konfiguration",
|
||||
"email_mailpath" => "Sökväg till Sendmail",
|
||||
"email_protocol" => "Protokol",
|
||||
"email_receipt_check_behaviour" => "Kryssruta för e-postkvitto",
|
||||
"email_receipt_check_behaviour_always" => "Alltid förikryssad",
|
||||
"email_receipt_check_behaviour_last" => "Kom ihåg det senaste valet",
|
||||
"email_receipt_check_behaviour_never" => "Alltid urkryssad",
|
||||
"email_smtp_crypto" => "SMTP kryptering",
|
||||
"email_smtp_host" => "SMTP Server",
|
||||
"email_smtp_pass" => "SMTP Lösenord",
|
||||
"email_smtp_port" => "SMTP Port",
|
||||
"email_smtp_timeout" => "SMTP Timeout",
|
||||
"email_smtp_user" => "SMTP Användarnamn",
|
||||
"enable_avatar" => "",
|
||||
"enable_avatar_tooltip" => "",
|
||||
"enable_dropdown_tooltip" => "",
|
||||
"enable_new_look" => "",
|
||||
"enable_right_bar" => "",
|
||||
"enable_right_bar_tooltip" => "",
|
||||
"enforce_privacy" => "Upprätthålla integritet",
|
||||
"enforce_privacy_tooltip" => "Skydda kundernas integritet genom att kryptera data om deras data raderas",
|
||||
"fax" => "Fax",
|
||||
"file_perm" => "There are problems with file permissions please fix and reload this page.",
|
||||
"financial_year" => "Fiscal Year Start",
|
||||
"financial_year_apr" => "1 april",
|
||||
"financial_year_aug" => "1 augusti",
|
||||
"financial_year_dec" => "1 december",
|
||||
"financial_year_feb" => "1 februari",
|
||||
"financial_year_jan" => "1 januari",
|
||||
"financial_year_jul" => "1 juli",
|
||||
"financial_year_jun" => "1 juni",
|
||||
"financial_year_mar" => "1 mars",
|
||||
"financial_year_may" => "1 maj",
|
||||
"financial_year_nov" => "1 november",
|
||||
"financial_year_oct" => "1 oktober",
|
||||
"financial_year_sep" => "1 september",
|
||||
"floating_labels" => "",
|
||||
"gcaptcha_enable" => "Inloggningssida reCAPTCHA",
|
||||
"gcaptcha_secret_key" => "reCAPTCHA Secret Key",
|
||||
"gcaptcha_secret_key_required" => "reCAPTCHA Secret Key är ett obligatoriskt fält",
|
||||
"gcaptcha_site_key" => "reCAPTCHA Site Key",
|
||||
"gcaptcha_site_key_required" => "reCAPTCHA Site Key är ett obligatoriskt fält",
|
||||
"gcaptcha_tooltip" => "Skydda inloggningssidan med Google reCAPTCHA, klicka på ikonen för ett API-nyckelpar.",
|
||||
"general" => "Allmämt",
|
||||
"general_configuration" => "Allmänna inställningar",
|
||||
"giftcard_number" => "Presentkortsnummer",
|
||||
"giftcard_random" => "Slumpa fram",
|
||||
"giftcard_series" => "Generera i serie",
|
||||
"image_allowed_file_types" => "Tillåtna filtyper",
|
||||
"image_max_height_tooltip" => "Högsta tillåtna höjd för bilduppladdningar i pixlar (px).",
|
||||
"image_max_size_tooltip" => "Högsta tillåtna filstorlek för bilduppladdningar i kilobyte (kb).",
|
||||
"image_max_width_tooltip" => "Högsta tillåtna bredd för bilduppladdningar i pixlar (px).",
|
||||
"image_restrictions" => "Begränsningar för bildöverföring",
|
||||
"include_hsn" => "Inkludera stöd för HSN-koder",
|
||||
"info" => "Information",
|
||||
"info_configuration" => "Butiksinformation",
|
||||
"input_groups" => "",
|
||||
"integrations" => "Integrationer",
|
||||
"integrations_configuration" => "Tredjepartsintegrationer",
|
||||
"invoice" => "Faktura",
|
||||
"invoice_configuration" => "Faktura utskriftsinställningar",
|
||||
"invoice_default_comments" => "Standardfaktura kommentarer",
|
||||
"invoice_email_message" => "Faktura e-postmall",
|
||||
"invoice_enable" => "Aktivera fakturering",
|
||||
"invoice_printer" => "Faktura skrivare",
|
||||
"invoice_type" => "Fakturatyp",
|
||||
"is_readable" => "är läsbar, men behörigheterna är felaktigt inställda. Ställ in den på 640 eller 660 och uppdatera.",
|
||||
"is_writable" => "är skrivbar, men behörigheterna är felaktigt inställda. Ställ in den på 750 och uppdatera.",
|
||||
"item_markup" => "",
|
||||
"jsprintsetup_required" => "Varning: Den här funktionaliteten fungerar bara om du har installerat FireFox jsPrintSetup addon. Spara ändå?",
|
||||
"language" => "Språk",
|
||||
"last_used_invoice_number" => "Senast använt Fakturanummer",
|
||||
"last_used_quote_number" => "Senast använt Qouta nummer",
|
||||
"last_used_work_order_number" => "Senast använt arbetsordernummer",
|
||||
"left" => "Vänster",
|
||||
"license" => "Licens",
|
||||
"license_configuration" => "Licensvilkor",
|
||||
"line_sequence" => "Linjesekvens",
|
||||
"lines_per_page" => "Linjer per sida",
|
||||
"lines_per_page_number" => "Linjer per sida måste vara ett nummer.",
|
||||
"lines_per_page_required" => "Linjer per sida är ett obligatoriskt fält.",
|
||||
"locale" => "Lokalisering",
|
||||
"locale_configuration" => "Lokaliseringskonfiguration",
|
||||
"locale_info" => "Lokaliseringskonfigurationsinformation",
|
||||
"location" => "Lager",
|
||||
"location_configuration" => "Lagerplatser",
|
||||
"location_info" => "Platskonfigurationsinformation",
|
||||
"login_form" => "",
|
||||
"logout" => "Vill du göra en säkerhetskopiering innan du loggar ut? Klicka på [OK] för att säkerhetskopiera eller [Avbryt] för att logga ut.",
|
||||
"mailchimp" => "MailChimp",
|
||||
"mailchimp_api_key" => "MailChimp API Key",
|
||||
"mailchimp_configuration" => "Mailchimp konfiguration",
|
||||
"mailchimp_key_successfully" => "API-nyckeln är giltig.",
|
||||
"mailchimp_key_unsuccessfully" => "API-nyckeln är ogiltig.",
|
||||
"mailchimp_lists" => "MailChimp Listor",
|
||||
"mailchimp_tooltip" => "Klicka på ikonen för en API-nyckel.",
|
||||
"message" => "Medelande",
|
||||
"message_configuration" => "Meddelandekonfiguration",
|
||||
"msg_msg" => "Sparade SMS",
|
||||
"msg_msg_placeholder" => "Om du vill använda en SMS-mall, spara ditt meddelande här, annars lämna rutan tomt.",
|
||||
"msg_pwd" => "SMS-API-lösenord",
|
||||
"msg_pwd_required" => "SMS-API lösenord är ett obligatoriskt fält",
|
||||
"msg_src" => "SMS-API Sender-ID",
|
||||
"msg_src_required" => "SMS-API Sender-ID är ett obligatoriskt fält",
|
||||
"msg_uid" => "SMS-API Användarnamn",
|
||||
"msg_uid_required" => "SMS-API Användarnamn är ett obligatoriskt fält",
|
||||
"multi_pack_enabled" => "Flera paket per artikel",
|
||||
"no_risk" => "No security/vulnerability risks.",
|
||||
"none" => "inga",
|
||||
"notify_alignment" => "Meddelande Popup Position",
|
||||
"number_format" => "Nummerformat",
|
||||
"number_locale" => "Lokalisering",
|
||||
"number_locale_invalid" => "Den angivna lokaliseringen är ogiltig. Kontrollera länken i verktygstipset för att hitta en giltig plats.",
|
||||
"number_locale_required" => "Nummerlandskap är ett obligatoriskt fält.",
|
||||
"number_locale_tooltip" => "Hitta en lämplig ort genom denna länk.",
|
||||
"os_timezone" => "OSPOS-tidszon:",
|
||||
"ospos_info" => "OSPOS installationsinfo",
|
||||
"payment_options_order" => "Betalningsalternativ ordnning",
|
||||
"perm_risk" => "Felaktiga behörigheter gör att denna programvara är i fara.",
|
||||
"phone" => "Företagets telefon",
|
||||
"phone_required" => "Företagets telefon är ett obligatoriskt fält.",
|
||||
"print_bottom_margin" => "Marginal botten",
|
||||
"print_bottom_margin_number" => "Marginalbotten måste vara ett nummer.",
|
||||
"print_bottom_margin_required" => "Marginalbotten är ett obligatoriskt fält.",
|
||||
"print_delay_autoreturn" => "Autoreturn to Sale-försening",
|
||||
"print_delay_autoreturn_number" => "Fördröjning av autoreturn to Sale är ett obligatoriskt fält.",
|
||||
"print_delay_autoreturn_required" => "Fördröjning av autoreturn to Sale måste vara ett nummer.",
|
||||
"print_footer" => "Skriv ut sidfot",
|
||||
"print_header" => "Skriv ut sidhuvudet",
|
||||
"print_left_margin" => "Marginal vänster",
|
||||
"print_left_margin_number" => "Marginal vänster måste vara ett nummer.",
|
||||
"print_left_margin_required" => "Marginal vänster är ett obligatoriskt fält.",
|
||||
"print_receipt_check_behaviour" => "Kryssrutan Skriv ut kvitto",
|
||||
"print_receipt_check_behaviour_always" => "Kontrolleras alltid",
|
||||
"print_receipt_check_behaviour_last" => "Kom ihåg det senaste valet",
|
||||
"print_receipt_check_behaviour_never" => "Alltid urkryssad",
|
||||
"print_right_margin" => "Marginal höger",
|
||||
"print_right_margin_number" => "Marginal höger måste vara ett tal.",
|
||||
"print_right_margin_required" => "Marginal höger är ett obligatoriskt fält.",
|
||||
"print_silently" => "Visa utskriftsdialog",
|
||||
"print_top_margin" => "Marginal top",
|
||||
"print_top_margin_number" => "Marginal Top måste vara ett nummer.",
|
||||
"print_top_margin_required" => "Margin Top är ett obligatoriskt fält.",
|
||||
"quantity_decimals" => "Antal decimaler",
|
||||
"quick_cash_enable" => "",
|
||||
"quote_default_comments" => "Standardoffert kommentar",
|
||||
"receipt" => "Kvitto",
|
||||
"receipt_category" => "",
|
||||
"receipt_configuration" => "Kvittosutskriftsinställningar",
|
||||
"receipt_default" => "Standard",
|
||||
"receipt_font_size" => "Textstorlek",
|
||||
"receipt_font_size_number" => "Teckensnittstorlek måste vara ett nummer.",
|
||||
"receipt_font_size_required" => "Teckensnittstorlek är ett obligatoriskt fält.",
|
||||
"receipt_info" => "Kvittokonfigurationsinformation",
|
||||
"receipt_printer" => "Kvittoskrivare",
|
||||
"receipt_short" => "Kort",
|
||||
"receipt_show_company_name" => "Visa företagsnamn",
|
||||
"receipt_show_description" => "Visa beskrivning",
|
||||
"receipt_show_serialnumber" => "Visa serienummer",
|
||||
"receipt_show_tax_ind" => "Visa skatteindikator",
|
||||
"receipt_show_taxes" => "Visa skatter",
|
||||
"receipt_show_total_discount" => "Visa total rabatt",
|
||||
"receipt_template" => "Kvitto mall",
|
||||
"receiving_calculate_average_price" => "Beräkna avg. Pris (Inleverans)",
|
||||
"recv_invoice_format" => "Mottagningsfakturaformat",
|
||||
"register_mode_default" => "Standardregisterläge",
|
||||
"report_an_issue" => "Rapportera ett problem",
|
||||
"return_policy_required" => "Returpolicy är ett obligatoriskt fält.",
|
||||
"reward" => "Bonus",
|
||||
"reward_configuration" => "Bonuskonfiguration",
|
||||
"right" => "Höger",
|
||||
"sales_invoice_format" => "Försäljningsfakturaformat",
|
||||
"sales_quote_format" => "Försäljningsquotaformat",
|
||||
"saved_successfully" => "Konfigurationen sparades.",
|
||||
"saved_unsuccessfully" => "Konfigurationsbesparingen misslyckades.",
|
||||
"security_issue" => "Security Vulnerability Warning",
|
||||
"server_notice" => "Please use the below info for issue reporting.",
|
||||
"service_charge" => "",
|
||||
"show_due_enable" => "",
|
||||
"show_office_group" => "Visa kontorsikon",
|
||||
"statistics" => "Skicka statistik",
|
||||
"statistics_tooltip" => "Skicka statistik för utveckling och funktionsförbättringsändamål.",
|
||||
"stock_location" => "Lagerplats",
|
||||
"stock_location_duplicate" => "Lagerplats måste vara unik.",
|
||||
"stock_location_invalid_chars" => "Lagerplatsen kan inte innehålla '_'.",
|
||||
"stock_location_required" => "Lagerplats är ett obligatoriskt fält.",
|
||||
"suggestions_fifth_column" => "",
|
||||
"suggestions_first_column" => "Kolumn 1",
|
||||
"suggestions_fourth_column" => "",
|
||||
"suggestions_layout" => "Sök förslag till layout",
|
||||
"suggestions_second_column" => "Kolumn 2",
|
||||
"suggestions_third_column" => "Kolumn 3",
|
||||
"system_conf" => "Setup & Conf",
|
||||
"system_info" => "System Info",
|
||||
"table" => "Bord",
|
||||
"table_configuration" => "Bordsinställningar",
|
||||
"takings_printer" => "Kvittoskrivare",
|
||||
"tax" => "Skatt",
|
||||
"tax_category" => "Skattekategori",
|
||||
"tax_category_duplicate" => "Den angivna skattekategori existerar redan.",
|
||||
"tax_category_invalid_chars" => "Den angivna skattekategori är ogiltig.",
|
||||
"tax_category_required" => "Skattekategori krävs.",
|
||||
"tax_category_used" => "Skattekategori kan inte raderas eftersom den används.",
|
||||
"tax_configuration" => "Skattkonfiguration",
|
||||
"tax_decimals" => "Skatt decimaler",
|
||||
"tax_id" => "Skatteid",
|
||||
"tax_included" => "Skatt ingår",
|
||||
"theme" => "Tema",
|
||||
"theme_preview" => "",
|
||||
"thousands_separator" => "Tusentals separator",
|
||||
"timezone" => "Tidszon",
|
||||
"timezone_error" => "OSPOS-tidszon skiljer sig från din lokala tidszon.",
|
||||
"top" => "Top",
|
||||
"use_destination_based_tax" => "Använd destinationsbaserad skatt",
|
||||
"user_timezone" => "Lokal tidszon:",
|
||||
"website" => "Hemsida",
|
||||
"wholesale_markup" => "",
|
||||
"work_order_enable" => "Arbetsorderstöd",
|
||||
"work_order_format" => "Arbetsorderformat",
|
||||
];
|
||||
|
||||
@@ -1,57 +1,56 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'account_number' => "Konto #",
|
||||
'account_number_duplicate' => "Kontonummer finns redan i databasen.",
|
||||
'available_points' => "Tillgängliga poäng",
|
||||
'available_points_value' => "",
|
||||
'average' => "Genomsnittlig spenderad",
|
||||
'avg_discount' => "Genomsnittlig rabatt",
|
||||
'basic_information' => "Information",
|
||||
'cannot_be_deleted' => "Kunde inte radera valda kunder, en eller flera av de valda kunderna har försäljning.",
|
||||
'company_name' => "Företag",
|
||||
'confirm_delete' => "Är du säker på att du vill radera den valda kunden / kunderna?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda kunder?",
|
||||
'consent' => "Registreringssamtycke",
|
||||
'consent_required' => "Registreringssamtycke är ett obligatoriskt fält.",
|
||||
'csv_import_failed' => "CSV-import misslyckades",
|
||||
'csv_import_nodata_wrongformat' => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
|
||||
'csv_import_partially_failed' => "Kundimporten lyckades med några misslyckanden:",
|
||||
'csv_import_success' => "Kundimporten lyckades.",
|
||||
'customer' => "Kund",
|
||||
'date' => "Datum",
|
||||
'discount' => "Rabatt",
|
||||
'discount_fixed' => "Fast rabatt",
|
||||
'discount_percent' => "Procentrabatt",
|
||||
'discount_type' => "Typ av rabatt",
|
||||
'email_duplicate' => "E-postadress finns redan i databasen.",
|
||||
'employee' => "Anställd",
|
||||
'error_adding_updating' => "Kund tillägg eller uppdatering misslyckades.",
|
||||
'import_items_csv' => "Kund import från CSV",
|
||||
'mailchimp_activity_click' => "E-post klick",
|
||||
'mailchimp_activity_lastopen' => "Senast öppet e-mail",
|
||||
'mailchimp_activity_open' => "E-post öppnad",
|
||||
'mailchimp_activity_total' => "E-mail skickad",
|
||||
'mailchimp_activity_unopen' => "E-mail oöppnad",
|
||||
'mailchimp_email_client' => "E-mailklient",
|
||||
'mailchimp_info' => "MailChimp",
|
||||
'mailchimp_member_rating' => "Betyg",
|
||||
'mailchimp_status' => "Status",
|
||||
'mailchimp_vip' => "VIP",
|
||||
'max' => "Max. spenderat",
|
||||
'min' => "Min. spenderat",
|
||||
'new' => "Ny kund",
|
||||
'none_selected' => "Du har inte valt någon kund att radera.",
|
||||
'one_or_multiple' => "Kunder",
|
||||
'quantity' => "Antal",
|
||||
'stats_info' => "Status",
|
||||
'successful_adding' => "Du har lagt till en kund",
|
||||
'successful_deleted' => "Du har tagit bort",
|
||||
'successful_updating' => "Du har uppdaterat kunden",
|
||||
'tax_code' => "Skattekod",
|
||||
'tax_id' => "Skatteid",
|
||||
'taxable' => "Skattetabell",
|
||||
'total' => "Totalt spenderat",
|
||||
'update' => "Uppdatera kund",
|
||||
'rewards_package' => "Belöningspaket",
|
||||
"account_number" => "Konto #",
|
||||
"account_number_duplicate" => "Kontonummer finns redan i databasen.",
|
||||
"available_points" => "Tillgängliga poäng",
|
||||
"available_points_value" => "",
|
||||
"average" => "Genomsnittlig spenderad",
|
||||
"avg_discount" => "Genomsnittlig rabatt",
|
||||
"basic_information" => "Information",
|
||||
"cannot_be_deleted" => "Kunde inte radera valda kunder, en eller flera av de valda kunderna har försäljning.",
|
||||
"company_name" => "Företag",
|
||||
"confirm_delete" => "Är du säker på att du vill radera den valda kunden / kunderna?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda kunder?",
|
||||
"consent" => "Registreringssamtycke",
|
||||
"consent_required" => "Registreringssamtycke är ett obligatoriskt fält.",
|
||||
"csv_import_failed" => "CSV-import misslyckades",
|
||||
"csv_import_nodata_wrongformat" => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
|
||||
"csv_import_partially_failed" => "Kundimporten lyckades med några misslyckanden:",
|
||||
"csv_import_success" => "Kundimporten lyckades.",
|
||||
"customer" => "Kund",
|
||||
"date" => "Datum",
|
||||
"discount" => "Rabatt",
|
||||
"discount_fixed" => "Fast rabatt",
|
||||
"discount_percent" => "Procentrabatt",
|
||||
"discount_type" => "Rabattyp",
|
||||
"email_duplicate" => "E-postadress finns redan i databasen.",
|
||||
"employee" => "Anställd",
|
||||
"error_adding_updating" => "Kund tillägg eller uppdatering misslyckades.",
|
||||
"import_items_csv" => "Kund import från CSV",
|
||||
"mailchimp_activity_click" => "E-post klick",
|
||||
"mailchimp_activity_lastopen" => "Senast öppet e-mail",
|
||||
"mailchimp_activity_open" => "E-post öppnad",
|
||||
"mailchimp_activity_total" => "E-mail skickad",
|
||||
"mailchimp_activity_unopen" => "E-mail oöppnad",
|
||||
"mailchimp_email_client" => "E-mailklient",
|
||||
"mailchimp_info" => "MailChimp",
|
||||
"mailchimp_member_rating" => "Betyg",
|
||||
"mailchimp_status" => "Status",
|
||||
"mailchimp_vip" => "VIP",
|
||||
"max" => "Max. spenderat",
|
||||
"min" => "Min. spenderat",
|
||||
"new" => "Ny kund",
|
||||
"none_selected" => "Du har inte valt någon kund att radera.",
|
||||
"one_or_multiple" => "Kunder",
|
||||
"quantity" => "Antal",
|
||||
"stats_info" => "Status",
|
||||
"successful_adding" => "Du har lagt till en kund",
|
||||
"successful_deleted" => "Du har tagit bort",
|
||||
"successful_updating" => "Du har uppdaterat kunden",
|
||||
"tax_code" => "Skattekod",
|
||||
"tax_id" => "Skatteid",
|
||||
"taxable" => "Skattetabell",
|
||||
"total" => "Totalt spenderat",
|
||||
"update" => "Uppdatera kund",
|
||||
"rewards_package" => "Belöningspaket",
|
||||
];
|
||||
|
||||
@@ -1,24 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all_time' => "All Tid",
|
||||
'apply' => "Verkställ",
|
||||
'cancel' => "Avbryt",
|
||||
'custom' => "Anpassa",
|
||||
'from' => "Från",
|
||||
'last_30' => "Senaste 30 dagar",
|
||||
'last_7' => "Senaste 7 dagar",
|
||||
'last_financial_year' => "Senaste bokföringsår",
|
||||
'last_month' => "Senaste månaden",
|
||||
'last_year' => "Förra året",
|
||||
'same_month_last_year' => "Samma månad förra året",
|
||||
'same_month_to_same_day_last_year' => "Samma månad för samma dag förra året",
|
||||
'this_financial_year' => "Nuvarande bokföringsår",
|
||||
'this_month' => "Nuvarande månad",
|
||||
'this_year' => "Nuvarande år",
|
||||
'to' => "Till",
|
||||
'today' => "Idag",
|
||||
'today_last_year' => "Idag föregående år",
|
||||
'weekstart' => "0",
|
||||
'yesterday' => "I går",
|
||||
"all_time" => "All Tid",
|
||||
"apply" => "Skicka",
|
||||
"cancel" => "Avbryt",
|
||||
"custom" => "Anpassa",
|
||||
"from" => "Från",
|
||||
"last_30" => "Senaste 30 dagar",
|
||||
"last_7" => "Senaste 7 dagar",
|
||||
"last_financial_year" => "Senaste bokföringsår",
|
||||
"last_month" => "Senaste månaden",
|
||||
"last_year" => "Senaste året",
|
||||
"same_month_last_year" => "Samma månad föregående år",
|
||||
"same_month_to_same_day_last_year" => "Samma månad till dag förra året",
|
||||
"this_financial_year" => "Nuvarande bokföringsår",
|
||||
"this_month" => "Nuvarande månad",
|
||||
"this_year" => "Nuvarande år",
|
||||
"to" => "Till",
|
||||
"today" => "Idag",
|
||||
"today_last_year" => "Idag föregående år",
|
||||
"weekstart" => "0",
|
||||
"yesterday" => "I går",
|
||||
];
|
||||
|
||||
@@ -1,45 +1,44 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'administrator' => "",
|
||||
'basic_information' => "Information",
|
||||
'cannot_be_deleted' => "Det går inte att radera valda anställda, en eller flera av de behandlade försäljningarna eller du försöker radera ditt konto.",
|
||||
'change_employee' => "",
|
||||
'change_password' => "Ändra lösenord",
|
||||
'clerk' => "",
|
||||
'commission' => "",
|
||||
'confirm_delete' => "Är du säker på att du vill radera de valda arbetstagarna?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda anställda (er)?",
|
||||
'current_password' => "Nuvarande lösenord",
|
||||
'current_password_invalid' => "Nuvarande lösenord är fel.",
|
||||
'employee' => "Anställd",
|
||||
'error_adding_updating' => "Anställd lägg till eller uppdatering misslyckades.",
|
||||
'error_deleting_demo_admin' => "Du kan inte radera demo admin-användaren.",
|
||||
'error_updating_demo_admin' => "Du kan inte ändra demo admin-användaren.",
|
||||
'language' => "Språk",
|
||||
'login_info' => "Login",
|
||||
'manager' => "",
|
||||
'new' => "Ny anställd",
|
||||
'none_selected' => "Du har inte valt någon anställd att radera.",
|
||||
'one_or_multiple' => "Anställda",
|
||||
'password' => "Lösenord",
|
||||
'password_minlength' => "Lösenordet måste vara minst 8 tecken i längd.",
|
||||
'password_must_match' => "Lösenorden matchar ej.",
|
||||
'password_not_must_match' => "Nuvarande lösenord och nytt lösenord måste vara unikt.",
|
||||
'password_required' => "Lösenord krävs.",
|
||||
'permission_desc' => "Markera rutorna nedan för att ge tillgång till moduler.",
|
||||
'permission_info' => "Behörigheter",
|
||||
'repeat_password' => "Lösenord igen",
|
||||
'subpermission_required' => "Lägg till minst en behörighet för varje modul.",
|
||||
'successful_adding' => "Tillägg av anställd lyckades.",
|
||||
'successful_change_password' => "Lösenordsbyte lyckades.",
|
||||
'successful_deleted' => "Du har tagit bort",
|
||||
'successful_updating' => "Du har uppdaterat anställda",
|
||||
'system_language' => "System Språk",
|
||||
'unsuccessful_change_password' => "Lösenordsbyte misslyckades.",
|
||||
'update' => "Uppdatera anställd",
|
||||
'username' => "Användarnamn",
|
||||
'username_duplicate' => "Användarnamnet för den anställda används redan. Vänligen välj ett annat.",
|
||||
'username_minlength' => "Användarnamnet måste vara minst 5 tecken långt.",
|
||||
'username_required' => "Användarnamnet är ett obligatoriskt fält.",
|
||||
"administrator" => "",
|
||||
"basic_information" => "Information",
|
||||
"cannot_be_deleted" => "Det går inte att radera valda anställda, en eller flera av de behandlade försäljningarna eller du försöker radera ditt konto.",
|
||||
"change_employee" => "",
|
||||
"change_password" => "Ändra lösenord",
|
||||
"clerk" => "",
|
||||
"commission" => "",
|
||||
"confirm_delete" => "Är du säker på att du vill radera de valda arbetstagarna?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda anställda (er)?",
|
||||
"current_password" => "Nuvarande lösenord",
|
||||
"current_password_invalid" => "Nuvarande lösenord är fel.",
|
||||
"employee" => "Anställd",
|
||||
"error_adding_updating" => "Anställd lägg till eller uppdatering misslyckades.",
|
||||
"error_deleting_demo_admin" => "Du kan inte radera demo admin-användaren.",
|
||||
"error_updating_demo_admin" => "Du kan inte ändra demo admin-användaren.",
|
||||
"language" => "Språk",
|
||||
"login_info" => "Login",
|
||||
"manager" => "",
|
||||
"new" => "Ny anställd",
|
||||
"none_selected" => "Du har inte valt någon anställd att radera.",
|
||||
"one_or_multiple" => "Anställda",
|
||||
"password" => "Lösenord",
|
||||
"password_minlength" => "Lösenordet måste vara minst 8 tecken i längd.",
|
||||
"password_must_match" => "Lösenorden matchar ej.",
|
||||
"password_not_must_match" => "Nuvarande lösenord och nytt lösenord måste vara unikt.",
|
||||
"password_required" => "Lösenord krävs.",
|
||||
"permission_desc" => "Markera rutorna nedan för att ge tillgång till moduler.",
|
||||
"permission_info" => "Behörigheter",
|
||||
"repeat_password" => "Lösenord igen",
|
||||
"subpermission_required" => "Lägg till minst en behörighet för varje modul.",
|
||||
"successful_adding" => "Tillägg av anställd lyckades.",
|
||||
"successful_change_password" => "Lösenordsbyte lyckades.",
|
||||
"successful_deleted" => "Du har tagit bort",
|
||||
"successful_updating" => "Du har uppdaterat anställda",
|
||||
"system_language" => "System Språk",
|
||||
"unsuccessful_change_password" => "Lösenordsbyte misslyckades.",
|
||||
"update" => "Uppdatera anställd",
|
||||
"username" => "Användarnamn",
|
||||
"username_duplicate" => "",
|
||||
"username_minlength" => "Användarnamnet måste vara minst 5 tecken långt.",
|
||||
"username_required" => "Användarnamnet är ett obligatoriskt fält.",
|
||||
];
|
||||
|
||||
@@ -1,51 +1,50 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_item' => "Lägg till kostnad",
|
||||
'amount' => "Belopp",
|
||||
'amount_number' => "Beloppet måste vara ett nummer",
|
||||
'amount_required' => "Kostnadsbeloppet krävs",
|
||||
'by_category' => "Kategori",
|
||||
'cannot_be_deleted' => "Kunde inte ta bort kategorikostnad",
|
||||
'cash' => "Kontant",
|
||||
'cash_filter' => "Kontant",
|
||||
'categories_name' => "Kategori",
|
||||
'category_required' => "kategori är ett obligatoriskt fält",
|
||||
'check' => "Kontrollera",
|
||||
'check_filter' => "Kontrollera",
|
||||
'confirm_delete' => "Är du säker på att du vill radera den valda utgiften(erna)?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda utgifter(erna)?",
|
||||
'credit' => "Kreditkort",
|
||||
'credit_filter' => "Kreditkort",
|
||||
'date' => "Datum",
|
||||
'date_number' => "Datumet måste vara ett nummer",
|
||||
'date_required' => "Datumet är ett obligatoriskt fält",
|
||||
'debit' => "Kontokort",
|
||||
'debit_filter' => "Kontokort",
|
||||
'description' => "Beskrivning",
|
||||
'due' => "Skuld",
|
||||
'due_filter' => "skuld",
|
||||
'employee' => "Skapad av",
|
||||
'error_adding_updating' => "Det gick inte att lägga till / uppdatera kostnader",
|
||||
'expense_id' => "Id",
|
||||
'expenses_employee' => "Anställd",
|
||||
'info' => "Utgifter info",
|
||||
'ip_address' => "",
|
||||
'is_deleted' => "Raderad",
|
||||
'name_required' => "Expense Kategori namn krävs",
|
||||
'new' => "Ny kostnad",
|
||||
'new_supplier' => "",
|
||||
'no_expenses_to_display' => "Det finns inga utgifter att visa",
|
||||
'none_selected' => "Du har inte valt någon kostnad",
|
||||
'one_or_multiple' => "Utgifter",
|
||||
'payment' => "Betalningstyp",
|
||||
'start_typing_supplier_name' => "Börja skriva leverantörens namn ...",
|
||||
'successful_adding' => "Kostnaden tillagd",
|
||||
'successful_deleted' => "Kostnaden raderas",
|
||||
'successful_updating' => "Kostnaden uppdaterades",
|
||||
'supplier_name' => "Leverantör",
|
||||
'supplier_tax_code' => "Skattesats",
|
||||
'tax_amount' => "Skatt",
|
||||
'tax_amount_number' => "",
|
||||
'update' => "Uppdatera kostnad",
|
||||
"add_item" => "Lägg till kostnad",
|
||||
"amount" => "Belopp",
|
||||
"amount_number" => "Beloppet måste vara ett nummer",
|
||||
"amount_required" => "Kostnadsbeloppet krävs",
|
||||
"by_category" => "Kategori",
|
||||
"cannot_be_deleted" => "Kunde inte ta bort kategorikostnad",
|
||||
"cash" => "Kontant",
|
||||
"cash_filter" => "Kontant",
|
||||
"categories_name" => "Kategori",
|
||||
"category_required" => "kategori är ett obligatoriskt fält",
|
||||
"check" => "Check",
|
||||
"check_filter" => "Check",
|
||||
"confirm_delete" => "Är du säker på att du vill radera den valda utgiften(erna)?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda utgifter(erna)?",
|
||||
"credit" => "Kreditkort",
|
||||
"credit_filter" => "Kreditkort",
|
||||
"date" => "Datum",
|
||||
"date_number" => "Datumet måste vara ett nummer",
|
||||
"date_required" => "Datumet är ett obligatoriskt fält",
|
||||
"debit" => "Kontokort",
|
||||
"debit_filter" => "Kontokort",
|
||||
"description" => "Beskrivning",
|
||||
"due" => "Skuld",
|
||||
"due_filter" => "skuld",
|
||||
"employee" => "Skapad av",
|
||||
"error_adding_updating" => "Det gick inte att lägga till / uppdatera kostnader",
|
||||
"expense_id" => "Id",
|
||||
"expenses_employee" => "Anställd",
|
||||
"info" => "Utgifter info",
|
||||
"ip_address" => "",
|
||||
"is_deleted" => "Raderad",
|
||||
"name_required" => "Expense Kategori namn krävs",
|
||||
"new" => "Ny kostnad",
|
||||
"new_supplier" => "",
|
||||
"no_expenses_to_display" => "Det finns inga utgifter att visa",
|
||||
"none_selected" => "Du har inte valt någon kostnad",
|
||||
"one_or_multiple" => "Utgifter",
|
||||
"payment" => "Betalningstyp",
|
||||
"start_typing_supplier_name" => "Börja skriva leverantörens namn ...",
|
||||
"successful_adding" => "Kostnaden tillagd",
|
||||
"successful_deleted" => "Kostnaden raderas",
|
||||
"successful_updating" => "Kostnaden uppdaterades",
|
||||
"supplier_name" => "Leverantör",
|
||||
"supplier_tax_code" => "Skattesats",
|
||||
"tax_amount" => "Skatt",
|
||||
"tax_amount_number" => "",
|
||||
"update" => "Uppdatera kostnad",
|
||||
];
|
||||
|
||||
@@ -1,72 +1,71 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_minus' => "Förteckning för att lägga till eller subtrahera.",
|
||||
'allow_alt_description' => "Tillåt alternativ beskrivning",
|
||||
'bulk_edit' => "Massändra",
|
||||
'cannot_be_deleted' => "Det gick inte att radera valda presentkort, ett eller flera av de valda presentkorten har försäljning.",
|
||||
'cannot_find_giftcard' => "Presentkort hittades inte.",
|
||||
'cannot_use' => "Giftcard {0} cannot be used for this sale. Invalid Customer!",
|
||||
'card_value' => "Värde",
|
||||
'category' => "Kategori",
|
||||
'change_all_to_allow_alt_desc' => "Tillåt alternativ beskrivning för alla.",
|
||||
'change_all_to_not_allow_allow_desc' => "Tillåt inte alternativ beskrivning för alla.",
|
||||
'change_all_to_serialized' => "Ändra allt till Serialized",
|
||||
'change_all_to_unserialized' => "Ändra allt till ej Serialized",
|
||||
'confirm_bulk_edit' => "Är du säker på att du vill redigera det valda presentkortet?",
|
||||
'confirm_delete' => "Är du säker på att du vill radera det valda presentkortet?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda presentkort?",
|
||||
'cost_price' => "Grossistpris",
|
||||
'count' => "Uppdatera Inventory",
|
||||
'csv_import_failed' => "CSV-import misslyckades.",
|
||||
'current_quantity' => "Nuvarande antal",
|
||||
'description' => "Beskrivning",
|
||||
'details_count' => "Inventarieringsuppgifter",
|
||||
'do_nothing' => "Gör ingeting",
|
||||
'edit_fields_you_want_to_update' => "Redigera önskade fält för utvalda presentkort.",
|
||||
'edit_multiple_giftcards' => "Redigera flera presentkort.",
|
||||
'error_adding_updating' => "Presentkortets tillägg eller uppdatering misslyckades.",
|
||||
'error_updating_multiple' => "Uppdatering av presentkortet misslyckades.",
|
||||
'generate_barcodes' => "Generera streckkoder",
|
||||
'giftcard' => "Presentkort",
|
||||
'giftcard_number' => "Presentkortsnummer",
|
||||
'info_provided_by' => "Info tillhandahållen av",
|
||||
'inventory_comments' => "Kommentarer",
|
||||
'is_serialized' => "Presentkortet har serienummer",
|
||||
'low_inventory_giftcards' => "Presentkort med låg lagernivå",
|
||||
'manually_editing_of_quantity' => "Manuell redigering av antal",
|
||||
'must_select_giftcard_for_barcode' => "Du måste välja minst ett (1) presentkort för att generera streckkoder.",
|
||||
'new' => "Nytt presentkort",
|
||||
'no_description_giftcards' => "Presentkort utan Beskrivning",
|
||||
'no_giftcards_to_display' => "Inga presentkort att visa.",
|
||||
'none' => "inga",
|
||||
'none_selected' => "Inga presentkort har valts för att redigering.",
|
||||
'number' => "Presentkortets nummer måste vara ett nummer.",
|
||||
'number_information' => "Presentkortsnummer",
|
||||
'number_required' => "Presentkortets nummer är ett obligatoriskt fält.",
|
||||
'one_or_multiple' => "Presentkort",
|
||||
'person_id' => "Kund",
|
||||
'quantity' => "Antal",
|
||||
'quantity_required' => "Antal är ett obligatoriskt fält. Vänligen truck på stäng (X) för att avbryta.",
|
||||
'remaining_balance' => "Presentkort {0} återstående värde är {1}!",
|
||||
'reorder_level' => "Nivå för ombeställning",
|
||||
'retrive_giftcard_info' => "Hämta presentkort Info",
|
||||
'sales_tax_1' => "Moms",
|
||||
'sales_tax_2' => "Moms 2",
|
||||
'serialized_giftcards' => "Serialiserade presentkort",
|
||||
'successful_adding' => "Du har lagt till presentkort",
|
||||
'successful_bulk_edit' => "Du har uppdaterat det valda presentkortet",
|
||||
'successful_deleted' => "Du har tagit bort",
|
||||
'successful_updating' => "Du har uppdaterat det valda presentkortet",
|
||||
'supplier' => "Leverantör",
|
||||
'tax_1' => "Moms",
|
||||
'tax_2' => "Moms 2",
|
||||
'tax_percent' => "Skatt i procent",
|
||||
'tax_percents' => "Skatt %",
|
||||
'unit_price' => "Butiksvärde",
|
||||
'upc_database' => "Streckkod databas",
|
||||
'update' => "Uppdatera presentkort",
|
||||
'use_inventory_menu' => "Använd Inventory Menu",
|
||||
'value' => "Presentkort Värdet måste vara ett nummer.",
|
||||
'value_required' => "Presentkort Värde är ett obligatoriskt fält.",
|
||||
"add_minus" => "Förteckning för att lägga till eller subtrahera.",
|
||||
"allow_alt_description" => "Tillåt alternativ beskrivning",
|
||||
"bulk_edit" => "Massändra",
|
||||
"cannot_be_deleted" => "Det gick inte att radera valda presentkort, ett eller flera av de valda presentkorten har försäljning.",
|
||||
"cannot_find_giftcard" => "Presentkort hittades inte.",
|
||||
"cannot_use" => "Giftcard {0} cannot be used for this sale. Invalid Customer!",
|
||||
"card_value" => "Värde",
|
||||
"category" => "Kategori",
|
||||
"change_all_to_allow_alt_desc" => "Tillåt alternativ beskrivning för alla.",
|
||||
"change_all_to_not_allow_allow_desc" => "Tillåt inte alternativ beskrivning för alla.",
|
||||
"change_all_to_serialized" => "Ändra allt till Serialized",
|
||||
"change_all_to_unserialized" => "Ändra allt till ej Serialized",
|
||||
"confirm_bulk_edit" => "Är du säker på att du vill redigera det valda presentkortet?",
|
||||
"confirm_delete" => "Är du säker på att du vill radera det valda presentkortet?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda presentkort?",
|
||||
"cost_price" => "Grossistpris",
|
||||
"count" => "Uppdatera Inventory",
|
||||
"csv_import_failed" => "CSV-import misslyckades.",
|
||||
"current_quantity" => "Nuvarande antal",
|
||||
"description" => "Beskrivning",
|
||||
"details_count" => "Inventarieringsuppgifter",
|
||||
"do_nothing" => "Gör ingeting",
|
||||
"edit_fields_you_want_to_update" => "Redigera önskade fält för utvalda presentkort.",
|
||||
"edit_multiple_giftcards" => "Redigera flera presentkort.",
|
||||
"error_adding_updating" => "Presentkortets tillägg eller uppdatering misslyckades.",
|
||||
"error_updating_multiple" => "Uppdatering av presentkortet misslyckades.",
|
||||
"generate_barcodes" => "Generera streckkoder",
|
||||
"giftcard" => "Presentkort",
|
||||
"giftcard_number" => "Presentkortsnummer",
|
||||
"info_provided_by" => "Info tillhandahållen av",
|
||||
"inventory_comments" => "Kommentarer",
|
||||
"is_serialized" => "Presentkortet har serienummer",
|
||||
"low_inventory_giftcards" => "Presentkort med låg lagernivå",
|
||||
"manually_editing_of_quantity" => "Manuell redigering av antal",
|
||||
"must_select_giftcard_for_barcode" => "Du måste välja minst ett (1) presentkort för att generera streckkoder.",
|
||||
"new" => "Nytt presentkort",
|
||||
"no_description_giftcards" => "Presentkort utan Beskrivning",
|
||||
"no_giftcards_to_display" => "Inga presentkort att visa.",
|
||||
"none" => "inga",
|
||||
"none_selected" => "Inga presentkort har valts för att redigering.",
|
||||
"number" => "Presentkortets nummer måste vara ett nummer.",
|
||||
"number_information" => "Presentkortsnummer",
|
||||
"number_required" => "Presentkortets nummer är ett obligatoriskt fält.",
|
||||
"one_or_multiple" => "Presentkort",
|
||||
"person_id" => "Kund",
|
||||
"quantity" => "Antal",
|
||||
"quantity_required" => "Antal är ett obligatoriskt fält. Vänligen truck på stäng (X) för att avbryta.",
|
||||
"remaining_balance" => "Presentkort {0} återstående värde är {1}!",
|
||||
"reorder_level" => "Återbeställningsnivå",
|
||||
"retrive_giftcard_info" => "Hämta presentkort Info",
|
||||
"sales_tax_1" => "Moms",
|
||||
"sales_tax_2" => "Moms 2",
|
||||
"serialized_giftcards" => "Serialiserade presentkort",
|
||||
"successful_adding" => "Du har lagt till presentkort",
|
||||
"successful_bulk_edit" => "Du har uppdaterat det valda presentkortet",
|
||||
"successful_deleted" => "Du har tagit bort",
|
||||
"successful_updating" => "Du har uppdaterat det valda presentkortet",
|
||||
"supplier" => "Leverantör",
|
||||
"tax_1" => "Moms",
|
||||
"tax_2" => "Moms 2",
|
||||
"tax_percent" => "Skatt %",
|
||||
"tax_percents" => "Skatt %",
|
||||
"unit_price" => "Butiksvärde",
|
||||
"upc_database" => "Streckkod databas",
|
||||
"update" => "Uppdatera presentkort",
|
||||
"use_inventory_menu" => "Använd Inventory Menu",
|
||||
"value" => "Presentkort Värdet måste vara ett nummer.",
|
||||
"value_required" => "Presentkort Värde är ett obligatoriskt fält.",
|
||||
];
|
||||
|
||||
@@ -1,42 +1,41 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_item' => "Lägg till artikel",
|
||||
'all' => "Alla",
|
||||
'cannot_be_deleted' => "Kunde inte radera artikelpaketet.",
|
||||
'confirm_delete' => "Är du säker på att du vill radera det valda artikelpaketet?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda artikelpaket?",
|
||||
'description' => "Beskrivning artikelpaket",
|
||||
'discount' => "Rabatt",
|
||||
'discount_fixed' => "Fast rabatt",
|
||||
'discount_percent' => "Rabatt i procent",
|
||||
'discount_type' => "Typ av rabatt",
|
||||
'error_adding_updating' => "Artikelpaket: tillägg eller uppdatering misslyckades.",
|
||||
'find_kit_item' => "Artikelpaket",
|
||||
'info' => "Artikelpaket beskrivning",
|
||||
'item' => "Artikel",
|
||||
'item_kit_number' => "Streckkod",
|
||||
'item_kit_number_duplicate' => "Artikelpaketet nummer finns redan i databasen.",
|
||||
'item_number' => "",
|
||||
'item_number_duplicate' => "",
|
||||
'items' => "Artiklar",
|
||||
'kit' => "Artikelpaket ID",
|
||||
'kit_and_components' => "Artikelpaket och delar",
|
||||
'kit_and_stock' => "Artikelpaket och lager",
|
||||
'kit_only' => "Artikelpaket",
|
||||
'name' => "Artikelpaket Namn",
|
||||
'new' => "Nytt Artikelpaket",
|
||||
'no_item_kits_to_display' => "Inga artikelpaket att visa.",
|
||||
'none_selected' => "Du har inte valt något artikelpaket.",
|
||||
'one_or_multiple' => "Artikelpaket",
|
||||
'price_option' => "Prisalternativ",
|
||||
'priced_only' => "Endast prissatt",
|
||||
'print_option' => "Utskriftsalternativ",
|
||||
'quantity' => "Antal",
|
||||
'sequence' => "Sekvens",
|
||||
'successful_adding' => "Du har lyckats lägga till artikelpaketet",
|
||||
'successful_deleted' => "Du har tagit bort",
|
||||
'successful_updating' => "Du har uppdaterat artikelpaketet",
|
||||
'unit_price' => "",
|
||||
'update' => "Uppdatera artikelpaketet",
|
||||
"add_item" => "Lägg till artikel",
|
||||
"all" => "Alla",
|
||||
"cannot_be_deleted" => "Kunde inte radera artikelpaketet.",
|
||||
"confirm_delete" => "Är du säker på att du vill radera det valda artikelpaketet?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda artikelpaket?",
|
||||
"description" => "Beskrivning artikelpaket",
|
||||
"discount" => "Rabatt",
|
||||
"discount_fixed" => "Fast rabatt",
|
||||
"discount_percent" => "Rabattprocent",
|
||||
"discount_type" => "Rabattyp",
|
||||
"error_adding_updating" => "Artikelpaket: tillägg eller uppdatering misslyckades.",
|
||||
"find_kit_item" => "Artikelpaket",
|
||||
"info" => "Artikelpaket beskrivning",
|
||||
"item" => "Artikel",
|
||||
"item_kit_number" => "Streckkod",
|
||||
"item_kit_number_duplicate" => "Artikelpaketet nummer finns redan i databasen.",
|
||||
"item_number" => "",
|
||||
"item_number_duplicate" => "",
|
||||
"items" => "Artiklar",
|
||||
"kit" => "Artikelpaket ID",
|
||||
"kit_and_components" => "Artikelpaket och delar",
|
||||
"kit_and_stock" => "Artikelpaket och lager",
|
||||
"kit_only" => "Artikelpaket",
|
||||
"name" => "Artikelpaket Namn",
|
||||
"new" => "Nytt Artikelpaket",
|
||||
"no_item_kits_to_display" => "Inga artikelpaket att visa.",
|
||||
"none_selected" => "Du har inte valt något artikelpaket.",
|
||||
"one_or_multiple" => "Artikelpaket",
|
||||
"price_option" => "Prisalternativ",
|
||||
"priced_only" => "Endast prissatt",
|
||||
"print_option" => "Utskriftsalternativ",
|
||||
"quantity" => "Antal",
|
||||
"sequence" => "Sekvens",
|
||||
"successful_adding" => "Du har lyckats lägga till artikelpaketet",
|
||||
"successful_deleted" => "Du har tagit bort",
|
||||
"successful_updating" => "Du har uppdaterat artikelpaketet",
|
||||
"unit_price" => "",
|
||||
"update" => "Uppdatera artikelpaketet",
|
||||
];
|
||||
|
||||
@@ -1,121 +1,120 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'add_minus' => "Lager att lägga till eller ta bort.",
|
||||
'allow_alt_description' => "Tillåt alternativ beskrivning",
|
||||
'amount_entry' => "Belopp",
|
||||
'bulk_edit' => "Massändra",
|
||||
'buy_price_required' => "Köppriset är ett obligatoriskt fält.",
|
||||
'cannot_be_deleted' => "Kunde inte radera valda objekt, en eller flera av de valda objekten har försäljning.",
|
||||
'cannot_find_item' => "Artikeln hittades inte.",
|
||||
'categories' => "",
|
||||
'category' => "Kategori",
|
||||
'category_new' => "",
|
||||
'category_required' => "Kategori är ett obligatoriskt fält.",
|
||||
'change_all_to_allow_alt_desc' => "Tillåt alternativ beskrivning för alla.",
|
||||
'change_all_to_not_allow_allow_desc' => "Tillåt inte alternativ beskrivning för alla.",
|
||||
'change_all_to_serialized' => "Ändra allt till Serialized",
|
||||
'change_all_to_unserialized' => "Ändra allt till ej Serialized",
|
||||
'change_image' => "Ändra bild",
|
||||
'confirm_bulk_edit' => "Är du säker på att du vill redigera valda artiklar?",
|
||||
'confirm_bulk_edit_wipe_taxes' => "All Artikel Skatteinformation kommer att ersättas.",
|
||||
'confirm_delete' => "Är du säker på att du vill radera valda artiklar?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda artiklar?",
|
||||
'cost_price' => "Grossistpris",
|
||||
'cost_price_number' => "Grosistpriset måste vara ett nummer.",
|
||||
'cost_price_required' => "Grossistpris är ett obligatoriskt fält.",
|
||||
'count' => "Uppdatera Inventory",
|
||||
'csv_import_failed' => "CSV-import misslyckades",
|
||||
'csv_import_nodata_wrongformat' => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
|
||||
'csv_import_partially_failed' => "Det fanns{0} importfel (er) på rad (er):{1}. Inga rader importerades.",
|
||||
'csv_import_success' => "Artikelimporten lyckades.",
|
||||
'current_quantity' => "Nuvarande antal",
|
||||
'default_pack_name' => "Varje",
|
||||
'description' => "Beskrivning",
|
||||
'details_count' => "Inventarieringsuppgifter",
|
||||
'do_nothing' => "Gör ingeting",
|
||||
'edit' => "",
|
||||
'edit_fields_you_want_to_update' => "Redigera önskade fält för valda artiklar.",
|
||||
'edit_multiple_items' => "Redigering av flera artiklar",
|
||||
'empty_upc_items' => "Tomma streckkodsposter",
|
||||
'error_adding_updating' => "Det gick inte att lägga till / uppdatera artiklar",
|
||||
'error_updating_multiple' => "Ett fel uppstod vid uppdatering av artiklar",
|
||||
'generate_barcodes' => "Generera streckkoder",
|
||||
'hsn_code' => "Harmoniserade systemnomenklaturen",
|
||||
'image' => "Avatar",
|
||||
'import_items_csv' => "Artikelimport från CSV",
|
||||
'info_provided_by' => "Information tillhandahållen av",
|
||||
'inventory' => "Lager",
|
||||
'inventory_CSV_import_quantity' => "Antal importerat från CSV",
|
||||
'inventory_comments' => "Kommentarer",
|
||||
'inventory_data_tracking' => "Lagerspårning",
|
||||
'inventory_date' => "Datum",
|
||||
'inventory_employee' => "Anställd",
|
||||
'inventory_in_out_quantity' => "In / Out Mängd",
|
||||
'inventory_remarks' => "Anmärkningar",
|
||||
'is_deleted' => "Raderad",
|
||||
'is_printed' => "",
|
||||
'is_serialized' => "Artikeln har serienummer",
|
||||
'item' => "Artikel",
|
||||
'item_id' => "",
|
||||
'item_number' => "Streckkod",
|
||||
'item_number_duplicate' => "Artikelnummer finns redan i databasen.",
|
||||
'kit' => "Kit",
|
||||
'location' => "Lagerplats",
|
||||
'low_inventory_items' => "Artikeln slutsåld",
|
||||
'low_sell_item' => "Låg försäljnings artikel",
|
||||
'manually_editing_of_quantity' => "Manuell redigering av antal",
|
||||
'markup' => "",
|
||||
'name' => "Artikelnamn",
|
||||
'name_required' => "Artikelnamn är ett obligatoriskt fält.",
|
||||
'new' => "Ny artikel",
|
||||
'no_description_items' => "Inga beskrivning av artikel",
|
||||
'no_items_to_display' => "Inga artiklar att visa.",
|
||||
'none' => "inga",
|
||||
'none_selected' => "Du har inte valt några artiklar att redigera",
|
||||
'nonstock' => "Icke-lager",
|
||||
'number_information' => "Artikelnummer",
|
||||
'number_required' => "Streckkod är ett obligatoriskt fält.",
|
||||
'one_or_multiple' => "Artikel",
|
||||
'pack_name' => "Förpackningsnamn",
|
||||
'qty_per_pack' => "Antal per förpackning",
|
||||
'quantity' => "Kvantitet",
|
||||
'quantity_number' => "Antal måste vara ett nummer.",
|
||||
'quantity_required' => "Antal är ett obligatoriskt fält.",
|
||||
'receiving_quantity' => "Mottagningskvantitet",
|
||||
'remove_image' => "Radera bild",
|
||||
'reorder_level' => "Nivå för ombeställning",
|
||||
'reorder_level_number' => "Omordningsnivå måste vara ett nummer.",
|
||||
'reorder_level_required' => "Återbeställningsnivå är ett obligatoriskt fält.",
|
||||
'retrive_item_info' => "Hämta artikelinfo",
|
||||
'sales_tax_1' => "Moms",
|
||||
'sales_tax_2' => "Moms 2",
|
||||
'search_attributes' => "Sök attribut",
|
||||
'select_image' => "Välj Bild",
|
||||
'serialized_items' => "Serialiserade artiklar",
|
||||
'standard' => "Standard",
|
||||
'stock' => "Lager",
|
||||
'stock_location' => "Lagerplats",
|
||||
'stock_type' => "Lagertyp",
|
||||
'successful_adding' => "Du har lagt till Artikeln",
|
||||
'successful_bulk_edit' => "Du har uppdaterat den valda atikeln",
|
||||
'successful_deleted' => "Du har tagit bort artikeln",
|
||||
'successful_updating' => "Du har uppdaterat artikeln",
|
||||
'supplier' => "Leverantör",
|
||||
'tax_1' => "Skatt 1",
|
||||
'tax_2' => "Skatt 2",
|
||||
'tax_3' => "",
|
||||
'tax_category' => "Skattekategori",
|
||||
'tax_percent' => "Skatt %",
|
||||
'tax_percent_number' => "Skattprocent måste vara ett numeriskt värde",
|
||||
'tax_percent_required' => "Skattprocent är ett obligatoriskt fält.",
|
||||
'tax_percents' => "Skatt %",
|
||||
'temp' => "Tillfällig",
|
||||
'type' => "Artikeltyp",
|
||||
'unit_price' => "Försäljningspris",
|
||||
'unit_price_number' => "Enhetspriset måste vara ett nummer.",
|
||||
'unit_price_required' => "Enhetspriset är ett obligatoriskt fält.",
|
||||
'upc_database' => "Streckkod databas",
|
||||
'update' => "Uppdatera artikeln",
|
||||
'use_inventory_menu' => "Använd Inventory Menu",
|
||||
"add_minus" => "Lager att lägga till eller ta bort.",
|
||||
"allow_alt_description" => "Tillåt alternativ beskrivning",
|
||||
"amount_entry" => "Belopp",
|
||||
"bulk_edit" => "Massändra",
|
||||
"buy_price_required" => "Köppriset är ett obligatoriskt fält.",
|
||||
"cannot_be_deleted" => "Kunde inte radera valda objekt, en eller flera av de valda objekten har försäljning.",
|
||||
"cannot_find_item" => "Artikeln hittades inte.",
|
||||
"categories" => "",
|
||||
"category" => "Kategori",
|
||||
"category_new" => "",
|
||||
"category_required" => "Kategori är ett obligatoriskt fält.",
|
||||
"change_all_to_allow_alt_desc" => "Tillåt alternativ beskrivning för alla.",
|
||||
"change_all_to_not_allow_allow_desc" => "Tillåt inte alternativ beskrivning för alla.",
|
||||
"change_all_to_serialized" => "Ändra allt till Serialized",
|
||||
"change_all_to_unserialized" => "Ändra allt till ej Serialized",
|
||||
"change_image" => "Ändra bild",
|
||||
"confirm_bulk_edit" => "Är du säker på att du vill redigera valda artiklar?",
|
||||
"confirm_bulk_edit_wipe_taxes" => "All Artikel Skatteinformation kommer att ersättas.",
|
||||
"confirm_delete" => "Är du säker på att du vill radera valda artiklar?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda artiklar?",
|
||||
"cost_price" => "Grossistpris",
|
||||
"cost_price_number" => "Grosistpriset måste vara ett nummer.",
|
||||
"cost_price_required" => "Grossistpris är ett obligatoriskt fält.",
|
||||
"count" => "Uppdatera Inventory",
|
||||
"csv_import_failed" => "CSV-import misslyckades",
|
||||
"csv_import_nodata_wrongformat" => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
|
||||
"csv_import_partially_failed" => "Det fanns{0} importfel (er) på rad (er):{1}. Inga rader importerades.",
|
||||
"csv_import_success" => "Artikelimporten lyckades.",
|
||||
"current_quantity" => "Nuvarande antal",
|
||||
"default_pack_name" => "Varje",
|
||||
"description" => "Beskrivning",
|
||||
"details_count" => "Inventarieringsuppgifter",
|
||||
"do_nothing" => "Gör ingeting",
|
||||
"edit" => "",
|
||||
"edit_fields_you_want_to_update" => "Redigera önskade fält för valda artiklar.",
|
||||
"edit_multiple_items" => "Redigering av flera artiklar",
|
||||
"empty_upc_items" => "Tomma streckkodsposter",
|
||||
"error_adding_updating" => "Det gick inte att lägga till / uppdatera artiklar",
|
||||
"error_updating_multiple" => "Ett fel uppstod vid uppdatering av artiklar",
|
||||
"generate_barcodes" => "Generera streckkoder",
|
||||
"hsn_code" => "Harmoniserade systemnomenklaturen",
|
||||
"image" => "Avatar",
|
||||
"import_items_csv" => "Artikelimport från CSV",
|
||||
"info_provided_by" => "Information tillhandahållen av",
|
||||
"inventory" => "Lager",
|
||||
"inventory_CSV_import_quantity" => "Antal importerat från CSV",
|
||||
"inventory_comments" => "Kommentarer",
|
||||
"inventory_data_tracking" => "Lagerspårning",
|
||||
"inventory_date" => "Datum",
|
||||
"inventory_employee" => "Anställd",
|
||||
"inventory_in_out_quantity" => "In / Out Mängd",
|
||||
"inventory_remarks" => "Anmärkningar",
|
||||
"is_deleted" => "Raderad",
|
||||
"is_printed" => "",
|
||||
"is_serialized" => "Artikeln har serienummer",
|
||||
"item" => "Artikel",
|
||||
"item_id" => "",
|
||||
"item_number" => "Streckkod",
|
||||
"item_number_duplicate" => "Artikelnummer finns redan i databasen.",
|
||||
"kit" => "Kit",
|
||||
"location" => "Lagerplats",
|
||||
"low_inventory_items" => "Artikeln slutsåld",
|
||||
"low_sell_item" => "Låg försäljnings artikel",
|
||||
"manually_editing_of_quantity" => "Manuell redigering av antal",
|
||||
"markup" => "",
|
||||
"name" => "Artikelnamn",
|
||||
"name_required" => "Artikelnamn är ett obligatoriskt fält.",
|
||||
"new" => "Ny artikel",
|
||||
"no_description_items" => "Inga beskrivning av artikel",
|
||||
"no_items_to_display" => "Inga artiklar att visa.",
|
||||
"none" => "inga",
|
||||
"none_selected" => "Du har inte valt några artiklar att redigera",
|
||||
"nonstock" => "Icke-lager",
|
||||
"number_information" => "Artikelnummer",
|
||||
"number_required" => "Streckkod är ett obligatoriskt fält.",
|
||||
"one_or_multiple" => "Artikel",
|
||||
"pack_name" => "Förpackningsnamn",
|
||||
"qty_per_pack" => "Antal per förpackning",
|
||||
"quantity" => "Kvantitet",
|
||||
"quantity_number" => "Antal måste vara ett nummer.",
|
||||
"quantity_required" => "Antal är ett obligatoriskt fält.",
|
||||
"receiving_quantity" => "Mottagningskvantitet",
|
||||
"remove_image" => "Radera bild",
|
||||
"reorder_level" => "Återbeställningsnivå",
|
||||
"reorder_level_number" => "Omordningsnivå måste vara ett nummer.",
|
||||
"reorder_level_required" => "Återbeställningsnivå är ett obligatoriskt fält.",
|
||||
"retrive_item_info" => "Hämta artikelinfo",
|
||||
"sales_tax_1" => "Moms",
|
||||
"sales_tax_2" => "Moms 2",
|
||||
"search_attributes" => "Sök attribut",
|
||||
"select_image" => "Välj Bild",
|
||||
"serialized_items" => "Serialiserade artiklar",
|
||||
"standard" => "Standard",
|
||||
"stock" => "Lager",
|
||||
"stock_location" => "Lagerplats",
|
||||
"stock_type" => "Lagertyp",
|
||||
"successful_adding" => "Du har lagt till Artikeln",
|
||||
"successful_bulk_edit" => "Du har uppdaterat den valda atikeln",
|
||||
"successful_deleted" => "Du har tagit bort artikeln",
|
||||
"successful_updating" => "Du har uppdaterat artikeln",
|
||||
"supplier" => "Leverantör",
|
||||
"tax_1" => "Skatt 1",
|
||||
"tax_2" => "Skatt 2",
|
||||
"tax_3" => "",
|
||||
"tax_category" => "Skattekategori",
|
||||
"tax_percent" => "Skatt %",
|
||||
"tax_percent_number" => "Skattprocent måste vara ett numeriskt värde",
|
||||
"tax_percent_required" => "Skattprocent är ett obligatoriskt fält.",
|
||||
"tax_percents" => "Skatt %",
|
||||
"temp" => "Tillfällig",
|
||||
"type" => "Artikeltyp",
|
||||
"unit_price" => "Försäljningspris",
|
||||
"unit_price_number" => "Enhetspriset måste vara ett nummer.",
|
||||
"unit_price_required" => "Enhetspriset är ett obligatoriskt fält.",
|
||||
"upc_database" => "Streckkod databas",
|
||||
"update" => "Uppdatera artikeln",
|
||||
"use_inventory_menu" => "Använd Inventory Menu",
|
||||
];
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'gcaptcha' => "Jag är inte en robot.",
|
||||
'go' => "Logga in",
|
||||
'invalid_gcaptcha' => "Ogiltig jag är ingen robot.",
|
||||
'invalid_installation' => "Installationen är inte korrekt, kontrollera din php.ini fil.",
|
||||
'invalid_username_and_password' => "Ogiltigt användarnamn eller lösenord.",
|
||||
'login' => "Login",
|
||||
'logout' => "Logga ut",
|
||||
'migration_needed' => "En migration av databasen till {0} kommer att påbörjas efter inloggningen.",
|
||||
'password' => "Lösenord",
|
||||
'required_username' => "Fältet för användarnamn krävs.",
|
||||
'username' => "Användarnamn",
|
||||
'welcome' => "Välkommen till {0}!",
|
||||
"gcaptcha" => "Jag är inte en robot.",
|
||||
"go" => "Logga in",
|
||||
"invalid_gcaptcha" => "Ogiltig jag är ingen robot.",
|
||||
"invalid_installation" => "Installationen är inte korrekt, kontrollera din php.ini fil.",
|
||||
"invalid_username_and_password" => "Ogiltigt användarnamn eller lösenord.",
|
||||
"login" => "Login",
|
||||
"logout" => "",
|
||||
"migration_needed" => "",
|
||||
"password" => "Lösenord",
|
||||
"required_username" => "",
|
||||
"username" => "Användarnamn",
|
||||
"welcome" => "",
|
||||
];
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'first_name' => "Förnamn",
|
||||
'last_name' => "Efternamn",
|
||||
'message' => "Meddelande",
|
||||
'message_placeholder' => "Ditt meddelande här...",
|
||||
'message_required' => "Meddelande krävs",
|
||||
'multiple_phones' => "(vid flera mottagare, ange mobilnummer separerade med kommatecken)",
|
||||
'phone' => "Telefonnummer",
|
||||
'phone_number_required' => "Telefonnummer krävs",
|
||||
'phone_placeholder' => "Mobilnummer här...",
|
||||
'sms_send' => "Skicka SMS",
|
||||
'successfully_sent' => "Skickandet av meddelandet till lyckades: ",
|
||||
'unsuccessfully_sent' => "Meddelandet skickades ej till: ",
|
||||
"first_name" => "Förnamn",
|
||||
"last_name" => "Efternamn",
|
||||
"message" => "Meddelande",
|
||||
"message_placeholder" => "Ditt meddelande här...",
|
||||
"message_required" => "Meddelande krävs",
|
||||
"multiple_phones" => "(vid flera mottagare, avdela mobilnummer med komma)",
|
||||
"phone" => "Telefonnummer",
|
||||
"phone_number_required" => "Telefonnummer krävs",
|
||||
"phone_placeholder" => "Mobiltelefonnummer...",
|
||||
"sms_send" => "Skicka SMS",
|
||||
"successfully_sent" => "Meddelandet skickat till: ",
|
||||
"unsuccessfully_sent" => "Meddelandet skickades ej till: ",
|
||||
];
|
||||
|
||||
@@ -1,49 +1,48 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'admin_cashups' => "",
|
||||
'admin_cashups_desc' => "",
|
||||
'attributes' => "Attributer",
|
||||
'attributes_desc' => "Lägg till, uppdatera, ta bort och sök attributer.",
|
||||
'both' => "Båda",
|
||||
'cashups' => "Dagskassa",
|
||||
'cashups_desc' => "Lägg till, uppdatera, ta bort och sök i dagskassor.",
|
||||
'config' => "Konfiguration",
|
||||
'config_desc' => "Ändra OSPOS's konfiguration.",
|
||||
'customers' => "Kunder",
|
||||
'customers_desc' => "Lägg till, uppdatera, ta bort och sök kunder.",
|
||||
'employees' => "Anställda",
|
||||
'employees_desc' => "Lägg till, uppdatera, ta bort och sök anställda.",
|
||||
'expenses' => "Utgifter",
|
||||
'expenses_categories' => "Utgifter Kategorier",
|
||||
'expenses_categories_desc' => "Lägg till, uppdatera och ta bort kostnadskategorier.",
|
||||
'expenses_desc' => "Lägg till, uppdatera, ta bort och sök efter utgifter.",
|
||||
'giftcards' => "Presentkort",
|
||||
'giftcards_desc' => "Lägg till, uppdatera, ta bort och sök efter presentkort.",
|
||||
'home' => "Hem",
|
||||
'home_desc' => "Lista moduler för hem-menyn.",
|
||||
'item_kits' => "Artikelpaket",
|
||||
'item_kits_desc' => "Lägg till, uppdatera, radera och söka artikelpaket.",
|
||||
'items' => "Artiklar",
|
||||
'items_desc' => "Lägg till, uppdatera, ta bort och sök efter artiklar.",
|
||||
'messages' => "Meddelande",
|
||||
'messages_desc' => "Skicka meddelanden till kunder, leverantörer och anställda.",
|
||||
'migrate' => "Migrera",
|
||||
'migrate_desc' => "Uppdatera OSPOS-databasen.",
|
||||
'office' => "Kontor",
|
||||
'office_desc' => "Lista kontors menyn moduler.",
|
||||
'receivings' => "Inkomster",
|
||||
'receivings_desc' => "Behandla inköpsordrar.",
|
||||
'reports' => "Rapporter",
|
||||
'reports_desc' => "Visa och generera rapporter.",
|
||||
'sales' => "Försäljning",
|
||||
'sales_desc' => "Process Försäljning och Returer.",
|
||||
'suppliers' => "Leverantörer",
|
||||
'suppliers_desc' => "Lägg till, uppdatera, ta bort och sök efter leverantörer.",
|
||||
'taxes' => "Skatter",
|
||||
'taxes_desc' => "Konfigurera försäljningsskatter.",
|
||||
'timeclocks' => "",
|
||||
'timeclocks_categories' => "",
|
||||
'timeclocks_categories_desc' => "",
|
||||
'timeclocks_desc' => "",
|
||||
"admin_cashups" => "",
|
||||
"admin_cashups_desc" => "",
|
||||
"attributes" => "Attribut",
|
||||
"attributes_desc" => "Lägg till, uppdatera, ta bort och sök attribut.",
|
||||
"both" => "Båda",
|
||||
"cashups" => "Dagskassa",
|
||||
"cashups_desc" => "Lägg till, uppdatera, ta bort och sök i dagskassor.",
|
||||
"config" => "Konfiguration",
|
||||
"config_desc" => "Ändra OSPOS: s konfiguration.",
|
||||
"customers" => "Kunder",
|
||||
"customers_desc" => "Lägg till, uppdatera, ta bort och sök kunder.",
|
||||
"employees" => "Anställda",
|
||||
"employees_desc" => "Lägg till, uppdatera, ta bort och sök anställda.",
|
||||
"expenses" => "Utgifter",
|
||||
"expenses_categories" => "Utgifter Kategorier",
|
||||
"expenses_categories_desc" => "Lägg till, uppdatera och ta bort kostnadskategorier.",
|
||||
"expenses_desc" => "Lägg till, uppdatera, ta bort och sökutgifter.",
|
||||
"giftcards" => "Presentkort",
|
||||
"giftcards_desc" => "Lägg till, uppdatera, ta bort och sök presentkort.",
|
||||
"home" => "Hem",
|
||||
"home_desc" => "Lista hemmeny moduler.",
|
||||
"item_kits" => "Artikelpaket",
|
||||
"item_kits_desc" => "Lägg till, uppdatera, radera och söka artikelpaket.",
|
||||
"items" => "Artiklar",
|
||||
"items_desc" => "Lägg till, uppdatera, ta bort och artiklar.",
|
||||
"messages" => "Meddelande",
|
||||
"messages_desc" => "Skicka meddelanden till kunder, leverantörer och anställda.",
|
||||
"migrate" => "Migrera",
|
||||
"migrate_desc" => "Uppdatera OSPOS-databasen.",
|
||||
"office" => "Kontor",
|
||||
"office_desc" => "Lista kontors menyn moduler.",
|
||||
"receivings" => "Mottagande",
|
||||
"receivings_desc" => "Process inköpsorder.",
|
||||
"reports" => "Rapporter",
|
||||
"reports_desc" => "Visa och skapa rapporter.",
|
||||
"sales" => "Försäljning",
|
||||
"sales_desc" => "Process Försäljning och Returer.",
|
||||
"suppliers" => "Leverantörer",
|
||||
"suppliers_desc" => "Lägg till, uppdatera, ta bort och sök leverantörer.",
|
||||
"taxes" => "Skatt",
|
||||
"taxes_desc" => "Konfigurera försäljningsskatter.",
|
||||
"timeclocks" => "",
|
||||
"timeclocks_categories" => "",
|
||||
"timeclocks_categories_desc" => "",
|
||||
"timeclocks_desc" => "",
|
||||
];
|
||||
|
||||
@@ -1,59 +1,58 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'amount_due' => "",
|
||||
'cancel_receiving' => "Avbryt",
|
||||
'cannot_be_deleted' => "Mottagande (s) radering misslyckades.",
|
||||
'comments' => "Kommentarer",
|
||||
'complete_receiving' => "Slutför",
|
||||
'confirm_cancel_receiving' => "Är du säker på att du vill rensa den här mottagningen? Alla objekt kommer att rensas.",
|
||||
'confirm_delete' => "Är du säker på att du vill ta bort den här mottagningen? Den här åtgärden kan inte ångras.",
|
||||
'confirm_finish_receiving' => "Är du säker på att du vill skicka in den här mottagaren? Detta kan inte göras ogjort.",
|
||||
'confirm_restore' => "",
|
||||
'cost' => "Kostnad",
|
||||
'daily' => "",
|
||||
'date' => "Inleveransdatum",
|
||||
'date_required' => "Ett korrekt datum måste anges.",
|
||||
'date_type' => "Datumet är ett obligatoriskt fält.",
|
||||
'delete_entire_sale' => "Ta bort hela försäljningen",
|
||||
'discount' => "Rabatt",
|
||||
'edit' => "Ändra",
|
||||
'edit_sale' => "Ändra Inleverans",
|
||||
'employee' => "Anställd",
|
||||
'error_editing_item' => "Artikelredigering misslyckades.",
|
||||
'error_requisition' => "Det går inte att flytta lagerplats från eller till samma lagerplats.",
|
||||
'find_or_scan_item' => "Hitta eller skanna artikel",
|
||||
'find_or_scan_item_or_receipt' => "Hitta eller skanna artikel eller kvitto",
|
||||
'id' => "Inleverans-ID",
|
||||
'item_name' => "Namn på artikel",
|
||||
'mode' => "Inleveransläge",
|
||||
'new_supplier' => "Ny leverantör",
|
||||
'one_or_multiple' => "Inleveranser",
|
||||
'print_after_sale' => "Skriv ut efter försäljning",
|
||||
'quantity' => "Antal.",
|
||||
'receipt' => "Inleverans kvitto",
|
||||
'receipt_number' => "Inleverans #",
|
||||
'receiving' => "Inlevera",
|
||||
'reference' => "Referens",
|
||||
'register' => "Artiklar Inleverans",
|
||||
'requisition' => "Rekvisition",
|
||||
'return' => "Retur",
|
||||
'select_supplier' => "Välj leverantör (valfritt)",
|
||||
'ship_pack' => "Ship Pack",
|
||||
'start_typing_supplier_name' => "Börja skriva leverantörens namn ...",
|
||||
'stock' => "Lager",
|
||||
'stock_destination' => "Lagerplats",
|
||||
'stock_locaiton' => "Lagerplats",
|
||||
'stock_source' => "Lagerplats",
|
||||
'successfully_deleted' => "Du har tagit bort",
|
||||
'successfully_updated' => "Mottagning uppdaterad",
|
||||
'supplier' => "Leverantör",
|
||||
'supplier_address' => "Adress",
|
||||
'supplier_email' => "E-mail",
|
||||
'supplier_location' => "Plats",
|
||||
'total' => "Totalt",
|
||||
'transaction_failed' => "Mottagande transaktioner misslyckades.",
|
||||
'unable_to_add_item' => "Artikel tillägg i Mottagning misslyckades.",
|
||||
'unsuccessfully_updated' => "Mottagning uppdateringen misslyckades.",
|
||||
'update' => "Uppdatera",
|
||||
"amount_due" => "",
|
||||
"cancel_receiving" => "Avbryt",
|
||||
"cannot_be_deleted" => "Mottagande (s) radering misslyckades.",
|
||||
"comments" => "Kommentarer",
|
||||
"complete_receiving" => "Slutför",
|
||||
"confirm_cancel_receiving" => "Är du säker på att du vill rensa den här mottagningen? Alla objekt kommer att rensas.",
|
||||
"confirm_delete" => "Är du säker på att du vill ta bort den här mottagningen? Den här åtgärden kan inte ångras.",
|
||||
"confirm_finish_receiving" => "Är du säker på att du vill skicka in den här mottagaren? Detta kan inte göras ogjort.",
|
||||
"confirm_restore" => "",
|
||||
"cost" => "Kostnad",
|
||||
"daily" => "",
|
||||
"date" => "Inleveransdatum",
|
||||
"date_required" => "Ett korrekt datum måste anges.",
|
||||
"date_type" => "Datumet är ett obligatoriskt fält.",
|
||||
"delete_entire_sale" => "Ta bort hela försäljningen",
|
||||
"discount" => "Rabat %",
|
||||
"edit" => "Ändra",
|
||||
"edit_sale" => "Ändra Inleverans",
|
||||
"employee" => "Anställd",
|
||||
"error_editing_item" => "Artikelredigering misslyckades.",
|
||||
"error_requisition" => "Det går inte att flytta lagerplats från eller till samma lagerplats.",
|
||||
"find_or_scan_item" => "Hitta eller skanna artikel",
|
||||
"find_or_scan_item_or_receipt" => "Hitta eller skanna artikel eller kvitto",
|
||||
"id" => "Inleverans-ID",
|
||||
"item_name" => "Artikelnamn",
|
||||
"mode" => "Inleveransläge",
|
||||
"new_supplier" => "Ny leverantör",
|
||||
"one_or_multiple" => "Inleveranser",
|
||||
"print_after_sale" => "Skriv ut efter försäljning",
|
||||
"quantity" => "Antal.",
|
||||
"receipt" => "Inleverans kvitto",
|
||||
"receipt_number" => "Inleverans #",
|
||||
"receiving" => "Inlevera",
|
||||
"reference" => "Referens",
|
||||
"register" => "Artiklar Inleverans",
|
||||
"requisition" => "Rekvisition",
|
||||
"return" => "Retur",
|
||||
"select_supplier" => "Välj leverantör (valfritt)",
|
||||
"ship_pack" => "Ship Pack",
|
||||
"start_typing_supplier_name" => "Börja skriva leverantörens namn ...",
|
||||
"stock" => "Lager",
|
||||
"stock_destination" => "Lagerplats",
|
||||
"stock_locaiton" => "Lagerplats",
|
||||
"stock_source" => "Lagerplats",
|
||||
"successfully_deleted" => "Du har tagit bort",
|
||||
"successfully_updated" => "Mottagning uppdaterad",
|
||||
"supplier" => "Leverantör",
|
||||
"supplier_address" => "Adress",
|
||||
"supplier_email" => "E-mail",
|
||||
"supplier_location" => "Plats",
|
||||
"total" => "Totalt",
|
||||
"transaction_failed" => "Mottagande transaktioner misslyckades.",
|
||||
"unable_to_add_item" => "Artikel tillägg i Mottagning misslyckades.",
|
||||
"unsuccessfully_updated" => "Mottagning uppdateringen misslyckades.",
|
||||
"update" => "Uppdatera",
|
||||
];
|
||||
|
||||
@@ -1,149 +1,148 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'all' => "Alla",
|
||||
'authority' => "Auktoritet",
|
||||
'canceled' => "Avbrutna",
|
||||
'categories' => "Kategorier",
|
||||
'categories_summary_report' => "Sammanfattningsrapport för Kategorier",
|
||||
'category' => "Kategori",
|
||||
'code_canceled' => "CNL",
|
||||
'code_invoice' => "INV",
|
||||
'code_pos' => "POS",
|
||||
'code_quote' => "Q",
|
||||
'code_return' => "RET",
|
||||
'code_type' => "Typ",
|
||||
'code_work_order' => "A/O",
|
||||
'comments' => "Kommentarer",
|
||||
'commission' => "",
|
||||
'complete' => "Avslutade Försäljningar och Returer",
|
||||
'completed_sales' => "Avslutade Försäljningar",
|
||||
'confirm_delete' => "Är du säker på att du vill radera valda poster(na)?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa valda poster(na)?",
|
||||
'cost' => "Grossist",
|
||||
'cost_price' => "Grossistpris",
|
||||
'count' => "Antal",
|
||||
'customer' => "Kund",
|
||||
'customers' => "Kunder",
|
||||
'customers_summary_report' => "Sammanfattningsrapport för Kunder",
|
||||
'date' => "Datum",
|
||||
'date_range' => "Datumintervall",
|
||||
'description' => "Beskrivning",
|
||||
'detailed_receivings_report' => "Detaljerad mottagningsrapport",
|
||||
'detailed_receivings_report_input' => "",
|
||||
'detailed_reports' => "Detaljerade rapporter",
|
||||
'detailed_requisition_report' => "",
|
||||
'detailed_sales_report' => "Detaljerad rapport för transaktioner",
|
||||
'discount' => "Rabatt",
|
||||
'discount_fixed' => "Fast rabatt",
|
||||
'discount_percent' => "Rabatt i procent",
|
||||
'discount_type' => "Typ av rabatt",
|
||||
'discounts' => "Rabatter",
|
||||
'discounts_summary_report' => "Sammanfattningsrapport för rabatter",
|
||||
'earned' => "Intjänade poäng",
|
||||
'employee' => "Anställd",
|
||||
'employees' => "Anställda",
|
||||
'employees_summary_report' => "Sammanfattningsrapport för anställda",
|
||||
'expenses' => "Utgifter",
|
||||
'expenses_amount' => "Summa",
|
||||
'expenses_categories' => "Utgifter",
|
||||
'expenses_categories_summary_report' => "Sammanfattningsrapport för Kostnadskategorier",
|
||||
'expenses_category' => "Kategori",
|
||||
'expenses_payment_amount' => "",
|
||||
'expenses_tax_amount' => "Skatt",
|
||||
'expenses_total_amount' => "Totalsumma",
|
||||
'expenses_total_tax_amount' => "Summa skatt",
|
||||
'graphical_reports' => "Grafiska rapporter",
|
||||
'inventory' => "Lager",
|
||||
'inventory_low' => "Lågt lager",
|
||||
'inventory_low_report' => "Lågt lager rapport",
|
||||
'inventory_reports' => "Lagerrapporter",
|
||||
'inventory_summary' => "Lagersammanfattning",
|
||||
'inventory_summary_report' => "Rapport över inventering",
|
||||
'item' => "Artikel",
|
||||
'item_count' => "Filtrera artikelantalet",
|
||||
'item_name' => "Namn på artikel",
|
||||
'item_number' => "Streckkod",
|
||||
'items' => "Artiklar",
|
||||
'items_purchased' => "Inköpta artiklar",
|
||||
'items_received' => "Mottagna artiklar",
|
||||
'items_summary_report' => "Sammanfattningsrapport för artiklar",
|
||||
'jurisdiction' => "Jurisdiktion",
|
||||
'low_inventory' => "",
|
||||
'low_inventory_report' => "",
|
||||
'low_sell_quantity' => "Lågt sälj Antal",
|
||||
'more_than_zero' => "Mer än noll",
|
||||
'name' => "Namn",
|
||||
'no_reports_to_display' => "Inga artiklar att visa.",
|
||||
'payment_type' => "Typ av betalning",
|
||||
'payments' => "Betalningar",
|
||||
'payments_summary_report' => "Sammanfattningsrapport för betalningar",
|
||||
'profit' => "Vinst",
|
||||
'quantity' => "Kvantitet",
|
||||
'quantity_purchased' => "Antal inköpta",
|
||||
'quotes' => "Kvoter",
|
||||
'received_by' => "Togs emot av",
|
||||
'receiving_id' => "Mottagningsid",
|
||||
'receiving_type' => "Typ av mottagning",
|
||||
'receivings' => "Inkomster",
|
||||
'reorder_level' => "Nivå för ombeställning",
|
||||
'report' => "Rapport",
|
||||
'report_input' => "Rapportera inmatning",
|
||||
'reports' => "Rapporter",
|
||||
'requisition' => "",
|
||||
'requisition_by' => "",
|
||||
'requisition_id' => "",
|
||||
'requisition_item' => "",
|
||||
'requisition_item_quantity' => "",
|
||||
'requisition_related_item' => "",
|
||||
'requisition_related_item_total_quantity' => "",
|
||||
'requisition_related_item_unit_quantity' => "",
|
||||
'requisitions' => "Rekvisitioner",
|
||||
'returns' => "Returer",
|
||||
'revenue' => "Förtjänst",
|
||||
'sale_id' => "Trans. ID",
|
||||
'sale_type' => "Typ av transaktion",
|
||||
'sales' => "Transaktioner",
|
||||
'sales_amount' => "Transaktionsbelopp",
|
||||
'sales_summary_report' => "Sammanfattningsrapport för transaktioner",
|
||||
'sales_taxes' => "Moms",
|
||||
'sales_taxes_summary_report' => "Sammanfattningsrapport om försäljningsskatt",
|
||||
'serial_number' => "Serienummer",
|
||||
'service_charge' => "",
|
||||
'sold_by' => "Såldes av",
|
||||
'sold_items' => "",
|
||||
'sold_to' => "Såld till",
|
||||
'stock_location' => "Lagerplats",
|
||||
'sub_total_value' => "Delsumma",
|
||||
'subtotal' => "Delsumma",
|
||||
'summary_reports' => "Sammanfattande rapporter",
|
||||
'supplied_by' => "Levererades av",
|
||||
'supplier' => "Leverantör",
|
||||
'suppliers' => "Leverantörer",
|
||||
'suppliers_summary_report' => "Sammanfattningsrapport för leverantörer",
|
||||
'tax' => "Skatt",
|
||||
'tax_category' => "Skattekategori",
|
||||
'tax_name' => "Skattens namn",
|
||||
'tax_percent' => "Skatt i procent",
|
||||
'tax_rate' => "Skattesats",
|
||||
'taxes' => "Skatter",
|
||||
'taxes_summary_report' => "Sammanfattningsrapport för skatter",
|
||||
'total' => "Totalt",
|
||||
'total_inventory_value' => "Totalt lagervärde",
|
||||
'total_low_sell_quantity' => "Totalt lågt säljare antal",
|
||||
'total_quantity' => "Total kvantitet",
|
||||
'total_retail' => "Inventariets totala försäljningsvärde",
|
||||
'trans_amount' => "Transaktionsbelopp",
|
||||
'trans_due' => "Förfallo",
|
||||
'trans_group' => "Transaktionsgrupp",
|
||||
'trans_nopay_sales' => "Försäljning utan betalning",
|
||||
'trans_payments' => "Betalningar",
|
||||
'trans_refunded' => "Återbetalat",
|
||||
'trans_sales' => "Försäljning",
|
||||
'trans_type' => "Överföringstyp",
|
||||
'type' => "Typ",
|
||||
'unit_price' => "Försäljningspris",
|
||||
'used' => "Poäng som använts",
|
||||
'work_orders' => "Arbetsorders",
|
||||
'zero_and_less' => "Noll eller mindre",
|
||||
"all" => "Alla",
|
||||
"authority" => "Auktoritet",
|
||||
"canceled" => "Avbrutna",
|
||||
"categories" => "Kategorier",
|
||||
"categories_summary_report" => "Kategorier Sammanfattningsrapport",
|
||||
"category" => "Kategori",
|
||||
"code_canceled" => "Rapport avbrutna",
|
||||
"code_invoice" => "Fakt",
|
||||
"code_pos" => "POS",
|
||||
"code_quote" => "Q",
|
||||
"code_return" => "RET",
|
||||
"code_type" => "Typ",
|
||||
"code_work_order" => "Arb-ord.",
|
||||
"comments" => "Kommentarer",
|
||||
"commission" => "",
|
||||
"complete" => "Slutförda försäljningar o returer",
|
||||
"completed_sales" => "Slutförda försäljningar",
|
||||
"confirm_delete" => "Är du säker på att du vill radera valda poster?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa valda poster?",
|
||||
"cost" => "Grossist",
|
||||
"cost_price" => "Grossistpris",
|
||||
"count" => "Antal",
|
||||
"customer" => "Kund",
|
||||
"customers" => "Kunder",
|
||||
"customers_summary_report" => "Kunder sammanfattningsrapport",
|
||||
"date" => "Datum",
|
||||
"date_range" => "Datumintervall",
|
||||
"description" => "Beskrivning",
|
||||
"detailed_receivings_report" => "Detaljerad mottagningsrapport",
|
||||
"detailed_receivings_report_input" => "",
|
||||
"detailed_reports" => "Detaljerade rapporter",
|
||||
"detailed_requisition_report" => "",
|
||||
"detailed_sales_report" => "Detaljerad transaktionsrapport",
|
||||
"discount" => "Rabbat",
|
||||
"discount_fixed" => "Fast rabatt",
|
||||
"discount_percent" => "Rabatt %",
|
||||
"discount_type" => "Rabattyp",
|
||||
"discounts" => "Rabatter",
|
||||
"discounts_summary_report" => "Rabatter Sammanfattningsrapport",
|
||||
"earned" => "Poäng intjänade",
|
||||
"employee" => "Anställd",
|
||||
"employees" => "Anställda",
|
||||
"employees_summary_report" => "Medarbetare Sammanfattningsrapport",
|
||||
"expenses" => "Kostnader",
|
||||
"expenses_amount" => "Summa",
|
||||
"expenses_categories" => "Kostnader",
|
||||
"expenses_categories_summary_report" => "Kostnadskategorier Sammanfattningsrapport",
|
||||
"expenses_category" => "Kategori",
|
||||
"expenses_payment_amount" => "",
|
||||
"expenses_tax_amount" => "Skatt",
|
||||
"expenses_total_amount" => "Total Skatt",
|
||||
"expenses_total_tax_amount" => "Summa skatt",
|
||||
"graphical_reports" => "Grafiska rapporter",
|
||||
"inventory" => "Lager",
|
||||
"inventory_low" => "Lågt lager",
|
||||
"inventory_low_report" => "Lågt lager rapport",
|
||||
"inventory_reports" => "Lagerrapport",
|
||||
"inventory_summary" => "Inventaröversikt",
|
||||
"inventory_summary_report" => "Rapport över inventering",
|
||||
"item" => "Artikel",
|
||||
"item_count" => "Filtrera artikelantalet",
|
||||
"item_name" => "Artikelnamn",
|
||||
"item_number" => "Streckkod",
|
||||
"items" => "Artiklar",
|
||||
"items_purchased" => "Artiklar inköpta",
|
||||
"items_received" => "Artiklar mottagna",
|
||||
"items_summary_report" => "Sammanfattning av artiklar",
|
||||
"jurisdiction" => "Jurisdiktion",
|
||||
"low_inventory" => "",
|
||||
"low_inventory_report" => "",
|
||||
"low_sell_quantity" => "Lågt sälj Antal",
|
||||
"more_than_zero" => "Mer än noll",
|
||||
"name" => "Namn",
|
||||
"no_reports_to_display" => "Inga artiklar att visa.",
|
||||
"payment_type" => "Betalningstyp",
|
||||
"payments" => "Betalningar",
|
||||
"payments_summary_report" => "Betalningsöversikt Rapport",
|
||||
"profit" => "Vinst",
|
||||
"quantity" => "Kvantitet",
|
||||
"quantity_purchased" => "Antal inköpta",
|
||||
"quotes" => "Quota",
|
||||
"received_by" => "Mottagen av",
|
||||
"receiving_id" => "Mottagningsid",
|
||||
"receiving_type" => "Mottagningstyp",
|
||||
"receivings" => "Mottagningar",
|
||||
"reorder_level" => "Återbeställningsnivå",
|
||||
"report" => "Rapport",
|
||||
"report_input" => "Rapport input",
|
||||
"reports" => "Rapporter",
|
||||
"requisition" => "",
|
||||
"requisition_by" => "",
|
||||
"requisition_id" => "",
|
||||
"requisition_item" => "",
|
||||
"requisition_item_quantity" => "",
|
||||
"requisition_related_item" => "",
|
||||
"requisition_related_item_total_quantity" => "",
|
||||
"requisition_related_item_unit_quantity" => "",
|
||||
"requisitions" => "Rekvisitioner",
|
||||
"returns" => "Returer",
|
||||
"revenue" => "Inkomst",
|
||||
"sale_id" => "Trans. ID",
|
||||
"sale_type" => "Överföringstyp",
|
||||
"sales" => "Överföringar",
|
||||
"sales_amount" => "Transaktionsbelopp",
|
||||
"sales_summary_report" => "Sammanfattningsrapport för transaktioner",
|
||||
"sales_taxes" => "Moms",
|
||||
"sales_taxes_summary_report" => "Sammanfattningsrapport om moms",
|
||||
"serial_number" => "Serienummer",
|
||||
"service_charge" => "",
|
||||
"sold_by" => "Såld av",
|
||||
"sold_items" => "",
|
||||
"sold_to" => "Såld till",
|
||||
"stock_location" => "Lagerplats",
|
||||
"sub_total_value" => "Delsumma",
|
||||
"subtotal" => "Delsumma",
|
||||
"summary_reports" => "Sammanfattande rapporter",
|
||||
"supplied_by" => "Levererad av",
|
||||
"supplier" => "Leverantör",
|
||||
"suppliers" => "Leverantörer",
|
||||
"suppliers_summary_report" => "Leverantörs Sammanfattningsrapport",
|
||||
"tax" => "Skatt",
|
||||
"tax_category" => "Skattekategori",
|
||||
"tax_name" => "",
|
||||
"tax_percent" => "Skatt %",
|
||||
"tax_rate" => "Skattesats",
|
||||
"taxes" => "Skatter",
|
||||
"taxes_summary_report" => "Sammanfattningsrapport för skatter",
|
||||
"total" => "Totalt",
|
||||
"total_inventory_value" => "Totalt lagervärde",
|
||||
"total_low_sell_quantity" => "Totalt lågt säljare antal",
|
||||
"total_quantity" => "Total Quantity",
|
||||
"total_retail" => "Total Inv. Retail Value",
|
||||
"trans_amount" => "Transaktionsbelopp",
|
||||
"trans_due" => "Förfallo",
|
||||
"trans_group" => "Transaktionsgrupp",
|
||||
"trans_nopay_sales" => "Försäljning utan betalning",
|
||||
"trans_payments" => "Betalningar",
|
||||
"trans_refunded" => "Återbetalat",
|
||||
"trans_sales" => "Försäljning",
|
||||
"trans_type" => "Överföringstyp",
|
||||
"type" => "Typ",
|
||||
"unit_price" => "Försäljningspris",
|
||||
"used" => "Poäng som använts",
|
||||
"work_orders" => "Arbetsorders",
|
||||
"zero_and_less" => "Noll eller mindre",
|
||||
];
|
||||
|
||||
@@ -1,226 +1,224 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'customers_available_points' => "Tillgängliga poäng",
|
||||
'rewards_package' => "Belöning",
|
||||
'rewards_remaining_balance' => "Beloppets återstående värde är ",
|
||||
'account_number' => "Konto #",
|
||||
'add_payment' => "Lägg till betalning",
|
||||
'amount_due' => "Belopp",
|
||||
'amount_tendered' => "Upplagt belopp",
|
||||
'authorized_signature' => "Auktoriserad signatur",
|
||||
'cancel_sale' => "Avbryt",
|
||||
'cash' => "Kontant",
|
||||
'cash_1' => "",
|
||||
'cash_2' => "",
|
||||
'cash_3' => "",
|
||||
'cash_4' => "",
|
||||
'cash_adjustment' => "Kontantjustering",
|
||||
'cash_deposit' => "Kontant insättning",
|
||||
'cash_filter' => "Kontant",
|
||||
'change_due' => "Ändra förfallna",
|
||||
'change_price' => "Ändra försäljningspris",
|
||||
'check' => "Kontrollera",
|
||||
'check_balance' => "Kontrollera resten",
|
||||
'check_filter' => "Kontrollera",
|
||||
'close' => "",
|
||||
'comment' => "Kommentar",
|
||||
'comments' => "Kommentarer",
|
||||
'company_name' => "",
|
||||
'complete' => "",
|
||||
'complete_sale' => "Slutför",
|
||||
'confirm_cancel_sale' => "Är du säker på att du vill rensa den här försäljningen? Alla objekt kommer att rensas.",
|
||||
'confirm_delete' => "Är du säker på att du vill radera de valda försäljningarna?",
|
||||
'confirm_restore' => "Är du säker på att du vill återställa den valda försäljningen?",
|
||||
'credit' => "Kreditkort",
|
||||
'credit_deposit' => "Kreditkort",
|
||||
'credit_filter' => "Kreditkort",
|
||||
'current_table' => "",
|
||||
'customer' => "Namn",
|
||||
'customer_address' => "Adress",
|
||||
'customer_discount' => "Rabatt",
|
||||
'customer_email' => "E-mail",
|
||||
'customer_location' => "Plats",
|
||||
'customer_mailchimp_status' => "MailChimp status",
|
||||
'customer_optional' => "(Krävs för förfallna betalningar)",
|
||||
'customer_required' => "(Nödvändig)",
|
||||
'customer_total' => "Totalt",
|
||||
'customer_total_spent' => "",
|
||||
'daily_sales' => "",
|
||||
'date' => "Försäljningsdag",
|
||||
'date_range' => "Datumintervall",
|
||||
'date_required' => "Ett korrekt datum måste anges.",
|
||||
'date_type' => "Datum är ett obligatoriskt fält.",
|
||||
'debit' => "Kontokort",
|
||||
'debit_filter' => "",
|
||||
'delete' => "Tillåt radera",
|
||||
'delete_confirmation' => "Är du säker på att du vill radera denna försäljning? Den här åtgärden kan inte ångras.",
|
||||
'delete_entire_sale' => "Ta bort hela försäljningen",
|
||||
'delete_successful' => "Försäljningen raderades.",
|
||||
'delete_unsuccessful' => "Försäljningsradering misslyckades.",
|
||||
'description_abbrv' => "Beskr.",
|
||||
'discard' => "Kassera",
|
||||
'discard_quote' => "",
|
||||
'discount' => "Rabatt %",
|
||||
'discount_included' => "% Rabatt",
|
||||
'discount_short' => "%",
|
||||
'due' => "skuld",
|
||||
'due_filter' => "skuld",
|
||||
'edit' => "Ändra",
|
||||
'edit_item' => "Ändra Artikel",
|
||||
'edit_sale' => "Ändra försäljning",
|
||||
'email_receipt' => "E-mail kvitto",
|
||||
'employee' => "Anställd",
|
||||
'entry' => "Post",
|
||||
'error_editing_item' => "Ändra artikel misslyckades",
|
||||
'find_or_scan_item' => "Hitta eller skanna artikel",
|
||||
'find_or_scan_item_or_receipt' => "Hitta eller skanna artikel eller kvitto",
|
||||
'giftcard' => "Presentkort",
|
||||
'giftcard_balance' => "Presentkortsbalans",
|
||||
'giftcard_filter' => "",
|
||||
'giftcard_number' => "Presentkortsnummer",
|
||||
'group_by_category' => "Gruppera per kategori",
|
||||
'group_by_type' => "Gruppera per typ",
|
||||
'hsn' => "HSN",
|
||||
'id' => "Försäljnings-ID",
|
||||
'include_prices' => "Inkludera priser?",
|
||||
'invoice' => "Faktura",
|
||||
'invoice_confirm' => "Denna faktura skickas till",
|
||||
'invoice_enable' => "Fakturanummer",
|
||||
'invoice_filter' => "Fakturor",
|
||||
'invoice_no_email' => "Den här kunden har ingen giltig e-postadress.",
|
||||
'invoice_number' => "Faktura #",
|
||||
'invoice_number_duplicate' => "Fakturanummer måste vara unika.",
|
||||
'invoice_sent' => "Faktura skickad till",
|
||||
'invoice_total' => "Faktura totalt",
|
||||
'invoice_type_custom_invoice' => "Anpassad faktura (custom_invoice.php)",
|
||||
'invoice_type_custom_tax_invoice' => "Anpassad momsfaktura (custom_tax_invoice.php)",
|
||||
'invoice_type_invoice' => "Faktura (faktura.php",
|
||||
'invoice_type_tax_invoice' => "Skattefaktura (tax_invoice.php)",
|
||||
'invoice_unsent' => "Faktura misslyckades med att skickas till",
|
||||
'invoice_update' => "Omräkning",
|
||||
'item_insufficient_of_stock' => "Artikeln har otillräckligt lager.",
|
||||
'item_name' => "Namn på artikel",
|
||||
'item_number' => "Artikel #",
|
||||
'item_out_of_stock' => "Artikel är slut på lager.",
|
||||
'key_browser' => "Hjälpfulla genvägar",
|
||||
'key_cancel' => "Avbryter nuvarande Kvot/Faktura/Försäljning",
|
||||
'key_customer_search' => "Kundsökning",
|
||||
'key_finish_quote' => "Finish Quote/Invoice witdout payment",
|
||||
'key_finish_sale' => "Lägg till betalning och fullständig faktura/försäljning",
|
||||
'key_full' => "Öppna i fullskärmsläge",
|
||||
'key_function' => "Function",
|
||||
'key_help' => "Genvägar",
|
||||
'key_help_modal' => "Öppna fönstret för genvägar",
|
||||
'key_in' => "Zooma in",
|
||||
'key_item_search' => "Sök efter produkt",
|
||||
'key_out' => "Zooma ut",
|
||||
'key_payment' => "Lägg till betalning",
|
||||
'key_print' => "Skriv ut aktuell sida",
|
||||
'key_restore' => "Återställ originalskärmen/Zoomningen",
|
||||
'key_search' => "Sök i rapporttabeller",
|
||||
'key_suspend' => "Skjut upp pågående försäljning",
|
||||
'key_suspended' => "Visa uppskjutna försäljningar",
|
||||
'key_system' => "System-genvägar",
|
||||
'key_tendered' => "Redigera det remitterade beloppet",
|
||||
'key_title' => "Tangentbordsgenvägar för försäljning",
|
||||
'mc' => "",
|
||||
'mode' => "Registrera läge",
|
||||
'must_enter_numeric' => "Belopp som anslås måste vara ett nummer.",
|
||||
'must_enter_numeric_giftcard' => "Presentkortets nummer måste vara ett nummer.",
|
||||
'new_customer' => "Ny kund",
|
||||
'new_item' => "Ny artikel",
|
||||
'no_description' => "Inget",
|
||||
'no_filter' => "Alla",
|
||||
'no_items_in_cart' => "Det finns inga varor i kundvagnen.",
|
||||
'no_sales_to_display' => "Ingen försäljning att visa.",
|
||||
'none_selected' => "Du har inte valt någon Försäljning (ar) att radera.",
|
||||
'nontaxed_ind' => " ",
|
||||
'not_authorized' => "Den här åtgärden är inte tillåten.",
|
||||
'one_or_multiple' => "Försäljning(ar)",
|
||||
'payment' => "Betalningstyp",
|
||||
'payment_amount' => "Belopp",
|
||||
'payment_not_cover_total' => "Betalningsbeloppet måste vara större än eller lika med Totalt.",
|
||||
'payment_type' => "Typ",
|
||||
'payments' => "",
|
||||
'payments_total' => "Betalningar Totalt",
|
||||
'price' => "Pris",
|
||||
'print_after_sale' => "Skriv ut efter försäljning",
|
||||
'quantity' => "Antal",
|
||||
'quantity_less_than_reorder_level' => "Varning: Önskat antal är under påfyllnadsnivå för den aktuella produkten.",
|
||||
'quantity_less_than_zero' => "Varning: Önskat antal är otillräckligt. Du kan fortfarande bearbeta försäljningen, men granska din inventering.",
|
||||
'quantity_of_items' => "Antal {0} objekt",
|
||||
'quote' => "Kvot",
|
||||
'quote_number' => "Quote nummer",
|
||||
'quote_number_duplicate' => "Quote nummer måste vara unikt.",
|
||||
'quote_sent' => "Quote skickat till",
|
||||
'quote_unsent' => "Quote misslyckades att skickas till",
|
||||
'receipt' => "Kvitto",
|
||||
'receipt_no_email' => "Denna kund har ingen giltig e-postadress.",
|
||||
'receipt_number' => "Försäljning #",
|
||||
'receipt_sent' => "Kvitto skickat till",
|
||||
'receipt_unsent' => "Kvittot misslyckades med att skickas till",
|
||||
'refund' => "Återbetalningstyp",
|
||||
'register' => "Försäljningsregister",
|
||||
'remove_customer' => "Ta bort kund",
|
||||
'remove_discount' => "",
|
||||
'return' => "Retur",
|
||||
'rewards' => "Belöningspoäng",
|
||||
'rewards_balance' => "Belöningspoäng Balans",
|
||||
'sale' => "Försäljning",
|
||||
'sale_by_invoice' => "Försäljning via faktura",
|
||||
'sale_for_customer' => "Kund:",
|
||||
'sale_time' => "Tid",
|
||||
'sales_tax' => "Försäljnings skatt",
|
||||
'sales_total' => "",
|
||||
'select_customer' => "Välj kund (valfritt)",
|
||||
'send_invoice' => "Skicka faktura",
|
||||
'send_quote' => "Skicka Quote",
|
||||
'send_receipt' => "Skicka kvitto",
|
||||
'send_work_order' => "Skicka arbetsorder",
|
||||
'serial' => "Serie",
|
||||
'service_charge' => "",
|
||||
'show_due' => "",
|
||||
'show_invoice' => "Visa faktura",
|
||||
'show_receipt' => "Visa kvitto",
|
||||
'start_typing_customer_name' => "Börja skriva kunduppgifter ...",
|
||||
'start_typing_item_name' => "Börja skriva typnamn eller skanna streckkod ...",
|
||||
'stock' => "Lager",
|
||||
'stock_location' => "Lagerplats",
|
||||
'sub_total' => "Delsumma",
|
||||
'successfully_deleted' => "Du har tagit bort",
|
||||
'successfully_restored' => "Du har lyckats återställa",
|
||||
'successfully_suspended_sale' => "Försäljning avbruten.",
|
||||
'successfully_updated' => "Försäljningsuppdatering lyckades.",
|
||||
'suspend_sale' => "Avbruten",
|
||||
'suspended_doc_id' => "Dokument",
|
||||
'suspended_sale_id' => "ID",
|
||||
'suspended_sales' => "Avbruten",
|
||||
'table' => "Tabell",
|
||||
'takings' => "Daglig försäljning",
|
||||
'tax' => "Skatt",
|
||||
'tax_id' => "Skatteid",
|
||||
'tax_invoice' => "Skatte faktura",
|
||||
'tax_percent' => "Skattesats %",
|
||||
'taxed_ind' => "T",
|
||||
'total' => "Totalt",
|
||||
'total_tax_exclusive' => "Skatt exkluderad",
|
||||
'transaction_failed' => "Försäljningstransaktionen misslyckades.",
|
||||
'unable_to_add_item' => "Artikel tillägg till försäljning misslyckades",
|
||||
'unsuccessfully_deleted' => "Försäljning (ar) radering misslyckades.",
|
||||
'unsuccessfully_restored' => "Återställningen av försäljning (ar) misslyckades.",
|
||||
'unsuccessfully_suspended_sale' => "Försäljningsuppehåll misslyckades.",
|
||||
'unsuccessfully_updated' => "Försäljnings uppdatering misslyckades.",
|
||||
'unsuspend' => "Återuppta",
|
||||
'unsuspend_and_delete' => "Verkställ",
|
||||
'update' => "Uppdatera",
|
||||
'upi' => "UPI",
|
||||
'visa' => "",
|
||||
'wholesale' => "",
|
||||
'work_order' => "Arbetsorder",
|
||||
'work_order_number' => "Arbetsorder nummer",
|
||||
'work_order_number_duplicate' => "Arbetsorder nummer måste vara unikt.",
|
||||
'work_order_sent' => "Arbetsorder skickad till",
|
||||
'work_order_unsent' => "Arbetsorder gick ej att skicka till",
|
||||
'selected_customer' => "Vald kund",
|
||||
"customers_available_points" => "Tillgängliga poäng",
|
||||
"rewards_package" => "Belöning",
|
||||
"rewards_remaining_balance" => "Beloppets återstående värde är ",
|
||||
"account_number" => "Konto #",
|
||||
"add_payment" => "Lägg till betalning",
|
||||
"amount_due" => "Belopp",
|
||||
"amount_tendered" => "Upplagt belopp",
|
||||
"authorized_signature" => "Auktoriserad signatur",
|
||||
"cancel_sale" => "Avbryt",
|
||||
"cash" => "Kontant",
|
||||
"cash_1" => "",
|
||||
"cash_2" => "",
|
||||
"cash_3" => "",
|
||||
"cash_4" => "",
|
||||
"cash_adjustment" => "Kontantjustering",
|
||||
"cash_deposit" => "Kontant insättning",
|
||||
"cash_filter" => "Kontant",
|
||||
"change_due" => "Ändra förfallna",
|
||||
"change_price" => "Ändra försäljningspris",
|
||||
"check" => "Check",
|
||||
"check_balance" => "Kontrollera resten",
|
||||
"check_filter" => "Check",
|
||||
"close" => "",
|
||||
"comment" => "Kommentar",
|
||||
"comments" => "Kommentarer",
|
||||
"company_name" => "",
|
||||
"complete" => "",
|
||||
"complete_sale" => "Slutför",
|
||||
"confirm_cancel_sale" => "Är du säker på att du vill rensa den här försäljningen? Alla objekt kommer att rensas.",
|
||||
"confirm_delete" => "Är du säker på att du vill radera de valda försäljningarna?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa den valda försäljningen?",
|
||||
"credit" => "Kreditkort",
|
||||
"credit_deposit" => "Kreditkort",
|
||||
"credit_filter" => "Kreditkort",
|
||||
"current_table" => "",
|
||||
"customer" => "Namn",
|
||||
"customer_address" => "Adress",
|
||||
"customer_discount" => "Rabatt",
|
||||
"customer_email" => "E-mail",
|
||||
"customer_location" => "Plats",
|
||||
"customer_mailchimp_status" => "MailChimp status",
|
||||
"customer_optional" => "(Krävs för förfallna betalningar)",
|
||||
"customer_required" => "(Nödvändig)",
|
||||
"customer_total" => "Totalt",
|
||||
"customer_total_spent" => "",
|
||||
"daily_sales" => "",
|
||||
"date" => "Försäljningsdag",
|
||||
"date_range" => "Datumintervall",
|
||||
"date_required" => "Ett korrekt datum måste anges.",
|
||||
"date_type" => "Datum är ett obligatoriskt fält.",
|
||||
"debit" => "Kontokort",
|
||||
"debit_filter" => "",
|
||||
"delete" => "Tillåt radera",
|
||||
"delete_confirmation" => "Är du säker på att du vill radera denna försäljning? Den här åtgärden kan inte ångras.",
|
||||
"delete_entire_sale" => "Ta bort hela försäljningen",
|
||||
"delete_successful" => "Försäljningen raderades.",
|
||||
"delete_unsuccessful" => "Försäljningsradering misslyckades.",
|
||||
"description_abbrv" => "Desc.",
|
||||
"discard" => "Kassera",
|
||||
"discard_quote" => "",
|
||||
"discount" => "Rabatt %",
|
||||
"discount_included" => "% Rabatt",
|
||||
"discount_short" => "%",
|
||||
"due" => "skuld",
|
||||
"due_filter" => "skuld",
|
||||
"edit" => "Ändra",
|
||||
"edit_item" => "Ändra Artikel",
|
||||
"edit_sale" => "Ändra försäljning",
|
||||
"email_receipt" => "E-mail kvitto",
|
||||
"employee" => "Anställd",
|
||||
"entry" => "Post",
|
||||
"error_editing_item" => "Ändra artikel misslyckades",
|
||||
"find_or_scan_item" => "Hitta eller skanna artikel",
|
||||
"find_or_scan_item_or_receipt" => "Hitta eller skanna artikel eller kvitto",
|
||||
"giftcard" => "Presentkort",
|
||||
"giftcard_balance" => "Presentkortsbalans",
|
||||
"giftcard_filter" => "",
|
||||
"giftcard_number" => "Presentkortsnummer",
|
||||
"group_by_category" => "Gruppera per kategori",
|
||||
"group_by_type" => "Gruppera per typ",
|
||||
"hsn" => "HSN",
|
||||
"id" => "Försäljnings-ID",
|
||||
"include_prices" => "Inkludera priser?",
|
||||
"invoice" => "Faktura",
|
||||
"invoice_confirm" => "Denna faktura skickas till",
|
||||
"invoice_enable" => "Skapa Faktura",
|
||||
"invoice_filter" => "Fakturor",
|
||||
"invoice_no_email" => "Den här kunden har ingen giltig e-postadress.",
|
||||
"invoice_number" => "Faktura #",
|
||||
"invoice_number_duplicate" => "Fakturanummer måste vara unika.",
|
||||
"invoice_sent" => "Faktura skickad till",
|
||||
"invoice_total" => "Faktura totalt",
|
||||
"invoice_type_custom_invoice" => "Anpassad faktura (custom_invoice.php)",
|
||||
"invoice_type_custom_tax_invoice" => "Anpassad momsfaktura (custom_tax_invoice.php)",
|
||||
"invoice_type_invoice" => "Faktura (faktura.php",
|
||||
"invoice_type_tax_invoice" => "Skattefaktura (tax_invoice.php)",
|
||||
"invoice_unsent" => "Faktura misslyckades med att skickas till",
|
||||
"invoice_update" => "Omräkning",
|
||||
"item_insufficient_of_stock" => "Artikeln har otillräckligt lager.",
|
||||
"item_name" => "Artikelnamn",
|
||||
"item_number" => "Artikel #",
|
||||
"item_out_of_stock" => "Artikel är slut på lager.",
|
||||
"key_browser" => "",
|
||||
"key_cancel" => "Cancels Current Quote/Invoice/Sale",
|
||||
"key_customer_search" => "Customer Search",
|
||||
"key_finish_quote" => "Finish Quote/Invoice witdout payment",
|
||||
"key_finish_sale" => "Add Payment and Complete Invoice/Sale",
|
||||
"key_full" => "",
|
||||
"key_function" => "Function",
|
||||
"key_help" => "Shortcuts",
|
||||
"key_help_modal" => "Open Shortcuts Window",
|
||||
"key_in" => "",
|
||||
"key_item_search" => "Item Search",
|
||||
"key_out" => "",
|
||||
"key_payment" => "Add Payment",
|
||||
"key_print" => "",
|
||||
"key_restore" => "",
|
||||
"key_search" => "",
|
||||
"key_suspend" => "Suspend Current Sale",
|
||||
"key_suspended" => "Show Suspended Sales",
|
||||
"key_system" => "",
|
||||
"key_tendered" => "Edit Amount Tendered",
|
||||
"key_title" => "Sales Keyboard Shortcuts",
|
||||
"mc" => "",
|
||||
"mode" => "Registrera läge",
|
||||
"must_enter_numeric" => "Belopp som anslås måste vara ett nummer.",
|
||||
"must_enter_numeric_giftcard" => "Presentkortets nummer måste vara ett nummer.",
|
||||
"new_customer" => "Ny kund",
|
||||
"new_item" => "Ny artikel",
|
||||
"no_description" => "Inget",
|
||||
"no_filter" => "Alla",
|
||||
"no_items_in_cart" => "Det finns inga varor i kundvagnen.",
|
||||
"no_sales_to_display" => "Ingen försäljning att visa.",
|
||||
"none_selected" => "Du har inte valt någon Försäljning (ar) att radera.",
|
||||
"nontaxed_ind" => "",
|
||||
"not_authorized" => "Den här åtgärden är inte tillåten.",
|
||||
"one_or_multiple" => "Försäljning(ar)",
|
||||
"payment" => "Betalningstyp",
|
||||
"payment_amount" => "Belopp",
|
||||
"payment_not_cover_total" => "Betalningsbeloppet måste vara större än eller lika med Totalt.",
|
||||
"payment_type" => "Typ",
|
||||
"payments" => "",
|
||||
"payments_total" => "Betalningar Totalt",
|
||||
"price" => "Pris",
|
||||
"print_after_sale" => "Skriv ut efter försäljning",
|
||||
"quantity" => "Antal",
|
||||
"quantity_less_than_reorder_level" => "Varning: Önskat antal är under påfyllnadsnivå för den aktuella produkten.",
|
||||
"quantity_less_than_zero" => "Varning: Önskat antal är otillräckligt. Du kan fortfarande bearbeta försäljningen, men granska din inventering.",
|
||||
"quantity_of_items" => "Antal {0} objekt",
|
||||
"quote" => "Quote",
|
||||
"quote_number" => "Quote nummer",
|
||||
"quote_number_duplicate" => "Quote nummer måste vara unikt.",
|
||||
"quote_sent" => "Quote skickat till",
|
||||
"quote_unsent" => "Quote misslyckades att skickas till",
|
||||
"receipt" => "Kvitto",
|
||||
"receipt_no_email" => "Denna kund har ingen giltig e-postadress.",
|
||||
"receipt_number" => "Försäljning #",
|
||||
"receipt_sent" => "Kvitto skickat till",
|
||||
"receipt_unsent" => "Kvittot misslyckades med att skickas till",
|
||||
"refund" => "Återbetalningstyp",
|
||||
"register" => "Försäljningsregister",
|
||||
"remove_customer" => "Ta bort kund",
|
||||
"remove_discount" => "",
|
||||
"return" => "Retur",
|
||||
"rewards" => "Belöningspoäng",
|
||||
"rewards_balance" => "Belöningspoäng Balans",
|
||||
"sale" => "Försäljning",
|
||||
"sale_by_invoice" => "Försäljning via faktura",
|
||||
"sale_for_customer" => "Kund:",
|
||||
"sale_time" => "Tid",
|
||||
"sales_tax" => "Försäljnings skatt",
|
||||
"sales_total" => "",
|
||||
"select_customer" => "Välj kund (valfritt)",
|
||||
"send_invoice" => "Skicka faktura",
|
||||
"send_quote" => "Skicka Quote",
|
||||
"send_receipt" => "Skicka kvitto",
|
||||
"send_work_order" => "Skicka arbetsorder",
|
||||
"serial" => "Serie",
|
||||
"service_charge" => "",
|
||||
"show_due" => "",
|
||||
"show_invoice" => "Visa faktura",
|
||||
"show_receipt" => "Visa kvitto",
|
||||
"start_typing_customer_name" => "Börja skriva kunduppgifter ...",
|
||||
"start_typing_item_name" => "Börja skriva typnamn eller skanna streckkod ...",
|
||||
"stock" => "Lager",
|
||||
"stock_location" => "Lagerplats",
|
||||
"sub_total" => "Delsumma",
|
||||
"successfully_deleted" => "Du har tagit bort",
|
||||
"successfully_restored" => "Du har lyckats återställa",
|
||||
"successfully_suspended_sale" => "Försäljning avbruten.",
|
||||
"successfully_updated" => "Försäljningsuppdatering lyckades.",
|
||||
"suspend_sale" => "Avbruten",
|
||||
"suspended_doc_id" => "Dokument",
|
||||
"suspended_sale_id" => "ID",
|
||||
"suspended_sales" => "Avbruten",
|
||||
"table" => "Tabell",
|
||||
"takings" => "Daglig försäljning",
|
||||
"tax" => "Skatt",
|
||||
"tax_id" => "Skatteid",
|
||||
"tax_invoice" => "Skatte faktura",
|
||||
"tax_percent" => "Skattesats %",
|
||||
"taxed_ind" => "",
|
||||
"total" => "Totalt",
|
||||
"total_tax_exclusive" => "Skatt exkluderad",
|
||||
"transaction_failed" => "Försäljningstransaktionen misslyckades.",
|
||||
"unable_to_add_item" => "Artikel tillägg till försäljning misslyckades",
|
||||
"unsuccessfully_deleted" => "Försäljning (ar) radering misslyckades.",
|
||||
"unsuccessfully_restored" => "Återställningen av försäljning (ar) misslyckades.",
|
||||
"unsuccessfully_suspended_sale" => "Försäljningsuppehåll misslyckades.",
|
||||
"unsuccessfully_updated" => "Försäljnings uppdatering misslyckades.",
|
||||
"unsuspend" => "Återuppta",
|
||||
"unsuspend_and_delete" => "Verkställ",
|
||||
"update" => "Uppdatera",
|
||||
"upi" => "UPI",
|
||||
"visa" => "",
|
||||
"wholesale" => "",
|
||||
"work_order" => "Arbetsorder",
|
||||
"work_order_number" => "Arbetsorder nummer",
|
||||
"work_order_number_duplicate" => "Arbetsorder nummer måste vara unikt.",
|
||||
"work_order_sent" => "Arbetsorder skickad till",
|
||||
"work_order_unsent" => "Arbetsorder gick ej att skicka till",
|
||||
];
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'account_number' => "Kontonummer",
|
||||
'agency_name' => "Namn på agentur",
|
||||
'cannot_be_deleted' => "Kunde inte radera valda leverantör (er). En eller flera har försäljning.",
|
||||
'category' => "Kategori",
|
||||
'company_name' => "Företagsnamn",
|
||||
'company_name_required' => "Företagsnamn är ett obligatoriskt fält.",
|
||||
'confirm_delete' => "Är du säker på att du vill radera den valda Leverantören?",
|
||||
'confirm_restore' => "Är du säker på att du vill radera den valda Leverantören?",
|
||||
'cost' => "Kostnad leverantör",
|
||||
'error_adding_updating' => "Leverantörsuppdatering eller tillägg misslyckades.",
|
||||
'goods' => "Varuleverantör",
|
||||
'new' => "Ny Leverantör",
|
||||
'none_selected' => "Du har inte valt leverantör (er) att radera.",
|
||||
'one_or_multiple' => "Leverantörer",
|
||||
'successful_adding' => "Du har lagt till Leverantör",
|
||||
'successful_deleted' => "Du har lagt till leverantör",
|
||||
'successful_updating' => "Du har lagt till leverantör",
|
||||
'supplier' => "Leverantör",
|
||||
'supplier_id' => "Id",
|
||||
'tax_id' => "Skatteid",
|
||||
'update' => "Uppdatera leverantör",
|
||||
"account_number" => "Kontonummer",
|
||||
"agency_name" => "Agentur",
|
||||
"cannot_be_deleted" => "Kunde inte radera valda leverantör (er). En eller flera har försäljning.",
|
||||
"category" => "Kategori",
|
||||
"company_name" => "Företagsnamn",
|
||||
"company_name_required" => "Företagsnamn är ett obligatoriskt fält.",
|
||||
"confirm_delete" => "Är du säker på att du vill radera den valda Leverantören?",
|
||||
"confirm_restore" => "Är du säker på att du vill radera den valda Leverantören?",
|
||||
"cost" => "Kostnad leverantör",
|
||||
"error_adding_updating" => "Leverantörsuppdatering eller tillägg misslyckades.",
|
||||
"goods" => "Varuleverantör",
|
||||
"new" => "Ny Leverantör",
|
||||
"none_selected" => "Du har inte valt leverantör (er) att radera.",
|
||||
"one_or_multiple" => "Leverantörer",
|
||||
"successful_adding" => "Du har lagt till Leverantör",
|
||||
"successful_deleted" => "Du har lagt till leverantör",
|
||||
"successful_updating" => "Du har lagt till leverantör",
|
||||
"supplier" => "Leverantör",
|
||||
"supplier_id" => "Id",
|
||||
"tax_id" => "Skatteid",
|
||||
"update" => "Uppdatera leverantör",
|
||||
];
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'gcaptcha' => "ฉันไม่ใช่หุ่นยนต์นะ",
|
||||
'go' => "เข้าสู่ระบบ",
|
||||
'invalid_gcaptcha' => "กรุณาแสดงตัวตนว่าคุณไม่ใช่หุ่นยนต์",
|
||||
'invalid_installation' => "การติดตั้งไม่ถูกต้องตรวจสอบการตั้งค่าที่ไฟล์ php.ini ของคุณ",
|
||||
'invalid_username_and_password' => "ชื่อผู้ใช้งานและ/หรือรหัสผ่านเข้าระบบไม่ถูกต้อง",
|
||||
'login' => "ลงชื่อเข้าใช้",
|
||||
'logout' => "ออกจากระบบ",
|
||||
'migration_needed' => "การย้ายฐานข้อมูลไปยัง {0} จะเริ่มต้นหลังจากเข้าสู่ระบบ",
|
||||
'password' => "รหัสผ่าน",
|
||||
'required_username' => "จำเป็นต้องระบุชื่อผู้ใช้งาน",
|
||||
'username' => "ชื่อผู้ใช้",
|
||||
'welcome' => "ยินดีต้อนรับสู่ {0}!",
|
||||
"gcaptcha" => "ฉันไม่ใช่หุ่นยนต์นะ",
|
||||
"go" => "เข้าสู่ระบบ",
|
||||
"invalid_gcaptcha" => "กรุณาแสดงตัวตนว่าคุณไม่ใช่หุ่นยนต์",
|
||||
"invalid_installation" => "การติดตั้งไม่ถูกต้องตรวจสอบการตั้งค่าที่ไฟล์ php.ini ของคุณ",
|
||||
"invalid_username_and_password" => "ชื่อผู้ใช้งานและ/หรือรหัสผ่านเข้าระบบไม่ถูกต้อง",
|
||||
"login" => "ลงชื่อเข้าใช้",
|
||||
"logout" => "ออกจากระบบ",
|
||||
"migration_needed" => "การย้ายฐานข้อมูลไปยัง {0} จะเริ่มต้นหลังจากเข้าสู่ระบบ",
|
||||
"password" => "รหัสผ่าน",
|
||||
"required_username" => "",
|
||||
"username" => "ชื่อผู้ใช้",
|
||||
"welcome" => "ยินดีต้อนรับสู่ {0}!",
|
||||
];
|
||||
|
||||
@@ -1,226 +1,224 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'customers_available_points' => "คะแนนที่มี",
|
||||
'rewards_package' => "คะแนนสะสม",
|
||||
'rewards_remaining_balance' => "คะแนนสะสมคงเหลือ ",
|
||||
'account_number' => "บัญชี #",
|
||||
'add_payment' => "เพิ่มบิล",
|
||||
'amount_due' => "ยอดค้างชำระ",
|
||||
'amount_tendered' => "ชำระเข้ามา",
|
||||
'authorized_signature' => "ลายเซ็นผู้มีอำนาจ",
|
||||
'cancel_sale' => "ยกเลิกการขาย",
|
||||
'cash' => "เงินสด",
|
||||
'cash_1' => "",
|
||||
'cash_2' => "",
|
||||
'cash_3' => "",
|
||||
'cash_4' => "",
|
||||
'cash_adjustment' => "การปรับเงินสดขาย",
|
||||
'cash_deposit' => "ฝากเงินสด",
|
||||
'cash_filter' => "เงินสด",
|
||||
'change_due' => "เงินทอน",
|
||||
'change_price' => "เปลี่ยนราคาขาย",
|
||||
'check' => "โอนเงิน/พร้อมเพย์/เช็ค",
|
||||
'check_balance' => "เช็คยอดคงเหลือ",
|
||||
'check_filter' => "ตรวจสอบ",
|
||||
'close' => "",
|
||||
'comment' => "หมายเหตุ",
|
||||
'comments' => "หมายเหตุ",
|
||||
'company_name' => "",
|
||||
'complete' => "",
|
||||
'complete_sale' => "จบการขาย",
|
||||
'confirm_cancel_sale' => "แน่ใจหรือไม่ที่จะล้างการขายนี้? ทุกรายการจะถูกลบทั้งหมด",
|
||||
'confirm_delete' => "โปรดยืนยันการลบรายการขายที่เลือกไว้ ?",
|
||||
'confirm_restore' => "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกการขายที่เลือกไว้?",
|
||||
'credit' => "เครดิตการ์ด",
|
||||
'credit_deposit' => "เงินฝากเครดิต",
|
||||
'credit_filter' => "บัตรเครติด",
|
||||
'current_table' => "",
|
||||
'customer' => "ลูกค้า",
|
||||
'customer_address' => "Customer Address",
|
||||
'customer_discount' => "ส่วนลด",
|
||||
'customer_email' => "Customer Email",
|
||||
'customer_location' => "Customer Location",
|
||||
'customer_mailchimp_status' => "สถานะของระบบส่งเมล์เมล์ชิม",
|
||||
'customer_optional' => "(ต้องระบุวันที่ชำระเงิน)",
|
||||
'customer_required' => "(ต้องระบุ)",
|
||||
'customer_total' => "Total",
|
||||
'customer_total_spent' => "",
|
||||
'daily_sales' => "",
|
||||
'date' => "วันที่ขาย",
|
||||
'date_range' => "ระหว่างวันที่",
|
||||
'date_required' => "กรุณากรอกวันที่ให้ถูกต้อง",
|
||||
'date_type' => "กรุณากรอกข้อมูลในช่องวันที่",
|
||||
'debit' => "บัตรประชารัฐ/เดบิตการ์ด",
|
||||
'debit_filter' => "",
|
||||
'delete' => "อนุญาตให้ลบ",
|
||||
'delete_confirmation' => "แน่ใจหรือไม่ที่จะลบรายการขายนี้, ลบแล้วไม่สามารถเรียกกลับคืนใด้",
|
||||
'delete_entire_sale' => "ลบการขายทั้งหมด",
|
||||
'delete_successful' => "คุณลบการขายสำเร็จ",
|
||||
'delete_unsuccessful' => "คุณลบการขายไม่สำเร็จ",
|
||||
'description_abbrv' => "รายละเอียด",
|
||||
'discard' => "ยกเลิก",
|
||||
'discard_quote' => "",
|
||||
'discount' => "ส่วนลด %",
|
||||
'discount_included' => "% ส่วนลด",
|
||||
'discount_short' => "%",
|
||||
'due' => "วันครบกำหนด",
|
||||
'due_filter' => "วันที่ครบกำหนด",
|
||||
'edit' => "แก้ไข",
|
||||
'edit_item' => "แก้ไขสินค้า",
|
||||
'edit_sale' => "แก้ไขการขาย",
|
||||
'email_receipt' => "อีเมลบิล",
|
||||
'employee' => "พนักงาน",
|
||||
'entry' => "การนำเข้า",
|
||||
'error_editing_item' => "แก้ไขสินค้าล้มเหลว",
|
||||
'find_or_scan_item' => "ค้นหาสินค้า",
|
||||
'find_or_scan_item_or_receipt' => "ค้นหา หรือ แสกนรายการ หรือ ใบเสร็จ",
|
||||
'giftcard' => "บัตรของขวัญ",
|
||||
'giftcard_balance' => "ยอดคงเหลือบัตรของขวัญ",
|
||||
'giftcard_filter' => "",
|
||||
'giftcard_number' => "เลขที่บัตรของขวัญ",
|
||||
'group_by_category' => "กลุ่มตามหมวดหมู่",
|
||||
'group_by_type' => "กลุ่มตามประเภท",
|
||||
'hsn' => "HSN",
|
||||
'id' => "เลขที่ขาย",
|
||||
'include_prices' => "รวมในราคา?",
|
||||
'invoice' => "ใบแจ้งหนี้",
|
||||
'invoice_confirm' => "ใบแจ้งหนี้นี้จะถูกส่งไปที่",
|
||||
'invoice_enable' => "เลขที่ใบแจ้งหนี้",
|
||||
'invoice_filter' => "ใบแจ้งหนี้",
|
||||
'invoice_no_email' => "ลูกค้ารายนี้ไม่มีที่อยู่อีเมล",
|
||||
'invoice_number' => "เลขใบแจ้งหนี้ #",
|
||||
'invoice_number_duplicate' => "ใบแจ้งหนี้หมายเลข {0} จะต้องไม่ซ้ำกัน",
|
||||
'invoice_sent' => "ส่งใบแจ้งหนี้ไปที่",
|
||||
'invoice_total' => "ยอดรวมในใบแจ้งหนี้",
|
||||
'invoice_type_custom_invoice' => "ใบแจ้งหนี้ที่กำหนดเอง (custom_invoice.php)",
|
||||
'invoice_type_custom_tax_invoice' => "ใบกำกับภาษีที่กำหนดเอง (custom_tax_invoice.php)",
|
||||
'invoice_type_invoice' => "ใบแจ้งหนี้ (invoice.php)",
|
||||
'invoice_type_tax_invoice' => "ใบกำกับภาษี (tax_invoice.php)",
|
||||
'invoice_unsent' => "ไม่สามารถส่งใบแจ้งหนี้ถึง",
|
||||
'invoice_update' => "คำนวณใหม่",
|
||||
'item_insufficient_of_stock' => "จำนวนสินค้าไม่เพียงพอ",
|
||||
'item_name' => "ชื่อสินค้า",
|
||||
'item_number' => "สินค้า #",
|
||||
'item_out_of_stock' => "สินค้าจำหน่ายหมด",
|
||||
'key_browser' => "ความช่วยเหลือ",
|
||||
'key_cancel' => "ยกเลิกใบเสนอราคา/ใบแจ้งหนี้ /ใบการขาย นี้",
|
||||
'key_customer_search' => "ค้นหาลูกค้า",
|
||||
'key_finish_quote' => "จบใบเสนอราคา/ใบแจ้งหนี้โดยไม่ต้องชำระเงิน",
|
||||
'key_finish_sale' => "เพิ่มการชำระเงินและใบแจ้งหนี้ /ใบรายการขาย",
|
||||
'key_full' => "เปิดแบบเต็มหน้าจอ",
|
||||
'key_function' => "ฟังก์ชั่น",
|
||||
'key_help' => "คำสั่งลัดงานขาย",
|
||||
'key_help_modal' => "เปิดหน้าต่างคำสั่งลัดงานขาย",
|
||||
'key_in' => "ขยายเข้า",
|
||||
'key_item_search' => "ค้นหารายการขาย",
|
||||
'key_out' => "ขยายออก",
|
||||
'key_payment' => "เพิ่มการชำระเงิน",
|
||||
'key_print' => "พิมพ์หน้านี้",
|
||||
'key_restore' => "คืนการแสดงผลแบบดั้งเดิม/ขยาย",
|
||||
'key_search' => "ค้นหาตารางรายงาน",
|
||||
'key_suspend' => "พักรายการขายปัจจุบัน",
|
||||
'key_suspended' => "แสดงรายการขายที่พักไว้",
|
||||
'key_system' => "ทางลัดระบบ",
|
||||
'key_tendered' => "แก้ไขจำนวนเงินรับมา",
|
||||
'key_title' => "ทางลัดคียบอร์ดงานขาย",
|
||||
'mc' => "",
|
||||
'mode' => "รูปแบบการลงทะเบียน",
|
||||
'must_enter_numeric' => "จำนวนที่ถุกประมูลต้องใส่ข้อมุลที่เปนตัวเลข",
|
||||
'must_enter_numeric_giftcard' => "เลขที่บัตรของขวัญ ต้องใส่ตัวเลขเท่านั้น",
|
||||
'new_customer' => "ลูกค้าใหม่",
|
||||
'new_item' => "สินค้าใหม่",
|
||||
'no_description' => "ไม่ระบุรายละเอียด",
|
||||
'no_filter' => "ทั้งหมด",
|
||||
'no_items_in_cart' => "ไม่พบสินค้าในตระกร้า",
|
||||
'no_sales_to_display' => "ไม่มีการขายที่จะแสดง",
|
||||
'none_selected' => "คุณยังไม่ได้เลือกการขายที่จะลบ",
|
||||
'nontaxed_ind' => " . ",
|
||||
'not_authorized' => "การกระทำนี้ไม่ได้รับอนุญาต",
|
||||
'one_or_multiple' => "การขาย",
|
||||
'payment' => "รูปแบบชำระเงิน",
|
||||
'payment_amount' => "จำนวน",
|
||||
'payment_not_cover_total' => "จำนวนเงินที่ชำระต้องมากกว่าหรือเท่ากับยอดรวม",
|
||||
'payment_type' => "ชำระโดย",
|
||||
'payments' => "",
|
||||
'payments_total' => "ยอดชำระแล้ว",
|
||||
'price' => "ราคา",
|
||||
'print_after_sale' => "พิมพ์บิลหลังการขาย",
|
||||
'quantity' => "จำนวน",
|
||||
'quantity_less_than_reorder_level' => "คำเตือน ถ้าจำนวนของไม่เพียงพอกับความต้องการหรือไม่ตรงกับยอดในบันชี ก็สามารถทำการขายได้ แต่ต้องเชคปริมานสินค้าคงคลัง",
|
||||
'quantity_less_than_zero' => "คำเตือน: ถ้าจำนวนของไม่เพียงพอกับความต้องการหรือไม่ตรงกับยอดในบัญชี ก็สามารถทำการขายได้ แต่ต้องตรวจสอบปริมาญสินค้าคงคลังก่อน",
|
||||
'quantity_of_items' => "ปริมาณของ {0} รายการ",
|
||||
'quote' => "ใบเสนอราคา",
|
||||
'quote_number' => "หมายเลขอ้างอิง",
|
||||
'quote_number_duplicate' => "หมายเลขอ้างอิงต้องไม่ซ้ำกัน",
|
||||
'quote_sent' => "ส่งการอ้างอิงถึง",
|
||||
'quote_unsent' => "ส่งการอ้างอิงถึงผิดพลาด",
|
||||
'receipt' => "บิลขาย",
|
||||
'receipt_no_email' => "ลูกค้านี้ไม่มีที่อยู่อีเมล์",
|
||||
'receipt_number' => "จุดขาย#",
|
||||
'receipt_sent' => "ส่งใบเสร็จไปที่",
|
||||
'receipt_unsent' => "ไม่สามารถส่งใบเสร็จไปที่",
|
||||
'refund' => "ประเภทการยกเลิกการขาย",
|
||||
'register' => "ลงทะเบียนขาย",
|
||||
'remove_customer' => "ลบลูกค้า",
|
||||
'remove_discount' => "",
|
||||
'return' => "คืน",
|
||||
'rewards' => "คะแนนสะสม",
|
||||
'rewards_balance' => "คะแนนสะสมคงเหลือ",
|
||||
'sale' => "ขาย",
|
||||
'sale_by_invoice' => "การขายโดยใบแจ้งหนี้",
|
||||
'sale_for_customer' => "ลูกค้า:",
|
||||
'sale_time' => "เวลา",
|
||||
'sales_tax' => "ภาษีการขาย",
|
||||
'sales_total' => "",
|
||||
'select_customer' => "เลือกลูกค้า (Optional)",
|
||||
'send_invoice' => "ส่งใบแจ้งหนี้",
|
||||
'send_quote' => "ส่งใบเสนอราคา",
|
||||
'send_receipt' => "ส่งใบเสร็จ",
|
||||
'send_work_order' => "ส่งคำสั่งงาน",
|
||||
'serial' => "หมายเลขซีเรียล",
|
||||
'service_charge' => "",
|
||||
'show_due' => "",
|
||||
'show_invoice' => "ใบแจ้งหนี้",
|
||||
'show_receipt' => "ใบเสร็จ",
|
||||
'start_typing_customer_name' => "เริ่มต้นพิมพ์ชื่อลูกค้า...",
|
||||
'start_typing_item_name' => "เริ่มต้นพิมพ์ชื่อสินค้า หรือ สแกนบาร์โค๊ด...",
|
||||
'stock' => "คลังสินค้า",
|
||||
'stock_location' => "ที่เก็บ",
|
||||
'sub_total' => "ยอดรวมย่อย",
|
||||
'successfully_deleted' => "ลบการขายสมยูรณ์",
|
||||
'successfully_restored' => "คุณกู้คืนสำเร็จแล้ว",
|
||||
'successfully_suspended_sale' => "การขายของคุณถูกระงับเรียบร้อย",
|
||||
'successfully_updated' => "อัพเดทการขายสมบูรณ์",
|
||||
'suspend_sale' => "พักรายการ",
|
||||
'suspended_doc_id' => "รหัสเอกสาร",
|
||||
'suspended_sale_id' => "รหัสการขายที่ถูกพัก",
|
||||
'suspended_sales' => "การขายที่พักไว้",
|
||||
'table' => "โต๊ะ",
|
||||
'takings' => "การขายประจำวัน",
|
||||
'tax' => "ภาษี",
|
||||
'tax_id' => "รหัสภาษี",
|
||||
'tax_invoice' => "ใบกำกับภาษี",
|
||||
'tax_percent' => "ภาษี %",
|
||||
'taxed_ind' => "ภ",
|
||||
'total' => "ยอดรวม",
|
||||
'total_tax_exclusive' => "ยอดไม่รวมภาษี",
|
||||
'transaction_failed' => "การดำเนินการขายล้มเหลว",
|
||||
'unable_to_add_item' => "เพิ่มรายการไปยังการขายล้มเหลว",
|
||||
'unsuccessfully_deleted' => "ลบการขายไม่สำเร็จ",
|
||||
'unsuccessfully_restored' => "การคืนค่ารายการขายล้มเหลว",
|
||||
'unsuccessfully_suspended_sale' => "การขายของคุณถูกระงับเรียบร้อย",
|
||||
'unsuccessfully_updated' => "อัพเดทการขายไม่สมบูรณ์",
|
||||
'unsuspend' => "ยกเลิกการระงับ",
|
||||
'unsuspend_and_delete' => "ยกเลิกการระงับ และ ลบ",
|
||||
'update' => "แก้ไข",
|
||||
'upi' => "ยูพีไอ",
|
||||
'visa' => "",
|
||||
'wholesale' => "",
|
||||
'work_order' => "คำสั่งงาน",
|
||||
'work_order_number' => "หมายเลขคำสั่งงาน",
|
||||
'work_order_number_duplicate' => "หมายเลขคำสั่งงานต้องไม่ซ้ำกัน",
|
||||
'work_order_sent' => "คำสั่งงานส่งถึง",
|
||||
'work_order_unsent' => "ส่งคำสั่งงานล้มเหลว",
|
||||
'selected_customer' => "ลูกค้าที่เลือก",
|
||||
"customers_available_points" => "คะแนนที่มี",
|
||||
"rewards_package" => "คะแนนสะสม",
|
||||
"rewards_remaining_balance" => "คะแนนสะสมคงเหลือ ",
|
||||
"account_number" => "บัญชี #",
|
||||
"add_payment" => "เพิ่มบิล",
|
||||
"amount_due" => "ยอดค้างชำระ",
|
||||
"amount_tendered" => "ชำระเข้ามา",
|
||||
"authorized_signature" => "ลายเซ็นผู้มีอำนาจ",
|
||||
"cancel_sale" => "ยกเลิกการขาย",
|
||||
"cash" => "เงินสด",
|
||||
"cash_1" => "",
|
||||
"cash_2" => "",
|
||||
"cash_3" => "",
|
||||
"cash_4" => "",
|
||||
"cash_adjustment" => "การปรับเงินสดขาย",
|
||||
"cash_deposit" => "ฝากเงินสด",
|
||||
"cash_filter" => "เงินสด",
|
||||
"change_due" => "เงินทอน",
|
||||
"change_price" => "เปลี่ยนราคาขาย",
|
||||
"check" => "โอนเงิน/พร้อมเพย์/เช็ค",
|
||||
"check_balance" => "เช็คยอดคงเหลือ",
|
||||
"check_filter" => "ตรวจสอบ",
|
||||
"close" => "",
|
||||
"comment" => "หมายเหตุ",
|
||||
"comments" => "หมายเหตุ",
|
||||
"company_name" => "",
|
||||
"complete" => "",
|
||||
"complete_sale" => "จบการขาย",
|
||||
"confirm_cancel_sale" => "แน่ใจหรือไม่ที่จะล้างการขายนี้? ทุกรายการจะถูกลบทั้งหมด",
|
||||
"confirm_delete" => "โปรดยืนยันการลบรายการขายที่เลือกไว้ ?",
|
||||
"confirm_restore" => "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกการขายที่เลือกไว้?",
|
||||
"credit" => "เครดิตการ์ด",
|
||||
"credit_deposit" => "เงินฝากเครดิต",
|
||||
"credit_filter" => "บัตรเครติด",
|
||||
"current_table" => "",
|
||||
"customer" => "ลูกค้า",
|
||||
"customer_address" => "Customer Address",
|
||||
"customer_discount" => "ส่วนลด",
|
||||
"customer_email" => "Customer Email",
|
||||
"customer_location" => "Customer Location",
|
||||
"customer_mailchimp_status" => "สถานะของระบบส่งเมล์เมล์ชิม",
|
||||
"customer_optional" => "(ต้องระบุวันที่ชำระเงิน)",
|
||||
"customer_required" => "(ต้องระบุ)",
|
||||
"customer_total" => "Total",
|
||||
"customer_total_spent" => "",
|
||||
"daily_sales" => "",
|
||||
"date" => "วันที่ขาย",
|
||||
"date_range" => "ระหว่างวันที่",
|
||||
"date_required" => "กรุณากรอกวันที่ให้ถูกต้อง",
|
||||
"date_type" => "กรุณากรอกข้อมูลในช่องวันที่",
|
||||
"debit" => "บัตรประชารัฐ/เดบิตการ์ด",
|
||||
"debit_filter" => "",
|
||||
"delete" => "อนุญาตให้ลบ",
|
||||
"delete_confirmation" => "แน่ใจหรือไม่ที่จะลบรายการขายนี้, ลบแล้วไม่สามารถเรียกกลับคืนใด้",
|
||||
"delete_entire_sale" => "ลบการขายทั้งหมด",
|
||||
"delete_successful" => "คุณลบการขายสำเร็จ",
|
||||
"delete_unsuccessful" => "คุณลบการขายไม่สำเร็จ",
|
||||
"description_abbrv" => "รายละเอียด",
|
||||
"discard" => "ยกเลิก",
|
||||
"discard_quote" => "",
|
||||
"discount" => "ส่วนลด %",
|
||||
"discount_included" => "% ส่วนลด",
|
||||
"discount_short" => "%",
|
||||
"due" => "วันครบกำหนด",
|
||||
"due_filter" => "วันที่ครบกำหนด",
|
||||
"edit" => "แก้ไข",
|
||||
"edit_item" => "แก้ไขสินค้า",
|
||||
"edit_sale" => "แก้ไขการขาย",
|
||||
"email_receipt" => "อีเมลบิล",
|
||||
"employee" => "พนักงาน",
|
||||
"entry" => "การนำเข้า",
|
||||
"error_editing_item" => "แก้ไขสินค้าล้มเหลว",
|
||||
"find_or_scan_item" => "ค้นหาสินค้า",
|
||||
"find_or_scan_item_or_receipt" => "ค้นหา หรือ แสกนรายการ หรือ ใบเสร็จ",
|
||||
"giftcard" => "บัตรของขวัญ",
|
||||
"giftcard_balance" => "ยอดคงเหลือบัตรของขวัญ",
|
||||
"giftcard_filter" => "",
|
||||
"giftcard_number" => "เลขที่บัตรของขวัญ",
|
||||
"group_by_category" => "กลุ่มตามหมวดหมู่",
|
||||
"group_by_type" => "กลุ่มตามประเภท",
|
||||
"hsn" => "HSN",
|
||||
"id" => "เลขที่ขาย",
|
||||
"include_prices" => "รวมในราคา?",
|
||||
"invoice" => "ใบแจ้งหนี้",
|
||||
"invoice_confirm" => "ใบแจ้งหนี้นี้จะถูกส่งไปที่",
|
||||
"invoice_enable" => "เลขที่ใบแจ้งหนี้",
|
||||
"invoice_filter" => "ใบแจ้งหนี้",
|
||||
"invoice_no_email" => "ลูกค้ารายนี้ไม่มีที่อยู่อีเมล",
|
||||
"invoice_number" => "เลขใบแจ้งหนี้ #",
|
||||
"invoice_number_duplicate" => "ใบแจ้งหนี้หมายเลข {0} จะต้องไม่ซ้ำกัน",
|
||||
"invoice_sent" => "ส่งใบแจ้งหนี้ไปที่",
|
||||
"invoice_total" => "ยอดรวมในใบแจ้งหนี้",
|
||||
"invoice_type_custom_invoice" => "ใบแจ้งหนี้ที่กำหนดเอง (custom_invoice.php)",
|
||||
"invoice_type_custom_tax_invoice" => "ใบกำกับภาษีที่กำหนดเอง (custom_tax_invoice.php)",
|
||||
"invoice_type_invoice" => "ใบแจ้งหนี้ (invoice.php)",
|
||||
"invoice_type_tax_invoice" => "ใบกำกับภาษี (tax_invoice.php)",
|
||||
"invoice_unsent" => "ไม่สามารถส่งใบแจ้งหนี้ถึง",
|
||||
"invoice_update" => "คำนวณใหม่",
|
||||
"item_insufficient_of_stock" => "จำนวนสินค้าไม่เพียงพอ",
|
||||
"item_name" => "ชื่อสินค้า",
|
||||
"item_number" => "สินค้า #",
|
||||
"item_out_of_stock" => "สินค้าจำหน่ายหมด",
|
||||
"key_browser" => "ความช่วยเหลือ",
|
||||
"key_cancel" => "ยกเลิกใบเสนอราคา/ใบแจ้งหนี้ /ใบการขาย นี้",
|
||||
"key_customer_search" => "ค้นหาลูกค้า",
|
||||
"key_finish_quote" => "จบใบเสนอราคา/ใบแจ้งหนี้โดยไม่ต้องชำระเงิน",
|
||||
"key_finish_sale" => "เพิ่มการชำระเงินและใบแจ้งหนี้ /ใบรายการขาย",
|
||||
"key_full" => "เปิดแบบเต็มหน้าจอ",
|
||||
"key_function" => "ฟังก์ชั่น",
|
||||
"key_help" => "คำสั่งลัดงานขาย",
|
||||
"key_help_modal" => "เปิดหน้าต่างคำสั่งลัดงานขาย",
|
||||
"key_in" => "ขยายเข้า",
|
||||
"key_item_search" => "ค้นหารายการขาย",
|
||||
"key_out" => "ขยายออก",
|
||||
"key_payment" => "เพิ่มการชำระเงิน",
|
||||
"key_print" => "พิมพ์หน้านี้",
|
||||
"key_restore" => "คืนการแสดงผลแบบดั้งเดิม/ขยาย",
|
||||
"key_search" => "ค้นหาตารางรายงาน",
|
||||
"key_suspend" => "พักรายการขายปัจจุบัน",
|
||||
"key_suspended" => "แสดงรายการขายที่พักไว้",
|
||||
"key_system" => "ทางลัดระบบ",
|
||||
"key_tendered" => "แก้ไขจำนวนเงินรับมา",
|
||||
"key_title" => "ทางลัดคียบอร์ดงานขาย",
|
||||
"mc" => "",
|
||||
"mode" => "รูปแบบการลงทะเบียน",
|
||||
"must_enter_numeric" => "จำนวนที่ถุกประมูลต้องใส่ข้อมุลที่เปนตัวเลข",
|
||||
"must_enter_numeric_giftcard" => "เลขที่บัตรของขวัญ ต้องใส่ตัวเลขเท่านั้น",
|
||||
"new_customer" => "ลูกค้าใหม่",
|
||||
"new_item" => "สินค้าใหม่",
|
||||
"no_description" => "ไม่ระบุรายละเอียด",
|
||||
"no_filter" => "ทั้งหมด",
|
||||
"no_items_in_cart" => "ไม่พบสินค้าในตระกร้า",
|
||||
"no_sales_to_display" => "ไม่มีการขายที่จะแสดง",
|
||||
"none_selected" => "คุณยังไม่ได้เลือกการขายที่จะลบ",
|
||||
"nontaxed_ind" => " . ",
|
||||
"not_authorized" => "การกระทำนี้ไม่ได้รับอนุญาต",
|
||||
"one_or_multiple" => "การขาย",
|
||||
"payment" => "รูปแบบชำระเงิน",
|
||||
"payment_amount" => "จำนวน",
|
||||
"payment_not_cover_total" => "จำนวนเงินที่ชำระต้องมากกว่าหรือเท่ากับยอดรวม",
|
||||
"payment_type" => "ชำระโดย",
|
||||
"payments" => "",
|
||||
"payments_total" => "ยอดชำระแล้ว",
|
||||
"price" => "ราคา",
|
||||
"print_after_sale" => "พิมพ์บิลหลังการขาย",
|
||||
"quantity" => "จำนวน",
|
||||
"quantity_less_than_reorder_level" => "คำเตือน ถ้าจำนวนของไม่เพียงพอกับความต้องการหรือไม่ตรงกับยอดในบันชี ก็สามารถทำการขายได้ แต่ต้องเชคปริมานสินค้าคงคลัง",
|
||||
"quantity_less_than_zero" => "คำเตือน: ถ้าจำนวนของไม่เพียงพอกับความต้องการหรือไม่ตรงกับยอดในบัญชี ก็สามารถทำการขายได้ แต่ต้องตรวจสอบปริมาญสินค้าคงคลังก่อน",
|
||||
"quantity_of_items" => "ปริมาณของ {0} รายการ",
|
||||
"quote" => "ใบเสนอราคา",
|
||||
"quote_number" => "หมายเลขอ้างอิง",
|
||||
"quote_number_duplicate" => "หมายเลขอ้างอิงต้องไม่ซ้ำกัน",
|
||||
"quote_sent" => "ส่งการอ้างอิงถึง",
|
||||
"quote_unsent" => "ส่งการอ้างอิงถึงผิดพลาด",
|
||||
"receipt" => "บิลขาย",
|
||||
"receipt_no_email" => "ลูกค้านี้ไม่มีที่อยู่อีเมล์",
|
||||
"receipt_number" => "จุดขาย#",
|
||||
"receipt_sent" => "ส่งใบเสร็จไปที่",
|
||||
"receipt_unsent" => "ไม่สามารถส่งใบเสร็จไปที่",
|
||||
"refund" => "ประเภทการยกเลิกการขาย",
|
||||
"register" => "ลงทะเบียนขาย",
|
||||
"remove_customer" => "ลบลูกค้า",
|
||||
"remove_discount" => "",
|
||||
"return" => "คืน",
|
||||
"rewards" => "คะแนนสะสม",
|
||||
"rewards_balance" => "คะแนนสะสมคงเหลือ",
|
||||
"sale" => "ขาย",
|
||||
"sale_by_invoice" => "การขายโดยใบแจ้งหนี้",
|
||||
"sale_for_customer" => "ลูกค้า:",
|
||||
"sale_time" => "เวลา",
|
||||
"sales_tax" => "ภาษีการขาย",
|
||||
"sales_total" => "",
|
||||
"select_customer" => "เลือกลูกค้า (Optional)",
|
||||
"send_invoice" => "ส่งใบแจ้งหนี้",
|
||||
"send_quote" => "ส่งใบเสนอราคา",
|
||||
"send_receipt" => "ส่งใบเสร็จ",
|
||||
"send_work_order" => "ส่งคำสั่งงาน",
|
||||
"serial" => "หมายเลขซีเรียล",
|
||||
"service_charge" => "",
|
||||
"show_due" => "",
|
||||
"show_invoice" => "ใบแจ้งหนี้",
|
||||
"show_receipt" => "ใบเสร็จ",
|
||||
"start_typing_customer_name" => "เริ่มต้นพิมพ์ชื่อลูกค้า...",
|
||||
"start_typing_item_name" => "เริ่มต้นพิมพ์ชื่อสินค้า หรือ สแกนบาร์โค๊ด...",
|
||||
"stock" => "คลังสินค้า",
|
||||
"stock_location" => "ที่เก็บ",
|
||||
"sub_total" => "ยอดรวมย่อย",
|
||||
"successfully_deleted" => "ลบการขายสมยูรณ์",
|
||||
"successfully_restored" => "คุณกู้คืนสำเร็จแล้ว",
|
||||
"successfully_suspended_sale" => "การขายของคุณถูกระงับเรียบร้อย",
|
||||
"successfully_updated" => "อัพเดทการขายสมบูรณ์",
|
||||
"suspend_sale" => "พักรายการ",
|
||||
"suspended_doc_id" => "รหัสเอกสาร",
|
||||
"suspended_sale_id" => "รหัสการขายที่ถูกพัก",
|
||||
"suspended_sales" => "การขายที่พักไว้",
|
||||
"table" => "โต๊ะ",
|
||||
"takings" => "การขายประจำวัน",
|
||||
"tax" => "ภาษี",
|
||||
"tax_id" => "รหัสภาษี",
|
||||
"tax_invoice" => "ใบกำกับภาษี",
|
||||
"tax_percent" => "ภาษี %",
|
||||
"taxed_ind" => "ภ",
|
||||
"total" => "ยอดรวม",
|
||||
"total_tax_exclusive" => "ยอดไม่รวมภาษี",
|
||||
"transaction_failed" => "การดำเนินการขายล้มเหลว",
|
||||
"unable_to_add_item" => "เพิ่มรายการไปยังการขายล้มเหลว",
|
||||
"unsuccessfully_deleted" => "ลบการขายไม่สำเร็จ",
|
||||
"unsuccessfully_restored" => "การคืนค่ารายการขายล้มเหลว",
|
||||
"unsuccessfully_suspended_sale" => "การขายของคุณถูกระงับเรียบร้อย",
|
||||
"unsuccessfully_updated" => "อัพเดทการขายไม่สมบูรณ์",
|
||||
"unsuspend" => "ยกเลิกการระงับ",
|
||||
"unsuspend_and_delete" => "ยกเลิกการระงับ และ ลบ",
|
||||
"update" => "แก้ไข",
|
||||
"upi" => "ยูพีไอ",
|
||||
"visa" => "",
|
||||
"wholesale" => "",
|
||||
"work_order" => "คำสั่งงาน",
|
||||
"work_order_number" => "หมายเลขคำสั่งงาน",
|
||||
"work_order_number_duplicate" => "หมายเลขคำสั่งงานต้องไม่ซ้ำกัน",
|
||||
"work_order_sent" => "คำสั่งงานส่งถึง",
|
||||
"work_order_unsent" => "ส่งคำสั่งงานล้มเหลว",
|
||||
];
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
<?php
|
||||
namespace app\Libraries;
|
||||
|
||||
use CodeIgniter\Language\Language;
|
||||
|
||||
class MY_Language extends Language {
|
||||
|
||||
public function getLine(string $line, array $args = [])
|
||||
{
|
||||
// if no file is given, just parse the line
|
||||
if ( ! str_contains($line, '.'))
|
||||
{
|
||||
return $this->formatMessage($line, $args);
|
||||
}
|
||||
|
||||
// Parse out the file name and the actual alias.
|
||||
// Will load the language file and strings.
|
||||
[$file, $parsedLine] = $this->parseLine($line, $this->locale);
|
||||
|
||||
$output = $this->getTranslationOutput($this->locale, $file, $parsedLine);
|
||||
|
||||
if ($output === NULL && strpos($this->locale, '-'))
|
||||
{
|
||||
[$locale] = explode('-', $this->locale, 2);
|
||||
|
||||
[$file, $parsedLine] = $this->parseLine($line, $locale);
|
||||
|
||||
$output = $this->getTranslationOutput($locale, $file, $parsedLine);
|
||||
}
|
||||
|
||||
// if still not found, try English
|
||||
if ($output === NULL || $output === "")
|
||||
{
|
||||
[$file, $parsedLine] = $this->parseLine($line, 'en');
|
||||
|
||||
$output = $this->getTranslationOutput('en', $file, $parsedLine);
|
||||
}
|
||||
|
||||
$output ??= $line;
|
||||
|
||||
return $this->formatMessage($output, $args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -65,71 +65,73 @@ class Attribute extends Model
|
||||
|
||||
/**
|
||||
* Returns whether an attribute_link row exists given an item_id and optionally a definition_id
|
||||
*
|
||||
* @param int $item_id ID of the item to check for an associated attribute.
|
||||
* @param int|bool $definition_id Attribute definition ID to check.
|
||||
* @param bool $definition_id Attribute definition ID to check.
|
||||
* @return bool returns true if at least one attribute_link exists or false if no attributes exist for that item and attribute.
|
||||
*/
|
||||
public function attributeLinkExists(int $item_id, int|bool $definition_id = false): bool
|
||||
public function link_exists(int $item_id, bool $definition_id = false): bool
|
||||
{
|
||||
$builder = $this->db->table('attribute_links');
|
||||
$builder->where('item_id', $item_id);
|
||||
$builder->where('sale_id', null);
|
||||
$builder->where('receiving_id', null);
|
||||
|
||||
if($definition_id)
|
||||
{
|
||||
$builder->where('definition_id', $definition_id);
|
||||
}
|
||||
else
|
||||
if(empty($definition_id))
|
||||
{
|
||||
$builder->where('definition_id IS NOT NULL');
|
||||
$builder->where('attribute_id', null);
|
||||
}
|
||||
$results = $builder->countAllResults();
|
||||
return $results > 0;
|
||||
else
|
||||
{
|
||||
$builder->where('definition_id', $definition_id);
|
||||
}
|
||||
|
||||
return ($builder->get()->getNumRows() > 0); //TODO: This is returning a result of 1 on dropdown
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a given attribute_value exists in the attribute_values table and returns the attribute_id if it does
|
||||
*
|
||||
* @param float|string $attributeValue The value to search for in the attribute values table.
|
||||
* @param string $definitionType The definition type which will dictate which column is searched.
|
||||
* @param float|string $attribute_value The value to search for in the attribute values table.
|
||||
* @param string $definition_type The definition type which will dictate which column is searched.
|
||||
* @return int|bool The attribute ID of the found row or false if no attribute value was found.
|
||||
*/
|
||||
public function attributeValueExists(float|string $attributeValue, string $definitionType = TEXT): bool|int
|
||||
public function value_exists(float|string $attribute_value, string $definition_type = TEXT): bool|int
|
||||
{
|
||||
$config = config(OSPOS::class)->settings;
|
||||
|
||||
switch($definitionType)
|
||||
switch($definition_type)
|
||||
{
|
||||
case DATE:
|
||||
$dataType = 'date';
|
||||
$attributeDateValue = DateTime::createFromFormat($config['dateformat'], $attributeValue);
|
||||
$attributeValue = $attributeDateValue ? $attributeDateValue->format('Y-m-d') : $attributeValue;
|
||||
$data_type = 'date';
|
||||
$attribute_date_value = DateTime::createFromFormat($config['dateformat'], $attribute_value);
|
||||
$attribute_value = $attribute_date_value->format('Y-m-d');
|
||||
break;
|
||||
case DECIMAL:
|
||||
$dataType = 'decimal';
|
||||
$data_type = 'decimal';
|
||||
break;
|
||||
default:
|
||||
$dataType = 'value';
|
||||
$data_type = 'value';
|
||||
break;
|
||||
}
|
||||
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->select('attribute_id');
|
||||
$builder->where("attribute_$dataType", $attributeValue);
|
||||
$builder->where("attribute_$data_type", $attribute_value);
|
||||
$query = $builder->get();
|
||||
|
||||
return $query->getNumRows() > 0
|
||||
? $query->getRow()->attribute_id
|
||||
: false;
|
||||
if($query->getNumRows() > 0)
|
||||
{
|
||||
return $query->getRow()->attribute_id;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets information about a particular attribute definition
|
||||
*/
|
||||
public function getAttributeInfo(int $definition_id): object
|
||||
public function get_info(int $definition_id): object
|
||||
{
|
||||
$builder = $this->db->table('attribute_definitions AS definition');
|
||||
$builder->select('parent_definition.definition_name AS definition_group, definition.*');
|
||||
@@ -138,7 +140,7 @@ class Attribute extends Model
|
||||
|
||||
$query = $builder->get();
|
||||
|
||||
if($query->getNumRows() === 1)
|
||||
if($query->getNumRows() == 1) //TODO: ===
|
||||
{
|
||||
return $query->getRow();
|
||||
}
|
||||
@@ -512,18 +514,18 @@ class Attribute extends Model
|
||||
*/
|
||||
private function checkbox_attribute_values(int $definition_id): array
|
||||
{
|
||||
$zero_attribute_id = $this->attributeValueExists('0');
|
||||
$one_attribute_id = $this->attributeValueExists('1');
|
||||
$zero_attribute_id = $this->value_exists('0');
|
||||
$one_attribute_id = $this->value_exists('1');
|
||||
|
||||
if(!$zero_attribute_id)
|
||||
{
|
||||
$zero_attribute_id = $this->saveAttributeValue('0', $definition_id, false, false, CHECKBOX);
|
||||
$zero_attribute_id = $this->save_value('0', $definition_id, false, false, CHECKBOX);
|
||||
}
|
||||
|
||||
if(!$one_attribute_id)
|
||||
{
|
||||
$one_attribute_id = $this->saveAttributeValue('1', $definition_id, false, false, CHECKBOX);
|
||||
$one_attribute_id = $this->saveAttributeValue('1', $definition_id, false, false, CHECKBOX);
|
||||
$one_attribute_id = $this->save_value('1', $definition_id, false, false, CHECKBOX);
|
||||
$one_attribute_id = $this->save_value('1', $definition_id, false, false, CHECKBOX);
|
||||
}
|
||||
|
||||
return [$zero_attribute_id, $one_attribute_id];
|
||||
@@ -608,32 +610,31 @@ class Attribute extends Model
|
||||
/**
|
||||
* Inserts or updates an attribute link
|
||||
*
|
||||
* @param int $itemId
|
||||
* @param int $definitionId
|
||||
* @param int $attributeId
|
||||
* @return bool True if the attribute link was saved successfully, false otherwise.
|
||||
* @param int $item_id
|
||||
* @param int $definition_id
|
||||
* @param int $attribute_id
|
||||
* @return bool
|
||||
*/
|
||||
public function saveAttributeLink(int $itemId, int $definitionId, int $attributeId): bool
|
||||
public function save_link(int $item_id, int $definition_id, int $attribute_id): bool
|
||||
{
|
||||
$this->db->transStart();
|
||||
|
||||
$builder = $this->db->table('attribute_links');
|
||||
|
||||
if($this->attributeLinkExists($itemId, $definitionId))
|
||||
if($this->link_exists($item_id, $definition_id))
|
||||
{
|
||||
$builder->set(['attribute_id' => $attributeId]);
|
||||
$builder->where('definition_id', $definitionId);
|
||||
$builder->where('item_id', $itemId);
|
||||
$builder->set(['attribute_id' => $attribute_id]);
|
||||
$builder->where('definition_id', $definition_id);
|
||||
$builder->where('item_id', $item_id);
|
||||
$builder->where('sale_id', null);
|
||||
$builder->where('receiving_id', null);
|
||||
$builder->update();
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = [
|
||||
'attribute_id' => $attributeId,
|
||||
'item_id' => $itemId,
|
||||
'definition_id' => $definitionId
|
||||
$data = ['attribute_id' => $attribute_id,
|
||||
'item_id' => $item_id,
|
||||
'definition_id' => $definition_id
|
||||
];
|
||||
$builder->insert($data);
|
||||
}
|
||||
@@ -645,10 +646,10 @@ class Attribute extends Model
|
||||
|
||||
/**
|
||||
* @param int $item_id
|
||||
* @param int|bool $definition_id
|
||||
* @param bool $definition_id
|
||||
* @return bool
|
||||
*/
|
||||
public function deleteAttributeLinks(int $item_id, int|bool $definition_id = false): bool
|
||||
public function delete_link(int $item_id, bool $definition_id = false): bool
|
||||
{
|
||||
$delete_data = ['item_id' => $item_id];
|
||||
|
||||
@@ -842,34 +843,35 @@ class Attribute extends Model
|
||||
* @param string $definition_type
|
||||
* @return int
|
||||
*/
|
||||
public function saveAttributeValue(string $attribute_value, int $definition_id, int|bool $item_id = false, int|bool $attribute_id = false, string $definition_type = DROPDOWN): int
|
||||
public function save_value(string $attribute_value, int $definition_id, $item_id = false, $attribute_id = false, string $definition_type = DROPDOWN): int
|
||||
{
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$locale_date_format = $config['dateformat'];
|
||||
|
||||
$this->db->transStart();
|
||||
|
||||
switch($definition_type)
|
||||
{
|
||||
case DATE:
|
||||
$data_type = 'date';
|
||||
$attribute_date_value = DateTime::createFromFormat($config['dateformat'], $attribute_value);
|
||||
$attribute_value = $attribute_date_value->format('Y-m-d');
|
||||
break;
|
||||
case DECIMAL:
|
||||
$data_type = 'decimal';
|
||||
break;
|
||||
default:
|
||||
$data_type = 'value';
|
||||
break;
|
||||
}
|
||||
|
||||
//New Attribute
|
||||
if(empty($attribute_id) || empty($item_id))
|
||||
{
|
||||
$attribute_id = $this->attributeValueExists($attribute_value, $definition_type);
|
||||
//Update attribute_value
|
||||
$attribute_id = $this->value_exists($attribute_value, $definition_type);
|
||||
|
||||
if(!$attribute_id)
|
||||
{
|
||||
switch($definition_type) //TODO: Duplicated code
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->set(["attribute_$data_type" => $attribute_value]);
|
||||
@@ -890,7 +892,22 @@ class Attribute extends Model
|
||||
}
|
||||
//Existing Attribute
|
||||
else
|
||||
{
|
||||
{//TODO: TAKE A LOOK AT THIS DUPLICATE CODE FRAGMENT FROM ABOVE AND SEE ABOUT REFACTORING OUT A FUNCTION
|
||||
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;
|
||||
}
|
||||
|
||||
$builder = $this->db->table('attribute_values');
|
||||
$builder->set(["attribute_$data_type" => $attribute_value]);
|
||||
$builder->where('attribute_id', $attribute_id);
|
||||
@@ -1020,9 +1037,9 @@ class Attribute extends Model
|
||||
|
||||
foreach($attributes as $attribute)
|
||||
{
|
||||
$new_attribute_id = $this->saveAttributeValue($attribute['attribute_value'], $definition_id, false, $attribute['attribute_id'], $definition_type);
|
||||
$new_attribute_id = $this->save_value($attribute['attribute_value'], $definition_id, false, $attribute['attribute_id'], $definition_type);
|
||||
|
||||
if(!$this->saveAttributeLink($attribute['item_id'], $definition_id, $new_attribute_id))
|
||||
if(!$this->save_link($attribute['item_id'], $definition_id, $new_attribute_id))
|
||||
{
|
||||
log_message('error', 'Transaction failed');
|
||||
$this->db->transRollback();
|
||||
|
||||
@@ -97,9 +97,14 @@ class Customer extends Person
|
||||
$builder->where('customers.person_id', $person_id);
|
||||
$query = $builder->get();
|
||||
|
||||
return $query->getNumRows() === 1
|
||||
? $query->getRow()
|
||||
: $this->getEmptyObject('customers');
|
||||
if($query->getNumRows() == 1) //TODO: ===
|
||||
{
|
||||
return $query->getRow();
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->getEmptyObject('customers');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -360,14 +360,11 @@ class Giftcard extends Model
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets gift card customer_id by gift card number
|
||||
*
|
||||
* @param string $giftcard_number Gift card number
|
||||
* @return int The customer_id of the gift card if it exists, 0 otherwise.
|
||||
* Gets gift card customer
|
||||
*/
|
||||
public function get_giftcard_customer(string $giftcard_number): int
|
||||
{
|
||||
if(!$this->exists($this->get_giftcard_id($giftcard_number)))
|
||||
if( !$this->exists($this->get_giftcard_id($giftcard_number)) )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ class Item extends Model
|
||||
'hsn_code'
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Determines if a given item_id is an item
|
||||
*/
|
||||
@@ -201,10 +202,14 @@ class Item extends Model
|
||||
$builder->where('location_id', $filters['stock_location_id']);
|
||||
}
|
||||
|
||||
$where = empty($config['date_or_time_format'])
|
||||
? 'DATE_FORMAT(trans_date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date'])
|
||||
: 'trans_date BETWEEN ' . $this->db->escape(rawurldecode($filters['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($filters['end_date']));
|
||||
$builder->where($where);
|
||||
if(empty($config['date_or_time_format'])) //TODO: This needs to be replaced with Ternary notation
|
||||
{
|
||||
$builder->where('DATE_FORMAT(trans_date, "%Y-%m-%d") BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date']));
|
||||
}
|
||||
else
|
||||
{
|
||||
$builder->where('trans_date BETWEEN ' . $this->db->escape(rawurldecode($filters['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($filters['end_date'])));
|
||||
}
|
||||
|
||||
$attributes_enabled = count($filters['definition_ids']) > 0;
|
||||
|
||||
|
||||
@@ -18,10 +18,6 @@ class Item_quantity extends Model
|
||||
'quantity'
|
||||
];
|
||||
|
||||
protected $item_id;
|
||||
protected $location_id;
|
||||
protected $quantity;
|
||||
|
||||
/**
|
||||
* @param int $item_id
|
||||
* @param int $location_id
|
||||
|
||||
@@ -116,7 +116,7 @@ class Detailed_receivings extends Report
|
||||
}
|
||||
|
||||
$builder->groupBy('receiving_id', 'receiving_time');
|
||||
$builder->orderBy('MAX(receiving_id)');
|
||||
$builder->orderBy('receiving_id');
|
||||
|
||||
$data = [];
|
||||
$data['summary'] = $builder->get()->getResultArray();
|
||||
|
||||
@@ -72,7 +72,7 @@ class Detailed_sales extends Report
|
||||
{
|
||||
$builder = $this->db->table('sales_items_temp');
|
||||
$builder->select('sale_id,
|
||||
MAX(sale_time) as sale_time,
|
||||
sale_time as sale_time,
|
||||
SUM(quantity_purchased) AS items_purchased,
|
||||
MAX(employee_name) AS employee_name,
|
||||
MAX(customer_name) AS customer_name,
|
||||
|
||||
@@ -47,7 +47,7 @@ class Inventory_low extends Report
|
||||
AND stock_locations.deleted = 0
|
||||
ORDER BY items.name");
|
||||
|
||||
return $query->getResultArray() ?: [];
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -119,7 +119,7 @@ class Specific_supplier extends Report
|
||||
}
|
||||
|
||||
$builder->groupBy(['item_id', 'sale_id']);
|
||||
$builder->orderBy('MAX(sale_time)');
|
||||
$builder->orderBy('sale_id');
|
||||
|
||||
return $builder->get()->getResultArray();
|
||||
}
|
||||
|
||||
@@ -125,8 +125,8 @@ class Sale extends Model
|
||||
//Only non-suspended records
|
||||
$where = 'sales.sale_status = 0 AND ';
|
||||
$where .= empty($config['date_or_time_format'])
|
||||
? 'DATE(' . $db_prefix . 'sales.sale_time) BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date'])
|
||||
: 'sales.sale_time BETWEEN ' . $this->db->escape(rawurldecode($filters['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($filters['end_date']));
|
||||
? 'DATE(`' . $db_prefix . 'sales`.`sale_time`) BETWEEN ' . $this->db->escape($filters['start_date']) . ' AND ' . $this->db->escape($filters['end_date'])
|
||||
: '`sales`.`sale_time` BETWEEN ' . $this->db->escape(rawurldecode($filters['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($filters['end_date']));
|
||||
|
||||
$this->create_temp_table_sales_payments_data($where);
|
||||
|
||||
@@ -471,9 +471,7 @@ class Sale extends Model
|
||||
{
|
||||
$builder = $this->db->table('sales');
|
||||
$builder->where('sale_id', $sale_id);
|
||||
$update_data = $sale_data;
|
||||
unset($update_data['payments']);
|
||||
$success = $builder->update($update_data);
|
||||
$success = $builder->update($sale_data);
|
||||
|
||||
//touch payment only if update sale is successful and there is a payments object otherwise the result would be to delete all the payments associated to the sale
|
||||
if($success && !empty($sale_data['payments']))
|
||||
@@ -1244,7 +1242,7 @@ class Sale extends Model
|
||||
. $this->db->prefixTable('sales') . ' where sale_status = '. SUSPENDED .' AND customer_id = ' . $customer_id);
|
||||
}
|
||||
|
||||
return $query->getResultArray() ?: [];
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -121,7 +121,7 @@ class Tax extends Model
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
return $query->getResultArray() ?: [];
|
||||
return $query->getResultArray();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,241 +1,227 @@
|
||||
<?php
|
||||
|
||||
use Config\OSPOS;
|
||||
use Config\OSPOS;
|
||||
|
||||
/**
|
||||
* @var string $dbVersion
|
||||
* @var string $db_version
|
||||
* @var array $config
|
||||
*/
|
||||
?>
|
||||
<style>
|
||||
a:hover {
|
||||
cursor:pointer;
|
||||
a:hover {
|
||||
cursor:pointer;
|
||||
}
|
||||
hidden {
|
||||
hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
</style>
|
||||
</style><script type="application/javascript" src="js/clipboard.min.js"></script>
|
||||
<div id="config_wrapper" class="col-sm-12">
|
||||
<?php
|
||||
<?php
|
||||
|
||||
echo lang('Config.server_notice') ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-2" style="text-align: left;"><br>
|
||||
<strong>
|
||||
<p style="min-height:14.7em;">General Info</p>
|
||||
<p style="min-height:10.5em;">User Setup</p><br>
|
||||
<p>Permissions</p>
|
||||
</strong>
|
||||
</div>
|
||||
<div class="col-sm-8" id="issuetemplate" style="text-align: left;"><br>
|
||||
<?= lang('Config.ospos_info') . ':' ?>
|
||||
<?= esc(config('App')->application_version) ?> - <?= esc(substr(config(OSPOS::class)->commit_sha1, 0, 6)) ?><br>
|
||||
Language Code: <?= current_language_code() ?><br><br>
|
||||
<div id="TimeError"></div>
|
||||
Extensions & Modules:<br>
|
||||
<?php
|
||||
echo "» GD: ", extension_loaded('gd') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red;">Disabled ✗</span>', '<br>';
|
||||
echo "» BC Math: ", extension_loaded('bcmath') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» INTL: ", extension_loaded('intl') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» OpenSSL: ", extension_loaded('openssl') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» MBString: ", extension_loaded('mbstring') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» Curl: ", extension_loaded('curl') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» Xml: ", extension_loaded('xml') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br><br>';
|
||||
?>
|
||||
User Configuration:<br>
|
||||
.Browser:
|
||||
<?php
|
||||
/**
|
||||
* @param string $userAgent
|
||||
* @return string
|
||||
*/
|
||||
function getBrowserNameAndVersion(string $userAgent): string
|
||||
{
|
||||
$browser = match (true) {
|
||||
strpos($userAgent, 'Opera') !== false || strpos($userAgent, 'OPR/') !== false => 'Opera',
|
||||
strpos($userAgent, 'Edge') !== false => 'Edge',
|
||||
strpos($userAgent, 'Chrome') !== false => 'Chrome',
|
||||
strpos($userAgent, 'Safari') !== false => 'Safari',
|
||||
strpos($userAgent, 'Firefox') !== false => 'Firefox',
|
||||
strpos($userAgent, 'MSIE') !== false || strpos($userAgent, 'Trident/7') !== false => 'Internet Explorer',
|
||||
default => 'Other',
|
||||
};
|
||||
echo lang('Config.server_notice') ?>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-2" style="text-align: left;"><br>
|
||||
<p style="min-height:14.7em;"><strong>General Info </p>
|
||||
<p style="min-height:9.9em;">User Setup</p><br>
|
||||
<p>Permissions</p></strong>
|
||||
</div>
|
||||
<div class="col-sm-8" id="issuetemplate" style="text-align: left;"><br>
|
||||
<?= lang('Config.ospos_info') . ':' ?>
|
||||
<?= esc(config('App')->application_version) ?> - <?= esc(substr(config(OSPOS::class)->commit_sha1, 0, 6)) ?><br>
|
||||
Language Code: <?= current_language_code() ?><br><br>
|
||||
<div id="TimeError"></div>
|
||||
Extensions & Modules:<br>
|
||||
<?php
|
||||
echo "» GD: ", extension_loaded('gd') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red;">Disabled ✗</span>', '<br>';
|
||||
echo "» BC Math: ", extension_loaded('bcmath') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» INTL: ", extension_loaded('intl') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» OpenSSL: ", extension_loaded('openssl') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» MBString: ", extension_loaded('mbstring') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» Curl: ", extension_loaded('curl') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br>';
|
||||
echo "» Xml: ", extension_loaded('xml') ? '<span style="color: green;">Enabled ✓</span>' : '<span style="color: red">Disabled ✗</span>', '<br><br>';
|
||||
?>
|
||||
User Configuration:<br>
|
||||
.Browser:
|
||||
<?php
|
||||
/**
|
||||
* @param string $user_agent
|
||||
* @return string
|
||||
*/
|
||||
function get_browser_name(string $user_agent): string
|
||||
{
|
||||
if (strpos($user_agent, 'Opera') || strpos($user_agent, 'OPR/')) return 'Opera';
|
||||
elseif (strpos($user_agent, 'Edge')) return 'Edge';
|
||||
elseif (strpos($user_agent, 'Chrome')) return 'Chrome';
|
||||
elseif (strpos($user_agent, 'Safari')) return 'Safari';
|
||||
elseif (strpos($user_agent, 'Firefox')) return 'Firefox';
|
||||
elseif (strpos($user_agent, 'MSIE') || strpos($user_agent, 'Trident/7')) return 'Internet Explorer';
|
||||
return 'Other';
|
||||
}
|
||||
echo esc(get_browser_name($_SERVER['HTTP_USER_AGENT']));
|
||||
?><br>
|
||||
.Server Software: <?= esc($_SERVER['SERVER_SOFTWARE']) ?><br>
|
||||
.PHP Version: <?= PHP_VERSION ?><br>
|
||||
.DB Version: <?= esc($db_version) ?><br>
|
||||
.Server Port: <?= esc($_SERVER['SERVER_PORT']) ?><br>
|
||||
.OS: <?= php_uname('s') .' '. php_uname('r') ?><br><br>
|
||||
File Permissions:<br>
|
||||
» [writeable/logs:]
|
||||
<?php $logs = WRITEPATH . 'logs/';
|
||||
$uploads = FCPATH . 'uploads/';
|
||||
$images = FCPATH . 'uploads/item_pics/';
|
||||
$import = '../import_items.csv'; //TODO: These two are probably incorrect paths because CI4 has a different folder structure
|
||||
$importcustomers = WRITEPATH . '/uploads/import_customers.csv'; //TODO: This variable does not follow naming conventions for the project.
|
||||
|
||||
$version = match ($browser) {
|
||||
'Opera' => preg_match('/(Opera|OPR)\/([0-9.]+)/', $userAgent, $matches) ? $matches[2] : '',
|
||||
'Edge' => preg_match('/Edge\/([0-9.]+)/', $userAgent, $matches) ? $matches[1] : '',
|
||||
'Chrome' => preg_match('/Chrome\/([0-9.]+)/', $userAgent, $matches) ? $matches[1] : '',
|
||||
'Safari' => preg_match('/Version\/([0-9.]+)/', $userAgent, $matches) ? $matches[1] : '',
|
||||
'Firefox' => preg_match('/Firefox\/([0-9.]+)/', $userAgent, $matches) ? $matches[1] : '',
|
||||
'Internet Explorer' => preg_match('/(MSIE|rv:)([0-9.]+)/', $userAgent, $matches) ? $matches[2] : '',
|
||||
default => '',
|
||||
};
|
||||
if(is_writable($logs))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($logs)),-4) . ' | ' . '<span style="color: green;"> Writable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($logs)),-4) . ' | ' . '<span style="color: red;"> Not Writable ✗ </span>';
|
||||
}
|
||||
|
||||
return $browser . ($version ? ' ' . $version : '');
|
||||
}
|
||||
echo esc(getBrowserNameAndVersion($_SERVER['HTTP_USER_AGENT']));
|
||||
?><br>
|
||||
.Server Software: <?= esc($_SERVER['SERVER_SOFTWARE']) ?><br>
|
||||
.PHP Version: <?= PHP_VERSION ?><br>
|
||||
.DB Version: <?= esc($dbVersion) ?><br>
|
||||
.Server Port: <?= esc($_SERVER['SERVER_PORT']) ?><br>
|
||||
.OS: <?= php_uname('s') .' '. php_uname('r') ?><br><br>
|
||||
.OS Time Zone: <span id="timezone" style="font-weight:600"></span><br>
|
||||
.OSPOS Time Zone: <span id="ostimezone" style="font-weight:600;" ><?= esc($config['timezone']) ?></span>
|
||||
<br><br>
|
||||
clearstatcache();
|
||||
if(is_writable($logs) && substr(decoct(fileperms($logs)), -4) != 750 )
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓</span>';
|
||||
}
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
» [public/uploads:]
|
||||
<?php
|
||||
if(is_writable($uploads))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($uploads)),-4) . ' | ' . '<span style="color: green;"> Writable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($uploads)),-4) . ' | ' . '<span style="color: red;"> Not Writable ✗ </span>';
|
||||
}
|
||||
|
||||
File Permissions:<br>
|
||||
» [writeable/logs:]
|
||||
<?php $logs = WRITEPATH . 'logs/';
|
||||
$uploads = FCPATH . 'uploads/';
|
||||
$images = FCPATH . 'uploads/item_pics/';
|
||||
$importCustomers = WRITEPATH . '/uploads/importCustomers.csv'; //TODO: This variable does not follow naming conventions for the project.
|
||||
clearstatcache();
|
||||
if(is_writable($uploads) && substr(decoct(fileperms($uploads)), -4) != 750 )
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
» [writable/uploads/item_pics:]
|
||||
<?php
|
||||
if (is_writable($images))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($images)),-4) . ' | ' . '<span style="color: green;"> Writable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($images)),-4) . ' | ' . '<span style="color: red;"> Not Writable ✗ </span>';
|
||||
}
|
||||
|
||||
if (is_writable($logs))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($logs)), -4) . ' | ' . '<span style="color: green;"> Writable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($logs)), -4) . ' | ' . '<span style="color: red;"> Not Writable ✗ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
if (substr(decoct(fileperms($images)), -4) != 750 )
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
» [import_customers.csv:]
|
||||
<?php
|
||||
if (is_readable($importcustomers))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($importcustomers)),-4) . ' | ' . '<span style="color: green;"> Readable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o",fileperms($importcustomers)),-4) . ' | ' . '<span style="color: red;"> Not Readable ✗ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
|
||||
clearstatcache();
|
||||
if (is_writable($logs) && substr(decoct(fileperms($logs)), -4) != 750)
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓</span>';
|
||||
}
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
» [public/uploads:]
|
||||
<?php
|
||||
if (is_writable($uploads))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($uploads)), -4) . ' | ' . '<span style="color: green;"> Writable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($uploads)), -4) . ' | ' . '<span style="color: red;"> Not Writable ✗ </span>';
|
||||
}
|
||||
if (!((substr(decoct(fileperms($importcustomers)), -4) == 640) || (substr(decoct(fileperms($importcustomers)), -4) == 660) ))
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
<?php
|
||||
if(!((substr(decoct(fileperms($logs)), -4) == 750)
|
||||
&& (substr(decoct(fileperms($uploads)), -4) == 750)
|
||||
&& (substr(decoct(fileperms($images)), -4) == 750)
|
||||
&& ((substr(decoct(fileperms($importcustomers)), -4) == 640)
|
||||
|| (substr(decoct(fileperms($importcustomers)), -4) == 660))))
|
||||
{
|
||||
echo '<br><span style="color: red;"><strong>' . lang('Config.security_issue') . '</strong> <br>' . lang('Config.perm_risk') . '</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br><span style="color: green;">' . lang('Config.no_risk') . '</strong> <br> </span>';
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
if(substr(decoct(fileperms($logs)), -4) != 750)
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [writeable/logs:] ' . lang('Config.is_writable') . '</span>';
|
||||
}
|
||||
|
||||
if (is_writable($uploads) && substr(decoct(fileperms($uploads)), -4) != 750)
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓ </span>';
|
||||
}
|
||||
if(substr(decoct(fileperms($uploads)), -4) != 750)
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [writable/uploads:] ' . lang('Config.is_writable') . '</span>';
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
» [writable/uploads/item_pics:]
|
||||
<?php
|
||||
if (is_writable($images))
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($images)), -4) . ' | ' . '<span style="color: green;"> Writable ✓ </span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($images)), -4) . ' | ' . '<span style="color: red;"> Not Writable ✗ </span>';
|
||||
}
|
||||
if(substr(decoct(fileperms($images)), -4) != 750)
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [writable/uploads/item_pics:] ' . lang('Config.is_writable') . '</span>';
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
|
||||
if (substr(decoct(fileperms($images)), -4) != 750)
|
||||
{
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓ </span>';
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
» [importCustomers.csv:]
|
||||
<?php
|
||||
if (is_readable($importCustomers)) {
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($importCustomers)), -4) . ' | ' . '<span style="color: green;"> Readable ✓ </span>';
|
||||
} else {
|
||||
echo ' - ' . substr(sprintf("%o", fileperms($importCustomers)), -4) . ' | ' . '<span style="color: red;"> Not Readable ✗ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
|
||||
if (!((substr(decoct(fileperms($importCustomers)), -4) == 640) || (substr(decoct(fileperms($importCustomers)), -4) == 660))) {
|
||||
echo ' | <span style="color: red;">Vulnerable or Incorrect Permissions ✗</span>';
|
||||
} else {
|
||||
echo ' | <span style="color: green;">Security Check Passed ✓ </span>';
|
||||
}
|
||||
clearstatcache();
|
||||
?>
|
||||
<br>
|
||||
<?php
|
||||
if (!((substr(decoct(fileperms($logs)), -4) == 750)
|
||||
&& (substr(decoct(fileperms($uploads)), -4) == 750)
|
||||
&& (substr(decoct(fileperms($images)), -4) == 750)
|
||||
&& ((substr(decoct(fileperms($importCustomers)), -4) == 640)
|
||||
|| (substr(decoct(fileperms($importCustomers)), -4) == 660))))
|
||||
{
|
||||
echo '<br><span style="color: red;"><strong>' . lang('Config.security_issue') . '</strong> <br>' . lang('Config.perm_risk') . '</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br><span style="color: green;">' . lang('Config.no_risk') . '</strong> <br> </span>';
|
||||
}
|
||||
|
||||
if (substr(decoct(fileperms($logs)), -4) != 750)
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [writeable/logs:] ' . lang('Config.is_writable') . '</span>';
|
||||
}
|
||||
|
||||
if (substr(decoct(fileperms($uploads)), -4) != 750)
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [writable/uploads:] ' . lang('Config.is_writable') . '</span>';
|
||||
}
|
||||
|
||||
if (substr(decoct(fileperms($images)), -4) != 750)
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [writable/uploads/item_pics:] ' . lang('Config.is_writable') . '</span>';
|
||||
}
|
||||
|
||||
if (!((substr(decoct(fileperms($importCustomers)), -4) == 640)
|
||||
|| (substr(decoct(fileperms($importCustomers)), -4) == 660)))
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [importCustomers.csv:] ' . lang('Config.is_readable') . '</span>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
if(!((substr(decoct(fileperms($importcustomers)), -4) == 640)
|
||||
|| (substr(decoct(fileperms($importcustomers)), -4) == 660)))
|
||||
{
|
||||
echo '<br><span style="color: red;"> » [import_customers.csv:] ' . lang('Config.is_readable') . '</span>';
|
||||
}
|
||||
?>
|
||||
<br>
|
||||
<div id="timezone" style="font-weight:600;"></div><br><br>
|
||||
<div id="ostimezone" style="display:none;" ><?= esc($config['timezone']) ?></div><br>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: center;">
|
||||
<a class="copy" data-clipboard-action="copy" data-clipboard-target="#issuetemplate">Copy Info</a> | <a href="https://github.com/opensourcepos/opensourcepos/issues/new" target="_blank"> <?= lang('Config.report_an_issue') ?></a>
|
||||
<script>
|
||||
var clipboard = new ClipboardJS('.copy');
|
||||
<a class="copy" data-clipboard-action="copy" data-clipboard-target="#issuetemplate">Copy Info</a> | <a href="https://github.com/opensourcepos/opensourcepos/issues/new" target="_blank"> <?= lang('Config.report_an_issue') ?></a>
|
||||
<script>
|
||||
var clipboard = new ClipboardJS('.copy');
|
||||
|
||||
clipboard.on('success', function(e) {
|
||||
document.getSelection().removeAllRanges();
|
||||
});
|
||||
clipboard.on('success', function(e) {
|
||||
document.getSelection().removeAllRanges();
|
||||
});
|
||||
|
||||
document.getElementById("timezone").innerText = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
document.getElementById("timezone").innerText = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
|
||||
$(function() {
|
||||
$('#timezone').clone().appendTo('#timezoneE');
|
||||
});
|
||||
$(function() {
|
||||
$('#timezone').clone().appendTo('#timezoneE');
|
||||
});
|
||||
|
||||
if($('#timezone').html() !== $('#ostimezone').html())
|
||||
document.getElementById("TimeError").innerHTML = '<span style="color: red;"><?= lang('Config.timezone_error') ?></span><br><br><?= lang('Config.user_timezone') ?><div id="timezoneE" style="font-weight:600;"></div><br><?= lang('Config.os_timezone') ?><div id="ostimezoneE" style="font-weight:600;"><?= esc($config['timezone']) ?></div><br>';
|
||||
</script>
|
||||
if($('#timezone').html() !== $('#ostimezone').html())
|
||||
document.getElementById("TimeError").innerHTML = '<span style="color: red;"><?= lang('Config.timezone_error') ?></span><br><br><?= lang('Config.user_timezone') ?><div id="timezoneE" style="font-weight:600;"></div><br><?= lang('Config.os_timezone') ?><div id="ostimezoneE" style="font-weight:600;"><?= esc($config['timezone']) ?></div><br>';
|
||||
</script>
|
||||
</div>
|
||||
|
||||
@@ -169,12 +169,23 @@ $(document).ready(function()
|
||||
{
|
||||
<?= view('partial/datepicker_locale') ?>
|
||||
|
||||
var amount_validator = function(field) {
|
||||
return {
|
||||
url: "<?= esc("$controller_name/ajax_check_amount") ?>",
|
||||
type: 'POST',
|
||||
dataFilter: function(data) {
|
||||
var response = JSON.parse(data);
|
||||
return response.success;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('#supplier_name').click(function() {
|
||||
$(this).attr('value', '');
|
||||
});
|
||||
|
||||
$('#supplier_name').autocomplete({
|
||||
source: '<?= "suppliers/suggest" ?>',
|
||||
source: '<?= esc(site_url("suppliers/suggest"), 'url') ?>',
|
||||
minChars:0,
|
||||
delay:10,
|
||||
select: function (event, ui) {
|
||||
@@ -200,7 +211,7 @@ $(document).ready(function()
|
||||
});
|
||||
|
||||
<?php
|
||||
if($expenses_info->expense_id != -1)
|
||||
if(!empty($expenses_info->expense_id))
|
||||
{
|
||||
?>
|
||||
$('#supplier_id').val('<?= $expenses_info->supplier_id ?>');
|
||||
@@ -228,9 +239,7 @@ $(document).ready(function()
|
||||
|
||||
rules:
|
||||
{
|
||||
supplier_name: 'required',
|
||||
category: 'required',
|
||||
expense_category_id: 'required',
|
||||
date:
|
||||
{
|
||||
required: true
|
||||
@@ -238,18 +247,17 @@ $(document).ready(function()
|
||||
amount:
|
||||
{
|
||||
required: true,
|
||||
remote: "<?= "$controller_name/checkNumeric" ?>"
|
||||
remote: amount_validator('#amount')
|
||||
},
|
||||
tax_amount:
|
||||
{
|
||||
remote: "<?= "$controller_name/checkNumeric" ?>"
|
||||
remote: amount_validator('#tax_amount')
|
||||
}
|
||||
},
|
||||
|
||||
messages:
|
||||
{
|
||||
category: "<?= lang('Expenses.category_required') ?>",
|
||||
expense_category_id: "<?= lang('Expenses_categories.category_name_required') ?>",
|
||||
date:
|
||||
{
|
||||
required: "<?= lang('Expenses.date_required') ?>"
|
||||
|
||||
@@ -79,7 +79,6 @@ $(document).ready(function()
|
||||
|
||||
var fill_value = function(event, ui) {
|
||||
event.preventDefault();
|
||||
$(this).val((ui.item ? ui.item.label : ""));
|
||||
$("input[name='person_id']").val(ui.item.value);
|
||||
$("input[name='person_name']").val(ui.item.label);
|
||||
};
|
||||
@@ -88,7 +87,6 @@ $(document).ready(function()
|
||||
source: "<?= esc("customers/suggest") ?>",
|
||||
minChars: 0,
|
||||
delay: 15,
|
||||
change: fill_value,
|
||||
cacheLength: 1,
|
||||
appendTo: '.modal-content',
|
||||
select: fill_value,
|
||||
@@ -119,14 +117,11 @@ $(document).ready(function()
|
||||
if($config['giftcard_number'] == 'series')
|
||||
{
|
||||
?>
|
||||
person_name:
|
||||
{
|
||||
required: true
|
||||
},
|
||||
giftcard_number:
|
||||
{
|
||||
required: true
|
||||
},
|
||||
required: true,
|
||||
number: true
|
||||
},
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@@ -142,9 +137,7 @@ $(document).ready(function()
|
||||
},
|
||||
dataFilter: function(data) {
|
||||
var response = JSON.parse(data);
|
||||
if (response.success) {
|
||||
$('#giftcard_amount').val(response.giftcard_amount);
|
||||
}
|
||||
$('#giftcard_amount').val(response.giftcard_amount);
|
||||
return response.success;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,30 +31,28 @@
|
||||
"matrix": "https://matrix.to/#/#opensourcepos_Lobby:gitter.im"
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"codeigniter4/framework": "4.5.5",
|
||||
"php": "~8.1",
|
||||
"codeigniter4/framework": "4.5.1",
|
||||
"dompdf/dompdf": "^2.0.3",
|
||||
"ezyang/htmlpurifier": "^4.17",
|
||||
"laminas/laminas-escaper": "^2.13",
|
||||
"laminas/laminas-escaper": "2.13.0",
|
||||
"paragonie/random_compat": "^2.0.21",
|
||||
"picqer/php-barcode-generator": "^2.4.0",
|
||||
"psr/log": "3.0.0",
|
||||
"tamtamchik/namecase": "^3.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"codeigniter/coding-standard": "^1.7",
|
||||
"codeigniter4/devkit": "^1.2.3",
|
||||
"codeigniter4/devkit": "^1.2.2",
|
||||
"fakerphp/faker": "^1.23.0",
|
||||
"friendsofphp/php-cs-fixer": "^3.47.1",
|
||||
"friendsofphp/php-cs-fixer": "3.47.1",
|
||||
"kint-php/kint": "^5.0.4",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"nexusphp/cs-config": "^3.6",
|
||||
"phpunit/phpunit": "^10.5.16 || ^11.2",
|
||||
"predis/predis": "^1.1 || ^2.0",
|
||||
"phpunit/phpunit": "9.6.19",
|
||||
"predis/predis": "^1.1||^2.0",
|
||||
"roave/security-advisories": "dev-latest"
|
||||
},
|
||||
"replace": {
|
||||
"psr/log": "*"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\": "app/",
|
||||
|
||||
2169
composer.lock
generated
2169
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,4 @@
|
||||
version: '2.2'
|
||||
|
||||
volumes:
|
||||
uploads:
|
||||
|
||||
@@ -3,10 +3,10 @@ include:
|
||||
|
||||
services:
|
||||
sqlscript:
|
||||
image: jekkos/opensourcepos:sql-master
|
||||
image: jekkos/opensourcepos:sql-ci4-branch
|
||||
command: /bin/sh -c 'exit 0'
|
||||
ospos:
|
||||
image: jekkos/opensourcepos:master
|
||||
image: jekkos/opensourcepos:ci4-branch
|
||||
restart: always
|
||||
depends_on:
|
||||
- mysql
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
version: '2'
|
||||
|
||||
volumes:
|
||||
uploads:
|
||||
@@ -19,9 +20,8 @@ services:
|
||||
- "3306"
|
||||
networks:
|
||||
- app_net
|
||||
volumes_from:
|
||||
- sqlscript
|
||||
volumes:
|
||||
- ./app/Database:/docker-entrypoint-initdb.d
|
||||
- mysql:/var/lib/mysql:rw
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=pointofsale
|
||||
|
||||
37
package-lock.json
generated
37
package-lock.json
generated
@@ -14,7 +14,7 @@
|
||||
"bootstrap-datetime-picker": "2.4.4",
|
||||
"bootstrap-notify": "^3.1.3",
|
||||
"bootstrap-select": "^1.13.18",
|
||||
"bootstrap-table": "^1.23.5",
|
||||
"bootstrap-table": "^1.22.4",
|
||||
"bootstrap-tagsinput-2021": "^0.8.6",
|
||||
"bootstrap-toggle": "^2.2.2",
|
||||
"bootstrap3-dialog": "github:nakupanda/bootstrap3-dialog#master",
|
||||
@@ -1185,10 +1185,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/bootstrap-table": {
|
||||
"version": "1.23.5",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap-table/-/bootstrap-table-1.23.5.tgz",
|
||||
"integrity": "sha512-9WByoSpJvA73gi2YYIlX6IWR74oZtBmSixul/Th8FTBtBd/kZRpbKESGTjhA3BA3AYTnfyY8Iy1KeRWPlV2GWQ==",
|
||||
"license": "MIT",
|
||||
"version": "1.22.5",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap-table/-/bootstrap-table-1.22.5.tgz",
|
||||
"integrity": "sha512-iaQBfZzNuMRVughNYdonPGvgL6A7xfsruqYKaSuDuUWqQDTt8WvTBVwV61XiDv2aks7RaAQoZhoi2jo9nF6U7w==",
|
||||
"peerDependencies": {
|
||||
"jquery": "3"
|
||||
}
|
||||
@@ -1294,12 +1293,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"fill-range": "^7.1.1"
|
||||
"fill-range": "^7.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -2203,9 +2202,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dompurify": {
|
||||
"version": "2.5.6",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz",
|
||||
"integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==",
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.1.tgz",
|
||||
"integrity": "sha512-HH391uRJXAAeelougod93W++2gECfHIVCqq+B/4znhjCgb2zVPL+iLOVnTYwejqAuNf69Ffc5ILQYdPHsZACJA==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/dot-prop": {
|
||||
@@ -2513,9 +2512,9 @@
|
||||
"integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
@@ -5030,12 +5029,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||
"devOptional": true,
|
||||
"dependencies": {
|
||||
"braces": "^3.0.3",
|
||||
"braces": "^3.0.2",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"bootstrap-datetime-picker": "2.4.4",
|
||||
"bootstrap-notify": "^3.1.3",
|
||||
"bootstrap-select": "^1.13.18",
|
||||
"bootstrap-table": "^1.23.5",
|
||||
"bootstrap-table": "^1.22.4",
|
||||
"bootstrap-tagsinput-2021": "^0.8.6",
|
||||
"bootstrap-toggle": "^2.2.2",
|
||||
"bootstrap3-dialog": "github:nakupanda/bootstrap3-dialog#master",
|
||||
|
||||
30
preload.php
30
preload.php
@@ -29,6 +29,19 @@ require __DIR__ . '/app/Config/Paths.php';
|
||||
// Path to the front controller
|
||||
define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR);
|
||||
|
||||
/**
|
||||
* See https://www.php.net/manual/en/function.str-contains.php#126277
|
||||
*/
|
||||
if (! function_exists('str_contains')) {
|
||||
/**
|
||||
* Polyfill of str_contains()
|
||||
*/
|
||||
function str_contains(string $haystack, string $needle): bool
|
||||
{
|
||||
return empty($needle) || strpos($haystack, $needle) !== false;
|
||||
}
|
||||
}
|
||||
|
||||
class preload
|
||||
{
|
||||
/**
|
||||
@@ -43,20 +56,17 @@ class preload
|
||||
'/system/Database/Postgre/',
|
||||
'/system/Database/SQLite3/',
|
||||
'/system/Database/SQLSRV/',
|
||||
// Not needed for web apps.
|
||||
// Not needed.
|
||||
'/system/Database/Seeder.php',
|
||||
'/system/Test/',
|
||||
'/system/Language/',
|
||||
'/system/CLI/',
|
||||
'/system/Commands/',
|
||||
'/system/Publisher/',
|
||||
'/system/ComposerScripts.php',
|
||||
// Not Class/Function files.
|
||||
'/system/Config/Routes.php',
|
||||
'/system/Language/',
|
||||
'/system/bootstrap.php',
|
||||
'/system/rewrite.php',
|
||||
'/Views/',
|
||||
// Errors occur.
|
||||
'/system/Config/Routes.php',
|
||||
'/system/ThirdParty/',
|
||||
],
|
||||
],
|
||||
@@ -67,18 +77,16 @@ class preload
|
||||
$this->loadAutoloader();
|
||||
}
|
||||
|
||||
private function loadAutoloader(): void
|
||||
private function loadAutoloader()
|
||||
{
|
||||
$paths = new Config\Paths();
|
||||
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'Boot.php';
|
||||
|
||||
CodeIgniter\Boot::preload($paths);
|
||||
require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'bootstrap.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Load PHP files.
|
||||
*/
|
||||
public function load(): void
|
||||
public function load()
|
||||
{
|
||||
foreach ($this->paths as $path) {
|
||||
$directory = new RecursiveDirectoryIterator($path['include']);
|
||||
|
||||
@@ -68,7 +68,7 @@ Options All -Indexes
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
Header add Content-Security-Policy "default-src 'self' www.google.com; connect-src 'self' nominatim.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval' www.google.com www.gstatic.com; style-src 'self' 'unsafe-inline' fonts.googleapis.com; font-src 'self' fonts.googleapis.com fonts.gstatic.com; img-src 'self' data: blob:; object-src 'none'; form-action 'self'"
|
||||
Header add Content-Security-Policy "default-src 'self' www.google.com; connect-src 'self' nominatim.openstreetmap.org; script-src 'self' 'unsafe-inline' 'unsafe-eval' www.google.com www.gstatic.com; style-src 'self' 'unsafe-inline' fonts.googleapis.com; font-src 'self' fonts.googleapis.com fonts.gstatic.com; img-src 'self' data:; object-src 'none'; form-action 'self'"
|
||||
Header set X-Content-Type-Options "nosniff"
|
||||
Header set X-XSS-Protection "1; mode=block"
|
||||
Header set X-Frame-Options "DENY"
|
||||
|
||||
@@ -18,12 +18,6 @@ a.none
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
@media (min-width:1300px) {
|
||||
.container {
|
||||
width: 1400px;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar
|
||||
{
|
||||
border-radius: 0;
|
||||
|
||||
@@ -258,7 +258,7 @@
|
||||
iconSize: 'sm',
|
||||
silentSort: true,
|
||||
paginationVAlign: 'bottom',
|
||||
escape: true
|
||||
escape: false
|
||||
}));
|
||||
enable_actions();
|
||||
init_delete();
|
||||
@@ -287,7 +287,7 @@
|
||||
return function (resource, response) {
|
||||
var id = response.id !== undefined ? response.id.toString() : "";
|
||||
if (!response.success) {
|
||||
$.notify($.text(response.message).html(), { type: 'danger' });
|
||||
$.notify(response.message, { type: 'danger' });
|
||||
} else {
|
||||
var message = response.message;
|
||||
var selector = rows_selector(response.id);
|
||||
|
||||
2
spark
2
spark
@@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
// Refuse to run when called from php-cgi
|
||||
if (str_starts_with(PHP_SAPI, 'cgi')) {
|
||||
if (strpos(PHP_SAPI, 'cgi') === 0) {
|
||||
exit("The cli tool is not supported when running php-cgi. It needs php-cli to function!\n\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<IfModule authz_core_module>
|
||||
Require all denied
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !authz_core_module>
|
||||
Deny from all
|
||||
Deny from all
|
||||
</IfModule>
|
||||
|
||||
Reference in New Issue
Block a user