mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-25 00:44:03 -04:00
Compare commits
52 Commits
validation
...
fix-requis
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b64a93e483 | ||
|
|
7f073bce8f | ||
|
|
6ab72ce5c2 | ||
|
|
ac90c07c90 | ||
|
|
c81c546286 | ||
|
|
a87b6eebb2 | ||
|
|
487e7dc0bd | ||
|
|
467144f884 | ||
|
|
2f365dce91 | ||
|
|
5bee124965 | ||
|
|
6195368dfc | ||
|
|
deb9d1e65d | ||
|
|
b541d473cf | ||
|
|
ff6ec1bd4e | ||
|
|
6b48078b44 | ||
|
|
3e63b99aef | ||
|
|
0f3175bc19 | ||
|
|
ebc923801b | ||
|
|
6128924723 | ||
|
|
3faa48330a | ||
|
|
86763e460c | ||
|
|
1463151f64 | ||
|
|
ae83b47b5b | ||
|
|
a925cb3f22 | ||
|
|
564df8aff0 | ||
|
|
8aee7350ae | ||
|
|
91f1863617 | ||
|
|
ae18737c6b | ||
|
|
bf6ef090e7 | ||
|
|
b8883954a4 | ||
|
|
618c942529 | ||
|
|
16d3a8bab1 | ||
|
|
8b2d0b5208 | ||
|
|
e4d5ba70eb | ||
|
|
507b2b3cf3 | ||
|
|
a848fbe432 | ||
|
|
05ec5f2e7a | ||
|
|
4fd1c64c61 | ||
|
|
55cba0c30d | ||
|
|
ffd957ba2f | ||
|
|
aeee79c494 | ||
|
|
4d65bd6c92 | ||
|
|
248299521b | ||
|
|
cea8717378 | ||
|
|
6eade2eed6 | ||
|
|
3cac58965a | ||
|
|
255968f5ea | ||
|
|
150210cee3 | ||
|
|
6d106d69d2 | ||
|
|
555a00d385 | ||
|
|
71d6502929 | ||
|
|
46e14a3642 |
22
.github/workflows/delete-unstable-release.yml
vendored
Normal file
22
.github/workflows/delete-unstable-release.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: "Delete Unstable Release"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
delete_unstable_release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Delete last unstable release"
|
||||
uses: sgpublic/delete-release-action@v1.2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
||||
with:
|
||||
release-drop: false
|
||||
release-drop-tag: false
|
||||
pre-release-drop: true
|
||||
pre-release-keep-count: -1
|
||||
pre-release-drop-tag: true
|
||||
|
||||
30
.github/workflows/php-linter.yml
vendored
Normal file
30
.github/workflows/php-linter.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: PHP Linting
|
||||
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
phplint:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: PHP Lint 8.0
|
||||
uses: dbfx/github-phplint/8.0@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
- name: PHP Lint 8.1
|
||||
uses: dbfx/github-phplint/8.1@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
- name: PHP Lint 8.2
|
||||
uses: dbfx/github-phplint/8.2@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
- name: PHP Lint 8.3
|
||||
uses: dbfx/github-phplint/8.3@master
|
||||
with:
|
||||
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""
|
||||
25
.travis.yml
25
.travis.yml
@@ -2,6 +2,7 @@ sudo: required
|
||||
|
||||
branches:
|
||||
except:
|
||||
- unstable
|
||||
- weblate
|
||||
services:
|
||||
- docker
|
||||
@@ -17,6 +18,7 @@ script:
|
||||
- sed -i "s/commit_sha1 = 'dev'/commit_sha1 = '$rev'/g" app/Config/OSPOS.php
|
||||
- echo "$version-$branch-$rev"
|
||||
- npm version "$version-$branch-$rev" --force || true
|
||||
- sed -i 's/opensourcepos.tar.gz/opensourcepos.$version.tgz/g' package.json
|
||||
- npm ci && npm install -g gulp && npm run build
|
||||
- docker build . --target ospos -t ospos
|
||||
- docker build app/Database/ -t "jekkos/opensourcepos:sql-$TAG"
|
||||
@@ -32,16 +34,21 @@ after_success:
|
||||
- mv dist/opensourcepos.tar.gz "dist/opensourcepos.$version.$rev.tgz"
|
||||
- mv dist/opensourcepos.zip "dist/opensourcepos.$version.$rev.zip"
|
||||
deploy:
|
||||
- provider: npm
|
||||
- provider: releases
|
||||
edge: true
|
||||
src: dist/opensourcepos.$version.$rev.tgz
|
||||
registry: https://npm.pkg.github.com
|
||||
email: jeroen@steganos.dev
|
||||
file: dist/opensourcepos.$version.$rev.zip
|
||||
name: "Unstable OpensourcePos"
|
||||
overwrite: true
|
||||
release_notes: "This is a build of the latest master which might contain bugs. Use at your own risk. Check releases section for the latest official release"
|
||||
prerelease: true
|
||||
tag_name: unstable
|
||||
user: jekkos
|
||||
|
||||
api_key:
|
||||
secure: "DNPJOrT51wdO0BAbkX2hKowdXYh7x8d43xvAw7eVfOslyBPiv6Bb/1QdC2Bpnlqe0WiJVS5hvBTMrJ+vSDK5i/l8jA+ZoI6ms1+P1DQ6sBBMBQI2fuvRCrJj+Fp3WnaduZb/N7R+FqdKQwD/ZORyhzJ4whtHkrO8uC7cY/wlacU="
|
||||
secure: "KOukL8IFf/uL/BjMyCSKjf2vylydjcWqgEx0eMqFCg3nZ4ybMaOwPORRthIfyT72/FvGX/aoxxEn0uR/AEtb+hYQXHmNS+kZdX72JCe8LpGuZ7FJ5X+Eo9mhJcsmS+smd1sC95DySSc/GolKPo+0WtJYONY/xGCLxm+9Ay4HREg="
|
||||
|
||||
on:
|
||||
all_branches: true
|
||||
branch: master
|
||||
- provider: releases
|
||||
edge: true
|
||||
file: dist/opensourcepos.$version.$rev.zip
|
||||
@@ -52,8 +59,12 @@ deploy:
|
||||
user: jekkos
|
||||
overwrite: true
|
||||
api_key:
|
||||
secure: "DNPJOrT51wdO0BAbkX2hKowdXYh7x8d43xvAw7eVfOslyBPiv6Bb/1QdC2Bpnlqe0WiJVS5hvBTMrJ+vSDK5i/l8jA+ZoI6ms1+P1DQ6sBBMBQI2fuvRCrJj+Fp3WnaduZb/N7R+FqdKQwD/ZORyhzJ4whtHkrO8uC7cY/wlacU="
|
||||
secure: "KOukL8IFf/uL/BjMyCSKjf2vylydjcWqgEx0eMqFCg3nZ4ybMaOwPORRthIfyT72/FvGX/aoxxEn0uR/AEtb+hYQXHmNS+kZdX72JCe8LpGuZ7FJ5X+Eo9mhJcsmS+smd1sC95DySSc/GolKPo+0WtJYONY/xGCLxm+9Ay4HREg="
|
||||
|
||||
branches:
|
||||
except:
|
||||
- unstable
|
||||
- /unstable.*/
|
||||
on:
|
||||
tags: true
|
||||
branch: master
|
||||
|
||||
98
CODE_OF_CONDUCT.md
Normal file
98
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,98 @@
|
||||
Contributor Covenant Code of Conduct
|
||||
Our Pledge
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
Our Standards
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others’ private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
Enforcement Responsibilities
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
Scope
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official email address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
Enforcement
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
[INSERT CONTACT METHOD].
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
Enforcement Guidelines
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
1. Correction
|
||||
Community Impact: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
Consequence: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
2. Warning
|
||||
Community Impact: A violation through a single incident or series of
|
||||
actions.
|
||||
Consequence: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
3. Temporary Ban
|
||||
Community Impact: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
Consequence: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
4. Permanent Ban
|
||||
Community Impact: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
Consequence: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
Attribution
|
||||
This Code of Conduct is adapted from the Contributor Covenant,
|
||||
version 2.1, available at
|
||||
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
|
||||
Community Impact Guidelines were inspired by
|
||||
Mozilla’s code of conduct enforcement ladder.
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Server Requirements
|
||||
|
||||
- PHP version `7.4` is supported, PHP version `≤7.3` is NOT supported. Please note that PHP needs to have the extensions `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` , `php-curl` and `php-xml` installed and enabled. PHP version `8.x` is only supported by the code that is still under development in master branch.
|
||||
- PHP version `7.4` is supported, PHP version `≤7.3` is NOT supported. Please note that PHP needs to have the extensions `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` , `php-curl` and `php-xml` installed and enabled. PHP version `8.x` is only supported by the code that is still under development in master branch. An unstable build can be downloaded in the releases section.
|
||||
- MySQL `5.6` and `5.7` are supported, also MariaDB replacement `10.x` is supported and might offer better performance.
|
||||
- Apache `2.4` is supported. Nginx should work fine too, see [wiki page here](https://github.com/opensourcepos/opensourcepos/wiki/Local-Deployment-using-LEMP).
|
||||
- Raspberry PI based installations proved to work, see [wiki page here](<https://github.com/opensourcepos/opensourcepos/wiki/Installing-on-Raspberry-PI---Orange-PI-(Headless-OSPOS)>).
|
||||
|
||||
@@ -137,7 +137,7 @@ Any person or company found breaching the license agreement might find a bunch o
|
||||
|
||||
## 🙏 Credits
|
||||
|
||||
| <div align="center">JetBrains</div> | <div align="center">Travis CI</div> |
|
||||
|--- | --- |
|
||||
| <div align="center"><a href="https://www.jetbrains.com/idea/" target="_blank"><img src="https://github.com/opensourcepos/opensourcepos/assets/12870258/187f9bbe-4484-475c-9b58-5e5d5f931f09" alt="IntelliJ IDEA Logo" height="50"></a></div> | <div align="center"><a href="https://www.travis-ci.com/" target="_blank"><img src="https://github.com/opensourcepos/opensourcepos/assets/12870258/71cc2b44-83af-4510-a543-6358285f43c6" alt="Travis CI Logo" height="50"></a></div> |
|
||||
| Many thanks to [JetBrains](https://www.jetbrains.com/) for providing a free license of [IntelliJ IDEA](https://www.jetbrains.com/idea/) to kindly support the development of OSPOS. | Many thanks to [Travis CI](https://www.travis-ci.com/) for providing a free continuous integration service for open source projects. |
|
||||
| <div align="center">DigitalOcean</div> | <div align="center">JetBrains</div> | <div align="center">Travis CI</div> |
|
||||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| --- | --- |
|
||||
| <div align="center"><a href="https://www.digitalocean.com?utm_medium=opensource&utm_source=opensourcepos" target="_blank"><img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" alt="DigitalOcean Logo" height="50"></a></div> | <div align="center"><a href="https://www.jetbrains.com/idea/" target="_blank"><img src="https://github.com/opensourcepos/opensourcepos/assets/12870258/187f9bbe-4484-475c-9b58-5e5d5f931f09" alt="IntelliJ IDEA Logo" height="50"></a></div> | <div align="center"><a href="https://www.travis-ci.com/" target="_blank"><img src="https://github.com/opensourcepos/opensourcepos/assets/12870258/71cc2b44-83af-4510-a543-6358285f43c6" alt="Travis CI Logo" height="50"></a></div> |
|
||||
| Many thanks to [Digital Ocean](https://www.digitalocean.com) for providing the project with hosting credits | Many thanks to [JetBrains](https://www.jetbrains.com/) for providing a free license of [IntelliJ IDEA](https://www.jetbrains.com/idea/) to kindly support the development of OSPOS. | Many thanks to [Travis CI](https://www.travis-ci.com/) for providing a free continuous integration service for open source projects. |
|
||||
|
||||
@@ -140,7 +140,6 @@ class OSPOSRules
|
||||
*/
|
||||
public function decimal_locale(string $candidate, ?string &$error = null): bool
|
||||
{
|
||||
$candidate = prepare_decimal($candidate);
|
||||
$validation = Services::validation();
|
||||
|
||||
$validation->setRules([
|
||||
|
||||
@@ -228,24 +228,16 @@ class Cashups extends Secure_Controller
|
||||
$close_date = $this->request->getPost('close_date');
|
||||
$close_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $close_date);
|
||||
|
||||
$open_amount_cash = prepare_decimal($this->request->getPost('open_amount_cash'));
|
||||
$transfer_amount_cash = prepare_decimal($this->request->getPost('transfer_amount_cash'));
|
||||
$closed_amount_cash = prepare_decimal($this->request->getPost('closed_amount_cash'));
|
||||
$closed_amount_due = prepare_decimal($this->request->getPost('closed_amount_due'));
|
||||
$closed_amount_card = prepare_decimal($this->request->getPost('closed_amount_card'));
|
||||
$closed_amount_check = prepare_decimal($this->request->getPost('closed_amount_check'));
|
||||
$closed_amount_total = prepare_decimal($this->request->getPost('closed_amount_total'));
|
||||
|
||||
$cash_up_data = [
|
||||
'open_date' => $open_date_formatter->format('Y-m-d H:i:s'),
|
||||
'close_date' => $close_date_formatter->format('Y-m-d H:i:s'),
|
||||
'open_amount_cash' => parse_decimals(filter_var($open_amount_cash, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'transfer_amount_cash' => parse_decimals(filter_var($transfer_amount_cash, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'closed_amount_cash' => parse_decimals(filter_var($closed_amount_cash, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'closed_amount_due' => parse_decimals(filter_var($closed_amount_due, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'closed_amount_card' => parse_decimals(filter_var($closed_amount_card, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'closed_amount_check' => parse_decimals(filter_var($closed_amount_check, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'closed_amount_total' => parse_decimals(filter_var($closed_amount_total, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'open_amount_cash' => parse_decimals($this->request->getPost('open_amount_cash')),
|
||||
'transfer_amount_cash' => parse_decimals($this->request->getPost('transfer_amount_cash')),
|
||||
'closed_amount_cash' => parse_decimals($this->request->getPost('closed_amount_cash')),
|
||||
'closed_amount_due' => parse_decimals($this->request->getPost('closed_amount_due')),
|
||||
'closed_amount_card' => parse_decimals($this->request->getPost('closed_amount_card')),
|
||||
'closed_amount_check' => parse_decimals($this->request->getPost('closed_amount_check')),
|
||||
'closed_amount_total' => parse_decimals($this->request->getPost('closed_amount_total')),
|
||||
'note' => $this->request->getPost('note') != null,
|
||||
'description' => $this->request->getPost('description', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'open_employee_id' => $this->request->getPost('open_employee_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
@@ -296,19 +288,12 @@ class Cashups extends Secure_Controller
|
||||
*/
|
||||
public function ajax_cashup_total(): void
|
||||
{
|
||||
$raw_open_amount_cash = $this->request->getPost('open_amount_cash');
|
||||
$raw_transfer_amount_cash = $this->request->getPost('transfer_amount_cash');
|
||||
$raw_closed_amount_cash = $this->request->getPost('closed_amount_cash');
|
||||
$raw_closed_amount_due = $this->request->getPost('closed_amount_due');
|
||||
$raw_closed_amount_card = $this->request->getPost('closed_amount_card');
|
||||
$raw_closed_amount_check = $this->request->getPost('closed_amount_check');
|
||||
|
||||
$open_amount_cash = parse_decimals(filter_var(prepare_decimal($raw_open_amount_cash), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$transfer_amount_cash = parse_decimals(filter_var(prepare_decimal($raw_transfer_amount_cash), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$closed_amount_cash = parse_decimals(filter_var(prepare_decimal($raw_closed_amount_cash), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$closed_amount_due = parse_decimals(filter_var(prepare_decimal($raw_closed_amount_due), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$closed_amount_card = parse_decimals(filter_var(prepare_decimal($raw_closed_amount_card), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$closed_amount_check = parse_decimals(filter_var(prepare_decimal($raw_closed_amount_check), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$open_amount_cash = parse_decimals($this->request->getPost('open_amount_cash'));
|
||||
$transfer_amount_cash = parse_decimals($this->request->getPost('transfer_amount_cash'));
|
||||
$closed_amount_cash = parse_decimals($this->request->getPost('closed_amount_cash'));
|
||||
$closed_amount_due = parse_decimals($this->request->getPost('closed_amount_due'));
|
||||
$closed_amount_card = parse_decimals($this->request->getPost('closed_amount_card'));
|
||||
$closed_amount_check = parse_decimals($this->request->getPost('closed_amount_check'));
|
||||
|
||||
$total = $this->_calculate_total($open_amount_cash, $transfer_amount_cash, $closed_amount_due, $closed_amount_cash, $closed_amount_card, $closed_amount_check); //TODO: hungarian notation
|
||||
|
||||
|
||||
@@ -360,16 +360,13 @@ class Config extends Secure_Controller
|
||||
*/
|
||||
public function postSaveGeneral(): void
|
||||
{
|
||||
$default_sales_discount = prepare_decimal($this->request->getPost('default_sales_discount'));
|
||||
$default_receivings_discount = prepare_decimal($this->request->getPost('default_receivings_discount'));
|
||||
|
||||
$batch_save_data = [
|
||||
'theme' => $this->request->getPost('theme'),
|
||||
'login_form' => $this->request->getPost('login_form'),
|
||||
'default_sales_discount_type' => $this->request->getPost('default_sales_discount_type') != null,
|
||||
'default_sales_discount' => filter_var($default_sales_discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'default_sales_discount' => parse_decimals($this->request->getPost('default_sales_discount')),
|
||||
'default_receivings_discount_type' => $this->request->getPost('default_receivings_discount_type') != null,
|
||||
'default_receivings_discount' => filter_var($default_receivings_discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'default_receivings_discount' => parse_decimals($this->request->getPost('default_receivings_discount')),
|
||||
'enforce_privacy' => $this->request->getPost('enforce_privacy') != null,
|
||||
'receiving_calculate_average_price' => $this->request->getPost('receiving_calculate_average_price') != null,
|
||||
'lines_per_page' => $this->request->getPost('lines_per_page', FILTER_SANITIZE_NUMBER_INT),
|
||||
@@ -772,8 +769,8 @@ class Config extends Secure_Controller
|
||||
*/
|
||||
public function postSaveTax(): void
|
||||
{
|
||||
$default_tax_1_rate = prepare_decimal($this->request->getPost('default_tax_1_rate'));
|
||||
$default_tax_2_rate = prepare_decimal($this->request->getPost('default_tax_2_rate'));
|
||||
$default_tax_1_rate = $this->request->getPost('default_tax_1_rate');
|
||||
$default_tax_2_rate = $this->request->getPost('default_tax_2_rate');
|
||||
|
||||
$batch_save_data = [
|
||||
'default_tax_1_rate' => parse_tax(filter_var($default_tax_1_rate, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
|
||||
@@ -286,14 +286,12 @@ class Customers extends Persons
|
||||
|
||||
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $this->request->getPost('date'));
|
||||
|
||||
$discount = prepare_decimal($this->request->getPost('discount'));
|
||||
|
||||
$customer_data = [
|
||||
'consent' => $this->request->getPost('consent') != null,
|
||||
'account_number' => $this->request->getPost('account_number') == '' ? null : $this->request->getPost('account_number'),
|
||||
'tax_id' => $this->request->getPost('tax_id'),
|
||||
'company_name' => $this->request->getPost('company_name') == '' ? null : $this->request->getPost('company_name'),
|
||||
'discount' => $this->request->getPost('discount') == '' ? 0.00 : filter_var($discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'discount' => $this->request->getPost('discount') == '' ? 0.00 : parse_decimals($this->request->getPost('discount')),
|
||||
'discount_type' => $this->request->getPost('discount_type') == null ? PERCENT : $this->request->getPost('discount_type', FILTER_SANITIZE_NUMBER_INT),
|
||||
'package_id' => $this->request->getPost('package_id') == '' ? null : $this->request->getPost('package_id'),
|
||||
'taxable' => $this->request->getPost('taxable') != null,
|
||||
|
||||
@@ -158,15 +158,13 @@ class Expenses extends Secure_Controller
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$date_formatter = date_create_from_format($config['dateformat'] . ' ' . $config['timeformat'], $newdate);
|
||||
$amount = prepare_decimal($this->request->getPost('amount'));
|
||||
$tax_amount = prepare_decimal($this->request->getPost('tax_amount'));
|
||||
|
||||
$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),
|
||||
'supplier_tax_code' => $this->request->getPost('supplier_tax_code', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
|
||||
'amount' => filter_var($amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'tax_amount' => filter_var($tax_amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'amount' => parse_decimals($this->request->getPost('amount')),
|
||||
'tax_amount' => parse_decimals($this->request->getPost('tax_amount')),
|
||||
'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),
|
||||
|
||||
@@ -120,17 +120,16 @@ class Giftcards extends Secure_Controller
|
||||
public function postSave(int $giftcard_id = NEW_ENTRY): void
|
||||
{
|
||||
$giftcard_number = $this->request->getPost('giftcard_number', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$giftcard_amount = prepare_decimal($this->request->getPost('giftcard_amount'));
|
||||
|
||||
if($giftcard_id == NEW_ENTRY && trim($giftcard_number) == '')
|
||||
{
|
||||
$giftcard_number = $this->giftcard->generate_unique_giftcard_name(filter_var($giftcard_amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$giftcard_number = $this->giftcard->generate_unique_giftcard_name($giftcard_number);
|
||||
}
|
||||
|
||||
$giftcard_data = [
|
||||
'record_time' => date('Y-m-d H:i:s'),
|
||||
'giftcard_number' => $giftcard_number,
|
||||
'value' => filter_var($giftcard_amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'value' => parse_decimals($this->request->getPost('giftcard_amount')),
|
||||
'person_id' => $this->request->getPost('person_id') == '' ? null : $this->request->getPost('person_id', FILTER_SANITIZE_NUMBER_INT)
|
||||
];
|
||||
|
||||
|
||||
@@ -169,13 +169,11 @@ class Item_kits extends Secure_Controller
|
||||
*/
|
||||
public function postSave(int $item_kit_id = NEW_ENTRY): void
|
||||
{
|
||||
$kit_discount = prepare_decimal($this->request->getPost('kit_discount'));
|
||||
|
||||
$item_kit_data = [
|
||||
'name' => $this->request->getPost('name'),
|
||||
'item_kit_number' => $this->request->getPost('item_kit_number'),
|
||||
'item_id' => $this->request->getPost('kit_item_id') ? null : intval($this->request->getPost('kit_item_id')),
|
||||
'kit_discount' => filter_var($kit_discount,FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION),
|
||||
'kit_discount' => parse_decimals($this->request->getPost('kit_discount')),
|
||||
'kit_discount_type' => $this->request->getPost('kit_discount_type') === null ? PERCENT : intval($this->request->getPost('kit_discount_type')),
|
||||
'price_option' => $this->request->getPost('price_option') === null ? PRICE_ALL : intval($this->request->getPost('price_option')),
|
||||
'print_option' => $this->request->getPost('print_option') === null ? PRINT_ALL : intval($this->request->getPost('print_option')),
|
||||
|
||||
@@ -195,7 +195,7 @@ class Items extends Secure_Controller
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->item->get_search_suggestions($search, ['search_custom' => false, 'is_deleted' => false], true);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
@@ -205,9 +205,9 @@ class Items extends Secure_Controller
|
||||
* @return void
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function suggest_low_sell(): void
|
||||
public function getSuggestLowSell(): void
|
||||
{
|
||||
$suggestions = $this->item->get_low_sell_suggestions($this->request->getPostGet('name'));
|
||||
$suggestions = $this->item->get_low_sell_suggestions($this->request->getPo1stGet('name'));
|
||||
|
||||
echo json_encode($suggestions);
|
||||
}
|
||||
@@ -631,9 +631,9 @@ class Items extends Secure_Controller
|
||||
$upload_data = $this->upload_image();
|
||||
$upload_success = empty($upload_data['error']);
|
||||
|
||||
$raw_receiving_quantity = prepare_decimal($this->request->getPost('receiving_quantity'));
|
||||
$raw_receiving_quantity = $this->request->getPost('receiving_quantity');
|
||||
|
||||
$receiving_quantity = parse_quantity(filter_var($raw_receiving_quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$receiving_quantity = parse_quantity($raw_receiving_quantity);
|
||||
$item_type = $this->request->getPost('item_type') === null ? ITEM : intval($this->request->getPost('item_type'));
|
||||
|
||||
if($receiving_quantity === 0.0 && $item_type !== ITEM_TEMP)
|
||||
@@ -643,10 +643,10 @@ class Items extends Secure_Controller
|
||||
|
||||
$default_pack_name = lang('Items.default_pack_name');
|
||||
|
||||
$cost_price = prepare_decimal($this->request->getPost('cost_price'));
|
||||
$unit_price = prepare_decimal($this->request->getPost('unit_price'));
|
||||
$reorder_level = prepare_decimal($this->request->getPost('reorder_level'));
|
||||
$qty_per_pack = prepare_decimal($this->request->getPost('qty_per_pack') ?? '');
|
||||
$cost_price = parse_decimals($this->request->getPost('cost_price'));
|
||||
$unit_price = parse_decimals($this->request->getPost('unit_price'));
|
||||
$reorder_level = parse_quantity($this->request->getPost('reorder_level'));
|
||||
$qty_per_pack = parse_quantity($this->request->getPost('qty_per_pack') ?? '');
|
||||
|
||||
//Save item data
|
||||
$item_data = [
|
||||
@@ -657,13 +657,13 @@ class Items extends Secure_Controller
|
||||
'stock_type' => $this->request->getPost('stock_type') === null ? HAS_STOCK : intval($this->request->getPost('stock_type')),
|
||||
'supplier_id' => empty($this->request->getPost('supplier_id')) ? null : intval($this->request->getPost('supplier_id')),
|
||||
'item_number' => empty($this->request->getPost('item_number')) ? null : $this->request->getPost('item_number'),
|
||||
'cost_price' => parse_decimals(filter_var($cost_price, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'unit_price' => parse_decimals(filter_var($unit_price, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'reorder_level' => parse_quantity(filter_var($reorder_level, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'cost_price' => $cost_price,
|
||||
'unit_price' => $unit_price,
|
||||
'reorder_level' => $reorder_level,
|
||||
'receiving_quantity' => $receiving_quantity,
|
||||
'allow_alt_description' => $this->request->getPost('allow_alt_description') != null,
|
||||
'is_serialized' => $this->request->getPost('is_serialized') != null,
|
||||
'qty_per_pack' => $this->request->getPost('qty_per_pack') == null ? 1 : parse_quantity(filter_var($qty_per_pack, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)),
|
||||
'qty_per_pack' => $this->request->getPost('qty_per_pack') == null ? 1 : parse_quantity($qty_per_pack),
|
||||
'pack_name' => $this->request->getPost('pack_name') == null ? $default_pack_name : $this->request->getPost('pack_name'),
|
||||
'low_sell_item_id' => $this->request->getPost('low_sell_item_id') === null ? $item_id : intval($this->request->getPost('low_sell_item_id')),
|
||||
'deleted' => $this->request->getPost('is_deleted') != null,
|
||||
@@ -688,9 +688,9 @@ class Items extends Secure_Controller
|
||||
$item_data['tax_category_id'] = empty($this->request->getPost('tax_category_id')) ? null : intval($this->request->getPost('tax_category_id'));
|
||||
}
|
||||
|
||||
$item_data['pic_filename'] = !empty($upload_data['orig_name']) && $upload_data['raw_name']
|
||||
? $upload_data['raw_name'] . '.' . $upload_data['file_ext']
|
||||
: null;
|
||||
if (!empty($upload_data['orig_name']) && $upload_data['raw_name']) {
|
||||
$item_data['pic_filename'] = $upload_data['raw_name'] . '.' . $upload_data['file_ext'];
|
||||
}
|
||||
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
|
||||
@@ -733,8 +733,7 @@ class Items extends Secure_Controller
|
||||
$stock_locations = $this->stock_location->get_undeleted_all()->getResultArray();
|
||||
foreach($stock_locations as $location)
|
||||
{
|
||||
$stock_quantity = prepare_decimal($this->request->getPost('quantity_' . $location['location_id']));
|
||||
$updated_quantity = parse_quantity(filter_var($stock_quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$updated_quantity = parse_quantity($this->request->getPost('quantity_' . $location['location_id']));
|
||||
|
||||
if($item_data['item_type'] == ITEM_TEMP)
|
||||
{
|
||||
@@ -887,14 +886,14 @@ class Items extends Secure_Controller
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$cur_item_info = $this->item->get_info($item_id);
|
||||
$location_id = $this->request->getPost('stock_location');
|
||||
$new_quantity = prepare_decimal($this->request->getPost('newquantity'));
|
||||
$new_quantity = $this->request->getPost('newquantity');
|
||||
$inv_data = [
|
||||
'trans_date' => date('Y-m-d H:i:s'),
|
||||
'trans_items' => $item_id,
|
||||
'trans_user' => $employee_id,
|
||||
'trans_location' => $location_id,
|
||||
'trans_comment' => $this->request->getPost('trans_comment'),
|
||||
'trans_inventory' => parse_quantity(filter_var($new_quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION))
|
||||
'trans_inventory' => parse_quantity($new_quantity)
|
||||
];
|
||||
|
||||
$this->inventory->insert($inv_data, false);
|
||||
@@ -1447,7 +1446,7 @@ class Items extends Secure_Controller
|
||||
$attributeId = $attributeValue;
|
||||
break;
|
||||
case DECIMAL:
|
||||
$attributeValue = prepare_decimal($attributeValue);
|
||||
$attributeValue = parse_decimals($attributeValue);
|
||||
//Fall through to save the attribute value
|
||||
default:
|
||||
$attributeId = $this->attribute->saveAttributeValue($attributeValue, $definitionId, $itemId, $attributeIds[$definitionId], $definitionType);
|
||||
|
||||
@@ -35,7 +35,7 @@ abstract class Persons extends Secure_Controller
|
||||
*/
|
||||
public function getSuggest(): void
|
||||
{
|
||||
$search = $this->request->getPost('term');
|
||||
$search = $this->request->getGet('term');
|
||||
$suggestions = $this->person->get_search_suggestions($search);
|
||||
|
||||
echo json_encode($suggestions);
|
||||
|
||||
@@ -206,24 +206,24 @@ class Receivings extends Secure_Controller
|
||||
$data = [];
|
||||
|
||||
$validation_rule = [
|
||||
'price' => 'trim|required|numeric',
|
||||
'quantity' => 'trim|required|numeric',
|
||||
'discount' => 'trim|required|numeric',
|
||||
'price' => 'trim|required|decimal_locale',
|
||||
'quantity' => 'trim|required|decimal_locale',
|
||||
'discount' => 'trim|permit_empty|decimal_locale',
|
||||
];
|
||||
|
||||
$raw_price = prepare_decimal($this->request->getPost('price'));
|
||||
$raw_quantity = prepare_decimal($this->request->getPost('quantity'));
|
||||
$raw_discount = prepare_decimal($this->request->getPost('discount'));
|
||||
$raw_receiving_quantity = prepare_decimal($this->request->getPost('receiving_quantity'));
|
||||
$price = parse_decimals($this->request->getPost('price'));
|
||||
$quantity = parse_quantity($this->request->getPost('quantity'));
|
||||
$discount = parse_decimals($this->request->getPost('discount'));
|
||||
$raw_receiving_quantity = parse_quantity($this->request->getPost('receiving_quantity'));
|
||||
|
||||
$description = $this->request->getPost('description', FILTER_SANITIZE_FULL_SPECIAL_CHARS); //TODO: Duplicated code
|
||||
$serialnumber = $this->request->getPost('serialnumber', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? '';
|
||||
$price = filter_var($raw_price, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$quantity = filter_var($raw_quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$price = filter_var($price, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$quantity = filter_var($quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$discount_type = $this->request->getPost('discount_type', FILTER_SANITIZE_NUMBER_INT);
|
||||
$discount = $discount_type
|
||||
? parse_quantity(filter_var($raw_discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION))
|
||||
: parse_decimals(filter_var($raw_discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
? parse_quantity(filter_var($this->request->getPost('discount'), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION))
|
||||
: parse_decimals(filter_var($this->request->getPost('discount'), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
|
||||
$receiving_quantity = filter_var($raw_receiving_quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
|
||||
@@ -266,6 +266,7 @@ class Receivings extends Secure_Controller
|
||||
$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;
|
||||
$balance_due = round($receiving_info['amount_due'] - $receiving_info['amount_tendered'] + $receiving_info['cash_refund'], totals_decimals(), PHP_ROUND_HALF_UP);
|
||||
|
||||
echo view('receivings/form', $data);
|
||||
}
|
||||
@@ -327,22 +328,26 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function postComplete(): void
|
||||
{
|
||||
$amount_tendered = prepare_decimal($this->request->getPost('amount_tendered'));
|
||||
$amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$data = [];
|
||||
|
||||
$data['cart'] = $this->receiving_lib->get_cart();
|
||||
$data['total'] = $this->receiving_lib->get_total();
|
||||
$data['transaction_time'] = to_datetime(time());
|
||||
$data['transaction_time'] = date('Y-m-d H:i:s'); // Fecha y hora actuales
|
||||
$data['mode'] = $this->receiving_lib->get_mode();
|
||||
$data['comment'] = $this->receiving_lib->get_comment();
|
||||
$data['reference'] = $this->receiving_lib->get_reference();
|
||||
$data['term_days'] = $this->receiving_lib->get_term_days();
|
||||
$data['payment_type'] = $this->request->getPost('payment_type', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$data['payments'] = $this->receiving_lib->get_payments(); // Obtener pagos del carrito
|
||||
$data['show_stock_locations'] = $this->stock_location->show_locations('receivings');
|
||||
$data['stock_location'] = $this->receiving_lib->get_stock_source();
|
||||
if($this->request->getPost('amount_tendered') != null)
|
||||
{
|
||||
|
||||
if ($this->request->getPost('amount_tendered') != null) {
|
||||
$data['amount_tendered'] = filter_var($amount_tendered, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$data['amount_change'] = to_currency($data['amount_tendered'] - $data['total']);
|
||||
$data['amount_change'] = $data['amount_tendered'] - $data['total'];
|
||||
} else {
|
||||
$data['amount_change'] = 0;
|
||||
}
|
||||
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
@@ -350,40 +355,62 @@ class Receivings extends Secure_Controller
|
||||
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name;
|
||||
|
||||
$supplier_id = $this->receiving_lib->get_supplier();
|
||||
if($supplier_id != -1)
|
||||
{
|
||||
if ($supplier_id != -1) {
|
||||
$supplier_info = $this->supplier->get_info($supplier_id);
|
||||
$data['supplier'] = $supplier_info->company_name; //TODO: duplicated code
|
||||
$data['supplier'] = $supplier_info->company_name;
|
||||
$data['first_name'] = $supplier_info->first_name;
|
||||
$data['last_name'] = $supplier_info->last_name;
|
||||
$data['supplier_email'] = $supplier_info->email;
|
||||
$data['supplier_address'] = $supplier_info->address_1;
|
||||
if(!empty($supplier_info->zip) or !empty($supplier_info->city))
|
||||
{
|
||||
|
||||
if (!empty($supplier_info->zip) || !empty($supplier_info->city)) {
|
||||
$data['supplier_location'] = $supplier_info->zip . ' ' . $supplier_info->city;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$data['supplier_location'] = '';
|
||||
}
|
||||
}
|
||||
|
||||
//SAVE receiving to database
|
||||
$data['receiving_id'] = 'RECV ' . $this->receiving->save_value($data['cart'], $supplier_id, $employee_id, $data['comment'], $data['reference'], $data['payment_type'], $data['stock_location']);
|
||||
// Guardar el registro de compra en la base de datos
|
||||
$receiving_id = $this->receiving->save_value(
|
||||
$data['cart'],
|
||||
$supplier_id,
|
||||
$employee_id,
|
||||
$data['comment'],
|
||||
$data['reference'],
|
||||
$data['term_days'],
|
||||
$data['payment_type']
|
||||
);
|
||||
|
||||
if($data['receiving_id'] == 'RECV -1')
|
||||
{
|
||||
if ($receiving_id == -1) {
|
||||
$data['error_message'] = lang('Receivings.transaction_failed');
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['receiving_id']);
|
||||
} else {
|
||||
$data['receiving_id'] = $receiving_id;
|
||||
|
||||
// Calcular el cambio (cash_refund)
|
||||
$total_payments = array_sum(array_column($data['payments'], 'payment_amount'));
|
||||
$cash_refund = max(0, $total_payments - $data['total']);
|
||||
|
||||
// Guardar los pagos en la base de datos
|
||||
foreach ($data['payments'] as $payment) {
|
||||
$this->receiving->save_payment([
|
||||
'receiving_id' => $receiving_id, // Utiliza el ID generado
|
||||
'payment_type' => $payment['payment_type'],
|
||||
'payment_amount' => $payment['payment_amount'],
|
||||
'cash_refund' => ($payment['payment_type'] === lang('Sales.cash')) ? $cash_refund : 0,
|
||||
'employee_id' => $employee_id,
|
||||
'payment_time' => $data['transaction_time'], // Fecha y hora actuales
|
||||
]);
|
||||
}
|
||||
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($receiving_id);
|
||||
}
|
||||
|
||||
$data['print_after_sale'] = $this->receiving_lib->is_print_after_sale();
|
||||
|
||||
echo view("receivings/receipt",$data);
|
||||
echo view("receivings/receipt", $data);
|
||||
|
||||
// Limpiar pagos y otros datos
|
||||
$this->receiving_lib->clear_payments(); // Limpia los pagos
|
||||
$this->receiving_lib->clear_all();
|
||||
}
|
||||
|
||||
@@ -395,23 +422,58 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function postRequisitionComplete(): void
|
||||
{
|
||||
if($this->receiving_lib->get_stock_source() != $this->receiving_lib->get_stock_destination())
|
||||
{
|
||||
foreach($this->receiving_lib->get_cart() as $item)
|
||||
{
|
||||
$this->receiving_lib->delete_item($item['line']);
|
||||
$this->receiving_lib->add_item($item['item_id'], $item['quantity'], $this->receiving_lib->get_stock_destination(), $item['discount_type']);
|
||||
$this->receiving_lib->add_item($item['item_id'], -$item['quantity'], $this->receiving_lib->get_stock_source(), $item['discount_type']);
|
||||
}
|
||||
$data = [];
|
||||
|
||||
$this->complete();
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error'] = lang('Receivings.error_requisition');
|
||||
// Check if stock locations are different
|
||||
if ($this->receiving_lib->get_stock_source() != $this->receiving_lib->get_stock_destination()) {
|
||||
// Process items in the cart
|
||||
foreach ($this->receiving_lib->get_cart() as $item) {
|
||||
$this->receiving_lib->delete_item($item['line']);
|
||||
$this->receiving_lib->add_item($item['item_id'], $item['quantity'], $this->receiving_lib->get_stock_destination(), $item['discount_type']);
|
||||
$this->receiving_lib->add_item($item['item_id'], -$item['quantity'], $this->receiving_lib->get_stock_source(), $item['discount_type']);
|
||||
}
|
||||
|
||||
$this->_reload($data); //TODO: Hungarian notation
|
||||
}
|
||||
// Prepare data to complete the requisition
|
||||
$data['cart'] = $this->receiving_lib->get_cart();
|
||||
$data['total'] = $this->receiving_lib->get_total();
|
||||
$data['transaction_time'] = to_datetime(time());
|
||||
$data['mode'] = $this->receiving_lib->get_mode();
|
||||
$data['comment'] = $this->receiving_lib->get_comment();
|
||||
$data['term_days'] = $this->receiving_lib->get_term_days();
|
||||
$data['reference'] = $this->receiving_lib->get_reference();
|
||||
$data['show_stock_locations'] = $this->stock_location->show_locations('receivings');
|
||||
$data['stock_location_source'] = $this->receiving_lib->get_stock_source();
|
||||
$data['stock_location_destination'] = $this->receiving_lib->get_stock_destination();
|
||||
|
||||
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
|
||||
$employee_info = $this->employee->get_info($employee_id);
|
||||
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name;
|
||||
|
||||
// Save the requisition in the database
|
||||
$data['receiving_id'] = 'REQ ' . $this->receiving->save_requisition(
|
||||
$data['cart'],
|
||||
$employee_id,
|
||||
$data['comment'],
|
||||
$data['reference'],
|
||||
$data['stock_location_source'],
|
||||
$data['stock_location_destination']
|
||||
);
|
||||
|
||||
if ($data['receiving_id'] == 'REQ -1') {
|
||||
$data['error_message'] = lang('Receivings.transaction_failed');
|
||||
} else {
|
||||
$data['barcode'] = $this->barcode_lib->generate_receipt_barcode($data['receiving_id']);
|
||||
}
|
||||
|
||||
$data['print_after_sale'] = $this->receiving_lib->is_print_after_sale();
|
||||
|
||||
echo view("receivings/receipt", $data);
|
||||
|
||||
$this->receiving_lib->clear_all();
|
||||
} else {
|
||||
$data['error'] = lang('Receivings.error_requisition');
|
||||
$this->_reload($data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -467,7 +529,7 @@ class Receivings extends Secure_Controller
|
||||
* @param array $data
|
||||
* @return void
|
||||
*/
|
||||
private function _reload(array $data = []): void //TODO: Hungarian notation
|
||||
private function _reload(array $data = []): void
|
||||
{
|
||||
$data['cart'] = $this->receiving_lib->get_cart();
|
||||
$data['modes'] = ['receive' => lang('Receivings.receiving'), 'return' => lang('Receivings.return')];
|
||||
@@ -484,15 +546,26 @@ class Receivings extends Secure_Controller
|
||||
$data['total'] = $this->receiving_lib->get_total();
|
||||
$data['items_module_allowed'] = $this->employee->has_grant('items', $this->employee->get_logged_in_employee_info()->person_id);
|
||||
$data['comment'] = $this->receiving_lib->get_comment();
|
||||
$data['term_days'] = $this->receiving_lib->get_term_days();
|
||||
$data['reference'] = $this->receiving_lib->get_reference();
|
||||
$data['payment_options'] = $this->receiving->get_payment_options();
|
||||
$data['selected_payment_type'] = $this->receiving_lib->get_payment_type();
|
||||
$data['amount_due'] = $this->receiving_lib->get_total() - $this->receiving_lib->get_payments_total();
|
||||
|
||||
// Agregar pagos al arreglo de datos
|
||||
$data['payments'] = $this->receiving_lib->get_payments();
|
||||
|
||||
// Inicializar tabindex
|
||||
$data['tabindex'] = 0;
|
||||
|
||||
$supplier_id = $this->receiving_lib->get_supplier();
|
||||
|
||||
if($supplier_id != -1) //TODO: Duplicated Code... replace -1 with a constant
|
||||
if($supplier_id != -1)
|
||||
{
|
||||
$supplier_info = $this->supplier->get_info($supplier_id);
|
||||
$data['supplier'] = $supplier_info->company_name;
|
||||
$data['avatar'] = $supplier_info->avatar;
|
||||
$data['gender'] = $supplier_info->gender;
|
||||
$data['first_name'] = $supplier_info->first_name;
|
||||
$data['last_name'] = $supplier_info->last_name;
|
||||
$data['supplier_email'] = $supplier_info->email;
|
||||
@@ -515,9 +588,9 @@ class Receivings extends Secure_Controller
|
||||
/**
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function save(int $receiving_id = -1): void //TODO: Replace -1 with a constant
|
||||
public function save(int $receiving_id = -1): void
|
||||
{
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS); //TODO: newdate does not follow naming conventions
|
||||
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $newdate);
|
||||
$receiving_time = $date_formatter->format('Y-m-d H:i:s');
|
||||
@@ -557,8 +630,77 @@ class Receivings extends Secure_Controller
|
||||
*/
|
||||
public function postCancelReceiving(): void
|
||||
{
|
||||
// Limpiar los pagos
|
||||
$this->receiving_lib->clear_payments();
|
||||
|
||||
// Limpiar todos los datos relacionados con la transacción
|
||||
$this->receiving_lib->clear_all();
|
||||
|
||||
$this->_reload(); //TODO: Hungarian Notation
|
||||
// Recargar la vista
|
||||
$this->_reload();
|
||||
}
|
||||
|
||||
public function postAddPayment(): void
|
||||
{
|
||||
$data = [];
|
||||
$payment_type = $this->request->getPost('payment_type', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
// Validar el tipo de pago
|
||||
if ($payment_type !== lang('Sales.giftcard')) {
|
||||
$rules = ['amount_tendered' => 'trim|required|decimal_locale'];
|
||||
$messages = ['amount_tendered' => lang('Sales.must_enter_numeric')];
|
||||
} else {
|
||||
$rules = ['amount_tendered' => 'trim|required'];
|
||||
$messages = ['amount_tendered' => lang('Sales.must_enter_numeric_giftcard')];
|
||||
}
|
||||
|
||||
if (!$this->validate($rules, $messages)) {
|
||||
$data['error'] = $payment_type === lang('Sales.giftcard')
|
||||
? lang('Sales.must_enter_numeric_giftcard')
|
||||
: lang('Sales.must_enter_numeric');
|
||||
} else {
|
||||
if ($payment_type === lang('Sales.giftcard')) {
|
||||
$amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$giftcard_num = filter_var($amount_tendered, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_FLAG_ALLOW_FRACTION);
|
||||
|
||||
$payments = $this->receiving_lib->get_payments();
|
||||
$payment_type = $payment_type . ':' . $giftcard_num;
|
||||
$current_payments_with_giftcard = isset($payments[$payment_type]) ? $payments[$payment_type]['payment_amount'] : 0;
|
||||
|
||||
$giftcard = model(Giftcard::class);
|
||||
$cur_giftcard_value = $giftcard->get_giftcard_value($giftcard_num);
|
||||
|
||||
if (($cur_giftcard_value - $current_payments_with_giftcard) <= 0) {
|
||||
$data['error'] = lang('Giftcards.remaining_balance', [$giftcard_num, $cur_giftcard_value]);
|
||||
} else {
|
||||
$amount_tendered = min($this->receiving_lib->get_amount_due(), $cur_giftcard_value);
|
||||
$this->receiving_lib->add_payment($payment_type, $amount_tendered);
|
||||
}
|
||||
} elseif ($payment_type === lang('Sales.cash')) {
|
||||
$raw_amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$amount_tendered = filter_var($raw_amount_tendered, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$this->receiving_lib->add_payment($payment_type, $amount_tendered);
|
||||
} else {
|
||||
$raw_amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$amount_tendered = filter_var($raw_amount_tendered, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$this->receiving_lib->add_payment($payment_type, $amount_tendered);
|
||||
}
|
||||
}
|
||||
|
||||
$this->_reload($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiple Payments. Used in app/Views/sales/register.php
|
||||
*
|
||||
* @param string $payment_id
|
||||
* @return void
|
||||
* @noinspection PhpUnused
|
||||
*/
|
||||
public function getDeletePayment(string $payment_id): void
|
||||
{
|
||||
$this->receiving_lib->delete_payment($payment_id);
|
||||
|
||||
$this->_reload();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -371,8 +371,8 @@ class Sales extends Secure_Controller
|
||||
*/
|
||||
public function postSetPriceWorkOrders(): void
|
||||
{
|
||||
$price_work_orders = prepare_decimal($this->request->getPost('price_work_orders'));
|
||||
$this->sale_lib->set_price_work_orders(filter_var($price_work_orders, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$price_work_orders = parse_decimals($this->request->getPost('price_work_orders'));
|
||||
$this->sale_lib->set_price_work_orders($price_work_orders);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -420,8 +420,8 @@ class Sales extends Secure_Controller
|
||||
if($payment_type === lang('Sales.giftcard'))
|
||||
{
|
||||
//In the case of giftcard payment the register input amount_tendered becomes the giftcard number
|
||||
$amount_tendered = prepare_decimal($this->request->getPost('amount_tendered'));
|
||||
$giftcard_num = filter_var($amount_tendered, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$giftcard_num = $amount_tendered;
|
||||
|
||||
$payments = $this->sale_lib->get_payments();
|
||||
$payment_type = $payment_type . ':' . $giftcard_num;
|
||||
@@ -485,8 +485,7 @@ class Sales extends Secure_Controller
|
||||
{
|
||||
$amount_due = $this->sale_lib->get_total();
|
||||
$sales_total = $this->sale_lib->get_total(false);
|
||||
$raw_amount_tendered = prepare_decimal($this->request->getPost('amount_tendered'));
|
||||
$amount_tendered = filter_var($raw_amount_tendered, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$this->sale_lib->add_payment($payment_type, $amount_tendered);
|
||||
$cash_adjustment_amount = $amount_due - $sales_total;
|
||||
if($cash_adjustment_amount <> 0)
|
||||
@@ -497,8 +496,7 @@ class Sales extends Secure_Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
$raw_amount_tendered = prepare_decimal($this->request->getPost('amount_tendered'));
|
||||
$amount_tendered = filter_var($raw_amount_tendered, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$amount_tendered = parse_decimals($this->request->getPost('amount_tendered'));
|
||||
$this->sale_lib->add_payment($payment_type, $amount_tendered);
|
||||
}
|
||||
}
|
||||
@@ -640,23 +638,18 @@ class Sales extends Secure_Controller
|
||||
|
||||
if($this->validate($rules))
|
||||
{
|
||||
$raw_price = prepare_decimal($this->request->getPost('price'));
|
||||
$raw_quantity = prepare_decimal($this->request->getPost('quantity'));
|
||||
$raw_discount = prepare_decimal($this->request->getPost('discount'));
|
||||
$raw_discounted_total = prepare_decimal($this->request->getPost('discounted_total') ?? '');
|
||||
|
||||
$description = $this->request->getPost('description', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$serialnumber = $this->request->getPost('serialnumber', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$price = filter_var($raw_price, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$quantity = filter_var($raw_quantity, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$price = parse_decimals($this->request->getPost('price'));
|
||||
$quantity = parse_decimals($this->request->getPost('quantity'));
|
||||
$discount_type = $this->request->getPost('discount_type', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$discount = $discount_type
|
||||
? parse_quantity(filter_var($raw_discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION))
|
||||
: parse_decimals(filter_var($raw_discount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
? parse_quantity($this->request->getPost('discount'))
|
||||
: parse_decimals($this->request->getPost('discount'));
|
||||
|
||||
$item_location = $this->request->getPost('location', FILTER_SANITIZE_NUMBER_INT);
|
||||
$discounted_total = $this->request->getPost('discounted_total') != ''
|
||||
? filter_var($raw_discounted_total, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)
|
||||
? parse_decimals($this->request->getPost('discounted_total') ?? '')
|
||||
: null;
|
||||
|
||||
|
||||
@@ -1553,14 +1546,11 @@ class Sales extends Secure_Controller
|
||||
$number_of_payments = $this->request->getPost('number_of_payments', FILTER_SANITIZE_NUMBER_INT);
|
||||
for($i = 0; $i < $number_of_payments; ++$i)
|
||||
{
|
||||
$raw_payment_amount = prepare_decimal($this->request->getPost("payment_amount_$i"));
|
||||
$raw_refund_amount = prepare_decimal($this->request->getPost("refund_amount_$i"));
|
||||
|
||||
$payment_id = $this->request->getPost("payment_id_$i", FILTER_SANITIZE_NUMBER_INT);
|
||||
$payment_type = $this->request->getPost("payment_type_$i", FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$payment_amount = filter_var($raw_payment_amount , FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$payment_amount = parse_decimals($this->request->getPost("payment_amount_$i"));
|
||||
$refund_type = $this->request->getPost("refund_type_$i", FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$cash_refund = filter_var($raw_refund_amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$cash_refund = parse_decimals($this->request->getPost("refund_amount_$i"));
|
||||
|
||||
$cash_adjustment = $payment_type == lang('Sales.cash_adjustment') ? CASH_ADJUSTMENT_TRUE : CASH_ADJUSTMENT_FALSE;
|
||||
|
||||
@@ -1594,7 +1584,7 @@ class Sales extends Secure_Controller
|
||||
|
||||
if($payment_type != PAYMENT_TYPE_UNASSIGNED && !empty($payment_amount_new))
|
||||
{
|
||||
$payment_amount = filter_var(prepare_decimal($payment_amount_new), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
|
||||
$payment_amount = parse_decimals($payment_amount_new);
|
||||
$cash_refund = 0;
|
||||
if($payment_type == lang('Sales.cash_adjustment'))
|
||||
{
|
||||
|
||||
@@ -94,7 +94,7 @@ class Secure_Controller extends BaseController
|
||||
*/
|
||||
public function getCheckNumeric(): void
|
||||
{
|
||||
foreach($this->request->getGet(null, FILTER_SANITIZE_FULL_SPECIAL_CHARS) as $value)
|
||||
foreach($this->request->getGet() as $value)
|
||||
{
|
||||
if (parse_decimals($value) === false)
|
||||
{
|
||||
|
||||
@@ -402,10 +402,8 @@ class Taxes extends Secure_Controller
|
||||
*/
|
||||
public function postSave(int $tax_rate_id = NEW_ENTRY): void
|
||||
{
|
||||
$raw_tax_rate = prepare_decimal($this->request->getPost('tax_rate'));
|
||||
|
||||
$tax_category_id = $this->request->getPost('rate_tax_category_id', FILTER_SANITIZE_NUMBER_INT);
|
||||
$tax_rate = parse_tax(filter_var($raw_tax_rate, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
|
||||
$tax_rate = parse_tax($this->request->getPost('tax_rate'));
|
||||
|
||||
if ($tax_rate == 0) //TODO: Replace 0 with constant?
|
||||
{
|
||||
@@ -414,7 +412,7 @@ class Taxes extends Secure_Controller
|
||||
|
||||
$tax_rate_data = [
|
||||
'rate_tax_code_id' => $this->request->getPost('rate_tax_code_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
'rate_tax_category_id' => $this->request->getPost('rate_tax_category_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
'rate_tax_category_id' => $tax_category_id,
|
||||
'rate_jurisdiction_id' => $this->request->getPost('rate_jurisdiction_id', FILTER_SANITIZE_NUMBER_INT),
|
||||
'tax_rate' => $tax_rate,
|
||||
'tax_rounding_code' => $this->request->getPost('tax_rounding_code', FILTER_SANITIZE_NUMBER_INT)
|
||||
|
||||
@@ -6,9 +6,6 @@ use CodeIgniter\Database\Migration;
|
||||
use Config\Database;
|
||||
|
||||
class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
|
||||
private array $constraints;
|
||||
|
||||
/**
|
||||
* Perform a migration step.
|
||||
*/
|
||||
@@ -63,15 +60,10 @@ class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
|
||||
if ( ! $result->getRowArray())
|
||||
{
|
||||
$constraintsDropped = $this->delete_index($table, $index);
|
||||
|
||||
$this->delete_index($table, $index);
|
||||
$forge = Database::forge();
|
||||
$forge->addPrimaryKey($table, '');
|
||||
|
||||
if($constraintsDropped)
|
||||
{
|
||||
$this->recreateConstraints($table, $index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,81 +74,13 @@ class Migration_fix_keys_for_db_upgrade extends Migration {
|
||||
return $row_array && $row_array['COUNT(*)'] > 0;
|
||||
}
|
||||
|
||||
private function delete_index(string $table, string $index): bool
|
||||
private function delete_index(string $table, string $index): void
|
||||
{
|
||||
$constraintsDropped = false;
|
||||
|
||||
if ($this->index_exists($table, $index))
|
||||
{
|
||||
$constraintsDropped = $this->dropConstraints($table, $index);
|
||||
$forge = Database::forge();
|
||||
$forge->dropKey($table, $index, FALSE);
|
||||
}
|
||||
|
||||
return $constraintsDropped;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks to see if a foreign key constraint exists and drops it if it does.
|
||||
* @param string $table The table name to check for the constraint
|
||||
* @param string $index The index name to check for the constraint
|
||||
* @return void
|
||||
*/
|
||||
private function dropConstraints(string $table, string $index): bool
|
||||
{
|
||||
$sql = "SELECT
|
||||
kcu.CONSTRAINT_NAME,
|
||||
kcu.COLUMN_NAME,
|
||||
kcu.TABLE_NAME,
|
||||
kcu.REFERENCED_COLUMN_NAME,
|
||||
kcu.REFERENCED_TABLE_NAME,
|
||||
rc.UPDATE_RULE,
|
||||
rc.DELETE_RULE
|
||||
FROM information_schema.KEY_COLUMN_USAGE kcu
|
||||
JOIN information_schema.REFERENTIAL_CONSTRAINTS rc
|
||||
ON kcu.CONSTRAINT_NAME = rc.CONSTRAINT_NAME
|
||||
WHERE kcu.TABLE_SCHEMA = DATABASE()
|
||||
AND (kcu.REFERENCED_TABLE_NAME = '" . $this->db->getPrefix() . "$table'
|
||||
AND kcu.REFERENCED_COLUMN_NAME = '$index'
|
||||
OR kcu.TABLE_NAME = '" . $this->db->getPrefix() . "$table'
|
||||
AND kcu.COLUMN_NAME = '$index')
|
||||
";
|
||||
$query = $this->db->query($sql);
|
||||
$this->constraints = $query->getResult();
|
||||
|
||||
$constraintsDropped = false;
|
||||
foreach($this->constraints as $constraint)
|
||||
{
|
||||
$constraintName = $constraint->CONSTRAINT_NAME;
|
||||
$referencingTable = str_replace($this->db->getPrefix(), '', $constraint->TABLE_NAME);
|
||||
|
||||
$forge = Database::forge();
|
||||
if($forge->dropForeignKey($referencingTable, $constraintName))
|
||||
{
|
||||
$constraintsDropped = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $constraintsDropped;
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-creates the missing foreign key constraint which needed to be dropped in order to add the Primary Key
|
||||
* @return void
|
||||
*/
|
||||
private function recreateConstraints(): void
|
||||
{
|
||||
$forge = Database::forge();
|
||||
foreach($this->constraints as $constraint)
|
||||
{
|
||||
$index = $constraint->COLUMN_NAME;
|
||||
$table = str_replace($this->db->getPrefix(), '', $constraint->TABLE_NAME);
|
||||
$referencedTable = $constraint->REFERENCED_TABLE_NAME;
|
||||
$constraintName = $constraint->CONSTRAINT_NAME;
|
||||
$onUpdate = $constraint->UPDATE_RULE;
|
||||
$onDelete = $constraint->DELETE_RULE;
|
||||
|
||||
$forge->addForeignKey($index, $referencedTable, $index, $onUpdate, $onDelete, $constraintName);
|
||||
$forge->processIndexes($table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -485,17 +485,6 @@ function parse_decimals(string $number, int $decimals = null): mixed
|
||||
return $number;
|
||||
}
|
||||
|
||||
$locale_safe_number = prepare_decimal($number);
|
||||
|
||||
if ($locale_safe_number > MAX_PRECISION)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if($locale_safe_number > 1.e14)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$config = config(OSPOS::class)->settings;
|
||||
|
||||
@@ -503,11 +492,10 @@ function parse_decimals(string $number, int $decimals = null): mixed
|
||||
|
||||
if(!$decimals)
|
||||
{
|
||||
$decimals = $config['currency_decimals'];
|
||||
$decimals = intVal($config['currency_decimals']);
|
||||
$fmt->setAttribute(NumberFormatter::FRACTION_DIGITS, $decimals);
|
||||
}
|
||||
|
||||
$fmt->setAttribute(NumberFormatter::FRACTION_DIGITS, $decimals);
|
||||
|
||||
if(empty($config['thousands_separator']))
|
||||
{
|
||||
$fmt->setTextAttribute(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, '');
|
||||
@@ -515,7 +503,18 @@ function parse_decimals(string $number, int $decimals = null): mixed
|
||||
|
||||
try
|
||||
{
|
||||
return $fmt->parse($number);
|
||||
$locale_safe_number = $fmt->parse($number);
|
||||
|
||||
if (
|
||||
$locale_safe_number === false
|
||||
|| $locale_safe_number > MAX_PRECISION
|
||||
|| $locale_safe_number > 1.e14
|
||||
)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return (float) $locale_safe_number;
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
@@ -704,23 +703,3 @@ function decode_array(array $data): array
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the current locale uses a comma for decimal separator and reformats the decimal to use a period.
|
||||
*
|
||||
* @param string $decimal The decimal to reformat.
|
||||
* @return string The reformatted decimal.
|
||||
*/
|
||||
function prepare_decimal(string $decimal): string
|
||||
{
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$fmt = new NumberFormatter($config['number_locale'], NumberFormatter::DECIMAL);
|
||||
$decimal_separator = $fmt->getSymbol(NumberFormatter::DECIMAL_SEPARATOR_SYMBOL);
|
||||
|
||||
if($decimal_separator === ',' && str_contains($decimal, ','))
|
||||
{
|
||||
$decimal = str_replace('.', '', $decimal); //Remove thousands separator
|
||||
$decimal = str_replace(',', '.', $decimal); //Replace decimal separator
|
||||
}
|
||||
|
||||
return $decimal;
|
||||
}
|
||||
|
||||
@@ -84,10 +84,10 @@ function get_sales_manage_table_headers(): string
|
||||
if($config['invoice_enable'])
|
||||
{
|
||||
$headers[] = ['invoice_number' => lang('Sales.invoice_number')];
|
||||
$headers[] = ['invoice' => ' ', 'sortable' => false, 'escape' => false];
|
||||
$headers[] = ['invoice' => '', 'sortable' => false, 'escape' => false];
|
||||
}
|
||||
|
||||
$headers[] = ['receipt' => ' ', 'sortable' => false, 'escape' => false];
|
||||
$headers[] = ['receipt' => '', 'sortable' => false, 'escape' => false];
|
||||
|
||||
return transform_headers($headers);
|
||||
}
|
||||
@@ -116,7 +116,7 @@ function get_sale_data_row(object $sale): array
|
||||
{
|
||||
$row['invoice_number'] = $sale->invoice_number;
|
||||
$row['invoice'] = empty($sale->invoice_number)
|
||||
? ''
|
||||
? '-'
|
||||
: anchor(
|
||||
"$controller/invoice/$sale->sale_id",
|
||||
'<span class="glyphicon glyphicon-list-alt"></span>',
|
||||
|
||||
@@ -1,148 +1,149 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"all" => "hamısı",
|
||||
"authority" => "Səlahiyyət",
|
||||
"canceled" => "Ləğv Edilmiş",
|
||||
"categories" => "Kateqoriyalar",
|
||||
"categories_summary_report" => "komentariyalar",
|
||||
"category" => "Kategoriya",
|
||||
"code_canceled" => "CNL",
|
||||
"code_invoice" => "INV",
|
||||
"code_pos" => "POS",
|
||||
"code_quote" => "Q",
|
||||
"code_return" => "RET",
|
||||
"code_type" => "Növ",
|
||||
"code_work_order" => "W/O",
|
||||
"comments" => "bütün qiymət",
|
||||
"commission" => "",
|
||||
"complete" => "Tamamlanmış Satış və Geri Qaytarılanlar",
|
||||
"completed_sales" => "Tamamlanmış Satışlar",
|
||||
"confirm_delete" => "Seçdiyiniz giriş (lər) silmək istədiyinizə əminsinizmi?",
|
||||
"confirm_restore" => "Seçilmiş giriş (lər) bərpa etmək istədiyinizə əminsinizmi?",
|
||||
"cost" => "hesab",
|
||||
"cost_price" => "müştəri",
|
||||
"count" => "müştərilər",
|
||||
"customer" => "müştərilərin hesabatı",
|
||||
"customers" => "Müştərilər",
|
||||
"customers_summary_report" => "gün",
|
||||
"date" => "təsvir",
|
||||
"date_range" => "detallı göndərilən hesabatlar",
|
||||
"description" => "detallı hesabatlar",
|
||||
"detailed_receivings_report" => "Ətraflı satınalma hesabatı",
|
||||
"detailed_receivings_report_input" => "",
|
||||
"detailed_reports" => "etraflı məlumat",
|
||||
"detailed_requisition_report" => "endirimler",
|
||||
"detailed_sales_report" => "Ətraflı satış hesabatı",
|
||||
"discount" => "endirimlər",
|
||||
"discount_fixed" => "Sabit endirim",
|
||||
"discount_percent" => "endirim hesabları",
|
||||
"discount_type" => "Endirim növü",
|
||||
"discounts" => "Endirimlər",
|
||||
"discounts_summary_report" => "əməkdaş",
|
||||
"earned" => "əməkdaş",
|
||||
"employee" => "əməkdaşın hesabatı",
|
||||
"employees" => "İşçilər",
|
||||
"employees_summary_report" => "İşçilərin Xülasəsi Hesabatı",
|
||||
"expenses" => "Xərclər",
|
||||
"expenses_amount" => "Məbləğ",
|
||||
"expenses_categories" => "Xərclər",
|
||||
"expenses_categories_summary_report" => "Xərc kateqoriyasında Son Hesabat",
|
||||
"expenses_category" => "Kategoriya",
|
||||
"expenses_payment_amount" => "",
|
||||
"expenses_tax_amount" => "Vergi",
|
||||
"expenses_total_amount" => "Ümumi Məbləğ",
|
||||
"expenses_total_tax_amount" => "Ümumi Vergi",
|
||||
"graphical_reports" => "Qrafik Hesabatlar",
|
||||
"inventory" => "İnvertizasiya",
|
||||
"inventory_low" => "inventor hesabatları",
|
||||
"inventory_low_report" => "mal adı",
|
||||
"inventory_reports" => "malın nomrəsi",
|
||||
"inventory_summary" => "mallar",
|
||||
"inventory_summary_report" => "alınan mallar",
|
||||
"item" => "gondərilən mallar",
|
||||
"item_count" => "mal hesabatı",
|
||||
"item_name" => "aşağı hesabatlar",
|
||||
"item_number" => "aşağı inventor hesabat",
|
||||
"items" => "Mallar",
|
||||
"items_purchased" => "ad",
|
||||
"items_received" => "Qəbul Olunan Mallar",
|
||||
"items_summary_report" => "ödəniş tipi",
|
||||
"jurisdiction" => "Yurisdiksiya",
|
||||
"low_inventory" => "ödənişlər",
|
||||
"low_inventory_report" => "inventor hesabatı",
|
||||
"low_sell_quantity" => "Satış miqdarı",
|
||||
"more_than_zero" => "gəlir",
|
||||
"name" => "Qty On Hand",
|
||||
"no_reports_to_display" => "Göstərmək üçün məhsul yoxdur.",
|
||||
"payment_type" => "Ödəmə Növü",
|
||||
"payments" => "kim tərəfindən",
|
||||
"payments_summary_report" => "Ödəmələr Yekun Hesabatı",
|
||||
"profit" => "Qazanc",
|
||||
"quantity" => "qəbul olunanlar",
|
||||
"quantity_purchased" => "aşağı səviyyə",
|
||||
"quotes" => "hesabat",
|
||||
"received_by" => "çıxış hesabatı",
|
||||
"receiving_id" => "Hesabatlar",
|
||||
"receiving_type" => "Qəbul Növü",
|
||||
"receivings" => "Qəbul olunanlar",
|
||||
"reorder_level" => "Səviyyəni Yenidən Düzəlt",
|
||||
"report" => "Hesabat",
|
||||
"report_input" => "Hesabatı daxil edin",
|
||||
"reports" => "Hesabatlar",
|
||||
"requisition" => "",
|
||||
"requisition_by" => "",
|
||||
"requisition_id" => "",
|
||||
"requisition_item" => "geri qaytarılanlar",
|
||||
"requisition_item_quantity" => "gəlir",
|
||||
"requisition_related_item" => "ID satışı",
|
||||
"requisition_related_item_total_quantity" => "endirim tipi",
|
||||
"requisition_related_item_unit_quantity" => "satışlar",
|
||||
"requisitions" => "Satış qiyməti",
|
||||
"returns" => "endirim hesabatları",
|
||||
"revenue" => "Gəlir",
|
||||
"sale_id" => "satılıb kim tərəfindən",
|
||||
"sale_type" => "satılıb kimə",
|
||||
"sales" => "Əməliyyatlar",
|
||||
"sales_amount" => "Əməliyyatların Məbləği",
|
||||
"sales_summary_report" => "toplam",
|
||||
"sales_taxes" => "Satışdan Vergi",
|
||||
"sales_taxes_summary_report" => "Satışdan vergilərə dair yekun hesabat",
|
||||
"serial_number" => "hesabatlar",
|
||||
"service_charge" => "",
|
||||
"sold_by" => "kim tərəfindən qoyulub",
|
||||
"sold_items" => "",
|
||||
"sold_to" => "təchizatçı",
|
||||
"stock_location" => "təchizatçılar",
|
||||
"sub_total_value" => "təchizatci hesabatı",
|
||||
"subtotal" => "vergi",
|
||||
"summary_reports" => "vergi faizi",
|
||||
"supplied_by" => "vergilər",
|
||||
"supplier" => "vergi hesabatı",
|
||||
"suppliers" => "toplam",
|
||||
"suppliers_summary_report" => "Təchizatçıların Yekun Hesabatı",
|
||||
"tax" => "tip",
|
||||
"tax_category" => "Vergi Bolməsi",
|
||||
"tax_name" => "",
|
||||
"tax_percent" => "Retail Price",
|
||||
"tax_rate" => "Vergi dərəcəsi",
|
||||
"taxes" => "Vergilər",
|
||||
"taxes_summary_report" => "Vergi Yekun Hesabatı",
|
||||
"total" => "Cəm",
|
||||
"total_inventory_value" => "Ümumi İnvanter Qiyməti",
|
||||
"total_low_sell_quantity" => "Ümumi aşağı satışların sayı",
|
||||
"total_quantity" => "Ümumi Miqdarı",
|
||||
"total_retail" => "Toplam inv. Pərakəndə dəyəri",
|
||||
"trans_amount" => "Əməliyyat məbləği",
|
||||
"trans_due" => "Buna görə",
|
||||
"trans_group" => "Əməliyyat Qrupu",
|
||||
"trans_nopay_sales" => "Ödənişsiz satış",
|
||||
"trans_payments" => "Ödəmələr",
|
||||
"trans_refunded" => "Geri qaytarıldı",
|
||||
"trans_sales" => "Satışlar",
|
||||
"trans_type" => "Əməliyyat növü",
|
||||
"type" => "Növ",
|
||||
"unit_price" => "Pərakəndə Qiyməti",
|
||||
"used" => "İstifadə edilən ballar",
|
||||
"work_orders" => "İstifadə Olunan Ballar",
|
||||
"zero_and_less" => "Sıfır və Aşağı",
|
||||
'all' => "hamısı",
|
||||
'authority' => "Səlahiyyət",
|
||||
'canceled' => "Ləğv Edilmiş",
|
||||
'categories' => "Kateqoriyalar",
|
||||
'categories_summary_report' => "komentariyalar",
|
||||
'category' => "Kategoriya",
|
||||
'code_canceled' => "CNL",
|
||||
'code_invoice' => "INV",
|
||||
'code_pos' => "POS",
|
||||
'code_quote' => "Q",
|
||||
'code_return' => "RET",
|
||||
'code_type' => "Növ",
|
||||
'code_work_order' => "W/O",
|
||||
'comments' => "bütün qiymət",
|
||||
'commission' => "",
|
||||
'complete' => "Tamamlanmış Satış və Geri Qaytarılanlar",
|
||||
'completed_sales' => "Tamamlanmış Satışlar",
|
||||
'confirm_delete' => "Seçdiyiniz giriş (lər) silmək istədiyinizə əminsinizmi?",
|
||||
'confirm_restore' => "Seçilmiş giriş (lər) bərpa etmək istədiyinizə əminsinizmi?",
|
||||
'cost' => "hesab",
|
||||
'cost_price' => "müştəri",
|
||||
'count' => "müştərilər",
|
||||
'customer' => "müştərilərin hesabatı",
|
||||
'customers' => "Müştərilər",
|
||||
'customers_summary_report' => "gün",
|
||||
'date' => "təsvir",
|
||||
'date_range' => "detallı göndərilən hesabatlar",
|
||||
'description' => "detallı hesabatlar",
|
||||
'detailed_receivings_report' => "Ətraflı satınalma hesabatı",
|
||||
'detailed_receivings_report_input' => "",
|
||||
'detailed_reports' => "etraflı məlumat",
|
||||
'detailed_requisition_report' => "endirimler",
|
||||
'detailed_sales_report' => "Ətraflı satış hesabatı",
|
||||
'discount' => "endirimlər",
|
||||
'discount_fixed' => "Sabit endirim",
|
||||
'discount_percent' => "endirim hesabları",
|
||||
'discount_type' => "Endirim növü",
|
||||
'discounts' => "Endirimlər",
|
||||
'discounts_summary_report' => "əməkdaş",
|
||||
'earned' => "əməkdaş",
|
||||
'employee' => "əməkdaşın hesabatı",
|
||||
'employees' => "İşçilər",
|
||||
'employees_summary_report' => "İşçilərin Xülasəsi Hesabatı",
|
||||
'expenses' => "Xərclər",
|
||||
'expenses_amount' => "Məbləğ",
|
||||
'expenses_categories' => "Xərclər",
|
||||
'expenses_categories_summary_report' => "Xərc kateqoriyasında Son Hesabat",
|
||||
'expenses_category' => "Kategoriya",
|
||||
'expenses_payment_amount' => "",
|
||||
'expenses_tax_amount' => "Vergi",
|
||||
'expenses_total_amount' => "Ümumi Məbləğ",
|
||||
'expenses_total_tax_amount' => "Ümumi Vergi",
|
||||
'graphical_reports' => "Qrafik Hesabatlar",
|
||||
'inventory' => "İnvertizasiya",
|
||||
'inventory_low' => "inventor hesabatları",
|
||||
'inventory_low_report' => "mal adı",
|
||||
'inventory_reports' => "malın nomrəsi",
|
||||
'inventory_summary' => "mallar",
|
||||
'inventory_summary_report' => "alınan mallar",
|
||||
'item' => "gondərilən mallar",
|
||||
'item_count' => "mal hesabatı",
|
||||
'item_name' => "aşağı hesabatlar",
|
||||
'item_number' => "aşağı inventor hesabat",
|
||||
'items' => "Mallar",
|
||||
'items_purchased' => "ad",
|
||||
'items_received' => "Qəbul Olunan Mallar",
|
||||
'items_summary_report' => "ödəniş tipi",
|
||||
'jurisdiction' => "Yurisdiksiya",
|
||||
'low_inventory' => "ödənişlər",
|
||||
'low_inventory_report' => "inventor hesabatı",
|
||||
'low_sell_quantity' => "Satış miqdarı",
|
||||
'more_than_zero' => "gəlir",
|
||||
'name' => "Qty On Hand",
|
||||
'no_reports_to_display' => "Göstərmək üçün məhsul yoxdur.",
|
||||
'payment_type' => "Ödəmə Növü",
|
||||
'payments' => "kim tərəfindən",
|
||||
'payments_summary_report' => "Ödəmələr Yekun Hesabatı",
|
||||
'profit' => "Qazanc",
|
||||
'quantity' => "qəbul olunanlar",
|
||||
'quantity_purchased' => "aşağı səviyyə",
|
||||
'quotes' => "hesabat",
|
||||
'received_by' => "çıxış hesabatı",
|
||||
'receiving_id' => "Hesabatlar",
|
||||
'receiving_type' => "Qəbul Növü",
|
||||
'receivings' => "Qəbul olunanlar",
|
||||
'reorder_level' => "Səviyyəni Yenidən Düzəlt",
|
||||
'report' => "Hesabat",
|
||||
'report_input' => "Hesabatı daxil edin",
|
||||
'reports' => "Hesabatlar",
|
||||
'requisition' => "",
|
||||
'requisition_by' => "",
|
||||
'requisition_id' => "",
|
||||
'requisition_item' => "geri qaytarılanlar",
|
||||
'requisition_item_quantity' => "gəlir",
|
||||
'requisition_related_item' => "ID satışı",
|
||||
'requisition_related_item_total_quantity' => "endirim tipi",
|
||||
'requisition_related_item_unit_quantity' => "satışlar",
|
||||
'requisitions' => "Satış qiyməti",
|
||||
'returns' => "endirim hesabatları",
|
||||
'revenue' => "Gəlir",
|
||||
'sale_id' => "satılıb kim tərəfindən",
|
||||
'sale_type' => "satılıb kimə",
|
||||
'sales' => "Əməliyyatlar",
|
||||
'sales_amount' => "Əməliyyatların Məbləği",
|
||||
'sales_summary_report' => "toplam",
|
||||
'sales_taxes' => "Satışdan Vergi",
|
||||
'sales_taxes_summary_report' => "Satışdan vergilərə dair yekun hesabat",
|
||||
'serial_number' => "hesabatlar",
|
||||
'service_charge' => "",
|
||||
'sold_by' => "kim tərəfindən qoyulub",
|
||||
'sold_items' => "",
|
||||
'sold_to' => "təchizatçı",
|
||||
'stock_location' => "təchizatçılar",
|
||||
'sub_total_value' => "təchizatci hesabatı",
|
||||
'subtotal' => "vergi",
|
||||
'summary_reports' => "Yekun Hesabatı",
|
||||
'supplied_by' => "vergilər",
|
||||
'supplier' => "vergi hesabatı",
|
||||
'suppliers' => "toplam",
|
||||
'suppliers_summary_report' => "Təchizatçıların Yekun Hesabatı",
|
||||
'tax' => "tip",
|
||||
'tax_category' => "Vergi Bolməsi",
|
||||
'tax_name' => "",
|
||||
'tax_percent' => "Retail Price",
|
||||
'tax_rate' => "Vergi dərəcəsi",
|
||||
'taxes' => "Vergilər",
|
||||
'taxes_summary_report' => "Vergi Yekun Hesabatı",
|
||||
'total' => "Cəm",
|
||||
'total_inventory_value' => "Ümumi İnvanter Qiyməti",
|
||||
'total_low_sell_quantity' => "Ümumi aşağı satışların sayı",
|
||||
'total_quantity' => "Ümumi Miqdarı",
|
||||
'total_retail' => "Toplam inv. Pərakəndə dəyəri",
|
||||
'trans_amount' => "Əməliyyat məbləği",
|
||||
'trans_due' => "Buna görə",
|
||||
'trans_group' => "Əməliyyat Qrupu",
|
||||
'trans_nopay_sales' => "Ödənişsiz satış",
|
||||
'trans_payments' => "Ödəmələr",
|
||||
'trans_refunded' => "Geri qaytarıldı",
|
||||
'trans_sales' => "Satışlar",
|
||||
'trans_type' => "Əməliyyat növü",
|
||||
'type' => "Növ",
|
||||
'unit_price' => "Pərakəndə Qiyməti",
|
||||
'used' => "İstifadə edilən ballar",
|
||||
'work_orders' => "İstifadə Olunan Ballar",
|
||||
'zero_and_less' => "Sıfır və Aşağı",
|
||||
];
|
||||
|
||||
@@ -1,330 +1,331 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"address" => "Alamat Perusahaan",
|
||||
"address_required" => "Alamat Perusahaan wajib diisi.",
|
||||
"all_set" => "Semua perizinan file diatur dengan benar!",
|
||||
"allow_duplicate_barcodes" => "Ijinkan kode batang ganda",
|
||||
"apostrophe" => "Tanda petik (')",
|
||||
"backup_button" => "Cadangkan",
|
||||
"backup_database" => "Cadangkan basis data",
|
||||
"barcode" => "Kode batang",
|
||||
"barcode_company" => "Nama Perusahaan",
|
||||
"barcode_configuration" => "Pengaturan kode batang",
|
||||
"barcode_content" => "Isi kode batang",
|
||||
"barcode_first_row" => "Baris 1",
|
||||
"barcode_font" => "Jenis huruf",
|
||||
"barcode_formats" => "Format masukan",
|
||||
"barcode_generate_if_empty" => "Buatkan kode batang otomatis jika kosong.",
|
||||
"barcode_height" => "Tinggi (px)",
|
||||
"barcode_id" => "Item Id/Nama",
|
||||
"barcode_info" => "Informasi pengaturan kode batang",
|
||||
"barcode_layout" => "Tata letak kode batang",
|
||||
"barcode_name" => "Nama",
|
||||
"barcode_number" => "Kode batang",
|
||||
"barcode_number_in_row" => "Jumlah baris",
|
||||
"barcode_page_cellspacing" => "Tampilkan jarak antar sel pada halaman.",
|
||||
"barcode_page_width" => "Lebar halaman",
|
||||
"barcode_price" => "Harga",
|
||||
"barcode_second_row" => "Baris 2",
|
||||
"barcode_third_row" => "Baris 3",
|
||||
"barcode_tooltip" => "Peringatan: Fitur ini dapat meyebabkan duplikasi item yang diimpor atau dibuat. Jangan digunakan jika Anda tidak ingin menggandakan kode batang.",
|
||||
"barcode_type" => "Jenis kode batang",
|
||||
"barcode_width" => "Lebar (px)",
|
||||
"bottom" => "Bawah",
|
||||
"cash_button" => "",
|
||||
"cash_button_1" => "",
|
||||
"cash_button_2" => "",
|
||||
"cash_button_3" => "",
|
||||
"cash_button_4" => "",
|
||||
"cash_button_5" => "",
|
||||
"cash_button_6" => "",
|
||||
"cash_decimals" => "Desimal Tunai",
|
||||
"cash_decimals_tooltip" => "Jika Desimal Tunai dan Desimal Mata Uang sama, maka pembulatan uang tidak akan dilakukan.",
|
||||
"cash_rounding" => "Pembulatan tunai",
|
||||
"category_dropdown" => "Tampilkan menu tarik turun untuk Kategori",
|
||||
"center" => "Tengah",
|
||||
"change_apperance_tooltip" => "",
|
||||
"comma" => "koma",
|
||||
"company" => "Nama Perusahaan",
|
||||
"company_avatar" => "",
|
||||
"company_change_image" => "Ubah gambar",
|
||||
"company_logo" => "Logo perusahaan",
|
||||
"company_remove_image" => "Hapus gambar",
|
||||
"company_required" => "Nama Perusahaan wajib diisi",
|
||||
"company_select_image" => "Pilih gambar",
|
||||
"company_website_url" => "Situs Perusahaan bukan URL yang benar(http://...).",
|
||||
"country_codes" => "Kode negara",
|
||||
"country_codes_tooltip" => "Daftar kode negara format CSV untuk lookup alamat.",
|
||||
"currency_code" => "Kode Mata uang",
|
||||
"currency_decimals" => "Angka desimal",
|
||||
"currency_symbol" => "Simbol Mata Uang",
|
||||
"current_employee_only" => "",
|
||||
"customer_reward" => "Hadiah",
|
||||
"customer_reward_duplicate" => "Masukkan nama unik untuk hadiah.",
|
||||
"customer_reward_enable" => "Aktifkan Hadiah Konsumen",
|
||||
"customer_reward_invalid_chars" => "Nama hadiah tidak boleh berisi '_'",
|
||||
"customer_reward_required" => "Kolom hadiah tidak boleh kosong",
|
||||
"customer_sales_tax_support" => "Dukungan Pajak Penjualan Pelanggan",
|
||||
"date_or_time_format" => "Penyaring tanggal dan waktu",
|
||||
"datetimeformat" => "Format tanggal dan waktu",
|
||||
"decimal_point" => "Titik Desimal",
|
||||
"default_barcode_font_size_number" => "Pengaturan ukuran kode batang default harus berupa angka.",
|
||||
"default_barcode_font_size_required" => "Pengaturan ukuran kode batang default harus diisi.",
|
||||
"default_barcode_height_number" => "Pengaturan tinggi kode batang harus berupa angka.",
|
||||
"default_barcode_height_required" => "Pengaturan tinggi kode batang harus diisi.",
|
||||
"default_barcode_num_in_row_number" => "Kode batang harus berupa angka.",
|
||||
"default_barcode_num_in_row_required" => "Kode batang harus diisi.",
|
||||
"default_barcode_page_cellspacing_number" => "Pengaturan spasi sel kode batang harus berupa angka.",
|
||||
"default_barcode_page_cellspacing_required" => "Pengaturan spasi sel kode batang harus diisi.",
|
||||
"default_barcode_page_width_number" => "Lebar halaman kode batang harus berupa angka.",
|
||||
"default_barcode_page_width_required" => "Lebar halaman kode batang harus diisi.",
|
||||
"default_barcode_width_number" => "Lebar kode batang harus berupa angka.",
|
||||
"default_barcode_width_required" => "Lebar kode batang harus diisi.",
|
||||
"default_item_columns" => "Kolom item terlihat bawaan",
|
||||
"default_origin_tax_code" => "Kode Pajak Asal Default",
|
||||
"default_receivings_discount" => "Diskon pembelian bawaan",
|
||||
"default_receivings_discount_number" => "Diskon pembelian bawaaan harus berupa angka.",
|
||||
"default_receivings_discount_required" => "Diskon oembelian harus diisi.",
|
||||
"default_sales_discount" => "Diskon penjualan bawaan",
|
||||
"default_sales_discount_number" => "Diskon penjualan harus berupa angka.",
|
||||
"default_sales_discount_required" => "Diskon penjualan harus diisi.",
|
||||
"default_tax_category" => "Kategori pajak bawaan",
|
||||
"default_tax_code" => "Kode pajak bawaan",
|
||||
"default_tax_jurisdiction" => "Yuridiksi Pajak bawaan",
|
||||
"default_tax_name_number" => "Nama Pajak Default harus berupa string.",
|
||||
"default_tax_name_required" => "Jenis pajak harus diisi.",
|
||||
"default_tax_rate" => "Tarif Pajak %",
|
||||
"default_tax_rate_1" => "Tarif Pajak 1",
|
||||
"default_tax_rate_2" => "Tarif Pajak 2",
|
||||
"default_tax_rate_3" => "",
|
||||
"default_tax_rate_number" => "Tarif Pajak harus berupa angkat.",
|
||||
"default_tax_rate_required" => "Tarif Pajak Biasa harus diisi.",
|
||||
"derive_sale_quantity" => "Ijinkan Kuantitas Penjulan Diturunkan",
|
||||
"derive_sale_quantity_tooltip" => "Jika dicentang maka jenis barang baru akan disediakan untuk barang yang dipesan dengan jumlah yang diperpanjang",
|
||||
"dinner_table" => "Meja",
|
||||
"dinner_table_duplicate" => "Masukkan nama meja (harus unik).",
|
||||
"dinner_table_enable" => "Aktifkan meja",
|
||||
"dinner_table_invalid_chars" => "Nama meja tidak dapat berisi karater '_'.",
|
||||
"dinner_table_required" => "Meja adalah kolom yang harus diisi.",
|
||||
"dot" => "titik",
|
||||
"email" => "Email",
|
||||
"email_configuration" => "Konfigurasi Email",
|
||||
"email_mailpath" => "Direktori untuk Sendmail",
|
||||
"email_protocol" => "Protocol",
|
||||
"email_receipt_check_behaviour" => "Kotak centang Penerimaan Email",
|
||||
"email_receipt_check_behaviour_always" => "Selalu dicentang",
|
||||
"email_receipt_check_behaviour_last" => "Ingat pilihan terakhir",
|
||||
"email_receipt_check_behaviour_never" => "Selalu tidak tercentang",
|
||||
"email_smtp_crypto" => "Enkripsi SMTP",
|
||||
"email_smtp_host" => "Server SMTP",
|
||||
"email_smtp_pass" => "Kata Sandi SMTP",
|
||||
"email_smtp_port" => "Port SMTP",
|
||||
"email_smtp_timeout" => "Masa Aktif SMTP",
|
||||
"email_smtp_user" => "Nama Pengguna SMTP",
|
||||
"enable_avatar" => "",
|
||||
"enable_avatar_tooltip" => "",
|
||||
"enable_dropdown_tooltip" => "",
|
||||
"enable_new_look" => "",
|
||||
"enable_right_bar" => "",
|
||||
"enable_right_bar_tooltip" => "",
|
||||
"enforce_privacy" => "Berlakukan privasi",
|
||||
"enforce_privacy_tooltip" => "Lindungi privasi Pelanggan yang menegakkan data dalam hal data mereka dihapus",
|
||||
"fax" => "Fax",
|
||||
"file_perm" => "Perizinan berkas bermasalah, Silakan perbaiki dan muat ulang halaman ini.",
|
||||
"financial_year" => "Tahun Awal Fiskal",
|
||||
"financial_year_apr" => "1 April",
|
||||
"financial_year_aug" => "1 Agustus",
|
||||
"financial_year_dec" => "1 Desember",
|
||||
"financial_year_feb" => "1 Februari",
|
||||
"financial_year_jan" => "1 Januari",
|
||||
"financial_year_jul" => "1 Juli",
|
||||
"financial_year_jun" => "1 Juni",
|
||||
"financial_year_mar" => "1 Maret",
|
||||
"financial_year_may" => "1 Mei",
|
||||
"financial_year_nov" => "1 November",
|
||||
"financial_year_oct" => "1 Oktober",
|
||||
"financial_year_sep" => "1 September",
|
||||
"floating_labels" => "Label mengambang",
|
||||
"gcaptcha_enable" => "Halaman login reCHAPTCHA",
|
||||
"gcaptcha_secret_key" => "Kunci Rahasia reCHAPTCHA",
|
||||
"gcaptcha_secret_key_required" => "Kunci Rahasia reCHAPTCHA adalah bidang yang harus diisi",
|
||||
"gcaptcha_site_key" => "Kunci Situs reCHAPTCHA",
|
||||
"gcaptcha_site_key_required" => "Kunci Situs reCHAPTCHA adalah bidang yang dibutuhkan",
|
||||
"gcaptcha_tooltip" => "Lindungi Halaman Login dengan reCAPTCHA Google, klik pada ikon untuk pasangan kunci API.",
|
||||
"general" => "Umum",
|
||||
"general_configuration" => "Pengaturan Umum",
|
||||
"giftcard_number" => "Nomor Gift Card",
|
||||
"giftcard_random" => "Hasilkan acak",
|
||||
"giftcard_series" => "Hasilkan dalam seri",
|
||||
"image_allowed_file_types" => "Jenis berkas yang diizinkan",
|
||||
"image_max_height_tooltip" => "Tinggi maksimum unggahan gambar yang diizinkan dalam piksel (px).",
|
||||
"image_max_size_tooltip" => "ukuran berkas maksimum yang diijinkan untuk mengunggah gambar dalam kilobyte (kb).",
|
||||
"image_max_width_tooltip" => "Lebar maksimum yang diunggah dari pengunggahan gambar dalam piksel (px).",
|
||||
"image_restrictions" => "Pembatasan Pengunggahan Gambar",
|
||||
"include_hsn" => "Termasuk dukungan kode HSN",
|
||||
"info" => "Informasi",
|
||||
"info_configuration" => "Informasi Toko",
|
||||
"input_groups" => "Grup masukan",
|
||||
"integrations" => "Integrasi",
|
||||
"integrations_configuration" => "Integrasi pihak ketiga",
|
||||
"invoice" => "Faktur",
|
||||
"invoice_configuration" => "Pengaturan cetak faktur",
|
||||
"invoice_default_comments" => "Komentar faktur",
|
||||
"invoice_email_message" => "Templat email faktur",
|
||||
"invoice_enable" => "Mengaktifkan faktur",
|
||||
"invoice_printer" => "Pencetak Faktur",
|
||||
"invoice_type" => "Tipe Faktur",
|
||||
"is_readable" => "dapat dibaca, tetapi izin tidak disetel dengan benar. Setel ke 640 atau 660, kemudian segarkan.",
|
||||
"is_writable" => "bisa ditulis, tetapi izin tidak disetel dengan benar. Setel ke 750 dan segarkan.",
|
||||
"item_markup" => "",
|
||||
"jsprintsetup_required" => "Perhatian! Fungsi ini hanya berjalan jika anda menggunakan Firefox yang memiliki tambahan jsPrintSetup. Tetap simpan?",
|
||||
"language" => "Bahasa",
|
||||
"last_used_invoice_number" => "Nomor terakhir faktur",
|
||||
"last_used_quote_number" => "Nomor Penawaran yang terakhir digunakan",
|
||||
"last_used_work_order_number" => "Nomor W/O yang terakhir dipakai",
|
||||
"left" => "Kiri",
|
||||
"license" => "Lisensi",
|
||||
"license_configuration" => "Pernyataan Lisensi",
|
||||
"line_sequence" => "Urutan baris",
|
||||
"lines_per_page" => "Baris per halaman",
|
||||
"lines_per_page_number" => "Baris per halaman harus berupa angka.",
|
||||
"lines_per_page_required" => "Baris per halaman tidak boleh kosong.",
|
||||
"locale" => "Terjemahan",
|
||||
"locale_configuration" => "Konfigurasi Terjemahan",
|
||||
"locale_info" => "Informasi Konfigurasi Terjemahan",
|
||||
"location" => "Lokasi Stock",
|
||||
"location_configuration" => "Lokasi Stock",
|
||||
"location_info" => "Informasi konfigurasi lokasi stock",
|
||||
"login_form" => "Gaya Formulir Log Masuk",
|
||||
"logout" => "Apakah Anda akan membuat cadangan sebelum anda keluar? Klik [OK] untuk pencadangan, [Batal] untuk keluar.",
|
||||
"mailchimp" => "MailChimp",
|
||||
"mailchimp_api_key" => "Kunci API MailChimp",
|
||||
"mailchimp_configuration" => "Pengaturan MailChimp",
|
||||
"mailchimp_key_successfully" => "Kunci API benar.",
|
||||
"mailchimp_key_unsuccessfully" => "Kunci API tidak valid.",
|
||||
"mailchimp_lists" => "Daftar MailChimp",
|
||||
"mailchimp_tooltip" => "Klik pada ikon untuk KUnci API.",
|
||||
"message" => "Pesan",
|
||||
"message_configuration" => "Pengaturan Pesan",
|
||||
"msg_msg" => "Pesan teks tersimpan",
|
||||
"msg_msg_placeholder" => "Apakah Anda ingin menggunakan template SMS menyimpan pesan Anda disini? Jika tidak, biarkan kosong.",
|
||||
"msg_pwd" => "SMS-API Password",
|
||||
"msg_pwd_required" => "SMS-API Password harus diisi",
|
||||
"msg_src" => "ID pengirim SMS-API",
|
||||
"msg_src_required" => "SMS-API Sender ID harus diisi",
|
||||
"msg_uid" => "SMS-API User Name",
|
||||
"msg_uid_required" => "SMS-API Username harus diisi",
|
||||
"multi_pack_enabled" => "Multi paket per item",
|
||||
"no_risk" => "Tidak ada risiko keamanan / kerentanan.",
|
||||
"none" => "none",
|
||||
"notify_alignment" => "Posisi notifikasi Popup",
|
||||
"number_format" => "Format Nomor",
|
||||
"number_locale" => "Terjemahan",
|
||||
"number_locale_invalid" => "Kode bahasa salah. Cek tautan pada tooltip untuk mendapatkan kode bahasa yang benar.",
|
||||
"number_locale_required" => "Kode Lokal wajib diisi.",
|
||||
"number_locale_tooltip" => "Menemukan kode lokal melalui link ini.",
|
||||
"os_timezone" => "Zona waktu OSPOS:",
|
||||
"ospos_info" => "Info pemasangan OSPOS",
|
||||
"payment_options_order" => "Urutan pilihan pembayaran",
|
||||
"perm_risk" => "Setelan izin yang salah berbahaya bagi keamanan perangkat lunak.",
|
||||
"phone" => "Telepon Perusahaan",
|
||||
"phone_required" => "Telepon Perusahaan wajib diisi.",
|
||||
"print_bottom_margin" => "Margin Bawah",
|
||||
"print_bottom_margin_number" => "Default margin bawah harus angka.",
|
||||
"print_bottom_margin_required" => "Default margin Bawah harus di isi.",
|
||||
"print_delay_autoreturn" => "Otomatis Retur pada penundaan Penjualan",
|
||||
"print_delay_autoreturn_number" => "Kolom Otomatis Retur pada Penundaan Penjualan harus diisi.",
|
||||
"print_delay_autoreturn_required" => "Pengembalian otomatis untuk Penjualan tertunda harus berupa angka.",
|
||||
"print_footer" => "Mencetak Footer Browser",
|
||||
"print_header" => "Mencetak Browser Header",
|
||||
"print_left_margin" => "Margin Kiri",
|
||||
"print_left_margin_number" => "Margin kiri harus berupa angka.",
|
||||
"print_left_margin_required" => "Margin kiri wajib di isi.",
|
||||
"print_receipt_check_behaviour" => "Centang Cetak Struk",
|
||||
"print_receipt_check_behaviour_always" => "Selalu dicentang",
|
||||
"print_receipt_check_behaviour_last" => "Ingat pilihan terakhir",
|
||||
"print_receipt_check_behaviour_never" => "Selalu tidak dicentang",
|
||||
"print_right_margin" => "Margin kanan",
|
||||
"print_right_margin_number" => "Margin kiri harus berupa angka.",
|
||||
"print_right_margin_required" => "Margin kanan wajib di isi.",
|
||||
"print_silently" => "Tampilkan Print Dialog",
|
||||
"print_top_margin" => "Margin atas",
|
||||
"print_top_margin_number" => "Nilai margin atas harus di isi angka.",
|
||||
"print_top_margin_required" => "Margin atas wajib di isi.",
|
||||
"quantity_decimals" => "Desimal untuk Jumlah",
|
||||
"quick_cash_enable" => "",
|
||||
"quote_default_comments" => "Komentar faktur",
|
||||
"receipt" => "Struk Penerimaan",
|
||||
"receipt_category" => "",
|
||||
"receipt_configuration" => "Struk Print Settings",
|
||||
"receipt_default" => "Default",
|
||||
"receipt_font_size" => "Ukuran Font",
|
||||
"receipt_font_size_number" => "Ukuran font harus berupa angka.",
|
||||
"receipt_font_size_required" => "Ukuran font harus diisi.",
|
||||
"receipt_info" => "Struk Konfigurasi Informasi",
|
||||
"receipt_printer" => "Tiket Printer",
|
||||
"receipt_short" => "Ringkas",
|
||||
"receipt_show_company_name" => "Tampilkan nama perusahaan",
|
||||
"receipt_show_description" => "Tampilkan deskripsi",
|
||||
"receipt_show_serialnumber" => "Tampilkan nomor seri",
|
||||
"receipt_show_tax_ind" => "Tampilkan Indikator Pajak",
|
||||
"receipt_show_taxes" => "Tampilkan pajak",
|
||||
"receipt_show_total_discount" => "Tampilkan total diskon",
|
||||
"receipt_template" => "Template struk",
|
||||
"receiving_calculate_average_price" => "Menghitung harga rata-rata (Penerimaan)",
|
||||
"recv_invoice_format" => "Format Faktur",
|
||||
"register_mode_default" => "Default register mode",
|
||||
"report_an_issue" => "Laporkan masalah",
|
||||
"return_policy_required" => "Kebijakan retur wajib diisi.",
|
||||
"reward" => "Hadiah",
|
||||
"reward_configuration" => "Konfigurasi Hadiah",
|
||||
"right" => "Kanan",
|
||||
"sales_invoice_format" => "Format Faktur Penjualan",
|
||||
"sales_quote_format" => "Format Penawaran Penjualan",
|
||||
"saved_successfully" => "Konfigurasi berhasil disimpan.",
|
||||
"saved_unsuccessfully" => "Konfigurasi tidak berhasil disimpan.",
|
||||
"security_issue" => "Peringatan Kerentanan Keamanan",
|
||||
"server_notice" => "Silakan gunakan info di bawah ini untuk pelaporan masalah.",
|
||||
"service_charge" => "",
|
||||
"show_due_enable" => "",
|
||||
"show_office_group" => "Tampilkan ikon kantor",
|
||||
"statistics" => "Kirim statistik",
|
||||
"statistics_tooltip" => "Kirim statistik untuk pengembangan dan peningkatan fitur.",
|
||||
"stock_location" => "Lokasi Stock",
|
||||
"stock_location_duplicate" => "Gunakan nama yang unik untuk lokasi stock.",
|
||||
"stock_location_invalid_chars" => "Nama lokasi tidak boleh berisi karakter '_'.",
|
||||
"stock_location_required" => "Nomor lokasi stock harus diisi.",
|
||||
"suggestions_fifth_column" => "",
|
||||
"suggestions_first_column" => "Kolom 1",
|
||||
"suggestions_fourth_column" => "",
|
||||
"suggestions_layout" => "Tampilan Saran Pencarian",
|
||||
"suggestions_second_column" => "Kolom 2",
|
||||
"suggestions_third_column" => "Kolom 3",
|
||||
"system_conf" => "Setting & Conf",
|
||||
"system_info" => "System Info",
|
||||
"table" => "Meja",
|
||||
"table_configuration" => "Konfigurasi Meja",
|
||||
"takings_printer" => "Struk Printer",
|
||||
"tax" => "Pajak",
|
||||
"tax_category" => "Kategori Pajak",
|
||||
"tax_category_duplicate" => "Kategori pajak yang dimasukkan sudah ada.",
|
||||
"tax_category_invalid_chars" => "Kategori pajak yang dimasukkan tidak valid.",
|
||||
"tax_category_required" => "Kategori pajak dibutuhkan.",
|
||||
"tax_category_used" => "Kategori pajak tidak bisa dihapus karena sedang digunakan.",
|
||||
"tax_configuration" => "Konfigurasi Pajak",
|
||||
"tax_decimals" => "Pajak Decimals",
|
||||
"tax_id" => "Id Pajak",
|
||||
"tax_included" => "Dikenakan Pajak",
|
||||
"theme" => "Tema",
|
||||
"theme_preview" => "Pratinjau Tema:",
|
||||
"thousands_separator" => "Pemisah Ribuan",
|
||||
"timezone" => "Zona Waktu",
|
||||
"timezone_error" => "Zona Waktu OSPOS berbeda dari Zona Waktu Anda.",
|
||||
"top" => "Atas",
|
||||
"use_destination_based_tax" => "Gunakan Pajak Berdasarkan Tujuan",
|
||||
"user_timezone" => "Zona waktu lokal:",
|
||||
"website" => "Situs Perusahaan",
|
||||
"wholesale_markup" => "",
|
||||
"work_order_enable" => "Dukungan Work Order",
|
||||
"work_order_format" => "Format Work Order",
|
||||
'address' => "Alamat Perusahaan",
|
||||
'address_required' => "Alamat Perusahaan wajib diisi.",
|
||||
'all_set' => "Semua perizinan file diatur dengan benar!",
|
||||
'allow_duplicate_barcodes' => "Ijinkan kode batang ganda",
|
||||
'apostrophe' => "Tanda petik (')",
|
||||
'backup_button' => "Cadangkan",
|
||||
'backup_database' => "Cadangkan basis data",
|
||||
'barcode' => "Kode batang",
|
||||
'barcode_company' => "Nama Perusahaan",
|
||||
'barcode_configuration' => "Pengaturan kode batang",
|
||||
'barcode_content' => "Isi kode batang",
|
||||
'barcode_first_row' => "Baris 1",
|
||||
'barcode_font' => "Jenis huruf",
|
||||
'barcode_formats' => "Format masukan",
|
||||
'barcode_generate_if_empty' => "Buatkan kode batang otomatis jika kosong.",
|
||||
'barcode_height' => "Tinggi (px)",
|
||||
'barcode_id' => "Item Id/Nama",
|
||||
'barcode_info' => "Informasi pengaturan kode batang",
|
||||
'barcode_layout' => "Tata letak kode batang",
|
||||
'barcode_name' => "Nama",
|
||||
'barcode_number' => "Kode batang",
|
||||
'barcode_number_in_row' => "Jumlah baris",
|
||||
'barcode_page_cellspacing' => "Tampilkan jarak antar sel pada halaman.",
|
||||
'barcode_page_width' => "Lebar halaman",
|
||||
'barcode_price' => "Harga",
|
||||
'barcode_second_row' => "Baris 2",
|
||||
'barcode_third_row' => "Baris 3",
|
||||
'barcode_tooltip' => "Peringatan: Fitur ini dapat meyebabkan duplikasi item yang diimpor atau dibuat. Jangan digunakan jika Anda tidak ingin menggandakan kode batang.",
|
||||
'barcode_type' => "Jenis kode batang",
|
||||
'barcode_width' => "Lebar (px)",
|
||||
'bottom' => "Bawah",
|
||||
'cash_button' => "",
|
||||
'cash_button_1' => "",
|
||||
'cash_button_2' => "",
|
||||
'cash_button_3' => "",
|
||||
'cash_button_4' => "",
|
||||
'cash_button_5' => "",
|
||||
'cash_button_6' => "",
|
||||
'cash_decimals' => "Desimal Tunai",
|
||||
'cash_decimals_tooltip' => "Jika Desimal Tunai dan Desimal Mata Uang sama, maka pembulatan uang tidak akan dilakukan.",
|
||||
'cash_rounding' => "Pembulatan tunai",
|
||||
'category_dropdown' => "Tampilkan menu tarik turun untuk Kategori",
|
||||
'center' => "Tengah",
|
||||
'change_apperance_tooltip' => "",
|
||||
'comma' => "koma",
|
||||
'company' => "Nama Perusahaan",
|
||||
'company_avatar' => "",
|
||||
'company_change_image' => "Ubah gambar",
|
||||
'company_logo' => "Logo perusahaan",
|
||||
'company_remove_image' => "Hapus gambar",
|
||||
'company_required' => "Nama Perusahaan wajib diisi",
|
||||
'company_select_image' => "Pilih gambar",
|
||||
'company_website_url' => "Situs Perusahaan bukan URL yang benar(http://...).",
|
||||
'country_codes' => "Kode negara",
|
||||
'country_codes_tooltip' => "Daftar kode negara format CSV untuk lookup alamat.",
|
||||
'currency_code' => "Kode Mata uang",
|
||||
'currency_decimals' => "Angka desimal",
|
||||
'currency_symbol' => "Simbol Mata Uang",
|
||||
'current_employee_only' => "",
|
||||
'customer_reward' => "Hadiah",
|
||||
'customer_reward_duplicate' => "Masukkan nama unik untuk hadiah.",
|
||||
'customer_reward_enable' => "Aktifkan Hadiah Konsumen",
|
||||
'customer_reward_invalid_chars' => "Nama hadiah tidak boleh berisi '_'",
|
||||
'customer_reward_required' => "Kolom hadiah tidak boleh kosong",
|
||||
'customer_sales_tax_support' => "Dukungan Pajak Penjualan Pelanggan",
|
||||
'date_or_time_format' => "Penyaring tanggal dan waktu",
|
||||
'datetimeformat' => "Format tanggal dan waktu",
|
||||
'decimal_point' => "Titik Desimal",
|
||||
'default_barcode_font_size_number' => "Pengaturan ukuran kode batang default harus berupa angka.",
|
||||
'default_barcode_font_size_required' => "Pengaturan ukuran kode batang default harus diisi.",
|
||||
'default_barcode_height_number' => "Pengaturan tinggi kode batang harus berupa angka.",
|
||||
'default_barcode_height_required' => "Pengaturan tinggi kode batang harus diisi.",
|
||||
'default_barcode_num_in_row_number' => "Kode batang harus berupa angka.",
|
||||
'default_barcode_num_in_row_required' => "Kode batang harus diisi.",
|
||||
'default_barcode_page_cellspacing_number' => "Pengaturan spasi sel kode batang harus berupa angka.",
|
||||
'default_barcode_page_cellspacing_required' => "Pengaturan spasi sel kode batang harus diisi.",
|
||||
'default_barcode_page_width_number' => "Lebar halaman kode batang harus berupa angka.",
|
||||
'default_barcode_page_width_required' => "Lebar halaman kode batang harus diisi.",
|
||||
'default_barcode_width_number' => "Lebar kode batang harus berupa angka.",
|
||||
'default_barcode_width_required' => "Lebar kode batang harus diisi.",
|
||||
'default_item_columns' => "Kolom item terlihat bawaan",
|
||||
'default_origin_tax_code' => "Kode Pajak Asal Default",
|
||||
'default_receivings_discount' => "Diskon pembelian bawaan",
|
||||
'default_receivings_discount_number' => "Diskon pembelian bawaaan harus berupa angka.",
|
||||
'default_receivings_discount_required' => "Diskon oembelian harus diisi.",
|
||||
'default_sales_discount' => "Diskon penjualan bawaan",
|
||||
'default_sales_discount_number' => "Diskon penjualan harus berupa angka.",
|
||||
'default_sales_discount_required' => "Diskon penjualan harus diisi.",
|
||||
'default_tax_category' => "Kategori pajak bawaan",
|
||||
'default_tax_code' => "Kode pajak bawaan",
|
||||
'default_tax_jurisdiction' => "Yuridiksi Pajak bawaan",
|
||||
'default_tax_name_number' => "Nama Pajak Default harus berupa string.",
|
||||
'default_tax_name_required' => "Jenis pajak harus diisi.",
|
||||
'default_tax_rate' => "Tarif Pajak %",
|
||||
'default_tax_rate_1' => "Tarif Pajak 1",
|
||||
'default_tax_rate_2' => "Tarif Pajak 2",
|
||||
'default_tax_rate_3' => "",
|
||||
'default_tax_rate_number' => "Tarif Pajak harus berupa angkat.",
|
||||
'default_tax_rate_required' => "Tarif Pajak Biasa harus diisi.",
|
||||
'derive_sale_quantity' => "Ijinkan Kuantitas Penjulan Diturunkan",
|
||||
'derive_sale_quantity_tooltip' => "Jika dicentang maka jenis barang baru akan disediakan untuk barang yang dipesan dengan jumlah yang diperpanjang",
|
||||
'dinner_table' => "Meja",
|
||||
'dinner_table_duplicate' => "Masukkan nama meja (harus unik).",
|
||||
'dinner_table_enable' => "Aktifkan meja",
|
||||
'dinner_table_invalid_chars' => "Nama meja tidak dapat berisi karater '_'.",
|
||||
'dinner_table_required' => "Meja adalah kolom yang harus diisi.",
|
||||
'dot' => "titik",
|
||||
'email' => "Email",
|
||||
'email_configuration' => "Konfigurasi Email",
|
||||
'email_mailpath' => "Direktori untuk Sendmail",
|
||||
'email_protocol' => "Protocol",
|
||||
'email_receipt_check_behaviour' => "Kotak centang Penerimaan Email",
|
||||
'email_receipt_check_behaviour_always' => "Selalu dicentang",
|
||||
'email_receipt_check_behaviour_last' => "Ingat pilihan terakhir",
|
||||
'email_receipt_check_behaviour_never' => "Selalu tidak tercentang",
|
||||
'email_smtp_crypto' => "Enkripsi SMTP",
|
||||
'email_smtp_host' => "Server SMTP",
|
||||
'email_smtp_pass' => "Kata Sandi SMTP",
|
||||
'email_smtp_port' => "Port SMTP",
|
||||
'email_smtp_timeout' => "Masa Aktif SMTP",
|
||||
'email_smtp_user' => "Nama Pengguna SMTP",
|
||||
'enable_avatar' => "",
|
||||
'enable_avatar_tooltip' => "",
|
||||
'enable_dropdown_tooltip' => "",
|
||||
'enable_new_look' => "",
|
||||
'enable_right_bar' => "",
|
||||
'enable_right_bar_tooltip' => "",
|
||||
'enforce_privacy' => "Berlakukan privasi",
|
||||
'enforce_privacy_tooltip' => "Lindungi privasi Pelanggan yang menegakkan data dalam hal data mereka dihapus",
|
||||
'fax' => "Fax",
|
||||
'file_perm' => "Perizinan berkas bermasalah, Silakan perbaiki dan muat ulang halaman ini.",
|
||||
'financial_year' => "Tahun Awal Fiskal",
|
||||
'financial_year_apr' => "1 April",
|
||||
'financial_year_aug' => "1 Agustus",
|
||||
'financial_year_dec' => "1 Desember",
|
||||
'financial_year_feb' => "1 Februari",
|
||||
'financial_year_jan' => "1 Januari",
|
||||
'financial_year_jul' => "1 Juli",
|
||||
'financial_year_jun' => "1 Juni",
|
||||
'financial_year_mar' => "1 Maret",
|
||||
'financial_year_may' => "1 Mei",
|
||||
'financial_year_nov' => "1 November",
|
||||
'financial_year_oct' => "1 Oktober",
|
||||
'financial_year_sep' => "1 September",
|
||||
'floating_labels' => "Label mengambang",
|
||||
'gcaptcha_enable' => "Halaman login reCHAPTCHA",
|
||||
'gcaptcha_secret_key' => "Kunci Rahasia reCHAPTCHA",
|
||||
'gcaptcha_secret_key_required' => "Kunci Rahasia reCHAPTCHA adalah bidang yang harus diisi",
|
||||
'gcaptcha_site_key' => "Kunci Situs reCHAPTCHA",
|
||||
'gcaptcha_site_key_required' => "Kunci Situs reCHAPTCHA adalah bidang yang dibutuhkan",
|
||||
'gcaptcha_tooltip' => "Lindungi Halaman Login dengan reCAPTCHA Google, klik pada ikon untuk pasangan kunci API.",
|
||||
'general' => "Umum",
|
||||
'general_configuration' => "Pengaturan Umum",
|
||||
'giftcard_number' => "Nomor Kartu Hadiah",
|
||||
'giftcard_random' => "Hasilkan acak",
|
||||
'giftcard_series' => "Hasilkan dalam seri",
|
||||
'image_allowed_file_types' => "Jenis berkas yang diizinkan",
|
||||
'image_max_height_tooltip' => "Tinggi maksimum unggahan gambar yang diizinkan dalam piksel (px).",
|
||||
'image_max_size_tooltip' => "ukuran berkas maksimum yang diijinkan untuk mengunggah gambar dalam kilobyte (kb).",
|
||||
'image_max_width_tooltip' => "Lebar maksimum yang diunggah dari pengunggahan gambar dalam piksel (px).",
|
||||
'image_restrictions' => "Pembatasan Pengunggahan Gambar",
|
||||
'include_hsn' => "Termasuk dukungan kode HSN",
|
||||
'info' => "Informasi",
|
||||
'info_configuration' => "Informasi Toko",
|
||||
'input_groups' => "Grup masukan",
|
||||
'integrations' => "Integrasi",
|
||||
'integrations_configuration' => "Integrasi pihak ketiga",
|
||||
'invoice' => "Faktur",
|
||||
'invoice_configuration' => "Pengaturan cetak faktur",
|
||||
'invoice_default_comments' => "Komentar faktur",
|
||||
'invoice_email_message' => "Templat email faktur",
|
||||
'invoice_enable' => "Mengaktifkan faktur",
|
||||
'invoice_printer' => "Pencetak Faktur",
|
||||
'invoice_type' => "Tipe Faktur",
|
||||
'is_readable' => "dapat dibaca, tetapi izin tidak disetel dengan benar. Setel ke 640 atau 660, kemudian segarkan.",
|
||||
'is_writable' => "bisa ditulis, tetapi izin tidak disetel dengan benar. Setel ke 750 dan segarkan.",
|
||||
'item_markup' => "",
|
||||
'jsprintsetup_required' => "Perhatian! Fungsi ini hanya berjalan jika anda menggunakan Firefox yang memiliki tambahan jsPrintSetup. Tetap simpan?",
|
||||
'language' => "Bahasa",
|
||||
'last_used_invoice_number' => "Nomor terakhir faktur",
|
||||
'last_used_quote_number' => "Nomor Penawaran yang terakhir digunakan",
|
||||
'last_used_work_order_number' => "Nomor W/O yang terakhir dipakai",
|
||||
'left' => "Kiri",
|
||||
'license' => "Lisensi",
|
||||
'license_configuration' => "Pernyataan Lisensi",
|
||||
'line_sequence' => "Urutan baris",
|
||||
'lines_per_page' => "Baris per halaman",
|
||||
'lines_per_page_number' => "Baris per halaman harus berupa angka.",
|
||||
'lines_per_page_required' => "Baris per halaman tidak boleh kosong.",
|
||||
'locale' => "Terjemahan",
|
||||
'locale_configuration' => "Konfigurasi Terjemahan",
|
||||
'locale_info' => "Informasi Konfigurasi Terjemahan",
|
||||
'location' => "Lokasi Stock",
|
||||
'location_configuration' => "Lokasi Stock",
|
||||
'location_info' => "Informasi konfigurasi lokasi stock",
|
||||
'login_form' => "Gaya Formulir Log Masuk",
|
||||
'logout' => "Apakah Anda akan membuat cadangan sebelum anda keluar? Klik [OK] untuk pencadangan, [Batal] untuk keluar.",
|
||||
'mailchimp' => "MailChimp",
|
||||
'mailchimp_api_key' => "Kunci API MailChimp",
|
||||
'mailchimp_configuration' => "Pengaturan MailChimp",
|
||||
'mailchimp_key_successfully' => "Kunci API benar.",
|
||||
'mailchimp_key_unsuccessfully' => "Kunci API tidak valid.",
|
||||
'mailchimp_lists' => "Daftar MailChimp",
|
||||
'mailchimp_tooltip' => "Klik pada ikon untuk KUnci API.",
|
||||
'message' => "Pesan",
|
||||
'message_configuration' => "Pengaturan Pesan",
|
||||
'msg_msg' => "Pesan teks tersimpan",
|
||||
'msg_msg_placeholder' => "Apakah Anda ingin menggunakan template SMS menyimpan pesan Anda disini? Jika tidak, biarkan kosong.",
|
||||
'msg_pwd' => "SMS-API Password",
|
||||
'msg_pwd_required' => "SMS-API Password harus diisi",
|
||||
'msg_src' => "ID pengirim SMS-API",
|
||||
'msg_src_required' => "SMS-API Sender ID harus diisi",
|
||||
'msg_uid' => "SMS-API User Name",
|
||||
'msg_uid_required' => "SMS-API Username harus diisi",
|
||||
'multi_pack_enabled' => "Multi paket per item",
|
||||
'no_risk' => "Tidak ada risiko keamanan / kerentanan.",
|
||||
'none' => "none",
|
||||
'notify_alignment' => "Posisi notifikasi Popup",
|
||||
'number_format' => "Format Nomor",
|
||||
'number_locale' => "Terjemahan",
|
||||
'number_locale_invalid' => "Kode bahasa salah. Cek tautan pada tooltip untuk mendapatkan kode bahasa yang benar.",
|
||||
'number_locale_required' => "Kode Lokal wajib diisi.",
|
||||
'number_locale_tooltip' => "Menemukan kode lokal melalui link ini.",
|
||||
'os_timezone' => "Zona waktu OSPOS:",
|
||||
'ospos_info' => "Info pemasangan OSPOS",
|
||||
'payment_options_order' => "Urutan pilihan pembayaran",
|
||||
'perm_risk' => "Setelan izin yang salah berbahaya bagi keamanan perangkat lunak.",
|
||||
'phone' => "Telepon Perusahaan",
|
||||
'phone_required' => "Telepon Perusahaan wajib diisi.",
|
||||
'print_bottom_margin' => "Margin Bawah",
|
||||
'print_bottom_margin_number' => "Default margin bawah harus angka.",
|
||||
'print_bottom_margin_required' => "Default margin Bawah harus di isi.",
|
||||
'print_delay_autoreturn' => "Otomatis Retur pada penundaan Penjualan",
|
||||
'print_delay_autoreturn_number' => "Kolom Otomatis Retur pada Penundaan Penjualan harus diisi.",
|
||||
'print_delay_autoreturn_required' => "Pengembalian otomatis untuk Penjualan tertunda harus berupa angka.",
|
||||
'print_footer' => "Mencetak Footer Browser",
|
||||
'print_header' => "Mencetak Browser Header",
|
||||
'print_left_margin' => "Margin Kiri",
|
||||
'print_left_margin_number' => "Margin kiri harus berupa angka.",
|
||||
'print_left_margin_required' => "Margin kiri wajib di isi.",
|
||||
'print_receipt_check_behaviour' => "Centang Cetak Struk",
|
||||
'print_receipt_check_behaviour_always' => "Selalu dicentang",
|
||||
'print_receipt_check_behaviour_last' => "Ingat pilihan terakhir",
|
||||
'print_receipt_check_behaviour_never' => "Selalu tidak dicentang",
|
||||
'print_right_margin' => "Margin kanan",
|
||||
'print_right_margin_number' => "Margin kiri harus berupa angka.",
|
||||
'print_right_margin_required' => "Margin kanan wajib di isi.",
|
||||
'print_silently' => "Tampilkan Print Dialog",
|
||||
'print_top_margin' => "Margin atas",
|
||||
'print_top_margin_number' => "Nilai margin atas harus di isi angka.",
|
||||
'print_top_margin_required' => "Margin atas wajib di isi.",
|
||||
'quantity_decimals' => "Desimal untuk Jumlah",
|
||||
'quick_cash_enable' => "",
|
||||
'quote_default_comments' => "Komentar faktur",
|
||||
'receipt' => "Struk Penerimaan",
|
||||
'receipt_category' => "",
|
||||
'receipt_configuration' => "Struk Print Settings",
|
||||
'receipt_default' => "Default",
|
||||
'receipt_font_size' => "Ukuran Font",
|
||||
'receipt_font_size_number' => "Ukuran font harus berupa angka.",
|
||||
'receipt_font_size_required' => "Ukuran font harus diisi.",
|
||||
'receipt_info' => "Struk Konfigurasi Informasi",
|
||||
'receipt_printer' => "Tiket Printer",
|
||||
'receipt_short' => "Ringkas",
|
||||
'receipt_show_company_name' => "Tampilkan nama perusahaan",
|
||||
'receipt_show_description' => "Tampilkan deskripsi",
|
||||
'receipt_show_serialnumber' => "Tampilkan nomor seri",
|
||||
'receipt_show_tax_ind' => "Tampilkan Indikator Pajak",
|
||||
'receipt_show_taxes' => "Tampilkan pajak",
|
||||
'receipt_show_total_discount' => "Tampilkan total diskon",
|
||||
'receipt_template' => "Template struk",
|
||||
'receiving_calculate_average_price' => "Menghitung harga rata-rata (Penerimaan)",
|
||||
'recv_invoice_format' => "Format Faktur",
|
||||
'register_mode_default' => "Default register mode",
|
||||
'report_an_issue' => "Laporkan masalah",
|
||||
'return_policy_required' => "Kebijakan retur wajib diisi.",
|
||||
'reward' => "Hadiah",
|
||||
'reward_configuration' => "Konfigurasi Hadiah",
|
||||
'right' => "Kanan",
|
||||
'sales_invoice_format' => "Format Faktur Penjualan",
|
||||
'sales_quote_format' => "Format Penawaran Penjualan",
|
||||
'saved_successfully' => "Konfigurasi berhasil disimpan.",
|
||||
'saved_unsuccessfully' => "Konfigurasi tidak berhasil disimpan.",
|
||||
'security_issue' => "Peringatan Kerentanan Keamanan",
|
||||
'server_notice' => "Silakan gunakan info di bawah ini untuk pelaporan masalah.",
|
||||
'service_charge' => "",
|
||||
'show_due_enable' => "",
|
||||
'show_office_group' => "Tampilkan ikon kantor",
|
||||
'statistics' => "Kirim statistik",
|
||||
'statistics_tooltip' => "Kirim statistik untuk pengembangan dan peningkatan fitur.",
|
||||
'stock_location' => "Lokasi Stock",
|
||||
'stock_location_duplicate' => "Gunakan nama yang unik untuk lokasi stock.",
|
||||
'stock_location_invalid_chars' => "Nama lokasi tidak boleh berisi karakter '_'.",
|
||||
'stock_location_required' => "Nomor lokasi stock harus diisi.",
|
||||
'suggestions_fifth_column' => "",
|
||||
'suggestions_first_column' => "Kolom 1",
|
||||
'suggestions_fourth_column' => "",
|
||||
'suggestions_layout' => "Tampilan Saran Pencarian",
|
||||
'suggestions_second_column' => "Kolom 2",
|
||||
'suggestions_third_column' => "Kolom 3",
|
||||
'system_conf' => "Setting & Conf",
|
||||
'system_info' => "System Info",
|
||||
'table' => "Meja",
|
||||
'table_configuration' => "Konfigurasi Meja",
|
||||
'takings_printer' => "Struk Printer",
|
||||
'tax' => "Pajak",
|
||||
'tax_category' => "Kategori Pajak",
|
||||
'tax_category_duplicate' => "Kategori pajak yang dimasukkan sudah ada.",
|
||||
'tax_category_invalid_chars' => "Kategori pajak yang dimasukkan tidak valid.",
|
||||
'tax_category_required' => "Kategori pajak dibutuhkan.",
|
||||
'tax_category_used' => "Kategori pajak tidak bisa dihapus karena sedang digunakan.",
|
||||
'tax_configuration' => "Konfigurasi Pajak",
|
||||
'tax_decimals' => "Pajak Decimals",
|
||||
'tax_id' => "Id Pajak",
|
||||
'tax_included' => "Dikenakan Pajak",
|
||||
'theme' => "Tema",
|
||||
'theme_preview' => "Pratinjau Tema:",
|
||||
'thousands_separator' => "Pemisah Ribuan",
|
||||
'timezone' => "Zona Waktu",
|
||||
'timezone_error' => "Zona Waktu OSPOS berbeda dari Zona Waktu Anda.",
|
||||
'top' => "Atas",
|
||||
'use_destination_based_tax' => "Gunakan Pajak Berdasarkan Tujuan",
|
||||
'user_timezone' => "Zona waktu lokal:",
|
||||
'website' => "Situs Perusahaan",
|
||||
'wholesale_markup' => "",
|
||||
'work_order_enable' => "Dukungan Work Order",
|
||||
'work_order_format' => "Format Work Order",
|
||||
];
|
||||
|
||||
@@ -1,56 +1,57 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"account_number" => "Akun #",
|
||||
"account_number_duplicate" => "Nomor akun ini telah ada di basis data.",
|
||||
"available_points" => "Poin tersedia",
|
||||
"available_points_value" => "",
|
||||
"average" => "Rata-rata yang dihabiskan",
|
||||
"avg_discount" => "Rata-rata diskon",
|
||||
"basic_information" => "Informasi",
|
||||
"cannot_be_deleted" => "Pelanggan terpilih tidak bisa dihapus. satu atau lebih dari pelanggan yang dipilih memiliki penjualan.",
|
||||
"company_name" => "Perusahaan",
|
||||
"confirm_delete" => "Apakah Anda yakin ingin menghapus pelanggan yang dipilih?",
|
||||
"confirm_restore" => "Anda yakin akan mengembalikan pelanggan terpilih?",
|
||||
"consent" => "Persetujuan pendaftaran",
|
||||
"consent_required" => "Persetujuan pendaftaran adalah bidang yang harus diisi.",
|
||||
"csv_import_failed" => "Impor dari CSV gagal",
|
||||
"csv_import_nodata_wrongformat" => "Berkas yang Anda unggah tidak berisi data atau salah format.",
|
||||
"csv_import_partially_failed" => "Impor pelanggan berhasil dwngan beberapa kesalahan:",
|
||||
"csv_import_success" => "Impor pelanggan berhasil.",
|
||||
"customer" => "Pelanggan",
|
||||
"date" => "Tanggal",
|
||||
"discount" => "Diskon",
|
||||
"discount_fixed" => "Diskon Tetap",
|
||||
"discount_percent" => "Persentase Diskon",
|
||||
"discount_type" => "Jenis Diskon",
|
||||
"email_duplicate" => "Alamat email telah digunakan.",
|
||||
"employee" => "Karyawan",
|
||||
"error_adding_updating" => "Kesalahan ketika menambah atau memperbaharui pelanggan.",
|
||||
"import_items_csv" => "Impor pelanggan dari CSV",
|
||||
"mailchimp_activity_click" => "Klik Email",
|
||||
"mailchimp_activity_lastopen" => "Email yang terakhir dibuka",
|
||||
"mailchimp_activity_open" => "Buka email",
|
||||
"mailchimp_activity_total" => "Email terkirim",
|
||||
"mailchimp_activity_unopen" => "Email belum dibuka",
|
||||
"mailchimp_email_client" => "Klien email",
|
||||
"mailchimp_info" => "MailChimp",
|
||||
"mailchimp_member_rating" => "Peringkat",
|
||||
"mailchimp_status" => "Status",
|
||||
"mailchimp_vip" => "VIP",
|
||||
"max" => "Max. dihabiskan",
|
||||
"min" => "Min. dihabiskan",
|
||||
"new" => "Pelanggan Baru",
|
||||
"none_selected" => "Anda belum memilih pelanggan untuk dihapus.",
|
||||
"one_or_multiple" => "Pelanggan",
|
||||
"quantity" => "Kuantitas",
|
||||
"stats_info" => "Statistik",
|
||||
"successful_adding" => "Anda telah berhasil menambah pelanggan",
|
||||
"successful_deleted" => "Anda telah berhasil menghapus pelanggan",
|
||||
"successful_updating" => "Anda telah berhasil memperbarui pelanggan",
|
||||
"tax_code" => "Kode pajak",
|
||||
"tax_id" => "ID Pajak",
|
||||
"taxable" => "Dikenakan pajak",
|
||||
"total" => "Total",
|
||||
"update" => "Ubah Pelanggan",
|
||||
"rewards_package" => "Paket Hadiah",
|
||||
'account_number' => "Akun #",
|
||||
'account_number_duplicate' => "Nomor akun ini telah ada di basis data.",
|
||||
'available_points' => "Poin tersedia",
|
||||
'available_points_value' => "",
|
||||
'average' => "Rata-rata yang dihabiskan",
|
||||
'avg_discount' => "Rata-rata diskon",
|
||||
'basic_information' => "Informasi",
|
||||
'cannot_be_deleted' => "Pelanggan terpilih tidak bisa dihapus. satu atau lebih dari pelanggan yang dipilih memiliki penjualan.",
|
||||
'company_name' => "Perusahaan",
|
||||
'confirm_delete' => "Apakah Anda yakin ingin menghapus pelanggan yang dipilih?",
|
||||
'confirm_restore' => "Anda yakin akan mengembalikan pelanggan terpilih?",
|
||||
'consent' => "Persetujuan pendaftaran",
|
||||
'consent_required' => "Persetujuan pendaftaran adalah bidang yang harus diisi.",
|
||||
'csv_import_failed' => "Gagal impor CSV",
|
||||
'csv_import_nodata_wrongformat' => "Berkas yang Anda unggah tidak berisi data atau salah format.",
|
||||
'csv_import_partially_failed' => "Impor pelanggan berhasil dwngan beberapa kesalahan:",
|
||||
'csv_import_success' => "Impor pelanggan berhasil.",
|
||||
'customer' => "Pelanggan",
|
||||
'date' => "Tanggal",
|
||||
'discount' => "Diskon",
|
||||
'discount_fixed' => "Diskon Tetap",
|
||||
'discount_percent' => "Persentase Diskon",
|
||||
'discount_type' => "Jenis Diskon",
|
||||
'email_duplicate' => "Alamat email telah digunakan.",
|
||||
'employee' => "Karyawan",
|
||||
'error_adding_updating' => "Kesalahan ketika menambah atau memperbaharui pelanggan.",
|
||||
'import_items_csv' => "Impor pelanggan dari CSV",
|
||||
'mailchimp_activity_click' => "Klik Email",
|
||||
'mailchimp_activity_lastopen' => "Email yang terakhir dibuka",
|
||||
'mailchimp_activity_open' => "Buka email",
|
||||
'mailchimp_activity_total' => "Email terkirim",
|
||||
'mailchimp_activity_unopen' => "Email belum dibuka",
|
||||
'mailchimp_email_client' => "Klien email",
|
||||
'mailchimp_info' => "MailChimp",
|
||||
'mailchimp_member_rating' => "Peringkat",
|
||||
'mailchimp_status' => "Status",
|
||||
'mailchimp_vip' => "VIP",
|
||||
'max' => "Max. dihabiskan",
|
||||
'min' => "Min. dihabiskan",
|
||||
'new' => "Pelanggan Baru",
|
||||
'none_selected' => "Anda belum memilih pelanggan untuk dihapus.",
|
||||
'one_or_multiple' => "Pelanggan",
|
||||
'quantity' => "Kuantitas",
|
||||
'stats_info' => "Statistik",
|
||||
'successful_adding' => "Anda telah berhasil menambah pelanggan",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'successful_updating' => "Anda telah berhasil memperbarui pelanggan",
|
||||
'tax_code' => "Kode pajak",
|
||||
'tax_id' => "ID Pajak",
|
||||
'taxable' => "Dikenakan pajak",
|
||||
'total' => "Total",
|
||||
'update' => "Ubah Pelanggan",
|
||||
'rewards_package' => "Paket Hadiah",
|
||||
];
|
||||
|
||||
@@ -1,44 +1,45 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"administrator" => "",
|
||||
"basic_information" => "Informasi Karyawan",
|
||||
"cannot_be_deleted" => "Karyawan terpilih tidak bisa dihapus satu atau lebih dari para pekerja telah memproses penjualan atau Anda mencoba untuk menghapus diri Anda sendiri.",
|
||||
"change_employee" => "",
|
||||
"change_password" => "Ubah kata kunci",
|
||||
"clerk" => "",
|
||||
"commission" => "",
|
||||
"confirm_delete" => "Apakah Anda yakin ingin menghapus karyawan yang dipilih?",
|
||||
"confirm_restore" => "Anda yakin ingin mengembalikan karyawan terpilih?",
|
||||
"current_password" => "Kata kunci sekarang",
|
||||
"current_password_invalid" => "Kata kunci sekarang salah.",
|
||||
"employee" => "Karyawan",
|
||||
"error_adding_updating" => "Kesalahan menambah / memperbarui karyawan.",
|
||||
"error_deleting_demo_admin" => "Anda tidak dapat menghapus Demo admin user.",
|
||||
"error_updating_demo_admin" => "Anda tidak dapat mengubah Demo admin user.",
|
||||
"language" => "Bahasa",
|
||||
"login_info" => "Info Login Karyawan",
|
||||
"manager" => "",
|
||||
"new" => "Karyawan Baru",
|
||||
"none_selected" => "Anda belum memilih karyawan untuk dihapus.",
|
||||
"one_or_multiple" => "Karyawan",
|
||||
"password" => "Kata Sandi",
|
||||
"password_minlength" => "Kata kunci minimal terdiri dari 8 karakter.",
|
||||
"password_must_match" => "Kata Sandi tidak cocok.",
|
||||
"password_not_must_match" => "Kata kunci sekarang dan kata kunci baru harus unik.",
|
||||
"password_required" => "Kata Sandi wajib diisi.",
|
||||
"permission_desc" => "Tandai kotak di bawah ini untuk memberikan akses ke Modul.",
|
||||
"permission_info" => "Hak Akses Karyawan",
|
||||
"repeat_password" => "Ulang Kata Sandi",
|
||||
"subpermission_required" => "Paling tidak tambahkan satu hak akses untuk setiap modul.",
|
||||
"successful_adding" => "Anda telah berhasil menambahkan karyawan.",
|
||||
"successful_change_password" => "Kata kunci berhasil diubah.",
|
||||
"successful_deleted" => "Anda telah berhasil menghapus",
|
||||
"successful_updating" => "Anda telah berhasil memperbarui karyawan",
|
||||
"system_language" => "Bahasa Sistem",
|
||||
"unsuccessful_change_password" => "Gagal mengubah kata sandi.",
|
||||
"update" => "Ubah Karyawan",
|
||||
"username" => "Nama Pengguna",
|
||||
"username_duplicate" => "Nama pengguna karyawan sudah digunakan. Silakan pilih yang lain.",
|
||||
"username_minlength" => "Nama Pengguna minimal 5 huruf.",
|
||||
"username_required" => "Nama Pengguna wajib diisi.",
|
||||
'administrator' => "",
|
||||
'basic_information' => "Informasi Karyawan",
|
||||
'cannot_be_deleted' => "Karyawan terpilih tidak bisa dihapus satu atau lebih dari para pekerja telah memproses penjualan atau Anda mencoba untuk menghapus diri Anda sendiri.",
|
||||
'change_employee' => "",
|
||||
'change_password' => "Ubah kata kunci",
|
||||
'clerk' => "",
|
||||
'commission' => "",
|
||||
'confirm_delete' => "Apakah Anda yakin ingin menghapus karyawan yang dipilih?",
|
||||
'confirm_restore' => "Anda yakin ingin mengembalikan karyawan terpilih?",
|
||||
'current_password' => "Kata kunci sekarang",
|
||||
'current_password_invalid' => "Kata kunci sekarang salah.",
|
||||
'employee' => "Karyawan",
|
||||
'error_adding_updating' => "Kesalahan menambah / memperbarui karyawan.",
|
||||
'error_deleting_demo_admin' => "Anda tidak dapat menghapus Demo admin user.",
|
||||
'error_updating_demo_admin' => "Anda tidak dapat mengubah Demo admin user.",
|
||||
'language' => "Bahasa",
|
||||
'login_info' => "Info Login Karyawan",
|
||||
'manager' => "",
|
||||
'new' => "Karyawan Baru",
|
||||
'none_selected' => "Anda belum memilih karyawan untuk dihapus.",
|
||||
'one_or_multiple' => "Karyawan",
|
||||
'password' => "Kata Sandi",
|
||||
'password_minlength' => "Kata kunci minimal terdiri dari 8 karakter.",
|
||||
'password_must_match' => "Kata Sandi tidak cocok.",
|
||||
'password_not_must_match' => "Kata kunci sekarang dan kata kunci baru harus unik.",
|
||||
'password_required' => "Kata Sandi wajib diisi.",
|
||||
'permission_desc' => "Tandai kotak di bawah ini untuk memberikan akses ke Modul.",
|
||||
'permission_info' => "Hak Akses Karyawan",
|
||||
'repeat_password' => "Ulang Kata Sandi",
|
||||
'subpermission_required' => "Paling tidak tambahkan satu hak akses untuk setiap modul.",
|
||||
'successful_adding' => "Anda telah berhasil menambahkan karyawan.",
|
||||
'successful_change_password' => "Kata kunci berhasil diubah.",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'successful_updating' => "Anda telah berhasil memperbarui karyawan",
|
||||
'system_language' => "Bahasa Sistem",
|
||||
'unsuccessful_change_password' => "Gagal mengubah kata sandi.",
|
||||
'update' => "Ubah Karyawan",
|
||||
'username' => "Nama Pengguna",
|
||||
'username_duplicate' => "Nama pengguna karyawan sudah digunakan. Silakan pilih yang lain.",
|
||||
'username_minlength' => "Nama Pengguna minimal 5 huruf.",
|
||||
'username_required' => "Nama Pengguna wajib diisi.",
|
||||
];
|
||||
|
||||
@@ -1,71 +1,72 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_minus" => "Penambahan atau pengurangan inventory.",
|
||||
"allow_alt_description" => "Deskripsi Alternatif dimungkinkan",
|
||||
"bulk_edit" => "Ubah Massal",
|
||||
"cannot_be_deleted" => "Tidak dapat menghapus GiftCard terpilih, Satu atau lebih GiftCard yang dipilih memiliki Penjualan.",
|
||||
"cannot_find_giftcard" => "Informasi GiftCard tidak ditemukan.",
|
||||
"cannot_use" => "Giftcard {0} tidak dapat digunakan: Pelanggan tidak valid.",
|
||||
"card_value" => "Nilai",
|
||||
"category" => "Kategori",
|
||||
"change_all_to_allow_alt_desc" => "Diijinkan deskripsi alternatif untuk semua.",
|
||||
"change_all_to_not_allow_allow_desc" => "Tidak diijinkan deskripsi alternatif untuk semua.",
|
||||
"change_all_to_serialized" => "Ubah semua menggunakan nomor serial",
|
||||
"change_all_to_unserialized" => "Ubah semua tanpa nomor serial",
|
||||
"confirm_bulk_edit" => "Apakah Anda yakin ingin merubah semua GiftCard yang dipilih?",
|
||||
"confirm_delete" => "Apakah anda yakin ingin menghapus GiftCard yang dipilih?",
|
||||
"confirm_restore" => "Apakah Anda yakin akan mengembalikan Gift Card terpilih?",
|
||||
"cost_price" => "Harga Pokok",
|
||||
"count" => "Mutasi/Penyesuaian Inventori",
|
||||
"csv_import_failed" => "Impor dari CSV gagal.",
|
||||
"current_quantity" => "Jumlah saat ini",
|
||||
"description" => "Deskripsi",
|
||||
"details_count" => "Jumlah Detail Inventori",
|
||||
"do_nothing" => "Tidak ada Perubahan",
|
||||
"edit_fields_you_want_to_update" => "Ubah bagian yang ingin Anda edit untuk SEMUA GiftCard yang dipilih.",
|
||||
"edit_multiple_giftcards" => "Ubah beberapa GiftCard.",
|
||||
"error_adding_updating" => "Kesalahan ketika menambahkan/memperbaharui GiftCard.",
|
||||
"error_updating_multiple" => "Gagal memperbaharui Giftcard.",
|
||||
"generate_barcodes" => "Buat Barcode",
|
||||
"giftcard" => "GiftCard",
|
||||
"giftcard_number" => "Nomor GiftCard",
|
||||
"info_provided_by" => "Informasi disediakan oleh",
|
||||
"inventory_comments" => "Keterangan",
|
||||
"is_serialized" => "GiftCard Memiliki Nomor Serial",
|
||||
"low_inventory_giftcards" => "GiftCard Inventori Rendah",
|
||||
"manually_editing_of_quantity" => "Perubahan jumlah Stok secara manual",
|
||||
"must_select_giftcard_for_barcode" => "Anda harus memilih minimal satu (1) GiftCard untuk membuat Barcode.",
|
||||
"new" => "GiftCard Baru",
|
||||
"no_description_giftcards" => "Tidak ada Deskripsi Gift Card",
|
||||
"no_giftcards_to_display" => "Tidak ada GiftCard yang ditampilkan.",
|
||||
"none" => "Tidak Ada",
|
||||
"none_selected" => "Anda belum memilih GiftCard untuk diubah.",
|
||||
"number" => "Nomor GiftCard harus angka.",
|
||||
"number_information" => "Nomor GiftCard",
|
||||
"number_required" => "Nomor GiftCard wajib diisi.",
|
||||
"one_or_multiple" => "GiftCard",
|
||||
"person_id" => "Nomor Pelanggan",
|
||||
"quantity" => "Jumlah",
|
||||
"quantity_required" => "Jumlah wajib diisi. Silahkan tutup ( X ) untuk batal.",
|
||||
"remaining_balance" => "Giftcard {0} tersisa {1}!",
|
||||
"reorder_level" => "Level Pesan Ulang",
|
||||
"retrive_giftcard_info" => "Informasi GiftCard",
|
||||
"sales_tax_1" => "Pajak Penjualan",
|
||||
"sales_tax_2" => "Pajak Penjualan 2",
|
||||
"serialized_giftcards" => "Serial GiftCard",
|
||||
"successful_adding" => "GiftCard telah berhasil ditambahkan",
|
||||
"successful_bulk_edit" => "Anda telah berhasil memperbarui GiftCard yang dipilih",
|
||||
"successful_deleted" => "GiftCard telah berhasil dihapus",
|
||||
"successful_updating" => "GiftCard telah berhasil diperbarui",
|
||||
"supplier" => "Pemasok",
|
||||
"tax_1" => "Pajak 1",
|
||||
"tax_2" => "Pajak 2",
|
||||
"tax_percent" => "Persen Pajak",
|
||||
"tax_percents" => "Persentase Pajak",
|
||||
"unit_price" => "Harga Jual",
|
||||
"upc_database" => "Database UPC",
|
||||
"update" => "Ubah GiftCard",
|
||||
"use_inventory_menu" => "Gunakan Inv. Menu",
|
||||
"value" => "Nilai GiftCard harus angka.",
|
||||
"value_required" => "Nilai GiftCard wajib diisi.",
|
||||
'add_minus' => "Tambah atau kurangi Inventori.",
|
||||
'allow_alt_description' => "Izinkan Deskripsi Alternatif",
|
||||
'bulk_edit' => "Ubah Massal",
|
||||
'cannot_be_deleted' => "Kartu Hadiah tidak dapat dihapus, satu atau beberapa di antaranya memiliki penjualan.",
|
||||
'cannot_find_giftcard' => "Kartu Hadiah tidak ditemukan.",
|
||||
'cannot_use' => "Kartu Hadiah {0} tidak dapat digunakan: Pelanggan tidak valid.",
|
||||
'card_value' => "Nilai",
|
||||
'category' => "Kategori",
|
||||
'change_all_to_allow_alt_desc' => "Izinkan deskripsi alternatif untuk semua.",
|
||||
'change_all_to_not_allow_allow_desc' => "Tidak diizinkan deskripsi alternatif untuk semua.",
|
||||
'change_all_to_serialized' => "Ubah semua jadi berseri",
|
||||
'change_all_to_unserialized' => "Ubah semua menjadi tidak berseri",
|
||||
'confirm_bulk_edit' => "Apakah Anda ingin edit Kartu Hadiah terpilih?",
|
||||
'confirm_delete' => "Anda yakin ingin menghapus Kartu Hadiah terpilih?",
|
||||
'confirm_restore' => "Anda yakin ingin memulihkan Kartu Hadiah terpilih?",
|
||||
'cost_price' => "Harga Beli",
|
||||
'count' => "Mutasi Inventori",
|
||||
'csv_import_failed' => "Impor dari CSV gagal.",
|
||||
'current_quantity' => "Jumlah saat ini",
|
||||
'description' => "Deskripsi",
|
||||
'details_count' => "Jumlah Detail Inventori",
|
||||
'do_nothing' => "Tidak ada Perubahan",
|
||||
'edit_fields_you_want_to_update' => "Edit kolom yang diinginkan pada Kartu Hadiah terpilih.",
|
||||
'edit_multiple_giftcards' => "Edit beberapa Kartu Hadiah.",
|
||||
'error_adding_updating' => "Gagal menambah atau memperbarui Kartu Hadiah.",
|
||||
'error_updating_multiple' => "Gagal memperbaharui Kartu Hadiah.",
|
||||
'generate_barcodes' => "Buat Barcode",
|
||||
'giftcard' => "Kartu Hadiah",
|
||||
'giftcard_number' => "Nomor Kartu Hadiah",
|
||||
'info_provided_by' => "Info disediakan oleh",
|
||||
'inventory_comments' => "Keterangan",
|
||||
'is_serialized' => "Kartu Hadiah memiliki nomor seri",
|
||||
'low_inventory_giftcards' => "Kartu Hadiah Inventori Rendah",
|
||||
'manually_editing_of_quantity' => "Edit manual kuantitas",
|
||||
'must_select_giftcard_for_barcode' => "Anda harus pilih setidaknya satu (1) Kartu Hadiah untuk membuat barcode.",
|
||||
'new' => "Kartu Hadiah baru",
|
||||
'no_description_giftcards' => "Tidak ada deskripsi Kartu Hadiah",
|
||||
'no_giftcards_to_display' => "Tidak ada Kartu Hadiah yang ditampilkan.",
|
||||
'none' => "Tidak Ada",
|
||||
'none_selected' => "Belum ada Kartu Hadiah terpilih untuk diedit.",
|
||||
'number' => "Nomor Kartu Hadiah harus angka.",
|
||||
'number_information' => "Nomor Kartu Hadiah",
|
||||
'number_required' => "Nomor Kartu Hadiah wajib diisi.",
|
||||
'one_or_multiple' => "Kartu Hadiah",
|
||||
'person_id' => "Pelanggan",
|
||||
'quantity' => "Jumlah",
|
||||
'quantity_required' => "Jumlah wajib diisi. Silahkan tutup ( X ) untuk batal.",
|
||||
'remaining_balance' => "Kartu Hadiah {0} tersisa {1}!",
|
||||
'reorder_level' => "Level pesan ulang",
|
||||
'retrive_giftcard_info' => "Informasi Kartu Hadiah",
|
||||
'sales_tax_1' => "Pajak Penjualan",
|
||||
'sales_tax_2' => "Pajak Penjualan 2",
|
||||
'serialized_giftcards' => "Kartu Hadiah berseri",
|
||||
'successful_adding' => "Berhasil menambahkan Kartu Hadiah",
|
||||
'successful_bulk_edit' => "Berhasil memperbarui Kartu Hadiah terpilih",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'successful_updating' => "Berhasil perbarui Kartu Hadiah",
|
||||
'supplier' => "Pemasok",
|
||||
'tax_1' => "Pajak 1",
|
||||
'tax_2' => "Pajak 2",
|
||||
'tax_percent' => "Persentasi Pajak",
|
||||
'tax_percents' => "Persentase Pajak",
|
||||
'unit_price' => "Harga Jual",
|
||||
'upc_database' => "Basis data Barcode",
|
||||
'update' => "Perbarui Kartu Hadiah",
|
||||
'use_inventory_menu' => "Gunakan Inv. Menu",
|
||||
'value' => "Nilai Kartu Hadiah harus angka.",
|
||||
'value_required' => "Nilai Kartu Hadiah wajib diisi.",
|
||||
];
|
||||
|
||||
@@ -1,41 +1,42 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_item" => "Tambah Item Barang",
|
||||
"all" => "Semua",
|
||||
"cannot_be_deleted" => "Item Paket tidak dapat dihapus.",
|
||||
"confirm_delete" => "Apakah Anda yakin ingin menghapus Item Paket dipilih?",
|
||||
"confirm_restore" => "Apakah Anda yakin untuk mengembalikan Kit Item yang terpilih?",
|
||||
"description" => "Deskripsi Item Paket",
|
||||
"discount" => "Diskon",
|
||||
"discount_fixed" => "Diskon Tetap",
|
||||
"discount_percent" => "Persentase Diskon",
|
||||
"discount_type" => "Jenis Diskon",
|
||||
"error_adding_updating" => "Tambah/Ubah Item Paket tidak berhasil.",
|
||||
"find_kit_item" => "Paket Item",
|
||||
"info" => "Item Paket Info",
|
||||
"item" => "Item Barang",
|
||||
"item_kit_number" => "Kode bar",
|
||||
"item_kit_number_duplicate" => "Nomor Paket Item telah ada di basis data.",
|
||||
"item_number" => "",
|
||||
"item_number_duplicate" => "",
|
||||
"items" => "Item Barang",
|
||||
"kit" => "ID Paket",
|
||||
"kit_and_components" => "Kit dan komponen",
|
||||
"kit_and_stock" => "Kit dan Stok",
|
||||
"kit_only" => "Hanya Kit",
|
||||
"name" => "Nama Item Paket",
|
||||
"new" => "Item Paket Baru",
|
||||
"no_item_kits_to_display" => "Tidak ada Item Paket yang ditampilkan.",
|
||||
"none_selected" => "Anda belum memilih satupun Item Paket.",
|
||||
"one_or_multiple" => "Item Paket",
|
||||
"price_option" => "Opsi Harga",
|
||||
"priced_only" => "Hanya Harga",
|
||||
"print_option" => "Opsi Cetak",
|
||||
"quantity" => "Jumlah",
|
||||
"sequence" => "Urutan",
|
||||
"successful_adding" => "Item Paket Baru berhasil ditambahkan",
|
||||
"successful_deleted" => "Item Paket berhasil dihapus",
|
||||
"successful_updating" => "Item Paket berhasil dirubah",
|
||||
"unit_price" => "",
|
||||
"update" => "Ubah Item Paket",
|
||||
'add_item' => "Tambah Item Barang",
|
||||
'all' => "Semua",
|
||||
'cannot_be_deleted' => "Item Paket tidak dapat dihapus.",
|
||||
'confirm_delete' => "Apakah Anda yakin ingin menghapus Item Paket dipilih?",
|
||||
'confirm_restore' => "Apakah Anda yakin untuk mengembalikan Kit Item yang terpilih?",
|
||||
'description' => "Deskripsi Item Paket",
|
||||
'discount' => "Diskon",
|
||||
'discount_fixed' => "Diskon Tetap",
|
||||
'discount_percent' => "Persentase Diskon",
|
||||
'discount_type' => "Jenis Diskon",
|
||||
'error_adding_updating' => "Tambah/Ubah Item Paket tidak berhasil.",
|
||||
'find_kit_item' => "Paket Item",
|
||||
'info' => "Item Paket Info",
|
||||
'item' => "Item Barang",
|
||||
'item_kit_number' => "Kode bar",
|
||||
'item_kit_number_duplicate' => "Nomor Paket Item telah ada di basis data.",
|
||||
'item_number' => "",
|
||||
'item_number_duplicate' => "",
|
||||
'items' => "Item Barang",
|
||||
'kit' => "ID Paket",
|
||||
'kit_and_components' => "Kit dan komponen",
|
||||
'kit_and_stock' => "Kit dan Stok",
|
||||
'kit_only' => "Hanya Kit",
|
||||
'name' => "Nama Item Paket",
|
||||
'new' => "Item Paket Baru",
|
||||
'no_item_kits_to_display' => "Tidak ada Item Paket yang ditampilkan.",
|
||||
'none_selected' => "Anda belum memilih satupun Item Paket.",
|
||||
'one_or_multiple' => "Item Paket",
|
||||
'price_option' => "Opsi Harga",
|
||||
'priced_only' => "Hanya Harga",
|
||||
'print_option' => "Opsi Cetak",
|
||||
'quantity' => "Jumlah",
|
||||
'sequence' => "Urutan",
|
||||
'successful_adding' => "Item Paket Baru berhasil ditambahkan",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'successful_updating' => "Item Paket berhasil dirubah",
|
||||
'unit_price' => "",
|
||||
'update' => "Ubah Item Paket",
|
||||
];
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
return [
|
||||
'add_minus' => "Menambah atau mengurangi Inventori.",
|
||||
'allow_alt_description' => "Deskripsi Alternatif dimungkinkan",
|
||||
|
||||
return [
|
||||
'add_minus' => "Tambah atau kurangi Inventori.",
|
||||
'allow_alt_description' => "Izinkan Deskripsi Alternatif",
|
||||
'amount_entry' => "Jumlah entri",
|
||||
'bulk_edit' => "Ubah Massal",
|
||||
'buy_price_required' => "Harga Beli wajib diisi.",
|
||||
@@ -13,22 +14,22 @@
|
||||
'category_required' => "Kategori wajib diisi.",
|
||||
'change_all_to_allow_alt_desc' => "Izinkan deskripsi alternatif untuk semua.",
|
||||
'change_all_to_not_allow_allow_desc' => "Tidak diizinkan deskripsi alternatif untuk semua.",
|
||||
'change_all_to_serialized' => "Ubah semua menggunakan nomor serial",
|
||||
'change_all_to_unserialized' => "Ubah semua tanpa nomor serial",
|
||||
'change_all_to_serialized' => "Ubah semua jadi berseri",
|
||||
'change_all_to_unserialized' => "Ubah semua menjadi tidak berseri",
|
||||
'change_image' => "Ubah Gambar",
|
||||
'confirm_bulk_edit' => "Apakah Anda yakin ingin merubah semua item yang dipilih?",
|
||||
'confirm_bulk_edit' => "Anda yakin ingin mengubah semua item terpilih?",
|
||||
'confirm_bulk_edit_wipe_taxes' => "Semua item informasi pajak akan diganti.",
|
||||
'confirm_delete' => "Apakah Anda yakin ingin menghapus item yang dipilih?",
|
||||
'confirm_delete' => "Anda yakin ingin menghapus item terpilih?",
|
||||
'confirm_restore' => "Anda yakin ingin mengembalikan item terpilih?",
|
||||
'cost_price' => "Harga Beli",
|
||||
'cost_price_number' => "Harga beli harus berupa angka.",
|
||||
'cost_price_required' => "Harga beli harus diisi.",
|
||||
'count' => "Mutasi/Penyesuaian Inventori",
|
||||
'csv_import_failed' => "Impor dari CSV tidak berhasil dilakukan",
|
||||
'csv_import_nodata_wrongformat' => "Berkas unggahan tidak berisi data atau format salah.",
|
||||
'csv_import_partially_failed' => "Terdapat {0} item yang gagal diimpor pada baris: {1}. Tidak ada kolom yang diimpor.",
|
||||
'csv_import_success' => "Impor item berhasil.",
|
||||
'current_quantity' => "Jumlah Saat ini",
|
||||
'count' => "Mutasi Inventori",
|
||||
'csv_import_failed' => "Gagal impor CSV",
|
||||
'csv_import_nodata_wrongformat' => "Berkas CSV terunggah tidak berisi data atau formatnya salah.",
|
||||
'csv_import_partially_failed' => "Terdapat {0} item gagal impor pada baris: {1}. Tidak ada baris yang diimpor.",
|
||||
'csv_import_success' => "Impor item CSV berhasil.",
|
||||
'current_quantity' => "Jumlah saat ini",
|
||||
'default_pack_name' => "Setiap",
|
||||
'description' => "Deskripsi",
|
||||
'details_count' => "Jumlah Detail Inventori",
|
||||
@@ -63,7 +64,7 @@
|
||||
'location' => "Lokasi Barang",
|
||||
'low_inventory_items' => "Daftar Stock Rendah",
|
||||
'low_sell_item' => "Produk dengan Penjualan yang Rendah",
|
||||
'manually_editing_of_quantity' => "Perubahan jumlah Stok secara manual",
|
||||
'manually_editing_of_quantity' => "Edit manual kuantitas",
|
||||
'markup' => "",
|
||||
'name' => "Nama Barang",
|
||||
'name_required' => "Nama item wajib diisi.",
|
||||
@@ -83,7 +84,7 @@
|
||||
'quantity_required' => "Jumlah wajib diisi.",
|
||||
'receiving_quantity' => "Jumlah per penerimaan",
|
||||
'remove_image' => "Hapus gambar",
|
||||
'reorder_level' => "Batas pesan ulang",
|
||||
'reorder_level' => "Level pesan ulang",
|
||||
'reorder_level_number' => "Batas pesan ulang harus berupa angka.",
|
||||
'reorder_level_required' => "Batas pesan ulang wajib diisi.",
|
||||
'retrive_item_info' => "Dapatkan Info Barang",
|
||||
@@ -98,7 +99,7 @@
|
||||
'stock_type' => "Jenis Stok",
|
||||
'successful_adding' => "Item Barang telah berhasil ditambahkan",
|
||||
'successful_bulk_edit' => "Anda telah berhasil memperbarui item yang dipilih",
|
||||
'successful_deleted' => "Item Barang telah berhasil dihapus",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'successful_updating' => "Item Barang telah berhasil diperbarui",
|
||||
'supplier' => "Pemasok",
|
||||
'tax_1' => "Pajak 1",
|
||||
@@ -114,7 +115,7 @@
|
||||
'unit_price' => "Harga Jual",
|
||||
'unit_price_number' => "Harga satuan harus berupa angka.",
|
||||
'unit_price_required' => "Harga Jual wajib diisi.",
|
||||
'upc_database' => "Database UPC",
|
||||
'upc_database' => "Basis data Barcode",
|
||||
'update' => "Ubah",
|
||||
'use_inventory_menu' => "Gunakan Inv. Menu",
|
||||
];
|
||||
|
||||
@@ -1,58 +1,59 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"amount_due" => "",
|
||||
"cancel_receiving" => "Batal",
|
||||
"cannot_be_deleted" => "Tidak bisa dihapus.",
|
||||
"comments" => "Keterangan",
|
||||
"complete_receiving" => "Selesai",
|
||||
"confirm_cancel_receiving" => "Apakah anda yakin untuk menghapus Pembelian Barang masuk ini? Semua item Akan dihapus.",
|
||||
"confirm_delete" => "Apakah Anda yakin akan hapus penerimaan ini? Tindakan ini tidak bisa dibatalkan.",
|
||||
"confirm_finish_receiving" => "Apakah anda yakin untuk memproses Pembelian Barang masuk ini? Proses ini tidak dapat dibatalkan.",
|
||||
"confirm_restore" => "",
|
||||
"cost" => "Harga",
|
||||
"daily" => "",
|
||||
"date" => "Tanggal",
|
||||
"date_required" => "Tanggal harus diisi.",
|
||||
"date_type" => "Kolom tanggal harus diisi.",
|
||||
"delete_entire_sale" => "Hapus Semua Penjualan",
|
||||
"discount" => "Diskon",
|
||||
"edit" => "Ubah",
|
||||
"edit_sale" => "Ubah Pembelian",
|
||||
"employee" => "Karyawan",
|
||||
"error_editing_item" => "Ubah Item barang gagal.",
|
||||
"error_requisition" => "Tidak dapat memindahkan Persediaan dari atau ke Lokasi yang Sama.",
|
||||
"find_or_scan_item" => "Cari/Scan Item",
|
||||
"find_or_scan_item_or_receipt" => "Cari/Scan Item atau Faktur",
|
||||
"id" => "ID Pembelian",
|
||||
"item_name" => "Nama Item",
|
||||
"mode" => "Jenis Pembelian",
|
||||
"new_supplier" => "Pemasok Baru",
|
||||
"one_or_multiple" => "penerimaan",
|
||||
"print_after_sale" => "Cetak Faktur setelah penjualan",
|
||||
"quantity" => "Jumlah",
|
||||
"receipt" => "Faktur Pembelian",
|
||||
"receipt_number" => "No. Faktur Pembelian",
|
||||
"receiving" => "Barang Masuk",
|
||||
"reference" => "Referensi",
|
||||
"register" => "Pembelian Barang Masuk",
|
||||
"requisition" => "Daftar Permintaan",
|
||||
"return" => "Retur",
|
||||
"select_supplier" => "Pilih Pemasok (Opsional)",
|
||||
"ship_pack" => "Paket Pengiriman",
|
||||
"start_typing_supplier_name" => "Ketik nama pemasok ...",
|
||||
"stock" => "Stok",
|
||||
"stock_destination" => "Tujuan Stok",
|
||||
"stock_locaiton" => "Lokasi Stok",
|
||||
"stock_source" => "Asal Stok",
|
||||
"successfully_deleted" => "Berhasil Dihapus",
|
||||
"successfully_updated" => "Berhasil Diperbaharui",
|
||||
"supplier" => "Pemasok",
|
||||
"supplier_address" => "Alamat",
|
||||
"supplier_email" => "Email",
|
||||
"supplier_location" => "Lokasi",
|
||||
"total" => "Total",
|
||||
"transaction_failed" => "Transaksi Pembelian gagal.",
|
||||
"unable_to_add_item" => "Penambahan Item kedalam Pembelian Barang gagal.",
|
||||
"unsuccessfully_updated" => "Pembelian barang gagal Diperbaharui.",
|
||||
"update" => "Memperbarui",
|
||||
'amount_due' => "",
|
||||
'cancel_receiving' => "Batal",
|
||||
'cannot_be_deleted' => "Tidak bisa dihapus.",
|
||||
'comments' => "Keterangan",
|
||||
'complete_receiving' => "Selesai",
|
||||
'confirm_cancel_receiving' => "Apakah anda yakin untuk menghapus Pembelian Barang masuk ini? Semua item Akan dihapus.",
|
||||
'confirm_delete' => "Apakah Anda yakin akan hapus penerimaan ini? Tindakan ini tidak bisa dibatalkan.",
|
||||
'confirm_finish_receiving' => "Apakah anda yakin untuk memproses Pembelian Barang masuk ini? Proses ini tidak dapat dibatalkan.",
|
||||
'confirm_restore' => "",
|
||||
'cost' => "Harga",
|
||||
'daily' => "",
|
||||
'date' => "Tanggal",
|
||||
'date_required' => "Tanggal harus diisi.",
|
||||
'date_type' => "Kolom tanggal harus diisi.",
|
||||
'delete_entire_sale' => "Hapus Semua Penjualan",
|
||||
'discount' => "Diskon",
|
||||
'edit' => "Ubah",
|
||||
'edit_sale' => "Ubah Pembelian",
|
||||
'employee' => "Karyawan",
|
||||
'error_editing_item' => "Ubah Item barang gagal.",
|
||||
'error_requisition' => "Tidak dapat memindahkan Persediaan dari atau ke Lokasi yang Sama.",
|
||||
'find_or_scan_item' => "Cari/Scan Item",
|
||||
'find_or_scan_item_or_receipt' => "Temukan atau pindai Item atau Faktur",
|
||||
'id' => "ID Pembelian",
|
||||
'item_name' => "Nama Item",
|
||||
'mode' => "Jenis Pembelian",
|
||||
'new_supplier' => "Pemasok Baru",
|
||||
'one_or_multiple' => "penerimaan",
|
||||
'print_after_sale' => "Cetak Faktur setelah penjualan",
|
||||
'quantity' => "Jumlah",
|
||||
'receipt' => "Faktur Pembelian",
|
||||
'receipt_number' => "No. Faktur Pembelian",
|
||||
'receiving' => "Barang Masuk",
|
||||
'reference' => "Referensi",
|
||||
'register' => "Pembelian Barang Masuk",
|
||||
'requisition' => "Daftar Permintaan",
|
||||
'return' => "Retur",
|
||||
'select_supplier' => "Pilih Pemasok (Opsional)",
|
||||
'ship_pack' => "Paket Pengiriman",
|
||||
'start_typing_supplier_name' => "Ketik nama pemasok ...",
|
||||
'stock' => "Stok",
|
||||
'stock_destination' => "Tujuan Stok",
|
||||
'stock_locaiton' => "Lokasi Stok",
|
||||
'stock_source' => "Asal Stok",
|
||||
'successfully_deleted' => "Berhasil Dihapus",
|
||||
'successfully_updated' => "Berhasil Diperbaharui",
|
||||
'supplier' => "Pemasok",
|
||||
'supplier_address' => "Alamat",
|
||||
'supplier_email' => "Email",
|
||||
'supplier_location' => "Lokasi",
|
||||
'total' => "Total",
|
||||
'transaction_failed' => "Transaksi Pembelian gagal.",
|
||||
'unable_to_add_item' => "Penambahan Item kedalam Pembelian Barang gagal.",
|
||||
'unsuccessfully_updated' => "Pembelian barang gagal Diperbaharui.",
|
||||
'update' => "Memperbarui",
|
||||
];
|
||||
|
||||
@@ -1,148 +1,149 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"all" => "Semua",
|
||||
"authority" => "Otoritas",
|
||||
"canceled" => "Dibatalkan",
|
||||
"categories" => "Kategori",
|
||||
"categories_summary_report" => "Laporan Ringkasan Kategori",
|
||||
"category" => "Kategori",
|
||||
"code_canceled" => "CNL",
|
||||
"code_invoice" => "INV",
|
||||
"code_pos" => "POS",
|
||||
"code_quote" => "Q",
|
||||
"code_return" => "RET",
|
||||
"code_type" => "Tipe",
|
||||
"code_work_order" => "W/O",
|
||||
"comments" => "Catatan",
|
||||
"commission" => "",
|
||||
"complete" => "Penjualan dan Retur yang sukses",
|
||||
"completed_sales" => "Penjualan yang Sukses",
|
||||
"confirm_delete" => "Anda yakin ingin menghapus masukan terpilih?",
|
||||
"confirm_restore" => "Anda yakin ingin mengembalikan entri terpilih?",
|
||||
"cost" => "Grosir",
|
||||
"cost_price" => "Harga Beli",
|
||||
"count" => "Jumlah",
|
||||
"customer" => "Pelanggan",
|
||||
"customers" => "Pelanggan",
|
||||
"customers_summary_report" => "Laporan Ringkasan Pelanggan",
|
||||
"date" => "Tanggal",
|
||||
"date_range" => "Rentang Tanggal",
|
||||
"description" => "Deskripsi",
|
||||
"detailed_receivings_report" => "Laporan Detail Barang Masuk",
|
||||
"detailed_receivings_report_input" => "",
|
||||
"detailed_reports" => "Perincian Laporan",
|
||||
"detailed_requisition_report" => "Rincian Daftar Laporan Permintaan",
|
||||
"detailed_sales_report" => "Laporan Perincian Penjualan",
|
||||
"discount" => "Diskon",
|
||||
"discount_fixed" => "Diskon Tetap",
|
||||
"discount_percent" => "Persen Diskon",
|
||||
"discount_type" => "Tipe Diskon",
|
||||
"discounts" => "Diskon",
|
||||
"discounts_summary_report" => "Laporan Ringkasan Diskon",
|
||||
"earned" => "Poin yang diperoleh",
|
||||
"employee" => "Karyawan",
|
||||
"employees" => "Karyawan",
|
||||
"employees_summary_report" => "Laporan Ringkasan Karyawan",
|
||||
"expenses" => "Biaya",
|
||||
"expenses_amount" => "Jumlah",
|
||||
"expenses_categories" => "Biaya",
|
||||
"expenses_categories_summary_report" => "Laporan RIngkasan Kategori Biaya",
|
||||
"expenses_category" => "Kategori",
|
||||
"expenses_payment_amount" => "",
|
||||
"expenses_tax_amount" => "Pajak",
|
||||
"expenses_total_amount" => "Jumlah Total",
|
||||
"expenses_total_tax_amount" => "Total Pajak",
|
||||
"graphical_reports" => "Laporan Dalam Bentuk Grafis",
|
||||
"inventory" => "Laporan Persediaan",
|
||||
"inventory_low" => "Laporan Persediaan Rendah",
|
||||
"inventory_low_report" => "Laporan Persediaan Rendah",
|
||||
"inventory_reports" => "Laporan Persediaan",
|
||||
"inventory_summary" => "Laporan Ringkasan Persediaan",
|
||||
"inventory_summary_report" => "Laporan Ringkasan Persediaan",
|
||||
"item" => "Produk/Item",
|
||||
"item_count" => "Filter Jumlah Item",
|
||||
"item_name" => "Nama Barang",
|
||||
"item_number" => "Kode batang",
|
||||
"items" => "Produk/Item",
|
||||
"items_purchased" => "Produk Dibeli",
|
||||
"items_received" => "Barang Masuk",
|
||||
"items_summary_report" => "Laporan Ringkasan Produk/Item",
|
||||
"jurisdiction" => "Ranah hukum",
|
||||
"low_inventory" => "Kurang Persediaan",
|
||||
"low_inventory_report" => "Laporan Persediaan Kurang",
|
||||
"low_sell_quantity" => "Jumlah penjualan yang rendah",
|
||||
"more_than_zero" => "Stok belum habis",
|
||||
"name" => "Nama",
|
||||
"no_reports_to_display" => "Tidak ada item untuk ditampilkan.",
|
||||
"payment_type" => "Tipe Pembayaran",
|
||||
"payments" => "Pembayaran",
|
||||
"payments_summary_report" => "Laporan Ringkasan Pembayaran",
|
||||
"profit" => "Keuntungan/Laba",
|
||||
"quantity" => "Jumlah",
|
||||
"quantity_purchased" => "Jumlah Dibeli",
|
||||
"quotes" => "Penawaran",
|
||||
"received_by" => "Diterima Oleh",
|
||||
"receiving_id" => "Id Penerima",
|
||||
"receiving_type" => "Type Diterima",
|
||||
"receivings" => "Barang Masuk",
|
||||
"reorder_level" => "Level Pesan Ulang",
|
||||
"report" => "Laporan",
|
||||
"report_input" => "Input data Laporan",
|
||||
"reports" => "Lihat dan Cetak Laporan",
|
||||
"requisition" => "Daftar Permintaan",
|
||||
"requisition_by" => "Daftar Permintaan Oleh",
|
||||
"requisition_id" => "Identitas Peminta",
|
||||
"requisition_item" => "Jenis Permintaan",
|
||||
"requisition_item_quantity" => "Jumlah Permintaan",
|
||||
"requisition_related_item" => "",
|
||||
"requisition_related_item_total_quantity" => "Jumlah Item Barang",
|
||||
"requisition_related_item_unit_quantity" => "Unit Item Barang",
|
||||
"requisitions" => "Laporan Permintaan",
|
||||
"returns" => "Retur",
|
||||
"revenue" => "Pendapatan",
|
||||
"sale_id" => "ID Penjualan",
|
||||
"sale_type" => "Jenis Penjualan",
|
||||
"sales" => "Penjualan",
|
||||
"sales_amount" => "Jumlah Penjualan",
|
||||
"sales_summary_report" => "Laporan Ringkasan Penjualan",
|
||||
"sales_taxes" => "Pajak Penjualan",
|
||||
"sales_taxes_summary_report" => "Laporan Ringkasan Pajak Penjualan",
|
||||
"serial_number" => "No. Seri #",
|
||||
"service_charge" => "",
|
||||
"sold_by" => "Dijual Oleh",
|
||||
"sold_items" => "",
|
||||
"sold_to" => "Dijual Kepada",
|
||||
"stock_location" => "Lokasi Stock",
|
||||
"sub_total_value" => "Sub-total",
|
||||
"subtotal" => "SubTotal",
|
||||
"summary_reports" => "Laporan Ringkas",
|
||||
"supplied_by" => "Pemasok",
|
||||
"supplier" => "Pemasok",
|
||||
"suppliers" => "Pemasok",
|
||||
"suppliers_summary_report" => "Laporan Ringkasan Pemasok",
|
||||
"tax" => "Pajak",
|
||||
"tax_category" => "Kategori Pajak",
|
||||
"tax_name" => "Nama Pajak",
|
||||
"tax_percent" => "Persentase Pajak",
|
||||
"tax_rate" => "Tarif Pajak",
|
||||
"taxes" => "Pajak",
|
||||
"taxes_summary_report" => "Laporan Ringkasan Pajak",
|
||||
"total" => "Total",
|
||||
"total_inventory_value" => "Total Nilai Persediaan",
|
||||
"total_low_sell_quantity" => "Total Jumlah Penjualan yang Rendah",
|
||||
"total_quantity" => "Total Kuantitas",
|
||||
"total_retail" => "Total Faktur Eceran Nilai",
|
||||
"trans_amount" => "Jumlah Transaksi",
|
||||
"trans_due" => "Hutang",
|
||||
"trans_group" => "Kelompok Transaksi",
|
||||
"trans_nopay_sales" => "Penjualan tanpa pembayaran",
|
||||
"trans_payments" => "Pembayaran",
|
||||
"trans_refunded" => "Dikembalikan",
|
||||
"trans_sales" => "Penjualan",
|
||||
"trans_type" => "Tipe Transaksi",
|
||||
"type" => "Tipe",
|
||||
"unit_price" => "Harga Jual",
|
||||
"used" => "Poin yang telah digunakan",
|
||||
"work_orders" => "Perintah Kerja",
|
||||
"zero_and_less" => "Stok habis dan minus",
|
||||
'all' => "Semua",
|
||||
'authority' => "Otoritas",
|
||||
'canceled' => "Dibatalkan",
|
||||
'categories' => "Kategori",
|
||||
'categories_summary_report' => "Laporan Ringkasan Kategori",
|
||||
'category' => "Kategori",
|
||||
'code_canceled' => "BTL",
|
||||
'code_invoice' => "INV",
|
||||
'code_pos' => "POS",
|
||||
'code_quote' => "Q",
|
||||
'code_return' => "RET",
|
||||
'code_type' => "Tipe",
|
||||
'code_work_order' => "W/O",
|
||||
'comments' => "Catatan",
|
||||
'commission' => "",
|
||||
'complete' => "Penjualan dan Retur yang sukses",
|
||||
'completed_sales' => "Penjualan yang Sukses",
|
||||
'confirm_delete' => "Anda yakin ingin menghapus masukan terpilih?",
|
||||
'confirm_restore' => "Anda yakin ingin mengembalikan entri terpilih?",
|
||||
'cost' => "Grosir",
|
||||
'cost_price' => "Harga Beli",
|
||||
'count' => "Jumlah",
|
||||
'customer' => "Pelanggan",
|
||||
'customers' => "Pelanggan",
|
||||
'customers_summary_report' => "Laporan Ringkasan Pelanggan",
|
||||
'date' => "Tanggal",
|
||||
'date_range' => "Rentang Tanggal",
|
||||
'description' => "Deskripsi",
|
||||
'detailed_receivings_report' => "Laporan Detail Barang Masuk",
|
||||
'detailed_receivings_report_input' => "",
|
||||
'detailed_reports' => "Perincian Laporan",
|
||||
'detailed_requisition_report' => "Rincian Daftar Laporan Permintaan",
|
||||
'detailed_sales_report' => "Laporan Perincian Penjualan",
|
||||
'discount' => "Diskon",
|
||||
'discount_fixed' => "Diskon Tetap",
|
||||
'discount_percent' => "Persen Diskon",
|
||||
'discount_type' => "Tipe Diskon",
|
||||
'discounts' => "Diskon",
|
||||
'discounts_summary_report' => "Laporan Ringkasan Diskon",
|
||||
'earned' => "Poin yang diperoleh",
|
||||
'employee' => "Karyawan",
|
||||
'employees' => "Karyawan",
|
||||
'employees_summary_report' => "Laporan Ringkasan Karyawan",
|
||||
'expenses' => "Biaya",
|
||||
'expenses_amount' => "Jumlah",
|
||||
'expenses_categories' => "Biaya",
|
||||
'expenses_categories_summary_report' => "Laporan RIngkasan Kategori Biaya",
|
||||
'expenses_category' => "Kategori",
|
||||
'expenses_payment_amount' => "",
|
||||
'expenses_tax_amount' => "Pajak",
|
||||
'expenses_total_amount' => "Jumlah Total",
|
||||
'expenses_total_tax_amount' => "Total Pajak",
|
||||
'graphical_reports' => "Laporan Dalam Bentuk Grafis",
|
||||
'inventory' => "Laporan Persediaan",
|
||||
'inventory_low' => "Laporan Persediaan Rendah",
|
||||
'inventory_low_report' => "Laporan Persediaan Rendah",
|
||||
'inventory_reports' => "Laporan Persediaan",
|
||||
'inventory_summary' => "Laporan Ringkasan Persediaan",
|
||||
'inventory_summary_report' => "Laporan Ringkasan Persediaan",
|
||||
'item' => "Produk/Item",
|
||||
'item_count' => "Filter Jumlah Item",
|
||||
'item_name' => "Nama Barang",
|
||||
'item_number' => "Kode batang",
|
||||
'items' => "Produk/Item",
|
||||
'items_purchased' => "Produk Dibeli",
|
||||
'items_received' => "Barang Masuk",
|
||||
'items_summary_report' => "Laporan Ringkasan Produk/Item",
|
||||
'jurisdiction' => "Ranah hukum",
|
||||
'low_inventory' => "Kurang Persediaan",
|
||||
'low_inventory_report' => "Laporan Persediaan Kurang",
|
||||
'low_sell_quantity' => "Jumlah penjualan yang rendah",
|
||||
'more_than_zero' => "Stok belum habis",
|
||||
'name' => "Nama",
|
||||
'no_reports_to_display' => "Tidak ada item untuk ditampilkan.",
|
||||
'payment_type' => "Tipe Pembayaran",
|
||||
'payments' => "Pembayaran",
|
||||
'payments_summary_report' => "Laporan Ringkasan Pembayaran",
|
||||
'profit' => "Keuntungan/Laba",
|
||||
'quantity' => "Jumlah",
|
||||
'quantity_purchased' => "Jumlah Dibeli",
|
||||
'quotes' => "Penawaran",
|
||||
'received_by' => "Diterima Oleh",
|
||||
'receiving_id' => "Id Penerima",
|
||||
'receiving_type' => "Type Diterima",
|
||||
'receivings' => "Barang Masuk",
|
||||
'reorder_level' => "Level pesan ulang",
|
||||
'report' => "Laporan",
|
||||
'report_input' => "Input data Laporan",
|
||||
'reports' => "Lihat dan Cetak Laporan",
|
||||
'requisition' => "Daftar Permintaan",
|
||||
'requisition_by' => "Daftar Permintaan Oleh",
|
||||
'requisition_id' => "Identitas Peminta",
|
||||
'requisition_item' => "Jenis Permintaan",
|
||||
'requisition_item_quantity' => "Jumlah Permintaan",
|
||||
'requisition_related_item' => "",
|
||||
'requisition_related_item_total_quantity' => "Jumlah Item Barang",
|
||||
'requisition_related_item_unit_quantity' => "Unit Item Barang",
|
||||
'requisitions' => "Laporan Permintaan",
|
||||
'returns' => "Retur",
|
||||
'revenue' => "Pendapatan",
|
||||
'sale_id' => "ID Penjualan",
|
||||
'sale_type' => "Jenis Penjualan",
|
||||
'sales' => "Penjualan",
|
||||
'sales_amount' => "Jumlah Penjualan",
|
||||
'sales_summary_report' => "Laporan Ringkasan Penjualan",
|
||||
'sales_taxes' => "Pajak Penjualan",
|
||||
'sales_taxes_summary_report' => "Laporan Ringkasan Pajak Penjualan",
|
||||
'serial_number' => "No. Seri #",
|
||||
'service_charge' => "",
|
||||
'sold_by' => "Dijual Oleh",
|
||||
'sold_items' => "",
|
||||
'sold_to' => "Dijual Kepada",
|
||||
'stock_location' => "Lokasi Stock",
|
||||
'sub_total_value' => "Sub-total",
|
||||
'subtotal' => "SubTotal",
|
||||
'summary_reports' => "Laporan Ringkas",
|
||||
'supplied_by' => "Pemasok",
|
||||
'supplier' => "Pemasok",
|
||||
'suppliers' => "Pemasok",
|
||||
'suppliers_summary_report' => "Laporan Ringkasan Pemasok",
|
||||
'tax' => "Pajak",
|
||||
'tax_category' => "Kategori Pajak",
|
||||
'tax_name' => "Nama Pajak",
|
||||
'tax_percent' => "Persentasi Pajak",
|
||||
'tax_rate' => "Tarif Pajak",
|
||||
'taxes' => "Pajak",
|
||||
'taxes_summary_report' => "Laporan Ringkasan Pajak",
|
||||
'total' => "Total",
|
||||
'total_inventory_value' => "Total Nilai Persediaan",
|
||||
'total_low_sell_quantity' => "Total Jumlah Penjualan yang Rendah",
|
||||
'total_quantity' => "Total Kuantitas",
|
||||
'total_retail' => "Total Faktur Eceran Nilai",
|
||||
'trans_amount' => "Jumlah Transaksi",
|
||||
'trans_due' => "Hutang",
|
||||
'trans_group' => "Kelompok Transaksi",
|
||||
'trans_nopay_sales' => "Penjualan tanpa pembayaran",
|
||||
'trans_payments' => "Pembayaran",
|
||||
'trans_refunded' => "Dikembalikan",
|
||||
'trans_sales' => "Penjualan",
|
||||
'trans_type' => "Tipe Transaksi",
|
||||
'type' => "Tipe",
|
||||
'unit_price' => "Harga Jual",
|
||||
'used' => "Poin yang telah digunakan",
|
||||
'work_orders' => "Perintah Kerja",
|
||||
'zero_and_less' => "Stok habis dan minus",
|
||||
];
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
return [
|
||||
|
||||
return [
|
||||
'customers_available_points' => "Poin tersedia",
|
||||
'rewards_package' => "Hadiah",
|
||||
'rewards_remaining_balance' => "Poin hadiah yang tersisa adalah ",
|
||||
@@ -73,11 +74,11 @@
|
||||
'entry' => "Entri",
|
||||
'error_editing_item' => "mengubah item salah",
|
||||
'find_or_scan_item' => "Cari/Scan Item",
|
||||
'find_or_scan_item_or_receipt' => "Cari atau Scan Item atau Faktur",
|
||||
'giftcard' => "Kupon Bonus",
|
||||
'find_or_scan_item_or_receipt' => "Temukan atau pindai Item atau Faktur",
|
||||
'giftcard' => "Kartu Hadiah",
|
||||
'giftcard_balance' => "Nilai Kupon Bonus",
|
||||
'giftcard_filter' => "",
|
||||
'giftcard_number' => "Nomor Kartu Bonus",
|
||||
'giftcard_number' => "Nomor Kartu Hadiah",
|
||||
'group_by_category' => "Dikelompokkan berdasarkan Kategori",
|
||||
'group_by_type' => "Dikelompokkan berdasarkan Jenis",
|
||||
'hsn' => "HSN",
|
||||
@@ -85,7 +86,7 @@
|
||||
'include_prices' => "Termasuk Harga?",
|
||||
'invoice' => "Faktur",
|
||||
'invoice_confirm' => "Faktur ini akan dikirim ke",
|
||||
'invoice_enable' => "Buat Faktur",
|
||||
'invoice_enable' => "Nomor Faktur",
|
||||
'invoice_filter' => "Faktur",
|
||||
'invoice_no_email' => "Pelanggan ini tidak memiliki alamat email yang valid.",
|
||||
'invoice_number' => "Nomor Nota",
|
||||
|
||||
@@ -1,24 +1,25 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"account_number" => "Nomor Akun Pemasok",
|
||||
"agency_name" => "Nama",
|
||||
"cannot_be_deleted" => "Tidak bisa dihapus pemasok yang dipilih, satu atau lebih dari pemasok yang dipilih memiliki penjualan.",
|
||||
"category" => "Kategori",
|
||||
"company_name" => "Nama Perusahaan",
|
||||
"company_name_required" => "Nama Perusahaan wajib diisi.",
|
||||
"confirm_delete" => "Apakah Anda yakin ingin menghapus pemasok yang dipilih?",
|
||||
"confirm_restore" => "Anda yakin ingin mengembalikan Pemasok terpilih?",
|
||||
"cost" => "Biaya Pemasok",
|
||||
"error_adding_updating" => "Kesalahan Menambah / memperbarui data pemasok.",
|
||||
"goods" => "Pemasok Barang",
|
||||
"new" => "Pemasok Baru",
|
||||
"none_selected" => "Anda belum memilih pemasok untuk dihapus.",
|
||||
"one_or_multiple" => "Pemasok",
|
||||
"successful_adding" => "Anda telah berhasil menambahkan data pemasok",
|
||||
"successful_deleted" => "Anda telah berhasil menghapus data pemasok",
|
||||
"successful_updating" => "Anda telah berhasil memperbarui data pemasok",
|
||||
"supplier" => "Pemasok",
|
||||
"supplier_id" => "ID",
|
||||
"tax_id" => "ID Pajak",
|
||||
"update" => "Ubah data Pemasok",
|
||||
'account_number' => "Nomor Akun Pemasok",
|
||||
'agency_name' => "Nama",
|
||||
'cannot_be_deleted' => "Tidak bisa dihapus pemasok yang dipilih, satu atau lebih dari pemasok yang dipilih memiliki penjualan.",
|
||||
'category' => "Kategori",
|
||||
'company_name' => "Nama Perusahaan",
|
||||
'company_name_required' => "Nama Perusahaan wajib diisi.",
|
||||
'confirm_delete' => "Apakah Anda yakin ingin menghapus pemasok yang dipilih?",
|
||||
'confirm_restore' => "Anda yakin ingin mengembalikan Pemasok terpilih?",
|
||||
'cost' => "Biaya Pemasok",
|
||||
'error_adding_updating' => "Kesalahan Menambah / memperbarui data pemasok.",
|
||||
'goods' => "Pemasok Barang",
|
||||
'new' => "Pemasok Baru",
|
||||
'none_selected' => "Anda belum memilih pemasok untuk dihapus.",
|
||||
'one_or_multiple' => "Pemasok",
|
||||
'successful_adding' => "Anda telah berhasil menambahkan data pemasok",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'successful_updating' => "Anda telah berhasil memperbarui data pemasok",
|
||||
'supplier' => "Pemasok",
|
||||
'supplier_id' => "ID",
|
||||
'tax_id' => "ID Pajak",
|
||||
'update' => "Ubah data Pemasok",
|
||||
];
|
||||
|
||||
@@ -1,82 +1,83 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"add_exception" => "Tambah pengecualian",
|
||||
"cascade" => "Menurunkan",
|
||||
"cascade_sequence" => "Urutan Penurunan",
|
||||
"city" => "Kota",
|
||||
"code" => "Kode",
|
||||
"confirm_delete" => "Anda yakin ingin menghapus Kode Pajak ini? Aksi ini tidak dapat dibatalkan",
|
||||
"confirm_restore" => "Anda yakin ingin mengembalikan Kode Pajak terpilih?",
|
||||
"default_tax_category" => "Kategori Pajak Default",
|
||||
"default_tax_rate" => "Taruf Pajak Default",
|
||||
"error_adding_updating" => "Penambahan atau pembaharuan Kode Pajak gagal",
|
||||
"group_seq" => "Urutan grup",
|
||||
"jurisdiction_name" => "Nama Yuridiksi",
|
||||
"name" => "Nama",
|
||||
"new" => "Pajak baru",
|
||||
"no_taxes" => "",
|
||||
"no_taxes_to_display" => "Tidak ada Kode Pajak yang dapat ditampilkan",
|
||||
"reporting_authority" => "Otoritas Pelaporan",
|
||||
"round_half_down" => "Turun setengah",
|
||||
"round_half_even" => "Setengah Genap",
|
||||
"round_half_odd" => "Setengah Ganjil",
|
||||
"round_half_up" => "Naikkan Setengah",
|
||||
"rounding_code" => "Kode Pembulatan",
|
||||
"sales_tax" => "Pajak Penjualan",
|
||||
"sales_tax_by_invoice" => "Pajak Penjualan berdasarkan faktur",
|
||||
"sequence" => "Urutan",
|
||||
"state" => "Status",
|
||||
"successful_deleted" => "Anda berhasil dihapus",
|
||||
"tax_categories" => "Kategori Pajak",
|
||||
"tax_categories_configuration" => "Konfigurasi Kategori Pajak",
|
||||
"tax_categories_saved_successfully" => "Perubahan Ketegori Pajak berhasil disimpan",
|
||||
"tax_categories_saved_unsuccessfully" => "Perubahan Kategori Pajak tidak tersimpan",
|
||||
"tax_category" => "Kategori pajak",
|
||||
"tax_category_code" => "Kode Kategori Pajak",
|
||||
"tax_category_duplicate" => "Kategori pajak ganda",
|
||||
"tax_category_invalid_chars" => "terdapat karakter yang salah dalam nama kategori pajak",
|
||||
"tax_category_name" => "Nama Kategori Pajak",
|
||||
"tax_category_new" => "Kategori Pajak baru",
|
||||
"tax_category_required" => "Kategori Pajak dibutuhkan",
|
||||
"tax_code" => "Kode Pajak",
|
||||
"tax_code_cannot_be_deleted" => "Gagal menghapus Kode Pajak",
|
||||
"tax_code_duplicate" => "Kode Pajak ganda",
|
||||
"tax_code_invalid_chars" => "Terdapat karakter yang salah dalam Kode Pajak",
|
||||
"tax_code_name" => "Nama Kode Pajak",
|
||||
"tax_code_required" => "Kode pajak harus diisi",
|
||||
"tax_code_successful_deleted" => "Anda berhasil menghapus Kode Pajak",
|
||||
"tax_code_successful_updated" => "Anda berhasil memperbaharui",
|
||||
"tax_code_successful_updating" => "Anda berhasil memperbaharui Kode Pajak",
|
||||
"tax_code_successfully_added" => "Anda berhasil menambahkan",
|
||||
"tax_code_type" => "jenis Kode Pajak",
|
||||
"tax_codes" => "Kode Pajak",
|
||||
"tax_codes_configuration" => "Konfigurasi Kode Pajak",
|
||||
"tax_codes_saved_successfully" => "Perubahan Kode Pajak berhasil disimpan",
|
||||
"tax_codes_saved_unsuccessfully" => "Perubahan Kode Pajak tidak tersimpan",
|
||||
"tax_excluded" => "Pengecualian Pajak",
|
||||
"tax_group" => "Grup Pajak",
|
||||
"tax_group_not_unique" => "Grup Pajak {0} tidak unik",
|
||||
"tax_group_sequence" => "Urutan Grup Pajak",
|
||||
"tax_included" => "Termasuk pajak",
|
||||
"tax_jurisdiction" => "Yuridiksi Pajak",
|
||||
"tax_jurisdiction_duplicate" => "Yuridiksi Pajak ganda",
|
||||
"tax_jurisdiction_invalid_chars" => "Karakter yang salah pada Nama Yuridiksi",
|
||||
"tax_jurisdiction_required" => "Diperlukan yurisdiksi Pajak",
|
||||
"tax_jurisdictions" => "Yurisdiksi Pajak",
|
||||
"tax_jurisdictions_configuration" => "Konfigurasi Yurisdiksi Pajak",
|
||||
"tax_jurisdictions_saved_successfully" => "Perubahan Yurisdiksi Pajak berhasil disimpan",
|
||||
"tax_jurisdictions_saved_unsuccessfully" => "Perubahan Yurisdiksi Pajak tidak tersimpan",
|
||||
"tax_rate" => "Tarif Pajak",
|
||||
"tax_rate_configuration" => "Konfigurasi Tarif Pajak",
|
||||
"tax_rate_error_adding_updating" => "Gagal menambahkan atau memperbaharui Tarif Pajak",
|
||||
"tax_rate_numeric" => "Tarif Pajak harus berupa angka",
|
||||
"tax_rate_required" => "Tarif Pajak harus diisi",
|
||||
"tax_rate_successful_updated" => "Anda berhasil melakukan perubahan",
|
||||
"tax_rate_successfully_added" => "Anda berhasil menambahkan",
|
||||
"tax_rates" => "Tarif Pajak",
|
||||
"tax_rates_configuration" => "Konfigurasi Tarif Pajak",
|
||||
"tax_rounding" => "Pembulatan Pajak",
|
||||
"tax_type" => "Jenis Pajak",
|
||||
"update" => "Perbaharui Tarif Pajak",
|
||||
"vat_tax" => "PPN",
|
||||
'add_exception' => "Tambah pengecualian",
|
||||
'cascade' => "Menurunkan",
|
||||
'cascade_sequence' => "Urutan Penurunan",
|
||||
'city' => "Kota",
|
||||
'code' => "Kode",
|
||||
'confirm_delete' => "Anda yakin ingin menghapus Kode Pajak ini? Aksi ini tidak dapat dibatalkan",
|
||||
'confirm_restore' => "Anda yakin ingin mengembalikan Kode Pajak terpilih?",
|
||||
'default_tax_category' => "Kategori Pajak Default",
|
||||
'default_tax_rate' => "Taruf Pajak Default",
|
||||
'error_adding_updating' => "Penambahan atau pembaharuan Kode Pajak gagal",
|
||||
'group_seq' => "Urutan grup",
|
||||
'jurisdiction_name' => "Nama Yuridiksi",
|
||||
'name' => "Nama",
|
||||
'new' => "Pajak baru",
|
||||
'no_taxes' => "",
|
||||
'no_taxes_to_display' => "Tidak ada Kode Pajak yang dapat ditampilkan",
|
||||
'reporting_authority' => "Otoritas Pelaporan",
|
||||
'round_half_down' => "Turun setengah",
|
||||
'round_half_even' => "Setengah Genap",
|
||||
'round_half_odd' => "Setengah Ganjil",
|
||||
'round_half_up' => "Naikkan Setengah",
|
||||
'rounding_code' => "Kode Pembulatan",
|
||||
'sales_tax' => "Pajak Penjualan",
|
||||
'sales_tax_by_invoice' => "Pajak Penjualan berdasarkan faktur",
|
||||
'sequence' => "Urutan",
|
||||
'state' => "Status",
|
||||
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
|
||||
'tax_categories' => "Kategori Pajak",
|
||||
'tax_categories_configuration' => "Konfigurasi Kategori Pajak",
|
||||
'tax_categories_saved_successfully' => "Perubahan Ketegori Pajak berhasil disimpan",
|
||||
'tax_categories_saved_unsuccessfully' => "Perubahan Kategori Pajak tidak tersimpan",
|
||||
'tax_category' => "Kategori pajak",
|
||||
'tax_category_code' => "Kode Kategori Pajak",
|
||||
'tax_category_duplicate' => "Kategori pajak ganda",
|
||||
'tax_category_invalid_chars' => "terdapat karakter yang salah dalam nama kategori pajak",
|
||||
'tax_category_name' => "Nama Kategori Pajak",
|
||||
'tax_category_new' => "Kategori Pajak baru",
|
||||
'tax_category_required' => "Kategori Pajak dibutuhkan",
|
||||
'tax_code' => "Kode Pajak",
|
||||
'tax_code_cannot_be_deleted' => "Gagal menghapus Kode Pajak",
|
||||
'tax_code_duplicate' => "Kode Pajak ganda",
|
||||
'tax_code_invalid_chars' => "Terdapat karakter yang salah dalam Kode Pajak",
|
||||
'tax_code_name' => "Nama Kode Pajak",
|
||||
'tax_code_required' => "Kode pajak harus diisi",
|
||||
'tax_code_successful_deleted' => "Anda berhasil menghapus Kode Pajak",
|
||||
'tax_code_successful_updated' => "Anda berhasil memperbaharui",
|
||||
'tax_code_successful_updating' => "Anda berhasil memperbaharui Kode Pajak",
|
||||
'tax_code_successfully_added' => "Anda berhasil menambahkan",
|
||||
'tax_code_type' => "jenis Kode Pajak",
|
||||
'tax_codes' => "Kode Pajak",
|
||||
'tax_codes_configuration' => "Konfigurasi Kode Pajak",
|
||||
'tax_codes_saved_successfully' => "Perubahan Kode Pajak berhasil disimpan",
|
||||
'tax_codes_saved_unsuccessfully' => "Perubahan Kode Pajak tidak tersimpan",
|
||||
'tax_excluded' => "Pengecualian Pajak",
|
||||
'tax_group' => "Grup Pajak",
|
||||
'tax_group_not_unique' => "Grup Pajak {0} tidak unik",
|
||||
'tax_group_sequence' => "Urutan Grup Pajak",
|
||||
'tax_included' => "Termasuk pajak",
|
||||
'tax_jurisdiction' => "Yuridiksi Pajak",
|
||||
'tax_jurisdiction_duplicate' => "Yuridiksi Pajak ganda",
|
||||
'tax_jurisdiction_invalid_chars' => "Karakter yang salah pada Nama Yuridiksi",
|
||||
'tax_jurisdiction_required' => "Diperlukan yurisdiksi Pajak",
|
||||
'tax_jurisdictions' => "Yurisdiksi Pajak",
|
||||
'tax_jurisdictions_configuration' => "Konfigurasi Yurisdiksi Pajak",
|
||||
'tax_jurisdictions_saved_successfully' => "Perubahan Yurisdiksi Pajak berhasil disimpan",
|
||||
'tax_jurisdictions_saved_unsuccessfully' => "Perubahan Yurisdiksi Pajak tidak tersimpan",
|
||||
'tax_rate' => "Tarif Pajak",
|
||||
'tax_rate_configuration' => "Konfigurasi Tarif Pajak",
|
||||
'tax_rate_error_adding_updating' => "Gagal menambahkan atau memperbaharui Tarif Pajak",
|
||||
'tax_rate_numeric' => "Tarif Pajak harus berupa angka",
|
||||
'tax_rate_required' => "Tarif Pajak harus diisi",
|
||||
'tax_rate_successful_updated' => "Anda berhasil melakukan perubahan",
|
||||
'tax_rate_successfully_added' => "Anda berhasil menambahkan",
|
||||
'tax_rates' => "Tarif Pajak",
|
||||
'tax_rates_configuration' => "Konfigurasi Tarif Pajak",
|
||||
'tax_rounding' => "Pembulatan Pajak",
|
||||
'tax_type' => "Jenis Pajak",
|
||||
'update' => "Perbaharui Tarif Pajak",
|
||||
'vat_tax' => "PPN",
|
||||
];
|
||||
|
||||
@@ -52,7 +52,7 @@ return [
|
||||
"expenses_tax_amount" => "Imposte",
|
||||
"expenses_total_amount" => "Totale Importo",
|
||||
"expenses_total_tax_amount" => "Totale Imposte",
|
||||
"graphical_reports" => "Resoconto Geografico",
|
||||
"graphical_reports" => "Resoconto Grafico",
|
||||
"inventory" => "Inventario",
|
||||
"inventory_low" => "Inventario Basso",
|
||||
"inventory_low_report" => "Resoconto Inventario Basso",
|
||||
|
||||
@@ -1,58 +1,59 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"amount_due" => "",
|
||||
"cancel_receiving" => "ยกเลิก",
|
||||
"cannot_be_deleted" => "ไม่สามารถลบใบรับสินค้าได้",
|
||||
"comments" => "ความคิดเห็น",
|
||||
"complete_receiving" => "เสร็จสิ้น",
|
||||
"confirm_cancel_receiving" => "คุณแน่ใจที่ต้องการล้างค่าใบรับสินค้าใช่หรือไม่? เมื่อล้างค่าแล้วทุกรายการจะถูกล้างออก",
|
||||
"confirm_delete" => "คุณต้องการลบใบรับสินค้าใช่หรือไม่? หากลบแล้วจะไม่สามารถเรียกคืนได้อีก",
|
||||
"confirm_finish_receiving" => "คุณต้องการบันทึกใบรับสินค้าใช่หรือไม่? เมื่อบันทึกแล้วไม่สามารถยกเลิกได้",
|
||||
"confirm_restore" => "",
|
||||
"cost" => "ต้นทุน",
|
||||
"daily" => "",
|
||||
"date" => "วันที่ใบรับสินค้า",
|
||||
"date_required" => "ต้องบันทึกวันที่ที่ถูกต้อง",
|
||||
"date_type" => "ต้องระบุวันที่",
|
||||
"delete_entire_sale" => "ลบรายการขายทั้งหมด",
|
||||
"discount" => "ส่วนลด %",
|
||||
"edit" => "แก้ไข",
|
||||
"edit_sale" => "แก้ไขรายการรับ",
|
||||
"employee" => "พนักงาน",
|
||||
"error_editing_item" => "แก้ไขสินค้าล้มเหลว",
|
||||
"error_requisition" => "ไม่สามารถย้ายสินค้าคงคลังจากหรือไปยังที่เก็บสินค้าเดียวกัน",
|
||||
"find_or_scan_item" => "ค้นหาสินค้า",
|
||||
"find_or_scan_item_or_receipt" => "ค้นหาสินค้าหรือบิล",
|
||||
"id" => "รายการสินค้าเข้า ID",
|
||||
"item_name" => "ชื่อสินคัา",
|
||||
"mode" => "ประเภทธุรกรรม",
|
||||
"new_supplier" => "ผู้ผลิตรายใหม่",
|
||||
"one_or_multiple" => "ใบรับสินค้า",
|
||||
"print_after_sale" => "พิมพ์บิลหลังการขาย",
|
||||
"quantity" => "จำนวน.",
|
||||
"receipt" => "บิลสินค้าเข้า",
|
||||
"receipt_number" => "ใบรับสินค้า #",
|
||||
"receiving" => "รับสินค้า",
|
||||
"reference" => "อ้างอิง",
|
||||
"register" => "รับสินค้า",
|
||||
"requisition" => "เบิกสินค้า",
|
||||
"return" => "คืนสินค้า",
|
||||
"select_supplier" => "เลือกคู่ค้า (ไม่ระบุก็ได้)",
|
||||
"ship_pack" => "แพคการขนส่ง",
|
||||
"start_typing_supplier_name" => "เริ่มต้นพิมพ์ชื่อผู้ผลิต...",
|
||||
"stock" => "คลังสินค้า",
|
||||
"stock_destination" => "คลังสินค้าปลายทาง",
|
||||
"stock_locaiton" => "สถานที่เก็บสินค้า",
|
||||
"stock_source" => "คลังสินค้าต้นทาง",
|
||||
"successfully_deleted" => "คุณได้ทำการลบเรียบร้อยแล้ว",
|
||||
"successfully_updated" => "ปรับปรุงใบรับสินค้าเรียบร้อยแล้ว",
|
||||
"supplier" => "ผู้ผลิต",
|
||||
"supplier_address" => "ที่อยู่",
|
||||
"supplier_email" => "อีเมล์",
|
||||
"supplier_location" => "ที่อยู่",
|
||||
"total" => "รวม",
|
||||
"transaction_failed" => "ทำรายการใบรับสินค้าล้มเหลว",
|
||||
"unable_to_add_item" => "ไม่สามารถเพิ่มสินค้าได้",
|
||||
"unsuccessfully_updated" => "ทำการปรับปรุง Receiving ไม่ได้",
|
||||
"update" => "ปรับปรุง",
|
||||
'amount_due' => "",
|
||||
'cancel_receiving' => "ยกเลิก",
|
||||
'cannot_be_deleted' => "ไม่สามารถลบใบรับสินค้าได้",
|
||||
'comments' => "ความคิดเห็น",
|
||||
'complete_receiving' => "เสร็จสิ้น",
|
||||
'confirm_cancel_receiving' => "คุณแน่ใจที่ต้องการล้างค่าใบรับสินค้าใช่หรือไม่? เมื่อล้างค่าแล้วทุกรายการจะถูกล้างออก",
|
||||
'confirm_delete' => "คุณต้องการลบใบรับสินค้าใช่หรือไม่? หากลบแล้วจะไม่สามารถเรียกคืนได้อีก",
|
||||
'confirm_finish_receiving' => "คุณต้องการบันทึกใบรับสินค้าใช่หรือไม่? เมื่อบันทึกแล้วไม่สามารถยกเลิกได้",
|
||||
'confirm_restore' => "",
|
||||
'cost' => "ต้นทุน",
|
||||
'daily' => "",
|
||||
'date' => "วันที่ใบรับสินค้า",
|
||||
'date_required' => "ต้องบันทึกวันที่ที่ถูกต้อง",
|
||||
'date_type' => "ต้องระบุวันที่",
|
||||
'delete_entire_sale' => "ลบรายการขายทั้งหมด",
|
||||
'discount' => "ส่วนลด %",
|
||||
'edit' => "แก้ไข",
|
||||
'edit_sale' => "แก้ไขรายการรับ",
|
||||
'employee' => "พนักงาน",
|
||||
'error_editing_item' => "แก้ไขสินค้าล้มเหลว",
|
||||
'error_requisition' => "ไม่สามารถย้ายสินค้าคงคลังจากหรือไปยังที่เก็บสินค้าเดียวกัน",
|
||||
'find_or_scan_item' => "ค้นหาสินค้า",
|
||||
'find_or_scan_item_or_receipt' => "ค้นหา หรือ แสกนรายการ หรือ ใบเสร็จ",
|
||||
'id' => "รายการสินค้าเข้า ID",
|
||||
'item_name' => "ชื่อสินคัา",
|
||||
'mode' => "ประเภทธุรกรรม",
|
||||
'new_supplier' => "ผู้ผลิตรายใหม่",
|
||||
'one_or_multiple' => "ใบรับสินค้า",
|
||||
'print_after_sale' => "พิมพ์บิลหลังการขาย",
|
||||
'quantity' => "จำนวน.",
|
||||
'receipt' => "บิลสินค้าเข้า",
|
||||
'receipt_number' => "ใบรับสินค้า #",
|
||||
'receiving' => "รับสินค้า",
|
||||
'reference' => "อ้างอิง",
|
||||
'register' => "รับสินค้า",
|
||||
'requisition' => "เบิกสินค้า",
|
||||
'return' => "คืนสินค้า",
|
||||
'select_supplier' => "เลือกคู่ค้า (ไม่ระบุก็ได้)",
|
||||
'ship_pack' => "แพคการขนส่ง",
|
||||
'start_typing_supplier_name' => "เริ่มต้นพิมพ์ชื่อผู้ผลิต...",
|
||||
'stock' => "คลังสินค้า",
|
||||
'stock_destination' => "คลังสินค้าปลายทาง",
|
||||
'stock_locaiton' => "สถานที่เก็บสินค้า",
|
||||
'stock_source' => "คลังสินค้าต้นทาง",
|
||||
'successfully_deleted' => "คุณได้ทำการลบเรียบร้อยแล้ว",
|
||||
'successfully_updated' => "ปรับปรุงใบรับสินค้าเรียบร้อยแล้ว",
|
||||
'supplier' => "ผู้ผลิต",
|
||||
'supplier_address' => "ที่อยู่",
|
||||
'supplier_email' => "อีเมล์",
|
||||
'supplier_location' => "ที่อยู่",
|
||||
'total' => "รวม",
|
||||
'transaction_failed' => "ทำรายการใบรับสินค้าล้มเหลว",
|
||||
'unable_to_add_item' => "ไม่สามารถเพิ่มสินค้าได้",
|
||||
'unsuccessfully_updated' => "ทำการปรับปรุง Receiving ไม่ได้",
|
||||
'update' => "ปรับปรุง",
|
||||
];
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"all" => "",
|
||||
"columns" => "",
|
||||
"hide_show_pagination" => "",
|
||||
"loading" => "",
|
||||
"page_from_to" => "",
|
||||
"refresh" => "",
|
||||
"rows_per_page" => "",
|
||||
"toggle" => "",
|
||||
'all' => "سب",
|
||||
'columns' => "",
|
||||
'hide_show_pagination' => "",
|
||||
'loading' => "",
|
||||
'page_from_to' => "",
|
||||
'refresh' => "",
|
||||
'rows_per_page' => "",
|
||||
'toggle' => "",
|
||||
];
|
||||
|
||||
@@ -1,49 +1,50 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"amount" => "",
|
||||
"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' => "رقم",
|
||||
'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' => "",
|
||||
];
|
||||
|
||||
@@ -1,88 +1,89 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"address_1" => "",
|
||||
"address_2" => "",
|
||||
"admin" => "",
|
||||
"city" => "",
|
||||
"clerk" => "",
|
||||
"close" => "",
|
||||
"color" => "",
|
||||
"comments" => "",
|
||||
"common" => "",
|
||||
"confirm_search" => "",
|
||||
"copyrights" => "© 2010 - {0}",
|
||||
"correct_errors" => "",
|
||||
"country" => "",
|
||||
"dashboard" => "",
|
||||
"date" => "",
|
||||
"delete" => "",
|
||||
"det" => "",
|
||||
"download_import_template" => "",
|
||||
"edit" => "",
|
||||
"email" => "",
|
||||
"email_invalid_format" => "",
|
||||
"export_csv" => "",
|
||||
"export_csv_no" => "",
|
||||
"export_csv_yes" => "",
|
||||
"fields_required_message" => "",
|
||||
"fields_required_message_unique" => "",
|
||||
"first_name" => "",
|
||||
"first_name_required" => "",
|
||||
"first_page" => "",
|
||||
"gender" => "",
|
||||
"gender_female" => "",
|
||||
"gender_male" => "",
|
||||
"gender_undefined" => "",
|
||||
"icon" => "",
|
||||
"id" => "",
|
||||
"import" => "",
|
||||
"import_change_file" => "",
|
||||
"import_csv" => "",
|
||||
"import_full_path" => "",
|
||||
"import_remove_file" => "",
|
||||
"import_select_file" => "",
|
||||
"inv" => "",
|
||||
"last_name" => "",
|
||||
"last_name_required" => "",
|
||||
"last_page" => "",
|
||||
"learn_about_project" => "",
|
||||
"list_of" => "",
|
||||
"logo" => "",
|
||||
"logo_mark" => "",
|
||||
"logout" => "",
|
||||
"manager" => "",
|
||||
"migration_needed" => "",
|
||||
"new" => "",
|
||||
"no" => "",
|
||||
"no_persons_to_display" => "",
|
||||
"none_selected_text" => "",
|
||||
"or" => "",
|
||||
"people" => "",
|
||||
"phone_number" => "",
|
||||
"phone_number_required" => "",
|
||||
"please_visit_my" => "",
|
||||
"position" => "",
|
||||
"powered_by" => "",
|
||||
"price" => "",
|
||||
"print" => "",
|
||||
"remove" => "",
|
||||
"required" => "",
|
||||
"restore" => "",
|
||||
"return_policy" => "",
|
||||
"search" => "",
|
||||
"search_options" => "",
|
||||
"searched_for" => "",
|
||||
"software_short" => "",
|
||||
"software_title" => "",
|
||||
"state" => "",
|
||||
"submit" => "",
|
||||
"total_spent" => "",
|
||||
"unknown" => "",
|
||||
"view_recent_sales" => "",
|
||||
"website" => "",
|
||||
"welcome" => "",
|
||||
"welcome_message" => "",
|
||||
"yes" => "",
|
||||
"you_are_using_ospos" => "",
|
||||
"zip" => "",
|
||||
'address_1' => "گھر کا پتہ",
|
||||
'address_2' => "",
|
||||
'admin' => "",
|
||||
'city' => "",
|
||||
'clerk' => "",
|
||||
'close' => "",
|
||||
'color' => "",
|
||||
'comments' => "",
|
||||
'common' => "",
|
||||
'confirm_search' => "",
|
||||
'copyrights' => "© 2010 - {0}",
|
||||
'correct_errors' => "",
|
||||
'country' => "",
|
||||
'dashboard' => "",
|
||||
'date' => "",
|
||||
'delete' => "",
|
||||
'det' => "",
|
||||
'download_import_template' => "",
|
||||
'edit' => "",
|
||||
'email' => "",
|
||||
'email_invalid_format' => "",
|
||||
'export_csv' => "",
|
||||
'export_csv_no' => "",
|
||||
'export_csv_yes' => "",
|
||||
'fields_required_message' => "",
|
||||
'fields_required_message_unique' => "",
|
||||
'first_name' => "",
|
||||
'first_name_required' => "",
|
||||
'first_page' => "",
|
||||
'gender' => "",
|
||||
'gender_female' => "",
|
||||
'gender_male' => "",
|
||||
'gender_undefined' => "",
|
||||
'icon' => "",
|
||||
'id' => "",
|
||||
'import' => "",
|
||||
'import_change_file' => "",
|
||||
'import_csv' => "",
|
||||
'import_full_path' => "",
|
||||
'import_remove_file' => "",
|
||||
'import_select_file' => "",
|
||||
'inv' => "",
|
||||
'last_name' => "",
|
||||
'last_name_required' => "",
|
||||
'last_page' => "",
|
||||
'learn_about_project' => "",
|
||||
'list_of' => "",
|
||||
'logo' => "",
|
||||
'logo_mark' => "",
|
||||
'logout' => "",
|
||||
'manager' => "",
|
||||
'migration_needed' => "",
|
||||
'new' => "",
|
||||
'no' => "",
|
||||
'no_persons_to_display' => "",
|
||||
'none_selected_text' => "",
|
||||
'or' => "",
|
||||
'people' => "",
|
||||
'phone_number' => "",
|
||||
'phone_number_required' => "",
|
||||
'please_visit_my' => "",
|
||||
'position' => "",
|
||||
'powered_by' => "",
|
||||
'price' => "",
|
||||
'print' => "",
|
||||
'remove' => "",
|
||||
'required' => "",
|
||||
'restore' => "",
|
||||
'return_policy' => "",
|
||||
'search' => "",
|
||||
'search_options' => "",
|
||||
'searched_for' => "",
|
||||
'software_short' => "",
|
||||
'software_title' => "",
|
||||
'state' => "",
|
||||
'submit' => "",
|
||||
'total_spent' => "",
|
||||
'unknown' => "",
|
||||
'view_recent_sales' => "",
|
||||
'website' => "",
|
||||
'welcome' => "",
|
||||
'welcome_message' => "",
|
||||
'yes' => "",
|
||||
'you_are_using_ospos' => "",
|
||||
'zip' => "",
|
||||
];
|
||||
|
||||
@@ -1,56 +1,57 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"account_number" => "",
|
||||
"account_number_duplicate" => "",
|
||||
"available_points" => "",
|
||||
"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' => "اکاوٗنٹ",
|
||||
'account_number_duplicate' => "",
|
||||
'available_points' => "",
|
||||
'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' => "",
|
||||
];
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"all_time" => "",
|
||||
"apply" => "",
|
||||
"cancel" => "",
|
||||
"custom" => "",
|
||||
"from" => "",
|
||||
"last_30" => "",
|
||||
"last_7" => "",
|
||||
"last_financial_year" => "",
|
||||
"last_month" => "",
|
||||
"last_year" => "",
|
||||
"same_month_last_year" => "",
|
||||
"same_month_to_same_day_last_year" => "",
|
||||
"this_financial_year" => "",
|
||||
"this_month" => "",
|
||||
"this_year" => "",
|
||||
"to" => "",
|
||||
"today" => "",
|
||||
"today_last_year" => "",
|
||||
"weekstart" => "",
|
||||
"yesterday" => "",
|
||||
'all_time' => "ہمیشہ",
|
||||
'apply' => "",
|
||||
'cancel' => "",
|
||||
'custom' => "",
|
||||
'from' => "",
|
||||
'last_30' => "",
|
||||
'last_7' => "",
|
||||
'last_financial_year' => "",
|
||||
'last_month' => "",
|
||||
'last_year' => "",
|
||||
'same_month_last_year' => "",
|
||||
'same_month_to_same_day_last_year' => "",
|
||||
'this_financial_year' => "",
|
||||
'this_month' => "",
|
||||
'this_year' => "",
|
||||
'to' => "",
|
||||
'today' => "",
|
||||
'today_last_year' => "",
|
||||
'weekstart' => "",
|
||||
'yesterday' => "",
|
||||
];
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"no_permission_module" => "",
|
||||
"unknown" => "",
|
||||
'no_permission_module' => "آپ کو اس ماڈیول تک رسائی کی اجازت نہیں ہے",
|
||||
'unknown' => "غیر متوقع رکاوٹ",
|
||||
];
|
||||
|
||||
@@ -1,50 +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,22 +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' => "اخراجات کے زمرے کا نام درکار ہے",
|
||||
'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' => "",
|
||||
];
|
||||
|
||||
@@ -1,224 +1,225 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
"customers_available_points" => "",
|
||||
"rewards_package" => "",
|
||||
"rewards_remaining_balance" => "",
|
||||
"account_number" => "",
|
||||
"add_payment" => "",
|
||||
"amount_due" => "",
|
||||
"amount_tendered" => "",
|
||||
"authorized_signature" => "",
|
||||
"cancel_sale" => "",
|
||||
"cash" => "",
|
||||
"cash_1" => "",
|
||||
"cash_2" => "",
|
||||
"cash_3" => "",
|
||||
"cash_4" => "",
|
||||
"cash_adjustment" => "",
|
||||
"cash_deposit" => "",
|
||||
"cash_filter" => "",
|
||||
"change_due" => "",
|
||||
"change_price" => "",
|
||||
"check" => "",
|
||||
"check_balance" => "",
|
||||
"check_filter" => "",
|
||||
"close" => "",
|
||||
"comment" => "",
|
||||
"comments" => "",
|
||||
"company_name" => "",
|
||||
"complete" => "",
|
||||
"complete_sale" => "",
|
||||
"confirm_cancel_sale" => "",
|
||||
"confirm_delete" => "",
|
||||
"confirm_restore" => "",
|
||||
"credit" => "",
|
||||
"credit_deposit" => "",
|
||||
"credit_filter" => "",
|
||||
"current_table" => "",
|
||||
"customer" => "",
|
||||
"customer_address" => "",
|
||||
"customer_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' => "",
|
||||
'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' => "",
|
||||
];
|
||||
|
||||
@@ -6,11 +6,13 @@ use App\Models\Attribute;
|
||||
use App\Models\Item;
|
||||
use App\Models\Item_kit_items;
|
||||
use App\Models\Item_quantity;
|
||||
use App\Models\Enums\Rounding_mode;
|
||||
use App\Models\Receiving;
|
||||
use App\Models\Stock_location;
|
||||
|
||||
use CodeIgniter\Session\Session;
|
||||
use Config\OSPOS;
|
||||
use ReflectionException;
|
||||
|
||||
/**
|
||||
* Receiving library
|
||||
@@ -26,6 +28,7 @@ class Receiving_lib
|
||||
private Receiving $receiving;
|
||||
private Stock_location $stock_location;
|
||||
private Session $session;
|
||||
private array $config;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@@ -35,6 +38,7 @@ class Receiving_lib
|
||||
$this->item_quantity = model(Item_quantity::class);
|
||||
$this->receiving = model(Receiving::class);
|
||||
$this->stock_location = model(Stock_location::class);
|
||||
$this->config = config(OSPOS::class)->settings;
|
||||
|
||||
$this->session = session();
|
||||
}
|
||||
@@ -194,6 +198,31 @@ class Receiving_lib
|
||||
$this->session->remove('recv_reference');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function get_term_days(): string
|
||||
{
|
||||
return $this->session->get('recv_term_days') ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $term_days
|
||||
* @return void
|
||||
*/
|
||||
public function set_term_days(string $term_days): void
|
||||
{
|
||||
$this->session->set('recv_term_days', $term_days);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function clear_term_days(): void //TODO: This function verb is inconsistent from the others. Consider refactoring to remove_reference()
|
||||
{
|
||||
$this->session->remove('recv_term_days');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
@@ -516,6 +545,7 @@ class Receiving_lib
|
||||
$this->remove_supplier();
|
||||
$this->clear_comment();
|
||||
$this->clear_reference();
|
||||
$this->clear_term_days();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -554,4 +584,200 @@ class Receiving_lib
|
||||
|
||||
return $total;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $payment_type
|
||||
* @return void
|
||||
*/
|
||||
public function set_payment_type(string $payment_type): void
|
||||
{
|
||||
$this->session->set('payment_type', $payment_type);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function get_payment_type(): ?string
|
||||
{
|
||||
return $this->session->get('payment_type');
|
||||
}
|
||||
|
||||
public function get_total_due(): float
|
||||
{
|
||||
return $this->get_total() - $this->get_payments_total();
|
||||
}
|
||||
|
||||
public function get_payments_total(): string
|
||||
{
|
||||
$subtotal = '0.0';
|
||||
$cash_mode_eligible = CASH_MODE_TRUE;
|
||||
|
||||
foreach($this->get_payments() as $payments)
|
||||
{
|
||||
if(!$payments['cash_adjustment'])
|
||||
{
|
||||
$subtotal = bcadd($payments['payment_amount'], $subtotal);
|
||||
}
|
||||
if(lang('Sales.cash') != $payments['payment_type'] && lang('Sales.cash_adjustment') != $payments['payment_type'])
|
||||
{
|
||||
$cash_mode_eligible = CASH_MODE_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if($cash_mode_eligible && $this->session->get('cash_rounding'))
|
||||
{
|
||||
$this->session->set('cash_mode', CASH_MODE_TRUE);
|
||||
}
|
||||
|
||||
return $subtotal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiple Payments
|
||||
*/
|
||||
public function get_payments(): array
|
||||
{
|
||||
if(!$this->session->get('sales_payments'))
|
||||
{
|
||||
$this->set_payments ([]);
|
||||
}
|
||||
|
||||
return $this->session->get('sales_payments');
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiple Payments
|
||||
*/
|
||||
public function set_payments(array $payments_data): void
|
||||
{
|
||||
$this->session->set('sales_payments', $payments_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new payment to the payments array or updates an existing one.
|
||||
* It will also disable cash_mode if a non-qualifying payment type is added.
|
||||
* @param string $payment_id
|
||||
* @param string $payment_amount
|
||||
* @param int $cash_adjustment
|
||||
*/
|
||||
public function add_payment(string $payment_id, string $payment_amount, int $cash_adjustment = CASH_ADJUSTMENT_FALSE): void
|
||||
{
|
||||
$payments = $this->get_payments();
|
||||
if(isset($payments[$payment_id]))
|
||||
{
|
||||
//payment_method already exists, add to payment_amount
|
||||
$payments[$payment_id]['payment_amount'] = bcadd($payments[$payment_id]['payment_amount'], $payment_amount);
|
||||
}
|
||||
else
|
||||
{
|
||||
//add to existing array
|
||||
$payment = [
|
||||
$payment_id => [
|
||||
'payment_type' => $payment_id,
|
||||
'payment_amount' => $payment_amount,
|
||||
'cash_refund' => 0,
|
||||
'cash_adjustment' => $cash_adjustment
|
||||
]
|
||||
];
|
||||
|
||||
$payments += $payment;
|
||||
}
|
||||
|
||||
if($this->session->get('cash_mode'))
|
||||
{
|
||||
if($this->session->get('cash_rounding') && $payment_id != lang('Sales.cash') && $payment_id != lang('Sales.cash_adjustment'))
|
||||
{
|
||||
$this->session->set('cash_mode', CASH_MODE_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
$this->set_payments($payments);
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiple Payments
|
||||
*/
|
||||
public function edit_payment(string $payment_id, float $payment_amount): bool
|
||||
{
|
||||
$payments = $this->get_payments();
|
||||
if(isset($payments[$payment_id]))
|
||||
{
|
||||
$payments[$payment_id]['payment_type'] = $payment_id;
|
||||
$payments[$payment_id]['payment_amount'] = $payment_amount;
|
||||
$this->set_payments($payments);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the selected payment from the payment array and if cash rounding is enabled
|
||||
* and the payment type is one of the cash types then automatically delete the other
|
||||
* @param string $payment_id
|
||||
*/
|
||||
public function delete_payment(string $payment_id): void
|
||||
{
|
||||
$payments = $this->get_payments();
|
||||
$decoded_payment_id = urldecode($payment_id);
|
||||
|
||||
unset($payments[$decoded_payment_id]);
|
||||
|
||||
$cash_rounding = $this->reset_cash_rounding();
|
||||
|
||||
if($cash_rounding)
|
||||
{
|
||||
if($decoded_payment_id == lang('Sales.cash'))
|
||||
{
|
||||
unset($payments[lang('Sales.cash_adjustment')]);
|
||||
}
|
||||
|
||||
if($decoded_payment_id == lang('Sales.cash_adjustment'))
|
||||
{
|
||||
unset($payments[lang('Sales.cash')]);
|
||||
}
|
||||
}
|
||||
$this->set_payments($payments);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if cash rounding should be a consideration for this site
|
||||
* It also set resets the cash mode to disabled which will then be re-evaluated when
|
||||
* retrieving payments.
|
||||
*/
|
||||
public function reset_cash_rounding(): int
|
||||
{
|
||||
$cash_rounding_code = $this->config['cash_rounding_code'];
|
||||
|
||||
if(cash_decimals() < totals_decimals() || $cash_rounding_code == Rounding_mode::HALF_FIVE)
|
||||
{
|
||||
$cash_rounding = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$cash_rounding = 0;
|
||||
}
|
||||
$this->session->set('cash_rounding', $cash_rounding);
|
||||
$this->session->set('cash_mode', CASH_MODE_FALSE);
|
||||
|
||||
return $cash_rounding;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $total
|
||||
* @return string
|
||||
*/
|
||||
public function check_for_cash_rounding(string $total): string
|
||||
{
|
||||
$cash_decimals = cash_decimals();
|
||||
$cash_rounding_code = $this->config['cash_rounding_code'];
|
||||
|
||||
return Rounding_mode::round_number($cash_rounding_code, (float)$total, $cash_decimals);
|
||||
}
|
||||
|
||||
public function clear_payments(): void
|
||||
{
|
||||
$this->set_payments([]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,26 +19,25 @@ class Token_lib
|
||||
*/
|
||||
public function render(string $tokened_text, array $tokens = [], $save = true): string
|
||||
{
|
||||
$config = config(OSPOS::class)->settings;
|
||||
$formatter = new IntlDateFormatter(
|
||||
$config['number_locale'], // Locale
|
||||
IntlDateFormatter::FULL, // Date type
|
||||
IntlDateFormatter::FULL // Time type
|
||||
);
|
||||
|
||||
//Apply the transformation for the "%" tokens if any are used
|
||||
if(str_contains($tokened_text, '%'))
|
||||
// Apply the transformation for the "%" tokens if any are used
|
||||
if(strpos($tokened_text, '%') !== false)
|
||||
{
|
||||
|
||||
$tokened_text = $formatter->format(new DateTime());
|
||||
$tokened_text = strftime($tokened_text); //TODO: these need to be converted to IntlDateFormatter::format()
|
||||
}
|
||||
|
||||
//Call scan to build an array of all tokens used in the text to be transformed
|
||||
// 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))
|
||||
{
|
||||
return str_contains($tokened_text, '%') ? $formatter->format(new DateTime()) : $tokened_text;
|
||||
if(strpos($tokened_text, '%') !== false)
|
||||
{
|
||||
return strftime($tokened_text);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $tokened_text;
|
||||
}
|
||||
}
|
||||
|
||||
$token_values = [];
|
||||
|
||||
@@ -547,7 +547,7 @@ class Attribute extends Model
|
||||
{
|
||||
$builder = $this->db->table('attribute_definitions');
|
||||
$success = $builder->insert($definition_data);
|
||||
$definition_data['definition_id'] = $this->db->insertID();
|
||||
$definition_data['definition_id'] = $this->getInsertID();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -875,7 +875,7 @@ class Attribute extends Model
|
||||
$builder->set(["attribute_$data_type" => $attribute_value]);
|
||||
$builder->insert();
|
||||
|
||||
$attribute_id = $this->db->insertID();
|
||||
$attribute_id = $this->getInsertID();
|
||||
}
|
||||
|
||||
$data = [
|
||||
|
||||
@@ -43,6 +43,7 @@ class Item extends Model
|
||||
'hsn_code'
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Determines if a given item_id is an item
|
||||
*/
|
||||
|
||||
@@ -104,7 +104,7 @@ class Receiving extends Model
|
||||
/**
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function save_value(array $items, int $supplier_id, int $employee_id, string $comment, string $reference, string $payment_type, int $receiving_id = NEW_ENTRY): int //TODO: $receiving_id gets overwritten before it's evaluated. It doesn't make sense to pass this here.
|
||||
public function save_value(array $items, int $supplier_id, int $employee_id, string $comment, string $reference, string $term_days, string $payment_type, int $receiving_id = NEW_ENTRY): int //TODO: $receiving_id gets overwritten before it's evaluated. It doesn't make sense to pass this here.
|
||||
{
|
||||
$attribute = model(Attribute::class);
|
||||
$inventory = model('Inventory');
|
||||
@@ -123,7 +123,8 @@ class Receiving extends Model
|
||||
'employee_id' => $employee_id,
|
||||
'payment_type' => $payment_type,
|
||||
'comment' => $comment,
|
||||
'reference' => $reference
|
||||
'reference' => $reference,
|
||||
'term_days' => $term_days
|
||||
];
|
||||
|
||||
//Run these queries as a transaction, we want to make sure we do all or nothing
|
||||
@@ -187,7 +188,7 @@ class Receiving extends Model
|
||||
|
||||
$inventory->insert($inv_data, false);
|
||||
$attribute->copy_attribute_links($item_data['item_id'], 'receiving_id', $receiving_id);
|
||||
$supplier = $supplier->get_info($supplier_id); //TODO: supplier is never used after this.
|
||||
// $supplier = $supplier->get_info($supplier_id); //TODO: supplier is never used after this.
|
||||
}
|
||||
|
||||
$this->db->transComplete();
|
||||
@@ -195,6 +196,153 @@ class Receiving extends Model
|
||||
return $this->db->transStatus() ? $receiving_id : -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save a requisition to the `ospos_receivings` and `ospos_receivings_items` tables
|
||||
* and update stock quantities in the respective locations.
|
||||
*
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function save_requisition(array $items, int $employee_id, string $comment, string $reference, int $stock_source, int $stock_destination): int
|
||||
{
|
||||
$inventory = model('Inventory');
|
||||
$item_quantity_model = model(Item_quantity::class);
|
||||
|
||||
if (count($items) == 0) {
|
||||
return -1; // No items to save
|
||||
}
|
||||
|
||||
// Prepare the receiving data
|
||||
$receivings_data = [
|
||||
'receiving_time' => date('Y-m-d H:i:s'),
|
||||
'employee_id' => $employee_id,
|
||||
'comment' => $comment,
|
||||
'reference' => $reference,
|
||||
'total' => 0, // This will be updated later
|
||||
'amount_change' => 0,
|
||||
'amount_tendered' => 0,
|
||||
'operation_type' => 'Requisition',
|
||||
];
|
||||
|
||||
// Run these queries as a transaction
|
||||
$this->db->transStart();
|
||||
|
||||
// Insert into `ospos_receivings`
|
||||
$builder = $this->db->table('ospos_receivings');
|
||||
$builder->insert($receivings_data);
|
||||
$receiving_id = $this->db->insertID();
|
||||
|
||||
if (!$receiving_id) {
|
||||
log_message('error', 'Failed to insert requisition header: ' . print_r($receivings_data, true));
|
||||
$this->db->transRollback();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Insert items into `ospos_receivings_items`
|
||||
$builder = $this->db->table('ospos_receivings_items');
|
||||
$total_cost = 0;
|
||||
|
||||
foreach ($items as $item_data) {
|
||||
$receivings_items_data = [
|
||||
'receiving_id' => $receiving_id,
|
||||
'item_id' => $item_data['item_id'],
|
||||
'line' => $item_data['line'],
|
||||
'description' => $item_data['description'] ?? '',
|
||||
'serialnumber' => $item_data['serialnumber'] ?? '',
|
||||
'quantity_purchased' => $item_data['quantity'],
|
||||
'item_cost_price' => $item_data['price'],
|
||||
'item_unit_price' => $item_data['price'],
|
||||
'discount' => $item_data['discount'] ?? 0,
|
||||
'discount_type' => $item_data['discount_type'] ?? 0,
|
||||
'item_location' => $item_data['item_location'] ?? 1,
|
||||
'receiving_quantity' => $item_data['receiving_quantity'] ?? 1,
|
||||
];
|
||||
|
||||
$builder->insert($receivings_items_data);
|
||||
|
||||
if (!$this->db->affectedRows()) {
|
||||
log_message('error', 'Failed to insert requisition item: ' . print_r($receivings_items_data, true));
|
||||
$this->db->transRollback();
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Calculate the total cost
|
||||
$total_cost += ($item_data['price'] * $item_data['quantity']) - ($item_data['discount'] ?? 0);
|
||||
|
||||
// Update stock quantities
|
||||
$item_id = $item_data['item_id'] > 0 ? $item_data['item_id'] : 0;
|
||||
$quantity = $item_data['quantity'] > 0 ? $item_data['quantity'] : 0;
|
||||
|
||||
if ($item_id === 0 || $quantity === 0) {
|
||||
continue; // Skip if item or quantity is invalid
|
||||
}
|
||||
|
||||
// Subtract from stock at the source
|
||||
$source_quantity = $item_quantity_model->get_item_quantity($item_id, $stock_source);
|
||||
$item_quantity_model->save_value([
|
||||
'quantity' => $source_quantity->quantity - $quantity,
|
||||
'item_id' => $item_id,
|
||||
'location_id' => $stock_source,
|
||||
], $item_id, $stock_source);
|
||||
|
||||
// Add to stock at the destination
|
||||
$destination_quantity = $item_quantity_model->get_item_quantity($item_id, $stock_destination);
|
||||
$item_quantity_model->save_value([
|
||||
'quantity' => $destination_quantity->quantity + $quantity,
|
||||
'item_id' => $item_id,
|
||||
'location_id' => $stock_destination,
|
||||
], $item_id, $stock_destination);
|
||||
|
||||
// Register inventory for the outgoing location (only if not already registered)
|
||||
$recv_remarks = 'REQ ' . $receiving_id;
|
||||
|
||||
$inv_data_source = [
|
||||
'trans_date' => date('Y-m-d H:i:s'),
|
||||
'trans_items' => $item_id,
|
||||
'trans_user' => $employee_id,
|
||||
'trans_location' => $stock_source,
|
||||
'trans_comment' => $recv_remarks . ' OUT',
|
||||
'trans_inventory' => -$quantity,
|
||||
];
|
||||
$existing_source = $inventory->where([
|
||||
'trans_items' => $item_id,
|
||||
'trans_location' => $stock_source,
|
||||
'trans_comment' => $recv_remarks . ' OUT'
|
||||
])->countAllResults();
|
||||
if ($existing_source === 0) {
|
||||
$inventory->insert($inv_data_source, false);
|
||||
}
|
||||
|
||||
// Register inventory for the incoming location (only if not already registered)
|
||||
$inv_data_destination = [
|
||||
'trans_date' => date('Y-m-d H:i:s'),
|
||||
'trans_items' => $item_id,
|
||||
'trans_user' => $employee_id,
|
||||
'trans_location' => $stock_destination,
|
||||
'trans_comment' => $recv_remarks . ' IN',
|
||||
'trans_inventory' => $quantity,
|
||||
];
|
||||
$existing_destination = $inventory->where([
|
||||
'trans_items' => $item_id,
|
||||
'trans_location' => $stock_destination,
|
||||
'trans_comment' => $recv_remarks . ' IN'
|
||||
])->countAllResults();
|
||||
if ($existing_destination === 0) {
|
||||
$inventory->insert($inv_data_destination, false);
|
||||
}
|
||||
}
|
||||
|
||||
// Update the total cost in ospos_receivings
|
||||
$this->db->table('ospos_receivings')
|
||||
->where('receiving_id', $receiving_id)
|
||||
->update(['total' => $total_cost]);
|
||||
|
||||
if (!$this->db->transComplete()) {
|
||||
log_message('error', 'Transaction failed for requisition: ' . print_r($receivings_data, true));
|
||||
return -1;
|
||||
}
|
||||
|
||||
return $receiving_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ReflectionException
|
||||
@@ -364,4 +512,9 @@ class Receiving extends Model
|
||||
|
||||
$this->db->query($sql);
|
||||
}
|
||||
|
||||
public function save_payment(array $payment_data): bool
|
||||
{
|
||||
return $this->db->table('ospos_receivings_payments')->insert($payment_data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
?>
|
||||
<tr>
|
||||
<td colspan="3" style='text-align:right;'><?= lang('Sales.amount_tendered') ?></td>
|
||||
<td><div class="total-value"><?= to_currency($amount_tendered) ?></div></td>
|
||||
<td><div class="total-value">0.00</div></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
||||
@@ -155,77 +155,76 @@ if (isset($success))
|
||||
<td><?= anchor("$controller_name/deleteItem/$line", '<span class="glyphicon glyphicon-trash"></span>') ?></td>
|
||||
<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'] . ']' ?>
|
||||
<?= esc($item['name'] . ' ' . implode(' ', [$item['attribute_values'], $item['attribute_dtvalues']])) ?><br />
|
||||
<?= '[' . to_quantity_decimals($item['in_stock']) . ' in ' . $item['stock_name'] . ']' ?>
|
||||
<?= form_hidden('location', (string)$item['item_location']) ?>
|
||||
</td>
|
||||
|
||||
<?php
|
||||
if ($items_module_allowed && $mode != 'requisition')
|
||||
{
|
||||
?>
|
||||
<td><?= form_input ([
|
||||
<?php if ($items_module_allowed && $mode != 'requisition') { ?>
|
||||
<td><?= form_input([
|
||||
'name' => 'price',
|
||||
'class' => 'form-control input-sm',
|
||||
'value' => to_currency_no_money($item['price']),
|
||||
'value' => (string)to_currency_no_money($item['price']),
|
||||
'onClick' => 'this.select();'
|
||||
]) ?></td>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<?php } else { ?>
|
||||
<td>
|
||||
<?= $item['price'] ?>
|
||||
<?= form_hidden('price', to_currency_no_money($item['price'])) ?>
|
||||
<?= (string)$item['price'] ?>
|
||||
<?= form_hidden('price', (string)to_currency_no_money($item['price'])) ?>
|
||||
</td>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php } ?>
|
||||
|
||||
<td><?= form_input (['name' => 'quantity', 'class' => 'form-control input-sm', 'value' => to_quantity_decimals($item['quantity']),'onClick' => 'this.select();']) ?></td>
|
||||
<td><?= form_input([
|
||||
'name' => 'quantity',
|
||||
'class' => 'form-control input-sm',
|
||||
'value' => (string)to_quantity_decimals($item['quantity']),
|
||||
'onClick' => 'this.select();'
|
||||
]) ?></td>
|
||||
<td><?= form_dropdown(
|
||||
'receiving_quantity',
|
||||
$item['receiving_quantity_choices'],
|
||||
$item['receiving_quantity'],
|
||||
['class' => 'form-control input-sm']
|
||||
) ?></td>
|
||||
'receiving_quantity',
|
||||
$item['receiving_quantity_choices'],
|
||||
(string)$item['receiving_quantity'],
|
||||
['class' => 'form-control input-sm']
|
||||
) ?></td>
|
||||
|
||||
<?php
|
||||
if ($items_module_allowed && $mode != 'requisition')
|
||||
{
|
||||
?>
|
||||
<?php if ($items_module_allowed && $mode != 'requisition') { ?>
|
||||
<td>
|
||||
<div class="input-group">
|
||||
<?= form_input (['name' => 'discount', 'class' => 'form-control input-sm', 'value' => $item['discount_type'] ? to_currency_no_money($item['discount']) : to_decimals($item['discount']), 'onClick' => 'this.select();']) ?>
|
||||
<span class="input-group-btn">
|
||||
<?= form_checkbox ([
|
||||
'id' => 'discount_toggle',
|
||||
'name' => 'discount_toggle',
|
||||
'value' => 1,
|
||||
'data-toggle' => "toggle",
|
||||
'data-size' => 'small',
|
||||
'data-onstyle' => 'success',
|
||||
'data-on' => '<b>' . $config['currency_symbol'] .'</b>',
|
||||
'data-off' => '<b>%</b>',
|
||||
'data-line' => $line,
|
||||
'checked' => $item['discount_type'] == 1
|
||||
<div class="input-group">
|
||||
<?= form_input([
|
||||
'name' => 'discount',
|
||||
'class' => 'form-control input-sm',
|
||||
'value' => (string)($item['discount_type'] ? to_currency_no_money($item['discount']) : to_decimals($item['discount'])),
|
||||
'onClick' => 'this.select();'
|
||||
]) ?>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<?php
|
||||
}
|
||||
else
|
||||
{
|
||||
?>
|
||||
<td><?= $item['discount'] ?></td>
|
||||
<?= form_hidden('discount', $item['discount']) ?>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<span class="input-group-btn">
|
||||
<?= form_checkbox([
|
||||
'id' => 'discount_toggle',
|
||||
'name' => 'discount_toggle',
|
||||
'value' => 1,
|
||||
'data-toggle' => "toggle",
|
||||
'data-size' => 'small',
|
||||
'data-onstyle' => 'success',
|
||||
'data-on' => '<b>' . $config['currency_symbol'] . '</b>',
|
||||
'data-off' => '<b>%</b>',
|
||||
'data-line' => $line,
|
||||
'checked' => $item['discount_type'] == 1
|
||||
]) ?>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<?php } else { ?>
|
||||
<td><?= (string)$item['discount'] ?></td>
|
||||
<?= form_hidden('discount', (string)$item['discount']) ?>
|
||||
<?php } ?>
|
||||
|
||||
<td>
|
||||
<?= to_currency(($item['discount_type'] == PERCENT) ? $item['price']*$item['quantity']*$item['receiving_quantity'] - $item['price'] * $item['quantity'] * $item['receiving_quantity'] * $item['discount'] / 100 : $item['price']*$item['quantity']*$item['receiving_quantity'] - $item['discount']) ?></td>
|
||||
<td><a href="javascript:$('#<?= esc("cart_$line", 'js') ?>').submit();" title=<?= lang(ucfirst($controller_name) .'.update') ?> ><span class="glyphicon glyphicon-refresh"></span></a></td>
|
||||
<?= to_currency(
|
||||
($item['discount_type'] == PERCENT)
|
||||
? $item['price'] * $item['quantity'] * $item['receiving_quantity'] - $item['price'] * $item['quantity'] * $item['receiving_quantity'] * $item['discount'] / 100
|
||||
: $item['price'] * $item['quantity'] * $item['receiving_quantity'] - $item['discount']
|
||||
) ?>
|
||||
</td>
|
||||
<td><a href="javascript:$('#<?= esc("cart_$line", 'js') ?>').submit();" title=<?= lang(ucfirst($controller_name) . '.update') ?>><span class="glyphicon glyphicon-refresh"></span></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?php
|
||||
@@ -375,6 +374,53 @@ if (isset($success))
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?= form_open("$controller_name/addPayment", ['id' => 'add_payment_form', 'class' => 'form-horizontal']) ?>
|
||||
<section class="mainContent">
|
||||
<div class="formContainer">
|
||||
<form action="">
|
||||
<fieldset class="fieldInput">
|
||||
<div class="dropdown">
|
||||
<?= form_dropdown('payment_type', $payment_options, $selected_payment_type, ['id' => 'payment_types', 'class' => 'dropdown-toggle', 'data-style' => 'btn-default btn-sm', 'data-width' => 'fit']) ?>
|
||||
</div>
|
||||
<?= form_input (['name' => 'amount_tendered', 'id' => 'amount_tendered', 'class' => 'form-input', 'value' => to_currency_no_money($amount_due), 'size' => '5', 'tabindex' => ++$tabindex, 'onClick' => 'this.select();']) ?>
|
||||
<?= form_input (['name' => 'amount_tendered', 'id' => 'amount_tendered', 'class' => 'form-input', 'disabled' => true, 'value' => to_currency_no_money($amount_due), 'size' => '5', 'tabindex' => ++$tabindex]) ?>
|
||||
<button type="submit" class="form-submit" id='add_payment_button' tabindex="<?= ++$tabindex ?>"><i class="bi bi-credit-card-fill"></i> Pagar</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
<?= form_close() ?>
|
||||
|
||||
<table class="sales_table_100" id="registersss">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%;"><?= lang('Common.delete') ?></th>
|
||||
<th style="width: 60%;"><?= lang(ucfirst($controller_name) .'.payment_type') ?></th>
|
||||
<th style="width: 20%;"><?= lang(ucfirst($controller_name) .'.payment_amount') ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody id="payment_contents">
|
||||
<?php
|
||||
$payment_types = [];
|
||||
|
||||
foreach($payments as $payment_id => $payment)
|
||||
{
|
||||
$payment_types[] = $payment['payment_type'];
|
||||
?>
|
||||
<tr>
|
||||
<td><?= anchor("$controller_name/deletePayment/$payment_id", '<span class="glyphicon glyphicon-trash"></span>') ?></td>
|
||||
<td><?= esc($payment['payment_type']) ?></td>
|
||||
<td style="text-align: right;"><?= to_currency($payment['payment_amount']) ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
$payment_types_string = implode(', ', $payment_types);
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
if(count($cart) > 0)
|
||||
{
|
||||
|
||||
@@ -53,8 +53,6 @@
|
||||
.bootstrapTable({
|
||||
columns: <?= transform_headers(esc($headers), true, false) ?>,
|
||||
stickyHeader: true,
|
||||
stickyHeaderOffsetLeft: $('#table').offset().left + 'px',
|
||||
stickyHeaderOffsetRight: $('#table').offset().right + 'px',
|
||||
pageSize: <?= $config['lines_per_page'] ?>,
|
||||
sortable: true,
|
||||
showExport: true,
|
||||
|
||||
@@ -62,8 +62,6 @@
|
||||
.bootstrapTable({
|
||||
columns: <?= transform_headers(esc($headers['summary']), true) ?>,
|
||||
stickyHeader: true,
|
||||
stickyHeaderOffsetLeft: $('#table').offset().left + 'px',
|
||||
stickyHeaderOffsetRight: $('#table').offset().right + 'px',
|
||||
pageSize: <?= $config['lines_per_page'] ?>,
|
||||
pagination: true,
|
||||
sortable: true,
|
||||
|
||||
@@ -31,9 +31,9 @@ gulp.task('clean', function () {
|
||||
});
|
||||
|
||||
gulp.task('compress', function() {
|
||||
const sources = ['public/**', 'vendor/**', '*.md', 'LICENSE', 'docker*', 'docker/**', 'Dockerfile', '**/.htaccess', 'writable/*'] ;
|
||||
gulp.src(sources).pipe(tar('opensourcepos.tar')).pipe(gzip()).pipe(gulp.dest('dist'));
|
||||
return gulp.src(sources).pipe(zip('opensourcepos.zip')).pipe(gulp.dest('dist'));
|
||||
const sources = ['app*/**/*', 'public*/**/*', 'vendor*/**/*', '*.md', 'LICENSE', 'docker*', 'Dockerfile', '**/.htaccess', 'writable*/**/*'] ;
|
||||
gulp.src(sources, {encoding: false}).pipe(tar('opensourcepos.tar')).pipe(gulp.dest('dist'));
|
||||
return gulp.src(sources, {encoding: false}).pipe(zip('opensourcepos.zip')).pipe(gulp.dest('dist'));
|
||||
});
|
||||
|
||||
// Copy the bootswatch styles into their own folder so OSPOS can select one from the collection
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "opensourcepos",
|
||||
"name": "@opensourcepos/opensourcepos",
|
||||
"version": "3.4.0",
|
||||
"description": "Open Source Point of Sale is a web based point of sale system written in the PHP language. It uses MySQL as the data storage back-end and has a simple user interface.",
|
||||
"main": "index.php",
|
||||
@@ -10,6 +10,7 @@
|
||||
"objecttothis <objecttothis - at - gmail.com>",
|
||||
"SteveIreland <stevei - at - ruledomain.com>"
|
||||
],
|
||||
"files": ["dist/opensourcepos.$version.tgz"],
|
||||
"publishConfig": {
|
||||
"registry": "https://npm.pkg.github.com/"
|
||||
},
|
||||
@@ -17,6 +18,10 @@
|
||||
"point-of-sale",
|
||||
"POS"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/opensourcepos/opensourcepos"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "gulp default",
|
||||
"gulp": "gulp"
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
|
||||
if (button_id == 'submit' && (!submitted && btn_id != "btnNew")) {
|
||||
form.submit();
|
||||
|
||||
validator.valid() && $('#submit').prop('disabled', true).css('opacity', 0.5);
|
||||
$('#submit').prop('disabled', true).css('opacity', 0.5);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -215,8 +214,6 @@
|
||||
.bootstrapTable($.extend(options, {
|
||||
columns: options.headers,
|
||||
stickyHeader: true,
|
||||
stickyHeaderOffsetLeft: $('#table').offset().left + 'px',
|
||||
stickyHeaderOffsetRight: $('#table').offset().right + 'px',
|
||||
url: options.resource + '/search',
|
||||
sidePagination: 'server',
|
||||
selectItemName: 'btSelectItem',
|
||||
|
||||
Reference in New Issue
Block a user