mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-02 06:14:51 -04:00
Merge remote-tracking branch 'origin/master' into feature-case-sensitive-attribute-updates
This commit is contained in:
29
.env.example
29
.env.example
@@ -4,6 +4,35 @@
|
||||
|
||||
CI_ENVIRONMENT = production
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# SECURITY: ALLOWED HOSTNAMES
|
||||
#--------------------------------------------------------------------
|
||||
# IMPORTANT: Whitelist of allowed hostnames to prevent Host Header
|
||||
# Injection attacks (GHSA-jchf-7hr6-h4f3).
|
||||
#
|
||||
# If not configured, the application will default to 'localhost',
|
||||
# which may break functionality in production.
|
||||
#
|
||||
# Configure this with all domains/subdomains that host your application:
|
||||
# - Primary domain
|
||||
# - WWW subdomain (if used)
|
||||
# - Any alternative domains
|
||||
#
|
||||
# Examples:
|
||||
# Single domain:
|
||||
# app.allowedHostnames.0 = 'example.com'
|
||||
#
|
||||
# Multiple domains:
|
||||
# app.allowedHostnames.0 = 'example.com'
|
||||
# app.allowedHostnames.1 = 'www.example.com'
|
||||
# app.allowedHostnames.2 = 'demo.opensourcepos.org'
|
||||
#
|
||||
# For localhost development:
|
||||
# app.allowedHostnames.0 = 'localhost'
|
||||
#
|
||||
# Note: Do not include the protocol (http/https) or port number.
|
||||
#app.allowedHostnames.0 = ''
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# DATABASE
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
72
.github/workflows/update-issue-templates.yml
vendored
Normal file
72
.github/workflows/update-issue-templates.yml
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
name: Update Issue Templates
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * 0'
|
||||
|
||||
jobs:
|
||||
update-templates:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Fetch releases and update templates
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Fetch releases from GitHub API
|
||||
RELEASES=$(gh api repos/${{ github.repository }}/releases --jq '.[].tag_name' | head -n 10)
|
||||
|
||||
# Create temporary file with options
|
||||
OPTIONS_FILE=$(mktemp)
|
||||
echo " - development (unreleased)" >> "$OPTIONS_FILE"
|
||||
while IFS= read -r release; do
|
||||
echo " - opensourcepos $release" >> "$OPTIONS_FILE"
|
||||
done <<< "$RELEASES"
|
||||
|
||||
update_template() {
|
||||
local template="$1"
|
||||
local template_path=".github/ISSUE_TEMPLATE/$template"
|
||||
|
||||
# Find the line numbers for the OpensourcePOS Version dropdown
|
||||
start_line=$(grep -n "label: OpensourcePOS Version" "$template_path" | cut -d: -f1)
|
||||
|
||||
if [ -z "$start_line" ]; then
|
||||
echo "Could not find OpensourcePOS Version in $template"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Find the options section and default line
|
||||
options_start=$((start_line + 3))
|
||||
default_line=$(grep -n "default:" "$template_path" | awk -F: -v opts="$options_start" '$1 > opts {print $1; exit}')
|
||||
|
||||
# Create new template file
|
||||
head -n $((options_start - 1)) "$template_path" > "${template_path}.new"
|
||||
cat "$OPTIONS_FILE" >> "${template_path}.new"
|
||||
tail -n +$default_line "$template_path" >> "${template_path}.new"
|
||||
mv "${template_path}.new" "$template_path"
|
||||
|
||||
echo "Updated $template"
|
||||
}
|
||||
|
||||
update_template "bug report.yml"
|
||||
update_template "feature_request.yml"
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git add .github/ISSUE_TEMPLATE/*.yml
|
||||
if git diff --staged --quiet; then
|
||||
echo "No changes to commit"
|
||||
else
|
||||
git commit -m "Update issue templates with latest releases [skip ci]"
|
||||
git push
|
||||
fi
|
||||
40
AGENTS.md
Normal file
40
AGENTS.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Agent Instructions
|
||||
|
||||
This document provides guidance for AI agents working on the Open Source Point of Sale (OSPOS) codebase.
|
||||
|
||||
## Code Style
|
||||
|
||||
- Follow PHP CodeIgniter 4 coding standards
|
||||
- Run PHP-CS-Fixer before committing: `vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.no-header.php`
|
||||
- Write PHP 8.1+ compatible code with proper type declarations
|
||||
- Use PSR-12 naming conventions: `camelCase` for variables and functions, `PascalCase` for classes, `UPPER_CASE` for constants
|
||||
|
||||
## Development
|
||||
|
||||
- Create a new git worktree for each issue, based on the latest state of `origin/master`
|
||||
- Commit fixes to the worktree and push to the remote
|
||||
|
||||
## Testing
|
||||
|
||||
- Run PHPUnit tests: `composer test`
|
||||
- Tests must pass before submitting changes
|
||||
|
||||
## Build
|
||||
|
||||
- Install dependencies: `composer install && npm install`
|
||||
- Build assets: `npm run build` or `gulp`
|
||||
|
||||
## Conventions
|
||||
|
||||
- Controllers go in `app/Controllers/`
|
||||
- Models go in `app/Models/`
|
||||
- Views go in `app/Views/`
|
||||
- Database migrations in `app/Database/Migrations/`
|
||||
- Use CodeIgniter 4 framework patterns and helpers
|
||||
- Sanitize user input; escape output using `esc()` helper
|
||||
|
||||
## Security
|
||||
|
||||
- Never commit secrets, credentials, or `.env` files
|
||||
- Use parameterized queries to prevent SQL injection
|
||||
- Validate and sanitize all user input
|
||||
3
Dockerfile.test
Normal file
3
Dockerfile.test
Normal file
@@ -0,0 +1,3 @@
|
||||
FROM php:8.4-cli
|
||||
RUN apt-get update && apt-get install -y libicu-dev && docker-php-ext-install intl
|
||||
WORKDIR /app
|
||||
30
INSTALL.md
30
INSTALL.md
@@ -6,6 +6,36 @@
|
||||
- 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)>).
|
||||
- For Windows based installations please read [the wiki](https://github.com/opensourcepos/opensourcepos/wiki). There are closed issues about this subject, as this topic has been covered a lot.
|
||||
|
||||
## Security Configuration
|
||||
|
||||
### Allowed Hostnames (Required for Production)
|
||||
|
||||
OpenSourcePOS validates the Host header against a whitelist to prevent Host Header Injection attacks (GHSA-jchf-7hr6-h4f3). **You must configure this for production deployments.**
|
||||
|
||||
Add the following to your `.env` file:
|
||||
|
||||
```
|
||||
app.allowedHostnames.0 = 'yourdomain.com'
|
||||
app.allowedHostnames.1 = 'www.yourdomain.com'
|
||||
```
|
||||
|
||||
**For local development**, use:
|
||||
```
|
||||
app.allowedHostnames.0 = 'localhost'
|
||||
```
|
||||
|
||||
If `allowedHostnames` is not configured:
|
||||
1. A security warning will be logged
|
||||
2. The application will fall back to 'localhost' as the hostname
|
||||
3. This means URLs generated by the application (links, redirects, etc.) will point to 'localhost'
|
||||
|
||||
### HTTPS Behind Proxy
|
||||
|
||||
If your installation is behind a proxy with SSL offloading, set:
|
||||
```
|
||||
FORCE_HTTPS = true
|
||||
```
|
||||
|
||||
## Local install
|
||||
|
||||
First of all, if you're seeing the message `system folder missing` after launching your browser, or cannot find `database.sql`, that most likely means you have cloned the repository and have not built the project. To build the project from a source commit point instead of from an official release check out [Building OSPOS](BUILD.md). Otherwise, continue with the following steps.
|
||||
|
||||
37
SECURITY.md
37
SECURITY.md
@@ -1,9 +1,9 @@
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
|
||||
|
||||
- [Security Policy](#security-policy)
|
||||
- [Supported Versions](#supported-versions)
|
||||
- [Security Advisories](#security-advisories)
|
||||
- [Reporting a Vulnerability](#reporting-a-vulnerability)
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
@@ -12,14 +12,35 @@
|
||||
|
||||
## Supported Versions
|
||||
|
||||
We release patches for security vulnerabilities. Which versions are eligible to receive such patches depend on the CVSS v3.0 Rating:
|
||||
We release patches for security vulnerabilities.
|
||||
|
||||
| CVSS v3.0 | Supported Versions |
|
||||
| --------- | -------------------------------------------------- |
|
||||
| 7.3 | 3.3.5 |
|
||||
| 9.8 | 3.3.6 |
|
||||
| 6.8 | 3.4.2 |
|
||||
| Version | Supported |
|
||||
| --------- | ------------------ |
|
||||
| >= 3.4.2 | :white_check_mark: |
|
||||
| < 3.4.2 | :x: |
|
||||
|
||||
## Security Advisories
|
||||
|
||||
The following security vulnerabilities have been published:
|
||||
|
||||
### High Severity
|
||||
|
||||
| CVE | Vulnerability | CVSS | Published | Fixed In | Credit |
|
||||
|-----|--------------|------|-----------|----------|--------|
|
||||
| [CVE-2025-68434](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-wjm4-hfwg-5w5r) | CSRF leading to Admin Creation | 8.8 | 2025-12-17 | 3.4.2 | @Nixon-H, @jekkos |
|
||||
| [CVE-2025-68147](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-xgr7-7pvw-fpmh) | Stored XSS in Return Policy | 8.1 | 2025-12-17 | 3.4.2 | @Nixon-H, @jekkos |
|
||||
| [CVE-2025-66924](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-gv8j-f6gq-g59m) | Stored XSS in Item Kits | 7.2 | 2026-03-04 | 3.4.2 | @hungnqdz, @omkaryepre |
|
||||
|
||||
### Medium Severity
|
||||
|
||||
| CVE | Vulnerability | CVSS | Published | Fixed In | Credit |
|
||||
|-----|--------------|------|-----------|----------|--------|
|
||||
| [CVE-2025-68658](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-32r8-8r9r-9chw) | Stored XSS in Company Name | 4.3 | 2026-01-13 | 3.4.2 | @hungnqdz |
|
||||
|
||||
For a complete list including draft advisories, see our [GitHub Security Advisories page](https://github.com/opensourcepos/opensourcepos/security/advisories).
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please report (suspected) security vulnerabilities to **[jeroen@steganos.dev](mailto:jeroen@steganos.dev)**. You will receive a response from us within 48 hours. If the issue is confirmed, we will release a patch as soon as possible depending on complexity but historically within a few days.
|
||||
Please report (suspected) security vulnerabilities to **[jeroen@steganos.dev](mailto:jeroen@steganos.dev)**.
|
||||
|
||||
You will receive a response from us within 48 hours. If the issue is confirmed, we will release a patch as soon as possible depending on complexity but historically within a few days.
|
||||
@@ -55,13 +55,21 @@ class App extends BaseConfig
|
||||
public string $baseURL; // Defined in the constructor
|
||||
|
||||
/**
|
||||
* Allowed Hostnames in the Site URL other than the hostname in the baseURL.
|
||||
* If you want to accept multiple Hostnames, set this.
|
||||
*
|
||||
* E.g.,
|
||||
* When your site URL ($baseURL) is 'http://example.com/', and your site
|
||||
* also accepts 'http://media.example.com/' and 'http://accounts.example.com/':
|
||||
* ['media.example.com', 'accounts.example.com']
|
||||
* Allowed Hostnames for the Site URL.
|
||||
*
|
||||
* Security: This is used to validate the HTTP Host header to prevent
|
||||
* Host Header Injection attacks. If the Host header doesn't match
|
||||
* an entry in this list, the request will use the first allowed hostname.
|
||||
*
|
||||
* IMPORTANT: This MUST be configured for production deployments.
|
||||
* If empty, the application will fall back to 'localhost'.
|
||||
*
|
||||
* Configure via .env file:
|
||||
* app.allowedHostnames.0 = 'example.com'
|
||||
* app.allowedHostnames.1 = 'www.example.com'
|
||||
*
|
||||
* For local development:
|
||||
* app.allowedHostnames.0 = 'localhost'
|
||||
*
|
||||
* @var list<string>
|
||||
*/
|
||||
@@ -284,8 +292,44 @@ class App extends BaseConfig
|
||||
{
|
||||
parent::__construct();
|
||||
$this->https_on = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_ENV['FORCE_HTTPS']) && $_ENV['FORCE_HTTPS'] == 'true');
|
||||
|
||||
$host = $this->getValidHost();
|
||||
$this->baseURL = $this->https_on ? 'https' : 'http';
|
||||
$this->baseURL .= '://' . ((isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : 'localhost') . '/';
|
||||
$this->baseURL .= '://' . $host . '/';
|
||||
$this->baseURL .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates and returns a trusted hostname.
|
||||
*
|
||||
* Security: Prevents Host Header Injection attacks (GHSA-jchf-7hr6-h4f3)
|
||||
* by validating the HTTP_HOST against a whitelist of allowed hostnames.
|
||||
*
|
||||
* @return string A validated hostname
|
||||
*/
|
||||
private function getValidHost(): string
|
||||
{
|
||||
$httpHost = $_SERVER['HTTP_HOST'] ?? 'localhost';
|
||||
|
||||
if (empty($this->allowedHostnames)) {
|
||||
log_message('warning',
|
||||
'Security: allowedHostnames is not configured. ' .
|
||||
'Host header injection protection is disabled. ' .
|
||||
'Please set app.allowedHostnames in your .env file. ' .
|
||||
'Received Host: ' . $httpHost
|
||||
);
|
||||
return 'localhost';
|
||||
}
|
||||
|
||||
if (in_array($httpHost, $this->allowedHostnames, true)) {
|
||||
return $httpHost;
|
||||
}
|
||||
|
||||
log_message('warning',
|
||||
'Security: Rejected HTTP_HOST "' . $httpHost . '" - not in allowedHostnames whitelist. ' .
|
||||
'Using fallback: ' . $this->allowedHostnames[0]
|
||||
);
|
||||
|
||||
return $this->allowedHostnames[0];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,12 +106,24 @@ class Attributes extends Secure_Controller
|
||||
$definition_flags |= $flag;
|
||||
}
|
||||
|
||||
// Validate definition_group (definition_fk) foreign key
|
||||
$definition_group_input = $this->request->getPost('definition_group');
|
||||
$definition_fk = $this->validateDefinitionGroup($definition_group_input);
|
||||
|
||||
if ($definition_fk === false) {
|
||||
return $this->response->setJSON([
|
||||
'success' => false,
|
||||
'message' => lang('Attributes.definition_invalid_group'),
|
||||
'id' => NEW_ENTRY
|
||||
]);
|
||||
}
|
||||
|
||||
// Save definition data
|
||||
$definition_data = [
|
||||
'definition_name' => $this->request->getPost('definition_name'),
|
||||
'definition_unit' => $this->request->getPost('definition_unit') != '' ? $this->request->getPost('definition_unit') : null,
|
||||
'definition_flags' => $definition_flags,
|
||||
'definition_fk' => $this->request->getPost('definition_group') != '' ? $this->request->getPost('definition_group') : null
|
||||
'definition_fk' => $definition_fk
|
||||
];
|
||||
|
||||
if ($this->request->getPost('definition_type') != null) {
|
||||
@@ -150,6 +162,32 @@ class Attributes extends Secure_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates a definition_group foreign key.
|
||||
* Returns the validated integer ID, null if empty, or false if invalid.
|
||||
*
|
||||
* @param mixed $definition_group_input
|
||||
* @return int|null|false
|
||||
*/
|
||||
private function validateDefinitionGroup(mixed $definition_group_input): int|null|false
|
||||
{
|
||||
if ($definition_group_input === '' || $definition_group_input === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$definition_group_id = (int) $definition_group_input;
|
||||
|
||||
// Must be a positive integer, exist in attribute_definitions, and be of type GROUP
|
||||
if ($definition_group_id <= 0
|
||||
|| !$this->attribute->exists($definition_group_id)
|
||||
|| $this->attribute->getAttributeInfo($definition_group_id)->definition_type !== GROUP
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $definition_group_id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $definition_id
|
||||
|
||||
@@ -36,6 +36,9 @@ class Cashups extends Secure_Controller
|
||||
// filters that will be loaded in the multiselect dropdown
|
||||
$data['filters'] = ['is_deleted' => lang('Cashups.is_deleted')];
|
||||
|
||||
// Restore filters from URL
|
||||
$data = array_merge($data, restoreTableFilters($this->request));
|
||||
|
||||
return view('cashups/manage', $data);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ use App\Models\Appconfig;
|
||||
use App\Models\Attribute;
|
||||
use App\Models\Customer_rewards;
|
||||
use App\Models\Dinner_table;
|
||||
use App\Models\Item;
|
||||
use App\Models\Module;
|
||||
use App\Models\Enums\Rounding_mode;
|
||||
use App\Models\Stock_location;
|
||||
@@ -385,9 +386,9 @@ class Config extends Secure_Controller
|
||||
'gcaptcha_enable' => $this->request->getPost('gcaptcha_enable') != null,
|
||||
'gcaptcha_secret_key' => $this->request->getPost('gcaptcha_secret_key'),
|
||||
'gcaptcha_site_key' => $this->request->getPost('gcaptcha_site_key'),
|
||||
'suggestions_first_column' => $this->request->getPost('suggestions_first_column'),
|
||||
'suggestions_second_column' => $this->request->getPost('suggestions_second_column'),
|
||||
'suggestions_third_column' => $this->request->getPost('suggestions_third_column'),
|
||||
'suggestions_first_column' => $this->validateSuggestionsColumn($this->request->getPost('suggestions_first_column'), 'first'),
|
||||
'suggestions_second_column' => $this->validateSuggestionsColumn($this->request->getPost('suggestions_second_column'), 'other'),
|
||||
'suggestions_third_column' => $this->validateSuggestionsColumn($this->request->getPost('suggestions_third_column'), 'other'),
|
||||
'giftcard_number' => $this->request->getPost('giftcard_number'),
|
||||
'derive_sale_quantity' => $this->request->getPost('derive_sale_quantity') != null,
|
||||
'multi_pack_enabled' => $this->request->getPost('multi_pack_enabled') != null,
|
||||
@@ -976,4 +977,26 @@ class Config extends Secure_Controller
|
||||
|
||||
return $this->response->setJSON(['success' => $success]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates suggestions column configuration to prevent SQL injection.
|
||||
*
|
||||
* @param mixed $column The column value from POST
|
||||
* @param string $fieldType Either 'first' or 'other' to determine default fallback
|
||||
* @return string Validated column name
|
||||
*/
|
||||
private function validateSuggestionsColumn(mixed $column, string $fieldType): string
|
||||
{
|
||||
if (!is_string($column)) {
|
||||
return $fieldType === 'first' ? 'name' : '';
|
||||
}
|
||||
|
||||
$allowed = $fieldType === 'first'
|
||||
? Item::ALLOWED_SUGGESTIONS_COLUMNS
|
||||
: Item::ALLOWED_SUGGESTIONS_COLUMNS_WITH_EMPTY;
|
||||
|
||||
$fallback = $fieldType === 'first' ? 'name' : '';
|
||||
|
||||
return in_array($column, $allowed, true) ? $column : $fallback;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,9 @@ class Expenses extends Secure_Controller
|
||||
'is_deleted' => lang('Expenses.is_deleted')
|
||||
];
|
||||
|
||||
// Restore filters from URL
|
||||
$data = array_merge($data, restoreTableFilters($this->request));
|
||||
|
||||
return view('expenses/manage', $data);
|
||||
}
|
||||
|
||||
@@ -90,16 +93,23 @@ class Expenses extends Secure_Controller
|
||||
{
|
||||
$data = []; // TODO: Duplicated code
|
||||
|
||||
$data['employees'] = [];
|
||||
foreach ($this->employee->get_all()->getResult() as $employee) {
|
||||
foreach (get_object_vars($employee) as $property => $value) {
|
||||
$employee->$property = $value;
|
||||
}
|
||||
|
||||
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
|
||||
}
|
||||
|
||||
$data['expenses_info'] = $this->expense->get_info($expense_id);
|
||||
$expense_id = $data['expenses_info']->expense_id;
|
||||
|
||||
$current_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$can_assign_employee = $this->employee->has_grant('employees', $current_employee_id);
|
||||
|
||||
$data['employees'] = [];
|
||||
if ($can_assign_employee) {
|
||||
foreach ($this->employee->get_all()->getResult() as $employee) {
|
||||
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
|
||||
}
|
||||
} else {
|
||||
$stored_employee_id = $expense_id == NEW_ENTRY ? $current_employee_id : $data['expenses_info']->employee_id;
|
||||
$stored_employee = $this->employee->get_info($stored_employee_id);
|
||||
$data['employees'][$stored_employee_id] = $stored_employee->first_name . ' ' . $stored_employee->last_name;
|
||||
}
|
||||
$data['can_assign_employee'] = $can_assign_employee;
|
||||
|
||||
$expense_categories = [];
|
||||
foreach ($this->expense_category->get_all(0, 0, true)->getResultArray() as $row) {
|
||||
@@ -107,11 +117,9 @@ class Expenses extends Secure_Controller
|
||||
}
|
||||
$data['expense_categories'] = $expense_categories;
|
||||
|
||||
$expense_id = $data['expenses_info']->expense_id;
|
||||
|
||||
if ($expense_id == NEW_ENTRY) {
|
||||
$data['expenses_info']->date = date('Y-m-d H:i:s');
|
||||
$data['expenses_info']->employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$data['expenses_info']->employee_id = $current_employee_id;
|
||||
}
|
||||
|
||||
$data['payments'] = [];
|
||||
@@ -152,6 +160,20 @@ class Expenses extends Secure_Controller
|
||||
|
||||
$date_formatter = date_create_from_format($config['dateformat'] . ' ' . $config['timeformat'], $newdate);
|
||||
|
||||
$current_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$submitted_employee_id = $this->request->getPost('employee_id', FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
if (!$this->employee->has_grant('employees', $current_employee_id)) {
|
||||
if ($expense_id == NEW_ENTRY) {
|
||||
$employee_id = $current_employee_id;
|
||||
} else {
|
||||
$existing_expense = $this->expense->get_info($expense_id);
|
||||
$employee_id = $existing_expense->employee_id;
|
||||
}
|
||||
} else {
|
||||
$employee_id = $submitted_employee_id;
|
||||
}
|
||||
|
||||
$expense_data = [
|
||||
'date' => $date_formatter->format('Y-m-d H:i:s'),
|
||||
'supplier_id' => $this->request->getPost('supplier_id') == '' ? null : $this->request->getPost('supplier_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
@@ -161,7 +183,7 @@ class Expenses extends Secure_Controller
|
||||
'payment_type' => $this->request->getPost('payment_type', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'expense_category_id' => $this->request->getPost('expense_category_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
'description' => $this->request->getPost('description', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'employee_id' => $this->request->getPost('employee_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
'employee_id' => $employee_id,
|
||||
'deleted' => $this->request->getPost('deleted') != null
|
||||
];
|
||||
|
||||
|
||||
@@ -36,19 +36,18 @@ class Home extends Secure_Controller
|
||||
/**
|
||||
* Load "change employee password" form
|
||||
*
|
||||
* @return string
|
||||
* @return ResponseInterface|string
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function getChangePassword(int $employeeId = NEW_ENTRY): string
|
||||
public function getChangePassword(int $employeeId = NEW_ENTRY)
|
||||
{
|
||||
$loggedInEmployee = $this->employee->get_logged_in_employee_info();
|
||||
$currentPersonId = $loggedInEmployee->person_id;
|
||||
|
||||
$employeeId = $employeeId === NEW_ENTRY ? $currentPersonId : $employeeId;
|
||||
|
||||
if (!$this->employee->can_modify_employee($employeeId, $currentPersonId)) {
|
||||
header('Location: ' . base_url('no_access/home/home'));
|
||||
exit();
|
||||
if (!$this->employee->isAdmin($currentPersonId) && $employeeId !== $currentPersonId) {
|
||||
return $this->response->setStatusCode(403)->setBody(lang('Employees.unauthorized_modify'));
|
||||
}
|
||||
|
||||
$person_info = $this->employee->get_info($employeeId);
|
||||
@@ -71,7 +70,7 @@ class Home extends Secure_Controller
|
||||
|
||||
$employeeId = $employeeId === NEW_ENTRY ? $currentUser->person_id : $employeeId;
|
||||
|
||||
if (!$this->employee->can_modify_employee($employeeId, $currentUser->person_id)) {
|
||||
if (!$this->employee->isAdmin($currentUser->person_id) && $employeeId !== $currentUser->person_id) {
|
||||
return $this->response->setStatusCode(403)->setJSON([
|
||||
'success' => false,
|
||||
'message' => lang('Employees.unauthorized_modify')
|
||||
|
||||
@@ -71,7 +71,12 @@ class Items extends Secure_Controller
|
||||
$this->session->set('allow_temp_items', 0);
|
||||
|
||||
$data['table_headers'] = get_items_manage_table_headers();
|
||||
$data['stock_location'] = $this->item_lib->get_item_location();
|
||||
|
||||
// Restore stock_location from URL or session
|
||||
$stockLocation = $this->request->getGet('stock_location', FILTER_SANITIZE_NUMBER_INT);
|
||||
$data['stock_location'] = $stockLocation
|
||||
? $stockLocation
|
||||
: $this->item_lib->get_item_location();
|
||||
$data['stock_locations'] = $this->stock_location->get_allowed_locations();
|
||||
|
||||
// Filters that will be loaded in the multiselect dropdown
|
||||
@@ -85,6 +90,9 @@ class Items extends Secure_Controller
|
||||
'temporary' => lang('Items.temp')
|
||||
];
|
||||
|
||||
// Restore filters from URL
|
||||
$data = array_merge($data, restoreTableFilters($this->request));
|
||||
|
||||
return view('items/manage', $data);
|
||||
}
|
||||
|
||||
|
||||
@@ -241,15 +241,26 @@ class Receivings extends Secure_Controller
|
||||
$data['suppliers'][$supplier->person_id] = $supplier->first_name . ' ' . $supplier->last_name;
|
||||
}
|
||||
|
||||
$receiving_info = $this->receiving->get_info($receiving_id)->getRowArray();
|
||||
|
||||
$current_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$can_assign_employee = $this->employee->has_grant('employees', $current_employee_id);
|
||||
|
||||
$data['employees'] = [];
|
||||
foreach ($this->employee->get_all()->getResult() as $employee) {
|
||||
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
|
||||
if ($can_assign_employee) {
|
||||
foreach ($this->employee->get_all()->getResult() as $employee) {
|
||||
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
|
||||
}
|
||||
} else {
|
||||
$stored_employee_id = $receiving_info['employee_id'];
|
||||
$stored_employee = $this->employee->get_info($stored_employee_id);
|
||||
$data['employees'][$stored_employee_id] = $stored_employee->first_name . ' ' . $stored_employee->last_name;
|
||||
}
|
||||
|
||||
$receiving_info = $this->receiving->get_info($receiving_id)->getRowArray();
|
||||
$data['selected_supplier_name'] = !empty($receiving_info['supplier_id']) ? $receiving_info['company_name'] : '';
|
||||
$data['selected_supplier_id'] = $receiving_info['supplier_id'];
|
||||
$data['receiving_info'] = $receiving_info;
|
||||
$data['can_assign_employee'] = $can_assign_employee;
|
||||
|
||||
return view('receivings/form', $data);
|
||||
}
|
||||
@@ -491,10 +502,20 @@ class Receivings extends Secure_Controller
|
||||
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $newdate);
|
||||
$receiving_time = $date_formatter->format('Y-m-d H:i:s');
|
||||
|
||||
$current_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$submitted_employee_id = $this->request->getPost('employee_id', FILTER_SANITIZE_NUMBER_INT);
|
||||
|
||||
if (!$this->employee->has_grant('employees', $current_employee_id)) {
|
||||
$existing_receiving = $this->receiving->get_info($receiving_id)->getRowArray();
|
||||
$employee_id = $existing_receiving['employee_id'];
|
||||
} else {
|
||||
$employee_id = $submitted_employee_id;
|
||||
}
|
||||
|
||||
$receiving_data = [
|
||||
'receiving_time' => $receiving_time,
|
||||
'supplier_id' => $this->request->getPost('supplier_id') ? $this->request->getPost('supplier_id', FILTER_SANITIZE_NUMBER_INT) : null,
|
||||
'employee_id' => $this->request->getPost('employee_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
'employee_id' => $employee_id,
|
||||
'comment' => $this->request->getPost('comment', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'reference' => $this->request->getPost('reference') != '' ? $this->request->getPost('reference', FILTER_SANITIZE_FULL_SPECIAL_CHARS) : null
|
||||
];
|
||||
|
||||
@@ -1776,7 +1776,7 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$this->clearCache();
|
||||
|
||||
$definition_names = $this->attribute->get_definitions_by_flags(attribute::SHOW_IN_SALES);
|
||||
$definition_names = $this->attribute->get_definitions_by_flags(attribute::SHOW_IN_SALES, true);
|
||||
|
||||
$inputs = [
|
||||
'start_date' => $start_date,
|
||||
@@ -1789,7 +1789,12 @@ class Reports extends Secure_Controller
|
||||
$this->detailed_sales->create($inputs);
|
||||
|
||||
$columns = $this->detailed_sales->getDataColumns();
|
||||
$columns['details'] = array_merge($columns['details'], $definition_names);
|
||||
// Extract just names for column headers
|
||||
$definitionHeaders = [];
|
||||
foreach ($definition_names as $definition_id => $definitionInfo) {
|
||||
$definitionHeaders[$definition_id] = $definitionInfo['name'];
|
||||
}
|
||||
$columns['details'] = array_merge($columns['details'], $definitionHeaders);
|
||||
|
||||
$headers = $columns;
|
||||
|
||||
@@ -1930,14 +1935,19 @@ class Reports extends Secure_Controller
|
||||
{
|
||||
$this->clearCache();
|
||||
|
||||
$definition_names = $this->attribute->get_definitions_by_flags(attribute::SHOW_IN_RECEIVINGS);
|
||||
$definition_names = $this->attribute->get_definitions_by_flags(attribute::SHOW_IN_RECEIVINGS, true);
|
||||
|
||||
$inputs = ['start_date' => $start_date, 'end_date' => $end_date, 'receiving_type' => $receiving_type, 'location_id' => $location_id, 'definition_ids' => array_keys($definition_names)];
|
||||
|
||||
$this->detailed_receivings->create($inputs);
|
||||
|
||||
$columns = $this->detailed_receivings->getDataColumns();
|
||||
$columns['details'] = array_merge($columns['details'], $definition_names);
|
||||
// Extract just names for column headers
|
||||
$definitionHeaders = [];
|
||||
foreach ($definition_names as $definition_id => $definitionInfo) {
|
||||
$definitionHeaders[$definition_id] = $definitionInfo['name'];
|
||||
}
|
||||
$columns['details'] = array_merge($columns['details'], $definitionHeaders);
|
||||
|
||||
$headers = $columns;
|
||||
$report_data = $this->detailed_receivings->getData($inputs);
|
||||
|
||||
@@ -75,15 +75,15 @@ class Sales extends Secure_Controller
|
||||
/**
|
||||
* Load the sale edit modal. Used in app/Views/sales/register.php.
|
||||
*
|
||||
* @return string
|
||||
* @return ResponseInterface|string
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function getManage(): string
|
||||
public function getManage(): ResponseInterface|string
|
||||
{
|
||||
$person_id = $this->session->get('person_id');
|
||||
$personId = $this->session->get('person_id');
|
||||
|
||||
if (!$this->employee->has_grant('reports_sales', $person_id)) {
|
||||
redirect('no_access/sales/reports_sales');
|
||||
if (!$this->employee->has_grant('reports_sales', $personId)) {
|
||||
return redirect()->to('no_access/sales/reports_sales');
|
||||
} else {
|
||||
$data['table_headers'] = get_sales_manage_table_headers();
|
||||
|
||||
@@ -92,18 +92,31 @@ class Sales extends Secure_Controller
|
||||
'only_due' => lang('Sales.due_filter'),
|
||||
'only_check' => lang('Sales.check_filter'),
|
||||
'only_creditcard' => lang('Sales.credit_filter'),
|
||||
'only_debit' => lang('Sales.debit'),
|
||||
'only_invoices' => lang('Sales.invoice_filter'),
|
||||
'selected_customer' => lang('Sales.selected_customer')
|
||||
];
|
||||
|
||||
if ($this->sale_lib->get_customer() != -1) {
|
||||
$selected_filters = ['selected_customer'];
|
||||
$selectedFilters = ['selected_customer'];
|
||||
$data['customer_selected'] = true;
|
||||
} else {
|
||||
$data['customer_selected'] = false;
|
||||
$selected_filters = [];
|
||||
$selectedFilters = [];
|
||||
}
|
||||
$data['selected_filters'] = $selected_filters;
|
||||
|
||||
// Restore filters from URL query string
|
||||
$filters = restoreTableFilters($this->request);
|
||||
if (!empty($filters['selected_filters'])) {
|
||||
$selectedFilters = array_merge($selectedFilters, $filters['selected_filters']);
|
||||
}
|
||||
if (isset($filters['start_date'])) {
|
||||
$data['start_date'] = $filters['start_date'];
|
||||
}
|
||||
if (isset($filters['end_date'])) {
|
||||
$data['end_date'] = $filters['end_date'];
|
||||
}
|
||||
$data['selected_filters'] = $selectedFilters;
|
||||
|
||||
return view('sales/manage', $data);
|
||||
}
|
||||
@@ -142,6 +155,7 @@ class Sales extends Secure_Controller
|
||||
'only_check' => false,
|
||||
'selected_customer' => false,
|
||||
'only_creditcard' => false,
|
||||
'only_debit' => false,
|
||||
'only_invoices' => $this->config['invoice_enable'] && $this->request->getGet('only_invoices', FILTER_SANITIZE_NUMBER_INT),
|
||||
'is_valid_receipt' => $this->sale->is_valid_receipt($search)
|
||||
];
|
||||
|
||||
@@ -408,7 +408,7 @@ function get_items_manage_table_headers(): string
|
||||
{
|
||||
$attribute = model(Attribute::class);
|
||||
$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
|
||||
$definitionsWithTypes = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS, true);
|
||||
|
||||
$headers = item_headers();
|
||||
|
||||
@@ -420,8 +420,8 @@ function get_items_manage_table_headers(): string
|
||||
|
||||
$headers[] = ['item_pic' => lang('Items.image'), 'sortable' => false];
|
||||
|
||||
foreach ($definition_names as $definition_id => $definition_name) {
|
||||
$headers[] = [$definition_id => $definition_name, 'sortable' => false];
|
||||
foreach ($definitionsWithTypes as $definition_id => $definitionInfo) {
|
||||
$headers[] = [$definition_id => $definitionInfo['name'], 'sortable' => false];
|
||||
}
|
||||
|
||||
$headers[] = ['inventory' => '', 'escape' => false];
|
||||
@@ -479,7 +479,7 @@ function get_item_data_row(object $item): array
|
||||
$item->name .= NAME_SEPARATOR . $item->pack_name;
|
||||
}
|
||||
|
||||
$definition_names = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS);
|
||||
$definition_names = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS, true);
|
||||
|
||||
$columns = [
|
||||
'items.item_id' => $item->item_id,
|
||||
@@ -634,7 +634,7 @@ function parse_attribute_values(array $columns, array $row): array
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $definition_names
|
||||
* @param array $definition_names Array of definition_id => ['name' => name, 'type' => type] or definition_id => name
|
||||
* @param array $row
|
||||
* @return array
|
||||
*/
|
||||
@@ -651,10 +651,16 @@ function expand_attribute_values(array $definition_names, array $row): array
|
||||
}
|
||||
|
||||
$attribute_values = [];
|
||||
foreach ($definition_names as $definition_id => $definition_name) {
|
||||
foreach ($definition_names as $definition_id => $definitionInfo) {
|
||||
if (isset($indexed_values[$definition_id])) {
|
||||
$attribute_value = $indexed_values[$definition_id];
|
||||
$attribute_values["$definition_id"] = $attribute_value;
|
||||
$raw_value = $indexed_values[$definition_id];
|
||||
|
||||
// Format DECIMAL attributes according to locale
|
||||
if (is_array($definitionInfo) && isset($definitionInfo['type']) && $definitionInfo['type'] === DECIMAL) {
|
||||
$attribute_values["$definition_id"] = to_decimals($raw_value);
|
||||
} else {
|
||||
$attribute_values["$definition_id"] = $raw_value;
|
||||
}
|
||||
} else {
|
||||
$attribute_values["$definition_id"] = "";
|
||||
}
|
||||
@@ -925,3 +931,24 @@ function get_controller(): string
|
||||
$controller_name_parts = explode('\\', $controller_name);
|
||||
return end($controller_name_parts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Restores filter values from URL query string.
|
||||
*
|
||||
* @param CodeIgniter\HTTP\IncomingRequest $request The request object
|
||||
* @return array Array with 'start_date', 'end_date', and 'selected_filters' keys
|
||||
*/
|
||||
function restoreTableFilters($request): array
|
||||
{
|
||||
$startDate = $request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$endDate = $request->getGet('end_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$urlFilters = $request->getGet('filters', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
return array_filter([
|
||||
'start_date' => $startDate ?: null,
|
||||
'end_date' => $endDate ?: null,
|
||||
'selected_filters' => $urlFilters ?? []
|
||||
], function($value) {
|
||||
return $value !== null && $value !== [];
|
||||
});
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "هل أنت متأكد من أنك تريد حذف الميزات المحددة ؟",
|
||||
"confirm_restore" => "هل أنت متأكد من أنك تريد استعادة السمة (السمات) المحددة؟",
|
||||
"definition_cannot_be_deleted" => "لا يمكن حذف السمات المحددة",
|
||||
"definition_invalid_group" => "المجموعة المحددة غير موجودة أو غير صالحة.",
|
||||
"definition_error_adding_updating" => "لا يمكن إضافة السمة {0} أو تحديثها. يرجى التحقق من سجل الخطأ.",
|
||||
"definition_flags" => "رؤية الميزات",
|
||||
"definition_group" => "المجموعة",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "هل أنت متأكد من أنك تريد حذف الميزات المحددة ؟",
|
||||
"confirm_restore" => "هل أنت متأكد من أنك تريد استعادة السمة (السمات) المحددة؟",
|
||||
"definition_cannot_be_deleted" => "لا يمكن حذف السمات المحددة",
|
||||
"definition_invalid_group" => "المجموعة المحددة غير موجودة أو غير صالحة.",
|
||||
"definition_error_adding_updating" => "لا يمكن إضافة السمة {0} أو تحديثها. يرجى التحقق من سجل الخطأ.",
|
||||
"definition_flags" => "رؤية الميزات",
|
||||
"definition_group" => "المجموعة",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Seçilmiş Atributları silmək istədiyinizdən əminsinizmi?",
|
||||
"confirm_restore" => "Seçilmiş atributları bərpa etmək istədiyinizə əminsinizmi?",
|
||||
"definition_cannot_be_deleted" => "Seçilmiş xüsusiyyətləri silmək olmadı",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "{0} -in atributları əlavə oluna və yenilənə bilmədi. Lütfən XƏTA loq faylını yoxlayın.",
|
||||
"definition_flags" => "Atribut görünüşü",
|
||||
"definition_group" => "Qrup",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"definition_cannot_be_deleted" => "",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "",
|
||||
"definition_flags" => "",
|
||||
"definition_group" => "",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Da li ste sigurni da želite da izbrišete izabrani atribut?",
|
||||
"confirm_restore" => "Da li ste sigurni da želite vratiti izabrane atribute?",
|
||||
"definition_cannot_be_deleted" => "Nije moguće izbrisati izabrane atribut",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "Atribut {0} nije moguće dodati ili ažurirati. Molimo provjerite dnevnik grešaka.",
|
||||
"definition_flags" => "Vidljivost atributa",
|
||||
"definition_group" => "Grupa",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "ئایا دڵنیای کە دەتەوێت تایبەتمەندییە هەڵبژێردراوەکە(کان) بسڕیتەوە؟",
|
||||
"confirm_restore" => "ئایا دڵنیای کە دەتەوێت تایبەتمەندییە هەڵبژێردراوەکە(کان) بگەڕێنیتەوە؟",
|
||||
"definition_cannot_be_deleted" => "نەتوانرا تایبەتمەندی هەڵبژێردراو بسڕدرێتەوە",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "تایبەتمەندی {0} نەتوانرا زیاد بکرێت یان نوێ بکرێتەوە. تکایە لیستی هەڵەکان بپشکنە.",
|
||||
"definition_flags" => "توانای بینراویی تایبەتمەندی",
|
||||
"definition_group" => "گروپ",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"definition_cannot_be_deleted" => "",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "",
|
||||
"definition_flags" => "",
|
||||
"definition_group" => "",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Er du sikker på, at du vil slette de valgte egenskaber?",
|
||||
"confirm_restore" => "Er du sikker på, at du vil gendanne de valgte egenskaber?",
|
||||
"definition_cannot_be_deleted" => "De valgte egenskaber kunne ikke slettes",
|
||||
"definition_invalid_group" => "Den valgte gruppe findes ikke eller er ugyldig.",
|
||||
"definition_error_adding_updating" => "Egenskab {0} Kunne ikke tilføjes eller opdateres. Tjek venligst fejlprotokollen.",
|
||||
"definition_flags" => "Egenskabens Synlighed",
|
||||
"definition_group" => "Gruppe",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"definition_cannot_be_deleted" => "",
|
||||
"definition_invalid_group" => "Die ausgewählte Gruppe existiert nicht oder ist ungültig.",
|
||||
"definition_error_adding_updating" => "",
|
||||
"definition_flags" => "",
|
||||
"definition_group" => "",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Sind Sie sicher, dass Sie die ausgewählten Attribute löschen möchten?",
|
||||
"confirm_restore" => "Sind Sie sicher, dass Sie die ausgewählten Attribute wiederherstellen möchten?",
|
||||
"definition_cannot_be_deleted" => "Ausgewählte Attribute konnten nicht gelöscht werden",
|
||||
"definition_invalid_group" => "Die ausgewählte Gruppe existiert nicht oder ist ungültig.",
|
||||
"definition_error_adding_updating" => "Das Attribut {0} konnte nicht hinzugefügt oder aktualisiert werden. Bitte überprüfen Sie den Error-Log.",
|
||||
"definition_flags" => "Attribut Sichtbarkeit",
|
||||
"definition_group" => "Gruppe",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Είστε βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα χαρακτηριστικά;",
|
||||
"confirm_restore" => "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τα επιλεγμένα χαρακτηριστικά;",
|
||||
"definition_cannot_be_deleted" => "Δεν ήταν δυνατή η διαγραφή των επιλεγμένων χαρακτηριστικών",
|
||||
"definition_invalid_group" => "Η επιλεγμένη ομάδα δεν υπάρχει ή δεν είναι έγκυρη.",
|
||||
"definition_error_adding_updating" => "Το χαρακτηριστικό {0} δεν ήταν δυνατό να προστεθεί ή να ενημερωθεί. Ελέγξτε το αρχείο καταγραφής σφαλμάτων.",
|
||||
"definition_flags" => "Ορατότητα χαρακτηριστικών",
|
||||
"definition_group" => "Ομάδα",
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
"confirm_restore" => "Are you sure you want to restore the selected attribute(s)?",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_invalid_group" => "The selected group does not exist or is invalid.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
"definition_id" => "Id",
|
||||
|
||||
@@ -6,6 +6,7 @@ return [
|
||||
"confirm_restore" => "Are you sure you want to restore the selected attribute(s)?",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_invalid_group" => "The selected group does not exist or is invalid.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
"definition_id" => "Id",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "¿Está seguro de que desea borrar los atributos seleccionados?",
|
||||
"confirm_restore" => "¿Está seguro de que desea restaurar los atributos seleccionados?",
|
||||
"definition_cannot_be_deleted" => "No se han podido borrar los atributos seleccionados",
|
||||
"definition_invalid_group" => "El grupo seleccionado no existe o no es válido.",
|
||||
"definition_error_adding_updating" => "El atributo {0} no pudo ser agregado o actulizado. Por favor compruebe el registro de errores.",
|
||||
"definition_flags" => "Visibilidad del atributo",
|
||||
"definition_group" => "Grupo",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "¿Está seguro de eliminar el/los atributo(s) seleccionado(s)?",
|
||||
"confirm_restore" => "¿Está seguro que quiere restaurar los atributos seleccionados?",
|
||||
"definition_cannot_be_deleted" => "No ha sido posible eliminar el/los atributo(s) seleccionado(s)",
|
||||
"definition_invalid_group" => "El grupo seleccionado no existe o no es válido.",
|
||||
"definition_error_adding_updating" => "El atributo {0} no pudo ser agregado o actualizado. Favor de revisar el registro de errorres.",
|
||||
"definition_flags" => "Visibilidad del atributo",
|
||||
"definition_group" => "Grupo",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "آیا مطمئن هستید که می خواهید ویژگی (های) انتخاب شده را حذف کنید؟",
|
||||
"confirm_restore" => "آیا مطمئن هستید که می خواهید ویژگی (های) انتخاب شده را بازیابی کنید؟",
|
||||
"definition_cannot_be_deleted" => "نمی توان ویژگی (های) انتخابی را حذف کرد",
|
||||
"definition_invalid_group" => "گروه انتخاب شده وجود ندارد یا نامعتبر است.",
|
||||
"definition_error_adding_updating" => "ویژگی{0} اضافه نشد یا به روز نمی شود. لطفا گزارش خطا را بررسی کنید.",
|
||||
"definition_flags" => "قابلیت مشاهده ویژگی",
|
||||
"definition_group" => "گروه",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Êtes-vous certain de vouloir supprimer le(s) attribut(s) sélectionné(s) ?",
|
||||
"confirm_restore" => "Êtes-vous certain de vouloir restaurer le(s) attribut(s) sélectionné(s) ?",
|
||||
"definition_cannot_be_deleted" => "Le(s) attribut(s) sélectionné(s) n'ont pas pu être supprimé(s)",
|
||||
"definition_invalid_group" => "Le groupe sélectionné n'existe pas ou est invalide.",
|
||||
"definition_error_adding_updating" => "L'attribut {0} n'a pas pu être ajouté ou mis à jour. Veuillez vérifier le journal d'erreurs.",
|
||||
"definition_flags" => "Visibilité de l'attribut",
|
||||
"definition_group" => "Groupe",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "האם אתה בטוח שברצונך למחוק את המאפיינים שנבחרו?",
|
||||
"confirm_restore" => "האם אתה בטוח שברצונך לשחזר את המאפיינים שנבחרו?",
|
||||
"definition_cannot_be_deleted" => "לא ניתן למחוק מאפיינים נבחר(ים)",
|
||||
"definition_invalid_group" => "הקבוצה שנבחרה לא קיימת או אינה תקינה.",
|
||||
"definition_error_adding_updating" => "לא ניתן להוסיף או לעדכן את הערך {0}. בדוק את יומן השגיאות.",
|
||||
"definition_flags" => "מאפיין גלוי",
|
||||
"definition_group" => "קבוצה",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"definition_cannot_be_deleted" => "",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "",
|
||||
"definition_flags" => "",
|
||||
"definition_group" => "",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Biztosan törli szeretné a kijelölt tulajdonságokat?",
|
||||
"confirm_restore" => "Biztosan visszaállítja a kijelölt tulajdonságokat?",
|
||||
"definition_cannot_be_deleted" => "Nem sikerült törölni a kijelölt tulajdonságokat",
|
||||
"definition_invalid_group" => "A kiválasztott csoport nem létezik vagy érvénytelen.",
|
||||
"definition_error_adding_updating" => "{0} attribútum nem adható hozzá és nem frissíthető. Kérjük, ellenőrizze a hibanaplót.",
|
||||
"definition_flags" => "Tulajdonság láthatósága",
|
||||
"definition_group" => "Csoport",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Are you sure you want to delete the selected attribute(s)?",
|
||||
"confirm_restore" => "Are you sure you want to restore the selected attribute(s)?",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Apakah Anda yakin ingin menghapus atribut tersebut?",
|
||||
"confirm_restore" => "Apakah Anda yakin ingin mengembalikan atribut tersebut?",
|
||||
"definition_cannot_be_deleted" => "Tidak bisa menghapus atribut terpilih",
|
||||
"definition_invalid_group" => "Grup yang dipilih tidak ada atau tidak valid.",
|
||||
"definition_error_adding_updating" => "Atribut {0} tidak dapat ditambah atau diperbaharui. Silahkan periksa log kesalahan.",
|
||||
"definition_flags" => "Visibilitas Atribut",
|
||||
"definition_group" => "Grup",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Sei sicuro di voler eliminare gli attributi selezionati?",
|
||||
"confirm_restore" => "Sei sicuro di voler ripristinare l'attributo selezionato?",
|
||||
"definition_cannot_be_deleted" => "Non riesco a cancellare l'attributo selezionato",
|
||||
"definition_invalid_group" => "Il gruppo selezionato non esiste o non è valido.",
|
||||
"definition_error_adding_updating" => "Impossibile aggiungere o aggiornare l'attributo {0}. Si prega di controllare il registro degli errori.",
|
||||
"definition_flags" => "Visibilità attributo",
|
||||
"definition_group" => "Gruppo",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "តើអ្នកពិតជាចង់លុប ព៌តមានបន្ថែម ដែលបានជ្រើសរើស?",
|
||||
"confirm_restore" => "តើអ្នកពិតជាដាក់ឡើងវិញនៅ ព៌តមានបន្ថែម ដែលបានជ្រើសរើស?",
|
||||
"definition_cannot_be_deleted" => "មិនអាចលុបព៌តមានបន្ថែមដែលបានជ្រើសរើស",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "ព៌តមានបន្ថែម {0} មិនអាចថែម រឺកែប្រែបានឡើយ។ សូមចូលទៅឆែករបាយការណ៍កំហុស។",
|
||||
"definition_flags" => "ដាក់បង្ហាញព៌តមានបន្ថែម",
|
||||
"definition_group" => "ក្រុម",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "ແນ່ໃຈຫຼືບໍທີ່ຈະລືບລາຍການທີ່ເລືອກ",
|
||||
"confirm_restore" => "ແນ່ໃຈຫຼືບໍທີ່ຈະຄືນຄ່າແອັດທິບິ້ວດັ່ງກ່າວ?",
|
||||
"definition_cannot_be_deleted" => "ບໍສາມາດລືບລາຍການທີ່ເລືອກໄດ້",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "ລາຍການ {0} ບໍສາມາດເພີ່ມ ຫຼື ແກ້ໄຂ. ກະລຸນາກວດສອບຢູ່ log ຂໍ້ຜິດຜາດ",
|
||||
"definition_flags" => "ຄູນສົມບັດການເບິ່ງເຫັນ",
|
||||
"definition_group" => "ກຸ່ມ",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Are you sure you want to delete the selected attribute(s)?",
|
||||
"confirm_restore" => "",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Are you sure you want to delete the selected attribute(s)?",
|
||||
"confirm_restore" => "Are you sure you want to restore the selected attribute(s)?",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Bent u zeker dat u de geselecteerde attributen wil verwijderen?",
|
||||
"confirm_restore" => "Bent u zeker dat u de geselecteerde attributen wil herstellen?",
|
||||
"definition_cannot_be_deleted" => "De geselecteerde attributen konden niet verwijderd worden",
|
||||
"definition_invalid_group" => "De geselecteerde groep bestaat niet of is ongeldig.",
|
||||
"definition_error_adding_updating" => "Attribuut {0} kon niet toegevoegd of gewijzigd worden. Kijk de error logs na.",
|
||||
"definition_flags" => "Zichtbaarheid",
|
||||
"definition_group" => "Groep",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Weet u zeker dat u de geselecteerde kenmerken wilt verwijderen?",
|
||||
"confirm_restore" => "Weet u zeker dat u de geselecteerde kenmerken wilt herstellen?",
|
||||
"definition_cannot_be_deleted" => "Kan geselecteerde kenmerk(en) niet verwijderen",
|
||||
"definition_invalid_group" => "De geselecteerde groep bestaat niet of is ongeldig.",
|
||||
"definition_error_adding_updating" => "Kenmerk {0} kan niet worden toegevoegd of bijgewerkt. Bekijk het foutenlogboek.",
|
||||
"definition_flags" => "Kenmerk zichtbaarheid",
|
||||
"definition_group" => "Groep",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Czy jesteś pewny, że chcesz usunąć wybrane atrybuty?",
|
||||
"confirm_restore" => "Czy jesteś pewien, że chcesz przywrócić zaznaczone atrybuty?",
|
||||
"definition_cannot_be_deleted" => "Nie można usunąć wybranych atrybutów",
|
||||
"definition_invalid_group" => "Wybrana grupa nie istnieje lub jest nieprawidłowa.",
|
||||
"definition_error_adding_updating" => "Atrybut 51 nie może zostać dodany lub zaktualizowany. Sprawdź dziennik błędów.",
|
||||
"definition_flags" => "Widoczność atrybutu",
|
||||
"definition_group" => "Grupa",
|
||||
|
||||
@@ -1,50 +1,50 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"amount" => "Liczba",
|
||||
"amount_number" => "",
|
||||
"amount_required" => "",
|
||||
"cancel_cashups" => "",
|
||||
"cancel_cashups_enter" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"cash_difference" => "",
|
||||
"close_date" => "",
|
||||
"close_employee" => "",
|
||||
"closed_amount_card" => "",
|
||||
"closed_amount_cash" => "",
|
||||
"closed_amount_check" => "",
|
||||
"closed_amount_due" => "",
|
||||
"closed_amount_giftcard" => "",
|
||||
"closed_amount_total" => "",
|
||||
"closed_date" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"confirm_submit" => "",
|
||||
"date_number" => "",
|
||||
"date_required" => "",
|
||||
"description" => "",
|
||||
"enable_expected" => "",
|
||||
"error_adding_updating" => "",
|
||||
"giftcard" => "",
|
||||
"id" => "",
|
||||
"info" => "",
|
||||
"info_employee" => "",
|
||||
"is_deleted" => "",
|
||||
"new" => "",
|
||||
"no_cashups_to_display" => "",
|
||||
"none_selected" => "",
|
||||
"note" => "",
|
||||
"one_or_multiple" => "",
|
||||
"open_amount_cash" => "",
|
||||
"open_date" => "",
|
||||
"open_employee" => "",
|
||||
"opened_date" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"total" => "",
|
||||
"transfer_amount_cash" => "",
|
||||
"transfer_amount_cash_minus" => "",
|
||||
"update" => "",
|
||||
"warning" => "",
|
||||
'amount' => "Liczba",
|
||||
'amount_number' => "",
|
||||
'amount_required' => "",
|
||||
'cancel_cashups' => "",
|
||||
'cancel_cashups_enter' => "",
|
||||
'cannot_be_deleted' => "",
|
||||
'cash_difference' => "",
|
||||
'close_date' => "",
|
||||
'close_employee' => "",
|
||||
'closed_amount_card' => "",
|
||||
'closed_amount_cash' => "",
|
||||
'closed_amount_check' => "",
|
||||
'closed_amount_due' => "",
|
||||
'closed_amount_giftcard' => "",
|
||||
'closed_amount_total' => "",
|
||||
'closed_date' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'confirm_submit' => "",
|
||||
'date_number' => "",
|
||||
'date_required' => "",
|
||||
'description' => "Opis",
|
||||
'enable_expected' => "",
|
||||
'error_adding_updating' => "",
|
||||
'giftcard' => "",
|
||||
'id' => "",
|
||||
'info' => "",
|
||||
'info_employee' => "",
|
||||
'is_deleted' => "",
|
||||
'new' => "",
|
||||
'no_cashups_to_display' => "",
|
||||
'none_selected' => "",
|
||||
'note' => "",
|
||||
'one_or_multiple' => "",
|
||||
'open_amount_cash' => "",
|
||||
'open_date' => "",
|
||||
'open_employee' => "",
|
||||
'opened_date' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'total' => "",
|
||||
'transfer_amount_cash' => "",
|
||||
'transfer_amount_cash_minus' => "",
|
||||
'update' => "",
|
||||
'warning' => "",
|
||||
];
|
||||
|
||||
@@ -1,331 +1,331 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"address" => "",
|
||||
"address_required" => "",
|
||||
"all_set" => "All file permissions are set correctly!",
|
||||
"allow_duplicate_barcodes" => "",
|
||||
"apostrophe" => "",
|
||||
"backup_button" => "",
|
||||
"backup_database" => "",
|
||||
"barcode" => "",
|
||||
"barcode_company" => "",
|
||||
"barcode_configuration" => "",
|
||||
"barcode_content" => "",
|
||||
"barcode_first_row" => "",
|
||||
"barcode_font" => "",
|
||||
"barcode_formats" => "",
|
||||
"barcode_generate_if_empty" => "",
|
||||
"barcode_height" => "",
|
||||
"barcode_id" => "",
|
||||
"barcode_info" => "",
|
||||
"barcode_layout" => "",
|
||||
"barcode_name" => "",
|
||||
"barcode_number" => "",
|
||||
"barcode_number_in_row" => "",
|
||||
"barcode_page_cellspacing" => "",
|
||||
"barcode_page_width" => "",
|
||||
"barcode_price" => "",
|
||||
"barcode_second_row" => "",
|
||||
"barcode_third_row" => "",
|
||||
"barcode_tooltip" => "",
|
||||
"barcode_type" => "",
|
||||
"barcode_width" => "",
|
||||
"bottom" => "",
|
||||
"cash_button" => "",
|
||||
"cash_button_1" => "",
|
||||
"cash_button_2" => "",
|
||||
"cash_button_3" => "",
|
||||
"cash_button_4" => "",
|
||||
"cash_button_5" => "",
|
||||
"cash_button_6" => "",
|
||||
"cash_decimals" => "",
|
||||
"cash_decimals_tooltip" => "",
|
||||
"cash_rounding" => "",
|
||||
"category_dropdown" => "",
|
||||
"center" => "",
|
||||
"change_apperance_tooltip" => "",
|
||||
"comma" => "",
|
||||
"company" => "",
|
||||
"company_avatar" => "",
|
||||
"company_change_image" => "",
|
||||
"company_logo" => "",
|
||||
"company_remove_image" => "",
|
||||
"company_required" => "",
|
||||
"company_select_image" => "",
|
||||
"company_website_url" => "",
|
||||
"country_codes" => "",
|
||||
"country_codes_tooltip" => "",
|
||||
"currency_code" => "",
|
||||
"currency_decimals" => "",
|
||||
"currency_symbol" => "",
|
||||
"current_employee_only" => "",
|
||||
"customer_reward" => "",
|
||||
"customer_reward_duplicate" => "",
|
||||
"customer_reward_enable" => "",
|
||||
"customer_reward_invalid_chars" => "",
|
||||
"customer_reward_required" => "",
|
||||
"customer_sales_tax_support" => "",
|
||||
"date_or_time_format" => "",
|
||||
"datetimeformat" => "",
|
||||
"decimal_point" => "",
|
||||
"default_barcode_font_size_number" => "",
|
||||
"default_barcode_font_size_required" => "",
|
||||
"default_barcode_height_number" => "",
|
||||
"default_barcode_height_required" => "",
|
||||
"default_barcode_num_in_row_number" => "",
|
||||
"default_barcode_num_in_row_required" => "",
|
||||
"default_barcode_page_cellspacing_number" => "",
|
||||
"default_barcode_page_cellspacing_required" => "",
|
||||
"default_barcode_page_width_number" => "",
|
||||
"default_barcode_page_width_required" => "",
|
||||
"default_barcode_width_number" => "",
|
||||
"default_barcode_width_required" => "",
|
||||
"default_item_columns" => "",
|
||||
"default_origin_tax_code" => "",
|
||||
"default_receivings_discount" => "",
|
||||
"default_receivings_discount_number" => "",
|
||||
"default_receivings_discount_required" => "",
|
||||
"default_sales_discount" => "",
|
||||
"default_sales_discount_number" => "",
|
||||
"default_sales_discount_required" => "",
|
||||
"default_tax_category" => "",
|
||||
"default_tax_code" => "",
|
||||
"default_tax_jurisdiction" => "",
|
||||
"default_tax_name_number" => "",
|
||||
"default_tax_name_required" => "",
|
||||
"default_tax_rate" => "",
|
||||
"default_tax_rate_1" => "",
|
||||
"default_tax_rate_2" => "",
|
||||
"default_tax_rate_3" => "",
|
||||
"default_tax_rate_number" => "",
|
||||
"default_tax_rate_required" => "",
|
||||
"derive_sale_quantity" => "",
|
||||
"derive_sale_quantity_tooltip" => "",
|
||||
"dinner_table" => "",
|
||||
"dinner_table_duplicate" => "",
|
||||
"dinner_table_enable" => "",
|
||||
"dinner_table_invalid_chars" => "",
|
||||
"dinner_table_required" => "",
|
||||
"dot" => "",
|
||||
"email" => "",
|
||||
"email_configuration" => "",
|
||||
"email_mailpath" => "",
|
||||
"email_protocol" => "",
|
||||
"email_receipt_check_behaviour" => "",
|
||||
"email_receipt_check_behaviour_always" => "",
|
||||
"email_receipt_check_behaviour_last" => "",
|
||||
"email_receipt_check_behaviour_never" => "",
|
||||
"email_smtp_crypto" => "",
|
||||
"email_smtp_host" => "",
|
||||
"email_smtp_pass" => "",
|
||||
"email_smtp_port" => "",
|
||||
"email_smtp_timeout" => "",
|
||||
"email_smtp_user" => "",
|
||||
"enable_avatar" => "",
|
||||
"enable_avatar_tooltip" => "",
|
||||
"enable_dropdown_tooltip" => "",
|
||||
"enable_new_look" => "",
|
||||
"enable_right_bar" => "",
|
||||
"enable_right_bar_tooltip" => "",
|
||||
"enforce_privacy" => "",
|
||||
"enforce_privacy_tooltip" => "",
|
||||
"fax" => "",
|
||||
"file_perm" => "There are problems with file permissions please fix and reload this page.",
|
||||
"financial_year" => "",
|
||||
"financial_year_apr" => "",
|
||||
"financial_year_aug" => "",
|
||||
"financial_year_dec" => "",
|
||||
"financial_year_feb" => "",
|
||||
"financial_year_jan" => "",
|
||||
"financial_year_jul" => "",
|
||||
"financial_year_jun" => "",
|
||||
"financial_year_mar" => "",
|
||||
"financial_year_may" => "",
|
||||
"financial_year_nov" => "",
|
||||
"financial_year_oct" => "",
|
||||
"financial_year_sep" => "",
|
||||
"floating_labels" => "",
|
||||
"gcaptcha_enable" => "",
|
||||
"gcaptcha_secret_key" => "",
|
||||
"gcaptcha_secret_key_required" => "",
|
||||
"gcaptcha_site_key" => "",
|
||||
"gcaptcha_site_key_required" => "",
|
||||
"gcaptcha_tooltip" => "",
|
||||
"general" => "",
|
||||
"general_configuration" => "",
|
||||
"giftcard_number" => "",
|
||||
"giftcard_random" => "",
|
||||
"giftcard_series" => "",
|
||||
"image_allowed_file_types" => "",
|
||||
"image_max_height_tooltip" => "",
|
||||
"image_max_size_tooltip" => "",
|
||||
"image_max_width_tooltip" => "",
|
||||
"image_restrictions" => "",
|
||||
"include_hsn" => "",
|
||||
"info" => "",
|
||||
"info_configuration" => "",
|
||||
"input_groups" => "",
|
||||
"integrations" => "",
|
||||
"integrations_configuration" => "",
|
||||
"invoice" => "",
|
||||
"invoice_configuration" => "",
|
||||
"invoice_default_comments" => "",
|
||||
"invoice_email_message" => "",
|
||||
"invoice_enable" => "",
|
||||
"invoice_printer" => "",
|
||||
"invoice_type" => "",
|
||||
"is_readable" => "",
|
||||
"is_writable" => "is writable, but the permissions are higher than 750.",
|
||||
"item_markup" => "",
|
||||
"jsprintsetup_required" => "",
|
||||
"language" => "",
|
||||
"last_used_invoice_number" => "",
|
||||
"last_used_quote_number" => "",
|
||||
"last_used_work_order_number" => "",
|
||||
"left" => "",
|
||||
"license" => "",
|
||||
"license_configuration" => "",
|
||||
"line_sequence" => "",
|
||||
"lines_per_page" => "",
|
||||
"lines_per_page_number" => "",
|
||||
"lines_per_page_required" => "",
|
||||
"locale" => "",
|
||||
"locale_configuration" => "",
|
||||
"locale_info" => "",
|
||||
"location" => "",
|
||||
"location_configuration" => "",
|
||||
"location_info" => "",
|
||||
"login_form" => "",
|
||||
"logout" => "",
|
||||
"mailchimp" => "",
|
||||
"mailchimp_api_key" => "",
|
||||
"mailchimp_configuration" => "",
|
||||
"mailchimp_key_successfully" => "",
|
||||
"mailchimp_key_unsuccessfully" => "",
|
||||
"mailchimp_lists" => "",
|
||||
"mailchimp_tooltip" => "",
|
||||
"message" => "",
|
||||
"message_configuration" => "",
|
||||
"msg_msg" => "",
|
||||
"msg_msg_placeholder" => "",
|
||||
"msg_pwd" => "",
|
||||
"msg_pwd_required" => "",
|
||||
"msg_src" => "",
|
||||
"msg_src_required" => "",
|
||||
"msg_uid" => "",
|
||||
"msg_uid_required" => "",
|
||||
"multi_pack_enabled" => "",
|
||||
"no_risk" => "No security/vulnerability risks.",
|
||||
"none" => "",
|
||||
"notify_alignment" => "",
|
||||
"number_format" => "",
|
||||
"number_locale" => "",
|
||||
"number_locale_invalid" => "",
|
||||
"number_locale_required" => "",
|
||||
"number_locale_tooltip" => "",
|
||||
"os_timezone" => "",
|
||||
"ospos_info" => "",
|
||||
"payment_options_order" => "",
|
||||
"perm_risk" => "Permissions higher than 750 leaves this software at risk.",
|
||||
"phone" => "",
|
||||
"phone_required" => "",
|
||||
"print_bottom_margin" => "",
|
||||
"print_bottom_margin_number" => "",
|
||||
"print_bottom_margin_required" => "",
|
||||
"print_delay_autoreturn" => "",
|
||||
"print_delay_autoreturn_number" => "",
|
||||
"print_delay_autoreturn_required" => "",
|
||||
"print_footer" => "",
|
||||
"print_header" => "",
|
||||
"print_left_margin" => "",
|
||||
"print_left_margin_number" => "",
|
||||
"print_left_margin_required" => "",
|
||||
"print_receipt_check_behaviour" => "",
|
||||
"print_receipt_check_behaviour_always" => "",
|
||||
"print_receipt_check_behaviour_last" => "",
|
||||
"print_receipt_check_behaviour_never" => "",
|
||||
"print_right_margin" => "",
|
||||
"print_right_margin_number" => "",
|
||||
"print_right_margin_required" => "",
|
||||
"print_silently" => "",
|
||||
"print_top_margin" => "",
|
||||
"print_top_margin_number" => "",
|
||||
"print_top_margin_required" => "",
|
||||
"quantity_decimals" => "",
|
||||
"quick_cash_enable" => "",
|
||||
"quote_default_comments" => "",
|
||||
"receipt" => "",
|
||||
"receipt_category" => "",
|
||||
"receipt_configuration" => "",
|
||||
"receipt_default" => "",
|
||||
"receipt_font_size" => "",
|
||||
"receipt_font_size_number" => "",
|
||||
"receipt_font_size_required" => "",
|
||||
"receipt_info" => "",
|
||||
"receipt_printer" => "",
|
||||
"receipt_short" => "",
|
||||
"receipt_show_company_name" => "",
|
||||
"receipt_show_description" => "",
|
||||
"receipt_show_serialnumber" => "",
|
||||
"receipt_show_tax_ind" => "",
|
||||
"receipt_show_taxes" => "",
|
||||
"receipt_show_total_discount" => "",
|
||||
"receipt_template" => "",
|
||||
"receiving_calculate_average_price" => "",
|
||||
"recv_invoice_format" => "",
|
||||
"register_mode_default" => "",
|
||||
"report_an_issue" => "",
|
||||
"return_policy_required" => "",
|
||||
"reward" => "",
|
||||
"reward_configuration" => "",
|
||||
"right" => "",
|
||||
"sales_invoice_format" => "",
|
||||
"sales_quote_format" => "",
|
||||
"saved_successfully" => "",
|
||||
"saved_unsuccessfully" => "",
|
||||
"security_issue" => "Security Vulnerability Warning",
|
||||
"server_notice" => "Please use the below info for issue reporting.",
|
||||
"service_charge" => "",
|
||||
"show_due_enable" => "",
|
||||
"show_office_group" => "",
|
||||
"statistics" => "",
|
||||
"statistics_tooltip" => "",
|
||||
"stock_location" => "",
|
||||
"stock_location_duplicate" => "",
|
||||
"stock_location_invalid_chars" => "",
|
||||
"stock_location_required" => "",
|
||||
"suggestions_fifth_column" => "",
|
||||
"suggestions_first_column" => "",
|
||||
"suggestions_fourth_column" => "",
|
||||
"suggestions_layout" => "",
|
||||
"suggestions_second_column" => "",
|
||||
"suggestions_third_column" => "",
|
||||
"system_conf" => "Setup & Conf",
|
||||
"system_info" => "System Info",
|
||||
"table" => "",
|
||||
"table_configuration" => "",
|
||||
"takings_printer" => "",
|
||||
"tax" => "",
|
||||
"tax_category" => "",
|
||||
"tax_category_duplicate" => "",
|
||||
"tax_category_invalid_chars" => "",
|
||||
"tax_category_required" => "",
|
||||
"tax_category_used" => "",
|
||||
"tax_configuration" => "",
|
||||
"tax_decimals" => "",
|
||||
"tax_id" => "",
|
||||
"tax_included" => "",
|
||||
"theme" => "",
|
||||
"theme_preview" => "",
|
||||
"thousands_separator" => "",
|
||||
"timezone" => "",
|
||||
"timezone_error" => "",
|
||||
"top" => "",
|
||||
"use_destination_based_tax" => "",
|
||||
"user_timezone" => "",
|
||||
"website" => "",
|
||||
"wholesale_markup" => "",
|
||||
"work_order_enable" => "",
|
||||
"work_order_format" => "",
|
||||
'address' => "Adres Firmy",
|
||||
'address_required' => "Adres Firmy jest polem wymaganym.",
|
||||
'all_set' => "All file permissions are set correctly!",
|
||||
'allow_duplicate_barcodes' => "Zezwalaj na duplikaty kodów kreskowych",
|
||||
'apostrophe' => "apostrof",
|
||||
'backup_button' => "Kopia zapasowa",
|
||||
'backup_database' => "Kopia zapasowa bazy danych",
|
||||
'barcode' => "Kod kreskowy",
|
||||
'barcode_company' => "Nazwa firmy",
|
||||
'barcode_configuration' => "Konfiguracja Kodów Kreskowych",
|
||||
'barcode_content' => "Kontent Kodów Kreskowych",
|
||||
'barcode_first_row' => "Wiersz 1",
|
||||
'barcode_font' => "Czcionka",
|
||||
'barcode_formats' => "",
|
||||
'barcode_generate_if_empty' => "",
|
||||
'barcode_height' => "",
|
||||
'barcode_id' => "",
|
||||
'barcode_info' => "",
|
||||
'barcode_layout' => "",
|
||||
'barcode_name' => "",
|
||||
'barcode_number' => "",
|
||||
'barcode_number_in_row' => "",
|
||||
'barcode_page_cellspacing' => "",
|
||||
'barcode_page_width' => "",
|
||||
'barcode_price' => "",
|
||||
'barcode_second_row' => "",
|
||||
'barcode_third_row' => "",
|
||||
'barcode_tooltip' => "",
|
||||
'barcode_type' => "",
|
||||
'barcode_width' => "",
|
||||
'bottom' => "",
|
||||
'cash_button' => "",
|
||||
'cash_button_1' => "",
|
||||
'cash_button_2' => "",
|
||||
'cash_button_3' => "",
|
||||
'cash_button_4' => "",
|
||||
'cash_button_5' => "",
|
||||
'cash_button_6' => "",
|
||||
'cash_decimals' => "",
|
||||
'cash_decimals_tooltip' => "",
|
||||
'cash_rounding' => "",
|
||||
'category_dropdown' => "",
|
||||
'center' => "",
|
||||
'change_apperance_tooltip' => "",
|
||||
'comma' => "",
|
||||
'company' => "",
|
||||
'company_avatar' => "",
|
||||
'company_change_image' => "",
|
||||
'company_logo' => "",
|
||||
'company_remove_image' => "",
|
||||
'company_required' => "",
|
||||
'company_select_image' => "",
|
||||
'company_website_url' => "",
|
||||
'country_codes' => "",
|
||||
'country_codes_tooltip' => "",
|
||||
'currency_code' => "",
|
||||
'currency_decimals' => "",
|
||||
'currency_symbol' => "",
|
||||
'current_employee_only' => "",
|
||||
'customer_reward' => "",
|
||||
'customer_reward_duplicate' => "",
|
||||
'customer_reward_enable' => "",
|
||||
'customer_reward_invalid_chars' => "",
|
||||
'customer_reward_required' => "",
|
||||
'customer_sales_tax_support' => "",
|
||||
'date_or_time_format' => "",
|
||||
'datetimeformat' => "",
|
||||
'decimal_point' => "",
|
||||
'default_barcode_font_size_number' => "",
|
||||
'default_barcode_font_size_required' => "",
|
||||
'default_barcode_height_number' => "",
|
||||
'default_barcode_height_required' => "",
|
||||
'default_barcode_num_in_row_number' => "",
|
||||
'default_barcode_num_in_row_required' => "",
|
||||
'default_barcode_page_cellspacing_number' => "",
|
||||
'default_barcode_page_cellspacing_required' => "",
|
||||
'default_barcode_page_width_number' => "",
|
||||
'default_barcode_page_width_required' => "",
|
||||
'default_barcode_width_number' => "",
|
||||
'default_barcode_width_required' => "",
|
||||
'default_item_columns' => "",
|
||||
'default_origin_tax_code' => "",
|
||||
'default_receivings_discount' => "",
|
||||
'default_receivings_discount_number' => "",
|
||||
'default_receivings_discount_required' => "",
|
||||
'default_sales_discount' => "",
|
||||
'default_sales_discount_number' => "",
|
||||
'default_sales_discount_required' => "",
|
||||
'default_tax_category' => "",
|
||||
'default_tax_code' => "",
|
||||
'default_tax_jurisdiction' => "",
|
||||
'default_tax_name_number' => "",
|
||||
'default_tax_name_required' => "",
|
||||
'default_tax_rate' => "",
|
||||
'default_tax_rate_1' => "",
|
||||
'default_tax_rate_2' => "",
|
||||
'default_tax_rate_3' => "",
|
||||
'default_tax_rate_number' => "",
|
||||
'default_tax_rate_required' => "",
|
||||
'derive_sale_quantity' => "",
|
||||
'derive_sale_quantity_tooltip' => "",
|
||||
'dinner_table' => "",
|
||||
'dinner_table_duplicate' => "",
|
||||
'dinner_table_enable' => "",
|
||||
'dinner_table_invalid_chars' => "",
|
||||
'dinner_table_required' => "",
|
||||
'dot' => "",
|
||||
'email' => "",
|
||||
'email_configuration' => "",
|
||||
'email_mailpath' => "",
|
||||
'email_protocol' => "",
|
||||
'email_receipt_check_behaviour' => "",
|
||||
'email_receipt_check_behaviour_always' => "",
|
||||
'email_receipt_check_behaviour_last' => "",
|
||||
'email_receipt_check_behaviour_never' => "",
|
||||
'email_smtp_crypto' => "",
|
||||
'email_smtp_host' => "",
|
||||
'email_smtp_pass' => "",
|
||||
'email_smtp_port' => "",
|
||||
'email_smtp_timeout' => "",
|
||||
'email_smtp_user' => "",
|
||||
'enable_avatar' => "",
|
||||
'enable_avatar_tooltip' => "",
|
||||
'enable_dropdown_tooltip' => "",
|
||||
'enable_new_look' => "",
|
||||
'enable_right_bar' => "",
|
||||
'enable_right_bar_tooltip' => "",
|
||||
'enforce_privacy' => "",
|
||||
'enforce_privacy_tooltip' => "",
|
||||
'fax' => "",
|
||||
'file_perm' => "There are problems with file permissions please fix and reload this page.",
|
||||
'financial_year' => "",
|
||||
'financial_year_apr' => "",
|
||||
'financial_year_aug' => "",
|
||||
'financial_year_dec' => "",
|
||||
'financial_year_feb' => "",
|
||||
'financial_year_jan' => "",
|
||||
'financial_year_jul' => "",
|
||||
'financial_year_jun' => "",
|
||||
'financial_year_mar' => "",
|
||||
'financial_year_may' => "",
|
||||
'financial_year_nov' => "",
|
||||
'financial_year_oct' => "",
|
||||
'financial_year_sep' => "",
|
||||
'floating_labels' => "",
|
||||
'gcaptcha_enable' => "",
|
||||
'gcaptcha_secret_key' => "",
|
||||
'gcaptcha_secret_key_required' => "",
|
||||
'gcaptcha_site_key' => "",
|
||||
'gcaptcha_site_key_required' => "",
|
||||
'gcaptcha_tooltip' => "",
|
||||
'general' => "",
|
||||
'general_configuration' => "",
|
||||
'giftcard_number' => "Numer Karty Podarunkowej",
|
||||
'giftcard_random' => "",
|
||||
'giftcard_series' => "",
|
||||
'image_allowed_file_types' => "",
|
||||
'image_max_height_tooltip' => "",
|
||||
'image_max_size_tooltip' => "",
|
||||
'image_max_width_tooltip' => "",
|
||||
'image_restrictions' => "",
|
||||
'include_hsn' => "",
|
||||
'info' => "",
|
||||
'info_configuration' => "",
|
||||
'input_groups' => "",
|
||||
'integrations' => "",
|
||||
'integrations_configuration' => "",
|
||||
'invoice' => "",
|
||||
'invoice_configuration' => "",
|
||||
'invoice_default_comments' => "",
|
||||
'invoice_email_message' => "",
|
||||
'invoice_enable' => "",
|
||||
'invoice_printer' => "",
|
||||
'invoice_type' => "",
|
||||
'is_readable' => "",
|
||||
'is_writable' => "is writable, but the permissions are higher than 750.",
|
||||
'item_markup' => "",
|
||||
'jsprintsetup_required' => "",
|
||||
'language' => "",
|
||||
'last_used_invoice_number' => "",
|
||||
'last_used_quote_number' => "",
|
||||
'last_used_work_order_number' => "",
|
||||
'left' => "",
|
||||
'license' => "",
|
||||
'license_configuration' => "",
|
||||
'line_sequence' => "",
|
||||
'lines_per_page' => "",
|
||||
'lines_per_page_number' => "",
|
||||
'lines_per_page_required' => "",
|
||||
'locale' => "",
|
||||
'locale_configuration' => "",
|
||||
'locale_info' => "",
|
||||
'location' => "",
|
||||
'location_configuration' => "",
|
||||
'location_info' => "",
|
||||
'login_form' => "",
|
||||
'logout' => "",
|
||||
'mailchimp' => "",
|
||||
'mailchimp_api_key' => "",
|
||||
'mailchimp_configuration' => "",
|
||||
'mailchimp_key_successfully' => "",
|
||||
'mailchimp_key_unsuccessfully' => "",
|
||||
'mailchimp_lists' => "",
|
||||
'mailchimp_tooltip' => "",
|
||||
'message' => "",
|
||||
'message_configuration' => "",
|
||||
'msg_msg' => "",
|
||||
'msg_msg_placeholder' => "",
|
||||
'msg_pwd' => "",
|
||||
'msg_pwd_required' => "",
|
||||
'msg_src' => "",
|
||||
'msg_src_required' => "",
|
||||
'msg_uid' => "",
|
||||
'msg_uid_required' => "",
|
||||
'multi_pack_enabled' => "",
|
||||
'no_risk' => "No security/vulnerability risks.",
|
||||
'none' => "",
|
||||
'notify_alignment' => "",
|
||||
'number_format' => "",
|
||||
'number_locale' => "",
|
||||
'number_locale_invalid' => "",
|
||||
'number_locale_required' => "",
|
||||
'number_locale_tooltip' => "",
|
||||
'os_timezone' => "",
|
||||
'ospos_info' => "",
|
||||
'payment_options_order' => "",
|
||||
'perm_risk' => "Permissions higher than 750 leaves this software at risk.",
|
||||
'phone' => "",
|
||||
'phone_required' => "",
|
||||
'print_bottom_margin' => "",
|
||||
'print_bottom_margin_number' => "",
|
||||
'print_bottom_margin_required' => "",
|
||||
'print_delay_autoreturn' => "",
|
||||
'print_delay_autoreturn_number' => "",
|
||||
'print_delay_autoreturn_required' => "",
|
||||
'print_footer' => "",
|
||||
'print_header' => "",
|
||||
'print_left_margin' => "",
|
||||
'print_left_margin_number' => "",
|
||||
'print_left_margin_required' => "",
|
||||
'print_receipt_check_behaviour' => "",
|
||||
'print_receipt_check_behaviour_always' => "",
|
||||
'print_receipt_check_behaviour_last' => "",
|
||||
'print_receipt_check_behaviour_never' => "",
|
||||
'print_right_margin' => "",
|
||||
'print_right_margin_number' => "",
|
||||
'print_right_margin_required' => "",
|
||||
'print_silently' => "",
|
||||
'print_top_margin' => "",
|
||||
'print_top_margin_number' => "",
|
||||
'print_top_margin_required' => "",
|
||||
'quantity_decimals' => "",
|
||||
'quick_cash_enable' => "",
|
||||
'quote_default_comments' => "",
|
||||
'receipt' => "",
|
||||
'receipt_category' => "",
|
||||
'receipt_configuration' => "",
|
||||
'receipt_default' => "",
|
||||
'receipt_font_size' => "",
|
||||
'receipt_font_size_number' => "",
|
||||
'receipt_font_size_required' => "",
|
||||
'receipt_info' => "",
|
||||
'receipt_printer' => "",
|
||||
'receipt_short' => "",
|
||||
'receipt_show_company_name' => "",
|
||||
'receipt_show_description' => "",
|
||||
'receipt_show_serialnumber' => "",
|
||||
'receipt_show_tax_ind' => "",
|
||||
'receipt_show_taxes' => "",
|
||||
'receipt_show_total_discount' => "",
|
||||
'receipt_template' => "",
|
||||
'receiving_calculate_average_price' => "",
|
||||
'recv_invoice_format' => "",
|
||||
'register_mode_default' => "",
|
||||
'report_an_issue' => "",
|
||||
'return_policy_required' => "",
|
||||
'reward' => "",
|
||||
'reward_configuration' => "",
|
||||
'right' => "",
|
||||
'sales_invoice_format' => "",
|
||||
'sales_quote_format' => "",
|
||||
'saved_successfully' => "",
|
||||
'saved_unsuccessfully' => "",
|
||||
'security_issue' => "Security Vulnerability Warning",
|
||||
'server_notice' => "Please use the below info for issue reporting.",
|
||||
'service_charge' => "",
|
||||
'show_due_enable' => "",
|
||||
'show_office_group' => "",
|
||||
'statistics' => "",
|
||||
'statistics_tooltip' => "",
|
||||
'stock_location' => "",
|
||||
'stock_location_duplicate' => "",
|
||||
'stock_location_invalid_chars' => "",
|
||||
'stock_location_required' => "",
|
||||
'suggestions_fifth_column' => "",
|
||||
'suggestions_first_column' => "",
|
||||
'suggestions_fourth_column' => "",
|
||||
'suggestions_layout' => "",
|
||||
'suggestions_second_column' => "",
|
||||
'suggestions_third_column' => "",
|
||||
'system_conf' => "Setup & Conf",
|
||||
'system_info' => "System Info",
|
||||
'table' => "",
|
||||
'table_configuration' => "",
|
||||
'takings_printer' => "",
|
||||
'tax' => "",
|
||||
'tax_category' => "",
|
||||
'tax_category_duplicate' => "",
|
||||
'tax_category_invalid_chars' => "",
|
||||
'tax_category_required' => "",
|
||||
'tax_category_used' => "",
|
||||
'tax_configuration' => "",
|
||||
'tax_decimals' => "",
|
||||
'tax_id' => "",
|
||||
'tax_included' => "",
|
||||
'theme' => "",
|
||||
'theme_preview' => "",
|
||||
'thousands_separator' => "",
|
||||
'timezone' => "",
|
||||
'timezone_error' => "",
|
||||
'top' => "",
|
||||
'use_destination_based_tax' => "",
|
||||
'user_timezone' => "",
|
||||
'website' => "",
|
||||
'wholesale_markup' => "",
|
||||
'work_order_enable' => "",
|
||||
'work_order_format' => "",
|
||||
];
|
||||
|
||||
@@ -1,57 +1,57 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"account_number" => "Konto #",
|
||||
"account_number_duplicate" => "",
|
||||
"available_points" => "Dostępne punkty",
|
||||
"available_points_value" => "",
|
||||
"average" => "",
|
||||
"avg_discount" => "",
|
||||
"basic_information" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"company_name" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"consent" => "",
|
||||
"consent_required" => "",
|
||||
"csv_import_failed" => "",
|
||||
"csv_import_nodata_wrongformat" => "",
|
||||
"csv_import_partially_failed" => "",
|
||||
"csv_import_success" => "",
|
||||
"customer" => "",
|
||||
"date" => "",
|
||||
"discount" => "",
|
||||
"discount_fixed" => "",
|
||||
"discount_percent" => "",
|
||||
"discount_type" => "",
|
||||
"email_duplicate" => "",
|
||||
"employee" => "",
|
||||
"error_adding_updating" => "",
|
||||
"import_items_csv" => "",
|
||||
"mailchimp_activity_click" => "",
|
||||
"mailchimp_activity_lastopen" => "",
|
||||
"mailchimp_activity_open" => "",
|
||||
"mailchimp_activity_total" => "",
|
||||
"mailchimp_activity_unopen" => "",
|
||||
"mailchimp_email_client" => "",
|
||||
"mailchimp_info" => "",
|
||||
"mailchimp_member_rating" => "",
|
||||
"mailchimp_status" => "",
|
||||
"mailchimp_vip" => "",
|
||||
"max" => "",
|
||||
"min" => "",
|
||||
"new" => "",
|
||||
"none_selected" => "",
|
||||
"one_or_multiple" => "",
|
||||
"quantity" => "",
|
||||
"stats_info" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"tax_code" => "",
|
||||
"tax_id" => "",
|
||||
"taxable" => "",
|
||||
"total" => "",
|
||||
"update" => "",
|
||||
"rewards_package" => "",
|
||||
'account_number' => "Konto #",
|
||||
'account_number_duplicate' => "",
|
||||
'available_points' => "Dostępne punkty",
|
||||
'available_points_value' => "",
|
||||
'average' => "",
|
||||
'avg_discount' => "",
|
||||
'basic_information' => "",
|
||||
'cannot_be_deleted' => "",
|
||||
'company_name' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'consent' => "",
|
||||
'consent_required' => "",
|
||||
'csv_import_failed' => "",
|
||||
'csv_import_nodata_wrongformat' => "",
|
||||
'csv_import_partially_failed' => "",
|
||||
'csv_import_success' => "",
|
||||
'customer' => "",
|
||||
'date' => "",
|
||||
'discount' => "",
|
||||
'discount_fixed' => "",
|
||||
'discount_percent' => "",
|
||||
'discount_type' => "",
|
||||
'email_duplicate' => "",
|
||||
'employee' => "",
|
||||
'error_adding_updating' => "",
|
||||
'import_items_csv' => "",
|
||||
'mailchimp_activity_click' => "",
|
||||
'mailchimp_activity_lastopen' => "",
|
||||
'mailchimp_activity_open' => "",
|
||||
'mailchimp_activity_total' => "",
|
||||
'mailchimp_activity_unopen' => "",
|
||||
'mailchimp_email_client' => "",
|
||||
'mailchimp_info' => "",
|
||||
'mailchimp_member_rating' => "",
|
||||
'mailchimp_status' => "",
|
||||
'mailchimp_vip' => "",
|
||||
'max' => "",
|
||||
'min' => "",
|
||||
'new' => "",
|
||||
'none_selected' => "",
|
||||
'one_or_multiple' => "",
|
||||
'quantity' => "Ilość",
|
||||
'stats_info' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'tax_code' => "",
|
||||
'tax_id' => "",
|
||||
'taxable' => "",
|
||||
'total' => "",
|
||||
'update' => "",
|
||||
'rewards_package' => "",
|
||||
];
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_item" => "Dodaj wydatek",
|
||||
"amount" => "",
|
||||
"amount_number" => "",
|
||||
"amount_required" => "",
|
||||
"by_category" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"cash" => "",
|
||||
"cash_filter" => "",
|
||||
"categories_name" => "",
|
||||
"category_required" => "",
|
||||
"check" => "",
|
||||
"check_filter" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"credit" => "",
|
||||
"credit_filter" => "",
|
||||
"date" => "",
|
||||
"date_number" => "",
|
||||
"date_required" => "",
|
||||
"debit" => "",
|
||||
"debit_filter" => "",
|
||||
"description" => "",
|
||||
"due" => "",
|
||||
"due_filter" => "",
|
||||
"employee" => "",
|
||||
"error_adding_updating" => "",
|
||||
"expense_id" => "",
|
||||
"expenses_employee" => "",
|
||||
"info" => "",
|
||||
"ip_address" => "",
|
||||
"is_deleted" => "",
|
||||
"name_required" => "",
|
||||
"new" => "",
|
||||
"new_supplier" => "",
|
||||
"no_expenses_to_display" => "",
|
||||
"none_selected" => "",
|
||||
"one_or_multiple" => "",
|
||||
"payment" => "",
|
||||
"start_typing_supplier_name" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"supplier_name" => "",
|
||||
"supplier_tax_code" => "",
|
||||
"tax_amount" => "",
|
||||
"tax_amount_number" => "",
|
||||
"update" => "",
|
||||
'add_item' => "Dodaj wydatek",
|
||||
'amount' => "",
|
||||
'amount_number' => "",
|
||||
'amount_required' => "",
|
||||
'by_category' => "",
|
||||
'cannot_be_deleted' => "Nie można usunąć Kategorię Wydatki",
|
||||
'cash' => "",
|
||||
'cash_filter' => "",
|
||||
'categories_name' => "",
|
||||
'category_required' => "",
|
||||
'check' => "",
|
||||
'check_filter' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'credit' => "",
|
||||
'credit_filter' => "",
|
||||
'date' => "",
|
||||
'date_number' => "",
|
||||
'date_required' => "",
|
||||
'debit' => "",
|
||||
'debit_filter' => "",
|
||||
'description' => "Opis",
|
||||
'due' => "",
|
||||
'due_filter' => "",
|
||||
'employee' => "",
|
||||
'error_adding_updating' => "",
|
||||
'expense_id' => "",
|
||||
'expenses_employee' => "",
|
||||
'info' => "",
|
||||
'ip_address' => "",
|
||||
'is_deleted' => "",
|
||||
'name_required' => "",
|
||||
'new' => "",
|
||||
'new_supplier' => "",
|
||||
'no_expenses_to_display' => "",
|
||||
'none_selected' => "",
|
||||
'one_or_multiple' => "",
|
||||
'payment' => "",
|
||||
'start_typing_supplier_name' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'supplier_name' => "",
|
||||
'supplier_tax_code' => "",
|
||||
'tax_amount' => "",
|
||||
'tax_amount_number' => "",
|
||||
'update' => "",
|
||||
];
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"category_name_required" => "",
|
||||
"add_item" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"category_id" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"description" => "",
|
||||
"error_adding_updating" => "",
|
||||
"info" => "",
|
||||
"name" => "",
|
||||
"new" => "",
|
||||
"no_expenses_categories_to_display" => "",
|
||||
"none_selected" => "",
|
||||
"one_or_multiple" => "",
|
||||
"quantity" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"update" => "",
|
||||
'category_name_required' => "Nazwa Kategorii Wydatków jest wymagana",
|
||||
'add_item' => "Dodaj Kategorię",
|
||||
'cannot_be_deleted' => "Nie można usunąć Kategorię Wydatki",
|
||||
'category_id' => "Id",
|
||||
'confirm_delete' => "Czy jesteś pewien, że chcesz usunąć zaznaczone Kategorie Wydatków?",
|
||||
'confirm_restore' => "Czy jesteś pewien, że chcesz przywrócić zaznaczone Kategorie Wydatków?",
|
||||
'description' => "Opis kategorii",
|
||||
'error_adding_updating' => "Błąd podczas dodawania lub aktualizowania Kategorii Wydatków",
|
||||
'info' => "Kategoria Wydatków - Informacje",
|
||||
'name' => "Nazwa Kategorii",
|
||||
'new' => "Nowa Kategoria",
|
||||
'no_expenses_categories_to_display' => "Brak Kategorii do wyświetlenia",
|
||||
'none_selected' => "Nie zaznaczono żadnej Kategorii Wydatków",
|
||||
'one_or_multiple' => "Kategoria Wydatki",
|
||||
'quantity' => "Ilość",
|
||||
'successful_adding' => "Kategoria Wydatków została dodana",
|
||||
'successful_deleted' => "Kategoria Wydatków została usunięta",
|
||||
'successful_updating' => "Kategoria Wydatków została zaktualizowana",
|
||||
'update' => "Aktualizacja Kategorii",
|
||||
];
|
||||
|
||||
@@ -1,72 +1,72 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_minus" => "",
|
||||
"allow_alt_description" => "Zezwól na alternatywny opis",
|
||||
"bulk_edit" => "Edycja zbiorcza",
|
||||
"cannot_be_deleted" => "",
|
||||
"cannot_find_giftcard" => "",
|
||||
"cannot_use" => "",
|
||||
"card_value" => "",
|
||||
"category" => "",
|
||||
"change_all_to_allow_alt_desc" => "",
|
||||
"change_all_to_not_allow_allow_desc" => "",
|
||||
"change_all_to_serialized" => "",
|
||||
"change_all_to_unserialized" => "",
|
||||
"confirm_bulk_edit" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"cost_price" => "",
|
||||
"count" => "",
|
||||
"csv_import_failed" => "",
|
||||
"current_quantity" => "",
|
||||
"description" => "",
|
||||
"details_count" => "",
|
||||
"do_nothing" => "",
|
||||
"edit_fields_you_want_to_update" => "",
|
||||
"edit_multiple_giftcards" => "",
|
||||
"error_adding_updating" => "",
|
||||
"error_updating_multiple" => "",
|
||||
"generate_barcodes" => "",
|
||||
"giftcard" => "",
|
||||
"giftcard_number" => "",
|
||||
"info_provided_by" => "",
|
||||
"inventory_comments" => "",
|
||||
"is_serialized" => "",
|
||||
"low_inventory_giftcards" => "",
|
||||
"manually_editing_of_quantity" => "",
|
||||
"must_select_giftcard_for_barcode" => "",
|
||||
"new" => "",
|
||||
"no_description_giftcards" => "",
|
||||
"no_giftcards_to_display" => "",
|
||||
"none" => "",
|
||||
"none_selected" => "",
|
||||
"number" => "",
|
||||
"number_information" => "",
|
||||
"number_required" => "",
|
||||
"one_or_multiple" => "",
|
||||
"person_id" => "",
|
||||
"quantity" => "",
|
||||
"quantity_required" => "",
|
||||
"remaining_balance" => "",
|
||||
"reorder_level" => "",
|
||||
"retrive_giftcard_info" => "",
|
||||
"sales_tax_1" => "",
|
||||
"sales_tax_2" => "",
|
||||
"serialized_giftcards" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_bulk_edit" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"supplier" => "",
|
||||
"tax_1" => "",
|
||||
"tax_2" => "",
|
||||
"tax_percent" => "",
|
||||
"tax_percents" => "",
|
||||
"unit_price" => "",
|
||||
"upc_database" => "",
|
||||
"update" => "",
|
||||
"use_inventory_menu" => "",
|
||||
"value" => "",
|
||||
"value_required" => "",
|
||||
'add_minus' => "Ilość do dodania lub odjęcia.",
|
||||
'allow_alt_description' => "Zezwól na alternatywny opis",
|
||||
'bulk_edit' => "Edycja zbiorcza",
|
||||
'cannot_be_deleted' => "",
|
||||
'cannot_find_giftcard' => "Nie odnaleziono Karty Podarunkowej",
|
||||
'cannot_use' => "Nie można użyć Karty Podarunkowej {0} w tej sprzedaży: nieprawidłowy klient.",
|
||||
'card_value' => "Wartość",
|
||||
'category' => "Kategoria",
|
||||
'change_all_to_allow_alt_desc' => "",
|
||||
'change_all_to_not_allow_allow_desc' => "",
|
||||
'change_all_to_serialized' => "",
|
||||
'change_all_to_unserialized' => "",
|
||||
'confirm_bulk_edit' => "Czy jesteś pewny, że chcesz edytować wybrane Karty Podarunkowe?",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'cost_price' => "",
|
||||
'count' => "",
|
||||
'csv_import_failed' => "Nie udało się zaimportować CSV.",
|
||||
'current_quantity' => "Aktualna Ilość",
|
||||
'description' => "Opis",
|
||||
'details_count' => "",
|
||||
'do_nothing' => "Nic nie rób",
|
||||
'edit_fields_you_want_to_update' => "",
|
||||
'edit_multiple_giftcards' => "Edytuj wiele Kart Podarunkowych",
|
||||
'error_adding_updating' => "Dodanie lub aktualizacja Karty Podarunkowej nie powiodła się.",
|
||||
'error_updating_multiple' => "",
|
||||
'generate_barcodes' => "Generuj kody kreskowe",
|
||||
'giftcard' => "Karta Podarunkowa",
|
||||
'giftcard_number' => "Numer Karty Podarunkowej",
|
||||
'info_provided_by' => "Informacje dostarczone przez",
|
||||
'inventory_comments' => "Komentarze",
|
||||
'is_serialized' => "",
|
||||
'low_inventory_giftcards' => "",
|
||||
'manually_editing_of_quantity' => "",
|
||||
'must_select_giftcard_for_barcode' => "",
|
||||
'new' => "",
|
||||
'no_description_giftcards' => "",
|
||||
'no_giftcards_to_display' => "",
|
||||
'none' => "",
|
||||
'none_selected' => "",
|
||||
'number' => "",
|
||||
'number_information' => "",
|
||||
'number_required' => "",
|
||||
'one_or_multiple' => "",
|
||||
'person_id' => "",
|
||||
'quantity' => "Ilość",
|
||||
'quantity_required' => "",
|
||||
'remaining_balance' => "",
|
||||
'reorder_level' => "",
|
||||
'retrive_giftcard_info' => "",
|
||||
'sales_tax_1' => "",
|
||||
'sales_tax_2' => "",
|
||||
'serialized_giftcards' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_bulk_edit' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'supplier' => "",
|
||||
'tax_1' => "",
|
||||
'tax_2' => "",
|
||||
'tax_percent' => "",
|
||||
'tax_percents' => "",
|
||||
'unit_price' => "",
|
||||
'upc_database' => "",
|
||||
'update' => "",
|
||||
'use_inventory_menu' => "",
|
||||
'value' => "",
|
||||
'value_required' => "",
|
||||
];
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_item" => "Dodaj element",
|
||||
"all" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"description" => "",
|
||||
"discount" => "",
|
||||
"discount_fixed" => "",
|
||||
"discount_percent" => "",
|
||||
"discount_type" => "",
|
||||
"error_adding_updating" => "",
|
||||
"find_kit_item" => "",
|
||||
"info" => "",
|
||||
"item" => "",
|
||||
"item_kit_number" => "",
|
||||
"item_kit_number_duplicate" => "",
|
||||
"item_number" => "",
|
||||
"item_number_duplicate" => "",
|
||||
"items" => "",
|
||||
"kit" => "",
|
||||
"kit_and_components" => "",
|
||||
"kit_and_stock" => "",
|
||||
"kit_only" => "",
|
||||
"name" => "",
|
||||
"new" => "",
|
||||
"no_item_kits_to_display" => "",
|
||||
"none_selected" => "",
|
||||
"one_or_multiple" => "",
|
||||
"price_option" => "",
|
||||
"priced_only" => "",
|
||||
"print_option" => "",
|
||||
"quantity" => "",
|
||||
"sequence" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"unit_price" => "",
|
||||
"update" => "",
|
||||
'add_item' => "Dodaj element",
|
||||
'all' => "",
|
||||
'cannot_be_deleted' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'description' => "",
|
||||
'discount' => "",
|
||||
'discount_fixed' => "",
|
||||
'discount_percent' => "",
|
||||
'discount_type' => "",
|
||||
'error_adding_updating' => "",
|
||||
'find_kit_item' => "",
|
||||
'info' => "",
|
||||
'item' => "",
|
||||
'item_kit_number' => "",
|
||||
'item_kit_number_duplicate' => "",
|
||||
'item_number' => "",
|
||||
'item_number_duplicate' => "",
|
||||
'items' => "",
|
||||
'kit' => "",
|
||||
'kit_and_components' => "",
|
||||
'kit_and_stock' => "",
|
||||
'kit_only' => "",
|
||||
'name' => "",
|
||||
'new' => "",
|
||||
'no_item_kits_to_display' => "",
|
||||
'none_selected' => "",
|
||||
'one_or_multiple' => "",
|
||||
'price_option' => "",
|
||||
'priced_only' => "",
|
||||
'print_option' => "",
|
||||
'quantity' => "Ilość",
|
||||
'sequence' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'unit_price' => "",
|
||||
'update' => "",
|
||||
];
|
||||
|
||||
@@ -1,122 +1,122 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_minus" => "",
|
||||
"allow_alt_description" => "",
|
||||
"amount_entry" => "",
|
||||
"bulk_edit" => "",
|
||||
"buy_price_required" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"cannot_find_item" => "",
|
||||
"categories" => "",
|
||||
"category" => "",
|
||||
"category_new" => "",
|
||||
"category_required" => "",
|
||||
"change_all_to_allow_alt_desc" => "",
|
||||
"change_all_to_not_allow_allow_desc" => "",
|
||||
"change_all_to_serialized" => "",
|
||||
"change_all_to_unserialized" => "",
|
||||
"change_image" => "",
|
||||
"confirm_bulk_edit" => "",
|
||||
"confirm_bulk_edit_wipe_taxes" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"cost_price" => "",
|
||||
"cost_price_number" => "",
|
||||
"cost_price_required" => "",
|
||||
"count" => "",
|
||||
"csv_import_failed" => "",
|
||||
"csv_import_invalid_location" => "",
|
||||
"csv_import_nodata_wrongformat" => "",
|
||||
"csv_import_partially_failed" => "",
|
||||
"csv_import_success" => "",
|
||||
"current_quantity" => "",
|
||||
"default_pack_name" => "",
|
||||
"description" => "",
|
||||
"details_count" => "",
|
||||
"do_nothing" => "",
|
||||
"edit" => "",
|
||||
"edit_fields_you_want_to_update" => "",
|
||||
"edit_multiple_items" => "",
|
||||
"empty_upc_items" => "",
|
||||
"error_adding_updating" => "",
|
||||
"error_updating_multiple" => "",
|
||||
"generate_barcodes" => "",
|
||||
"hsn_code" => "",
|
||||
"image" => "",
|
||||
"import_items_csv" => "",
|
||||
"info_provided_by" => "",
|
||||
"inventory" => "",
|
||||
"inventory_CSV_import_quantity" => "",
|
||||
"inventory_comments" => "",
|
||||
"inventory_data_tracking" => "",
|
||||
"inventory_date" => "",
|
||||
"inventory_employee" => "",
|
||||
"inventory_in_out_quantity" => "",
|
||||
"inventory_remarks" => "",
|
||||
"is_deleted" => "",
|
||||
"is_printed" => "",
|
||||
"is_serialized" => "",
|
||||
"item" => "",
|
||||
"item_id" => "",
|
||||
"item_number" => "",
|
||||
"item_number_duplicate" => "",
|
||||
"kit" => "",
|
||||
"location" => "",
|
||||
"low_inventory_items" => "",
|
||||
"low_sell_item" => "",
|
||||
"manually_editing_of_quantity" => "",
|
||||
"markup" => "",
|
||||
"name" => "",
|
||||
"name_required" => "",
|
||||
"new" => "",
|
||||
"no_description_items" => "",
|
||||
"no_items_to_display" => "",
|
||||
"none" => "",
|
||||
"none_selected" => "",
|
||||
"nonstock" => "",
|
||||
"number_information" => "",
|
||||
"number_required" => "",
|
||||
"one_or_multiple" => "",
|
||||
"pack_name" => "",
|
||||
"qty_per_pack" => "",
|
||||
"quantity" => "",
|
||||
"quantity_number" => "",
|
||||
"quantity_required" => "",
|
||||
"receiving_quantity" => "",
|
||||
"remove_image" => "",
|
||||
"reorder_level" => "",
|
||||
"reorder_level_number" => "",
|
||||
"reorder_level_required" => "",
|
||||
"retrive_item_info" => "",
|
||||
"sales_tax_1" => "",
|
||||
"sales_tax_2" => "",
|
||||
"search_attributes" => "",
|
||||
"select_image" => "",
|
||||
"serialized_items" => "",
|
||||
"standard" => "",
|
||||
"stock" => "",
|
||||
"stock_location" => "",
|
||||
"stock_type" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_bulk_edit" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"supplier" => "",
|
||||
"tax_1" => "",
|
||||
"tax_2" => "",
|
||||
"tax_3" => "",
|
||||
"tax_category" => "",
|
||||
"tax_percent" => "",
|
||||
"tax_percent_number" => "",
|
||||
"tax_percent_required" => "",
|
||||
"tax_percents" => "",
|
||||
"temp" => "",
|
||||
"type" => "",
|
||||
"unit_price" => "",
|
||||
"unit_price_number" => "",
|
||||
"unit_price_required" => "",
|
||||
"upc_database" => "",
|
||||
"update" => "",
|
||||
"use_inventory_menu" => "",
|
||||
'add_minus' => "Ilość do dodania lub odjęcia.",
|
||||
'allow_alt_description' => "",
|
||||
'amount_entry' => "",
|
||||
'bulk_edit' => "",
|
||||
'buy_price_required' => "",
|
||||
'cannot_be_deleted' => "",
|
||||
'cannot_find_item' => "",
|
||||
'categories' => "",
|
||||
'category' => "Kategoria",
|
||||
'category_new' => "",
|
||||
'category_required' => "",
|
||||
'change_all_to_allow_alt_desc' => "",
|
||||
'change_all_to_not_allow_allow_desc' => "",
|
||||
'change_all_to_serialized' => "",
|
||||
'change_all_to_unserialized' => "",
|
||||
'change_image' => "",
|
||||
'confirm_bulk_edit' => "",
|
||||
'confirm_bulk_edit_wipe_taxes' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'cost_price' => "",
|
||||
'cost_price_number' => "",
|
||||
'cost_price_required' => "",
|
||||
'count' => "",
|
||||
'csv_import_failed' => "",
|
||||
'csv_import_invalid_location' => "",
|
||||
'csv_import_nodata_wrongformat' => "",
|
||||
'csv_import_partially_failed' => "",
|
||||
'csv_import_success' => "",
|
||||
'current_quantity' => "Aktualna Ilość",
|
||||
'default_pack_name' => "",
|
||||
'description' => "Opis",
|
||||
'details_count' => "",
|
||||
'do_nothing' => "Nic nie rób",
|
||||
'edit' => "",
|
||||
'edit_fields_you_want_to_update' => "",
|
||||
'edit_multiple_items' => "",
|
||||
'empty_upc_items' => "",
|
||||
'error_adding_updating' => "",
|
||||
'error_updating_multiple' => "",
|
||||
'generate_barcodes' => "Generuj kody kreskowe",
|
||||
'hsn_code' => "",
|
||||
'image' => "",
|
||||
'import_items_csv' => "",
|
||||
'info_provided_by' => "",
|
||||
'inventory' => "",
|
||||
'inventory_CSV_import_quantity' => "",
|
||||
'inventory_comments' => "Komentarze",
|
||||
'inventory_data_tracking' => "",
|
||||
'inventory_date' => "",
|
||||
'inventory_employee' => "",
|
||||
'inventory_in_out_quantity' => "",
|
||||
'inventory_remarks' => "",
|
||||
'is_deleted' => "",
|
||||
'is_printed' => "",
|
||||
'is_serialized' => "",
|
||||
'item' => "",
|
||||
'item_id' => "",
|
||||
'item_number' => "",
|
||||
'item_number_duplicate' => "",
|
||||
'kit' => "",
|
||||
'location' => "",
|
||||
'low_inventory_items' => "",
|
||||
'low_sell_item' => "",
|
||||
'manually_editing_of_quantity' => "",
|
||||
'markup' => "",
|
||||
'name' => "",
|
||||
'name_required' => "",
|
||||
'new' => "",
|
||||
'no_description_items' => "",
|
||||
'no_items_to_display' => "",
|
||||
'none' => "",
|
||||
'none_selected' => "",
|
||||
'nonstock' => "",
|
||||
'number_information' => "",
|
||||
'number_required' => "",
|
||||
'one_or_multiple' => "",
|
||||
'pack_name' => "",
|
||||
'qty_per_pack' => "",
|
||||
'quantity' => "Ilość",
|
||||
'quantity_number' => "",
|
||||
'quantity_required' => "",
|
||||
'receiving_quantity' => "",
|
||||
'remove_image' => "",
|
||||
'reorder_level' => "",
|
||||
'reorder_level_number' => "",
|
||||
'reorder_level_required' => "",
|
||||
'retrive_item_info' => "",
|
||||
'sales_tax_1' => "",
|
||||
'sales_tax_2' => "",
|
||||
'search_attributes' => "",
|
||||
'select_image' => "",
|
||||
'serialized_items' => "",
|
||||
'standard' => "",
|
||||
'stock' => "",
|
||||
'stock_location' => "",
|
||||
'stock_type' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_bulk_edit' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'supplier' => "",
|
||||
'tax_1' => "",
|
||||
'tax_2' => "",
|
||||
'tax_3' => "",
|
||||
'tax_category' => "",
|
||||
'tax_percent' => "",
|
||||
'tax_percent_number' => "",
|
||||
'tax_percent_required' => "",
|
||||
'tax_percents' => "",
|
||||
'temp' => "",
|
||||
'type' => "",
|
||||
'unit_price' => "",
|
||||
'unit_price_number' => "",
|
||||
'unit_price_required' => "",
|
||||
'upc_database' => "",
|
||||
'update' => "",
|
||||
'use_inventory_menu' => "",
|
||||
];
|
||||
|
||||
@@ -1,149 +1,149 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"all" => "Wszystko",
|
||||
"authority" => "",
|
||||
"canceled" => "",
|
||||
"categories" => "",
|
||||
"categories_summary_report" => "",
|
||||
"category" => "",
|
||||
"code_canceled" => "",
|
||||
"code_invoice" => "",
|
||||
"code_pos" => "",
|
||||
"code_quote" => "",
|
||||
"code_return" => "",
|
||||
"code_type" => "",
|
||||
"code_work_order" => "",
|
||||
"comments" => "",
|
||||
"commission" => "",
|
||||
"complete" => "",
|
||||
"completed_sales" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"cost" => "",
|
||||
"cost_price" => "",
|
||||
"count" => "",
|
||||
"customer" => "",
|
||||
"customers" => "",
|
||||
"customers_summary_report" => "",
|
||||
"date" => "",
|
||||
"date_range" => "",
|
||||
"description" => "",
|
||||
"detailed_receivings_report" => "",
|
||||
"detailed_receivings_report_input" => "",
|
||||
"detailed_reports" => "",
|
||||
"detailed_requisition_report" => "",
|
||||
"detailed_sales_report" => "",
|
||||
"discount" => "",
|
||||
"discount_fixed" => "",
|
||||
"discount_percent" => "",
|
||||
"discount_type" => "",
|
||||
"discounts" => "",
|
||||
"discounts_summary_report" => "",
|
||||
"earned" => "",
|
||||
"employee" => "",
|
||||
"employees" => "",
|
||||
"employees_summary_report" => "",
|
||||
"expenses" => "",
|
||||
"expenses_amount" => "",
|
||||
"expenses_categories" => "",
|
||||
"expenses_categories_summary_report" => "",
|
||||
"expenses_category" => "",
|
||||
"expenses_payment_amount" => "",
|
||||
"expenses_tax_amount" => "",
|
||||
"expenses_total_amount" => "",
|
||||
"expenses_total_tax_amount" => "",
|
||||
"graphical_reports" => "",
|
||||
"inventory" => "",
|
||||
"inventory_low" => "",
|
||||
"inventory_low_report" => "",
|
||||
"inventory_reports" => "",
|
||||
"inventory_summary" => "",
|
||||
"inventory_summary_report" => "",
|
||||
"item" => "",
|
||||
"item_count" => "",
|
||||
"item_name" => "",
|
||||
"item_number" => "",
|
||||
"items" => "",
|
||||
"items_purchased" => "",
|
||||
"items_received" => "",
|
||||
"items_summary_report" => "",
|
||||
"jurisdiction" => "",
|
||||
"low_inventory" => "",
|
||||
"low_inventory_report" => "",
|
||||
"low_sell_quantity" => "",
|
||||
"more_than_zero" => "",
|
||||
"name" => "",
|
||||
"no_reports_to_display" => "",
|
||||
"payment_type" => "",
|
||||
"payments" => "",
|
||||
"payments_summary_report" => "",
|
||||
"profit" => "",
|
||||
"quantity" => "",
|
||||
"quantity_purchased" => "",
|
||||
"quotes" => "",
|
||||
"received_by" => "",
|
||||
"receiving_id" => "",
|
||||
"receiving_type" => "",
|
||||
"receivings" => "",
|
||||
"reorder_level" => "",
|
||||
"report" => "",
|
||||
"report_input" => "",
|
||||
"reports" => "",
|
||||
"requisition" => "",
|
||||
"requisition_by" => "",
|
||||
"requisition_id" => "",
|
||||
"requisition_item" => "",
|
||||
"requisition_item_quantity" => "",
|
||||
"requisition_related_item" => "",
|
||||
"requisition_related_item_total_quantity" => "",
|
||||
"requisition_related_item_unit_quantity" => "",
|
||||
"requisitions" => "",
|
||||
"returns" => "",
|
||||
"revenue" => "",
|
||||
"sale_id" => "",
|
||||
"sale_type" => "",
|
||||
"sales" => "",
|
||||
"sales_amount" => "",
|
||||
"sales_summary_report" => "",
|
||||
"sales_taxes" => "",
|
||||
"sales_taxes_summary_report" => "",
|
||||
"serial_number" => "",
|
||||
"service_charge" => "",
|
||||
"sold_by" => "",
|
||||
"sold_items" => "",
|
||||
"sold_to" => "",
|
||||
"stock_location" => "",
|
||||
"sub_total_value" => "",
|
||||
"subtotal" => "",
|
||||
"summary_reports" => "",
|
||||
"supplied_by" => "",
|
||||
"supplier" => "",
|
||||
"suppliers" => "",
|
||||
"suppliers_summary_report" => "",
|
||||
"tax" => "",
|
||||
"tax_category" => "",
|
||||
"tax_name" => "",
|
||||
"tax_percent" => "",
|
||||
"tax_rate" => "",
|
||||
"taxes" => "",
|
||||
"taxes_summary_report" => "",
|
||||
"total" => "",
|
||||
"total_inventory_value" => "",
|
||||
"total_low_sell_quantity" => "",
|
||||
"total_quantity" => "",
|
||||
"total_retail" => "",
|
||||
"trans_amount" => "",
|
||||
"trans_due" => "",
|
||||
"trans_group" => "",
|
||||
"trans_nopay_sales" => "",
|
||||
"trans_payments" => "",
|
||||
"trans_refunded" => "",
|
||||
"trans_sales" => "",
|
||||
"trans_type" => "",
|
||||
"type" => "",
|
||||
"unit_price" => "",
|
||||
"used" => "",
|
||||
"work_orders" => "",
|
||||
"zero_and_less" => "",
|
||||
'all' => "Wszystko",
|
||||
'authority' => "",
|
||||
'canceled' => "",
|
||||
'categories' => "",
|
||||
'categories_summary_report' => "",
|
||||
'category' => "Kategoria",
|
||||
'code_canceled' => "",
|
||||
'code_invoice' => "",
|
||||
'code_pos' => "",
|
||||
'code_quote' => "",
|
||||
'code_return' => "",
|
||||
'code_type' => "",
|
||||
'code_work_order' => "",
|
||||
'comments' => "",
|
||||
'commission' => "",
|
||||
'complete' => "",
|
||||
'completed_sales' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'cost' => "",
|
||||
'cost_price' => "",
|
||||
'count' => "",
|
||||
'customer' => "",
|
||||
'customers' => "",
|
||||
'customers_summary_report' => "",
|
||||
'date' => "",
|
||||
'date_range' => "",
|
||||
'description' => "Opis",
|
||||
'detailed_receivings_report' => "",
|
||||
'detailed_receivings_report_input' => "",
|
||||
'detailed_reports' => "",
|
||||
'detailed_requisition_report' => "",
|
||||
'detailed_sales_report' => "",
|
||||
'discount' => "",
|
||||
'discount_fixed' => "",
|
||||
'discount_percent' => "",
|
||||
'discount_type' => "",
|
||||
'discounts' => "",
|
||||
'discounts_summary_report' => "",
|
||||
'earned' => "",
|
||||
'employee' => "",
|
||||
'employees' => "",
|
||||
'employees_summary_report' => "",
|
||||
'expenses' => "",
|
||||
'expenses_amount' => "",
|
||||
'expenses_categories' => "",
|
||||
'expenses_categories_summary_report' => "",
|
||||
'expenses_category' => "",
|
||||
'expenses_payment_amount' => "",
|
||||
'expenses_tax_amount' => "",
|
||||
'expenses_total_amount' => "",
|
||||
'expenses_total_tax_amount' => "",
|
||||
'graphical_reports' => "",
|
||||
'inventory' => "",
|
||||
'inventory_low' => "",
|
||||
'inventory_low_report' => "",
|
||||
'inventory_reports' => "",
|
||||
'inventory_summary' => "",
|
||||
'inventory_summary_report' => "",
|
||||
'item' => "",
|
||||
'item_count' => "",
|
||||
'item_name' => "",
|
||||
'item_number' => "",
|
||||
'items' => "",
|
||||
'items_purchased' => "",
|
||||
'items_received' => "",
|
||||
'items_summary_report' => "",
|
||||
'jurisdiction' => "",
|
||||
'low_inventory' => "",
|
||||
'low_inventory_report' => "",
|
||||
'low_sell_quantity' => "",
|
||||
'more_than_zero' => "",
|
||||
'name' => "",
|
||||
'no_reports_to_display' => "",
|
||||
'payment_type' => "",
|
||||
'payments' => "",
|
||||
'payments_summary_report' => "",
|
||||
'profit' => "",
|
||||
'quantity' => "Ilość",
|
||||
'quantity_purchased' => "",
|
||||
'quotes' => "",
|
||||
'received_by' => "",
|
||||
'receiving_id' => "",
|
||||
'receiving_type' => "",
|
||||
'receivings' => "",
|
||||
'reorder_level' => "",
|
||||
'report' => "",
|
||||
'report_input' => "",
|
||||
'reports' => "",
|
||||
'requisition' => "",
|
||||
'requisition_by' => "",
|
||||
'requisition_id' => "",
|
||||
'requisition_item' => "",
|
||||
'requisition_item_quantity' => "",
|
||||
'requisition_related_item' => "",
|
||||
'requisition_related_item_total_quantity' => "",
|
||||
'requisition_related_item_unit_quantity' => "",
|
||||
'requisitions' => "",
|
||||
'returns' => "",
|
||||
'revenue' => "",
|
||||
'sale_id' => "",
|
||||
'sale_type' => "",
|
||||
'sales' => "",
|
||||
'sales_amount' => "",
|
||||
'sales_summary_report' => "",
|
||||
'sales_taxes' => "",
|
||||
'sales_taxes_summary_report' => "",
|
||||
'serial_number' => "",
|
||||
'service_charge' => "",
|
||||
'sold_by' => "",
|
||||
'sold_items' => "",
|
||||
'sold_to' => "",
|
||||
'stock_location' => "",
|
||||
'sub_total_value' => "",
|
||||
'subtotal' => "",
|
||||
'summary_reports' => "",
|
||||
'supplied_by' => "",
|
||||
'supplier' => "",
|
||||
'suppliers' => "",
|
||||
'suppliers_summary_report' => "",
|
||||
'tax' => "",
|
||||
'tax_category' => "",
|
||||
'tax_name' => "",
|
||||
'tax_percent' => "",
|
||||
'tax_rate' => "",
|
||||
'taxes' => "",
|
||||
'taxes_summary_report' => "",
|
||||
'total' => "",
|
||||
'total_inventory_value' => "",
|
||||
'total_low_sell_quantity' => "",
|
||||
'total_quantity' => "",
|
||||
'total_retail' => "",
|
||||
'trans_amount' => "",
|
||||
'trans_due' => "",
|
||||
'trans_group' => "",
|
||||
'trans_nopay_sales' => "",
|
||||
'trans_payments' => "",
|
||||
'trans_refunded' => "",
|
||||
'trans_sales' => "",
|
||||
'trans_type' => "",
|
||||
'type' => "",
|
||||
'unit_price' => "",
|
||||
'used' => "",
|
||||
'work_orders' => "",
|
||||
'zero_and_less' => "",
|
||||
];
|
||||
|
||||
@@ -1,225 +1,225 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"customers_available_points" => "Dostępne punkty",
|
||||
"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_discount" => "",
|
||||
"customer_email" => "",
|
||||
"customer_location" => "",
|
||||
"customer_mailchimp_status" => "",
|
||||
"customer_optional" => "",
|
||||
"customer_required" => "",
|
||||
"customer_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" => "",
|
||||
"id" => "",
|
||||
"include_prices" => "",
|
||||
"invoice" => "",
|
||||
"invoice_confirm" => "",
|
||||
"invoice_enable" => "",
|
||||
"invoice_filter" => "",
|
||||
"invoice_no_email" => "",
|
||||
"invoice_number" => "",
|
||||
"invoice_number_duplicate" => "",
|
||||
"invoice_sent" => "",
|
||||
"invoice_total" => "",
|
||||
"invoice_type_custom_invoice" => "",
|
||||
"invoice_type_custom_tax_invoice" => "",
|
||||
"invoice_type_invoice" => "",
|
||||
"invoice_type_tax_invoice" => "",
|
||||
"invoice_unsent" => "",
|
||||
"invoice_update" => "",
|
||||
"item_insufficient_of_stock" => "",
|
||||
"item_name" => "",
|
||||
"item_number" => "",
|
||||
"item_out_of_stock" => "",
|
||||
"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" => "",
|
||||
"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" => "",
|
||||
"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" => "",
|
||||
"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" => "",
|
||||
'customers_available_points' => "Dostępne punkty",
|
||||
'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_discount' => "",
|
||||
'customer_email' => "",
|
||||
'customer_location' => "",
|
||||
'customer_mailchimp_status' => "",
|
||||
'customer_optional' => "",
|
||||
'customer_required' => "",
|
||||
'customer_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' => "Karta Podarunkowa",
|
||||
'giftcard_balance' => "",
|
||||
'giftcard_filter' => "",
|
||||
'giftcard_number' => "Numer Karty Podarunkowej",
|
||||
'group_by_category' => "",
|
||||
'group_by_type' => "",
|
||||
'hsn' => "",
|
||||
'id' => "",
|
||||
'include_prices' => "",
|
||||
'invoice' => "",
|
||||
'invoice_confirm' => "",
|
||||
'invoice_enable' => "",
|
||||
'invoice_filter' => "",
|
||||
'invoice_no_email' => "",
|
||||
'invoice_number' => "",
|
||||
'invoice_number_duplicate' => "",
|
||||
'invoice_sent' => "",
|
||||
'invoice_total' => "",
|
||||
'invoice_type_custom_invoice' => "",
|
||||
'invoice_type_custom_tax_invoice' => "",
|
||||
'invoice_type_invoice' => "",
|
||||
'invoice_type_tax_invoice' => "",
|
||||
'invoice_unsent' => "",
|
||||
'invoice_update' => "",
|
||||
'item_insufficient_of_stock' => "",
|
||||
'item_name' => "",
|
||||
'item_number' => "",
|
||||
'item_out_of_stock' => "",
|
||||
'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' => "",
|
||||
'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' => "Ilość",
|
||||
'quantity_less_than_reorder_level' => "",
|
||||
'quantity_less_than_zero' => "",
|
||||
'quantity_of_items' => "",
|
||||
'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' => "",
|
||||
'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,25 +1,25 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"account_number" => "Numer konta",
|
||||
"agency_name" => "",
|
||||
"cannot_be_deleted" => "",
|
||||
"category" => "",
|
||||
"company_name" => "",
|
||||
"company_name_required" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"cost" => "",
|
||||
"error_adding_updating" => "",
|
||||
"goods" => "",
|
||||
"new" => "",
|
||||
"none_selected" => "",
|
||||
"one_or_multiple" => "",
|
||||
"successful_adding" => "",
|
||||
"successful_deleted" => "",
|
||||
"successful_updating" => "",
|
||||
"supplier" => "",
|
||||
"supplier_id" => "",
|
||||
"tax_id" => "",
|
||||
"update" => "",
|
||||
'account_number' => "Numer konta",
|
||||
'agency_name' => "",
|
||||
'cannot_be_deleted' => "",
|
||||
'category' => "Kategoria",
|
||||
'company_name' => "",
|
||||
'company_name_required' => "",
|
||||
'confirm_delete' => "",
|
||||
'confirm_restore' => "",
|
||||
'cost' => "",
|
||||
'error_adding_updating' => "",
|
||||
'goods' => "",
|
||||
'new' => "",
|
||||
'none_selected' => "",
|
||||
'one_or_multiple' => "",
|
||||
'successful_adding' => "",
|
||||
'successful_deleted' => "",
|
||||
'successful_updating' => "",
|
||||
'supplier' => "",
|
||||
'supplier_id' => "",
|
||||
'tax_id' => "",
|
||||
'update' => "",
|
||||
];
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Tem certeza de que deseja excluir os atributos selecionados?",
|
||||
"confirm_restore" => "Tem certeza de que deseja restaurar o(s) atributo(s) selecionado(s)?",
|
||||
"definition_cannot_be_deleted" => "Não foi possível excluir atributo selecionado (s)",
|
||||
"definition_invalid_group" => "O grupo selecionado não existe ou é inválido.",
|
||||
"definition_error_adding_updating" => "Atributo {0} não pode ser adicionado ou atualizado. Por favor verifique o log de erros.",
|
||||
"definition_flags" => "Visibilidade de atributo",
|
||||
"definition_group" => "Grupo",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Sigur doriti stergerea atributului/atributelor selectat(e)?",
|
||||
"confirm_restore" => "",
|
||||
"definition_cannot_be_deleted" => "Nu se poate sterge atributul/atributele selectat(e)",
|
||||
"definition_invalid_group" => "Grupul selectat nu există sau este invalid.",
|
||||
"definition_error_adding_updating" => "",
|
||||
"definition_flags" => "Vizibilitate atribut",
|
||||
"definition_group" => "Grup",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Вы уверены, что хотите удалить выбранные атрибут(ы)?",
|
||||
"confirm_restore" => "Вы уверены, что хотите восстановить выбранные атрибут(ы)?",
|
||||
"definition_cannot_be_deleted" => "Не удалось удалить выбранные атрибут(ы)",
|
||||
"definition_invalid_group" => "Выбранная группа не существует или недействительна.",
|
||||
"definition_error_adding_updating" => "Атрибут {0} не может быть добавлен или обновлен. Пожалуйста, проверьте журнал ошибок.",
|
||||
"definition_flags" => "Видимость атрибута",
|
||||
"definition_group" => "Группа",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Är du säker på att du vill ta bort de valda attributen?",
|
||||
"confirm_restore" => "Är du säker på att du vill återställa de valda attributen?",
|
||||
"definition_cannot_be_deleted" => "Det gick inte att ta bort valda attribut",
|
||||
"definition_invalid_group" => "Den valda gruppen finns inte eller är ogiltig.",
|
||||
"definition_error_adding_updating" => "Attribut{0} kunde inte läggas till eller uppdateras. Kontrollera felloggen.",
|
||||
"definition_flags" => "Attribut synlighet",
|
||||
"definition_group" => "Grupp",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Una uhakika unataka kufuta sifa iliyochaguliwa/zilizochaguliwa?",
|
||||
"confirm_restore" => "Una uhakika unataka kurejesha sifa iliyochaguliwa/zilizochaguliwa?",
|
||||
"definition_cannot_be_deleted" => "Haiwezekani kufuta sifa iliyochaguliwa/zilizochaguliwa",
|
||||
"definition_invalid_group" => "Kikundi ulichochagua hakipo au hakitoshi.",
|
||||
"definition_error_adding_updating" => "Sifa {0} haiwezekani kuongezwa au kusasishwa. Tafadhali angalia logi ya makosa.",
|
||||
"definition_flags" => "Uonekano wa Sifa",
|
||||
"definition_group" => "Kundi",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Una uhakika unataka kufuta sifa iliyochaguliwa/zilizochaguliwa?",
|
||||
"confirm_restore" => "Una uhakika unataka kurejesha sifa iliyochaguliwa/zilizochaguliwa?",
|
||||
"definition_cannot_be_deleted" => "Haiwezekani kufuta sifa iliyochaguliwa/zilizochaguliwa",
|
||||
"definition_invalid_group" => "Kikundi ulichochagua hakipo au hakitoshi.",
|
||||
"definition_error_adding_updating" => "Sifa {0} haiwezekani kuongezwa au kusasishwa. Tafadhali angalia logi ya makosa.",
|
||||
"definition_flags" => "Uonekano wa Sifa",
|
||||
"definition_group" => "Kundi",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "தேர்ந்தெடுக்கப்பட்ட பண்புக்கூறு (களை) நீக்க விரும்புகிறீர்களா?",
|
||||
"confirm_restore" => "தேர்ந்தெடுக்கப்பட்ட பண்புக்கூறுகளை (களை) மீட்டெடுக்க விரும்புகிறீர்களா?",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "ต้องการลบคุณลักษณะที่เลือกหรือไม่ ?",
|
||||
"confirm_restore" => "ต้องการคืนค่าคุณลักษณะที่เลือกหรือไม่ ?",
|
||||
"definition_cannot_be_deleted" => "ไม่สามารถลบคุณลักษณะที่เลือก",
|
||||
"definition_invalid_group" => "กลุ่มที่เลือกไม่มีอยู่หรือไม่ถูกต้อง",
|
||||
"definition_error_adding_updating" => "ไม่สามารถเพิ่มหรือแก้ไขคุณลักษณะ {0}, โปรดตรวจสอบความผิดพลาดในบันทึก",
|
||||
"definition_flags" => "การมองเห็นคุณลักษณะ",
|
||||
"definition_group" => "กลุ่ม",
|
||||
|
||||
@@ -1,47 +1,47 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"administrator" => "",
|
||||
"basic_information" => "ข้อมูลพื้นฐานของพนักงาน",
|
||||
"cannot_be_deleted" => "ไม่สามารถลบพนักงานที่เลือกไว้ได้ เนื่องจากมีการทำรายการขายหรือคุณกำลังพยายามที่จะลบบัญชีของคุณเอง",
|
||||
"change_employee" => "",
|
||||
"change_password" => "เปลี่ยนรหัสผ่าน",
|
||||
"clerk" => "",
|
||||
"commission" => "",
|
||||
"confirm_delete" => "คุณยืนยันการลบข้อมูลพนักงานที่เลือกไว้?",
|
||||
"confirm_restore" => "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนพนักงานที่เลือกไว้?",
|
||||
"current_password" => "รหัสผ่านปัจจุบัน",
|
||||
"current_password_invalid" => "รหัสผ่านปัจจุบันไม่ถูกต้อง",
|
||||
"employee" => "พนักงาน",
|
||||
"error_adding_updating" => "การเพิ่มหรือปรับปรุงข้อมูลพนักงานผิดพลาด",
|
||||
"error_deleting_admin" => "",
|
||||
"error_updating_admin" => "",
|
||||
"error_deleting_demo_admin" => "คุณไม่สามารถลบผู้ใช้งานสำหรับการเดโม้ได้",
|
||||
"error_updating_demo_admin" => "คุณไม่สามารถทำการเปลี่ยนข้อมูลผู้ใช้งานเดโม้ได้",
|
||||
"language" => "ภาษา",
|
||||
"login_info" => "รหัสเข้าระบบ",
|
||||
"manager" => "",
|
||||
"new" => "เพิ่มพนักงาน",
|
||||
"none_selected" => "โปรดเลือกพนักงานที่จะลบ",
|
||||
"one_or_multiple" => "พนักงาน",
|
||||
"password" => "รหัสผ่าน",
|
||||
"password_minlength" => "รหัสผ่านต้องยาวอย่างน้อย 8 อักษร",
|
||||
"password_must_match" => "รหัสผ่านไม่ตรงกัน",
|
||||
"password_not_must_match" => "รหัสผ่านปัจจุบันและรหัสผ่านใหม่จะต้องไม่ซ้ำกัน",
|
||||
"password_required" => "ต้องระบุรหัสผ่าน",
|
||||
"permission_desc" => "ทำเครื่องหมายในช่องด้านล่างเพื่อให้สิทธิ์การเข้าถึงโมดูลต่างๆ",
|
||||
"permission_info" => "สิทธิ์",
|
||||
"repeat_password" => "ระบุรหัสผ่านอีกครั้ง",
|
||||
"subpermission_required" => "เพิ่มการอนุญาตอย่างน้อยหนึ่งรายการสำหรับแต่ละโมดูล",
|
||||
"successful_adding" => "เพิ่มข้อมูลพนักงานเรียบร้อยแล้ว",
|
||||
"successful_change_password" => "ทำการเปลี่ยนรหัสผ่านเรียบร้อยแล้ว",
|
||||
"successful_deleted" => "ลบข้อมูลสำเร็จ",
|
||||
"successful_updating" => "ปรับปรุงข้อมูลพนักงานเรียบร้อยแล้ว",
|
||||
"system_language" => "ภาษาของระบบ",
|
||||
"unsuccessful_change_password" => "เปลี่ยนรหัสผ่านไม่สำเร็จ",
|
||||
"update" => "แก้ไขข้อมูลพนักงาน",
|
||||
"username" => "ชื่อผู้ใช้งาน",
|
||||
"username_duplicate" => "ชื่อผู้ใช้งานพนักงานถูกใช้งานแล้ว กรุณาเลือกใช้งานชื่ออื่น",
|
||||
"username_minlength" => "ชื่อผู้ใช้งานต้องยาวอย่างน้อย 5 อักษร",
|
||||
"username_required" => "จำเป็นต้องระบุชื่อผู้ใช้งาน",
|
||||
'administrator' => "",
|
||||
'basic_information' => "ข้อมูลพื้นฐานของพนักงาน",
|
||||
'cannot_be_deleted' => "ไม่สามารถลบพนักงานที่เลือกไว้ได้ เนื่องจากมีการทำรายการขายหรือคุณกำลังพยายามที่จะลบบัญชีของคุณเอง",
|
||||
'change_employee' => "",
|
||||
'change_password' => "เปลี่ยนรหัสผ่าน",
|
||||
'clerk' => "",
|
||||
'commission' => "",
|
||||
'confirm_delete' => "คุณยืนยันการลบข้อมูลพนักงานที่เลือกไว้?",
|
||||
'confirm_restore' => "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนพนักงานที่เลือกไว้?",
|
||||
'current_password' => "รหัสผ่านปัจจุบัน",
|
||||
'current_password_invalid' => "รหัสผ่านปัจจุบันไม่ถูกต้อง",
|
||||
'employee' => "พนักงาน",
|
||||
'error_adding_updating' => "การเพิ่มหรือปรับปรุงข้อมูลพนักงานผิดพลาด",
|
||||
'error_deleting_admin' => "คุณไม่สามารถลบบัญชีแอดมินได้",
|
||||
'error_updating_admin' => "คุณไม่สามารถแก้ไขบัญชีแอดมินได้",
|
||||
'error_deleting_demo_admin' => "คุณไม่สามารถลบผู้ใช้งานสำหรับการเดโม้ได้",
|
||||
'error_updating_demo_admin' => "คุณไม่สามารถทำการเปลี่ยนข้อมูลผู้ใช้งานเดโม้ได้",
|
||||
'language' => "ภาษา",
|
||||
'login_info' => "รหัสเข้าระบบ",
|
||||
'manager' => "",
|
||||
'new' => "เพิ่มพนักงาน",
|
||||
'none_selected' => "โปรดเลือกพนักงานที่จะลบ",
|
||||
'one_or_multiple' => "พนักงาน",
|
||||
'password' => "รหัสผ่าน",
|
||||
'password_minlength' => "รหัสผ่านต้องยาวอย่างน้อย 8 อักษร",
|
||||
'password_must_match' => "รหัสผ่านไม่ตรงกัน",
|
||||
'password_not_must_match' => "รหัสผ่านปัจจุบันและรหัสผ่านใหม่จะต้องไม่ซ้ำกัน",
|
||||
'password_required' => "ต้องระบุรหัสผ่าน",
|
||||
'permission_desc' => "ทำเครื่องหมายในช่องด้านล่างเพื่อให้สิทธิ์การเข้าถึงโมดูลต่างๆ",
|
||||
'permission_info' => "สิทธิ์",
|
||||
'repeat_password' => "ระบุรหัสผ่านอีกครั้ง",
|
||||
'subpermission_required' => "เพิ่มการอนุญาตอย่างน้อยหนึ่งรายการสำหรับแต่ละโมดูล",
|
||||
'successful_adding' => "เพิ่มข้อมูลพนักงานเรียบร้อยแล้ว",
|
||||
'successful_change_password' => "ทำการเปลี่ยนรหัสผ่านเรียบร้อยแล้ว",
|
||||
'successful_deleted' => "ลบข้อมูลสำเร็จ",
|
||||
'successful_updating' => "ปรับปรุงข้อมูลพนักงานเรียบร้อยแล้ว",
|
||||
'system_language' => "ภาษาของระบบ",
|
||||
'unsuccessful_change_password' => "เปลี่ยนรหัสผ่านไม่สำเร็จ",
|
||||
'update' => "แก้ไขข้อมูลพนักงาน",
|
||||
'username' => "ชื่อผู้ใช้งาน",
|
||||
'username_duplicate' => "ชื่อผู้ใช้งานพนักงานถูกใช้งานแล้ว กรุณาเลือกใช้งานชื่ออื่น",
|
||||
'username_minlength' => "ชื่อผู้ใช้งานต้องยาวอย่างน้อย 5 อักษร",
|
||||
'username_required' => "จำเป็นต้องระบุชื่อผู้ใช้งาน",
|
||||
];
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_item" => "เพิ่มรายจ่าย",
|
||||
"amount" => "จำนวน",
|
||||
"amount_number" => "ยอดจำนวนต้องเป็นตัวเลข",
|
||||
"amount_required" => "จำเป็นต้องระบุยอดค่าใช้จ่าย",
|
||||
"by_category" => "หมวดหมู่",
|
||||
"cannot_be_deleted" => "ไม่สามารถลบหมวดหมู่ค่าใช้จ่าย",
|
||||
"cash" => "เงินสด",
|
||||
"cash_filter" => "เงินสด",
|
||||
"categories_name" => "หมวดหมู่",
|
||||
"category_required" => "จำเป็นต้องระบุหมวดหมู่",
|
||||
"check" => "ตรวจสอบ",
|
||||
"check_filter" => "เช็ค",
|
||||
"confirm_delete" => "คุณแน่ใจหรือว่าต้องการลบค่าใช้จ่ายที่เลือกทั้งหมด?",
|
||||
"confirm_restore" => "คุณแน่ใจหรือไม่ว่าต้องการคืนค่าใช้จ่ายที่เลือกทั้งหมด?",
|
||||
"credit" => "บัตรเครดิต",
|
||||
"credit_filter" => "บัตรเครติด",
|
||||
"date" => "วันที่",
|
||||
"date_number" => "วันที่ต้องเป็นตัวเลข",
|
||||
"date_required" => "จำเป็นต้องระบุวันที่",
|
||||
"debit" => "บัตรเดบิต",
|
||||
"debit_filter" => "บัตรเดบิต",
|
||||
"description" => "คำอธิบาย",
|
||||
"due" => "ครบกำหนด",
|
||||
"due_filter" => "ครบกำหนด",
|
||||
"employee" => "สร้างโดย",
|
||||
"error_adding_updating" => "ผิดพลาดขณะเพิ่ม/ปรับปรุงค่าใช้จ่าย",
|
||||
"expense_id" => "รหัส",
|
||||
"expenses_employee" => "ลูกจ้าง",
|
||||
"info" => "ข้อมูลค่าใช้จ่าย",
|
||||
"ip_address" => "",
|
||||
"is_deleted" => "ถูกลบ",
|
||||
"name_required" => "ต้องระบุชื่อรายจ่าย",
|
||||
"new" => "เพิ่มรายจ่าย",
|
||||
"new_supplier" => "",
|
||||
"no_expenses_to_display" => "ไม่มีรายจ่ายต้องแสดง",
|
||||
"none_selected" => "ท่านยังไม่ได้เลือกรายจ่าย",
|
||||
"one_or_multiple" => "รายจ่าย",
|
||||
"payment" => "ประเภทการชำระ",
|
||||
"start_typing_supplier_name" => "เริ่มต้นพิมพ์ชื่อผู้ผลิต...",
|
||||
"successful_adding" => "เพิ่มรายจ่ายสำเร็จ",
|
||||
"successful_deleted" => "ลบรายจ่ายสำเร็จ",
|
||||
"successful_updating" => "ปรับปรุงรายจ่ายสำเร็จ",
|
||||
"supplier_name" => "ผู้ผลิต",
|
||||
"supplier_tax_code" => "รหัสภาษี",
|
||||
"tax_amount" => "ภาษี",
|
||||
"tax_amount_number" => "",
|
||||
"update" => "ปรับปรุงค่าใช้จ่าย",
|
||||
'add_item' => "เพิ่มค่าใช้จ่าย",
|
||||
'amount' => "จำนวน",
|
||||
'amount_number' => "ยอดจำนวนต้องเป็นตัวเลข",
|
||||
'amount_required' => "จำเป็นต้องระบุยอดค่าใช้จ่าย",
|
||||
'by_category' => "หมวดหมู่",
|
||||
'cannot_be_deleted' => "ไม่สามารถลบหมวดหมู่ค่าใช้จ่าย",
|
||||
'cash' => "เงินสด",
|
||||
'cash_filter' => "เงินสด",
|
||||
'categories_name' => "หมวดหมู่",
|
||||
'category_required' => "จำเป็นต้องระบุหมวดหมู่",
|
||||
'check' => "ตรวจสอบ",
|
||||
'check_filter' => "เช็ค",
|
||||
'confirm_delete' => "คุณแน่ใจหรือว่าต้องการลบค่าใช้จ่ายที่เลือกทั้งหมด?",
|
||||
'confirm_restore' => "คุณแน่ใจหรือไม่ว่าต้องการคืนค่าใช้จ่ายที่เลือกทั้งหมด?",
|
||||
'credit' => "บัตรเครดิต",
|
||||
'credit_filter' => "บัตรเครติด",
|
||||
'date' => "วันที่",
|
||||
'date_number' => "วันที่ต้องเป็นตัวเลข",
|
||||
'date_required' => "จำเป็นต้องระบุวันที่",
|
||||
'debit' => "บัตรเดบิต",
|
||||
'debit_filter' => "บัตรเดบิต",
|
||||
'description' => "คำอธิบาย",
|
||||
'due' => "ครบกำหนด",
|
||||
'due_filter' => "ครบกำหนด",
|
||||
'employee' => "สร้างโดย",
|
||||
'error_adding_updating' => "ผิดพลาดขณะเพิ่ม/ปรับปรุงค่าใช้จ่าย",
|
||||
'expense_id' => "รหัส",
|
||||
'expenses_employee' => "ลูกจ้าง",
|
||||
'info' => "ข้อมูลค่าใช้จ่าย",
|
||||
'ip_address' => "",
|
||||
'is_deleted' => "ถูกลบ",
|
||||
'name_required' => "ต้องระบุชื่อค่าใช้จ่าย",
|
||||
'new' => "เพิ่มค่าใช้จ่ายใหม่",
|
||||
'new_supplier' => "",
|
||||
'no_expenses_to_display' => "ไม่มีค่าใช้จ่ายต้องแสดง",
|
||||
'none_selected' => "ท่านยังไม่ได้เลือกค่าใช้จ่าย",
|
||||
'one_or_multiple' => "ค่าใช้จ่าย",
|
||||
'payment' => "ประเภทการชำระ",
|
||||
'start_typing_supplier_name' => "เริ่มต้นพิมพ์ชื่อผู้ผลิต...",
|
||||
'successful_adding' => "เพิ่มค่าใช้จ่ายสำเร็จ",
|
||||
'successful_deleted' => "ลบค่าใช้จ่ายสำเร็จ",
|
||||
'successful_updating' => "ปรับปรุงค่าใช้จ่ายสำเร็จ",
|
||||
'supplier_name' => "ผู้ผลิต",
|
||||
'supplier_tax_code' => "รหัสภาษี",
|
||||
'tax_amount' => "ภาษี",
|
||||
'tax_amount_number' => "",
|
||||
'update' => "ปรับปรุงค่าใช้จ่าย",
|
||||
];
|
||||
|
||||
@@ -1,72 +1,72 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_minus" => "สินค้าคงคลัง เพิ่ม/ลด",
|
||||
"allow_alt_description" => "คำอธิบายสำรอง",
|
||||
"bulk_edit" => "แก้ไขเป็นกลุ่ม",
|
||||
"cannot_be_deleted" => "ไม่สามารถลบข้อมูลบัตรของขวัญที่เลือก, หรือบัตรของขวัญได้มีการใช้ไปแล้ว",
|
||||
"cannot_find_giftcard" => "ไม่พบข้อมูลเกี่ยวกับบัตรของขวัญนี้",
|
||||
"cannot_use" => "บัตรของขวัญ {0} ไม่สามารถใช้งานกับรายการขายนี้ได้ เนื่องจากรายการลูกค้าไม่ถูกต้อง",
|
||||
"card_value" => "มูลค่า",
|
||||
"category" => "ประเภท",
|
||||
"change_all_to_allow_alt_desc" => "คำอธิบายสำรองสำหรับทั้งหมด",
|
||||
"change_all_to_not_allow_allow_desc" => "ไม่อนุญาตให้เปลี่ยนคำอธิบายทั้งหมด",
|
||||
"change_all_to_serialized" => "เปลี่ยนแปลงทั้งหมด",
|
||||
"change_all_to_unserialized" => "เปลี่ยนทั้งหมดเป็นแบบไม่ต่อเนื่องกัน",
|
||||
"confirm_bulk_edit" => "คุณแน่ใจหรือไม่ว่าต้องการแก้ไขบัตรของขวัญที่เลือก?",
|
||||
"confirm_delete" => "คุณแน่ใจหรือไม่ว่าต้องการลบบัตรของขวัญที่เลือก?",
|
||||
"confirm_restore" => "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกบัตรของขวัญที่เลือก?",
|
||||
"cost_price" => "ต้นทุน",
|
||||
"count" => "ปรับปรุงสินค้าคงคลัง",
|
||||
"csv_import_failed" => "การส่งออกในรูปแบบไฟล์เอ็กเซล ไม่สำเร็จ",
|
||||
"current_quantity" => "จำนวน ณ. ปัจจุบัน",
|
||||
"description" => "รายละเอียด",
|
||||
"details_count" => "รายละเอียดการตรวจนับในสินค้าคงคลัง",
|
||||
"do_nothing" => "ไม่ทำอะไร",
|
||||
"edit_fields_you_want_to_update" => "แก้ไขฟิลด์ที่ต้องการสำหรับบัตรของขวัญที่เลือก",
|
||||
"edit_multiple_giftcards" => "แก้ไขบัตรกำนัลหลายใบ",
|
||||
"error_adding_updating" => "มีข้อผิดพลาดในการ เพิ่ม/ปรับปรุง บัตรกำนัล",
|
||||
"error_updating_multiple" => "มีข้อผิดพลาดในการปรับปรุง บัตรกำนัล",
|
||||
"generate_barcodes" => "สร้างบาร์โค้ด",
|
||||
"giftcard" => "บัตรกำนัล",
|
||||
"giftcard_number" => "เลขบัตรกำนัล",
|
||||
"info_provided_by" => "ข้อมูลที่จัดทำโดย",
|
||||
"inventory_comments" => "คำแนะนำ",
|
||||
"is_serialized" => "Giftcard has Serial Number",
|
||||
"low_inventory_giftcards" => "Low Inventory Giftcards",
|
||||
"manually_editing_of_quantity" => "แก้ไขจำนวนปริมาณเอง",
|
||||
"must_select_giftcard_for_barcode" => "กรุณาเลือกบัตรกำนัลอย่างน้อย 1 รายการ เพื่อสร้างบาร์โค๊ด",
|
||||
"new" => "เพิ่มบัตรกำนัล",
|
||||
"no_description_giftcards" => "No Description Giftcards",
|
||||
"no_giftcards_to_display" => "No Giftcards to display",
|
||||
"none" => "ไม่มี",
|
||||
"none_selected" => "กรุณาเลือกบัตรกำนัลที่ต้องการแก้ไข",
|
||||
"number" => "เลขบัตรกำนัลต้องเป็นตัวเลขเท่านั้น",
|
||||
"number_information" => "หมายเลขบัตรของขวัญ",
|
||||
"number_required" => "ต้องกรอกเลขบัตรกำนัล",
|
||||
"one_or_multiple" => "giftcard(s)",
|
||||
"person_id" => "เจ้าของบัตร",
|
||||
"quantity" => "ปริมาณ",
|
||||
"quantity_required" => "ช่องข้อมูลปริมาณ จำเป็นต้องกรอก. คลิกที่เครื่องหมาย ( X ) เพื่อยกเลิก",
|
||||
"remaining_balance" => "บัตรของขวัญ {0} มีมูลค่า {1}!",
|
||||
"reorder_level" => "ยอดขั้นต่ำ",
|
||||
"retrive_giftcard_info" => "Retrieve Giftcard Info",
|
||||
"sales_tax_1" => "ภาษีการขาย",
|
||||
"sales_tax_2" => "ภาษีขาย 2",
|
||||
"serialized_giftcards" => "Serialized Giftcards",
|
||||
"successful_adding" => "You have successfully added giftcard",
|
||||
"successful_bulk_edit" => "You have successfully updated the selected giftcards",
|
||||
"successful_deleted" => "คุณทำการลบสำเร็จแล้ว",
|
||||
"successful_updating" => "You have successfully updated giftcard",
|
||||
"supplier" => "ผู้ผลิต",
|
||||
"tax_1" => "ภาษี 1",
|
||||
"tax_2" => "ภาษี 2",
|
||||
"tax_percent" => "เปอร์เซ็นต์ภาษี",
|
||||
"tax_percents" => "อัตราภาษีแบบเปอร์เซ็นต์",
|
||||
"unit_price" => "ราคาปลีก",
|
||||
"upc_database" => "ฐานข้อมุลบาร์โค๊ด",
|
||||
"update" => "ปรับข้อมูลบัตรกำนัล",
|
||||
"use_inventory_menu" => "ใช้เมนูสินค้าคงคลัง",
|
||||
"value" => "มูลค่าบัตรกำนัลต้องเป็นตัวเลขเท่านั้น",
|
||||
"value_required" => "ต้องกรอกมูลค่าบัตรกำนัล",
|
||||
'add_minus' => "สินค้าคงคลัง เพิ่ม/ลด",
|
||||
'allow_alt_description' => "คำอธิบายสำรอง",
|
||||
'bulk_edit' => "แก้ไขเป็นกลุ่ม",
|
||||
'cannot_be_deleted' => "ไม่สามารถลบข้อมูลบัตรของขวัญที่เลือก, หรือบัตรของขวัญได้มีการใช้ไปแล้ว",
|
||||
'cannot_find_giftcard' => "ไม่พบข้อมูลเกี่ยวกับบัตรของขวัญนี้",
|
||||
'cannot_use' => "บัตรของขวัญ {0} ไม่สามารถใช้งานกับรายการขายนี้ได้ เนื่องจากรายการลูกค้าไม่ถูกต้อง",
|
||||
'card_value' => "มูลค่า",
|
||||
'category' => "ประเภท",
|
||||
'change_all_to_allow_alt_desc' => "คำอธิบายสำรองสำหรับทั้งหมด",
|
||||
'change_all_to_not_allow_allow_desc' => "ไม่อนุญาตให้เปลี่ยนคำอธิบายทั้งหมด",
|
||||
'change_all_to_serialized' => "เปลี่ยนแปลงทั้งหมด",
|
||||
'change_all_to_unserialized' => "เปลี่ยนทั้งหมดเป็นแบบไม่ต่อเนื่องกัน",
|
||||
'confirm_bulk_edit' => "คุณแน่ใจหรือไม่ว่าต้องการแก้ไขบัตรของขวัญที่เลือก?",
|
||||
'confirm_delete' => "คุณแน่ใจหรือไม่ว่าต้องการลบบัตรของขวัญที่เลือก?",
|
||||
'confirm_restore' => "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกบัตรของขวัญที่เลือก?",
|
||||
'cost_price' => "ราคาขายส่ง",
|
||||
'count' => "ปรับปรุงสินค้าคงคลัง",
|
||||
'csv_import_failed' => "การส่งออกในรูปแบบไฟล์เอ็กเซล ไม่สำเร็จ",
|
||||
'current_quantity' => "จำนวน ณ. ปัจจุบัน",
|
||||
'description' => "รายละเอียด",
|
||||
'details_count' => "รายละเอียดการตรวจนับในสินค้าคงคลัง",
|
||||
'do_nothing' => "ไม่ทำอะไร",
|
||||
'edit_fields_you_want_to_update' => "แก้ไขฟิลด์ที่ต้องการสำหรับบัตรของขวัญที่เลือก",
|
||||
'edit_multiple_giftcards' => "แก้ไขบัตรกำนัลหลายใบ",
|
||||
'error_adding_updating' => "มีข้อผิดพลาดในการ เพิ่ม/ปรับปรุง บัตรกำนัล",
|
||||
'error_updating_multiple' => "มีข้อผิดพลาดในการปรับปรุง บัตรกำนัล",
|
||||
'generate_barcodes' => "สร้างบาร์โค้ด",
|
||||
'giftcard' => "บัตรกำนัล",
|
||||
'giftcard_number' => "เลขบัตรกำนัล",
|
||||
'info_provided_by' => "ข้อมูลที่จัดทำโดย",
|
||||
'inventory_comments' => "คำแนะนำ",
|
||||
'is_serialized' => "Giftcard has Serial Number",
|
||||
'low_inventory_giftcards' => "Low Inventory Giftcards",
|
||||
'manually_editing_of_quantity' => "แก้ไขจำนวนปริมาณเอง",
|
||||
'must_select_giftcard_for_barcode' => "กรุณาเลือกบัตรกำนัลอย่างน้อย 1 รายการ เพื่อสร้างบาร์โค๊ด",
|
||||
'new' => "เพิ่มบัตรกำนัล",
|
||||
'no_description_giftcards' => "No Description Giftcards",
|
||||
'no_giftcards_to_display' => "No Giftcards to display",
|
||||
'none' => "ไม่มี",
|
||||
'none_selected' => "กรุณาเลือกบัตรกำนัลที่ต้องการแก้ไข",
|
||||
'number' => "เลขบัตรกำนัลต้องเป็นตัวเลขเท่านั้น",
|
||||
'number_information' => "หมายเลขบัตรของขวัญ",
|
||||
'number_required' => "ต้องกรอกเลขบัตรกำนัล",
|
||||
'one_or_multiple' => "giftcard(s)",
|
||||
'person_id' => "เจ้าของบัตร",
|
||||
'quantity' => "ปริมาณ",
|
||||
'quantity_required' => "ช่องข้อมูลปริมาณ จำเป็นต้องกรอก. คลิกที่เครื่องหมาย ( X ) เพื่อยกเลิก",
|
||||
'remaining_balance' => "บัตรของขวัญ {0} มีมูลค่า {1}!",
|
||||
'reorder_level' => "ยอดขั้นต่ำ",
|
||||
'retrive_giftcard_info' => "Retrieve Giftcard Info",
|
||||
'sales_tax_1' => "ภาษีการขาย",
|
||||
'sales_tax_2' => "ภาษีขาย 2",
|
||||
'serialized_giftcards' => "Serialized Giftcards",
|
||||
'successful_adding' => "You have successfully added giftcard",
|
||||
'successful_bulk_edit' => "You have successfully updated the selected giftcards",
|
||||
'successful_deleted' => "คุณทำการลบสำเร็จแล้ว",
|
||||
'successful_updating' => "You have successfully updated giftcard",
|
||||
'supplier' => "ผู้ผลิต",
|
||||
'tax_1' => "ภาษี 1",
|
||||
'tax_2' => "ภาษี 2",
|
||||
'tax_percent' => "เปอร์เซ็นต์ภาษี",
|
||||
'tax_percents' => "อัตราภาษีแบบเปอร์เซ็นต์",
|
||||
'unit_price' => "ราคาปลีก",
|
||||
'upc_database' => "ฐานข้อมุลบาร์โค๊ด",
|
||||
'update' => "ปรับข้อมูลบัตรกำนัล",
|
||||
'use_inventory_menu' => "ใช้เมนูสินค้าคงคลัง",
|
||||
'value' => "มูลค่าบัตรกำนัลต้องเป็นตัวเลขเท่านั้น",
|
||||
'value_required' => "ต้องกรอกมูลค่าบัตรกำนัล",
|
||||
];
|
||||
|
||||
@@ -1,122 +1,122 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_minus" => "เพิ่ม/ลบ จำนวนสินค้าคงคลัง",
|
||||
"allow_alt_description" => "แสดงข้อมูลเพิ่มเติม",
|
||||
"amount_entry" => "จำนวนเงิน",
|
||||
"bulk_edit" => "แก้ไขความจุ",
|
||||
"buy_price_required" => "ราคาซื้อขายต้องกรอก",
|
||||
"cannot_be_deleted" => "ไม่สามารถลบสินค้าที่เลือก, สินค้าที่เลือกถูกขายไปแล้ว.",
|
||||
"cannot_find_item" => "ไม่พบข้อมูลของสินค้า",
|
||||
"categories" => "",
|
||||
"category" => "หมวดหมู่",
|
||||
"category_new" => "",
|
||||
"category_required" => "หมวดหมู่สินค้าต้องกรอก",
|
||||
"change_all_to_allow_alt_desc" => "อนุญาตให้รายละเอียดสำรองทั้งหมด",
|
||||
"change_all_to_not_allow_allow_desc" => "ไม่อนุญาตให้จัดเรียงลำดับ",
|
||||
"change_all_to_serialized" => "เปลี่ยนแปลงรหัสสินค้าทั้งหมด",
|
||||
"change_all_to_unserialized" => "ลบรหัสสินค้าทั้งหมด",
|
||||
"change_image" => "เปลี่ยนรูปภาพ",
|
||||
"confirm_bulk_edit" => "แน่ใจหรือไม่ที่จะแก้ใขสินค้าทั้งหมดที่คุณเลือก?",
|
||||
"confirm_bulk_edit_wipe_taxes" => "ข้อมูลภาษีทั้งหมดจะถูกแทนที่",
|
||||
"confirm_delete" => "โปรดยืนยันการลบสินค้าที่ถูกเลือก?",
|
||||
"confirm_restore" => "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนรายการที่เลือก?",
|
||||
"cost_price" => "ราคาขายส่ง",
|
||||
"cost_price_number" => "ราคาขายส่งต้องเป็นตัวเลข",
|
||||
"cost_price_required" => "ต้องกรอกราคาขายส่ง",
|
||||
"count" => "แก้ไขจำนวนสินค้าคงคลัง",
|
||||
"csv_import_failed" => "นำเข้าข้อมูล CSV ล้มเหลว",
|
||||
"csv_import_invalid_location" => "",
|
||||
"csv_import_nodata_wrongformat" => "Your uploaded file has no data or wrong format",
|
||||
"csv_import_partially_failed" => "มีรายการ {0} รายการที่นำเข้าล้มเหลว : {1} รายการที่ยังไม่ได้นำเข้า",
|
||||
"csv_import_success" => "Import of Items successful",
|
||||
"current_quantity" => "ปริมาณสินค้าคงคลัง",
|
||||
"default_pack_name" => "ชิ้นละ",
|
||||
"description" => "รายละเอียด",
|
||||
"details_count" => "รายละเอียดจำนวนสินค้าคงคลัง",
|
||||
"do_nothing" => "ไม่ต้องทำอะไร",
|
||||
"edit" => "",
|
||||
"edit_fields_you_want_to_update" => "แก้ไขสินค้าทุกชนิดที่คุณเลือก",
|
||||
"edit_multiple_items" => "แก้ใขสินค้าต่างๆ",
|
||||
"empty_upc_items" => "Empty UPC Items",
|
||||
"error_adding_updating" => "เพิ่ม/ปรับแต่ง สินค้าล้มเหลว",
|
||||
"error_updating_multiple" => "ปรับแต่งสินค้าล้มเหลว",
|
||||
"generate_barcodes" => "พิมพ์บาร์โค๊ด",
|
||||
"hsn_code" => "ระบบการตั้งชื่อที่กลมกลืนกัน",
|
||||
"image" => "รูป",
|
||||
"import_items_csv" => "รายการที่นำเข้าจาก CSV",
|
||||
"info_provided_by" => "จัดเตรียมข้อมูลโดย",
|
||||
"inventory" => "สินค้าคงเหลือ",
|
||||
"inventory_CSV_import_quantity" => "จำนวนที่นำเข้าจาก CSV",
|
||||
"inventory_comments" => "คำอธิบาย",
|
||||
"inventory_data_tracking" => "การติดตามข้อมูลสินค้าคงคลัง",
|
||||
"inventory_date" => "วันที่",
|
||||
"inventory_employee" => "พนักงาน",
|
||||
"inventory_in_out_quantity" => "ปริมาณเข้า / ออก",
|
||||
"inventory_remarks" => "หมายเหตุ",
|
||||
"is_deleted" => "ถูกลบแล้ว",
|
||||
"is_printed" => "",
|
||||
"is_serialized" => "สินค้ามีซีเรียลนัมเบอร์",
|
||||
"item" => "สินค้า",
|
||||
"item_id" => "",
|
||||
"item_number" => "โค๊ด",
|
||||
"item_number_duplicate" => "The item number is already present in the database",
|
||||
"kit" => "ชุด",
|
||||
"location" => "ที่ตั้ง",
|
||||
"low_inventory_items" => "สินค้าคงเหลือน้อย",
|
||||
"low_sell_item" => "รายการขายต่ำ",
|
||||
"manually_editing_of_quantity" => "แก้ไขจำนวน",
|
||||
"markup" => "",
|
||||
"name" => "ชื่อสินค้า",
|
||||
"name_required" => "ชื่อสินค้าต้องกรอก",
|
||||
"new" => "เพิ่มรายการสินค้า",
|
||||
"no_description_items" => "สินค้าที่ไม่มีคำอธิบายหรือวิธีการใช้",
|
||||
"no_items_to_display" => "ไม่มีสินค้าแสดง",
|
||||
"none" => "ว่างเปล่า",
|
||||
"none_selected" => "กรุณาเลือสินค้าที่ต้องการแก้ไข",
|
||||
"nonstock" => "ไม่นับสต็อก",
|
||||
"number_information" => "หมายเลขสินค้า",
|
||||
"number_required" => "จำเป็นต้องระบุบาร์โค้ด",
|
||||
"one_or_multiple" => "สินค้า(s)",
|
||||
"pack_name" => "ชื่อแพ็ค",
|
||||
"qty_per_pack" => "ปริมาณต่อแพ็ค",
|
||||
"quantity" => "จำนวน",
|
||||
"quantity_number" => "จำนวนต้องเป็นตัวเลข",
|
||||
"quantity_required" => "จำนวนต้องกรอก",
|
||||
"receiving_quantity" => "ยอดรับมา",
|
||||
"remove_image" => "นำภาพออก",
|
||||
"reorder_level" => "ระดับการสั่งใหม่",
|
||||
"reorder_level_number" => "ระดับการสั่งใหม่ต้องเป็นตัวเลข",
|
||||
"reorder_level_required" => "ระดับการสั่งไหม่ต้องกรอก",
|
||||
"retrive_item_info" => "ดึงข้อมูลรายการ",
|
||||
"sales_tax_1" => "ถาษีขาย",
|
||||
"sales_tax_2" => "ภาษีขาย 2",
|
||||
"search_attributes" => "ค้นหาตามคุณสมบัติ",
|
||||
"select_image" => "เลือกรูปภาพ",
|
||||
"serialized_items" => "รหัสสินค้า",
|
||||
"standard" => "มาตรฐาน",
|
||||
"stock" => "คลังสินค้า",
|
||||
"stock_location" => "ที่เก็บ",
|
||||
"stock_type" => "ประเภทคลัง",
|
||||
"successful_adding" => "เพิ่มสินค้าสำเร็จ",
|
||||
"successful_bulk_edit" => "ปรับแต่งสินค้าสำเร็จ",
|
||||
"successful_deleted" => "ลบสินค้าสำเร็จ",
|
||||
"successful_updating" => "ปรับแต่งสินค้าสำเร็จ",
|
||||
"supplier" => "ผู้ผลิต",
|
||||
"tax_1" => "ภาษี 1",
|
||||
"tax_2" => "ภาษี 2",
|
||||
"tax_3" => "",
|
||||
"tax_category" => "ประเภทภาษี",
|
||||
"tax_percent" => "ภาษี(%)",
|
||||
"tax_percent_number" => "เปอร์เซ็นต์ภาษีต้องเป็นค่าตัวเลข",
|
||||
"tax_percent_required" => "เปอร์เซ็นต์ต้องกรอก",
|
||||
"tax_percents" => "ภาษี(%)",
|
||||
"temp" => "ชั่วคราว",
|
||||
"type" => "ประเภทรายการ",
|
||||
"unit_price" => "ราคาขาย",
|
||||
"unit_price_number" => "ราคาต่อหน่วยต้องเป็นตัวเลข",
|
||||
"unit_price_required" => "ราคาต่อหน่วยต้องกรอก",
|
||||
"upc_database" => "UPC ฐานข้อมูล",
|
||||
"update" => "ปรับแต่งสินค้า",
|
||||
"use_inventory_menu" => "ใช้เมนูสินค้าคงเหลือ",
|
||||
'add_minus' => "เพิ่ม/ลบ จำนวนสินค้าคงคลัง",
|
||||
'allow_alt_description' => "แสดงข้อมูลเพิ่มเติม",
|
||||
'amount_entry' => "จำนวนเงิน",
|
||||
'bulk_edit' => "แก้ไขความจุ",
|
||||
'buy_price_required' => "ราคาซื้อขายต้องกรอก",
|
||||
'cannot_be_deleted' => "ไม่สามารถลบสินค้าที่เลือก, สินค้าที่เลือกถูกขายไปแล้ว.",
|
||||
'cannot_find_item' => "ไม่พบข้อมูลของสินค้า",
|
||||
'categories' => "",
|
||||
'category' => "หมวดหมู่",
|
||||
'category_new' => "",
|
||||
'category_required' => "หมวดหมู่สินค้าต้องกรอก",
|
||||
'change_all_to_allow_alt_desc' => "อนุญาตให้รายละเอียดสำรองทั้งหมด",
|
||||
'change_all_to_not_allow_allow_desc' => "ไม่อนุญาตให้จัดเรียงลำดับ",
|
||||
'change_all_to_serialized' => "เปลี่ยนแปลงรหัสสินค้าทั้งหมด",
|
||||
'change_all_to_unserialized' => "ลบรหัสสินค้าทั้งหมด",
|
||||
'change_image' => "เปลี่ยนรูปภาพ",
|
||||
'confirm_bulk_edit' => "แน่ใจหรือไม่ที่จะแก้ใขสินค้าทั้งหมดที่คุณเลือก?",
|
||||
'confirm_bulk_edit_wipe_taxes' => "ข้อมูลภาษีทั้งหมดจะถูกแทนที่",
|
||||
'confirm_delete' => "โปรดยืนยันการลบสินค้าที่ถูกเลือก?",
|
||||
'confirm_restore' => "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนรายการที่เลือก?",
|
||||
'cost_price' => "ราคาขายส่ง",
|
||||
'cost_price_number' => "ราคาขายส่งต้องเป็นตัวเลข",
|
||||
'cost_price_required' => "ต้องกรอกราคาขายส่ง",
|
||||
'count' => "แก้ไขจำนวนสินค้าคงคลัง",
|
||||
'csv_import_failed' => "นำเข้าข้อมูล CSV ล้มเหลว",
|
||||
'csv_import_invalid_location' => "คลังสินค้าไม่ถูกต้องหรือไม่พบ: {0} อนุญาตเฉพาะคลังสินค้าที่มีเท่านั้น",
|
||||
'csv_import_nodata_wrongformat' => "Your uploaded file has no data or wrong format",
|
||||
'csv_import_partially_failed' => "มีรายการ {0} รายการที่นำเข้าล้มเหลว : {1} รายการที่ยังไม่ได้นำเข้า",
|
||||
'csv_import_success' => "Import of Items successful",
|
||||
'current_quantity' => "ปริมาณสินค้าคงคลัง",
|
||||
'default_pack_name' => "ชิ้นละ",
|
||||
'description' => "รายละเอียด",
|
||||
'details_count' => "รายละเอียดจำนวนสินค้าคงคลัง",
|
||||
'do_nothing' => "ไม่ต้องทำอะไร",
|
||||
'edit' => "",
|
||||
'edit_fields_you_want_to_update' => "แก้ไขสินค้าทุกชนิดที่คุณเลือก",
|
||||
'edit_multiple_items' => "แก้ใขสินค้าต่างๆ",
|
||||
'empty_upc_items' => "Empty UPC Items",
|
||||
'error_adding_updating' => "เพิ่ม/ปรับแต่ง สินค้าล้มเหลว",
|
||||
'error_updating_multiple' => "ปรับแต่งสินค้าล้มเหลว",
|
||||
'generate_barcodes' => "พิมพ์บาร์โค๊ด",
|
||||
'hsn_code' => "ระบบการตั้งชื่อที่กลมกลืนกัน",
|
||||
'image' => "รูป",
|
||||
'import_items_csv' => "รายการที่นำเข้าจาก CSV",
|
||||
'info_provided_by' => "จัดเตรียมข้อมูลโดย",
|
||||
'inventory' => "สินค้าคงเหลือ",
|
||||
'inventory_CSV_import_quantity' => "จำนวนที่นำเข้าจาก CSV",
|
||||
'inventory_comments' => "คำอธิบาย",
|
||||
'inventory_data_tracking' => "การติดตามข้อมูลสินค้าคงคลัง",
|
||||
'inventory_date' => "วันที่",
|
||||
'inventory_employee' => "พนักงาน",
|
||||
'inventory_in_out_quantity' => "ปริมาณเข้า / ออก",
|
||||
'inventory_remarks' => "หมายเหตุ",
|
||||
'is_deleted' => "ถูกลบแล้ว",
|
||||
'is_printed' => "",
|
||||
'is_serialized' => "สินค้ามีซีเรียลนัมเบอร์",
|
||||
'item' => "สินค้า",
|
||||
'item_id' => "",
|
||||
'item_number' => "โค๊ด",
|
||||
'item_number_duplicate' => "The item number is already present in the database",
|
||||
'kit' => "ชุด",
|
||||
'location' => "ที่ตั้ง",
|
||||
'low_inventory_items' => "สินค้าคงเหลือน้อย",
|
||||
'low_sell_item' => "รายการขายต่ำ",
|
||||
'manually_editing_of_quantity' => "แก้ไขจำนวน",
|
||||
'markup' => "",
|
||||
'name' => "ชื่อสินค้า",
|
||||
'name_required' => "ชื่อสินค้าต้องกรอก",
|
||||
'new' => "เพิ่มรายการสินค้า",
|
||||
'no_description_items' => "สินค้าที่ไม่มีคำอธิบายหรือวิธีการใช้",
|
||||
'no_items_to_display' => "ไม่มีสินค้าแสดง",
|
||||
'none' => "ว่างเปล่า",
|
||||
'none_selected' => "กรุณาเลือสินค้าที่ต้องการแก้ไข",
|
||||
'nonstock' => "ไม่นับสต็อก",
|
||||
'number_information' => "หมายเลขสินค้า",
|
||||
'number_required' => "จำเป็นต้องระบุบาร์โค้ด",
|
||||
'one_or_multiple' => "สินค้า(s)",
|
||||
'pack_name' => "ชื่อแพ็ค",
|
||||
'qty_per_pack' => "ปริมาณต่อแพ็ค",
|
||||
'quantity' => "จำนวน",
|
||||
'quantity_number' => "จำนวนต้องเป็นตัวเลข",
|
||||
'quantity_required' => "จำนวนต้องกรอก",
|
||||
'receiving_quantity' => "ยอดรับมา",
|
||||
'remove_image' => "นำภาพออก",
|
||||
'reorder_level' => "ระดับการสั่งใหม่",
|
||||
'reorder_level_number' => "ระดับการสั่งใหม่ต้องเป็นตัวเลข",
|
||||
'reorder_level_required' => "ระดับการสั่งไหม่ต้องกรอก",
|
||||
'retrive_item_info' => "ดึงข้อมูลรายการ",
|
||||
'sales_tax_1' => "ถาษีขาย",
|
||||
'sales_tax_2' => "ภาษีขาย 2",
|
||||
'search_attributes' => "ค้นหาตามคุณสมบัติ",
|
||||
'select_image' => "เลือกรูปภาพ",
|
||||
'serialized_items' => "รหัสสินค้า",
|
||||
'standard' => "มาตรฐาน",
|
||||
'stock' => "คลังสินค้า",
|
||||
'stock_location' => "ที่เก็บ",
|
||||
'stock_type' => "ประเภทคลัง",
|
||||
'successful_adding' => "เพิ่มสินค้าสำเร็จ",
|
||||
'successful_bulk_edit' => "ปรับแต่งสินค้าสำเร็จ",
|
||||
'successful_deleted' => "ลบสินค้าสำเร็จ",
|
||||
'successful_updating' => "ปรับแต่งสินค้าสำเร็จ",
|
||||
'supplier' => "ผู้ผลิต",
|
||||
'tax_1' => "ภาษี 1",
|
||||
'tax_2' => "ภาษี 2",
|
||||
'tax_3' => "",
|
||||
'tax_category' => "ประเภทภาษี",
|
||||
'tax_percent' => "ภาษี(%)",
|
||||
'tax_percent_number' => "เปอร์เซ็นต์ภาษีต้องเป็นค่าตัวเลข",
|
||||
'tax_percent_required' => "เปอร์เซ็นต์ต้องกรอก",
|
||||
'tax_percents' => "ภาษี(%)",
|
||||
'temp' => "ชั่วคราว",
|
||||
'type' => "ประเภทรายการ",
|
||||
'unit_price' => "ราคาขาย",
|
||||
'unit_price_number' => "ราคาต่อหน่วยต้องเป็นตัวเลข",
|
||||
'unit_price_required' => "ราคาต่อหน่วยต้องกรอก",
|
||||
'upc_database' => "UPC ฐานข้อมูล",
|
||||
'update' => "ปรับแต่งสินค้า",
|
||||
'use_inventory_menu' => "ใช้เมนูสินค้าคงเหลือ",
|
||||
];
|
||||
|
||||
@@ -1,149 +1,150 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"all" => "ทั้งหมด",
|
||||
"authority" => "ผู้ได้รับอนุญาติ",
|
||||
"canceled" => "ถูกยกเลิก",
|
||||
"categories" => "หมวดหมู่",
|
||||
"categories_summary_report" => "รายงานสรุปหมวดหมู่",
|
||||
"category" => "หมวดหมู่",
|
||||
"code_canceled" => "รหัสยกเลิก",
|
||||
"code_invoice" => "รหัสใบแจ้งหนี้",
|
||||
"code_pos" => "รหัส POS",
|
||||
"code_quote" => "อ้างอิง",
|
||||
"code_return" => "รหัสส่งคืน",
|
||||
"code_type" => "ประเภท",
|
||||
"code_work_order" => "รหัสสั่งงาน",
|
||||
"comments" => "หมายเหตุ",
|
||||
"commission" => "",
|
||||
"complete" => "การขายและรับคืนที่สมบูรณ์",
|
||||
"completed_sales" => "การขายที่สมบูรณ์",
|
||||
"confirm_delete" => "คุณแน่ใจหรือว่าต้องการลบรายการที่เลือก ?",
|
||||
"confirm_restore" => "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนรายการที่เลือก?",
|
||||
"cost" => "ราคาขายส่ง",
|
||||
"cost_price" => "ราคาขายส่ง",
|
||||
"count" => "นับ",
|
||||
"customer" => "ลูกค้า",
|
||||
"customers" => "ลูกค้า",
|
||||
"customers_summary_report" => "รายงานสรุปลูกค้า",
|
||||
"date" => "วันที่",
|
||||
"date_range" => "ระหว่างวันที่",
|
||||
"description" => "คำอธิบาย",
|
||||
"detailed_receivings_report" => "รายงานรายละเอียกการรับของ",
|
||||
"detailed_receivings_report_input" => "",
|
||||
"detailed_reports" => "รายละเอียดรายงาน",
|
||||
"detailed_requisition_report" => "รายงานรายละเอียดการเบิกของ",
|
||||
"detailed_sales_report" => "รายงายงานขาย",
|
||||
"discount" => "ส่วนลด",
|
||||
"discount_fixed" => "ส่วนลดคงที่",
|
||||
"discount_percent" => "เปอร์เซ็นต์ส่วนลด",
|
||||
"discount_type" => "ประเภทส่วนลด",
|
||||
"discounts" => "ส่วนลด",
|
||||
"discounts_summary_report" => "รายงานสรุปส่วนลด",
|
||||
"earned" => "คะแนนที่ได้รับ",
|
||||
"employee" => "พนักงาน",
|
||||
"employees" => "พนักงาน",
|
||||
"employees_summary_report" => "รายงานสรุปพนักงาน",
|
||||
"expenses" => "รายจ่าย",
|
||||
"expenses_amount" => "ยอดรวม",
|
||||
"expenses_categories" => "สรุปค่าใช้จ่าย",
|
||||
"expenses_categories_summary_report" => "รายงานสรุปหมวดหมู่ค่าใช้จ่าย",
|
||||
"expenses_category" => "หมวดหมู่",
|
||||
"expenses_payment_amount" => "",
|
||||
"expenses_tax_amount" => "ภาษี",
|
||||
"expenses_total_amount" => "ยอดรวมทั้งหมด",
|
||||
"expenses_total_tax_amount" => "ภาษีทั้งหมด",
|
||||
"graphical_reports" => "รายงายแบบกราฟ",
|
||||
"inventory" => "สินค้าคงคลัง",
|
||||
"inventory_low" => "สินค้าเหลือน้อย",
|
||||
"inventory_low_report" => "รายงานสินค้าที่เหลือน้อย",
|
||||
"inventory_reports" => "รายงานสินค้าคงเหลือ",
|
||||
"inventory_summary" => "รายงานสินค้าคงเหลือ",
|
||||
"inventory_summary_report" => "รายงานสรุปสินค้าคงเหลือ",
|
||||
"item" => "สินค้า",
|
||||
"item_count" => "ตัวกรองรายการตามการนับ",
|
||||
"item_name" => "ชื่อสินค้า",
|
||||
"item_number" => "เลขสินค้า",
|
||||
"items" => "สินค้า",
|
||||
"items_purchased" => "สินค้าที่ถูกซื้อ",
|
||||
"items_received" => "สินค้าเข้า",
|
||||
"items_summary_report" => "รายงานสรุปสินค้า",
|
||||
"jurisdiction" => "การควบคุม",
|
||||
"low_inventory" => "",
|
||||
"low_inventory_report" => "",
|
||||
"low_sell_quantity" => "จำนวนขายน้อย",
|
||||
"more_than_zero" => "มากกว่าศูนย์",
|
||||
"name" => "ชื่อ",
|
||||
"no_reports_to_display" => "ไม่มีสินค้าแสดง",
|
||||
"payment_type" => "ชนิดของการจ่าย",
|
||||
"payments" => "รายจ่าย",
|
||||
"payments_summary_report" => "รายงานสรุปการจ่าย",
|
||||
"profit" => "กำไร",
|
||||
"quantity" => "จำนวน",
|
||||
"quantity_purchased" => "จำนวนการช์้อ",
|
||||
"quotes" => "อ้างอิง",
|
||||
"received_by" => "รับโดย",
|
||||
"receiving_id" => "เลขที่การรับ",
|
||||
"receiving_type" => "รูปแบบการรับสินค้า",
|
||||
"receivings" => "รับสินค้า",
|
||||
"reorder_level" => "ระดับการสั่งใหม่",
|
||||
"report" => "รายงาน",
|
||||
"report_input" => "ข้อมูลรายงาน",
|
||||
"reports" => "รายงาน",
|
||||
"requisition" => "เบิกสินค้า",
|
||||
"requisition_by" => "ผู้เบิกสินค้า",
|
||||
"requisition_id" => "IDเบิกสินค้า",
|
||||
"requisition_item" => "ชื่อสินค้า",
|
||||
"requisition_item_quantity" => "จำนวนเบิก",
|
||||
"requisition_related_item" => "สินค้าย่อย",
|
||||
"requisition_related_item_total_quantity" => "จำนวนรวมสินค้าย่อย",
|
||||
"requisition_related_item_unit_quantity" => "จำนวนสินค้าย่ิอย",
|
||||
"requisitions" => "ใบเบิกของ",
|
||||
"returns" => "คืน",
|
||||
"revenue" => "รายรับ",
|
||||
"sale_id" => "เลขที่รายการ",
|
||||
"sale_type" => "ชนิดของการขาย",
|
||||
"sales" => "ขาย",
|
||||
"sales_amount" => "จำนวนขาย",
|
||||
"sales_summary_report" => "รายงานสรุปการขาย",
|
||||
"sales_taxes" => "ภาษีขาย",
|
||||
"sales_taxes_summary_report" => "รายงานสรุปภาษีขาย",
|
||||
"serial_number" => "หมายเลขซีเรียล",
|
||||
"service_charge" => "",
|
||||
"sold_by" => "ขายโดย",
|
||||
"sold_items" => "",
|
||||
"sold_to" => "ขายไปที่",
|
||||
"stock_location" => "ที่ตั้งคลังสินค้า",
|
||||
"sub_total_value" => "ยอดรวมหักภาษี",
|
||||
"subtotal" => "ยอดรวมรอง",
|
||||
"summary_reports" => "สรุปรายงาน",
|
||||
"supplied_by" => "ผบิตโดย",
|
||||
"supplier" => "ผู้ผลิต",
|
||||
"suppliers" => "ผู้ผลิต",
|
||||
"suppliers_summary_report" => "รายงานสรุปผู้ผลิต",
|
||||
"tax" => "ภาษี",
|
||||
"tax_category" => "หมวดหมู่ภาษี",
|
||||
"tax_name" => "ชื่อผู้เสียภาษี",
|
||||
"tax_percent" => "เปอร์เซ็นภาษี",
|
||||
"tax_rate" => "อัตราภาษี",
|
||||
"taxes" => "ภาษี",
|
||||
"taxes_summary_report" => "รายงานสรุปภาษี",
|
||||
"total" => "ยอดรวม",
|
||||
"total_inventory_value" => "มูลค่าสินค้าคงคลังรวม",
|
||||
"total_low_sell_quantity" => "จำนวนการขายต่ำ",
|
||||
"total_quantity" => "ปริมาณรวม",
|
||||
"total_retail" => "มูลค่ารวมใบแจ้งหนี้ค้าปลีก",
|
||||
"trans_amount" => "จำนวนรายการ",
|
||||
"trans_due" => "วันนัดหมาย",
|
||||
"trans_group" => "กลุ่มธุรกรรม",
|
||||
"trans_nopay_sales" => "การขายโดยไม่มีการชำระเงิน",
|
||||
"trans_payments" => "การชำระเงิน",
|
||||
"trans_refunded" => "คืนเงิน",
|
||||
"trans_sales" => "การขาย",
|
||||
"trans_type" => "ประเภทธุรกรรม",
|
||||
"type" => "ชนิด",
|
||||
"unit_price" => "ราคาขาย",
|
||||
"used" => "คะแนนที่ใช้",
|
||||
"work_orders" => "การสั่งงาน",
|
||||
"zero_and_less" => "เท่ากับศูนย์และน้อยกว่า",
|
||||
'all' => "ทั้งหมด",
|
||||
'authority' => "ผู้ได้รับอนุญาติ",
|
||||
'canceled' => "ถูกยกเลิก",
|
||||
'categories' => "หมวดหมู่",
|
||||
'categories_summary_report' => "รายงานสรุปหมวดหมู่",
|
||||
'category' => "หมวดหมู่",
|
||||
'code_canceled' => "รหัสยกเลิก",
|
||||
'code_invoice' => "รหัสใบแจ้งหนี้",
|
||||
'code_pos' => "รหัส POS",
|
||||
'code_quote' => "อ้างอิง",
|
||||
'code_return' => "รหัสส่งคืน",
|
||||
'code_type' => "ประเภท",
|
||||
'code_work_order' => "รหัสสั่งงาน",
|
||||
'comments' => "หมายเหตุ",
|
||||
'commission' => "",
|
||||
'complete' => "การขายและรับคืนที่สมบูรณ์",
|
||||
'completed_sales' => "การขายที่สมบูรณ์",
|
||||
'confirm_delete' => "คุณแน่ใจหรือว่าต้องการลบรายการที่เลือก ?",
|
||||
'confirm_restore' => "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนรายการที่เลือก?",
|
||||
'cost' => "ราคาขายส่ง",
|
||||
'cost_price' => "ราคาขายส่ง",
|
||||
'count' => "นับ",
|
||||
'customer' => "ลูกค้า",
|
||||
'customers' => "ลูกค้า",
|
||||
'customers_summary_report' => "รายงานสรุปลูกค้า",
|
||||
'date' => "วันที่",
|
||||
'date_range' => "ระหว่างวันที่",
|
||||
'description' => "คำอธิบาย",
|
||||
'detailed_receivings_report' => "รายงานรายละเอียกการรับของ",
|
||||
'detailed_receivings_report_input' => "",
|
||||
'detailed_reports' => "รายละเอียดรายงาน",
|
||||
'detailed_requisition_report' => "รายงานรายละเอียดการเบิกของ",
|
||||
'detailed_sales_report' => "รายงายงานขาย",
|
||||
'discount' => "ส่วนลด",
|
||||
'discount_fixed' => "ส่วนลดคงที่",
|
||||
'discount_percent' => "เปอร์เซ็นต์ส่วนลด",
|
||||
'discount_type' => "ประเภทส่วนลด",
|
||||
'discounts' => "ส่วนลด",
|
||||
'discounts_summary_report' => "รายงานสรุปส่วนลด",
|
||||
'earned' => "คะแนนที่ได้รับ",
|
||||
'employee' => "พนักงาน",
|
||||
'employees' => "พนักงาน",
|
||||
'employees_summary_report' => "รายงานสรุปพนักงาน",
|
||||
'expenses' => "ค่าใช้จ่าย",
|
||||
'expenses_amount' => "ยอดรวม",
|
||||
'expenses_categories' => "สรุปค่าใช้จ่าย",
|
||||
'expenses_categories_summary_report' => "รายงานสรุปหมวดหมู่ค่าใช้จ่าย",
|
||||
'expenses_category' => "หมวดหมู่",
|
||||
'expenses_payment_amount' => "",
|
||||
'expenses_tax_amount' => "ภาษี",
|
||||
'expenses_total_amount' => "ยอดรวมทั้งหมด",
|
||||
'expenses_total_tax_amount' => "ภาษีทั้งหมด",
|
||||
'graphical_reports' => "รายงายแบบกราฟ",
|
||||
'inventory' => "สินค้าคงคลัง",
|
||||
'inventory_low' => "สินค้าเหลือน้อย",
|
||||
'inventory_low_report' => "รายงานสินค้าที่เหลือน้อย",
|
||||
'inventory_reports' => "รายงานสินค้าคงเหลือ",
|
||||
'inventory_summary' => "รายงานสินค้าคงเหลือ",
|
||||
'inventory_summary_report' => "รายงานสรุปสินค้าคงเหลือ",
|
||||
'item' => "สินค้า",
|
||||
'item_count' => "ตัวกรองรายการตามการนับ",
|
||||
'item_name' => "ชื่อสินค้า",
|
||||
'item_number' => "เลขสินค้า",
|
||||
'items' => "สินค้า",
|
||||
'items_purchased' => "สินค้าที่ถูกซื้อ",
|
||||
'items_received' => "สินค้าเข้า",
|
||||
'items_summary_report' => "รายงานสรุปสินค้า",
|
||||
'jurisdiction' => "การควบคุม",
|
||||
'low_inventory' => "",
|
||||
'low_inventory_report' => "",
|
||||
'low_sell_quantity' => "จำนวนขายน้อย",
|
||||
'more_than_zero' => "มากกว่าศูนย์",
|
||||
'name' => "ชื่อ",
|
||||
'no_reports_to_display' => "ไม่มีสินค้าแสดง",
|
||||
'payment_type' => "ชนิดของการจ่าย",
|
||||
'payments' => "รายจ่าย",
|
||||
'payments_summary_report' => "รายงานสรุปการจ่าย",
|
||||
'profit' => "กำไร",
|
||||
'quantity' => "จำนวน",
|
||||
'quantity_purchased' => "จำนวนการช์้อ",
|
||||
'quotes' => "อ้างอิง",
|
||||
'received_by' => "รับโดย",
|
||||
'receiving_id' => "เลขที่การรับ",
|
||||
'receiving_type' => "รูปแบบการรับสินค้า",
|
||||
'receivings' => "รับสินค้า",
|
||||
'reorder_level' => "ระดับการสั่งใหม่",
|
||||
'report' => "รายงาน",
|
||||
'report_input' => "ข้อมูลรายงาน",
|
||||
'reports' => "รายงาน",
|
||||
'requisition' => "เบิกสินค้า",
|
||||
'requisition_by' => "ผู้เบิกสินค้า",
|
||||
'requisition_id' => "IDเบิกสินค้า",
|
||||
'requisition_item' => "ชื่อสินค้า",
|
||||
'requisition_item_quantity' => "จำนวนเบิก",
|
||||
'requisition_related_item' => "สินค้าย่อย",
|
||||
'requisition_related_item_total_quantity' => "จำนวนรวมสินค้าย่อย",
|
||||
'requisition_related_item_unit_quantity' => "จำนวนสินค้าย่ิอย",
|
||||
'requisitions' => "ใบเบิกของ",
|
||||
'returns' => "คืน",
|
||||
'revenue' => "รายรับ",
|
||||
'sale_id' => "เลขที่รายการ",
|
||||
'sale_type' => "ชนิดของการขาย",
|
||||
'sales' => "ขาย",
|
||||
'sales_amount' => "จำนวนขาย",
|
||||
'sales_summary_report' => "รายงานสรุปการขาย",
|
||||
'sales_taxes' => "ภาษีขาย",
|
||||
'sales_taxes_summary_report' => "รายงานสรุปภาษีขาย",
|
||||
'serial_number' => "หมายเลขซีเรียล",
|
||||
'service_charge' => "",
|
||||
'sold_by' => "ขายโดย",
|
||||
'sold_items' => "",
|
||||
'sold_to' => "ขายไปที่",
|
||||
'stock_location' => "ที่ตั้งคลังสินค้า",
|
||||
'sub_total_value' => "ยอดรวมหักภาษี",
|
||||
'subtotal' => "ยอดรวมรอง",
|
||||
'summary_reports' => "สรุปรายงาน",
|
||||
'supplied_by' => "ผบิตโดย",
|
||||
'supplier' => "ผู้ผลิต",
|
||||
'suppliers' => "ผู้ผลิต",
|
||||
'suppliers_summary_report' => "รายงานสรุปผู้ผลิต",
|
||||
'tax' => "ภาษี",
|
||||
'tax_category' => "หมวดหมู่ภาษี",
|
||||
'tax_name' => "ชื่อผู้เสียภาษี",
|
||||
'tax_percent' => "เปอร์เซ็นภาษี",
|
||||
'tax_rate' => "อัตราภาษี",
|
||||
'taxes' => "ภาษี",
|
||||
'taxes_summary_report' => "รายงานสรุปภาษี",
|
||||
'total' => "ยอดรวม",
|
||||
'total_inventory_value' => "มูลค่าสินค้าคงคลังรวม",
|
||||
'total_low_sell_quantity' => "จำนวนการขายต่ำ",
|
||||
'total_quantity' => "ปริมาณรวม",
|
||||
'total_retail' => "มูลค่ารวมใบแจ้งหนี้ค้าปลีก",
|
||||
'trans_amount' => "จำนวนรายการ",
|
||||
'trans_due' => "วันนัดหมาย",
|
||||
'trans_group' => "กลุ่มธุรกรรม",
|
||||
'trans_nopay_sales' => "การขายโดยไม่มีการชำระเงิน",
|
||||
'trans_payments' => "การชำระเงิน",
|
||||
'trans_refunded' => "คืนเงิน",
|
||||
'trans_sales' => "การขาย",
|
||||
'trans_type' => "ประเภทธุรกรรม",
|
||||
'type' => "ชนิด",
|
||||
'unit_price' => "ราคาขาย",
|
||||
'used' => "คะแนนที่ใช้",
|
||||
'work_orders' => "การสั่งงาน",
|
||||
'zero_and_less' => "เท่ากับศูนย์และน้อยกว่า",
|
||||
'toggle_cost_and_profit' => "เปลี่ยนระหว่างต้นทุนและกำไร",
|
||||
];
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Are you sure you want to restore the selected attribute(s)?",
|
||||
"confirm_restore" => "Are you sure you want to delete the selected attribute(s)?",
|
||||
"definition_cannot_be_deleted" => "Could not delete selected attribute(s)",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Seçili niteliği ya da nitelikleri silmek istediğinize emin misiniz?",
|
||||
"confirm_restore" => "Seçili nitelik ya da nitelikleri kurtarmak istediğinize emin misiniz?",
|
||||
"definition_cannot_be_deleted" => "Seçili nitelik ya da nitelikler silinemedi",
|
||||
"definition_invalid_group" => "Seçilen grup mevcut değil veya geçersiz.",
|
||||
"definition_error_adding_updating" => "Nitelik {0} eklenemedi ya da güncellenemedi. Lütfen hata kaydını gözden geçirin.",
|
||||
"definition_flags" => "Nitelik Görünebilirliği",
|
||||
"definition_group" => "Küme",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Ви впевнені, що хочете видалити вибрані атрибут(и)?",
|
||||
"confirm_restore" => "Ви впевнені, що хочете відновити вибрані атрибут(и)?",
|
||||
"definition_cannot_be_deleted" => "Не вдалося видалити вибрані атрибут(и)",
|
||||
"definition_invalid_group" => "Вибрана група не існує або недійсна.",
|
||||
"definition_error_adding_updating" => "Атрибут {0} не може бути доданий або оновлений. Будь ласка, перевірте журнал помилок.",
|
||||
"definition_flags" => "Видимість атрибуту",
|
||||
"definition_group" => "Група",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "کیا آپ منتخب شدہ کو حذف کرنا چاہتے ہیں ؟",
|
||||
"confirm_restore" => "کیا آپ منتخب شدہ کو بحال کرنا چاہتے ہیں ؟",
|
||||
"definition_cannot_be_deleted" => "منتخب شدہ کو حذف نہیں کیا جا سکتا",
|
||||
"definition_invalid_group" => "",
|
||||
"definition_error_adding_updating" => "Attribute {0} could not be added or updated. Please check the error log.",
|
||||
"definition_flags" => "Attribute Visibility",
|
||||
"definition_group" => "Group",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "Bạn có chắc chắn muốn xóa (các) thuộc tính đã chọn không?",
|
||||
"confirm_restore" => "Bạn có chắc chắn muốn khôi phục (các) thuộc tính đã chọn không?",
|
||||
"definition_cannot_be_deleted" => "Không thể xóa (các) thuộc tính được chọn",
|
||||
"definition_invalid_group" => "Nhóm đã chọn không tồn tại hoặc không hợp lệ.",
|
||||
"definition_error_adding_updating" => "Thuộc tính {0} không thể thêm hoặc cập nhật. Vui lòng kiểm tra nhật ký lỗi.",
|
||||
"definition_flags" => "Hiển thị thuộc tính",
|
||||
"definition_group" => "Nhóm",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "确定要删除所选属性吗",
|
||||
"confirm_restore" => "您确定要还原所选属性吗?",
|
||||
"definition_cannot_be_deleted" => "不能删除该特征属性",
|
||||
"definition_invalid_group" => "所选组不存在或无效。",
|
||||
"definition_error_adding_updating" => "无法添加或更新属性{0}。 请检查错误日志。",
|
||||
"definition_flags" => "属性可见性",
|
||||
"definition_group" => "组",
|
||||
|
||||
@@ -5,6 +5,7 @@ return [
|
||||
"confirm_delete" => "您確定要刪除此屬性?",
|
||||
"confirm_restore" => "您確定要還原所選屬性嗎?",
|
||||
"definition_cannot_be_deleted" => "無法刪除所選屬性",
|
||||
"definition_invalid_group" => "所選擇的群組不存在或無效。",
|
||||
"definition_error_adding_updating" => "無法添加或更新屬性 {0}。 請檢查錯誤日誌。",
|
||||
"definition_flags" => "屬性可見性",
|
||||
"definition_group" => "群組",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace app\Libraries;
|
||||
namespace App\Libraries;
|
||||
|
||||
use App\Models\Tokens\Token;
|
||||
use Config\OSPOS;
|
||||
@@ -14,40 +14,137 @@ use DateTime;
|
||||
*/
|
||||
class Token_lib
|
||||
{
|
||||
private array $strftimeToIntlPatternMap = [
|
||||
'%a' => 'EEE',
|
||||
'%A' => 'EEEE',
|
||||
'%b' => 'MMM',
|
||||
'%B' => 'MMMM',
|
||||
'%d' => 'dd',
|
||||
'%D' => 'MM/dd/yy',
|
||||
'%e' => 'd',
|
||||
'%F' => 'yyyy-MM-dd',
|
||||
'%h' => 'MMM',
|
||||
'%j' => 'D',
|
||||
'%m' => 'MM',
|
||||
'%U' => 'w',
|
||||
'%V' => 'ww',
|
||||
'%W' => 'ww',
|
||||
'%y' => 'yy',
|
||||
'%Y' => 'yyyy',
|
||||
'%H' => 'HH',
|
||||
'%I' => 'hh',
|
||||
'%l' => 'h',
|
||||
'%M' => 'mm',
|
||||
'%p' => 'a',
|
||||
'%P' => 'a',
|
||||
'%r' => 'hh:mm:ss a',
|
||||
'%R' => 'HH:mm',
|
||||
'%S' => 'ss',
|
||||
'%T' => 'HH:mm:ss',
|
||||
'%X' => 'HH:mm:ss',
|
||||
'%z' => 'ZZZZZ',
|
||||
'%Z' => 'z',
|
||||
'%g' => 'yy',
|
||||
'%G' => 'yyyy',
|
||||
'%u' => 'e',
|
||||
'%w' => 'c',
|
||||
];
|
||||
|
||||
private array $validStrftimeFormats = [
|
||||
'a', 'A', 'b', 'B', 'c', 'd', 'D', 'e', 'F', 'g', 'G',
|
||||
'h', 'H', 'I', 'j', 'm', 'M', 'n', 'p', 'P', 'r', 'R',
|
||||
'S', 't', 'T', 'u', 'U', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', 'z', 'Z'
|
||||
];
|
||||
|
||||
/**
|
||||
* Expands all the tokens found in a given text string and returns the results.
|
||||
*/
|
||||
public function render(string $tokened_text, array $tokens = [], $save = true): string
|
||||
{
|
||||
// Apply the transformation for the "%" tokens if any are used
|
||||
if (strpos($tokened_text, '%') !== false) {
|
||||
$tokened_text = strftime($tokened_text); // TODO: these need to be converted to IntlDateFormatter::format()
|
||||
if (str_contains($tokened_text, '%')) {
|
||||
$tokened_text = $this->applyDateFormats($tokened_text);
|
||||
}
|
||||
|
||||
// Call scan to build an array of all of the tokens used in the text to be transformed
|
||||
$token_tree = $this->scan($tokened_text);
|
||||
|
||||
if (empty($token_tree)) {
|
||||
if (strpos($tokened_text, '%') !== false) {
|
||||
return strftime($tokened_text);
|
||||
} else {
|
||||
return $tokened_text;
|
||||
}
|
||||
return $tokened_text;
|
||||
}
|
||||
|
||||
$token_values = [];
|
||||
$tokens_to_replace = [];
|
||||
$this->generate($token_tree, $tokens_to_replace, $token_values, $tokens, $save);
|
||||
$this->generate($token_tree, $tokens, $tokens_to_replace, $token_values, $save);
|
||||
|
||||
return str_replace($tokens_to_replace, $token_values, $tokened_text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses out the all the tokens enclosed in braces {} and subparses on the colon : character where supplied
|
||||
*/
|
||||
private function applyDateFormats(string $text): string
|
||||
{
|
||||
$formatter = new IntlDateFormatter(
|
||||
null,
|
||||
IntlDateFormatter::FULL,
|
||||
IntlDateFormatter::FULL,
|
||||
null,
|
||||
null,
|
||||
''
|
||||
);
|
||||
|
||||
$dateTime = new DateTime();
|
||||
|
||||
return preg_replace_callback(
|
||||
'/%([a-zA-Z%])/',
|
||||
function ($match) use ($formatter, $dateTime) {
|
||||
$formatChar = $match[1];
|
||||
|
||||
if ($formatChar === '%') {
|
||||
return '%';
|
||||
}
|
||||
|
||||
if ($formatChar === 'n') {
|
||||
return "\n";
|
||||
}
|
||||
|
||||
if ($formatChar === 't') {
|
||||
return "\t";
|
||||
}
|
||||
|
||||
if ($formatChar === 'C') {
|
||||
return str_pad((string) intdiv((int) $dateTime->format('Y'), 100), 2, '0', STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
if ($formatChar === 'c') {
|
||||
$formatter->setPattern('yyyy-MM-dd HH:mm:ss');
|
||||
$result = $formatter->format($dateTime);
|
||||
return $result !== false ? $result : $match[0];
|
||||
}
|
||||
|
||||
if ($formatChar === 'x') {
|
||||
$formatter->setPattern('yyyy-MM-dd');
|
||||
$result = $formatter->format($dateTime);
|
||||
return $result !== false ? $result : $match[0];
|
||||
}
|
||||
|
||||
if (!in_array($formatChar, $this->validStrftimeFormats, true)) {
|
||||
return $match[0];
|
||||
}
|
||||
|
||||
$intlPattern = $this->strftimeToIntlPatternMap[$match[0]] ?? null;
|
||||
|
||||
if ($intlPattern === null) {
|
||||
return $match[0];
|
||||
}
|
||||
|
||||
$formatter->setPattern($intlPattern);
|
||||
$result = $formatter->format($dateTime);
|
||||
|
||||
return $result !== false ? $result : $match[0];
|
||||
},
|
||||
$text
|
||||
);
|
||||
}
|
||||
|
||||
public function scan(string $text): array
|
||||
{
|
||||
// Matches tokens with the following pattern: [$token:$length]
|
||||
preg_match_all('/
|
||||
\{ # [ - pattern start
|
||||
([^\s\{\}:]+) # match $token not containing whitespace : { or }
|
||||
@@ -69,12 +166,6 @@ class Token_lib
|
||||
return $token_tree;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $quantity
|
||||
* @param string|null $price
|
||||
* @param string|null $item_id_or_number_or_item_kit_or_receipt
|
||||
* @return void
|
||||
*/
|
||||
public function parse_barcode(?string &$quantity, ?string &$price, ?string &$item_id_or_number_or_item_kit_or_receipt): void
|
||||
{
|
||||
$config = config(OSPOS::class)->settings;
|
||||
@@ -90,17 +181,11 @@ class Token_lib
|
||||
$price = (isset($parsed_results['P'])) ? (double) $parsed_results['P'] : null;
|
||||
}
|
||||
} else {
|
||||
$quantity = 1; // TODO: Quantity is handled using bcmath functions so that it is precision safe. This should be '1'
|
||||
$quantity = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $string
|
||||
* @param string $pattern
|
||||
* @param array $tokens
|
||||
* @return array
|
||||
*/
|
||||
public function parse(string $string, string $pattern, array $tokens = []): array // TODO: $string is a poor name for this parameter.
|
||||
public function parse(string $string, string $pattern, array $tokens = []): array
|
||||
{
|
||||
$token_tree = $this->scan($pattern);
|
||||
|
||||
@@ -129,19 +214,10 @@ class Token_lib
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $used_tokens
|
||||
* @param array $tokens_to_replace
|
||||
* @param array $token_values
|
||||
* @param array $tokens
|
||||
* @param bool $save
|
||||
* @return array
|
||||
*/
|
||||
public function generate(array $used_tokens, array &$tokens_to_replace, array &$token_values, array $tokens, bool $save = true): array // TODO: $tokens
|
||||
private function generate(array $used_tokens, array $tokens, array &$tokens_to_replace, array &$token_values, bool $save = true): void
|
||||
{
|
||||
foreach ($used_tokens as $token_code => $token_info) {
|
||||
// Generate value here based on the key value
|
||||
$token_value = $this->resolve_token($token_code, [], $save);
|
||||
$token_value = $this->resolve_token($token_code, $tokens, $save);
|
||||
|
||||
foreach ($token_info as $length => $token_spec) {
|
||||
$tokens_to_replace[] = $token_spec;
|
||||
@@ -152,16 +228,8 @@ class Token_lib
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $token_values;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $token_code
|
||||
* @param array $tokens
|
||||
* @param bool $save
|
||||
* @return string
|
||||
*/
|
||||
private function resolve_token($token_code, array $tokens = [], bool $save = true): string
|
||||
{
|
||||
foreach (array_merge($tokens, Token::get_tokens()) as $token) {
|
||||
@@ -172,4 +240,4 @@ class Token_lib
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -263,9 +263,10 @@ class Attribute extends Model
|
||||
|
||||
/**
|
||||
* @param int $definition_flags
|
||||
* @param bool $include_types If true, returns array with definition_id => ['name' => name, 'type' => type]
|
||||
* @return array
|
||||
*/
|
||||
public function get_definitions_by_flags(int $definition_flags): array
|
||||
public function get_definitions_by_flags(int $definition_flags, bool $include_types = false): array
|
||||
{
|
||||
$builder = $this->db->table('attribute_definitions');
|
||||
$builder->where(new RawSql("definition_flags & $definition_flags")); // TODO: we need to heed CI warnings to escape properly
|
||||
@@ -275,6 +276,17 @@ class Attribute extends Model
|
||||
|
||||
$results = $builder->get()->getResultArray();
|
||||
|
||||
if ($include_types) {
|
||||
$definitions = [];
|
||||
foreach ($results as $result) {
|
||||
$definitions[$result['definition_id']] = [
|
||||
'name' => $result['definition_name'],
|
||||
'type' => $result['definition_type']
|
||||
];
|
||||
}
|
||||
return $definitions;
|
||||
}
|
||||
|
||||
return $this->to_array($results, 'definition_id', 'definition_name');
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,10 @@ use stdClass;
|
||||
*/
|
||||
class Item extends Model
|
||||
{
|
||||
|
||||
public const ALLOWED_SUGGESTIONS_COLUMNS = ['name', 'item_number', 'description', 'cost_price', 'unit_price'];
|
||||
public const ALLOWED_SUGGESTIONS_COLUMNS_WITH_EMPTY = ['', 'name', 'item_number', 'description', 'cost_price', 'unit_price'];
|
||||
|
||||
public const ALLOWED_BULK_EDIT_FIELDS = [
|
||||
'name',
|
||||
'category',
|
||||
@@ -27,7 +31,6 @@ class Item extends Model
|
||||
'allow_alt_description',
|
||||
'is_serialized'
|
||||
];
|
||||
|
||||
protected $table = 'items';
|
||||
protected $primaryKey = 'item_id';
|
||||
protected $useAutoIncrement = true;
|
||||
@@ -544,13 +547,17 @@ class Item extends Model
|
||||
public function get_search_suggestion_format(?string $seed = null): string
|
||||
{
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$seed .= ',' . $config['suggestions_first_column'];
|
||||
|
||||
$suggestionsFirstColumn = $this->suggestionColumnIsAllowed($config['suggestions_first_column'])
|
||||
? $config['suggestions_first_column']
|
||||
: 'name';
|
||||
$seed .= ',' . $suggestionsFirstColumn;
|
||||
|
||||
if ($config['suggestions_second_column'] !== '') {
|
||||
if ($config['suggestions_second_column'] !== '' && $this->suggestionColumnIsAllowed($config['suggestions_second_column'])) {
|
||||
$seed .= ',' . $config['suggestions_second_column'];
|
||||
}
|
||||
|
||||
if ($config['suggestions_third_column'] !== '') {
|
||||
if ($config['suggestions_third_column'] !== '' && $this->suggestionColumnIsAllowed($config['suggestions_third_column'])) {
|
||||
$seed .= ',' . $config['suggestions_third_column'];
|
||||
}
|
||||
|
||||
@@ -566,9 +573,15 @@ class Item extends Model
|
||||
$config = config(OSPOS::class)->settings;
|
||||
|
||||
$label = '';
|
||||
$label1 = $config['suggestions_first_column'];
|
||||
$label2 = $config['suggestions_second_column'];
|
||||
$label3 = $config['suggestions_third_column'];
|
||||
$label1 = $this->suggestionColumnIsAllowed($config['suggestions_first_column'])
|
||||
? $config['suggestions_first_column']
|
||||
: 'name';
|
||||
$label2 = $this->suggestionColumnIsAllowed($config['suggestions_second_column'])
|
||||
? $config['suggestions_second_column']
|
||||
: '';
|
||||
$label3 = $this->suggestionColumnIsAllowed($config['suggestions_third_column'])
|
||||
? $config['suggestions_third_column']
|
||||
: '';
|
||||
|
||||
$this->format_result_numbers($result_row);
|
||||
|
||||
@@ -592,6 +605,17 @@ class Item extends Model
|
||||
return $label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates if a column name is in the allowed suggestions columns.
|
||||
*
|
||||
* @param string $columnName
|
||||
* @return bool
|
||||
*/
|
||||
private function suggestionColumnIsAllowed(string $columnName): bool
|
||||
{
|
||||
return in_array($columnName, self::ALLOWED_SUGGESTIONS_COLUMNS, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts decimal money values to their correct locale format.
|
||||
*
|
||||
|
||||
@@ -14,10 +14,7 @@ class Summary_taxes extends Summary_report
|
||||
$this->config = config(OSPOS::class)->settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
*/
|
||||
protected function _get_data_columns(): array // TODO: hungarian notation
|
||||
protected function _get_data_columns(): array
|
||||
{
|
||||
return [
|
||||
['tax_name' => lang('Reports.tax_name'), 'sortable' => false],
|
||||
@@ -29,12 +26,7 @@ class Summary_taxes extends Summary_report
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $inputs
|
||||
* @param $builder
|
||||
* @return void
|
||||
*/
|
||||
protected function _where(array $inputs, &$builder): void // TODO: hungarian notation
|
||||
protected function _where(array $inputs, &$builder): void
|
||||
{
|
||||
$builder->where('sales.sale_status', COMPLETED);
|
||||
|
||||
@@ -45,51 +37,90 @@ class Summary_taxes extends Summary_report
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $inputs
|
||||
* @return array
|
||||
*/
|
||||
public function getData(array $inputs): array
|
||||
{
|
||||
$decimals = totals_decimals();
|
||||
$db_prefix = $this->db->getPrefix();
|
||||
|
||||
$sale_amount = '(CASE WHEN ' . $db_prefix . 'sales_items.discount_type = ' . PERCENT
|
||||
. " THEN " . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price - ROUND(" . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price * " . $db_prefix . "sales_items.discount / 100, $decimals)"
|
||||
. ' ELSE ' . $db_prefix . 'sales_items.quantity_purchased * (' . $db_prefix . "sales_items.item_unit_price - " . $db_prefix . "sales_items.discount) END)";
|
||||
|
||||
$sale_tax = "IFNULL(" . $db_prefix . "sales_items_taxes.item_tax_amount, 0)";
|
||||
|
||||
if ($this->config['tax_included']) {
|
||||
$sale_total = '(CASE WHEN ' . $db_prefix . 'sales_items.discount_type = ' . PERCENT
|
||||
. " THEN " . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price - ROUND(" . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price * " . $db_prefix . "sales_items.discount / 100, $decimals)"
|
||||
. ' ELSE ' . $db_prefix . 'sales_items.quantity_purchased * (' . $db_prefix . 'sales_items.item_unit_price - ' . $db_prefix . 'sales_items.discount) END)';
|
||||
|
||||
$sale_subtotal = '(CASE WHEN ' . $db_prefix . 'sales_items.discount_type = ' . PERCENT
|
||||
. " THEN " . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price - ROUND(" . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price * " . $db_prefix . "sales_items.discount / 100, $decimals) "
|
||||
. 'ELSE ' . $db_prefix . 'sales_items.quantity_purchased * ' . $db_prefix . 'sales_items.item_unit_price - ' . $db_prefix . 'sales_items.discount END * (100 / (100 + ' . $db_prefix . 'sales_items_taxes.percent)))';
|
||||
$sale_subtotal = "ROUND($sale_amount - $sale_tax, $decimals)";
|
||||
} else {
|
||||
$sale_total = '(CASE WHEN ' . $db_prefix . 'sales_items.discount_type = ' . PERCENT
|
||||
. " THEN " . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price - ROUND(" . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price * " . $db_prefix . "sales_items.discount / 100, $decimals)"
|
||||
. ' ELSE ' . $db_prefix . 'sales_items.quantity_purchased * ' . $db_prefix . 'sales_items.item_unit_price - ' . $db_prefix . 'sales_items.discount END * (1 + (' . $db_prefix . 'sales_items_taxes.percent / 100)))';
|
||||
|
||||
$sale_subtotal = '(CASE WHEN ' . $db_prefix . 'sales_items.discount_type = ' . PERCENT
|
||||
. " THEN " . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price - ROUND(" . $db_prefix . "sales_items.quantity_purchased * " . $db_prefix . "sales_items.item_unit_price * " . $db_prefix . "sales_items.discount / 100, $decimals)"
|
||||
. ' ELSE ' . $db_prefix . 'sales_items.quantity_purchased * (' . $db_prefix . 'sales_items.item_unit_price - ' . $db_prefix . 'sales_items.discount) END)';
|
||||
$sale_subtotal = "ROUND($sale_amount, $decimals)";
|
||||
}
|
||||
$sale_tax_rounded = "ROUND($sale_tax, $decimals)";
|
||||
$sale_total = "($sale_subtotal + $sale_tax_rounded)";
|
||||
|
||||
$subquery_builder = $this->db->table('sales_items');
|
||||
$subquery_builder->select("name AS name, CONCAT(IFNULL(ROUND(percent, $decimals), 0), '%') AS percent, sales.sale_id AS sale_id, $sale_subtotal AS subtotal, IFNULL($db_prefix" . "sales_items_taxes.item_tax_amount, 0) AS tax, IFNULL($sale_total, $sale_subtotal) AS total");
|
||||
$subquery_builder->select(
|
||||
"name AS name, "
|
||||
. "CONCAT(IFNULL(ROUND(percent, $decimals), 0), '%') AS percent, "
|
||||
. "sales.sale_id AS sale_id, "
|
||||
. "$sale_subtotal AS subtotal, "
|
||||
. "$sale_tax_rounded AS tax, "
|
||||
. "$sale_total AS total"
|
||||
);
|
||||
|
||||
$subquery_builder->join('sales', 'sales_items.sale_id = sales.sale_id', 'inner');
|
||||
$subquery_builder->join('sales_items_taxes', 'sales_items.sale_id = sales_items_taxes.sale_id AND sales_items.item_id = sales_items_taxes.item_id AND sales_items.line = sales_items_taxes.line', 'left outer');
|
||||
$subquery_builder->join(
|
||||
'sales_items_taxes',
|
||||
'sales_items.sale_id = sales_items_taxes.sale_id AND sales_items.item_id = sales_items_taxes.item_id AND sales_items.line = sales_items_taxes.line',
|
||||
'left outer'
|
||||
);
|
||||
|
||||
$subquery_builder->where('sale_status', COMPLETED);
|
||||
|
||||
if (empty($this->config['date_or_time_format'])) {
|
||||
$subquery_builder->where('DATE(' . $db_prefix . 'sales.sale_time) BETWEEN ' . $this->db->escape($inputs['start_date']) . ' AND ' . $this->db->escape($inputs['end_date']));
|
||||
$subquery_builder->where(
|
||||
'DATE(' . $db_prefix . 'sales.sale_time) BETWEEN ' . $this->db->escape($inputs['start_date'])
|
||||
. ' AND ' . $this->db->escape($inputs['end_date'])
|
||||
);
|
||||
} else {
|
||||
$subquery_builder->where('sales.sale_time BETWEEN ' . $this->db->escape(rawurldecode($inputs['start_date'])) . ' AND ' . $this->db->escape(rawurldecode($inputs['end_date'])));
|
||||
$subquery_builder->where(
|
||||
'sales.sale_time BETWEEN ' . $this->db->escape(rawurldecode($inputs['start_date']))
|
||||
. ' AND ' . $this->db->escape(rawurldecode($inputs['end_date']))
|
||||
);
|
||||
}
|
||||
|
||||
$builder = $this->db->newQuery()->fromSubquery($subquery_builder, 'temp_taxes');
|
||||
$builder->select("name, percent, COUNT(DISTINCT sale_id) AS count, ROUND(SUM(subtotal), $decimals) AS subtotal, ROUND(SUM(tax), $decimals) AS tax, ROUND(SUM(total), $decimals) total");
|
||||
$builder->select(
|
||||
"name, percent, COUNT(DISTINCT sale_id) AS count, "
|
||||
. "ROUND(SUM(subtotal), $decimals) AS subtotal, "
|
||||
. "ROUND(SUM(tax), $decimals) AS tax, "
|
||||
. "ROUND(SUM(total), $decimals) AS total"
|
||||
);
|
||||
$builder->groupBy('percent, name');
|
||||
|
||||
return $builder->get()->getResultArray();
|
||||
}
|
||||
}
|
||||
|
||||
public function getSummaryData(array $inputs): array
|
||||
{
|
||||
$decimals = totals_decimals();
|
||||
$data = $this->getData($inputs);
|
||||
|
||||
$subtotal = 0;
|
||||
$tax = 0;
|
||||
$total = 0;
|
||||
$count = 0;
|
||||
|
||||
foreach ($data as $row) {
|
||||
$subtotal += (float) $row['subtotal'];
|
||||
$tax += (float) $row['tax'];
|
||||
$total += (float) $row['total'];
|
||||
$count += (int) $row['count'];
|
||||
}
|
||||
|
||||
return [
|
||||
'subtotal' => round($subtotal, $decimals),
|
||||
'tax' => round($tax, $decimals),
|
||||
'total' => round($total, $decimals),
|
||||
'count' => $count
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -273,6 +273,10 @@ class Sale extends Model
|
||||
$builder->like('payment_type', lang('Sales.credit'));
|
||||
}
|
||||
|
||||
if ($filters['only_debit']) {
|
||||
$builder->like('payment_type', lang('Sales.debit'));
|
||||
}
|
||||
|
||||
$builder->groupBy('payment_type');
|
||||
|
||||
$payments = $builder->get()->getResultArray();
|
||||
@@ -1494,6 +1498,10 @@ class Sale extends Model
|
||||
$builder->like('payments.payment_type', lang('Sales.credit'));
|
||||
}
|
||||
|
||||
if ($filters['only_debit']) {
|
||||
$builder->like('payments.payment_type', lang('Sales.debit'));
|
||||
}
|
||||
|
||||
if ($filters['only_due']) {
|
||||
$builder->like('payments.payment_type', lang('Sales.due'));
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
'name' => 'definition_name',
|
||||
'id' => 'definition_name',
|
||||
'class' => 'form-control input-sm',
|
||||
'value' => $definition_info->definition_name
|
||||
'value' => esc($definition_info->definition_name)
|
||||
]) ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -69,7 +69,7 @@
|
||||
<div class="input-group">
|
||||
<?= form_input([
|
||||
'name' => 'definition_unit',
|
||||
'value' => $definition_info->definition_unit,
|
||||
'value' => esc($definition_info->definition_unit),
|
||||
'class' => 'form-control input-sm',
|
||||
'id' => 'definition_unit'
|
||||
]) ?>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<?php foreach ($definition_values as $definition_id => $definition_value) { ?>
|
||||
|
||||
<div class="form-group form-group-sm">
|
||||
<?= form_label($definition_value['definition_name'], $definition_value['definition_name'], ['class' => 'control-label col-xs-3']) ?>
|
||||
<?= form_label(esc($definition_value['definition_name']), esc($definition_value['definition_name']), ['class' => 'control-label col-xs-3']) ?>
|
||||
<div class="col-xs-8">
|
||||
<div class="input-group">
|
||||
<?php
|
||||
@@ -55,7 +55,7 @@
|
||||
$value = (empty($attribute_value) || empty($attribute_value->attribute_value)) ? $definition_value['selected_value'] : $attribute_value->attribute_value;
|
||||
echo form_input([
|
||||
'name' => "attribute_links[$definition_id]",
|
||||
'value' => $value,
|
||||
'value' => esc($value),
|
||||
'class' => 'form-control valid_chars',
|
||||
'data-definition-id' => $definition_id
|
||||
]);
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
* @var string $controller_name
|
||||
* @var string $table_headers
|
||||
* @var array $filters
|
||||
* @var array $selected_filters
|
||||
* @var array $config
|
||||
* @var string|null $start_date
|
||||
* @var string|null $end_date
|
||||
*/
|
||||
?>
|
||||
|
||||
@@ -11,20 +14,19 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
// When any filter is clicked and the dropdown window is closed
|
||||
$('#filters').on('hidden.bs.select', function(e) {
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
// Load the preset datarange picker
|
||||
<?= view('partial/daterangepicker') ?>
|
||||
|
||||
$("#daterangepicker").on('apply.daterangepicker', function(ev, picker) {
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
<?= view('partial/bootstrap_tables_locale') ?>
|
||||
|
||||
// Override dates from server if provided
|
||||
<?php if (isset($start_date) && $start_date): ?>
|
||||
start_date = "<?= esc($start_date) ?>";
|
||||
<?php endif; ?>
|
||||
<?php if (isset($end_date) && $end_date): ?>
|
||||
end_date = "<?= esc($end_date) ?>";
|
||||
<?php endif; ?>
|
||||
|
||||
table_support.init({
|
||||
resource: '<?= esc($controller_name) ?>',
|
||||
headers: <?= $table_headers ?>,
|
||||
@@ -40,6 +42,7 @@
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?= view('partial/table_filter_persistence') ?>
|
||||
|
||||
<?= view('partial/print_receipt', ['print_after_sale' => false, 'selected_printer' => 'takings_printer']) ?>
|
||||
|
||||
@@ -58,7 +61,7 @@
|
||||
<span class="glyphicon glyphicon-trash"> </span><?= lang('Common.delete') ?>
|
||||
</button>
|
||||
<?= form_input(['name' => 'daterangepicker', 'class' => 'form-control input-sm', 'id' => 'daterangepicker']) ?>
|
||||
<?= form_multiselect('filters[]', $filters, [''], [
|
||||
<?= form_multiselect('filters[]', $filters, $selected_filters ?? [], [
|
||||
'id' => 'filters',
|
||||
'data-none-selected-text' => lang('Common.none_selected_text'),
|
||||
'class' => 'selectpicker show-menu-arrow',
|
||||
|
||||
@@ -126,7 +126,12 @@
|
||||
<div class="form-group form-group-sm">
|
||||
<?= form_label(lang('Expenses.employee'), 'employee', ['class' => 'control-label col-xs-3']) ?>
|
||||
<div class="col-xs-6">
|
||||
<?= form_dropdown('employee_id', $employees, $expenses_info->employee_id, 'id="employee_id" class="form-control"') ?>
|
||||
<?php if ($can_assign_employee): ?>
|
||||
<?= form_dropdown('employee_id', $employees, $expenses_info->employee_id, 'id="employee_id" class="form-control"') ?>
|
||||
<?php else: ?>
|
||||
<?= form_hidden('employee_id', $expenses_info->employee_id) ?>
|
||||
<?= form_input(['name' => 'employee_name', 'value' => esc($employees[$expenses_info->employee_id] ?? ''), 'class' => 'form-control', 'readonly' => 'readonly']) ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
* @var string $controller_name
|
||||
* @var string $table_headers
|
||||
* @var array $filters
|
||||
* @var array $selected_filters
|
||||
* @var array $config
|
||||
* @var string|null $start_date
|
||||
* @var string|null $end_date
|
||||
*/
|
||||
?>
|
||||
|
||||
@@ -11,20 +14,19 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
// When any filter is clicked and the dropdown window is closed
|
||||
$('#filters').on('hidden.bs.select', function(e) {
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
// Load the preset datarange picker
|
||||
<?= view('partial/daterangepicker') ?>
|
||||
|
||||
$("#daterangepicker").on('apply.daterangepicker', function(ev, picker) {
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
<?= view('partial/bootstrap_tables_locale') ?>
|
||||
|
||||
// Override dates from server if provided
|
||||
<?php if (isset($start_date) && $start_date): ?>
|
||||
start_date = "<?= esc($start_date) ?>";
|
||||
<?php endif; ?>
|
||||
<?php if (isset($end_date) && $end_date): ?>
|
||||
end_date = "<?= esc($end_date) ?>";
|
||||
<?php endif; ?>
|
||||
|
||||
table_support.init({
|
||||
resource: '<?= esc($controller_name) ?>',
|
||||
headers: <?= $table_headers ?>,
|
||||
@@ -45,8 +47,10 @@
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</script
|
||||
<?= view('partial/table_filter_persistence') ?>>
|
||||
|
||||
<?= view('partial/print_receipt', ['print_after_sale' => false, 'selected_printer' => 'takings_printer']) ?>
|
||||
|
||||
@@ -65,7 +69,7 @@
|
||||
<span class="glyphicon glyphicon-trash"> </span><?= lang('Common.delete') ?>
|
||||
</button>
|
||||
<?= form_input(['name' => 'daterangepicker', 'class' => 'form-control input-sm', 'id' => 'daterangepicker']) ?>
|
||||
<?= form_multiselect('filters[]', esc($filters), [''], [
|
||||
<?= form_multiselect('filters[]', esc($filters), $selected_filters ?? [], [
|
||||
'id' => 'filters',
|
||||
'data-none-selected-text' => lang('Common.none_selected_text'),
|
||||
'class' => 'selectpicker show-menu-arrow',
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
* @var array $stock_locations
|
||||
* @var int $stock_location
|
||||
* @var array $config
|
||||
* @var string|null $start_date
|
||||
* @var string|null $end_date
|
||||
* @var array $selected_filters
|
||||
*/
|
||||
|
||||
use App\Models\Employee;
|
||||
@@ -22,24 +25,20 @@ use App\Models\Employee;
|
||||
);
|
||||
});
|
||||
|
||||
// When any filter is clicked and the dropdown window is closed
|
||||
$('#filters').on('hidden.bs.select', function(e) {
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
// Load the preset daterange picker
|
||||
<?= view('partial/daterangepicker') ?>
|
||||
// Set the beginning of time as starting date
|
||||
$('#daterangepicker').data('daterangepicker').setStartDate("<?= date($config['dateformat'], mktime(0, 0, 0, 01, 01, 2010)) ?>");
|
||||
// Update the hidden inputs with the selected dates before submitting the search data
|
||||
var start_date = "<?= date('Y-m-d', mktime(0, 0, 0, 01, 01, 2010)) ?>";
|
||||
$("#daterangepicker").on('apply.daterangepicker', function(ev, picker) {
|
||||
table_support.refresh();
|
||||
});
|
||||
|
||||
$("#stock_location").change(function() {
|
||||
table_support.refresh();
|
||||
});
|
||||
// Override dates from server if provided
|
||||
<?php if (isset($start_date) && $start_date): ?>
|
||||
start_date = "<?= esc($start_date) ?>";
|
||||
<?php endif; ?>
|
||||
<?php if (isset($end_date) && $end_date): ?>
|
||||
end_date = "<?= esc($end_date) ?>";
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
echo view('partial/bootstrap_tables_locale');
|
||||
@@ -75,6 +74,8 @@ use App\Models\Employee;
|
||||
});
|
||||
</script>
|
||||
|
||||
<?= view('partial/table_filter_persistence', ['additional_params' => ['stock_location']]) ?>
|
||||
|
||||
<div id="title_bar" class="btn-toolbar print_hide">
|
||||
<button class="btn btn-info btn-sm pull-right modal-dlg" data-btn-submit="<?= lang('Common.submit') ?>" data-href="<?= "$controller_name/csvImport" ?>" title="<?= lang('Items.import_items_csv') ?>">
|
||||
<span class="glyphicon glyphicon-import"> </span><?= lang('Common.import_csv') ?>
|
||||
@@ -97,7 +98,7 @@ use App\Models\Employee;
|
||||
<span class="glyphicon glyphicon-barcode"> </span><?= lang('Items.generate_barcodes') ?>
|
||||
</button>
|
||||
<?= form_input(['name' => 'daterangepicker', 'class' => 'form-control input-sm', 'id' => 'daterangepicker']) ?>
|
||||
<?= form_multiselect('filters[]', $filters, [''], [
|
||||
<?= form_multiselect('filters[]', $filters, $selected_filters ?? [], [
|
||||
'id' => 'filters',
|
||||
'class' => 'selectpicker show-menu-arrow',
|
||||
'data-none-selected-text' => lang('Common.none_selected_text'),
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
<?php
|
||||
if ($gcaptcha_enabled) {
|
||||
echo '<script src="https://www.google.com/recaptcha/api.js"></script>';
|
||||
echo '<div class="g-recaptcha mb-3" style="text-align: center;" data-sitekey="' . $config['gcaptcha_site_key'] . '"></div>';
|
||||
echo '<div class="g-recaptcha mb-3" style="text-align: center;" data-sitekey="' . esc($config['gcaptcha_site_key']) . '"></div>';
|
||||
}
|
||||
?>
|
||||
<div class="d-grid">
|
||||
|
||||
84
app/Views/partial/table_filter_persistence.php
Normal file
84
app/Views/partial/table_filter_persistence.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/**
|
||||
* Table Filter Persistence
|
||||
*
|
||||
* This partial updates the URL when filters change, allowing users to
|
||||
* share/bookmark filtered views and maintain state on back navigation.
|
||||
*
|
||||
* Filter restoration from URL is handled server-side in the controller.
|
||||
*
|
||||
* @param array $options Additional filter options
|
||||
* - 'additional_params': Array of additional parameter names to track (e.g., ['stock_location'])
|
||||
* - 'filter_select_id': Filter multiselect element ID (default: 'filters')
|
||||
*/
|
||||
$options = $options ?? [];
|
||||
$additional_params = $options['additional_params'] ?? [];
|
||||
$filter_select_id = $options['filter_select_id'] ?? 'filters';
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
var additional_params = <?= json_encode($additional_params) ?>;
|
||||
var filter_select_id = '<?= esc($filter_select_id) ?>';
|
||||
|
||||
function update_url() {
|
||||
var params = new URLSearchParams();
|
||||
|
||||
// Add dates
|
||||
if (typeof start_date !== 'undefined') {
|
||||
params.set('start_date', start_date);
|
||||
}
|
||||
if (typeof end_date !== 'undefined') {
|
||||
params.set('end_date', end_date);
|
||||
}
|
||||
|
||||
// Add filters
|
||||
var filters = $('#' + filter_select_id).val();
|
||||
if (filters) {
|
||||
filters.forEach(function(filter) {
|
||||
params.append('filters[]', filter);
|
||||
});
|
||||
}
|
||||
|
||||
// Add additional params
|
||||
additional_params.forEach(function(param) {
|
||||
var element = $('#' + param);
|
||||
if (element.length) {
|
||||
var value = element.val();
|
||||
if (Array.isArray(value) && value.length > 0) {
|
||||
value.forEach(function(v) {
|
||||
params.append(param + '[]', v);
|
||||
});
|
||||
} else if (value) {
|
||||
params.set(param, value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Update URL without page reload
|
||||
var new_url = window.location.pathname;
|
||||
var params_str = params.toString();
|
||||
if (params_str) {
|
||||
new_url += '?' + params_str;
|
||||
}
|
||||
window.history.replaceState({}, '', new_url);
|
||||
}
|
||||
|
||||
// Update URL when filter dropdown changes
|
||||
$('#' + filter_select_id).on('hidden.bs.select', function(e) {
|
||||
update_url();
|
||||
});
|
||||
|
||||
// Update URL when stock location changes (if exists)
|
||||
if ($('#stock_location').length) {
|
||||
$("#stock_location").change(function() {
|
||||
update_url();
|
||||
});
|
||||
}
|
||||
|
||||
// Update URL when daterangepicker changes
|
||||
$("#daterangepicker").on('apply.daterangepicker', function(ev, picker) {
|
||||
update_url();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -5,6 +5,7 @@
|
||||
* @var int $selected_supplier_id
|
||||
* @var array $employees
|
||||
* @var string $controller_name
|
||||
* @var bool $can_assign_employee
|
||||
*/
|
||||
?>
|
||||
|
||||
@@ -50,7 +51,12 @@
|
||||
<div class="form-group form-group-sm">
|
||||
<?= form_label(lang('Receivings.employee'), 'employee', ['class' => 'control-label col-xs-3']) ?>
|
||||
<div class="col-xs-8">
|
||||
<?= form_dropdown('employee_id', $employees, $receiving_info['employee_id'], 'id="employee_id" class="form-control"') ?>
|
||||
<?php if ($can_assign_employee): ?>
|
||||
<?= form_dropdown('employee_id', $employees, $receiving_info['employee_id'], 'id="employee_id" class="form-control"') ?>
|
||||
<?php else: ?>
|
||||
<?= form_hidden('employee_id', $receiving_info['employee_id']) ?>
|
||||
<?= form_input(['name' => 'employee_name', 'value' => esc($employees[$receiving_info['employee_id']] ?? ''), 'class' => 'form-control input-sm', 'readonly' => 'readonly']) ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ if (isset($success)) {
|
||||
<td><?= esc($item['item_number']) ?></td>
|
||||
<td style="text-align: center;">
|
||||
<?= esc($item['name'] . ' ' . implode(' ', [$item['attribute_values'], $item['attribute_dtvalues']])) ?><br>
|
||||
<?= '[' . to_quantity_decimals($item['in_stock']) . ' in ' . $item['stock_name'] . ']' ?>
|
||||
<?= '[' . to_quantity_decimals($item['in_stock']) . ' in ' . esc($item['stock_name']) . ']' ?>
|
||||
<?= form_hidden('location', (string)$item['item_location']) ?>
|
||||
</td>
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
* @var array $filters
|
||||
* @var array $selected_filters
|
||||
* @var array $config
|
||||
* @var string|null $start_date
|
||||
* @var string|null $end_date
|
||||
*/
|
||||
?>
|
||||
|
||||
@@ -26,6 +28,14 @@
|
||||
|
||||
<?= view('partial/bootstrap_tables_locale') ?>
|
||||
|
||||
// Override dates from server if provided
|
||||
<?php if (isset($start_date) && $start_date): ?>
|
||||
start_date = "<?= esc($start_date) ?>";
|
||||
<?php endif; ?>
|
||||
<?php if (isset($end_date) && $end_date): ?>
|
||||
end_date = "<?= esc($end_date) ?>";
|
||||
<?php endif; ?>
|
||||
|
||||
table_support.query_params = function() {
|
||||
return {
|
||||
"start_date": start_date,
|
||||
@@ -55,9 +65,11 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<?= view('partial/table_filter_persistence') ?>
|
||||
|
||||
<?= view('partial/print_receipt', ['print_after_sale' => false, 'selected_printer' => 'takings_printer']) ?>
|
||||
|
||||
<div id="title_bar" class="print_hide btn-toolbar">
|
||||
|
||||
@@ -181,7 +181,7 @@ helper('url');
|
||||
<td style="align: center;">
|
||||
<?= esc($item['name']) . ' ' . implode(' ', [$item['attribute_values'], $item['attribute_dtvalues']]) ?>
|
||||
<br>
|
||||
<?php if ($item['stock_type'] == '0'): echo '[' . to_quantity_decimals($item['in_stock']) . ' in ' . $item['stock_name'] . ']';
|
||||
<?php if ($item['stock_type'] == '0'): echo '[' . to_quantity_decimals($item['in_stock']) . ' in ' . esc($item['stock_name']) . ']';
|
||||
endif; ?>
|
||||
</td>
|
||||
<?php } ?>
|
||||
|
||||
@@ -139,7 +139,7 @@ if (isset($error_message)) {
|
||||
if ($item['print_option'] == PRINT_YES) { // TODO: === ?
|
||||
?>
|
||||
<tr class="item-row">
|
||||
<td><?= $item['item_number'] ?></td>
|
||||
<td><?= esc($item['item_number']) ?></td>
|
||||
<?php if ($include_hsn): ?>
|
||||
<td style="text-align: center;"><?= esc($item['hsn_code']) ?></td>
|
||||
<?php endif; ?>
|
||||
|
||||
1
build/.phpunit.cache/test-results
Normal file
1
build/.phpunit.cache/test-results
Normal file
@@ -0,0 +1 @@
|
||||
{"version":2,"defects":{"Token_libTest::testRenderHandlesSpecialCharacters":8,"Token_libTest::testRenderHandlesUnicode":8,"Token_libTest::testRenderHandlesNewLines":8,"Token_libTest::testRenderHandlesTabs":8,"Token_libTest::testRenderHandlesDateAtStart":8,"Token_libTest::testRenderHandlesSqlInjectionAttempt":8,"Token_libTest::testRenderHandlesVeryLongStringWithDate":8,"Token_libTest::testRenderHandlesMultipleDates":8,"Token_libTest::testRenderDoesNotReplaceInvalidFormatSpecifiers":7},"times":{"Token_libTest::testRenderReturnsInputStringWhenNoTokens":0.002,"Token_libTest::testRenderHandlesStringWithPercentNotInDateFormat":0.004,"Token_libTest::testRenderHandlesInvalidDateFormatPercentDashPercent":0.001,"Token_libTest::testRenderHandlesInvalidDateFormatPercentYPercentQPercentBad":0,"Token_libTest::testRenderHandlesStringWithPercentAPercent":0,"Token_libTest::testRenderHandlesExtremelyLongString":0,"Token_libTest::testRenderHandlesStringWithMultiplePercentSymbols":0,"Token_libTest::testRenderHandlesStringWithOnlyPercentSymbol":0,"Token_libTest::testRenderPreservesTextWithValidDateTokensAndNoOtherTokens":0,"Token_libTest::testRenderHandlesEmptyString":0,"Token_libTest::testScanExtractsTokens":0,"Token_libTest::testScanExtractsTokensWithLength":0,"Token_libTest::testScanReturnsEmptyArrayForNoTokens":0,"Token_libTest::testRenderHandlesConsecutivePercentSigns":0,"Token_libTest::testRenderHandlesEscapedPercentSigns":0,"Token_libTest::testRenderHandlesSpecialCharacters":0.005,"Token_libTest::testRenderHandlesUnicode":0,"Token_libTest::testRenderHandlesNewLines":0,"Token_libTest::testRenderHandlesTabs":0,"Token_libTest::testRenderHandlesUnclosedBraces":0,"Token_libTest::testRenderHandlesUnopenedBraces":0,"Token_libTest::testRenderHandlesDateAtStart":0,"Token_libTest::testRenderHandlesSqlInjectionAttempt":0,"Token_libTest::testRenderHandlesVeryLongStringWithDate":0,"Token_libTest::testRenderHandlesMultipleDates":0,"Token_libTest::testRenderHandlesValidYearFormat":0,"Token_libTest::testRenderHandlesValidMonthFormat":0,"Token_libTest::testRenderHandlesValidDayFormat":0,"Token_libTest::testRenderHandlesFullDateFormat":0,"Token_libTest::testRenderHandlesPercentB":0,"Token_libTest::testRenderHandlesPercentA":0,"Token_libTest::testRenderHandlesComplexPercentFormat":0,"Token_libTest::testRenderDoesNotReplaceInvalidFormatSpecifiers":0,"Token_libTest::testScanWorksWithMixedContent":0,"Token_libTest::testRenderReplacesTimezoneFormat":0,"Tests\\Libraries\\Token_libTest::testRenderReturnsInputStringWhenNoTokens":0.001,"Tests\\Libraries\\Token_libTest::testRenderHandlesStringWithPercentNotInDateFormat":0.004,"Tests\\Libraries\\Token_libTest::testRenderHandlesInvalidDateFormatPercentDashPercent":0.001,"Tests\\Libraries\\Token_libTest::testRenderHandlesInvalidDateFormatPercentYPercentQPercentBad":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesStringWithPercentAPercent":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesExtremelyLongString":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesStringWithMultiplePercentSymbols":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesStringWithOnlyPercentSymbol":0,"Tests\\Libraries\\Token_libTest::testRenderPreservesTextWithValidDateTokensAndNoOtherTokens":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesEmptyString":0,"Tests\\Libraries\\Token_libTest::testScanExtractsTokens":0,"Tests\\Libraries\\Token_libTest::testScanExtractsTokensWithLength":0,"Tests\\Libraries\\Token_libTest::testScanReturnsEmptyArrayForNoTokens":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesConsecutivePercentSigns":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesEscapedPercentSigns":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesUnclosedBraces":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesUnopenedBraces":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesVeryLongStringWithDate":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesMultipleDates":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesValidYearFormat":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesValidMonthFormat":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesValidDayFormat":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesFullDateFormat":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesPercentB":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesPercentA":0,"Tests\\Libraries\\Token_libTest::testRenderHandlesComplexPercentFormat":0,"Tests\\Libraries\\Token_libTest::testRenderDoesNotReplaceInvalidFormatSpecifiers":0,"Tests\\Libraries\\Token_libTest::testRenderReplacesTimezoneFormat":0,"Tests\\Libraries\\Token_libTest::testScanWorksWithMixedContent":0}}
|
||||
38
build/logs/logfile.xml
Normal file
38
build/logs/logfile.xml
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<testsuites>
|
||||
<testsuite name="/app/phpunit.xml.dist" tests="29" assertions="44" errors="0" failures="0" skipped="0" time="0.029097">
|
||||
<testsuite name="App" tests="29" assertions="44" errors="0" failures="0" skipped="0" time="0.029097">
|
||||
<testsuite name="Tests\Libraries\Token_libTest" file="/app/tests/Libraries/Token_libTest.php" tests="29" assertions="44" errors="0" failures="0" skipped="0" time="0.029097">
|
||||
<testcase name="testRenderReturnsInputStringWhenNoTokens" file="/app/tests/Libraries/Token_libTest.php" line="18" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.007667"/>
|
||||
<testcase name="testRenderHandlesStringWithPercentNotInDateFormat" file="/app/tests/Libraries/Token_libTest.php" line="25" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.004001"/>
|
||||
<testcase name="testRenderHandlesInvalidDateFormatPercentDashPercent" file="/app/tests/Libraries/Token_libTest.php" line="33" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.001162"/>
|
||||
<testcase name="testRenderHandlesInvalidDateFormatPercentYPercentQPercentBad" file="/app/tests/Libraries/Token_libTest.php" line="41" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000766"/>
|
||||
<testcase name="testRenderHandlesStringWithPercentAPercent" file="/app/tests/Libraries/Token_libTest.php" line="48" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000613"/>
|
||||
<testcase name="testRenderHandlesExtremelyLongString" file="/app/tests/Libraries/Token_libTest.php" line="55" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000513"/>
|
||||
<testcase name="testRenderHandlesStringWithMultiplePercentSymbols" file="/app/tests/Libraries/Token_libTest.php" line="62" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000589"/>
|
||||
<testcase name="testRenderHandlesStringWithOnlyPercentSymbol" file="/app/tests/Libraries/Token_libTest.php" line="70" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000578"/>
|
||||
<testcase name="testRenderPreservesTextWithValidDateTokensAndNoOtherTokens" file="/app/tests/Libraries/Token_libTest.php" line="77" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000612"/>
|
||||
<testcase name="testRenderHandlesEmptyString" file="/app/tests/Libraries/Token_libTest.php" line="84" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000503"/>
|
||||
<testcase name="testScanExtractsTokens" file="/app/tests/Libraries/Token_libTest.php" line="91" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000578"/>
|
||||
<testcase name="testScanExtractsTokensWithLength" file="/app/tests/Libraries/Token_libTest.php" line="98" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000501"/>
|
||||
<testcase name="testScanReturnsEmptyArrayForNoTokens" file="/app/tests/Libraries/Token_libTest.php" line="105" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000513"/>
|
||||
<testcase name="testRenderHandlesConsecutivePercentSigns" file="/app/tests/Libraries/Token_libTest.php" line="111" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000628"/>
|
||||
<testcase name="testRenderHandlesEscapedPercentSigns" file="/app/tests/Libraries/Token_libTest.php" line="119" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000626"/>
|
||||
<testcase name="testRenderHandlesUnclosedBraces" file="/app/tests/Libraries/Token_libTest.php" line="126" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000617"/>
|
||||
<testcase name="testRenderHandlesUnopenedBraces" file="/app/tests/Libraries/Token_libTest.php" line="133" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000620"/>
|
||||
<testcase name="testRenderHandlesVeryLongStringWithDate" file="/app/tests/Libraries/Token_libTest.php" line="140" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000599"/>
|
||||
<testcase name="testRenderHandlesMultipleDates" file="/app/tests/Libraries/Token_libTest.php" line="148" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000593"/>
|
||||
<testcase name="testRenderHandlesValidYearFormat" file="/app/tests/Libraries/Token_libTest.php" line="155" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000688"/>
|
||||
<testcase name="testRenderHandlesValidMonthFormat" file="/app/tests/Libraries/Token_libTest.php" line="162" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000611"/>
|
||||
<testcase name="testRenderHandlesValidDayFormat" file="/app/tests/Libraries/Token_libTest.php" line="169" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000627"/>
|
||||
<testcase name="testRenderHandlesFullDateFormat" file="/app/tests/Libraries/Token_libTest.php" line="176" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="1" time="0.000757"/>
|
||||
<testcase name="testRenderHandlesPercentB" file="/app/tests/Libraries/Token_libTest.php" line="183" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="3" time="0.000766"/>
|
||||
<testcase name="testRenderHandlesPercentA" file="/app/tests/Libraries/Token_libTest.php" line="192" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="3" time="0.000703"/>
|
||||
<testcase name="testRenderHandlesComplexPercentFormat" file="/app/tests/Libraries/Token_libTest.php" line="201" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000669"/>
|
||||
<testcase name="testRenderDoesNotReplaceInvalidFormatSpecifiers" file="/app/tests/Libraries/Token_libTest.php" line="209" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000646"/>
|
||||
<testcase name="testRenderReplacesTimezoneFormat" file="/app/tests/Libraries/Token_libTest.php" line="217" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000811"/>
|
||||
<testcase name="testScanWorksWithMixedContent" file="/app/tests/Libraries/Token_libTest.php" line="225" class="Tests\Libraries\Token_libTest" classname="Tests.Libraries.Token_libTest" assertions="2" time="0.000540"/>
|
||||
</testsuite>
|
||||
</testsuite>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
87
build/logs/testdox.html
Normal file
87
build/logs/testdox.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Test Documentation</title>
|
||||
<style>
|
||||
body {
|
||||
text-rendering: optimizeLegibility;
|
||||
font-family: Source SansSerif Pro, Arial, sans-serif;
|
||||
font-variant-ligatures: common-ligatures;
|
||||
font-kerning: normal;
|
||||
margin-left: 2rem;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
body > ul > li {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: larger;
|
||||
text-decoration-line: underline;
|
||||
text-decoration-thickness: 2px;
|
||||
margin: 0;
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
margin: 0 0 2rem;
|
||||
padding: 0 0 0 1rem;
|
||||
text-indent: -1rem;
|
||||
}
|
||||
|
||||
.success:before {
|
||||
color: #4e9a06;
|
||||
content: '✓';
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
|
||||
.defect {
|
||||
color: #a40000;
|
||||
}
|
||||
|
||||
.defect:before {
|
||||
color: #a40000;
|
||||
content: '✗';
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Token_lib (Tests\Libraries\Token_lib)</h2>
|
||||
<ul>
|
||||
<li class="success">Render returns input string when no tokens</li>
|
||||
<li class="success">Render handles string with percent not in date format</li>
|
||||
<li class="success">Render handles invalid date format percent dash percent</li>
|
||||
<li class="success">Render handles invalid date format percent y percent q percent bad</li>
|
||||
<li class="success">Render handles string with percent a percent</li>
|
||||
<li class="success">Render handles extremely long string</li>
|
||||
<li class="success">Render handles string with multiple percent symbols</li>
|
||||
<li class="success">Render handles string with only percent symbol</li>
|
||||
<li class="success">Render preserves text with valid date tokens and no other tokens</li>
|
||||
<li class="success">Render handles empty string</li>
|
||||
<li class="success">Scan extracts tokens</li>
|
||||
<li class="success">Scan extracts tokens with length</li>
|
||||
<li class="success">Scan returns empty array for no tokens</li>
|
||||
<li class="success">Render handles consecutive percent signs</li>
|
||||
<li class="success">Render handles escaped percent signs</li>
|
||||
<li class="success">Render handles unclosed braces</li>
|
||||
<li class="success">Render handles unopened braces</li>
|
||||
<li class="success">Render handles very long string with date</li>
|
||||
<li class="success">Render handles multiple dates</li>
|
||||
<li class="success">Render handles valid year format</li>
|
||||
<li class="success">Render handles valid month format</li>
|
||||
<li class="success">Render handles valid day format</li>
|
||||
<li class="success">Render handles full date format</li>
|
||||
<li class="success">Render handles percent b</li>
|
||||
<li class="success">Render handles percent a</li>
|
||||
<li class="success">Render handles complex percent format</li>
|
||||
<li class="success">Render does not replace invalid format specifiers</li>
|
||||
<li class="success">Render replaces timezone format</li>
|
||||
<li class="success">Scan works with mixed content</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
31
build/logs/testdox.txt
Normal file
31
build/logs/testdox.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
Token_lib (Tests\Libraries\Token_lib)
|
||||
[x] Render returns input string when no tokens
|
||||
[x] Render handles string with percent not in date format
|
||||
[x] Render handles invalid date format percent dash percent
|
||||
[x] Render handles invalid date format percent y percent q percent bad
|
||||
[x] Render handles string with percent a percent
|
||||
[x] Render handles extremely long string
|
||||
[x] Render handles string with multiple percent symbols
|
||||
[x] Render handles string with only percent symbol
|
||||
[x] Render preserves text with valid date tokens and no other tokens
|
||||
[x] Render handles empty string
|
||||
[x] Scan extracts tokens
|
||||
[x] Scan extracts tokens with length
|
||||
[x] Scan returns empty array for no tokens
|
||||
[x] Render handles consecutive percent signs
|
||||
[x] Render handles escaped percent signs
|
||||
[x] Render handles unclosed braces
|
||||
[x] Render handles unopened braces
|
||||
[x] Render handles very long string with date
|
||||
[x] Render handles multiple dates
|
||||
[x] Render handles valid year format
|
||||
[x] Render handles valid month format
|
||||
[x] Render handles valid day format
|
||||
[x] Render handles full date format
|
||||
[x] Render handles percent b
|
||||
[x] Render handles percent a
|
||||
[x] Render handles complex percent format
|
||||
[x] Render does not replace invalid format specifiers
|
||||
[x] Render replaces timezone format
|
||||
[x] Scan works with mixed content
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user