Compare commits

...

170 Commits

Author SHA1 Message Date
jekkos
f3fae110d6 Update install instructions + remove build on tag 2025-03-23 22:49:27 +01:00
jekkos
e9e82e4e50 Set release version to 3.4 2025-03-11 21:08:11 +01:00
Chathura Dilushanka
2bd38737e1 Update locale_config.php 2025-03-04 21:36:39 +01:00
JoseLuisKukMagana
2a789bb583 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
e8a79910fe Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
9bfe6c7c4e Translated using Weblate (Spanish (Mexico))
Currently translated at 98.8% (84 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
bc0e2c6833 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
196375d594 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
fafba87894 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
66a097d9f2 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
f3931577be Translated using Weblate (Spanish (Mexico))
Currently translated at 69.1% (47 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
f125960fe2 Translated using Weblate (Spanish (Mexico))
Currently translated at 99.5% (221 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
787977ed3e Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
502b5fd6b9 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
ec2b941f3f Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/es_MX/
2025-03-03 00:22:29 +01:00
JoseLuisKukMagana
8723274418 Translated using Weblate (Spanish (Mexico))
Currently translated at 55.5% (65 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es_MX/
2025-03-03 00:22:29 +01:00
jekkos
cf73ffa825 Fix attribute dropdown delete (#4176) 2025-03-01 00:37:23 +01:00
jekkos
eeaa693ede Fix for giftcard numbering (#4182) 2025-02-15 01:12:35 +01:00
jekkos
1378794e7e Revert "Use app language for current_lang (#4175)"
This reverts commit 19974bc8e0.
2025-02-15 01:10:16 +01:00
jekkos
d1d8aa0401 Fix greyed out submit after validation (#4174) 2025-02-15 01:09:53 +01:00
jekkos
882f3b4522 Fix table header translations (#4175) 2025-02-15 01:08:19 +01:00
jekkos
19974bc8e0 Use app language for current_lang (#4175) 2025-02-10 08:53:11 +01:00
SONKO ABDOU
d0b2b3e80b Translated using Weblate (French)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/fr/
2025-02-09 20:35:46 +01:00
BudsieBuds
57c36e7ba7 Fixes for CHANGELOG 2025-02-08 00:00:56 +01:00
jekkos
8516ffe216 Add php-json to dependency list (#4168) 2025-02-07 23:59:59 +01:00
jekkos
534f7361d6 Update CHANGELOG 2025-02-06 23:25:39 +01:00
jekkos
5609859fdf Fix attribute dropdown creation (#4171) 2025-02-05 22:24:33 +01:00
jekkos
c6c5fcac26 Fix sales tax summary with time filter (#4166) 2025-02-05 22:01:59 +01:00
BudsieBuds
4d9cd80f8b Random fixes #2
- change old directories to new (ci4)
- updated documentation for clarity
2025-02-05 21:58:28 +01:00
jekkos
2924a889c7 Remove localhost in port mapping (#4168) 2025-02-04 12:11:54 +01:00
BudsieBuds
beb18ff96b Random fixes (#4144)
Random fixes in time for the 3.4.0 release.
- corrects typo in the items controller
- small update to login view
- removes deprecated code from header view
- ospos license updated to end 2024
- moved gulp packages to dev dependencies
- updated gulp-zip and npm-check-updates to latest version
- updated readme for consistency
- makes ospos license in config fully readable
- fixes composer libraries license view in config
- gulp now updates composer libraries license and ospos license
- updated other license views in config
2025-01-28 23:48:45 +01:00
El_Coloso
7ad1bfa0fb Fix requisitions (#4147)
* Fix data types on null values
* Fix receiving receipt image tag
* Fix error on Receiving Model
2025-01-28 23:32:05 +01:00
El_Coloso
9cc24f0c70 Send receipt by email as PDF (#2682) 2025-01-26 22:13:27 +01:00
jekkos
b86e5ca6ef Use parse_decimal in decimal validation (#4152) 2025-01-24 00:17:57 +01:00
jekkos
4879fe2cf3 Show error when hitting enter in sales (#4155) 2025-01-24 00:17:57 +01:00
El_Coloso
a5b2b5f771 Fixes for receipt + invoice (#2682)
* Email invoice bar code
* Send invoice by email
* Remove default comment on invoice if comment was set
2025-01-24 00:17:25 +01:00
jekkos
ac90c07c90 Remove support for PHP7.4 for now 2025-01-13 01:13:28 +01:00
jekkos
c81c546286 Remove prepare_decimal and filter_var 2025-01-13 01:13:28 +01:00
Derek Christman
a87b6eebb2 Removed PSR12 reformatting 2025-01-13 01:13:28 +01:00
Derek Christman
487e7dc0bd Revert "Fixed cast to int and inadvertant cast of false to double when parsing locale values to float"
This reverts commit 3e4c987894e3790f671e49398c9db7820bc3378d.
2025-01-13 01:13:28 +01:00
Derek Christman
467144f884 Fixed cast to int and inadvertant cast of false to double when parsing locale values to float 2025-01-13 01:13:28 +01:00
jekkos
2f365dce91 Parse prices directly using numberformatter (#4107) 2025-01-13 01:13:28 +01:00
jekkos
5bee124965 Add php linter (#3708) 2025-01-10 19:15:38 +01:00
jekkos
6195368dfc Fix person suggestion (#4142) 2025-01-06 23:47:48 +01:00
jekkos
deb9d1e65d Fix item kits addition (#4142) 2025-01-06 23:37:07 +01:00
jekkos
b541d473cf Fix requisitions (#4142) 2025-01-06 22:33:32 +01:00
jekkos
ff6ec1bd4e Fix image inclusion in gulp compress (#3916) 2025-01-05 17:41:43 +01:00
khao_lek
6b48078b44 Translated using Weblate (Thai)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/th/
2024-12-31 22:05:15 +01:00
jekkos
3e63b99aef Add reference to unstable in INSTALL.md (#4136) 2024-12-27 00:34:21 +01:00
jekkos
0f3175bc19 Add delete unstable release after push (#4136) 2024-12-27 00:23:32 +01:00
jekkos
ebc923801b Fix gulp compress dir layout (#3916) 2024-12-26 15:58:12 +01:00
jekkos
6128924723 Use github releases for unstable (#2814) 2024-12-22 21:42:08 +01:00
jekkos
3faa48330a Fix category as dropdown save (#4134) 2024-12-22 17:12:47 +01:00
Aril Apria Susanto
86763e460c Translated using Weblate (Indonesian)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/id/
2024-12-16 12:46:53 +01:00
Aril Apria Susanto
1463151f64 Translated using Weblate (Indonesian)
Currently translated at 100.0% (222 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2024-12-16 12:46:53 +01:00
Aril Apria Susanto
ae83b47b5b Translated using Weblate (Indonesian)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/id/
2024-12-16 12:46:52 +01:00
Aril Apria Susanto
a925cb3f22 Translated using Weblate (Indonesian)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/id/
2024-12-16 12:46:52 +01:00
Aril Apria Susanto
564df8aff0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/id/
2024-12-16 12:46:52 +01:00
Aril Apria Susanto
8aee7350ae Translated using Weblate (Indonesian)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/id/
2024-12-16 12:46:51 +01:00
Aril Apria Susanto
91f1863617 Translated using Weblate (Indonesian)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/id/
2024-12-16 12:46:51 +01:00
Aril Apria Susanto
ae18737c6b Translated using Weblate (Indonesian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/id/
2024-12-16 12:46:51 +01:00
Aril Apria Susanto
bf6ef090e7 Translated using Weblate (Indonesian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/id/
2024-12-16 12:46:51 +01:00
Aril Apria Susanto
b8883954a4 Translated using Weblate (Indonesian)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/id/
2024-12-16 12:46:50 +01:00
Aril Apria Susanto
618c942529 Translated using Weblate (Indonesian)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/id/
2024-12-16 12:46:50 +01:00
Munibullah Shah
16d3a8bab1 Translated using Weblate (Urdu)
Currently translated at 5.0% (1 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ur/
2024-12-13 20:37:41 +01:00
Munibullah Shah
8b2d0b5208 Translated using Weblate (Urdu)
Currently translated at 15.7% (35 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ur/
2024-12-13 20:37:41 +01:00
Munibullah Shah
e4d5ba70eb Translated using Weblate (Urdu)
Currently translated at 10.6% (5 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ur/
2024-12-13 20:37:40 +01:00
Munibullah Shah
507b2b3cf3 Translated using Weblate (Urdu)
Currently translated at 17.6% (15 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ur/
2024-12-13 20:37:40 +01:00
Munibullah Shah
a848fbe432 Translated using Weblate (Urdu)
Currently translated at 3.7% (2 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ur/
2024-12-13 20:37:40 +01:00
Munibullah Shah
05ec5f2e7a Translated using Weblate (Urdu)
Currently translated at 23.9% (11 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/ur/
2024-12-13 20:37:40 +01:00
Munibullah Shah
4fd1c64c61 Translated using Weblate (Urdu)
Currently translated at 12.5% (1 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ur/
2024-12-13 20:37:39 +01:00
Munibullah Shah
55cba0c30d Translated using Weblate (Urdu)
Currently translated at 36.8% (7 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ur/
2024-12-13 20:37:39 +01:00
Munibullah Shah
ffd957ba2f Translated using Weblate (Urdu)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/ur/
2024-12-13 20:37:39 +01:00
objecttothis
aeee79c494 Translated using Weblate (Azerbaijani)
Currently translated at 99.3% (144 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/az/
2024-12-09 22:53:57 +01:00
odiea
4d65bd6c92 Fix sticky header issue in reports (#3854) 2024-12-05 21:08:59 +01:00
jekkos
248299521b Revert IntlFormatter refactor (#4126) 2024-12-03 00:15:06 +01:00
jekkos
cea8717378 Fix disappearing avatar (#4128) 2024-12-02 00:50:39 +01:00
jekkos
6eade2eed6 Add DigitalOcean credits (#4122) 2024-12-02 00:11:46 +01:00
jekkos
3cac58965a Remove html space in headers (#4125) 2024-11-29 00:25:33 +01:00
jekkos
255968f5ea Remove sticky headers offset (#3854) 2024-11-29 00:19:12 +01:00
jekkos
150210cee3 Add code of conduct 2024-11-15 22:53:10 +01:00
jekkos
6d106d69d2 Use npmv2 deploy (#2834) 2024-11-15 00:13:18 +01:00
jekkos
555a00d385 Apply decimal rule to receivings (#4117) 2024-11-13 23:46:12 +01:00
objecttothis
71d6502929 Use custom rule to account for all locales (#4117)
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-11-13 23:22:33 +01:00
Ludwittge
46e14a3642 Fixed translation error (#4119) 2024-11-13 23:00:29 +01:00
dependabot[bot]
6d712f3a1e Bump symfony/process from 7.1.6 to 7.1.7 (#4111)
Bumps [symfony/process](https://github.com/symfony/process) from 7.1.6 to 7.1.7.
- [Release notes](https://github.com/symfony/process/releases)
- [Changelog](https://github.com/symfony/process/blob/7.1/CHANGELOG.md)
- [Commits](https://github.com/symfony/process/compare/v7.1.6...v7.1.7)

---
updated-dependencies:
- dependency-name: symfony/process
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-12 10:48:11 +04:00
objecttothis
2d895b4a9e Adapt Configuration checker for CI4 (#4108)
- Removed $import variable as it is never used and the code generates the csv file for item imports
- Refactored import_customers.csv to match PSR-12 standard file names
- Refactored variable names to match PSR-12 standard variable names
- Updated .editorconfig to reflect PSR-12 requirement for spaces rather than tab symbols. https://www.php-fig.org/psr/psr-12/#24-indenting
- Added version number to browser reporting
- Corrected timezone reporting

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Revert .editorconfig (#3708)

---------

Signed-off-by: objecttothis <objecttothis@gmail.com>
Co-authored-by: jekkos <jeroen.peelaerts@gmail.com>
2024-11-10 09:23:42 +01:00
jekkos
ae27cba6f6 Use v2 npm deploy (#2834) 2024-11-10 00:37:32 +01:00
objecttothis
00a5e1b897 Bump CodeIgniter4 to 4.5.5 (#4106)
Updated composer.json and composer.lock.

- Ran through steps in https://codeigniter.com/user_guide/installation/upgrade_452.html
- Ran through steps in https://codeigniter.com/user_guide/installation/upgrade_453.html (this bumps several packages)
- Ran through steps in https://codeigniter.com/user_guide/installation/upgrade_454.html
- Ran through steps in https://codeigniter.com/user_guide/installation/upgrade_455.html

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-11-05 22:38:54 +01:00
objecttothis
d946b31cf4 Bugfix Attributes not saving (#4080)
Fixed issue with Attribute Values not saving correctly

This issue was caused by the Attribute->attributeValueExists function receiving a date which was already in Y-m-d format, so the conversion was returning false. Added logic to pass the date through if it was already in Y-m-d format.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-11-05 22:37:47 +01:00
Kristoffer Grundström
f66ffc81b7 Translated using Weblate (Swedish)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/sv/
2024-11-03 01:59:10 +01:00
Kristoffer Grundström
07a38f5a90 Translated using Weblate (Swedish)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/sv/
2024-11-03 01:59:10 +01:00
Kristoffer Grundström
801639957e Translated using Weblate (Swedish)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/sv/
2024-11-03 01:59:09 +01:00
Kristoffer Grundström
e384378d27 Translated using Weblate (Swedish)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/sv/
2024-11-03 01:59:09 +01:00
Kristoffer Grundström
289fd78113 Translated using Weblate (Swedish)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/sv/
2024-10-31 05:54:42 +01:00
Kristoffer Grundström
fc8e7dc116 Translated using Weblate (Swedish)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2024-10-31 05:54:42 +01:00
Kristoffer Grundström
ebb1546995 Translated using Weblate (Swedish)
Currently translated at 100.0% (222 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
06edce9ee2 Translated using Weblate (Swedish)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
0164d451b1 Translated using Weblate (Swedish)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
50fe205026 Translated using Weblate (Swedish)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
07d97de067 Translated using Weblate (Swedish)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
fbb2a0d8ab Translated using Weblate (Swedish)
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
d4f0a1d509 Translated using Weblate (Swedish)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
c20cf68e37 Translated using Weblate (Swedish)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
e64f04dba6 Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
1d538ba60c Translated using Weblate (Swedish)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
41bfeab725 Translated using Weblate (Swedish)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
3053e6a7c9 Translated using Weblate (Swedish)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
bf1aa1f986 Translated using Weblate (Swedish)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
1d4f7eace1 Translated using Weblate (Swedish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/sv/
2024-10-29 08:06:42 +01:00
Kristoffer Grundström
f6914701d2 Translated using Weblate (Swedish)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2024-10-29 08:06:42 +01:00
objecttothis
004f2b5b65 Populated CSP related directives
- Added TODO
- Copied directives from .htaccess to the ContentSecurityPolicy.php config file.
- Left CSPEnabled set to false in App.php because there is currently no CSP3 support in CI4
- Added `img-src blob:` To Content-Security-Policy header to remove error.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-10-28 22:22:37 +01:00
objecttothis
18b400ee56 Fix #3633
- Moved PSR/Log to the replace block of the composer json which gets rid of the problem with duplicate installs of PSR/Log.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-10-28 22:22:37 +01:00
objecttothis
4d6a7fff96 Fix deprecated code
- strlen() can no longer take null as an argument. This change resolves the issue.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-10-28 22:22:37 +01:00
objecttothis
28b8ff2ea6 Bump Bootstrap-table to 1.23.5
- This does not resolve #3854 but keeps the version up to date.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-10-28 22:22:37 +01:00
khao_lek
3404ce99d9 Translated using Weblate (Thai)
Currently translated at 100.0% (222 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2024-10-24 16:04:34 +02:00
khao_lek
3fb5b997ef Translated using Weblate (Thai)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2024-10-24 16:04:34 +02:00
jekkos
2da941725e Increase table width on bigger screens 2024-10-19 10:44:38 +02:00
jekkos
6a0f33e5db Fix print after sale (#3985) 2024-10-19 00:35:26 +02:00
jekkos
4369a94363 Fix sale edit form 2024-10-13 23:16:55 +02:00
jekkos
0f7d0a7903 Fix expenses entry (#4075) 2024-10-06 01:29:52 +02:00
jekkos
691ba1e8ca Fix definition flags (#4081) 2024-10-05 02:45:39 +02:00
jekkos
f3277b0d38 Try to fix checkNumeric (#4082) 2024-10-05 02:35:17 +02:00
jekkos
b8a74ba30a Fix employee, supplier, customer (#4086) 2024-10-05 02:27:25 +02:00
jekkos
0f4d06af61 Blind SQL injection fix (#3284) 2024-10-03 00:00:55 +02:00
jekkos
72f147074d Enable html escape + fix XSS (#3965) 2024-10-02 21:29:09 +02:00
objecttothis
951279aabe Pre-view filtering Items Controller
- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

- Bump bootstrap-table to 1.23.1 in attempt to resolve issue with sticky headers
- Sanitize attribute data in tables
- Sanitize item data with controller function.

Signed-off-by: objecttothis <objecttothis@gmail.com>

Sanitize Item data

- Sanitize category and item_number before display in forms.
- refactor check in pic_filename for empty to be best practices compliant.
- Added TODO

Signed-off-by: objecttothis <objecttothis@gmail.com>

Minor changes

- Refactored for code clarity.
- Removed extra blank lines.
- Minor reformatting.
- Added PHPdocs
- bumped bootstrap-table to 1.23.2

Signed-off-by: objecttothis <objecttothis@gmail.com>

Pre-view filtering Items Controller

- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

- Bump bootstrap-table to 1.23.1 in attempt to resolve issue with sticky headers
- Sanitize attribute data in tables
- Sanitize item data with controller function.

Signed-off-by: objecttothis <objecttothis@gmail.com>

Pre-view filtering Items Controller

- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

Sanitize Item data

- Sanitize category and item_number before display in forms.
- refactor check in pic_filename for empty to be best practices compliant.
- Added TODO

Signed-off-by: objecttothis <objecttothis@gmail.com>

Pre-view filtering Items Controller

- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

Removed unnecessary use statement

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-10-02 21:29:09 +02:00
objecttothis
0e361107ca Explicitly define variables
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-10-01 00:47:03 +02:00
dependabot[bot]
99530d64e0 Bump micromatch from 4.0.5 to 4.0.8 (#4078)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 13:43:59 +04:00
dependabot[bot]
1662ef5856 Bump braces from 3.0.2 to 3.0.3 (#4077)
Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
- [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: braces
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 13:43:17 +04:00
dependabot[bot]
07ee353113 Bump dompurify from 2.5.1 to 2.5.6 (#4057)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.5.1 to 2.5.6.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.5.1...2.5.6)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-30 13:37:28 +04:00
objecttothis
0aaac04344 Fixed Only Group By problem (#4073)
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-09-24 14:20:46 +04:00
jekkos
a197226c28 Fix employee search suggestion 2024-09-23 23:31:35 +02:00
jekkos
c606bde733 More giftcard fixes (#2935) 2024-09-23 00:54:46 +02:00
jekkos
42c86ec684 Fix detailed sales report (#4064) 2024-09-22 22:13:43 +02:00
jekkos
4293f70cd5 Fix column refresh after attribute delete (#2911) 2024-09-20 01:15:13 +02:00
jekkos
1406c232a5 Fix attribute save (#4016) 2024-09-20 00:46:50 +02:00
jekkos
822bebaf64 Giftcard modal improvements (#2935) 2024-09-20 00:41:34 +02:00
jekkos
3e32a5e121 Giftcard number validation (#2935) 2024-09-20 00:00:35 +02:00
jekkos
4b8d009c76 Add english fallback if no translation (#3995) 2024-09-17 17:47:30 +02:00
jekkos
7d04371425 Fix checkNumeric validation (#3872) 2024-09-17 02:02:05 +02:00
jekkos
d69e7be848 Fix bugs in expenses form (#3840) 2024-09-17 01:50:35 +02:00
jekkos
9a032d1891 Add refresh after submit in expenses (#3840) 2024-09-17 01:39:34 +02:00
jekkos
7003b124d4 Revert to english (#3995) 2024-09-17 00:54:26 +02:00
jekkos
687ded433f Fix sales date table filtering (#3999) 2024-09-17 00:46:13 +02:00
jekkos
f279877cd6 Fix customer suggestion (#4031) 2024-09-17 00:32:10 +02:00
jekkos
3a7470b4fd Sort on MAX(sale_time) in supplier report (#4055)
Sort on aggregate field reports (#4055)
2024-09-16 23:43:50 +02:00
jekkos
e91a0181af Sort on MAX(sale_time) in supplier report (#4055) 2024-09-16 23:41:59 +02:00
jekkos
b41196966c Remove duplicate attribute_links constraint (#4012) 2024-09-16 14:18:17 +02:00
jekkos
8a346b0b4c Use sqlscript container to read init script (#3826) 2024-09-16 14:18:17 +02:00
jekkos
2e56cf766f Move queries to new migration script (#4012)
Iterate over empty array if no query result
Switch compose back to master
Only remove index if no pk
Remove drop indices
Only person_id changes in this migration
Do not name primary key
2024-09-16 14:18:17 +02:00
Steve Ireland
1c95d35a74 This is intended to start resolving #3634. CIR4 query() now returns false for failed queries
Minor improvements to migrations to report to the log any failures and remove unnecessary key definitions. (#4043)
2024-09-16 14:18:17 +02:00
objecttothis
6eb22276f3 Locale handling of decimals in attribute saves
- Added check in controller to convert locale-specific decimal formats to use a period decimal separator.
- Added PHPdoc explanation

Signed-off-by: objecttothis <objecttothis@gmail.com>

Add TODO to clarify workaround

Signed-off-by: objecttothis <objecttothis@gmail.com>

Fixed bugs in SQL

- Added checks before attempting to delete non-existing values.
- Corrected function which deletes duplicate attribute values and replaces the attribute_ids

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-09-16 14:18:17 +02:00
Johntini
5434eaed03 Translated using Weblate (Spanish)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/es/
2024-09-10 13:13:13 +02:00
Johntini
94a72abf49 Translated using Weblate (Spanish)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/es/
2024-09-10 13:13:13 +02:00
Johntini
b3c8081738 Translated using Weblate (Spanish)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es/
2024-09-10 13:13:12 +02:00
Johntini
92927e1572 Translated using Weblate (Spanish)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es/
2024-09-10 13:13:12 +02:00
Johntini
502db509a2 Translated using Weblate (Spanish)
Currently translated at 100.0% (222 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2024-09-10 13:13:12 +02:00
Johntini
439572e403 Translated using Weblate (Spanish)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/es/
2024-09-10 13:13:11 +02:00
jekkos
3540fa2f6c Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/en_GB/
2024-09-08 12:44:47 +02:00
jekkos
61894c89cd Fix translations file format (#3468) 2024-09-08 01:39:20 +02:00
BNSHKEL
7c0d749d3b Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ar_LB/
2024-09-07 22:11:27 +02:00
Agung Hari Wijaya
fbd384ecdb Translated using Weblate (Indonesian)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2024-09-07 22:11:27 +02:00
Agung Hari Wijaya
84be846b5f Translated using Weblate (Indonesian)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/id/
2024-09-07 22:11:26 +02:00
Agung Hari Wijaya
900893109e Translated using Weblate (Indonesian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/id/
2024-09-07 22:11:26 +02:00
Agung Hari Wijaya
70b8217f23 Translated using Weblate (Indonesian)
Currently translated at 100.0% (222 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2024-09-07 22:11:26 +02:00
jekkos
c1dcf4e3c6 Fix for giftcard suggestions (#4030)
Switch back to master in docker-compose.yml
2024-08-28 00:04:56 +02:00
jekkos
f49d763254 XSS mitigation features (#4041)
* Remove HtmlPurifier calls

- All calls to Services::htmlPurifier()->purify() removed from data received from view.
- Bootstrap and bootswatch bump in package-lock.json

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Pre-view filtering Items Controller

- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Pre-view filtering Customers Controller

- Refactored code for clarity
- Replaced == with === operator to prevent type juggling
- Added Sanitization of Customer data before being sent to the view

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Bump bootstrap-table to 1.23.1

- Bump bootstrap-table to 1.23.1 in attempt to resolve issue with sticky headers
- Sanitize attribute data in tables
- Sanitize item data with controller function.

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Pre-view filtering Items Controller

- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Sanitize Item data

- Sanitize category and item_number before display in forms.
- refactor check in pic_filename for empty to be best practices compliant.
- Added TODO

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Minor changes

- Refactored for code clarity.
- Removed extra blank lines.
- Minor reformatting.
- Added PHPdocs
- bumped bootstrap-table to 1.23.2

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Pre-view filtering Items Controller

- Refactored code for clarity
- Created and called sanitization functions.
- Sanitize TEXT type Attributes before being sent to the view.

Signed-off-by: objecttothis <objecttothis@gmail.com>

* Sanitize Item data

- Sanitize category and item_number before display in forms.
- refactor check in pic_filename for empty to be best practices compliant.
- Added TODO

Signed-off-by: objecttothis <objecttothis@gmail.com>

---------

Signed-off-by: objecttothis <objecttothis@gmail.com>
Co-authored-by: objecttothis <objecttothis@gmail.com>
2024-08-26 11:35:56 +04:00
jekkos
402997f0da Update INSTALL.md 2024-08-17 01:24:27 +02:00
jekkos
0be9488cfb Fix customer sale suggestion (#4031) 2024-08-04 00:13:07 +02:00
172 changed files with 10254 additions and 12376 deletions

View 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
View 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/*\""

View File

@@ -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,28 +34,18 @@ after_success:
- mv dist/opensourcepos.tar.gz "dist/opensourcepos.$version.$rev.tgz"
- mv dist/opensourcepos.zip "dist/opensourcepos.$version.$rev.zip"
deploy:
- provider: npm
file: dist/opensourcepos.$version.$rev.tgz
registry: npm.pkg.github.com
email: jeroen@steganos.dev
skip_cleanup: true
api_key:
secure: "DNPJOrT51wdO0BAbkX2hKowdXYh7x8d43xvAw7eVfOslyBPiv6Bb/1QdC2Bpnlqe0WiJVS5hvBTMrJ+vSDK5i/l8jA+ZoI6ms1+P1DQ6sBBMBQI2fuvRCrJj+Fp3WnaduZb/N7R+FqdKQwD/ZORyhzJ4whtHkrO8uC7cY/wlacU="
on:
all_branches: true
- provider: releases
edge: true
file: dist/opensourcepos.$version.$rev.zip
name: "OpensourcePos $version"
release_notes_file: CHANGELOG.md
prerelease: true
skip_cleanup: true
user: jekkos
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:
tags: true
branch: master

View File

@@ -1,4 +1,5 @@
[unreleased]: https://github.com/opensourcepos/opensourcepos/compare/3.3.9...HEAD
[unreleased]: https://github.com/opensourcepos/opensourcepos/compare/3.4.0...HEAD
[3.4.0]: https://github.com/opensourcepos/opensourcepos/compare/3.3.9...3.4.0
[3.3.9]: https://github.com/opensourcepos/opensourcepos/compare/3.3.8...3.3.9
[3.3.8]: https://github.com/opensourcepos/opensourcepos/compare/3.3.7...3.3.8
[3.3.7]: https://github.com/opensourcepos/opensourcepos/compare/3.3.6...3.3.7
@@ -31,6 +32,16 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
## [3.4.0] - 2025-02-06
- Translation updates (Spanish, Indonesian, Swedish, Urdu, Chinese, Thai, French, Dutch)
- PHP 8.x support
- Security fixes (XSS, SQLi)
- Migration to Gulp as buildsystem
- Decimal validation fix
- Sticky header fix
- Receipt sent as attachment
- Barcode generation library upgrade
- Bump framework to CodeIgniter `4.x.x`
- Improve security performance against bots

98
CODE_OF_CONDUCT.md Normal file
View 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
Mozillas 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.

View File

@@ -1,21 +1,20 @@
## Server Requirements
- PHP version `7.4` to `8.3` are supported, PHP version `≤7.3` is NOT supported. Please note that PHP needs to have the extensions `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` , `php-curl` and `php-xml` installed and enabled.
- MySQL `5.6` and `5.7` are supported, also MariaDB replacement `10.x` is supported and might offer better performance.
- PHP version `8.1` to `8.3` are supported, PHP version `≤7.4` is NOT supported. Please note that PHP needs to have the extensions `php-json`, `php-gd`, `php-bcmath`, `php-intl`, `php-openssl`, `php-mbstring` , `php-curl` and `php-xml` installed and enabled. An unstable master build can be downloaded in the releases section.
- MySQL `5.7` is 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)>).
- For Windows based installations please read [the wiki](https://github.com/opensourcepos/opensourcepos/wiki). There are closed issues about this subject, as this topic has been covered a lot.
## Local install
First of all, if you're seeing the message `system folder missing` after launching your browser, or cannot find `database.php`, that most likely means you have cloned the repository and have not built the project. To build the project from a source commit point instead of from an official release check out [Building OSPOS](BUILD.md). Otherwise, continue with the following steps.
First of all, if you're seeing the message `system folder missing` after launching your browser, or cannot find `database.sql`, that most likely means you have cloned the repository and have not built the project. To build the project from a source commit point instead of from an official release check out [Building OSPOS](BUILD.md). Otherwise, continue with the following steps.
1. Download the a [pre-release for a specific branch](https://github.com/opensourcepos/opensourcepos/packages/1047637) or the latest stable [from GitHub here](https://github.com/opensourcepos/opensourcepos/releases). A repository clone will not work unless know how to build the project.
1. Download the a [pre-release for a specific branch](https://github.com/opensourcepos/opensourcepos/releases) or the latest stable [from GitHub here](https://github.com/opensourcepos/opensourcepos/releases). A repository clone will not work unless know how to build the project.
2. Create/locate a new MySQL database to install Open Source Point of Sale into.
3. Execute the file `database/database.sql` to create the tables needed.
4. Unzip and upload Open Source Point of Sale files to the web-server.
5. Open `app/Config/database.php` and modify credentials to connect to your database if needed.
6. Open `app/Config/config.php` and swap the encryption key with your own.
7. Go to your install `public` dir via the browser.
8. Log in using
- Username: admin

26
LICENSE
View File

@@ -1,30 +1,30 @@
MIT License
Copyright (c) 2013-2023 jekkos
Copyright (c) 2013-2025 jekkos
Copyright (c) 2017-2025 objecttothis
Copyright (c) 2017-2024 Steve Ireland
Copyright (c) 2017-2025 odiea
Copyright (c) 2018-2024 WebShells
Copyright (c) 2021-2025 BudsieBuds
Copyright (c) 2015-2023 FrancescoUK (aka daN4cat)
Copyright (c) 2017-2023 Steve Ireland
Copyright (c) 2017-2023 objecttothis
Copyright (c) 2017-2023 odiea
Copyright (c) 2017-2023 WebShells
Copyright (c) 2020-2021 Andriux1990
Copyright (c) 2021 BudsieBuds
Copyright (c) 2015-2022 Aamir Shahzad (aka asakpke), RoshanTech, eSite.pk
Copyright (c) 2019-2020 Andriux1990
Copyright (c) 2018-2019 Erasto Marroquin (aka Erastus)
Copyright (c) 2019 Loyd Jayme (aka loydjayme25)
Copyright (c) 2018 Erasto Marroquin (aka Erastus)
Copyright (c) 2018 Nathan Sas (aka nathanzky)
Copyright (c) 2018 Emilio Silva (aka emi-silva)
Copyright (c) 2017 Jesus Guerrero Botella (aka i92guboj)
Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal)
Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com
Copyright (c) 2016-2017 Jesus Guerrero Botella (aka i92guboj)
Copyright (c) 2017 Deep Shah (aka deepshah)
Copyright (c) 2017 Joshua Fernandez (aka joshua1234511)
Copyright (c) 2017 asadjaved63
Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal)
Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com
Copyright (c) 2016 Rinaldy@dbarber (aka rnld26)
Copyright (c) 2015-2022 Aamir Shahzad (aka asakpke), RoshanTech, eSite.pk
Copyright (c) 2015 Toni Haryanto (aka yllumi)
Copyright (c) 2012-2014 pappastech
Copyright (c) 2013 Rob Garrison
Copyright (c) 2013 Parq
Copyright (c) 2013 Ramel
Copyright (c) 2012-2014 pappastech
Copyright (c) 2012 Alain
Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@@ -94,11 +94,11 @@ NOTE: If you're running non-release code, please make sure you always run the la
- Apache server configurations are SysAdmin issues and not strictly related to OSPOS. Please make sure you can show a "Hello world" HTML page before pointing to OSPOS public directory. Make sure `.htaccess` is correctly configured.
- If the avatar pictures are not shown in items or at item save you get an error, please make sure your `public` and subdirs are assigned to the correct owner and the access permission is set to `750`.
- If the avatar pictures are not shown in items or at item save you get an error, please make sure your `writable` and subdirs are assigned to the correct owner and the access permission is set to `750`.
- If you install OSPOS in Docker behind a proxy that performs `ssloffloading`, you can enable the URL generated to be HTTPS instead of HTTP, by activating the environment variable `FORCE_HTTPS = 1`.
- If you install OSPOS behind a proxy and OSPOS constantly drops your session, consider whitelisting the proxy IP address by setting `$config['proxy_ips'] = '<proxy ip>';` in the [main PHP config file](https://github.com/opensourcepos/opensourcepos/blob/master/application/config/config.php). In extreme instances, changing `$config['sess_match_ip'] = true;` to `FALSE` may also help.
- If you install OSPOS behind a proxy and OSPOS constantly drops your session, consider whitelisting the proxy IP address by setting `public array $proxyIPs = [];` in the [main PHP config file](https://github.com/opensourcepos/opensourcepos/blob/master/app/Config/App.php).
- If you have suhosin installed and face an issue with CSRF, please make sure you read [issue #1492](https://github.com/opensourcepos/opensourcepos/issues/1492).
@@ -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://github.com/user-attachments/assets/fbbf7433-ed35-407d-8946-fd03d236d350" 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 [DigitalOcean](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. |

View File

@@ -1,5 +1,8 @@
## How to Upgrade
> [!WARNING]
> Not updated for upcoming CodeIgniter4 release (3.4.0 and subsequent versions).
1. Back up all your current database and OSPOS code.
2. Make sure you have a copy of `application/config/config.php` and `application/config/database.php`.
3. Remove all directories.

View File

@@ -12,7 +12,7 @@ class App extends BaseConfig
*
* @var string
*/
public string $application_version = '3.4.0-dev';
public string $application_version = '3.4.0';
/**
* This is the commit hash for the version you are currently using.
@@ -277,7 +277,7 @@ class App extends BaseConfig
* @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/
* @see http://www.w3.org/TR/CSP/
*/
public bool $CSPEnabled = false;
public bool $CSPEnabled = false; //TODO: Currently CSP3 tags are not supported so enabling this causes problems with script-src-elem, style-src-attr and style-src-elem
public function __construct()
{

View File

@@ -47,28 +47,45 @@ class ContentSecurityPolicy extends BaseConfig
*
* @var list<string>|string|null
*/
public $defaultSrc;
public $defaultSrc = [
'self',
'www.google.com',
];
/**
* Lists allowed scripts' URLs.
*
* @var list<string>|string
*/
public $scriptSrc = 'self';
public $scriptSrc = [
'self',
'unsafe-inline',
'unsafe-eval',
'www.google.com www.gstatic.com'
];
/**
* Lists allowed stylesheets' URLs.
*
* @var list<string>|string
*/
public $styleSrc = 'self';
public $styleSrc = [
'self',
'unsafe-inline',
'nonce-{csp-style-nonce}',
'https://fonts.googleapis.com',
];
/**
* Defines the origins from which images can be loaded.
*
* @var list<string>|string
*/
public $imageSrc = 'self';
public $imageSrc = [
'self',
'data:',
'blob:',
];
/**
* Restricts the URLs that can appear in a page's `<base>` element.
@@ -92,14 +109,21 @@ class ContentSecurityPolicy extends BaseConfig
*
* @var list<string>|string
*/
public $connectSrc = 'self';
public $connectSrc = [
'self',
'nominatim.openstreetmap.org',
];
/**
* Specifies the origins that can serve web fonts.
*
* @var list<string>|string
*/
public $fontSrc;
public $fontSrc = [
'self',
'fonts.googleapis.com',
'fonts.gstatic.com',
];
/**
* Lists valid endpoints for submission from `<form>` tags.
@@ -138,7 +162,7 @@ class ContentSecurityPolicy extends BaseConfig
*
* @var list<string>|string
*/
public $objectSrc = 'self';
public $objectSrc = 'none';
/**
* @var list<string>|string|null

View File

@@ -26,7 +26,7 @@ use CodeIgniter\HotReloader\HotReloader;
* Events::on('create', [$myInstance, 'myMethod']);
*/
Events::on('pre_system', static function () {
Events::on('pre_system', static function (): void {
if (ENVIRONMENT !== 'testing') {
if (ini_get('zlib.output_compression')) {
throw FrameworkException::forEnabledZlibOutputCompression();
@@ -50,7 +50,7 @@ Events::on('pre_system', static function () {
Services::toolbar()->respond();
// Hot Reload route - for framework use on the hot reloader.
if (ENVIRONMENT === 'development') {
Services::routes()->get('__hot-reload', static function () {
Services::routes()->get('__hot-reload', static function (): void {
(new HotReloader())->run();
});
}

View File

@@ -60,12 +60,10 @@ class Exceptions extends BaseConfig
/**
* --------------------------------------------------------------------------
* LOG DEPRECATIONS INSTEAD OF THROWING?
* WHETHER TO THROW AN EXCEPTION ON DEPRECATED ERRORS
* --------------------------------------------------------------------------
* By default, CodeIgniter converts deprecations into exceptions. Also,
* starting in PHP 8.1 will cause a lot of deprecated usage warnings.
* Use this option to temporarily cease the warnings and instead log those.
* This option also works for user deprecations.
* If set to `true`, DEPRECATED errors are only logged and no exceptions are
* thrown. This option also works for user deprecations.
*/
public bool $logDeprecations = true;

View File

@@ -3,6 +3,8 @@
namespace Config;
use CodeIgniter\Config\BaseService;
use CodeIgniter\HTTP\IncomingRequest;
use Config\Services as AppServices;
use HTMLPurifier;
use HTMLPurifier_Config;
@@ -32,6 +34,29 @@ class Services extends BaseService
* }
*/
/**
* Responsible for loading the language string translations.
*
* @return MY_Language
*/
public static function language(?string $locale = null, bool $getShared = true)
{
if ($getShared) {
return static::getSharedInstance('language', $locale)->setLocale($locale);
}
if (AppServices::get('request') instanceof IncomingRequest) {
$requestLocale = AppServices::get('request')->getLocale();
} else {
$requestLocale = Locale::getDefault();
}
// Use '?:' for empty string check
$locale = $locale ?: $requestLocale;
return new \App\Libraries\MY_Language($locale);
}
private static $htmlPurifier;
public static function htmlPurifier($getShared = true)

View File

@@ -109,7 +109,7 @@ class OSPOSRules
private function installation_check(): bool
{
$installed_extensions = implode(', ', get_loaded_extensions());
$required_extensions = ['bcmath', 'intl', 'gd', 'openssl', 'mbstring', 'curl'];
$required_extensions = ['bcmath', 'intl', 'gd', 'openssl', 'mbstring', 'curl', 'xml', 'json'];
$pattern = '/';
foreach($required_extensions as $extension)
@@ -140,23 +140,6 @@ class OSPOSRules
*/
public function decimal_locale(string $candidate, ?string &$error = null): bool
{
$candidate = prepare_decimal($candidate);
$validation = Services::validation();
$validation->setRules([
'candidate' => 'decimal'
]);
$data = [
'candidate' => $candidate
];
if (!$validation->run($data))
{
$error = $validation->getErrors();
return false;
}
return true;
return parse_decimals($candidate) !== false;
}
}

View File

@@ -38,10 +38,10 @@ class Attributes extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(attribute_definition_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'definition_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$attributes = $this->attribute->search($search, $limit, $offset, $sort, $order);
@@ -64,11 +64,11 @@ class Attributes extends Secure_Controller
*/
public function postSaveAttributeValue(): void
{
$success = $this->attribute->save_value(
$success = $this->attribute->saveAttributeValue(
html_entity_decode($this->request->getPost('attribute_value')),
$this->request->getPost('definition_id', FILTER_SANITIZE_NUMBER_INT),
$this->request->getPost('item_id', FILTER_SANITIZE_NUMBER_INT),
$this->request->getPost('attribute_id', FILTER_SANITIZE_NUMBER_INT)
$this->request->getPost('item_id', FILTER_SANITIZE_NUMBER_INT) ?? false,
$this->request->getPost('attribute_id', FILTER_SANITIZE_NUMBER_INT) ?? false
);
echo json_encode(['success' => $success != 0]);
@@ -131,7 +131,7 @@ class Attributes extends Secure_Controller
foreach($definition_values as $definition_value)
{
$this->attribute->save_value($definition_value, $definition_data['definition_id']);
$this->attribute->saveAttributeValue($definition_value, $definition_data['definition_id']);
}
echo json_encode([
@@ -180,7 +180,7 @@ class Attributes extends Secure_Controller
*/
public function getRow(int $row_id): void
{
$attribute_definition_info = $this->attribute->get_info($row_id);
$attribute_definition_info = $this->attribute->getAttributeInfo($row_id);
$attribute_definition_info->definition_flags = $this->get_attributes($attribute_definition_info->definition_flags);
$data_row = get_attribute_definition_data_row($attribute_definition_info);
@@ -210,7 +210,7 @@ class Attributes extends Secure_Controller
*/
public function getView(int $definition_id = NO_DEFINITION_ID): void
{
$info = $this->attribute->get_info($definition_id);
$info = $this->attribute->getAttributeInfo($definition_id);
foreach(get_object_vars($info) as $property => $value)
{
$info->$property = $value;
@@ -231,14 +231,15 @@ class Attributes extends Secure_Controller
}
/**
* AJAX called function to delete an attribute value. This is never called in the code. Perhaps it was boiler plate code that just isn't needed?
* @param int $attribute_id
* AJAX called function to delete an attribute value. This is called when a dropdown item is removed.
*
* @param string $attribute_value
* @return bool
* @noinspection PhpUnused
*/
public function delete_value(int $attribute_id): bool //TODO: This function appears to never be used in the codebase. Is it needed?
public function delete_value(string $attribute_value): bool
{
return $this->attribute->delete_value($attribute_id, NO_DEFINITION_ID);
return $this->attribute->delete_value($attribute_value, NO_DEFINITION_ID);
}
/**

View File

@@ -43,10 +43,10 @@ class Cashups extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(cashup_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'cashup_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$filters = [
'start_date' => $this->request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS), //TODO: Is this the best way to filter dates
@@ -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

View File

File diff suppressed because it is too large Load Diff

View File

@@ -87,10 +87,10 @@ class Customers extends Persons
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(customer_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'people.person_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$customers = $this->customer->search($search, $limit, $offset, $sort, $order);
@@ -125,7 +125,7 @@ class Customers extends Persons
*/
public function getSuggest(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getGet('term');
$suggestions = $this->customer->get_search_suggestions($search);
echo json_encode($suggestions);
@@ -136,7 +136,7 @@ class Customers extends Persons
*/
public function suggest_search(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getGet('term');
$suggestions = $this->customer->get_search_suggestions($search, 25, false);
echo json_encode($suggestions);
@@ -185,14 +185,7 @@ class Customers extends Persons
$data['packages'] = $packages;
$data['selected_package'] = $info->package_id;
if($this->config['use_destination_based_tax']) //TODO: This can be shortened for ternary notation
{
$data['use_destination_based_tax'] = true;
}
else
{
$data['use_destination_based_tax'] = false;
}
$data['use_destination_based_tax'] = $this->config['use_destination_based_tax'];
// retrieve the total amount the customer spent so far together with min, max and average values
$stats = $this->customer->get_stats($customer_id);
@@ -293,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,
@@ -419,7 +410,7 @@ class Customers extends Persons
*/
public function getCsv(): DownloadResponse
{
$name = 'import_customers.csv';
$name = 'importCustomers.csv';
$data = file_get_contents(WRITEPATH . "uploads/$name");
return $this->response->download($name, $data);
}
@@ -539,4 +530,5 @@ class Customers extends Persons
}
}
}
}

View File

@@ -27,10 +27,10 @@ class Employees extends Persons
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(person_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'people.person_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$employees = $this->employee->search($search, $limit, $offset, $sort, $order);
@@ -52,7 +52,7 @@ class Employees extends Persons
*/
public function getSuggest(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getGet('term');
$suggestions = $this->employee->get_search_suggestions($search, 25, true);
echo json_encode($suggestions);
@@ -63,7 +63,7 @@ class Employees extends Persons
*/
public function suggest_search(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->employee->get_search_suggestions($search);
echo json_encode($suggestions);

View File

@@ -45,10 +45,10 @@ class Expenses extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(expense_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'expense_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$filters = [
'start_date' => $this->request->getGet('start_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
@@ -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),
@@ -192,19 +190,6 @@ class Expenses extends Secure_Controller
}
}
/**
* Checks the expense amount for validity. Used in app\Views\expenses\form.php
*
* @return void
* @noinspection PhpUnused
*/
public function ajax_check_amount(): void
{
$value = $this->request->getPost();
$parsed_value = filter_var(prepare_decimal(array_pop($value)), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
echo json_encode (['success' => $parsed_value !== false]);
}
/**
* @return void
*/

View File

@@ -31,10 +31,10 @@ class Expenses_categories extends Secure_Controller //TODO: Is this class ever u
**/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(expense_category_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'expense_category_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$expense_categories = $this->expense_category->search($search, $limit, $offset, $sort, $order);

View File

@@ -32,10 +32,10 @@ class Giftcards extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(giftcard_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'giftcard_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$giftcards = $this->giftcard->search($search, $limit, $offset, $sort, $order);
@@ -58,7 +58,7 @@ class Giftcards extends Secure_Controller
*/
public function getSuggest(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getGet('term');
$suggestions = $this->giftcard->get_search_suggestions($search, true);
echo json_encode($suggestions);
@@ -69,7 +69,7 @@ class Giftcards extends Secure_Controller
*/
public function suggest_search(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->giftcard->get_search_suggestions($search);
echo json_encode($suggestions);
@@ -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)
];
@@ -172,9 +171,9 @@ class Giftcards extends Secure_Controller
*/
public function postCheckNumberGiftcard(): void
{
$giftcard_amount = prepare_decimal($this->request->getPost('giftcard_amount'));
$giftcard_amount = parse_decimals($this->request->getPost('giftcard_amount'));
$parsed_value = filter_var($giftcard_amount, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
echo json_encode (['success' => $parsed_value !== false, 'giftcard_amount' => to_currency_no_money($parsed_value)]);
echo json_encode (['success' => $parsed_value !== false && $parsed_value > 0 && $giftcard_amount !== false, 'giftcard_amount' => to_currency_no_money($parsed_value)]);
}
/**

View File

@@ -76,10 +76,10 @@ class Item_kits extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search')) ?? '';
$search = $this->request->getGet('search') ?? '';
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(item_kit_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'item_kit_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$item_kits = $this->item_kit->search($search, $limit, $offset, $sort, $order);
@@ -101,7 +101,7 @@ class Item_kits extends Secure_Controller
*/
public function suggest_search(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->item_kit->get_search_suggestions($search);
echo json_encode($suggestions);
@@ -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')),

View File

@@ -94,10 +94,10 @@ class Items extends Secure_Controller
**/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(item_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'item_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$this->item_lib->set_item_location($this->request->getGet('stock_location'));
@@ -182,7 +182,7 @@ class Items extends Secure_Controller
'is_deleted' => $this->request->getPost('is_deleted') !== null
];
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->item->get_search_suggestions($search, $options);
echo json_encode($suggestions);
@@ -195,7 +195,7 @@ class Items extends Secure_Controller
*/
public function getSuggest(): void
{
$search = Services::htmlPurifier()->purify($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,7 +205,7 @@ 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'));
@@ -267,18 +267,16 @@ class Items extends Secure_Controller
* @param int $item_id
* @return void
*/
public function getView(int $item_id = NEW_ENTRY): void //TODO: Super long function. Perhaps we need to refactor out some methods.
public function getView(int $item_id = NEW_ENTRY): void //TODO: Long function. Perhaps we need to refactor out some methods.
{
// Set default values
if($item_id == null) $item_id = NEW_ENTRY;
$item_id ??= NEW_ENTRY;
if($item_id === NEW_ENTRY)
{
$data = [];
}
//allow_temp_items is set in the index function of items.php or sales.php
$data['allow_temp_item'] = $this->session->get('allow_temp_items');
$data['allow_temp_item'] = $this->session->get('allow_temp_items'); //allow_temp_items is set in the index function of items.php or sales.php
$data['item_tax_info'] = $this->item_taxes->get_info($item_id);
$data['default_tax_1_rate'] = '';
$data['default_tax_2_rate'] = '';
@@ -316,7 +314,7 @@ class Items extends Secure_Controller
$item_info->receiving_quantity = 1;
$item_info->reorder_level = 1;
$item_info->item_type = ITEM; //Standard
$item_info->item_type = ITEM; //Standard
$item_info->item_id = $item_id;
$item_info->stock_type = HAS_STOCK;
$item_info->tax_category_id = null;
@@ -348,14 +346,9 @@ class Items extends Secure_Controller
$data['suppliers'] = $suppliers;
$data['selected_supplier'] = $item_info->supplier_id;
if($data['include_hsn']) //TODO: Transform this to ternary notation
{
$data['hsn_code'] = $item_info->hsn_code;
}
else
{
$data['hsn_code'] = '';
}
$data['hsn_code'] = $data['include_hsn']
? $item_info->hsn_code
: '';
if($use_destination_based_tax)
{
@@ -405,7 +398,6 @@ class Items extends Secure_Controller
$data['image_path'] = '';
}
$stock_locations = $this->stock_location->get_undeleted_all()->getResultArray();
foreach($stock_locations as $location)
@@ -521,6 +513,8 @@ class Items extends Secure_Controller
}
/**
* Gathers attribute value information for an item and returns it in a view.
*
* @param int $item_id
* @return void
*/
@@ -637,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)
@@ -649,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 = [
@@ -663,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,
@@ -694,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;
@@ -739,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)
{
@@ -771,23 +764,7 @@ class Items extends Secure_Controller
$success &= $this->inventory->insert($inv_data, false);
}
}
// Save item attributes
$attribute_links = $this->request->getPost('attribute_links') ?? [];
$attribute_ids = $this->request->getPost('attribute_ids');
$this->attribute->delete_link($item_id);
foreach($attribute_links as $definition_id => $attribute_value)
{
$definition_type = $this->attribute->get_info($definition_id)->definition_type;
$attribute_id = $definition_type === DROPDOWN
? $attribute_value
: $this->attribute->save_value($attribute_value, $definition_id, $item_id, $attribute_ids[$definition_id], $definition_type);
$this->attribute->save_link($item_id, $definition_id, $attribute_id);
}
$this->saveItemAttributes($item_id);
if($success && $upload_success)
{
@@ -909,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);
@@ -1124,7 +1101,9 @@ class Items extends Secure_Controller
}
//Remove false, null, '' and empty strings but keep 0
$item_data = array_filter($item_data, 'strlen');
$item_data = array_filter($item_data, function($value) {
return $value !== null && strlen($value);
});
if(!$is_failed_row && $this->item->save_value($item_data, $item_id))
{
@@ -1327,15 +1306,15 @@ class Items extends Secure_Controller
*/
private function store_attribute_value(string $value, array $attribute_data, int $item_id)
{
$attribute_id = $this->attribute->value_exists($value, $attribute_data['definition_type']);
$attribute_id = $this->attribute->attributeValueExists($value, $attribute_data['definition_type']);
$this->attribute->delete_link($item_id, $attribute_data['definition_id']);
$this->attribute->deleteAttributeLinks($item_id, $attribute_data['definition_id']);
if(!$attribute_id)
{
$attribute_id = $this->attribute->save_value($value, $attribute_data['definition_id'], $item_id, false, $attribute_data['definition_type']);
$attribute_id = $this->attribute->saveAttributeValue($value, $attribute_data['definition_id'], $item_id, false, $attribute_data['definition_type']);
}
else if(!$this->attribute->save_link($item_id, $attribute_data['definition_id'], $attribute_id))
else if(!$this->attribute->saveAttributeLink($item_id, $attribute_data['definition_id'], $attribute_id))
{
return false;
}
@@ -1443,4 +1422,38 @@ class Items extends Secure_Controller
}
}
}
/**
* Saves item attributes for a given item.
*
* @param int $itemId The item for which attributes need to be saved to.
* @return void
*/
public function saveItemAttributes(int $itemId): void
{
$attributeLinks = $this->request->getPost('attribute_links') ?? [];
$attributeIds = $this->request->getPost('attribute_ids');
$this->attribute->deleteAttributeLinks($itemId);
foreach($attributeLinks as $definitionId => $attributeValue)
{
$definitionType = $this->attribute->getAttributeInfo($definitionId)->definition_type;
switch($definitionType)
{
case DROPDOWN:
$attributeId = $attributeValue;
break;
case DECIMAL:
$attributeValue = parse_decimals($attributeValue);
//Fall through to save the attribute value
default:
$attributeId = $this->attribute->saveAttributeValue($attributeValue, $definitionId, $itemId, $attributeIds[$definitionId], $definitionType);
break;
}
$this->attribute->saveAttributeLink($itemId, $definitionId, $attributeId);
}
}
}

View File

@@ -35,7 +35,7 @@ abstract class Persons extends Secure_Controller
*/
public function getSuggest(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getGet('term');
$suggestions = $this->person->get_search_suggestions($search);
echo json_encode($suggestions);
@@ -65,7 +65,7 @@ abstract class Persons extends Secure_Controller
{
$adjusted_name = str_name_case($input);
// Use preg_replace to match HTML entities and convert them to lowercase.
//TODO:Use preg_replace to match HTML entities and convert them to lowercase. This is a workaround for https://github.com/tamtamchik/namecase/issues/20
return preg_replace_callback('/&[a-zA-Z0-9#]+;/', function($matches) { return strtolower($matches[0]); }, $adjusted_name);
}
}

View File

@@ -61,7 +61,7 @@ class Receivings extends Secure_Controller
*/
public function getItemSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('term'));
$search = $this->request->getGet('term');
$suggestions = $this->item->get_search_suggestions($search, ['search_custom' => false, 'is_deleted' => false], true);
$suggestions = array_merge($suggestions, $this->item_kit->get_search_suggestions($search));
@@ -76,7 +76,7 @@ class Receivings extends Secure_Controller
*/
public function getStockItemSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('term'));
$search = $this->request->getGet('term');
$suggestions = $this->item->get_stock_search_suggestions($search, ['search_custom' => false, 'is_deleted' => false], true);
$suggestions = array_merge($suggestions, $this->item_kit->get_search_suggestions($search));
@@ -206,24 +206,21 @@ 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'));
$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);
$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);
@@ -327,7 +324,7 @@ class Receivings extends Secure_Controller
*/
public function postComplete(): void
{
$amount_tendered = prepare_decimal($this->request->getPost('amount_tendered'));
$data = [];
$data['cart'] = $this->receiving_lib->get_cart();
@@ -341,7 +338,7 @@ class Receivings extends Secure_Controller
$data['stock_location'] = $this->receiving_lib->get_stock_source();
if($this->request->getPost('amount_tendered') != null)
{
$data['amount_tendered'] = filter_var($amount_tendered, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
$data['amount_tendered'] = parse_decimals($this->request->getPost('amount_tendered'));
$data['amount_change'] = to_currency($data['amount_tendered'] - $data['total']);
}
@@ -404,7 +401,7 @@ class Receivings extends Secure_Controller
$this->receiving_lib->add_item($item['item_id'], -$item['quantity'], $this->receiving_lib->get_stock_source(), $item['discount_type']);
}
$this->complete();
$this->postComplete();
}
else
{

View File

@@ -136,7 +136,7 @@ class Sales extends Secure_Controller
$search = $this->request->getGet('search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(sales_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'sale_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$filters = [
@@ -186,7 +186,7 @@ class Sales extends Secure_Controller
{
$suggestions = [];
$receipt = $search = $this->request->getGet('term') != ''
? Services::htmlPurifier()->purify($this->request->getGet('term'))
? $this->request->getGet('term')
: null;
if($this->sale_lib->get_mode() == 'return' && $this->sale->is_valid_receipt($receipt))
@@ -206,7 +206,7 @@ class Sales extends Secure_Controller
public function suggest_search(): void
{
$search = $this->request->getPost('term') != ''
? Services::htmlPurifier()->purify($this->request->getPost('term'))
? $this->request->getPost('term')
: null;
$suggestions = $this->sale->get_search_suggestions($search);
@@ -360,7 +360,7 @@ class Sales extends Secure_Controller
*/
public function postSetPrintAfterSale(): void
{
$this->sale_lib->set_print_after_sale($this->request->getPost('sales_print_after_sale') != null);
$this->sale_lib->set_print_after_sale($this->request->getPost('sales_print_after_sale') != 'false');
}
/**
@@ -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);
}
}
@@ -608,7 +606,7 @@ class Sales extends Secure_Controller
}
else
{
if(!$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $item_location, $quantity, $discount, $discount_type, PRICE_MODE_STANDARD, null, null, $price))
if($item_id_or_number_or_item_kit_or_receipt == '' || !$this->sale_lib->add_item($item_id_or_number_or_item_kit_or_receipt, $item_location, $quantity, $discount, $discount_type, PRICE_MODE_STANDARD, null, null, $price))
{
$data['error'] = lang('Sales.unable_to_add_item');
}
@@ -633,30 +631,25 @@ class Sales extends Secure_Controller
$data = [];
$rules = [
'price' => 'trim|required|numeric',
'quantity' => 'trim|required|numeric',
'discount' => 'trim|permit_empty|numeric',
'price' => 'trim|required|decimal_locale',
'quantity' => 'trim|required|decimal_locale',
'discount' => 'trim|permit_empty|decimal_locale',
];
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;
@@ -750,7 +743,7 @@ class Sales extends Secure_Controller
$data['invoice_number_enabled'] = $this->sale_lib->is_invoice_mode();
$data['cur_giftcard_value'] = $this->sale_lib->get_giftcard_remainder();
$data['cur_rewards_value'] = $this->sale_lib->get_rewards_remainder();
$data['print_after_sale'] = $this->sale_lib->is_print_after_sale();
$data['print_after_sale'] = $this->session->get('sales_print_after_sale');
$data['price_work_orders'] = $this->sale_lib->is_price_work_orders();
$data['email_receipt'] = $this->sale_lib->is_email_receipt();
$customer_id = $this->sale_lib->get_customer();
@@ -991,21 +984,21 @@ class Sales extends Secure_Controller
if(!empty($sale_data['customer_email']))
{
$to = $sale_data['customer_email'];
$number = $sale_data[$type."_number"];
$number = array_key_exists($type."_number", $sale_data) ? $sale_data[$type."_number"] : "";
$subject = lang('Sales.' . $type) . ' ' . $number;
$text = $this->config['invoice_email_message'];
$tokens = [
new Token_invoice_sequence($sale_data['invoice_number']),
new Token_invoice_count('POS ' . $sale_data['sale_id']),
new Token_customer((object)$sale_data)
new Token_customer((array)$sale_data)
];
$text = $this->token_lib->render($text, $tokens);
$sale_data['mimetype'] = mime_content_type(FCPATH . 'uploads/' . $this->config['company_logo']);
// generate email attachment: invoice in pdf format
$view = Services::renderer();
$html = $view->render("sales/$type" . '_email', $sale_data);
$html = $view->setData($sale_data)->render("sales/$type" . '_email', $sale_data);
// load pdf helper
helper (['dompdf', 'file']);
@@ -1047,7 +1040,7 @@ class Sales extends Secure_Controller
$subject = lang('Sales.receipt');
$view = Services::renderer();
$text = $view->render('sales/receipt_email', $sale_data);
$text = $view->setData($sale_data)->render('sales/receipt_email');
$result = $this->email_lib->sendEmail($to, $subject, $text);
@@ -1532,7 +1525,7 @@ class Sales extends Secure_Controller
* @param int $sale_id
* @throws ReflectionException
*/
public function save(int $sale_id = NEW_ENTRY): void
public function postSave(int $sale_id = NEW_ENTRY): void
{
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$employee_id = $this->employee->get_logged_in_employee_info()->person_id;
@@ -1549,19 +1542,15 @@ class Sales extends Secure_Controller
];
// In order to maintain tradition the only element that can change on prior payments is the payment type
$payments = [];
$amount_tendered = 0;
$number_of_payments = $this->request->getPost('number_of_payments', FILTER_SANITIZE_NUMBER_INT);
for($i = 0; $i < $number_of_payments; ++$i)
{
$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;
@@ -1579,7 +1568,7 @@ class Sales extends Secure_Controller
$cash_refund = 0.00;
}
$sale_data['payments'] = [
$sale_data['payments'][] = [
'payment_id' => $payment_id,
'payment_type' => $payment_type,
'payment_amount' => $payment_amount,
@@ -1590,13 +1579,12 @@ class Sales extends Secure_Controller
}
$payment_id = NEW_ENTRY;
$payment_amount_new = prepare_decimal($this->request->getPost('payment_amount_new'));
$payment_amount = filter_var($payment_amount_new, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
$payment_amount_new = $this->request->getPost('payment_amount_new');
$payment_type = $this->request->getPost('payment_type_new', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if($payment_type != PAYMENT_TYPE_UNASSIGNED && $payment_amount <> 0)
if($payment_type != PAYMENT_TYPE_UNASSIGNED && !empty($payment_amount_new))
{
$payment_amount = parse_decimals($payment_amount_new);
$cash_refund = 0;
if($payment_type == lang('Sales.cash_adjustment'))
{
@@ -1614,7 +1602,7 @@ class Sales extends Secure_Controller
}
}
$sale_data['payments'] = [
$sale_data['payments'][] = [
'payment_id' => $payment_id,
'payment_type' => $payment_type,
'payment_amount' => $payment_amount,

View File

@@ -82,6 +82,11 @@ class Secure_Controller extends BaseController
view('viewData', $this->global_view_data);
}
public function sanitizeSortColumn($headers, $field, $default): string
{
return $field != null && in_array($field, array_keys(array_merge(...$headers))) ? $field : $default;
}
/**
* AJAX function used to confirm whether values sent in the request are numeric
* @return void
@@ -89,14 +94,15 @@ class Secure_Controller extends BaseController
*/
public function getCheckNumeric(): void
{
$result = true;
foreach($this->request->getGet(null, FILTER_SANITIZE_FULL_SPECIAL_CHARS) as $value)
foreach($this->request->getGet() as $value)
{
$result &= (int)parse_decimals($value);
if (parse_decimals($value) === false)
{
echo 'false';
return;
}
}
echo $result !== false ? 'true' : 'false';
echo 'true';
}
/**

View File

@@ -45,10 +45,10 @@ class Suppliers extends Persons
**/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$sort = $this->sanitizeSortColumn(supplier_headers(), $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS), 'people.person_id');
$order = $this->request->getGet('order', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$suppliers = $this->supplier->search($search, $limit, $offset, $sort, $order);
@@ -71,7 +71,7 @@ class Suppliers extends Persons
**/
public function getSuggest(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('term'));
$search = $this->request->getGet('term');
$suggestions = $this->supplier->get_search_suggestions($search, true);
echo json_encode($suggestions);
@@ -82,7 +82,7 @@ class Suppliers extends Persons
*/
public function suggest_search(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->supplier->get_search_suggestions($search, false);
echo json_encode($suggestions);

View File

@@ -36,7 +36,7 @@ class Tax_categories extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);

View File

@@ -46,7 +46,7 @@ class Tax_codes extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);

View File

@@ -39,7 +39,7 @@ class Tax_jurisdictions extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);

View File

@@ -83,7 +83,7 @@ class Taxes extends Secure_Controller
*/
public function getSearch(): void
{
$search = Services::htmlPurifier()->purify($this->request->getGet('search'));
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->request->getGet('sort', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
@@ -107,7 +107,7 @@ class Taxes extends Secure_Controller
*/
public function suggest_search(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->tax->get_search_suggestions($search); //TODO: There is no get_search_suggestions function in the tax model
echo json_encode($suggestions);
@@ -120,7 +120,7 @@ class Taxes extends Secure_Controller
*/
public function suggest_tax_categories(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPost('term'));
$search = $this->request->getPost('term');
$suggestions = $this->tax_category->get_tax_category_suggestions($search);
echo json_encode($suggestions);
@@ -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)
@@ -461,7 +459,7 @@ class Taxes extends Secure_Controller
*/
public function getSuggestTaxCodes(): void
{
$search = Services::htmlPurifier()->purify($this->request->getPostGet('term'));
$search = $this->request->getPostGet('term');
$suggestions = $this->tax_code->get_tax_codes_search_suggestions($search);
echo json_encode($suggestions);

View File

@@ -153,7 +153,14 @@ class Migration_Sales_Tax_Data extends Migration
. $this->db->prefixTable('sales_taxes')
. ' as ST ON SIT.sale_id = ST.sale_id WHERE ST.sale_id is null GROUP BY SIT.sale_id, ST.sale_id'
. ' ORDER BY SIT.sale_id) as US')->getResultArray();
return $result[0]['COUNT(*)'];
if(!$result)
{
error_log('Database error in 20170502221506_sales_tax_data.php related to sales_taxes or sales_items_taxes.');
return 0;
}
return $result[0]['COUNT(*)'] ?: 0;
}
/**

View File

@@ -133,7 +133,14 @@ class Migration_TaxAmount extends Migration
. ' as ST ON SIT.sale_id = ST.sale_id GROUP BY SIT.sale_id, ST.sale_id'
. ' ORDER BY SIT.sale_id) as US')->getResultArray();
return $result[0]['COUNT(*)'];
if(!$result)
{
error_log('Database error in 20200202000000_taxamount.php related to sales_taxes or sales_items_taxes.');
return 0;
}
return $result[0]['COUNT(*)'] ?: 0;
}
/**

View File

@@ -5,6 +5,7 @@ namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use CodeIgniter\Database\ResultInterface;
use App\Models\Attribute;
use Config\Database;
use Config\OSPOS;
use DateTime;
@@ -28,12 +29,12 @@ class Migration_database_optimizations extends Migration
$builder = $this->db->table('attribute_values');
$builder->select('attribute_id, attribute_value, attribute_decimal, attribute_date');
$builder->groupStart();
$builder->where('attribute_value IS NOT NULL');
$builder->where('attribute_date IS NOT NULL');
$builder->where('attribute_value IS NOT NULL');
$builder->where('attribute_date IS NOT NULL');
$builder->groupEnd();
$builder->orGroupStart();
$builder->where('attribute_value IS NOT NULL');
$builder->where('attribute_decimal IS NOT NULL');
$builder->where('attribute_value IS NOT NULL');
$builder->where('attribute_decimal IS NOT NULL');
$builder->groupEnd();
$attribute_values = $builder->get();
@@ -45,37 +46,40 @@ class Migration_database_optimizations extends Migration
$builder = $this->db->table('attribute_values');
$builder->delete(['attribute_id' => $attribute_value['attribute_id']]);
//TODO: This should be converted to using CI4 QueryBuilder
$query = 'SELECT links.definition_id, links.item_id, links.attribute_id, defs.definition_type'
. ' FROM ospos_attribute_links links'
. ' JOIN ospos_attribute_definitions defs ON defs.definition_id = links.definition_id'
. ' WHERE attribute_id = ' . $attribute_value['attribute_id'];
$attribute_links = $this->db->query($query);
$builder = $this->db->table('attribute_links');
$builder->select('links.definition_id, links.item_id, links.attribute_id, defs.definition_type');
$builder->join('attribute_definitions defs', 'defs.definition_id = links.definition_id');
$builder->where('attribute_id', $attribute_value['attribute_id']);
$attribute_links = $builder->get();
foreach($attribute_links->getResultArray() as $attribute_link)
if($attribute_links)
{
$builder->where('attribute_id', $attribute_link['attribute_id']);
$builder->where('item_id', $attribute_link['item_id']);
$builder->delete();
$builder = $this->db->table('attribute_links');
$attribute_links = $attribute_links->getResultArray() ?: [];
switch($attribute_link['definition_type'])
foreach($attribute_links->getResultArray() as $attribute_link)
{
case DECIMAL:
$value = $attribute_value['attribute_decimal'];
break;
case DATE:
$config = config(OSPOS::class)->settings;
$attribute_date = DateTime::createFromFormat('Y-m-d', $attribute_value['attribute_date']);
$value = $attribute_date->format($config['dateformat']);
break;
default:
$value = $attribute_value['attribute_value'];
break;
}
$builder->where('attribute_id', $attribute_link['attribute_id']);
$builder->where('item_id', $attribute_link['item_id']);
$builder->delete();
$attribute->save_value($value, $attribute_link['definition_id'], $attribute_link['item_id'], false, $attribute_link['definition_type']);
switch($attribute_link['definition_type'])
{
case DECIMAL:
$value = $attribute_value['attribute_decimal'];
break;
case DATE:
$config = config(OSPOS::class)->settings;
$attribute_date = DateTime::createFromFormat('Y-m-d', $attribute_value['attribute_date']);
$value = $attribute_date->format($config['dateformat']);
break;
default:
$value = $attribute_value['attribute_value'];
break;
}
$attribute->saveAttributeValue($value, $attribute_link['definition_id'], $attribute_link['item_id'], false, $attribute_link['definition_type']);
}
}
}
$this->db->transComplete();
@@ -96,15 +100,22 @@ class Migration_database_optimizations extends Migration
$column = 'attribute_' . strtolower($attribute_type);
$builder = $this->db->table('attribute_values');
$builder->select("$column, attribute_id");
$builder->select("$column");
$builder->groupBy($column);
$builder->having("COUNT($column) > 1");
$duplicated_values = $builder->get();
foreach($duplicated_values->getResultArray() as $duplicated_value)
{
$subquery_builder = $this->db->table('attribute_values');
$subquery_builder->select('attribute_id');
$subquery_builder->where($column, $duplicated_value[$column]);
$subquery = $subquery_builder->getCompiledSelect();
$builder = $this->db->table('attribute_values');
$builder->select('attribute_id');
$builder->where($column, $duplicated_value[$column]);
$builder->where("attribute_id IN ($subquery)", null, false);
$attribute_ids_to_fix = $builder->get();
$this->reassign_duplicate_attribute_values($attribute_ids_to_fix, $duplicated_value);
@@ -121,15 +132,18 @@ class Migration_database_optimizations extends Migration
*/
private function reassign_duplicate_attribute_values(ResultInterface $attribute_ids_to_fix, array $attribute_value): void
{
foreach($attribute_ids_to_fix->getResultArray() as $attribute_id)
$attribute_ids = $attribute_ids_to_fix->getResultArray();
$retain_attribute_id = $attribute_ids[0]['attribute_id'];
foreach($attribute_ids as $attribute_id)
{
//Update attribute_link with the attribute_id we are keeping
$builder = $this->db->table('attribute_links');
$builder->where('attribute_id', $attribute_id['attribute_id']);
$builder->update(['attribute_id' => $attribute_value['attribute_id']]);
$builder->update(['attribute_id' => $retain_attribute_id]);
//Delete the row from attribute_values if it isn't our keeper
if($attribute_id['attribute_id'] !== $attribute_value['attribute_id'])
if($attribute_id['attribute_id'] !== $retain_attribute_id)
{
$builder = $this->db->table('attribute_values');
$builder->delete(['attribute_id' => $attribute_id['attribute_id']]);

View File

@@ -32,14 +32,13 @@ class Migration_remove_duplicate_links extends Migration
$this->db->transStart();
$builder = $this->db->table('attribute_links');
$builder->select('item_id, definition_id, attribute_id, COUNT(*) as count');
$builder->where('sale_id', null);
$builder->where('receiving_id', null);
$builder->groupBy('item_id');
$builder->groupBy('definition_id');
$builder->groupBy('attribute_id');
$builder->having('COUNT(item_id) > 1');
$builder->having('COUNT(definition_id) > 1');
$builder->having('COUNT(attribute_id) > 1');
$builder->having('count > 1');
$duplicated_links = $builder->get();
$builder = $this->db->table('attribute_links');
@@ -52,7 +51,7 @@ class Migration_remove_duplicate_links extends Migration
$builder->where('definition_id', $duplicated_link['definition_id']);
$builder->delete();
$attribute->save_link($duplicated_link['item_id'], $duplicated_link['definition_id'], $duplicated_link['attribute_id']);
$attribute->saveAttributeLink($duplicated_link['item_id'], $duplicated_link['definition_id'], $duplicated_link['attribute_id']);
}
$this->db->transComplete();

View File

@@ -3,18 +3,25 @@
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use Config\Database;
class Migration_fix_keys_for_db_upgrade extends Migration
{
class Migration_fix_keys_for_db_upgrade extends Migration {
/**
* Perform a migration step.
*/
public function up(): void
{
$this->db->query("ALTER TABLE `ospos_tax_codes` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;");
if (!$this->index_exists('ospos_customers', 'company_name'))
{
$this->db->query("ALTER TABLE `ospos_customers` ADD INDEX(`company_name`)");
}
$checkSql = "SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND TABLE_NAME = '" . $this->db->prefixTable('sales_items_taxes') . "' AND CONSTRAINT_NAME = 'ospos_sales_items_taxes_ibfk_1'";
$foreignKeyExists = $this->db->query($checkSql)->getRow();
if($foreignKeyExists)
if ($foreignKeyExists)
{
$this->db->query('ALTER TABLE ' . $this->db->prefixTable('sales_items_taxes') . ' DROP FOREIGN KEY ospos_sales_items_taxes_ibfk_1');
}
@@ -22,6 +29,11 @@ class Migration_fix_keys_for_db_upgrade extends Migration
$this->db->query('ALTER TABLE ' . $this->db->prefixTable('sales_items_taxes')
. ' ADD CONSTRAINT ospos_sales_items_taxes_ibfk_1 FOREIGN KEY (sale_id, item_id, line) '
. ' REFERENCES ' . $this->db->prefixTable('sales_items') . ' (sale_id, item_id, line)');
$this->create_primary_key('customers', 'person_id');
$this->create_primary_key('employees', 'person_id');
$this->create_primary_key('suppliers', 'person_id');
}
/**
@@ -32,7 +44,7 @@ class Migration_fix_keys_for_db_upgrade extends Migration
$checkSql = "SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = DATABASE() AND TABLE_NAME = '" . $this->db->prefixTable('sales_items_taxes') . "' AND CONSTRAINT_NAME = 'ospos_sales_items_taxes_ibfk_1'";
$foreignKeyExists = $this->db->query($checkSql)->getRow();
if($foreignKeyExists)
if ($foreignKeyExists)
{
$this->db->query('ALTER TABLE ' . $this->db->prefixTable('sales_items_taxes') . ' DROP CONSTRAINT ospos_sales_items_taxes_ibfk_1');
}
@@ -41,4 +53,34 @@ class Migration_fix_keys_for_db_upgrade extends Migration
. ' ADD CONSTRAINT ospos_sales_items_taxes_ibfk_1 FOREIGN KEY (sale_id) '
. ' REFERENCES ' . $this->db->prefixTable('sales_items') . ' (sale_id)');
}
private function create_primary_key(string $table, string $index): void
{
$result = $this->db->query('SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name= \'' . $this->db->getPrefix() . "$table' AND column_key = '$index'");
if ( ! $result->getRowArray())
{
$this->delete_index($table, $index);
$forge = Database::forge();
$forge->addPrimaryKey($table, '');
}
}
private function index_exists(string $table, string $index): bool
{
$result = $this->db->query('SELECT COUNT(*) FROM information_schema.statistics WHERE table_schema = DATABASE() AND table_name = \'' . $this->db->getPrefix() . "$table' AND index_name = '$index'");
$row_array = $result->getRowArray();
return $row_array && $row_array['COUNT(*)'] > 0;
}
private function delete_index(string $table, string $index): void
{
if ($this->index_exists($table, $index))
{
$forge = Database::forge();
$forge->dropKey($table, $index, FALSE);
}
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use App\Models\Attribute;
use CodeIgniter\Database\ResultInterface;
class fix_duplicate_attributes extends Migration
{
/**
* Perform a migration step.
*/
public function up(): void
{
$rows_to_keep = $this->get_all_duplicate_attributes();
$this->remove_duplicate_attributes($rows_to_keep);
helper('migration');
$foreignKeys = [
'ospos_attribute_links_ibfk_1',
'ospos_attribute_links_ibfk_2',
'ospos_attribute_links_ibfk_3',
'ospos_attribute_links_ibfk_4',
'ospos_attribute_links_ibfk_5'
];
drop_foreign_key_constraints($foreignKeys, 'ospos_attribute_links');
execute_script(APPPATH . 'Database/Migrations/sqlscripts/3.4.0_attribute_links_unique_constraint.sql');
}
/**
* Retrieves from the database all rows where the item_id and definition_id are the same AND the sale_id/receiving_id is null.
* It also excludes null item_id rows as those are dropdown items.
*
* @return ResultInterface Results containing item_id, definition_id and attribute_id in each row.
*/
private function get_all_duplicate_attributes(): ResultInterface
{
$builder = $this->db->table('attribute_links');
$builder->select('item_id, definition_id, MIN(attribute_id) as attribute_id');
$builder->where('sale_id IS NULL');
$builder->where('receiving_id IS NULL');
$builder->where('item_id IS NOT NULL');
$builder->groupBy('item_id, definition_id');
$builder->having('COUNT(attribute_id) > 1');
return $builder->get();
}
/**
* Removes the duplicate attributes from the database.
*
* @param ResultInterface $rows_to_keep A multidimensional associative array containing item_id, definition_id and attribute_id in each row which should be kept in the database.
* @return void
*/
private function remove_duplicate_attributes(ResultInterface $rows_to_keep): void
{
$attribute = model(Attribute::class);
foreach($rows_to_keep->getResult() as $row)
{
$attribute->deleteAttributeLinks($row->item_id, $row->definition_id); //Deletes all attribute links for the item_id/definition_id combination
$attribute->saveAttributeLink($row->item_id, $row->definition_id, $row->attribute_id);
}
}
/**
* Revert a migration step.
*/
public function down(): void
{
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use App\Models\Attribute;
use CodeIgniter\Database\ResultInterface;
class Migration_Attributes_fix_cascading_delete extends Migration
{
/**
* Perform a migration step.
*/
public function up(): void
{
helper('migration');
drop_foreign_key_constraints(['ospos_attribute_links_ibfk_1', 'ospos_attribute_links_ibfk_2'], 'ospos_attribute_links');
$this->db->query("ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_1` FOREIGN KEY (`definition_id`) REFERENCES `ospos_attribute_definitions` (`definition_id`) ON DELETE CASCADE;");
$this->db->query("ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_2` FOREIGN KEY (`attribute_id`) REFERENCES `ospos_attribute_values` (`attribute_id`) ON DELETE CASCADE;");
}
/**
* Revert a migration step.
*/
public function down(): void
{
}
}

View File

@@ -0,0 +1,16 @@
# Prevents duplicate attribute links with the same definition_id and item_id.
# This accounts for dropdown rows (null item_id) and rows associated with sales or receivings.
ALTER TABLE `ospos_attribute_links`
ADD COLUMN `generated_unique_column` VARCHAR(255) GENERATED ALWAYS AS (
CASE
WHEN `sale_id` IS NULL AND `receiving_id` IS NULL AND `item_id` IS NOT NULL THEN CONCAT(`definition_id`, '-', `item_id`)
ELSE NULL
END
) STORED,
ADD UNIQUE INDEX `attribute_links_uq3` (`generated_unique_column`);
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_1` FOREIGN KEY (`definition_id`) REFERENCES `ospos_attribute_definitions` (`definition_id`) ON DELETE RESTRICT;
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_2` FOREIGN KEY (`attribute_id`) REFERENCES `ospos_attribute_values` (`attribute_id`) ON DELETE RESTRICT;
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_3` FOREIGN KEY (`item_id`) REFERENCES `ospos_items` (`item_id`);
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_4` FOREIGN KEY (`receiving_id`) REFERENCES `ospos_receivings` (`receiving_id`);
ALTER TABLE `ospos_attribute_links` ADD CONSTRAINT `ospos_attribute_links_ibfk_5` FOREIGN KEY (`sale_id`) REFERENCES `ospos_sales` (`sale_id`);

View File

@@ -14,3 +14,7 @@ ALTER TABLE ospos_sessions ADD PRIMARY KEY (id, ip_address);
UPDATE `ospos_app_config`
SET `value` = REPLACE(value, '|', ',')
WHERE `key` = 'image_allowed_types';
-- due to language rename, reset to english
UPDATE `ospos_app_config` SET `value` = 'en' WHERE `key` = 'language_code' ;
UPDATE `ospos_app_config` SET `value` = 'english' WHERE `key` = 'language' ;

View File

@@ -1,15 +1,12 @@
#ospos_attribute_values table
ALTER TABLE `ospos_attribute_values` ADD UNIQUE(`attribute_date`);
ALTER TABLE `ospos_attribute_values` ADD UNIQUE(`attribute_decimal`);
ALTER TABLE `ospos_attribute_values` ADD UNIQUE(`attribute_decimal`);
#opsos_attribute_definitions table
ALTER TABLE `ospos_attribute_definitions` MODIFY `definition_flags` tinyint(1) NOT NULL;
ALTER TABLE `ospos_attribute_definitions` ADD INDEX(`definition_name`);
ALTER TABLE `ospos_attribute_definitions` ADD INDEX(`definition_name`);
ALTER TABLE `ospos_attribute_definitions` ADD INDEX(`definition_type`);
#opsos_attribute_links table
ALTER TABLE `ospos_attribute_links` ADD UNIQUE INDEX `attribute_links_uq2` (`item_id`,`sale_id`,`receiving_id`,`definition_id`,`attribute_id`);
#ospos_cash_up table
ALTER TABLE `ospos_cash_up` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
@@ -18,12 +15,9 @@ ALTER TABLE `ospos_customers` DROP FOREIGN KEY `ospos_customers_ibfk_1`;
ALTER TABLE `ospos_customers_points` DROP FOREIGN KEY `ospos_customers_points_ibfk_1`;
ALTER TABLE `ospos_sales` DROP FOREIGN KEY `ospos_sales_ibfk_2`;
DROP INDEX `person_id` ON `ospos_customers`;
ALTER TABLE `ospos_customers` MODIFY `taxable` tinyint(1) DEFAULT 1 NOT NULL;
ALTER TABLE `ospos_customers` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_customers` MODIFY `discount_type` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_customers` ADD PRIMARY KEY(`person_id`);
ALTER TABLE `ospos_customers` ADD INDEX(`company_name`);
ALTER TABLE `ospos_customers` ADD CONSTRAINT `ospos_customers_ibfk_1` FOREIGN KEY (`person_id`) REFERENCES `ospos_people`(`person_id`);
ALTER TABLE `ospos_customers_points` ADD CONSTRAINT `ospos_customers_points_ibfk_1` FOREIGN KEY (`person_id`) REFERENCES `ospos_customers` (`person_id`);
@@ -47,10 +41,8 @@ ALTER TABLE `ospos_employees` DROP FOREIGN KEY `ospos_employees_ibfk_1`;
ALTER TABLE `ospos_cash_up` DROP FOREIGN KEY `ospos_cash_up_ibfk_1`;
ALTER TABLE `ospos_cash_up` DROP FOREIGN KEY `ospos_cash_up_ibfk_2`;
DROP INDEX `person_id` ON `ospos_employees`;
ALTER TABLE `ospos_employees` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_employees` MODIFY `hash_version` tinyint(1) DEFAULT 2 NOT NULL;
ALTER TABLE `ospos_employees` ADD PRIMARY KEY(`person_id`);
ALTER TABLE `ospos_sales_payments` ADD CONSTRAINT `ospos_sales_payments_ibfk_2` FOREIGN KEY (`employee_id`) REFERENCES `ospos_employees` (`person_id`);
ALTER TABLE `ospos_sales` ADD CONSTRAINT `ospos_sales_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `ospos_employees` (`person_id`);
@@ -75,6 +67,7 @@ ALTER TABLE `ospos_expense_categories` ADD INDEX(`category_description`);
ALTER TABLE `ospos_giftcards` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
#ospos_items table
ALTER TABLE `ospos_items` DROP FOREIGN KEY `ospos_items_ibfk_1`;
ALTER TABLE `ospos_items` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_items` MODIFY `stock_type` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_items` MODIFY `item_type` tinyint(1) DEFAULT 0 NOT NULL;
@@ -89,7 +82,7 @@ ALTER TABLE `ospos_item_kits` MODIFY `print_option` tinyint(1) DEFAULT 0 NOT NUL
ALTER TABLE `ospos_item_kits` ADD INDEX(`name`,`description`);
#ospos_people table
ALTER TABLE `ospos_people` ADD INDEX(`first_name`, `last_name`, `email`, `phone_number`);
ALTER TABLE `ospos_people` ADD INDEX(`first_name`, `last_name`, `email`, `phone_number`);
#ospos_receivings_items
ALTER TABLE `ospos_receivings_items` MODIFY `discount_type` tinyint(1) DEFAULT 0 NOT NULL;
@@ -112,7 +105,7 @@ ALTER TABLE `ospos_sales_taxes` MODIFY `print_sequence` tinyint(1) DEFAULT 0 NOT
ALTER TABLE `ospos_sales_taxes` MODIFY `rounding_code` tinyint(1) DEFAULT 0 NOT NULL;
#ospos_sessions table
ALTER TABLE `ospos_sessions` ADD INDEX(`id`);
ALTER TABLE `ospos_sessions` ADD INDEX(`id`);
ALTER TABLE `ospos_sessions` ADD INDEX(`ip_address`);
#ospos_stock_locations table
@@ -120,14 +113,11 @@ ALTER TABLE `ospos_stock_locations` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NU
#ospos_suppliers table
ALTER TABLE `ospos_expenses` DROP FOREIGN KEY `ospos_expenses_ibfk_3`;
ALTER TABLE `ospos_items` DROP FOREIGN KEY `ospos_items_ibfk_1`;
ALTER TABLE `ospos_receivings` DROP FOREIGN KEY `ospos_receivings_ibfk_2`;
ALTER TABLE `ospos_suppliers` DROP FOREIGN KEY `ospos_suppliers_ibfk_1`;
DROP INDEX `person_id` ON `ospos_suppliers`;
ALTER TABLE `ospos_suppliers` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_suppliers` MODIFY `category` tinyint(1) NOT NULL;
ALTER TABLE `ospos_suppliers` ADD PRIMARY KEY(`person_id`);
ALTER TABLE `ospos_suppliers` ADD INDEX(`category`);
ALTER TABLE `ospos_suppliers` ADD INDEX(`company_name`, `deleted`);
@@ -140,9 +130,6 @@ ALTER TABLE `ospos_suppliers` ADD CONSTRAINT `ospos_suppliers_ibfk_1` FOREIGN KE
ALTER TABLE `ospos_tax_categories` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_tax_categories` MODIFY `tax_group_sequence` tinyint(1) NOT NULL;
#ospos_tax_codes table
ALTER TABLE `ospos_tax_codes` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
#ospos_tax_jurisdictions table
ALTER TABLE `ospos_tax_jurisdictions` MODIFY `deleted` tinyint(1) DEFAULT 0 NOT NULL;
ALTER TABLE `ospos_tax_jurisdictions` MODIFY `tax_group_sequence` tinyint(1) DEFAULT 0 NOT NULL;

View File

@@ -428,7 +428,8 @@ function to_quantity_decimals(?string $number): string
}
/**
* @param string|null $number
* Converts a string to locale-specific number format for display.
*
* @param string|null $decimals
* @param int $type
* @return string
@@ -484,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;
@@ -502,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, '');
@@ -514,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)
{
@@ -703,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;
}

View File

@@ -30,4 +30,37 @@ function execute_script(string $path): void
}
error_log("Migrated to $version");
}
}
/**
* Drops the foreign key constraints from the attribute_links table.
* This is required to successfully create the generated unique constraint.
*
* @return void
*/
function drop_foreign_key_constraints(array $foreignKeys, string $table): void
{
$db = Database::connect();
$current_prefix = $db->getPrefix();
$db->setPrefix('');
$database_name = $db->database;
foreach ($foreignKeys as $fk)
{
$builder = $db->table('INFORMATION_SCHEMA.TABLE_CONSTRAINTS');
$builder->select('CONSTRAINT_NAME');
$builder->where('TABLE_SCHEMA', $database_name);
$builder->where('TABLE_NAME', $table);
$builder->where('CONSTRAINT_TYPE', 'FOREIGN KEY');
$builder->where('CONSTRAINT_NAME', $fk);
$query = $builder->get();
if($query->getNumRows() > 0)
{
$db->query("ALTER TABLE `$table` DROP FOREIGN KEY `$fk`");
}
}
$db->setPrefix($current_prefix);
}

View File

@@ -1,6 +1,7 @@
<?php
use CodeIgniter\Encryption\Encryption;
use Config\Services;
/**
* @return bool
@@ -119,3 +120,17 @@ function remove_backup(): void
}
log_message('info', "File $backup_path has been removed");
}
function purifyHtml($data)
{
if(is_array($data))
{
return array_map('purifyHtml', $data);
}
elseif(is_string($data))
{
return Services::HtmlPurifier()->purify($data);
}
return $data;
}

View File

@@ -7,6 +7,7 @@ use App\Models\Tax_category;
use CodeIgniter\Database\ResultInterface;
use CodeIgniter\Session\Session;
use Config\OSPOS;
use Config\Services;
/**
* Tabular views helper
@@ -15,11 +16,11 @@ use Config\OSPOS;
/**
* Basic tabular headers function
*/
function transform_headers_readonly(array $array): string //TODO: $array needs to be refactored to a new name. Perhaps $headers?
function transform_headers_readonly(array $headers): string
{
$result = [];
foreach($array as $key => $value)
foreach($headers as $key => $value)
{
$result[] = ['field' => $key, 'title' => $value, 'sortable' => $value != '', 'switchable' => !preg_match('(^$|&nbsp)', $value)];
}
@@ -30,21 +31,21 @@ function transform_headers_readonly(array $array): string //TODO: $array needs t
/**
* Basic tabular headers function
*/
function transform_headers(array $array, bool $readonly = false, bool $editable = true): string //TODO: $array needs to be refactored to a new name. Perhaps $headers?
function transform_headers(array $headers, bool $readonly = false, bool $editable = true): string //TODO: $array needs to be refactored to a new name. Perhaps $headers?
{
$result = [];
if(!$readonly)
{
$array = array_merge ([['checkbox' => 'select', 'sortable' => false]], $array);
$headers = array_merge ([['checkbox' => 'select', 'sortable' => false]], $headers);
}
if($editable)
{
$array[] = ['edit' => ''];
$headers[] = ['edit' => ''];
}
foreach($array as $element) //TODO: This might be clearer to refactor this to `foreach($headers as $header)`
foreach($headers as $element) //TODO: This might be clearer to refactor this to `foreach($headers as $header)`
{
reset($element);
$result[] = [
@@ -62,12 +63,10 @@ function transform_headers(array $array, bool $readonly = false, bool $editable
return json_encode($result);
}
/**
* Get the header for the sales tabular view
*/
function get_sales_manage_table_headers(): string
function sales_headers(): array
{
$headers = [
return [
['sale_id' => lang('Common.id')],
['sale_time' => lang('Sales.sale_time')],
['customer_name' => lang('Customers.customer')],
@@ -76,15 +75,23 @@ function get_sales_manage_table_headers(): string
['change_due' => lang('Sales.change_due')],
['payment_type' => lang('Sales.payment_type')]
];
}
/**
* Get the header for the sales tabular view
*/
function get_sales_manage_table_headers(): string
{
$headers = sales_headers();
$config = config(OSPOS::class)->settings;
if($config['invoice_enable'])
{
$headers[] = ['invoice_number' => lang('Sales.invoice_number')];
$headers[] = ['invoice' => '&nbsp', 'sortable' => false, 'escape' => false];
$headers[] = ['invoice' => '', 'sortable' => false, 'escape' => false];
}
$headers[] = ['receipt' => '&nbsp', 'sortable' => false, 'escape' => false];
$headers[] = ['receipt' => '', 'sortable' => false, 'escape' => false];
return transform_headers($headers);
}
@@ -113,7 +120,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>',
@@ -186,18 +193,24 @@ function get_sales_manage_payments_summary(array $payments): string
return $table;
}
/**
* Get the header for the people tabular view
*/
function get_people_manage_table_headers(): string
function person_headers(): array
{
$headers = [
return [
['people.person_id' => lang('Common.id')],
['last_name' => lang('Common.last_name')],
['first_name' => lang('Common.first_name')],
['email' => lang('Common.email')],
['phone_number' => lang('Common.phone_number')]
];
}
/**
* Get the header for the people tabular view
*/
function get_people_manage_table_headers(): string
{
$headers = person_headers();
$employee = model(Employee::class);
$session = session();
@@ -246,12 +259,10 @@ function get_person_data_row(object $person): array
];
}
/**
* Get the header for the customer tabular view
*/
function get_customer_manage_table_headers(): string
function customer_headers(): array
{
$headers = [
return [
['people.person_id' => lang('Common.id')],
['last_name' => lang('Common.last_name')],
['first_name' => lang('Common.first_name')],
@@ -259,6 +270,14 @@ function get_customer_manage_table_headers(): string
['phone_number' => lang('Common.phone_number')],
['total' => lang('Common.total_spent'), 'sortable' => false]
];
}
/**
* Get the header for the customer tabular view
*/
function get_customer_manage_table_headers(): string
{
$headers = customer_headers();
$employee = model(Employee::class);
$session = session();
@@ -308,12 +327,9 @@ function get_customer_data_row(object $person, object $stats): array
];
}
/**
* Get the header for the suppliers tabular view
*/
function get_suppliers_manage_table_headers(): string
function supplier_headers(): array
{
$headers = [
return [
['people.person_id' => lang('Common.id')],
['company_name' => lang('Suppliers.company_name')],
['agency_name' => lang('Suppliers.agency_name')],
@@ -323,6 +339,14 @@ function get_suppliers_manage_table_headers(): string
['email' => lang('Common.email')],
['phone_number' => lang('Common.phone_number')]
];
}
/**
* Get the header for the suppliers tabular view
*/
function get_suppliers_manage_table_headers(): string
{
$headers = supplier_headers();
$employee = model(Employee::class);
$session = session();
@@ -374,16 +398,9 @@ function get_supplier_data_row(object $supplier): array
];
}
/**
* Get the header for the items tabular view
*/
function get_items_manage_table_headers(): string
function item_headers(): array
{
$attribute = model(Attribute::class);
$config = config(OSPOS::class)->settings;
$definition_names = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS); //TODO: this should be made into a constant in constants.php
$headers = [
return [
['items.item_id' => lang('Common.id')],
['item_number' => lang('Items.item_number')],
['name' => lang('Items.name')],
@@ -393,6 +410,18 @@ function get_items_manage_table_headers(): string
['unit_price' => lang('Items.unit_price')],
['quantity' => lang('Items.quantity')]
];
}
/**
* Get the header for the items tabular view
*/
function get_items_manage_table_headers(): string
{
$attribute = model(Attribute::class);
$config = config(OSPOS::class)->settings;
$definition_names = $attribute->get_definitions_by_flags($attribute::SHOW_IN_ITEMS); //TODO: this should be made into a constant in constants.php
$headers = item_headers();
if($config['use_destination_based_tax'])
{
@@ -447,7 +476,8 @@ function get_item_data_row(object $item): array
{
$tax_percents .= to_tax_decimals($tax_info['percent']) . '%, ';
}
// remove ', ' from last item //TODO: if this won't be added back into the code then it should be deleted.
// remove ', ' from last item
$tax_percents = substr($tax_percents, 0, -2);
$tax_percents = !$tax_percents ? '-' : $tax_percents;
}
@@ -455,7 +485,7 @@ function get_item_data_row(object $item): array
$controller = get_controller();
$image = null;
if($item->pic_filename != '') //TODO: !== ?
if(!empty($item->pic_filename))
{
$ext = pathinfo($item->pic_filename, PATHINFO_EXTENSION);
@@ -481,7 +511,7 @@ function get_item_data_row(object $item): array
'item_number' => $item->item_number,
'name' => $item->name,
'category' => $item->category,
'company_name' => $item->company_name,
'company_name' => $item->company_name, //TODO: This isn't in the items table. Should this be here?
'cost_price' => to_currency($item->cost_price),
'unit_price' => to_currency($item->unit_price),
'quantity' => to_quantity_decimals($item->quantity),
@@ -521,20 +551,23 @@ function get_item_data_row(object $item): array
return $columns + expand_attribute_values($definition_names, (array) $item) + $icons;
}
/**
* Get the header for the giftcard tabular view
*/
function get_giftcards_manage_table_headers(): string
function giftcard_headers(): array
{
$headers = [
return [
['giftcard_id' => lang('Common.id')],
['last_name' => lang('Common.last_name')],
['first_name' => lang('Common.first_name')],
['giftcard_number' => lang('Giftcards.giftcard_number')],
['value' => lang('Giftcards.card_value')]
];
}
return transform_headers($headers);
/**
* Get the header for the giftcard tabular view
*/
function get_giftcards_manage_table_headers(): string
{
return transform_headers(giftcard_headers());
}
/**
@@ -562,21 +595,24 @@ function get_giftcard_data_row(object $giftcard): array
];
}
function item_kit_headers(): array
{
return [
['item_kit_id' => lang('Item_kits.kit')],
['item_kit_number' => lang('Item_kits.item_kit_number')],
['name' => lang('Item_kits.name')],
['description' => lang('Item_kits.description')],
['total_cost_price' => lang('Items.cost_price'), 'sortable' => FALSE],
['total_unit_price' => lang('Items.unit_price'), 'sortable' => FALSE]
];
}
/**
* Get the header for the item kits tabular view
*/
function get_item_kits_manage_table_headers(): string
{
$headers = [
['item_kit_id' => lang('Item_kits.kit')],
['item_kit_number' => lang('Item_kits.item_kit_number')],
['name' => lang('Item_kits.name')],
['description' => lang('Item_kits.description')],
['total_cost_price' => lang('Items.cost_price'), 'sortable' => false],
['total_unit_price' => lang('Items.unit_price'), 'sortable' => false]
];
return transform_headers($headers);
return transform_headers(item_kit_headers());
}
/**
@@ -651,25 +687,32 @@ function expand_attribute_values(array $definition_names, array $row): array
$attribute_value = $indexed_values[$definition_id];
$attribute_values["$definition_id"] = $attribute_value;
}
else
{
$attribute_values["$definition_id"] = "";
}
}
return $attribute_values;
}
function attribute_definition_headers(): array
{
return [
['definition_id' => lang('Attributes.definition_id')],
['definition_name' => lang('Attributes.definition_name')],
['definition_type' => lang('Attributes.definition_type')],
['definition_flags' => lang('Attributes.definition_flags')],
['definition_group' => lang('Attributes.definition_group')],
];
}
/**
* @return string
*/
function get_attribute_definition_manage_table_headers(): string
{
$headers = [
['definition_id' => lang('Attributes.definition_id')],
['definition_name' => lang('Attributes.definition_name')],
['definition_type' => lang('Attributes.definition_type')],
['definition_flags' => lang('Attributes.definition_flags')],
['definition_group' => lang('Attributes.definition_group')],
];
return transform_headers($headers);
return transform_headers(attribute_definition_headers());
}
/**
@@ -692,7 +735,7 @@ function get_attribute_definition_data_row(object $attribute_row): array
}
else
{
$definition_flags = implode(', ', $attribute->get_definition_flags());
$definition_flags = implode(', ', $attribute_row->definition_flags);
}
return [
@@ -713,18 +756,21 @@ function get_attribute_definition_data_row(object $attribute_row): array
];
}
function expense_category_headers(): array
{
return [
['expense_category_id' => lang('Expenses_categories.category_id')],
['category_name' => lang('Expenses_categories.name')],
['category_description' => lang('Expenses_categories.description')]
];
}
/**
* Get the header for the expense categories tabular view
*/
function get_expense_category_manage_table_headers(): string
{
$headers = [
['expense_category_id' => lang('Expenses_categories.category_id')],
['category_name' => lang('Expenses_categories.name')],
['category_description' => lang('Expenses_categories.description')]
];
return transform_headers($headers);
return transform_headers(expense_category_headers());
}
/**
@@ -750,13 +796,9 @@ function get_expense_category_data_row(object $expense_category): array
];
}
/**
* Get the header for the expenses tabular view
*/
function get_expenses_manage_table_headers(): string
function expense_headers(): array
{
$headers = [
return [
['expense_id' => lang('Expenses.expense_id')],
['date' => lang('Expenses.date')],
['supplier_name' => lang('Expenses.supplier_name')],
@@ -768,8 +810,14 @@ function get_expenses_manage_table_headers(): string
['description' => lang('Expenses.description')],
['created_by' => lang('Expenses.employee')]
];
}
return transform_headers($headers);
/**
* Get the header for the expenses tabular view
*/
function get_expenses_manage_table_headers(): string
{
return transform_headers(expense_headers());
}
/**
@@ -843,13 +891,9 @@ function get_expenses_manage_payments_summary(array $payments, ResultInterface $
return $table;
}
/**
* Get the header for the cashup tabular view
*/
function get_cashups_manage_table_headers(): string
function cashup_headers(): array
{
$headers = [
return [
['cashup_id' => lang('Cashups.id')],
['open_date' => lang('Cashups.opened_date')],
['open_employee_id' => lang('Cashups.open_employee')],
@@ -864,6 +908,15 @@ function get_cashups_manage_table_headers(): string
['closed_amount_check' => lang('Cashups.closed_amount_check')],
['closed_amount_total' => lang('Cashups.closed_amount_total')]
];
}
/**
* Get the header for the cashup tabular view
*/
function get_cashups_manage_table_headers(): string
{
$headers = cashup_headers();
return transform_headers($headers);
}

View File

@@ -1,15 +1,15 @@
<?php
return [
"gcaptcha" => "أنا لست روبوت.",
"go" => "البدء",
"invalid_gcaptcha" => "يرجى التحقق من أنك لست روبوتًا.",
"invalid_installation" => "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.",
"invalid_username_and_password" => "اسم المستخدم/كلمة المرور غير صحيحة.",
"login" => "دخول",
"logout" => "تسجيل خروج",
"migration_needed" => "سيبدأ ترحيل قاعدة البيانات إلى{0} بعد تسجيل الدخول.",
"password" => "كلمة السر",
"required_username" => "",
"username" => "اسم المستخدم",
"welcome" => "مرحباً بك في{0}!",
return [
'gcaptcha' => "أنا لست روبوتاً.",
'go' => "البَدْء",
'invalid_gcaptcha' => "يرجى التحقق من أنك لست روبوتًا.",
'invalid_installation' => "يوجد مشكلة بالتنصيب, الرجاء التحقق من ملف php.ini.",
'invalid_username_and_password' => "اسم المستخدم/كلمة المرور غير صحيحة.",
'login' => "دخول",
'logout' => "تسجيل خروج",
'migration_needed' => "سيبدأ ترحيل قاعدة البيانات إلى{0} بعد تسجيل الدخول.",
'password' => "كلمة السر",
'required_username' => "خانة أسم المستخدم مطلوبة.",
'username' => "اسم المستخدم",
'welcome' => "مرحباً بك في{0}!",
];

View File

@@ -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ğı",
];

View File

@@ -1,15 +1,16 @@
<?php
return [
"gcaptcha" => "I'm not a robot.",
"go" => "Go",
"invalid_gcaptcha" => "Please verify that you are not a robot.",
"invalid_installation" => "The installation is not correct, check your php.ini file.",
"invalid_username_and_password" => "Invalid username and/or password.",
"login" => "Login",
"logout" => "Logout",
"migration_needed" => "A database migration to {0} will start after login.",
"password" => "Password",
"required_username" => "",
"username" => "Username",
"welcome" => "Welcome to {0}!",
'gcaptcha' => "I'm not a robot.",
'go' => "Go",
'invalid_gcaptcha' => "Please verify that you are not a robot.",
'invalid_installation' => "The installation is not correct, check your php.ini file.",
'invalid_username_and_password' => "Invalid username and/or password.",
'login' => "Login",
'logout' => "Logout",
'migration_needed' => "A database migration to {0} will start after login.",
'password' => "Password",
'required_username' => "The username field is required.",
'username' => "Username",
'welcome' => "Welcome to {0}!",
];

View File

@@ -1,88 +1,89 @@
<?php
return [
"address_1" => "Dirección 1",
"address_2" => "Dirección 2",
"admin" => "Administrador",
"city" => "Ciudad",
"clerk" => "Empleado",
"close" => "Cerrar",
"color" => "Colores del tema",
"comments" => "Comentarios",
"common" => "Común",
"confirm_search" => "Has seleccionado una o más filas. Éstas no estarán seleccionadas después de tu búsqueda. ¿Seguro(a) que quieres hacer esta búsqueda?",
"copyrights" => "© 2010 - {0}",
"correct_errors" => "Por favor, corrija los errores identificados antes de guardar",
"country" => "País",
"dashboard" => "Tablero",
"date" => "Fecha",
"delete" => "Borrar",
"det" => "detalles",
"download_import_template" => "Descargar Plantilla de Importación de CSV (CSV)",
"edit" => "editar",
"email" => "Email",
"email_invalid_format" => "El correo-e no está en el formato requerido.",
"export_csv" => "Reporte en CSV",
"export_csv_no" => "No",
"export_csv_yes" => "Si",
"fields_required_message" => "Los campos en rojo son requeridos",
"fields_required_message_unique" => "Los campos en rojo son obligatorios y deben ser únicos",
"first_name" => "Nombre",
"first_name_required" => "Nombre es un campo requerido.",
"first_page" => "Primera",
"gender" => "Género",
"gender_female" => "F",
"gender_male" => "M",
"gender_undefined" => "",
"icon" => "Icono",
"id" => "Identificación",
"import" => "Importar",
"import_change_file" => "Cambiar",
"import_csv" => "Importar CSV",
"import_full_path" => "La ruta completa al archivo CSV es requerida",
"import_remove_file" => "Quitar",
"import_select_file" => "Selecciona archivo",
"inv" => "Inv",
"last_name" => "Apellidos",
"last_name_required" => "Apellidos es un campo requerido.",
"last_page" => "Ultima",
"learn_about_project" => "para leer la información más reciente acerca del proyecto.",
"list_of" => "Lista de",
"logo" => "Logotipo",
"logo_mark" => "Marca",
"logout" => "Cerrar sesión",
"manager" => "Administrador",
"migration_needed" => "La migración de la base de datos hacia {0} comenzará después de iniciar sesión.",
"new" => "Nuevo",
"no" => "",
"no_persons_to_display" => "No hay nadie que mostrar.",
"none_selected_text" => "Seleccionar",
"or" => "Ó",
"people" => "Personas",
"phone_number" => "Teléfono",
"phone_number_required" => "El numoero de telefono es requerido",
"please_visit_my" => "Por favor, visita mi",
"position" => "Posición",
"powered_by" => "Potenciado por",
"price" => "Precio",
"print" => "Imprimir",
"remove" => "Eliminar",
"required" => "Requerido",
"restore" => "Restaurar",
"return_policy" => "Política de Devolución",
"search" => "Buscar",
"search_options" => "Opciones de búsqueda",
"searched_for" => "Buscado",
"software_short" => "OSPOS",
"software_title" => "Punto de Venta Open Source",
"state" => "Estado",
"submit" => "Enviar",
"total_spent" => "Total gastado",
"unknown" => "Desconocido",
"view_recent_sales" => "Ver Ventas Recientes",
"website" => "opensourcepos.org",
"welcome" => "Bienvenido(a)",
"welcome_message" => "Bienvenido(a) a OSPOS. Haz click en un módulo, para empezar.",
"yes" => "",
"you_are_using_ospos" => "Estás usando Open Source Point Of Sale Versión",
"zip" => "Código Postal",
'address_1' => "Dirección 1",
'address_2' => "Dirección 2",
'admin' => "Administrador",
'city' => "Ciudad",
'clerk' => "Empleado",
'close' => "Cerrar",
'color' => "Colores del tema",
'comments' => "Comentarios",
'common' => "Común",
'confirm_search' => "Has seleccionado una o más filas. Éstas no estarán seleccionadas después de tu búsqueda. ¿Seguro(a) que quieres hacer esta búsqueda?",
'copyrights' => "© 2010 - {0}",
'correct_errors' => "Por favor, corrija los errores identificados antes de guardar",
'country' => "País",
'dashboard' => "Tablero",
'date' => "Fecha",
'delete' => "Borrar",
'det' => "detalles",
'download_import_template' => "Descargar Plantilla de Importación de CSV (CSV)",
'edit' => "editar",
'email' => "Email",
'email_invalid_format' => "El correo-e no está en el formato requerido.",
'export_csv' => "Reporte en CSV",
'export_csv_no' => "No",
'export_csv_yes' => "Si",
'fields_required_message' => "Los campos en rojo son requeridos",
'fields_required_message_unique' => "Los campos en rojo son obligatorios y deben ser únicos",
'first_name' => "Nombre",
'first_name_required' => "Nombre es un campo requerido.",
'first_page' => "Primera",
'gender' => "Género",
'gender_female' => "F",
'gender_male' => "M",
'gender_undefined' => "",
'icon' => "Icono",
'id' => "Identificación",
'import' => "Importar",
'import_change_file' => "Cambiar",
'import_csv' => "Importar CSV",
'import_full_path' => "La ruta completa al archivo CSV es requerida",
'import_remove_file' => "Quitar",
'import_select_file' => "Selecciona archivo",
'inv' => "Inv",
'last_name' => "Apellidos",
'last_name_required' => "Apellidos es un campo requerido.",
'last_page' => "Ultima",
'learn_about_project' => "para leer la información más reciente acerca del proyecto.",
'list_of' => "Lista de",
'logo' => "Logotipo",
'logo_mark' => "Marca",
'logout' => "Cerrar sesión",
'manager' => "Administrador",
'migration_needed' => "La migración de la base de datos hacia {0} comenzará después de iniciar sesión.",
'new' => "Nuevo",
'no' => "No",
'no_persons_to_display' => "No hay nadie que mostrar.",
'none_selected_text' => "Seleccionar",
'or' => "Ó",
'people' => "Personas",
'phone_number' => "Teléfono",
'phone_number_required' => "El numoero de telefono es requerido",
'please_visit_my' => "Por favor, visita mi",
'position' => "Posición",
'powered_by' => "Potenciado por",
'price' => "Precio",
'print' => "Imprimir",
'remove' => "Eliminar",
'required' => "Requerido",
'restore' => "Restaurar",
'return_policy' => "Política de Devolución",
'search' => "Buscar",
'search_options' => "Opciones de búsqueda",
'searched_for' => "Buscado",
'software_short' => "OSPOS",
'software_title' => "Punto de Venta Open Source",
'state' => "Estado",
'submit' => "Enviar",
'total_spent' => "Total gastado",
'unknown' => "Desconocido",
'view_recent_sales' => "Ver Ventas Recientes",
'website' => "opensourcepos.org",
'welcome' => "Bienvenido(a)",
'welcome_message' => "Bienvenido(a) a OSPOS. Haz click en un módulo, para empezar.",
'yes' => "Si",
'you_are_using_ospos' => "Estás usando Open Source Point Of Sale Versión",
'zip' => "Código Postal",
];

View File

@@ -1,330 +1,331 @@
<?php
return [
"address" => "Dirección del Comercio",
"address_required" => "Dirección del Comercio es requerida.",
"all_set" => "¡Todos los permisos de archivo están configurados correctamente!",
"allow_duplicate_barcodes" => "Permitir código barras duplicados",
"apostrophe" => "apostrofe",
"backup_button" => "Respaldo",
"backup_database" => "Respaldo de Base de Datos",
"barcode" => "Código Barras",
"barcode_company" => "Nombre del Comercio",
"barcode_configuration" => "Configuración de Código de Barras",
"barcode_content" => "Contenido de Código de Barras",
"barcode_first_row" => "Fila 1",
"barcode_font" => "Fuente",
"barcode_formats" => "Formato entrada",
"barcode_generate_if_empty" => "Generar si esta vacio.",
"barcode_height" => "Alto (px)",
"barcode_id" => "Id/Artículo",
"barcode_info" => "Información de Configuración de Código de Barras",
"barcode_layout" => "Diseño Código de Barras",
"barcode_name" => "Nombre",
"barcode_number" => "UPC/EAN/ISBN",
"barcode_number_in_row" => "Número en la línea",
"barcode_page_cellspacing" => "Mostrar espacios de celdas de página.",
"barcode_page_width" => "Mostrar ancho de página",
"barcode_price" => "Precio",
"barcode_second_row" => "Fila 2",
"barcode_third_row" => "Fila 3",
"barcode_tooltip" => "Cuidado: esta característica puede causar duplicados ser importados o creados, No lo use si no quiere códigos de barras duplicadas.",
"barcode_type" => "Tipo de Código de Barra",
"barcode_width" => "Ancho (px)",
"bottom" => "Abajo",
"cash_button" => "Botones de Efectivo Rápido",
"cash_button_1" => "Botón 1",
"cash_button_2" => "Botón 2",
"cash_button_3" => "Botón 3",
"cash_button_4" => "Botón 4",
"cash_button_5" => "Botón 5",
"cash_button_6" => "Botón 6",
"cash_decimals" => "Decimales del Efectivo",
"cash_decimals_tooltip" => "Si los decimales del efectivo y del tipo de moneda son los mismos no habrá redondeo de los pagos en efectivo.",
"cash_rounding" => "Redondeo del Efectivo",
"category_dropdown" => "Mostrar Categoria como desplegable",
"center" => "Centro",
"change_apperance_tooltip" => "Cambiar Aspecto de OSPOS",
"comma" => "coma",
"company" => "Nombre del Comercio",
"company_avatar" => "Avatar de Empleado",
"company_change_image" => "Cambiar Imagen",
"company_logo" => "Logotipo del Comercio",
"company_remove_image" => "Quitar Imagen",
"company_required" => "Nombre del Comercio es requerido",
"company_select_image" => "Seleccionar Imagen",
"company_website_url" => "Sitio Web no es una URL estándar (http://...).",
"country_codes" => "Código de País",
"country_codes_tooltip" => "Lista de codigo de paises separado por coma para busqueda de direcciones.",
"currency_code" => "Código de Moneda",
"currency_decimals" => "Decimales del tipo de moneda",
"currency_symbol" => "Símbolo de la moneda",
"current_employee_only" => "Mostrar registro sólo del empleado actual",
"customer_reward" => "Cat. de Cliente",
"customer_reward_duplicate" => "La recompensa debe ser única.",
"customer_reward_enable" => "Activar recompenza para clientes",
"customer_reward_invalid_chars" => "El nombre de la recompenza no puede contener el carácter '_'",
"customer_reward_required" => "El nombre es un campo obligatorio",
"customer_sales_tax_support" => "Habilitar la gestión de impuestos en las ventas a clientes",
"date_or_time_format" => "Filtro de fecha y hora",
"datetimeformat" => "Formato de fecha y hora",
"decimal_point" => "Punto Decimal",
"default_barcode_font_size_number" => "Tamaño de fuente de código de barras debe ser número.",
"default_barcode_font_size_required" => "Tamaño de fuente de código de barras es requerido.",
"default_barcode_height_number" => "Alto del código de barras debe ser un número.",
"default_barcode_height_required" => "Altura del código de barras es requerido.",
"default_barcode_num_in_row_number" => "Número por fila del código de barras debe ser un número.",
"default_barcode_num_in_row_required" => "Número de código de barras predeterminado en fila es un campo obligatorio.",
"default_barcode_page_cellspacing_number" => "Espacios de celdas por página del código de barras debe ser un número.",
"default_barcode_page_cellspacing_required" => "Espacios de celdas por página del código de barras es requerido.",
"default_barcode_page_width_number" => "Ancho de página del código de barras debe ser un número.",
"default_barcode_page_width_required" => "Ancho de página del código de barras es requerido.",
"default_barcode_width_number" => "Ancho del código de barras debe ser número.",
"default_barcode_width_required" => "Ancho del código de barras es requerido.",
"default_item_columns" => "Columnas de Productos Visibles por Defecto",
"default_origin_tax_code" => "Código de impuesto por defecto",
"default_receivings_discount" => "Descuento por Defecto para Recibos",
"default_receivings_discount_number" => "El Descuento por Defecto Para Los Recibos Debe Ser Un Número.",
"default_receivings_discount_required" => "El Descuento Predeterminado para los Recibos es un campo obligatorio.",
"default_sales_discount" => "Descuento Predeterminado para Ventas",
"default_sales_discount_number" => "Descuento en ventas predeterminado debe ser un número.",
"default_sales_discount_required" => "Descuento en ventas predeterminado es requerido.",
"default_tax_category" => "Categoría de Tasa predeterminada",
"default_tax_code" => "Código de Impuesto Predeterminado",
"default_tax_jurisdiction" => "Jurisdicción de Impuesto Predeterminado",
"default_tax_name_number" => "El nombre de el impuesto debe ser letras.",
"default_tax_name_required" => "El nombre del impuesto predeterminado es requerido.",
"default_tax_rate" => "% de Impuestos Predeterminado",
"default_tax_rate_1" => "Impuesto 1",
"default_tax_rate_2" => "Impuesto 2",
"default_tax_rate_3" => "Tasa de Impuestos 3",
"default_tax_rate_number" => "El Impuesto Predeterminado debe ser un número.",
"default_tax_rate_required" => "El Impuesto Predeterminado es requerido.",
"derive_sale_quantity" => "Permitir cantidad de venta derivada",
"derive_sale_quantity_tooltip" => "Si se marca entonces se proporcionará un nuevo tipo para los artículos ordenados por cantidad extendida",
"dinner_table" => "Mesa",
"dinner_table_duplicate" => "Utilice un nombre de mesa único.",
"dinner_table_enable" => "Activar Mesa de Restaurante",
"dinner_table_invalid_chars" => "El nombre de la mesa no puede contener '_'.",
"dinner_table_required" => "La mesa es un campo obligatorio.",
"dot" => "punto",
"email" => "E-mail",
"email_configuration" => "Configuracion de correo",
"email_mailpath" => "Ruta a Sendmail",
"email_protocol" => "Protocolo",
"email_receipt_check_behaviour" => "Selector de Recibir por Correo",
"email_receipt_check_behaviour_always" => "Siempre activado",
"email_receipt_check_behaviour_last" => "Recordar ultima vez",
"email_receipt_check_behaviour_never" => "Siempre desactivado",
"email_smtp_crypto" => "Encriptado SMTP",
"email_smtp_host" => "Servidor SMTP",
"email_smtp_pass" => "Pasword SMTP",
"email_smtp_port" => "Puerto SMTP",
"email_smtp_timeout" => "Tiempo falla SMTP",
"email_smtp_user" => "Usuario SMTP",
"enable_avatar" => "Habilitar Avatar",
"enable_avatar_tooltip" => "Habilitar Avatares para que se muestren en el menú desplegable Categorías y Registrarse ",
"enable_dropdown_tooltip" => "No podrá agregar nuevas categorías si esto está marcado",
"enable_new_look" => "Habilitar nueva apariencia",
"enable_right_bar" => " Habilitar la barra lateral derecha",
"enable_right_bar_tooltip" => "Cambiar la barra lateral de izquierda a derecha ",
"enforce_privacy" => "Forzar privacidad",
"enforce_privacy_tooltip" => "Proteja la privacidad de los clientes aplicando codificación de datos en caso de que se eliminen",
"fax" => "Fax",
"file_perm" => "Hay problemas con los permisos de archivo. Por favor corrija y vuelva a recargar esta página.",
"financial_year" => "Inicio del año fiscal",
"financial_year_apr" => "1º de Abril",
"financial_year_aug" => "1º de Agosto",
"financial_year_dec" => "1º de Diciembre",
"financial_year_feb" => "1º de Febrero",
"financial_year_jan" => "1º de Enero",
"financial_year_jul" => "1º de Julio",
"financial_year_jun" => "1º de Junio",
"financial_year_mar" => "1º de Marzo",
"financial_year_may" => "1º de Mayo",
"financial_year_nov" => "1º de Noviembre",
"financial_year_oct" => "1º de Octubre",
"financial_year_sep" => "1º de Septiembre",
"floating_labels" => "Etiquetas flotantes",
"gcaptcha_enable" => "Inicio de sesión con reCAPTCHA",
"gcaptcha_secret_key" => "Llave secreta reCAPTCHA",
"gcaptcha_secret_key_required" => "reCAPTCHA Secret Key es requerida si se usa",
"gcaptcha_site_key" => "Llave del sitio reCAPTCHA",
"gcaptcha_site_key_required" => "reCAPTCHA Site Key es requerida si se usa",
"gcaptcha_tooltip" => "Proteja la página de inicio de sesión con Google reCAPTCHA, haga clic en el icono de un par de claves de API.",
"general" => "General",
"general_configuration" => "Configuración General",
"giftcard_number" => "Número de tarjeta de regalo",
"giftcard_random" => "Generar aleatoriamente",
"giftcard_series" => "Generar en serie",
"image_allowed_file_types" => "Tipos de archivos permitidos",
"image_max_height_tooltip" => "Altura máxima permitida de las cargas de imágenes en píxeles (px).",
"image_max_size_tooltip" => "Tamaño máximo de archivo permitido de cargas de imágenes en kilobytes (kb).",
"image_max_width_tooltip" => "Ancho máximo permitido de las cargas de imágenes en píxeles (px).",
"image_restrictions" => "Restricciones de carga de imágenes",
"include_hsn" => "Incluir Soporte para Códigos HSN",
"info" => "Información",
"info_configuration" => "Información del Comercio",
"input_groups" => "Introducir Grupos",
"integrations" => "Componentes Integrados",
"integrations_configuration" => "Componentes de Terceros Integrados",
"invoice" => "Factura",
"invoice_configuration" => "Parámetros de Impresión",
"invoice_default_comments" => "Comentarios predeterminados en la factura",
"invoice_email_message" => "Plantilla de Factura por Email",
"invoice_enable" => "Activar Facturación",
"invoice_printer" => "Impresora Facturadora",
"invoice_type" => "Tipo de Factura",
"is_readable" => "es legible, pero los permisos de lectura son incorrectos. Pongalos en 640 o 660 cargue nuevamente.",
"is_writable" => "es escribible, pero los permisos de escritura son incorrectos. Pongalos en 750 y recargue la página de nuevo.",
"item_markup" => "Marcado de Artículo",
"jsprintsetup_required" => "Advertencia!Esta funcionalidad desactivada solo funciona con el addon jsPrintSetup de FireFox instalado. Guardar de todas formas?",
"language" => "Idioma",
"last_used_invoice_number" => "Último numero de factura utilizado",
"last_used_quote_number" => "Último número de presupuesto utilizado",
"last_used_work_order_number" => "Ultimo usado sin numero",
"left" => "Izquierda",
"license" => "Licencia",
"license_configuration" => "Anuncio de Licencia",
"line_sequence" => "Secuencia de linea",
"lines_per_page" => "Líneas por página",
"lines_per_page_number" => "Líneas por página debe ser un número.",
"lines_per_page_required" => "Líneas por página es requerido.",
"locale" => "Localización",
"locale_configuration" => "Configuración de la zona local",
"locale_info" => "Informacion de la configuracion de la zona",
"location" => "Inventario",
"location_configuration" => "Ubicación de Inventario",
"location_info" => "Información de Configuración de Ubicación",
"login_form" => "Estilo del formulario de inicio de sesión",
"logout" => "Desea hacer un respaldo antes de salir? Pulsa [OK] para respaldar o [Cancelar] para salir.",
"mailchimp" => "Correo MailChimp",
"mailchimp_api_key" => "Clave API de Mailchimp",
"mailchimp_configuration" => "Configuración de Mailchimp",
"mailchimp_key_successfully" => "Clave API correcta.",
"mailchimp_key_unsuccessfully" => "Clave API incorrecta.",
"mailchimp_lists" => "Lista(s) de Mailchimp",
"mailchimp_tooltip" => "Haga clic en el icono de una clave de API.",
"message" => "Mensajes SMS",
"message_configuration" => "Configuracion del mensaje",
"msg_msg" => "Texto del mensaje guardado",
"msg_msg_placeholder" => "Si desea usar un formato de SMS guarde su mensaje aquí, en caso contrario deje en blanco.",
"msg_pwd" => "SMS-API Password",
"msg_pwd_required" => "SMS-API Password es un campo requerido",
"msg_src" => "SMS-API ID remitente",
"msg_src_required" => "SMS-API ID remitente es un campo requerido",
"msg_uid" => "SMS-API Usuario",
"msg_uid_required" => "SMS-API Usuario es un campo requerido",
"multi_pack_enabled" => "Empaquetado Múltiple por Producto",
"no_risk" => "Sin riesgos de seguridad/vulnerabilidad.",
"none" => "ninguno",
"notify_alignment" => "Posición de notificacion",
"number_format" => "Formato de número",
"number_locale" => "Localización",
"number_locale_invalid" => "Localización ingresada invalida. Revisa el link en el tooltip para encontrar informacion.",
"number_locale_required" => "Numero localizacion es un campo requerido.",
"number_locale_tooltip" => "Encontrar una zonificacion adecuada en este enlace.",
"os_timezone" => "Zona Horaria Local:",
"ospos_info" => "Información de la Instalación OSPOS",
"payment_options_order" => "Orden de opciones de pago",
"perm_risk" => "Los permisos incorrectos dejan a este software en riesgo.",
"phone" => "Teléfono comercial",
"phone_required" => "Teléfono del Comercio es requerido.",
"print_bottom_margin" => "Margen Inferior",
"print_bottom_margin_number" => "Margen Inferior debe ser un número.",
"print_bottom_margin_required" => "Margen Inferior es requerido.",
"print_delay_autoreturn" => "Regresar automaticamente a Vender",
"print_delay_autoreturn_number" => "Tiempo espera requerido para regresar a ventas.",
"print_delay_autoreturn_required" => "El tiempo espera debe ser numérico.",
"print_footer" => "Imprimir el pie de página del navegador",
"print_header" => "Imprimir el encabezado del navegador",
"print_left_margin" => "Margen Izquierdo",
"print_left_margin_number" => "Margen Izquierdo debe ser un número.",
"print_left_margin_required" => "Margen Izquierdo es requerido.",
"print_receipt_check_behaviour" => "Selección de Imprimir recibo",
"print_receipt_check_behaviour_always" => "Siempre activado",
"print_receipt_check_behaviour_last" => "Recordar la ultima vez",
"print_receipt_check_behaviour_never" => "Siempre desactivo",
"print_right_margin" => "Margen Derecho",
"print_right_margin_number" => "Margen Derecho debe ser un número.",
"print_right_margin_required" => "Margen Derecho es requerido.",
"print_silently" => "Mostrar configuracion pre- impresión",
"print_top_margin" => "Margen Superior",
"print_top_margin_number" => "Margen Superior debe ser un número.",
"print_top_margin_required" => "Margen Superior es requerido.",
"quantity_decimals" => "Decimales de Cantidades",
"quick_cash_enable" => "Activar Botones de Efectivo",
"quote_default_comments" => "Comentario inicial de cotizaciones",
"receipt" => "Recibo",
"receipt_category" => "Recibo con categoría",
"receipt_configuration" => "Parámetros de Impresión",
"receipt_default" => "Normal",
"receipt_font_size" => "Tamaño letra",
"receipt_font_size_number" => "Debe ser un numero el tamaño de letra.",
"receipt_font_size_required" => "El tamaño de letra es requerido.",
"receipt_info" => "Información de Configuración de Recibo",
"receipt_printer" => "Impresora de Ticket",
"receipt_short" => "Resumido",
"receipt_show_company_name" => "Mostrar el nombre de la empresa",
"receipt_show_description" => "Mostrar descripcion",
"receipt_show_serialnumber" => "Mostrar numero de serie",
"receipt_show_tax_ind" => "Mostrar indicador de impuestos",
"receipt_show_taxes" => "Mostrar impuestos",
"receipt_show_total_discount" => "Mostrar Descuento Total",
"receipt_template" => "Formato de recibo",
"receiving_calculate_average_price" => "Calcular Promedio de Precio. (Recepción)",
"recv_invoice_format" => "Formato de Factura de Recepción",
"register_mode_default" => "Modo de registro por defecto",
"report_an_issue" => "Informe de algún problema",
"return_policy_required" => "Política de Devolución requerida.",
"reward" => "Recompensas",
"reward_configuration" => "Configuración de recompensas",
"right" => "Derecha",
"sales_invoice_format" => "Formato de Facturas de Venta",
"sales_quote_format" => "Formato de presupuesto de las ventas",
"saved_successfully" => "Configuración guardada satisfactoriamente.",
"saved_unsuccessfully" => "Configuración no guardada.",
"security_issue" => "Advertencia de vulnerabilidad de seguridad",
"server_notice" => "Por Favor Use la Siguiente Información para Reportar Problemas.",
"service_charge" => "Costo de Servicio",
"show_due_enable" => "Mostrar vencimientos de clientes",
"show_office_group" => "Mostrar icono oficina",
"statistics" => "Enviar estadísticas",
"statistics_tooltip" => "Envíe estadísticas para el desarrollo y mejora de funciones.",
"stock_location" => "Ubicación de Inventario",
"stock_location_duplicate" => "El nombre de inventario debe ser único.",
"stock_location_invalid_chars" => "Nombre de la Ubicación de Inventario no debe contener '_'.",
"stock_location_required" => "Número de Ubicación de Inventario es requerido.",
"suggestions_fifth_column" => "Columna 5",
"suggestions_first_column" => "Columna 1",
"suggestions_fourth_column" => "Columna 4",
"suggestions_layout" => "Sugerencias de búsqueda",
"suggestions_second_column" => "Columna 2",
"suggestions_third_column" => "Columna 3",
"system_conf" => "Sistema OSPOS",
"system_info" => "System Info",
"table" => "Mesa",
"table_configuration" => "Configuración de Mesa",
"takings_printer" => "Impresión de retenciones",
"tax" => "Impuestos",
"tax_category" => "Categoría impuesto",
"tax_category_duplicate" => "Categoría de impuesto ingresada ya existe.",
"tax_category_invalid_chars" => "Categoría de impuesto ingresada es invalida.",
"tax_category_required" => "Categoría de impuesto es requerida.",
"tax_category_used" => "La categoría de impuestos no puede borrarse, esta en uso.",
"tax_configuration" => "Configuracion Impuesto",
"tax_decimals" => "Decimales de impuestos",
"tax_id" => "Identificador del Impuesto",
"tax_included" => "Impuestos incluidos",
"theme" => "Tema",
"theme_preview" => "Vista Previa del Tema:",
"thousands_separator" => "Separador de miles",
"timezone" => "Zona Horaria",
"timezone_error" => "La zona horaria de OSPOS es diferente de tu zona horaria local.",
"top" => "Arriba",
"use_destination_based_tax" => "Usar Impuesto Basado en Destino",
"user_timezone" => "Zona Horaria OSPOS:",
"website" => "Sitio Web",
"wholesale_markup" => "Marcado al por mayor",
"work_order_enable" => "Soporte Ordenes de Trabajo",
"work_order_format" => "Formato Ordenes de trabajo",
'address' => "Dirección del Comercio",
'address_required' => "Dirección del Comercio es requerida.",
'all_set' => "¡Todos los permisos de archivo están configurados correctamente!",
'allow_duplicate_barcodes' => "Permitir código barras duplicados",
'apostrophe' => "apostrofe",
'backup_button' => "Respaldo",
'backup_database' => "Respaldo de Base de Datos",
'barcode' => "Código Barras",
'barcode_company' => "Nombre del Comercio",
'barcode_configuration' => "Configuración de Código de Barras",
'barcode_content' => "Contenido de Código de Barras",
'barcode_first_row' => "Fila 1",
'barcode_font' => "Fuente",
'barcode_formats' => "Formato entrada",
'barcode_generate_if_empty' => "Generar si esta vacio.",
'barcode_height' => "Alto (px)",
'barcode_id' => "Id/Artículo",
'barcode_info' => "Información de Configuración de Código de Barras",
'barcode_layout' => "Diseño Código de Barras",
'barcode_name' => "Nombre",
'barcode_number' => "UPC/EAN/ISBN",
'barcode_number_in_row' => "Número en la línea",
'barcode_page_cellspacing' => "Mostrar espacios de celdas de página.",
'barcode_page_width' => "Mostrar ancho de página",
'barcode_price' => "Precio",
'barcode_second_row' => "Fila 2",
'barcode_third_row' => "Fila 3",
'barcode_tooltip' => "Cuidado: esta característica puede causar duplicados ser importados o creados, No lo use si no quiere códigos de barras duplicadas.",
'barcode_type' => "Tipo de Código de Barra",
'barcode_width' => "Ancho (px)",
'bottom' => "Abajo",
'cash_button' => "Botones de Efectivo Rápido",
'cash_button_1' => "Botón 1",
'cash_button_2' => "Botón 2",
'cash_button_3' => "Botón 3",
'cash_button_4' => "Botón 4",
'cash_button_5' => "Botón 5",
'cash_button_6' => "Botón 6",
'cash_decimals' => "Decimales del Efectivo",
'cash_decimals_tooltip' => "Si los decimales del efectivo y del tipo de moneda son los mismos no habrá redondeo de los pagos en efectivo.",
'cash_rounding' => "Redondeo del Efectivo",
'category_dropdown' => "Mostrar Categoria como desplegable",
'center' => "Centro",
'change_apperance_tooltip' => "Cambiar Aspecto de OSPOS",
'comma' => "coma",
'company' => "Nombre del Comercio",
'company_avatar' => "Avatar de Empleado",
'company_change_image' => "Cambiar Imagen",
'company_logo' => "Logotipo del Comercio",
'company_remove_image' => "Quitar Imagen",
'company_required' => "Nombre del Comercio es requerido",
'company_select_image' => "Seleccionar Imagen",
'company_website_url' => "Sitio Web no es una URL estándar (http://...).",
'country_codes' => "Código de País",
'country_codes_tooltip' => "Lista de codigo de paises separado por coma para busqueda de direcciones.",
'currency_code' => "Código de Moneda",
'currency_decimals' => "Decimales del tipo de moneda",
'currency_symbol' => "Símbolo de la moneda",
'current_employee_only' => "Mostrar registro sólo del empleado actual",
'customer_reward' => "Cat. de Cliente",
'customer_reward_duplicate' => "La recompensa debe ser única.",
'customer_reward_enable' => "Activar recompenza para clientes",
'customer_reward_invalid_chars' => "El nombre de la recompenza no puede contener el carácter '_'",
'customer_reward_required' => "El nombre es un campo obligatorio",
'customer_sales_tax_support' => "Habilitar la gestión de impuestos en las ventas a clientes",
'date_or_time_format' => "Filtro de fecha y hora",
'datetimeformat' => "Formato de fecha y hora",
'decimal_point' => "Punto Decimal",
'default_barcode_font_size_number' => "Tamaño de fuente de código de barras debe ser número.",
'default_barcode_font_size_required' => "Tamaño de fuente de código de barras es requerido.",
'default_barcode_height_number' => "Alto del código de barras debe ser un número.",
'default_barcode_height_required' => "Altura del código de barras es requerido.",
'default_barcode_num_in_row_number' => "Número por fila del código de barras debe ser un número.",
'default_barcode_num_in_row_required' => "Número de código de barras predeterminado en fila es un campo obligatorio.",
'default_barcode_page_cellspacing_number' => "Espacios de celdas por página del código de barras debe ser un número.",
'default_barcode_page_cellspacing_required' => "Espacios de celdas por página del código de barras es requerido.",
'default_barcode_page_width_number' => "Ancho de página del código de barras debe ser un número.",
'default_barcode_page_width_required' => "Ancho de página del código de barras es requerido.",
'default_barcode_width_number' => "Ancho del código de barras debe ser número.",
'default_barcode_width_required' => "Ancho del código de barras es requerido.",
'default_item_columns' => "Columnas de Productos Visibles por Defecto",
'default_origin_tax_code' => "Código de impuesto por defecto",
'default_receivings_discount' => "Descuento por Defecto para Recibos",
'default_receivings_discount_number' => "El Descuento por Defecto Para Los Recibos Debe Ser Un Número.",
'default_receivings_discount_required' => "El Descuento Predeterminado para los Recibos es un campo obligatorio.",
'default_sales_discount' => "Descuento Predeterminado para Ventas",
'default_sales_discount_number' => "Descuento en ventas predeterminado debe ser un número.",
'default_sales_discount_required' => "Descuento en ventas predeterminado es requerido.",
'default_tax_category' => "Categoría de Tasa predeterminada",
'default_tax_code' => "Código de Impuesto Predeterminado",
'default_tax_jurisdiction' => "Jurisdicción de Impuesto Predeterminado",
'default_tax_name_number' => "El nombre de el impuesto debe ser letras.",
'default_tax_name_required' => "El nombre del impuesto predeterminado es requerido.",
'default_tax_rate' => "% de Impuestos Predeterminado",
'default_tax_rate_1' => "Impuesto 1",
'default_tax_rate_2' => "Impuesto 2",
'default_tax_rate_3' => "Tasa de Impuestos 3",
'default_tax_rate_number' => "El Impuesto Predeterminado debe ser un número.",
'default_tax_rate_required' => "El Impuesto Predeterminado es requerido.",
'derive_sale_quantity' => "Permitir cantidad de venta derivada",
'derive_sale_quantity_tooltip' => "Si se marca entonces se proporcionará un nuevo tipo para los artículos ordenados por cantidad extendida",
'dinner_table' => "Mesa",
'dinner_table_duplicate' => "Utilice un nombre de mesa único.",
'dinner_table_enable' => "Activar Mesa de Restaurante",
'dinner_table_invalid_chars' => "El nombre de la mesa no puede contener '_'.",
'dinner_table_required' => "La mesa es un campo obligatorio.",
'dot' => "punto",
'email' => "E-mail",
'email_configuration' => "Configuracion de correo",
'email_mailpath' => "Ruta a Sendmail",
'email_protocol' => "Protocolo",
'email_receipt_check_behaviour' => "Selector de Recibir por Correo",
'email_receipt_check_behaviour_always' => "Siempre activado",
'email_receipt_check_behaviour_last' => "Recordar ultima vez",
'email_receipt_check_behaviour_never' => "Siempre desactivado",
'email_smtp_crypto' => "Encriptado SMTP",
'email_smtp_host' => "Servidor SMTP",
'email_smtp_pass' => "Pasword SMTP",
'email_smtp_port' => "Puerto SMTP",
'email_smtp_timeout' => "Tiempo falla SMTP",
'email_smtp_user' => "Usuario SMTP",
'enable_avatar' => "Habilitar Avatar",
'enable_avatar_tooltip' => "Habilitar Avatares para que se muestren en el menú desplegable Categorías y Registrarse ",
'enable_dropdown_tooltip' => "No podrá agregar nuevas categorías si esto está marcado",
'enable_new_look' => "Habilitar nueva apariencia",
'enable_right_bar' => " Habilitar la barra lateral derecha",
'enable_right_bar_tooltip' => "Cambiar la barra lateral de izquierda a derecha ",
'enforce_privacy' => "Forzar privacidad",
'enforce_privacy_tooltip' => "Proteja la privacidad de los clientes aplicando codificación de datos en caso de que se eliminen",
'fax' => "Fax",
'file_perm' => "Hay problemas con los permisos de archivo. Por favor corrija y vuelva a recargar esta página.",
'financial_year' => "Inicio del año fiscal",
'financial_year_apr' => "1º de Abril",
'financial_year_aug' => "1º de Agosto",
'financial_year_dec' => "1º de Diciembre",
'financial_year_feb' => "1º de Febrero",
'financial_year_jan' => "1º de Enero",
'financial_year_jul' => "1º de Julio",
'financial_year_jun' => "1º de Junio",
'financial_year_mar' => "1º de Marzo",
'financial_year_may' => "1º de Mayo",
'financial_year_nov' => "1º de Noviembre",
'financial_year_oct' => "1º de Octubre",
'financial_year_sep' => "1º de Septiembre",
'floating_labels' => "Etiquetas flotantes",
'gcaptcha_enable' => "Inicio de sesión con reCAPTCHA",
'gcaptcha_secret_key' => "Llave secreta reCAPTCHA",
'gcaptcha_secret_key_required' => "reCAPTCHA Secret Key es requerida si se usa",
'gcaptcha_site_key' => "Llave del sitio reCAPTCHA",
'gcaptcha_site_key_required' => "reCAPTCHA Site Key es requerida si se usa",
'gcaptcha_tooltip' => "Proteja la página de inicio de sesión con Google reCAPTCHA, haga clic en el icono de un par de claves de API.",
'general' => "General",
'general_configuration' => "Configuración General",
'giftcard_number' => "Número de tarjeta de regalo",
'giftcard_random' => "Generar aleatoriamente",
'giftcard_series' => "Generar en serie",
'image_allowed_file_types' => "Tipos de archivos permitidos",
'image_max_height_tooltip' => "Altura máxima permitida de las cargas de imágenes en píxeles (px).",
'image_max_size_tooltip' => "Tamaño máximo de archivo permitido de cargas de imágenes en kilobytes (kb).",
'image_max_width_tooltip' => "Ancho máximo permitido de las cargas de imágenes en píxeles (px).",
'image_restrictions' => "Restricciones de carga de imágenes",
'include_hsn' => "Incluir Soporte para Códigos HSN",
'info' => "Información",
'info_configuration' => "Información del Comercio",
'input_groups' => "Introducir Grupos",
'integrations' => "Componentes Integrados",
'integrations_configuration' => "Componentes de Terceros Integrados",
'invoice' => "Factura",
'invoice_configuration' => "Parámetros de Impresión",
'invoice_default_comments' => "Comentarios predeterminados en la factura",
'invoice_email_message' => "Plantilla de Factura por Email",
'invoice_enable' => "Habilitar Facturación",
'invoice_printer' => "Impresora Facturadora",
'invoice_type' => "Tipo de Factura",
'is_readable' => "es legible, pero los permisos de lectura son incorrectos. Pongalos en 640 o 660 cargue nuevamente.",
'is_writable' => "es escribible, pero los permisos de escritura son incorrectos. Pongalos en 750 y recargue la página de nuevo.",
'item_markup' => "Marcado de Artículo",
'jsprintsetup_required' => "Advertencia!Esta funcionalidad desactivada solo funciona con el addon jsPrintSetup de FireFox instalado. Guardar de todas formas?",
'language' => "Idioma",
'last_used_invoice_number' => "Último numero de factura utilizado",
'last_used_quote_number' => "Último número de presupuesto utilizado",
'last_used_work_order_number' => "Ultimo usado sin numero",
'left' => "Izquierda",
'license' => "Licencia",
'license_configuration' => "Anuncio de Licencia",
'line_sequence' => "Secuencia de linea",
'lines_per_page' => "Líneas por página",
'lines_per_page_number' => "Líneas por página debe ser un número.",
'lines_per_page_required' => "Líneas por página es requerido.",
'locale' => "Localización",
'locale_configuration' => "Configuración de la zona local",
'locale_info' => "Informacion de la configuracion de la zona",
'location' => "Inventario",
'location_configuration' => "Ubicación de Inventario",
'location_info' => "Información de Configuración de Ubicación",
'login_form' => "Estilo del formulario de inicio de sesión",
'logout' => "Desea hacer un respaldo antes de salir? Pulsa [OK] para respaldar o [Cancelar] para salir.",
'mailchimp' => "Correo MailChimp",
'mailchimp_api_key' => "Clave API de Mailchimp",
'mailchimp_configuration' => "Configuración de Mailchimp",
'mailchimp_key_successfully' => "Clave API correcta.",
'mailchimp_key_unsuccessfully' => "Clave API incorrecta.",
'mailchimp_lists' => "Lista(s) de Mailchimp",
'mailchimp_tooltip' => "Haga clic en el icono de una clave de API.",
'message' => "Mensajes SMS",
'message_configuration' => "Configuracion del mensaje",
'msg_msg' => "Texto del mensaje guardado",
'msg_msg_placeholder' => "Si desea usar un formato de SMS guarde su mensaje aquí, en caso contrario deje en blanco.",
'msg_pwd' => "SMS-API Password",
'msg_pwd_required' => "SMS-API Password es un campo requerido",
'msg_src' => "SMS-API ID remitente",
'msg_src_required' => "SMS-API ID remitente es un campo requerido",
'msg_uid' => "SMS-API Usuario",
'msg_uid_required' => "SMS-API Usuario es un campo requerido",
'multi_pack_enabled' => "Empaquetado Múltiple por Producto",
'no_risk' => "Sin riesgos de seguridad/vulnerabilidad.",
'none' => "ninguno",
'notify_alignment' => "Posición de notificacion",
'number_format' => "Formato de número",
'number_locale' => "Localización",
'number_locale_invalid' => "Localización ingresada invalida. Revisa el link en el tooltip para encontrar informacion.",
'number_locale_required' => "Numero localizacion es un campo requerido.",
'number_locale_tooltip' => "Encontrar una zonificacion adecuada en este enlace.",
'os_timezone' => "Zona Horaria Local:",
'ospos_info' => "Información de la Instalación OSPOS",
'payment_options_order' => "Orden de opciones de pago",
'perm_risk' => "Los permisos incorrectos dejan a este software en riesgo.",
'phone' => "Teléfono comercial",
'phone_required' => "Teléfono del Comercio es requerido.",
'print_bottom_margin' => "Margen Inferior",
'print_bottom_margin_number' => "Margen Inferior debe ser un número.",
'print_bottom_margin_required' => "Margen Inferior es requerido.",
'print_delay_autoreturn' => "Regresar automaticamente a Vender",
'print_delay_autoreturn_number' => "Tiempo espera requerido para regresar a ventas.",
'print_delay_autoreturn_required' => "El tiempo espera debe ser numérico.",
'print_footer' => "Imprimir el pie de página del navegador",
'print_header' => "Imprimir el encabezado del navegador",
'print_left_margin' => "Margen Izquierdo",
'print_left_margin_number' => "Margen Izquierdo debe ser un número.",
'print_left_margin_required' => "Margen Izquierdo es requerido.",
'print_receipt_check_behaviour' => "Selección de Imprimir recibo",
'print_receipt_check_behaviour_always' => "Siempre activado",
'print_receipt_check_behaviour_last' => "Recordar la ultima vez",
'print_receipt_check_behaviour_never' => "Siempre desactivo",
'print_right_margin' => "Margen Derecho",
'print_right_margin_number' => "Margen Derecho debe ser un número.",
'print_right_margin_required' => "Margen Derecho es requerido.",
'print_silently' => "Mostrar configuracion pre- impresión",
'print_top_margin' => "Margen Superior",
'print_top_margin_number' => "Margen Superior debe ser un número.",
'print_top_margin_required' => "Margen Superior es requerido.",
'quantity_decimals' => "Decimales de Cantidades",
'quick_cash_enable' => "Activar Botones de Efectivo",
'quote_default_comments' => "Comentario inicial de cotizaciones",
'receipt' => "Recibo",
'receipt_category' => "Recibo con categoría",
'receipt_configuration' => "Parámetros de Impresión",
'receipt_default' => "Normal",
'receipt_font_size' => "Tamaño letra",
'receipt_font_size_number' => "Debe ser un numero el tamaño de letra.",
'receipt_font_size_required' => "El tamaño de letra es requerido.",
'receipt_info' => "Información de Configuración de Recibo",
'receipt_printer' => "Impresora de Ticket",
'receipt_short' => "Resumido",
'receipt_show_company_name' => "Mostrar el nombre de la empresa",
'receipt_show_description' => "Mostrar descripcion",
'receipt_show_serialnumber' => "Mostrar numero de serie",
'receipt_show_tax_ind' => "Mostrar indicador de impuestos",
'receipt_show_taxes' => "Mostrar impuestos",
'receipt_show_total_discount' => "Mostrar Descuento Total",
'receipt_template' => "Formato de recibo",
'receiving_calculate_average_price' => "Calcular Promedio de Precio. (Recepción)",
'recv_invoice_format' => "Formato de Factura de Recepción",
'register_mode_default' => "Modo de registro por defecto",
'report_an_issue' => "Informe de algún problema",
'return_policy_required' => "Política de Devolución requerida.",
'reward' => "Recompensas",
'reward_configuration' => "Configuración de recompensas",
'right' => "Derecha",
'sales_invoice_format' => "Formato de Facturas de Venta",
'sales_quote_format' => "Formato de presupuesto de las ventas",
'saved_successfully' => "Configuración guardada satisfactoriamente.",
'saved_unsuccessfully' => "Configuración no guardada.",
'security_issue' => "Advertencia de vulnerabilidad de seguridad",
'server_notice' => "Por Favor Use la Siguiente Información para Reportar Problemas.",
'service_charge' => "Costo de Servicio",
'show_due_enable' => "Mostrar vencimientos de clientes",
'show_office_group' => "Mostrar icono oficina",
'statistics' => "Enviar estadísticas",
'statistics_tooltip' => "Envíe estadísticas para el desarrollo y mejora de funciones.",
'stock_location' => "Ubicación de Inventario",
'stock_location_duplicate' => "El nombre de inventario debe ser único.",
'stock_location_invalid_chars' => "Nombre de la Ubicación de Inventario no debe contener '_'.",
'stock_location_required' => "Número de Ubicación de Inventario es requerido.",
'suggestions_fifth_column' => "Columna 5",
'suggestions_first_column' => "Columna 1",
'suggestions_fourth_column' => "Columna 4",
'suggestions_layout' => "Sugerencias de búsqueda",
'suggestions_second_column' => "Columna 2",
'suggestions_third_column' => "Columna 3",
'system_conf' => "Sistema OSPOS",
'system_info' => "System Info",
'table' => "Mesa",
'table_configuration' => "Configuración de Mesa",
'takings_printer' => "Impresión de retenciones",
'tax' => "Impuestos",
'tax_category' => "Categoría impuesto",
'tax_category_duplicate' => "Categoría de impuesto ingresada ya existe.",
'tax_category_invalid_chars' => "Categoría de impuesto ingresada es invalida.",
'tax_category_required' => "Categoría de impuesto es requerida.",
'tax_category_used' => "La categoría de impuestos no puede borrarse, esta en uso.",
'tax_configuration' => "Configuracion Impuesto",
'tax_decimals' => "Decimales de impuestos",
'tax_id' => "Identificador del Impuesto",
'tax_included' => "Impuestos incluidos",
'theme' => "Tema",
'theme_preview' => "Vista Previa del Tema:",
'thousands_separator' => "Separador de miles",
'timezone' => "Zona Horaria",
'timezone_error' => "La zona horaria de OSPOS es diferente de tu zona horaria local.",
'top' => "Arriba",
'use_destination_based_tax' => "Usar Impuesto Basado en Destino",
'user_timezone' => "Zona Horaria OSPOS:",
'website' => "Sitio Web",
'wholesale_markup' => "Marcado al por mayor",
'work_order_enable' => "Soporte Ordenes de Trabajo",
'work_order_format' => "Formato Ordenes de trabajo",
];

View File

@@ -1,71 +1,72 @@
<?php
return [
"add_minus" => "Inventario a agregar/substraer.",
"allow_alt_description" => "Permitir Descripción Alternativa",
"bulk_edit" => "Edición Múltiple",
"cannot_be_deleted" => "No se puede borrar las tarjetas seleccionadas. Una o más tiene ventas.",
"cannot_find_giftcard" => "Tarjeta Regalo no encontrada.",
"cannot_use" => "Tarjeta Regalo {0} no puede ser usada: Cliente invalido.",
"card_value" => "Valor",
"category" => "Categoría",
"change_all_to_allow_alt_desc" => "Permitir Descripción Alternativa En Todos.",
"change_all_to_not_allow_allow_desc" => "No Permitir Descripción Alternativa Para Todos.",
"change_all_to_serialized" => "Cambiar Todo A Serializado",
"change_all_to_unserialized" => "Cambiar Todo A Deserializado",
"confirm_bulk_edit" => "¿Seguro(a) de querer editar las tarjetas de regalo seleccionadas?",
"confirm_delete" => "¿Seguro(a) de querer eliminar las tarjetas de regalo seleccionadas?",
"confirm_restore" => "Esta seguro de querer restaurar la(s) entrada(s) seleccionada(s)?",
"cost_price" => "Precio de Costo",
"count" => "Actualizar Inventario",
"csv_import_failed" => "Falló, se recomeinda usar LibreOffice.",
"current_quantity" => "Cantidad Actual",
"description" => "Descripción",
"details_count" => "Detalles del Levantamiento de Inventario",
"do_nothing" => "No hacer nada",
"edit_fields_you_want_to_update" => "Edita los campos que quieras actualizar en TODAS las tarjetas de regalo seleccionadas.",
"edit_multiple_giftcards" => "Editando Múltiples Tarjetas de Regalo.",
"error_adding_updating" => "Error agregando/actualizando tarjeta de regalo.",
"error_updating_multiple" => "Error actualizando tarjetas de regalo.",
"generate_barcodes" => "Generar Códigos de Barras",
"giftcard" => "Tarjeta de Regalo",
"giftcard_number" => "Número de Tarjeta de Regalo",
"info_provided_by" => "Info provista por",
"inventory_comments" => "Comentarios",
"is_serialized" => "La Tarjeta de Regalo tiene Número de Serie",
"low_inventory_giftcards" => "Tarjetas con Bajo Inventario",
"manually_editing_of_quantity" => "Edición Manual de Cantidad",
"must_select_giftcard_for_barcode" => "Debes seleccionar por lo menos 1 tarjeta para generar códigos de barras.",
"new" => "Nueva Tarjeta de Regalo",
"no_description_giftcards" => "Tarjetas de Regalo sin Descripción",
"no_giftcards_to_display" => "No hay Tarjetas de Regalo.",
"none" => "Ninguno(a)",
"none_selected" => "No has seleccionado tarjetas de regalo para editar.",
"number" => "Número de Tarjeta de Regalo debe ser un número.",
"number_information" => "Número de Tarjeta de Regalo",
"number_required" => "Número de Tarjeta de Regalo es requerido.",
"one_or_multiple" => "tarjeta(s) de regalo",
"person_id" => "Cliente",
"quantity" => "Cantidad",
"quantity_required" => "Cantidad es requerido. Por favor, haz click en (X) para cancelar.",
"remaining_balance" => "El valor excedente de la tarjeta de regalo {0} es de {1}!",
"reorder_level" => "Cantidad Mínima",
"retrive_giftcard_info" => "Obtener Info de Tarjeta de Regalo",
"sales_tax_1" => "Impuesto de Venta 1",
"sales_tax_2" => "Impuesto de Venta 2",
"serialized_giftcards" => "Tarjetas Serializadas",
"successful_adding" => "Has agregado satisfactoriamente una tarjeta de regalo",
"successful_bulk_edit" => "Has actualizado satisfactoriamente las tarjetas de regalo seleccionadas",
"successful_deleted" => "Has borrado satisfactoriamente",
"successful_updating" => "Has actualizado satisfactoriamente una tarjeta de regalo",
"supplier" => "Proveedor",
"tax_1" => "Impuesto 1",
"tax_2" => "Impuesto 2",
"tax_percent" => "Porcentaje de Impuesto",
"tax_percents" => "Porcentaje de Impuesto(s)",
"unit_price" => "Precio Unitario",
"upc_database" => "Base de Datos UPC",
"update" => "Actualizar Tarjeta de Regalo",
"use_inventory_menu" => "Usar Menú de Inventario",
"value" => "Valor de Tarjeta de Regalo debe ser un número.",
"value_required" => "Valor de Tarjeta de Regalo es requerido.",
'add_minus' => "Inventario a agregar/substraer.",
'allow_alt_description' => "Permitir Descripción Alternativa",
'bulk_edit' => "Edición Múltiple",
'cannot_be_deleted' => "No se puede borrar las tarjetas seleccionadas. Una o más tiene ventas.",
'cannot_find_giftcard' => "Tarjeta Regalo no encontrada.",
'cannot_use' => "Tarjeta Regalo {0} no puede ser usada: Cliente invalido.",
'card_value' => "Valor",
'category' => "Categoría",
'change_all_to_allow_alt_desc' => "Permitir Descripción Alternativa para todos.",
'change_all_to_not_allow_allow_desc' => "No permitir descripción alternativa para todos.",
'change_all_to_serialized' => "Cambiar Todo A Serializado",
'change_all_to_unserialized' => "Cambiar Todo A Deserializado",
'confirm_bulk_edit' => "¿Seguro(a) de querer editar las tarjetas de regalo seleccionadas?",
'confirm_delete' => "¿Seguro(a) de querer eliminar las tarjetas de regalo seleccionadas?",
'confirm_restore' => "Esta seguro de querer restaurar la(s) entrada(s) seleccionada(s)?",
'cost_price' => "Precio al Por Mayor",
'count' => "Actualizar Inventario",
'csv_import_failed' => "Falló, se recomeinda usar LibreOffice.",
'current_quantity' => "Cantidad Actual",
'description' => "Descripción",
'details_count' => "Detalles del Levantamiento de Inventario",
'do_nothing' => "No hacer nada",
'edit_fields_you_want_to_update' => "Edita los campos que quieras actualizar en TODAS las tarjetas de regalo seleccionadas.",
'edit_multiple_giftcards' => "Editando Múltiples Tarjetas de Regalo.",
'error_adding_updating' => "Error agregando/actualizando tarjeta de regalo.",
'error_updating_multiple' => "Error actualizando tarjetas de regalo.",
'generate_barcodes' => "Generar Códigos de Barras",
'giftcard' => "Tarjeta de Regalo",
'giftcard_number' => "Número de Tarjeta de Regalo",
'info_provided_by' => "Info provista por",
'inventory_comments' => "Comentarios",
'is_serialized' => "La Tarjeta de Regalo tiene Número de Serie",
'low_inventory_giftcards' => "Tarjetas con Bajo Inventario",
'manually_editing_of_quantity' => "Edición Manual de Cantidad",
'must_select_giftcard_for_barcode' => "Debes seleccionar por lo menos 1 tarjeta para generar códigos de barras.",
'new' => "Nueva Tarjeta de Regalo",
'no_description_giftcards' => "Tarjetas de Regalo sin Descripción",
'no_giftcards_to_display' => "No hay Tarjetas de Regalo.",
'none' => "Ninguno(a)",
'none_selected' => "No has seleccionado tarjetas de regalo para editar.",
'number' => "Número de Tarjeta de Regalo debe ser un número.",
'number_information' => "Número de Tarjeta de Regalo",
'number_required' => "Número de Tarjeta de Regalo es requerido.",
'one_or_multiple' => "tarjeta(s) de regalo",
'person_id' => "Cliente",
'quantity' => "Cantidad",
'quantity_required' => "Cantidad es requerido. Por favor, haz click en (X) para cancelar.",
'remaining_balance' => "El valor excedente de la tarjeta de regalo {0} es de {1}!",
'reorder_level' => "Cantidad Mínima",
'retrive_giftcard_info' => "Obtener Info de Tarjeta de Regalo",
'sales_tax_1' => "Impuesto de Venta 1",
'sales_tax_2' => "Impuesto de Venta 2",
'serialized_giftcards' => "Tarjetas Serializadas",
'successful_adding' => "Has agregado satisfactoriamente una tarjeta de regalo",
'successful_bulk_edit' => "Has actualizado satisfactoriamente las tarjetas de regalo seleccionadas",
'successful_deleted' => "Has borrado satisfactoriamente",
'successful_updating' => "Has actualizado satisfactoriamente una tarjeta de regalo",
'supplier' => "Proveedor",
'tax_1' => "Impuesto 1",
'tax_2' => "Impuesto 2",
'tax_percent' => "Porcentaje de Impuesto",
'tax_percents' => "Porcentaje de Impuesto(s)",
'unit_price' => "Precio Unitario",
'upc_database' => "Base de Datos UPC",
'update' => "Actualizar Tarjeta de Regalo",
'use_inventory_menu' => "Usar Menú de Inventario",
'value' => "Valor de Tarjeta de Regalo debe ser un número.",
'value_required' => "Valor de Tarjeta de Regalo es requerido.",
];

View File

@@ -1,120 +1,121 @@
<?php
return [
"add_minus" => "Inventario a agregar/substraer.",
"allow_alt_description" => "Permitir Descripción Alternativa",
"amount_entry" => "Monto entrada",
"bulk_edit" => "Edición Múltiple",
"buy_price_required" => "Precio de Compra es requerido.",
"cannot_be_deleted" => "No se pueden borrar los artículos seleccionados. Uno o más tiene(n) ventas.",
"cannot_find_item" => "Articulo no encontrado.",
"categories" => "Categorías. Seleccione el número de artículo.",
"category" => "Categoría",
"category_new" => "Nueva Categoría",
"category_required" => "Categoría es requerido.",
"change_all_to_allow_alt_desc" => "Permitir Descripción Alternativa para todos.",
"change_all_to_not_allow_allow_desc" => "Denegar Descripción Alternativa para todos.",
"change_all_to_serialized" => "Cambiar Todo A Serializado",
"change_all_to_unserialized" => "Cambiar Todo A Deserializado",
"change_image" => "Cambiar Imagen",
"confirm_bulk_edit" => "¿Estás seguro(a) de querer editar los artículos seleccionados?",
"confirm_bulk_edit_wipe_taxes" => "Toda la información de impuesto del articulo sera cambiada.",
"confirm_delete" => "¿Estás seguro(a) de querer borrar los artículos seleccionados?",
"confirm_restore" => "Esta seguro de querer restaurar lo(s) articulo(s) seleccionada(s)?",
"cost_price" => "Precio al Por Mayor",
"cost_price_number" => "Precio al Por Mayor debe ser un número.",
"cost_price_required" => "Precio al Por Mayor es un campo requerido.",
"count" => "Actualizar Inventario",
"csv_import_failed" => "Falló la importación de Hoja de Cálculo",
"csv_import_nodata_wrongformat" => "El archivo subido no tiene datos o el formato es incorrecto.",
"csv_import_partially_failed" => "Hubo {0} falla(s) en la importación de producto(s) en la(s) línea(s): {1}. Ninguna fila ha sido importada.",
"csv_import_success" => "Se importaron los articulos exitosamente.",
"current_quantity" => "Cantidad Actual",
"default_pack_name" => "Cada",
"description" => "Descripción",
"details_count" => "Detalles de Cuenta de Inventario",
"do_nothing" => "No Hacer Nada",
"edit" => "Editar",
"edit_fields_you_want_to_update" => "Edita los campos para actualizar en los artículos seleccionados.",
"edit_multiple_items" => "Editando Artículos Múltiples",
"empty_upc_items" => "Items con UPC Vacio",
"error_adding_updating" => "Error agregando/actualizando artículo",
"error_updating_multiple" => "Error actualizando artículos",
"generate_barcodes" => "Generar Códigos de Barras",
"hsn_code" => "Nomenclatura de Sistemas Harmonizados",
"image" => "Avatar",
"import_items_csv" => "Importar Artículos desde CSV",
"info_provided_by" => "Info provista por",
"inventory" => "Inventario",
"inventory_CSV_import_quantity" => "Catidad Importada desde CSV",
"inventory_comments" => "Comentarios",
"inventory_data_tracking" => "Seguimiento de datos de inventario",
"inventory_date" => "Fecha",
"inventory_employee" => "Empleado",
"inventory_in_out_quantity" => "Cantidad E/S",
"inventory_remarks" => "Observaciones",
"is_deleted" => "Eliminado",
"is_printed" => "No impreso",
"is_serialized" => "El Artículo tiene Número de Serie",
"item" => "Artículo",
"item_id" => "Id del Artículo",
"item_number" => "UPC/EAN/ISBN",
"item_number_duplicate" => "El número de artículo ya esta presente en la base de datos.",
"kit" => "Kits de artículos",
"location" => "Ubicación",
"low_inventory_items" => "Artículos de Inventario Escaso",
"low_sell_item" => "Producto de bajas ventas",
"manually_editing_of_quantity" => "Edición Manual de Cantidad",
"markup" => "El marcado de elementos está habilitado",
"name" => "Nombre Artículo",
"name_required" => "Nombre de Artículo es requerido.",
"new" => "Nuevo Artículo",
"no_description_items" => "Artículos sin Descripción",
"no_items_to_display" => "Sin datos que mostrar.",
"none" => "Ninguno",
"none_selected" => "No has seleccionado artículos para editar",
"nonstock" => "Sin stock",
"number_information" => "Número del Artículo",
"number_required" => "UPC/EAN/ISBN es un campo requerido.",
"one_or_multiple" => "articulo(s)",
"pack_name" => "Nombre del Paquete",
"qty_per_pack" => "Cantidad por Paquete",
"quantity" => "Cantidad en Stock",
"quantity_number" => "Cantidad debe ser número.",
"quantity_required" => "Cantidad es requerido.",
"receiving_quantity" => "Cantidad Recibida",
"remove_image" => "Quitar Imagen",
"reorder_level" => "Cantidad Mínima",
"reorder_level_number" => "Cantidad Mínima debe ser número.",
"reorder_level_required" => "Cantidad Mínima es requerido.",
"retrive_item_info" => "Obtener Información de Artículo",
"sales_tax_1" => "Impuesto de Ventas 1",
"sales_tax_2" => "Impuesto de Ventas 2",
"search_attributes" => "Atributos de Búsqueda",
"select_image" => "Seleccionar Imagen",
"serialized_items" => "Artículos Serializados",
"standard" => "Estándar",
"stock" => "Existencia",
"stock_location" => "Ubicación de Inventario",
"stock_type" => "Tipo de stock",
"successful_adding" => "Has agregado satisfactoriamente un artículo",
"successful_bulk_edit" => "Has actualizado satisfactoriamente los artículos seleccionados",
"successful_deleted" => "Has borrado satisfactoriamente",
"successful_updating" => "Has actualizando satisfactoriamente un artículo",
"supplier" => "Proveedor",
"tax_1" => "Impuesto 1",
"tax_2" => "Impuesto 2",
"tax_3" => "Impuestos 3",
"tax_category" => "Categoría del Impuesto",
"tax_percent" => "Porcentaje de Impuesto",
"tax_percent_number" => "Impuesto porcentaje debe ser numerico",
"tax_percent_required" => "Porcentaje de Impuesto es requerido.",
"tax_percents" => "Porcentaje de Impuesto(s)",
"temp" => "Temporal",
"type" => "Tipo de ítem",
"unit_price" => "Precio de Venta",
"unit_price_number" => "Precio de Venta debe ser número.",
"unit_price_required" => "Precio de Venta es requerido.",
"upc_database" => "Base de datos UPC",
"update" => "Actualizar Artículo",
"use_inventory_menu" => "Usar Menú de Inventario",
'add_minus' => "Inventario a agregar/substraer.",
'allow_alt_description' => "Permitir Descripción Alternativa",
'amount_entry' => "Monto entrada",
'bulk_edit' => "Edición Múltiple",
'buy_price_required' => "Precio de Compra es requerido.",
'cannot_be_deleted' => "No se pueden borrar los artículos seleccionados. Uno o más tiene(n) ventas.",
'cannot_find_item' => "Articulo no encontrado.",
'categories' => "Categorías. Seleccione el número de artículo.",
'category' => "Categoría",
'category_new' => "Nueva Categoría",
'category_required' => "Categoría es requerido.",
'change_all_to_allow_alt_desc' => "Permitir Descripción Alternativa para todos.",
'change_all_to_not_allow_allow_desc' => "No permitir descripción alternativa para todos.",
'change_all_to_serialized' => "Cambiar Todo A Serializado",
'change_all_to_unserialized' => "Cambiar Todo A Deserializado",
'change_image' => "Cambiar Imagen",
'confirm_bulk_edit' => "¿Estás seguro(a) de querer editar los artículos seleccionados?",
'confirm_bulk_edit_wipe_taxes' => "Toda la información de impuesto del articulo sera cambiada.",
'confirm_delete' => "¿Estás seguro(a) de querer borrar los artículos seleccionados?",
'confirm_restore' => "Esta seguro de querer restaurar lo(s) articulo(s) seleccionada(s)?",
'cost_price' => "Precio al Por Mayor",
'cost_price_number' => "Precio al Por Mayor debe ser un número.",
'cost_price_required' => "Precio al Por Mayor es un campo requerido.",
'count' => "Actualizar Inventario",
'csv_import_failed' => "Falló la importación de Hoja de Cálculo",
'csv_import_nodata_wrongformat' => "El archivo subido no tiene datos o el formato es incorrecto.",
'csv_import_partially_failed' => "Hubo {0} falla(s) en la importación de producto(s) en la(s) línea(s): {1}. Ninguna fila ha sido importada.",
'csv_import_success' => "Se importaron los articulos exitosamente.",
'current_quantity' => "Cantidad Actual",
'default_pack_name' => "Cada",
'description' => "Descripción",
'details_count' => "Detalles de Cuenta de Inventario",
'do_nothing' => "No Hacer Nada",
'edit' => "Editar",
'edit_fields_you_want_to_update' => "Edita los campos para actualizar en los artículos seleccionados.",
'edit_multiple_items' => "Editando Artículos Múltiples",
'empty_upc_items' => "Items con UPC Vacio",
'error_adding_updating' => "Error agregando/actualizando artículo",
'error_updating_multiple' => "Error actualizando artículos",
'generate_barcodes' => "Generar Códigos de Barras",
'hsn_code' => "Nomenclatura de Sistemas Harmonizados",
'image' => "Avatar",
'import_items_csv' => "Importar Artículos desde CSV",
'info_provided_by' => "Info provista por",
'inventory' => "Inventario",
'inventory_CSV_import_quantity' => "Catidad Importada desde CSV",
'inventory_comments' => "Comentarios",
'inventory_data_tracking' => "Seguimiento de datos de inventario",
'inventory_date' => "Fecha",
'inventory_employee' => "Empleado",
'inventory_in_out_quantity' => "Cantidad E/S",
'inventory_remarks' => "Observaciones",
'is_deleted' => "Eliminado",
'is_printed' => "No impreso",
'is_serialized' => "El Artículo tiene Número de Serie",
'item' => "Artículo",
'item_id' => "Id del Artículo",
'item_number' => "UPC/EAN/ISBN",
'item_number_duplicate' => "El número de artículo ya esta presente en la base de datos.",
'kit' => "Kits de artículos",
'location' => "Ubicación",
'low_inventory_items' => "Artículos de Inventario Escaso",
'low_sell_item' => "Producto de bajas ventas",
'manually_editing_of_quantity' => "Edición Manual de Cantidad",
'markup' => "El marcado de elementos está habilitado",
'name' => "Nombre Artículo",
'name_required' => "Nombre de Artículo es requerido.",
'new' => "Nuevo Artículo",
'no_description_items' => "Artículos sin Descripción",
'no_items_to_display' => "Sin datos que mostrar.",
'none' => "Ninguno",
'none_selected' => "No has seleccionado artículos para editar",
'nonstock' => "Sin stock",
'number_information' => "Número del Artículo",
'number_required' => "UPC/EAN/ISBN es un campo requerido.",
'one_or_multiple' => "articulo(s)",
'pack_name' => "Nombre del Paquete",
'qty_per_pack' => "Cantidad por Paquete",
'quantity' => "Cantidad en Stock",
'quantity_number' => "Cantidad debe ser número.",
'quantity_required' => "Cantidad es requerido.",
'receiving_quantity' => "Cantidad Recibida",
'remove_image' => "Quitar Imagen",
'reorder_level' => "Cantidad Mínima",
'reorder_level_number' => "Cantidad Mínima debe ser número.",
'reorder_level_required' => "Cantidad Mínima es requerido.",
'retrive_item_info' => "Obtener Información de Artículo",
'sales_tax_1' => "Impuesto de Ventas 1",
'sales_tax_2' => "Impuesto de Ventas 2",
'search_attributes' => "Atributos de Búsqueda",
'select_image' => "Seleccionar Imagen",
'serialized_items' => "Artículos Serializados",
'standard' => "Estándar",
'stock' => "Existencia",
'stock_location' => "Ubicación de Inventario",
'stock_type' => "Tipo de stock",
'successful_adding' => "Has agregado satisfactoriamente un artículo",
'successful_bulk_edit' => "Has actualizado satisfactoriamente los artículos seleccionados",
'successful_deleted' => "Has borrado satisfactoriamente",
'successful_updating' => "Has actualizando satisfactoriamente un artículo",
'supplier' => "Proveedor",
'tax_1' => "Impuesto 1",
'tax_2' => "Impuesto 2",
'tax_3' => "Impuestos 3",
'tax_category' => "Categoría del Impuesto",
'tax_percent' => "Porcentaje de Impuesto",
'tax_percent_number' => "Impuesto porcentaje debe ser numerico",
'tax_percent_required' => "Porcentaje de Impuesto es requerido.",
'tax_percents' => "Porcentaje de Impuesto(s)",
'temp' => "Temporal",
'type' => "Tipo de ítem",
'unit_price' => "Precio de Venta",
'unit_price_number' => "Precio de Venta debe ser número.",
'unit_price_required' => "Precio de Venta es requerido.",
'upc_database' => "Base de datos UPC",
'update' => "Actualizar Artículo",
'use_inventory_menu' => "Usar Menú de Inventario",
];

View File

@@ -1,15 +1,16 @@
<?php
return [
"gcaptcha" => "No soy un robot.",
"go" => "Ir",
"invalid_gcaptcha" => "Por favor verifique si usted no es un robot.",
"invalid_installation" => "La instalación no es correcta, comprueba el fichero php.ini.",
"invalid_username_and_password" => "Usuario y/o Contraseña no validos.",
"login" => "Iniciar Sesión",
"logout" => "Cerrar sesión",
"migration_needed" => "La migración de la base de datos a {0} se iniciará después del inicio de sesión.",
"password" => "Contraseña",
"required_username" => "",
"username" => "Usuario",
"welcome" => "Bienvenido a {0}!",
'gcaptcha' => "No soy un robot.",
'go' => "Ir",
'invalid_gcaptcha' => "Por favor verifique si usted no es un robot.",
'invalid_installation' => "La instalación no es correcta, comprueba el fichero php.ini.",
'invalid_username_and_password' => "Usuario y/o Contraseña no validos.",
'login' => "Iniciar Sesión",
'logout' => "Cerrar sesión",
'migration_needed' => "La migración de la base de datos a {0} se iniciará después del inicio de sesión.",
'password' => "Contraseña",
'required_username' => "El campo de nombre de usuario es obligatorio.",
'username' => "Usuario",
'welcome' => "Bienvenido a {0}!",
];

View File

@@ -1,224 +1,226 @@
<?php
return [
"customers_available_points" => "Puntos Disponibles",
"rewards_package" => "Paquete de recompensas",
"rewards_remaining_balance" => "El remanente de puntos es ",
"account_number" => "Cuenta #",
"add_payment" => "Agregar Pago",
"amount_due" => "Monto Adeudado",
"amount_tendered" => "Cantidad Recibida",
"authorized_signature" => "Firma Autorizada",
"cancel_sale" => "Cancelar Venta",
"cash" => "Efectivo",
"cash_1" => "1",
"cash_2" => "5",
"cash_3" => "10",
"cash_4" => "20",
"cash_adjustment" => "Ajuste de Efectivo",
"cash_deposit" => "Deposito Efectivo",
"cash_filter" => "Efectivo",
"change_due" => "Cambio",
"change_price" => "Cambiar el precio de venta",
"check" => "Cheque",
"check_balance" => "Balance de Cheque",
"check_filter" => "Cheque",
"close" => "Cerrar Lista",
"comment" => "Comentario",
"comments" => "Comentarios",
"company_name" => "Nombre de Comañía",
"complete" => "Completa",
"complete_sale" => "Completar Venta",
"confirm_cancel_sale" => "¿Seguro quiere cancelar esta venta? Todos los artículos serán eliminados.",
"confirm_delete" => "¿Seguro quiere borrar las ventas seleccionadas?",
"confirm_restore" => "Esta seguro de querer restaurar la(s) venta(s) seleccionada(s)?",
"credit" => "Tarjeta de Crédito",
"credit_deposit" => "Deposito Credito",
"credit_filter" => "Tarjeta de Crédito",
"current_table" => "Tabla Actual",
"customer" => "cliente",
"customer_address" => "Direccion",
"customer_discount" => "Descuento",
"customer_email" => "Email",
"customer_location" => "Ubicacion",
"customer_mailchimp_status" => "Estado de Mailchimp",
"customer_optional" => "(Obligatorio para Pagos Vencidos)",
"customer_required" => "(Requerido)",
"customer_total" => "Total",
"customer_total_spent" => "Total Gastado",
"daily_sales" => "Sus Ventas Diarias",
"date" => "Fecha",
"date_range" => "Rango de Fecha",
"date_required" => "Una fecha correcta debe ser ingresada.",
"date_type" => "Campo de Fecha es requerido.",
"debit" => "Tarjeta de Débito",
"debit_filter" => "Tarjeta de Débito",
"delete" => "Permitir borrar",
"delete_confirmation" => "¿Seguro quiere borrar esta venta? Esta acción no se puede deshacer.",
"delete_entire_sale" => "Borrar la venta completa",
"delete_successful" => "Venta borrada correctamente.",
"delete_unsuccessful" => "Venta no borrada, fallida.",
"description_abbrv" => "Descrp.",
"discard" => "Descartar",
"discard_quote" => "Descartar",
"discount" => "Descuento",
"discount_included" => "% Descuento",
"discount_short" => "%",
"due" => "Adeudado",
"due_filter" => "Adeudado",
"edit" => "Editar",
"edit_item" => "Editar Artículo",
"edit_sale" => "Editar Venta",
"email_receipt" => "Enviar Ticket",
"employee" => "Empleado",
"entry" => "Entrada",
"error_editing_item" => "Error editando artículo",
"find_or_scan_item" => "Encontrar/Escanear Artículo",
"find_or_scan_item_or_receipt" => "Encontrar/Escanear Artículo o Entrada",
"giftcard" => "Tarjeta de Regalo",
"giftcard_balance" => "Balance de Tarjeta de Regalo",
"giftcard_filter" => "Tarjeta de Regalo",
"giftcard_number" => "Número de Tarjeta de Regalo",
"group_by_category" => "Grupo por Categoría",
"group_by_type" => "Grupo por Tipo",
"hsn" => "HSN",
"id" => "ID de Venta",
"include_prices" => "Incluir precios?",
"invoice" => "Factura de venta",
"invoice_confirm" => "Esta factura sera enviada a",
"invoice_enable" => "Crear factura",
"invoice_filter" => "Facturas",
"invoice_no_email" => "Este cliente no tiene un email válido.",
"invoice_number" => "Factura #",
"invoice_number_duplicate" => "Por favor ingrese un número de factura único.",
"invoice_sent" => "Factura enviada a",
"invoice_total" => "Total Facturado",
"invoice_type_custom_invoice" => "Factura Personalizada",
"invoice_type_custom_tax_invoice" => "Factura de Impuesto personalizada",
"invoice_type_invoice" => "Factura",
"invoice_type_tax_invoice" => "Factura de Impuestos",
"invoice_unsent" => "Fallo el envio de la factura a",
"invoice_update" => "Actualizar",
"item_insufficient_of_stock" => "Cantidad insuficiente en existencia.",
"item_name" => "Nombre del Artículo",
"item_number" => "UPC/EAN/ISBN",
"item_out_of_stock" => "El artículo está agotado.",
"key_browser" => "Atajos Útiles",
"key_cancel" => "Cancelar actual Cotización/Factura/Venta",
"key_customer_search" => "Búsqueda de Clientes",
"key_finish_quote" => "Finish Quote/Invoice witdout payment",
"key_finish_sale" => "Agregar Pago y Completar Factura/Venta",
"key_full" => "Abrir en Pantalla Completa",
"key_function" => "Function",
"key_help" => "Atajos",
"key_help_modal" => "Abrir Ventana de Atajos",
"key_in" => "Acercar",
"key_item_search" => "Buscar Artículo",
"key_out" => "Alejar",
"key_payment" => "Agregar Pago",
"key_print" => "Imprimir Página Actual",
"key_restore" => "Restaurar Pantalla/Zoom Original",
"key_search" => "Buscar Tablas de Reportes",
"key_suspend" => "Suspender Venta Actual",
"key_suspended" => "Mostrar Ventas Suspendidas",
"key_system" => "Atajos del Sistema",
"key_tendered" => "Editar Importe Licitado",
"key_title" => "Atajas de Teclado para Ventas",
"mc" => "Tarjeta Master Card",
"mode" => "Modo",
"must_enter_numeric" => "Cantidad Recibida debe ser número.",
"must_enter_numeric_giftcard" => "Número de Tarjeta de Regalo debe ser número.",
"new_customer" => "Cliente Nuevo",
"new_item" => "Artículo Nuevo",
"no_description" => "Ninguno",
"no_filter" => "Todos",
"no_items_in_cart" => "No hay artículos en el carrito.",
"no_sales_to_display" => "No hay ventas que mostrar.",
"none_selected" => "No has seleccionado venta para borrar.",
"nontaxed_ind" => " Ventas no gravadas ",
"not_authorized" => "Esta accion no esta autorizada.",
"one_or_multiple" => "venta(s)",
"payment" => "Tipo de Pago",
"payment_amount" => "Cantidad",
"payment_not_cover_total" => "La Cantidad Recibida no cubre el pago total.",
"payment_type" => "Tipo",
"payments" => "Pagos",
"payments_total" => "Pagado",
"price" => "Precio",
"print_after_sale" => "Imprimir recibo después de una venta",
"quantity" => "Cantidad",
"quantity_less_than_reorder_level" => "Advertencia. La cantidad deseada es insuficiente.",
"quantity_less_than_zero" => "Advertencia. La cantidad deseada no tiene stock suficiente. Puedes procesar la venta pero revisa tu inventario.",
"quantity_of_items" => "Cantidad de {0} articulos",
"quote" => "Cotizar",
"quote_number" => "Número de Presupuesto",
"quote_number_duplicate" => "Cotizacion debe ser unico.",
"quote_sent" => "Cotizacion enviada a",
"quote_unsent" => "Cotización no se pudo enviar",
"receipt" => "Recibo de Venta",
"receipt_no_email" => "Este cliente no tiene una dirección de correo valido.",
"receipt_number" => "Venta #",
"receipt_sent" => "Recibo enviada a",
"receipt_unsent" => "Fallo el envio del recibo a",
"refund" => "Tipo de reembolso",
"register" => "Registro de Ventas",
"remove_customer" => "Borrar Cliente",
"remove_discount" => "Descuentos",
"return" => "Devolución",
"rewards" => "Puntos",
"rewards_balance" => "Balance de puntos",
"sale" => "Venta",
"sale_by_invoice" => "Venta por factura",
"sale_for_customer" => "Cliente:",
"sale_time" => "Hora",
"sales_tax" => "Impuesto",
"sales_total" => "Ventas Totales",
"select_customer" => "Seleccionar Cliente",
"send_invoice" => "Enviar Factura",
"send_quote" => "Enviar Cotización",
"send_receipt" => "Enviar Recibo",
"send_work_order" => "Enviar Orden de Trabajo",
"serial" => "Serie",
"service_charge" => "Costo de Servicio",
"show_due" => "Mostrar los Importes Adeudados",
"show_invoice" => "Factura",
"show_receipt" => "Recibo",
"start_typing_customer_name" => "Empieza a escribir el cliente...",
"start_typing_item_name" => "Empieza a escribir o escanea el código de barras...",
"stock" => "Inventario",
"stock_location" => "Localizacion",
"sub_total" => "SubTotal",
"successfully_deleted" => "Borrada satisfactoriamente",
"successfully_restored" => "Restaurado satisfactoriamente",
"successfully_suspended_sale" => "La venta ha sido suspendida.",
"successfully_updated" => "La venta ha sido actualizada.",
"suspend_sale" => "Suspender",
"suspended_doc_id" => "Documento",
"suspended_sale_id" => "Id",
"suspended_sales" => "Suspendidas",
"table" => "Datos",
"takings" => "Ventas Diarias",
"tax" => "Imp",
"tax_id" => "Identificador del Impuesto",
"tax_invoice" => "Impuesto de la Factura",
"tax_percent" => "% de Imp",
"taxed_ind" => "Ventas gravadas",
"total" => "Total",
"total_tax_exclusive" => "Sin impuesto",
"transaction_failed" => "La transacción de venta falló.",
"unable_to_add_item" => "Error al agregar artículo a la venta",
"unsuccessfully_deleted" => "Ha fallado la eliminación de la Venta.",
"unsuccessfully_restored" => "Restaurar Venta fallida.",
"unsuccessfully_suspended_sale" => "Venta suspendida satisfactoriamente.",
"unsuccessfully_updated" => "Ha fallado la actualización de la venta.",
"unsuspend" => "Retomar",
"unsuspend_and_delete" => "Retomar y Borrar",
"update" => "Editar",
"upi" => "PIN UPI",
"visa" => "Tarjeta Visa",
"wholesale" => "Precio al por mayor",
"work_order" => "Orden trabajo",
"work_order_number" => "Numero Orden Trabajo",
"work_order_number_duplicate" => "El numero de orden de trabajo debe ser unico.",
"work_order_sent" => "Orden de trabajo enviada a",
"work_order_unsent" => "Orden de trabajo fallida al enviar a",
'customers_available_points' => "Puntos Disponibles",
'rewards_package' => "Paquete de recompensas",
'rewards_remaining_balance' => "El remanente de puntos es ",
'account_number' => "Cuenta #",
'add_payment' => "Agregar Pago",
'amount_due' => "Monto Adeudado",
'amount_tendered' => "Cantidad Recibida",
'authorized_signature' => "Firma Autorizada",
'cancel_sale' => "Cancelar Venta",
'cash' => "Efectivo",
'cash_1' => "1",
'cash_2' => "5",
'cash_3' => "10",
'cash_4' => "20",
'cash_adjustment' => "Ajuste de Efectivo",
'cash_deposit' => "Deposito Efectivo",
'cash_filter' => "Efectivo",
'change_due' => "Cambio",
'change_price' => "Cambiar el precio de venta",
'check' => "Cheque",
'check_balance' => "Balance de Cheque",
'check_filter' => "Cheque",
'close' => "Cerrar Lista",
'comment' => "Comentario",
'comments' => "Comentarios",
'company_name' => "Nombre de Comañía",
'complete' => "Completa",
'complete_sale' => "Completar Venta",
'confirm_cancel_sale' => "¿Seguro quiere cancelar esta venta? Todos los artículos serán eliminados.",
'confirm_delete' => "¿Seguro quiere borrar las ventas seleccionadas?",
'confirm_restore' => "Esta seguro de querer restaurar la(s) venta(s) seleccionada(s)?",
'credit' => "Tarjeta de Crédito",
'credit_deposit' => "Deposito Credito",
'credit_filter' => "Tarjeta de Crédito",
'current_table' => "Tabla Actual",
'customer' => "cliente",
'customer_address' => "Direccion",
'customer_discount' => "Descuento",
'customer_email' => "Email",
'customer_location' => "Ubicacion",
'customer_mailchimp_status' => "Estado de Mailchimp",
'customer_optional' => "(Obligatorio para Pagos Vencidos)",
'customer_required' => "(Requerido)",
'customer_total' => "Total",
'customer_total_spent' => "Total Gastado",
'daily_sales' => "Sus Ventas Diarias",
'date' => "Fecha",
'date_range' => "Rango de Fecha",
'date_required' => "Una fecha correcta debe ser ingresada.",
'date_type' => "Campo de Fecha es requerido.",
'debit' => "Tarjeta de Débito",
'debit_filter' => "Tarjeta de Débito",
'delete' => "Permitir borrar",
'delete_confirmation' => "¿Seguro quiere borrar esta venta? Esta acción no se puede deshacer.",
'delete_entire_sale' => "Borrar la venta completa",
'delete_successful' => "Venta borrada correctamente.",
'delete_unsuccessful' => "Venta no borrada, fallida.",
'description_abbrv' => "Descrp.",
'discard' => "Descartar",
'discard_quote' => "Descartar",
'discount' => "Descuento",
'discount_included' => "% Descuento",
'discount_short' => "%",
'due' => "Adeudado",
'due_filter' => "Adeudado",
'edit' => "Editar",
'edit_item' => "Editar Artículo",
'edit_sale' => "Editar Venta",
'email_receipt' => "Enviar Ticket",
'employee' => "Empleado",
'entry' => "Entrada",
'error_editing_item' => "Error editando artículo",
'find_or_scan_item' => "Encontrar/Escanear Artículo",
'find_or_scan_item_or_receipt' => "Encontrar/Escanear Artículo o Entrada",
'giftcard' => "Tarjeta de Regalo",
'giftcard_balance' => "Balance de Tarjeta de Regalo",
'giftcard_filter' => "Tarjeta de Regalo",
'giftcard_number' => "Número de Tarjeta de Regalo",
'group_by_category' => "Grupo por Categoría",
'group_by_type' => "Grupo por Tipo",
'hsn' => "HSN",
'id' => "ID de Venta",
'include_prices' => "Incluir precios?",
'invoice' => "Factura de venta",
'invoice_confirm' => "Esta factura sera enviada a",
'invoice_enable' => "Número de Factura",
'invoice_filter' => "Facturas",
'invoice_no_email' => "Este cliente no tiene un email válido.",
'invoice_number' => "Factura #",
'invoice_number_duplicate' => "Por favor ingrese un número de factura único.",
'invoice_sent' => "Factura enviada a",
'invoice_total' => "Total Facturado",
'invoice_type_custom_invoice' => "Factura Personalizada",
'invoice_type_custom_tax_invoice' => "Factura de Impuesto personalizada",
'invoice_type_invoice' => "Factura",
'invoice_type_tax_invoice' => "Factura de Impuestos",
'invoice_unsent' => "Fallo el envio de la factura a",
'invoice_update' => "Actualizar",
'item_insufficient_of_stock' => "Cantidad insuficiente en existencia.",
'item_name' => "Nombre del Artículo",
'item_number' => "UPC/EAN/ISBN",
'item_out_of_stock' => "El artículo está agotado.",
'key_browser' => "Atajos Útiles",
'key_cancel' => "Cancelar actual Cotización/Factura/Venta",
'key_customer_search' => "Búsqueda de Clientes",
'key_finish_quote' => "Finish Quote/Invoice witdout payment",
'key_finish_sale' => "Agregar Pago y Completar Factura/Venta",
'key_full' => "Abrir en Pantalla Completa",
'key_function' => "Function",
'key_help' => "Atajos",
'key_help_modal' => "Abrir Ventana de Atajos",
'key_in' => "Acercar",
'key_item_search' => "Buscar Artículo",
'key_out' => "Alejar",
'key_payment' => "Agregar Pago",
'key_print' => "Imprimir Página Actual",
'key_restore' => "Restaurar Pantalla/Zoom Original",
'key_search' => "Buscar Tablas de Reportes",
'key_suspend' => "Suspender Venta Actual",
'key_suspended' => "Mostrar Ventas Suspendidas",
'key_system' => "Atajos del Sistema",
'key_tendered' => "Editar Importe Licitado",
'key_title' => "Atajas de Teclado para Ventas",
'mc' => "Tarjeta Master Card",
'mode' => "Modo",
'must_enter_numeric' => "Cantidad Recibida debe ser número.",
'must_enter_numeric_giftcard' => "Número de Tarjeta de Regalo debe ser número.",
'new_customer' => "Cliente Nuevo",
'new_item' => "Artículo Nuevo",
'no_description' => "Ninguno",
'no_filter' => "Todos",
'no_items_in_cart' => "No hay artículos en el carrito.",
'no_sales_to_display' => "No hay ventas que mostrar.",
'none_selected' => "No has seleccionado venta para borrar.",
'nontaxed_ind' => " Ventas no gravadas ",
'not_authorized' => "Esta accion no esta autorizada.",
'one_or_multiple' => "venta(s)",
'payment' => "Tipo de Pago",
'payment_amount' => "Cantidad",
'payment_not_cover_total' => "La Cantidad Recibida no cubre el pago total.",
'payment_type' => "Tipo",
'payments' => "Pagos",
'payments_total' => "Pagado",
'price' => "Precio",
'print_after_sale' => "Imprimir recibo después de una venta",
'quantity' => "Cantidad",
'quantity_less_than_reorder_level' => "Advertencia. La cantidad deseada es insuficiente.",
'quantity_less_than_zero' => "Advertencia. La cantidad deseada no tiene stock suficiente. Puedes procesar la venta pero revisa tu inventario.",
'quantity_of_items' => "Cantidad de {0} articulos",
'quote' => "Cotizar",
'quote_number' => "Número de Presupuesto",
'quote_number_duplicate' => "Cotizacion debe ser unico.",
'quote_sent' => "Cotizacion enviada a",
'quote_unsent' => "Cotización no se pudo enviar",
'receipt' => "Recibo de Venta",
'receipt_no_email' => "Este cliente no tiene una dirección de correo valido.",
'receipt_number' => "Venta #",
'receipt_sent' => "Recibo enviada a",
'receipt_unsent' => "Fallo el envio del recibo a",
'refund' => "Tipo de reembolso",
'register' => "Registro de Ventas",
'remove_customer' => "Borrar Cliente",
'remove_discount' => "Descuentos",
'return' => "Devolución",
'rewards' => "Puntos",
'rewards_balance' => "Balance de puntos",
'sale' => "Venta",
'sale_by_invoice' => "Venta por factura",
'sale_for_customer' => "Cliente:",
'sale_time' => "Hora",
'sales_tax' => "Impuesto",
'sales_total' => "Ventas Totales",
'select_customer' => "Seleccionar Cliente",
'send_invoice' => "Enviar Factura",
'send_quote' => "Enviar Cotización",
'send_receipt' => "Enviar Recibo",
'send_work_order' => "Enviar Orden de Trabajo",
'serial' => "Serie",
'service_charge' => "Costo de Servicio",
'show_due' => "Mostrar los Importes Adeudados",
'show_invoice' => "Factura",
'show_receipt' => "Recibo",
'start_typing_customer_name' => "Empieza a escribir el cliente...",
'start_typing_item_name' => "Empieza a escribir o escanea el código de barras...",
'stock' => "Inventario",
'stock_location' => "Localizacion",
'sub_total' => "SubTotal",
'successfully_deleted' => "Borrada satisfactoriamente",
'successfully_restored' => "Restaurado satisfactoriamente",
'successfully_suspended_sale' => "La venta ha sido suspendida.",
'successfully_updated' => "La venta ha sido actualizada.",
'suspend_sale' => "Suspender",
'suspended_doc_id' => "Documento",
'suspended_sale_id' => "Id",
'suspended_sales' => "Suspendidas",
'table' => "Datos",
'takings' => "Ventas Diarias",
'tax' => "Imp",
'tax_id' => "Identificador del Impuesto",
'tax_invoice' => "Impuesto de la Factura",
'tax_percent' => "% de Imp",
'taxed_ind' => "Ventas gravadas",
'total' => "Total",
'total_tax_exclusive' => "Sin impuesto",
'transaction_failed' => "La transacción de venta falló.",
'unable_to_add_item' => "Error al agregar artículo a la venta",
'unsuccessfully_deleted' => "Ha fallado la eliminación de la Venta.",
'unsuccessfully_restored' => "Restaurar Venta fallida.",
'unsuccessfully_suspended_sale' => "Venta suspendida satisfactoriamente.",
'unsuccessfully_updated' => "Ha fallado la actualización de la venta.",
'unsuspend' => "Retomar",
'unsuspend_and_delete' => "Retomar y Borrar",
'update' => "Editar",
'upi' => "PIN UPI",
'visa' => "Tarjeta Visa",
'wholesale' => "Precio al por mayor",
'work_order' => "Orden trabajo",
'work_order_number' => "Numero Orden Trabajo",
'work_order_number_duplicate' => "El numero de orden de trabajo debe ser unico.",
'work_order_sent' => "Orden de trabajo enviada a",
'work_order_unsent' => "Orden de trabajo fallida al enviar a",
'selected_customer' => "Cliente seleccionado",
];

View File

@@ -1,88 +1,89 @@
<?php
return [
"address_1" => "Dirección 1",
"address_2" => "Dirección 2",
"admin" => "",
"city" => "Ciudad",
"clerk" => "",
"close" => "Cerrar",
"color" => "",
"comments" => "Comentarios",
"common" => "común",
"confirm_search" => "Ha seleccionado una o más filas, éstas no estarán seleccionadas después de su búsqueda. ¿Está seguro(a) de enviar su búsqueda?",
"copyrights" => "© 2010 - {0}",
"correct_errors" => "Por favor verifique que no hay errores antes de guardar",
"country" => "País",
"dashboard" => "",
"date" => "Fecha",
"delete" => "Eliminar",
"det" => "detalles",
"download_import_template" => "Descargar Plantilla para Importar desde CSV (CSV)",
"edit" => "editar",
"email" => "Correo-e",
"email_invalid_format" => "La dirección de correo-e no tiene el formato correcto.",
"export_csv" => "Exportar a CSV",
"export_csv_no" => "No",
"export_csv_yes" => "Si",
"fields_required_message" => "Los campos en rojo son requeridos",
"fields_required_message_unique" => "",
"first_name" => "Nombre",
"first_name_required" => "El nombre es un campo requerido.",
"first_page" => "Primero",
"gender" => "Género",
"gender_female" => "M",
"gender_male" => "H",
"gender_undefined" => "",
"icon" => "Ícono",
"id" => "Id",
"import" => "Importar",
"import_change_file" => "Cambiar",
"import_csv" => "Importar de CSV",
"import_full_path" => "Se requiere la ruta completa del archivo de CSV",
"import_remove_file" => "Eliminar",
"import_select_file" => "Seleccionar archivo",
"inv" => "Inv",
"last_name" => "Apellido(s)",
"last_name_required" => "El/Los Apellido(s) es un campo requerido.",
"last_page" => "Último",
"learn_about_project" => "para conocer la última información sobre el proyecto.",
"list_of" => "Lista de",
"logo" => "Logo",
"logo_mark" => "Marca",
"logout" => "Cerrar Sesión",
"manager" => "",
"migration_needed" => "La migración de la base de datos a {0} comenzará luego de acceder.",
"new" => "Nuevo(a)",
"no" => "",
"no_persons_to_display" => "No existen personas para mostrar.",
"none_selected_text" => "[Seleccionar]",
"or" => "O",
"people" => "",
"phone_number" => "Número Tel",
"phone_number_required" => "",
"please_visit_my" => "Por favor visite",
"position" => "",
"powered_by" => "Ejecutando sobre",
"price" => "Precio",
"print" => "Imprimir",
"remove" => "Elliminar",
"required" => "Requerido",
"restore" => "Restaurar",
"return_policy" => "Política de Devoluciones",
"search" => "Buscar",
"search_options" => "Opciones de búsqueda",
"searched_for" => "Buscado por",
"software_short" => "OSPOS",
"software_title" => "Punto de Venta de Código Abierto (Open Source Point of Sale)",
"state" => "Estado",
"submit" => "Enviar",
"total_spent" => "Total Gastado",
"unknown" => "Desconocido",
"view_recent_sales" => "Ver Ventas Recientes",
"website" => "sitio web",
"welcome" => "Bienvenido(a)",
"welcome_message" => "Bienvenido(a) a OSPOS, haga clic en un módulo para comenzar.",
"yes" => "",
"you_are_using_ospos" => "Está utilizando la versión de Código Abierto de Punto de Venta",
"zip" => "CP",
'address_1' => "Dirección 1",
'address_2' => "Dirección 2",
'admin' => "",
'city' => "Ciudad",
'clerk' => "",
'close' => "Cerrar",
'color' => "",
'comments' => "Comentarios",
'common' => "común",
'confirm_search' => "Ha seleccionado una o más filas, éstas no estarán seleccionadas después de su búsqueda. ¿Está seguro(a) de enviar su búsqueda?",
'copyrights' => "© 2010 - {0}",
'correct_errors' => "Por favor verifique que no hay errores antes de guardar",
'country' => "País",
'dashboard' => "",
'date' => "Fecha",
'delete' => "Eliminar",
'det' => "detalles",
'download_import_template' => "Descargar Plantilla para Importar desde CSV (CSV)",
'edit' => "editar",
'email' => "Correo-e",
'email_invalid_format' => "La dirección de correo-e no tiene el formato correcto.",
'export_csv' => "Exportar a CSV",
'export_csv_no' => "No",
'export_csv_yes' => "Si",
'fields_required_message' => "Los campos en rojo son requeridos",
'fields_required_message_unique' => "",
'first_name' => "Nombre",
'first_name_required' => "El nombre es un campo requerido.",
'first_page' => "Primero",
'gender' => "Género",
'gender_female' => "M",
'gender_male' => "H",
'gender_undefined' => "",
'icon' => "Ícono",
'id' => "Id",
'import' => "Importar",
'import_change_file' => "Cambiar",
'import_csv' => "Importar de CSV",
'import_full_path' => "Se requiere la ruta completa del archivo de CSV",
'import_remove_file' => "Eliminar",
'import_select_file' => "Seleccionar archivo",
'inv' => "Inv",
'last_name' => "Apellido(s)",
'last_name_required' => "El/Los Apellido(s) es un campo requerido.",
'last_page' => "Último",
'learn_about_project' => "para conocer la última información sobre el proyecto.",
'list_of' => "Lista de",
'logo' => "Logo",
'logo_mark' => "Marca",
'logout' => "Cerrar Sesión",
'manager' => "",
'migration_needed' => "La migración de la base de datos a {0} comenzará luego de acceder.",
'new' => "Nuevo(a)",
'no' => "",
'no_persons_to_display' => "No existen personas para mostrar.",
'none_selected_text' => "[Seleccionar]",
'or' => "O",
'people' => "",
'phone_number' => "Número Tel",
'phone_number_required' => "",
'please_visit_my' => "Por favor visite",
'position' => "",
'powered_by' => "Ejecutando sobre",
'price' => "Precio",
'print' => "Imprimir",
'remove' => "Elliminar",
'required' => "Requerido",
'restore' => "Restaurar",
'return_policy' => "Política de Devoluciones",
'search' => "Buscar",
'search_options' => "Opciones de búsqueda",
'searched_for' => "Buscado por",
'software_short' => "OSPOS",
'software_title' => "Punto de Venta de Código Abierto (Open Source Point of Sale)",
'state' => "Estado",
'submit' => "Enviar",
'total_spent' => "Total Gastado",
'unknown' => "Desconocido",
'view_recent_sales' => "Ver Ventas Recientes",
'website' => "sitio web",
'welcome' => "Bienvenido(a)",
'welcome_message' => "Bienvenido(a) a OSPOS, haga clic en un módulo para comenzar.",
'yes' => "Si",
'you_are_using_ospos' => "Está utilizando la versión de Código Abierto de Punto de Venta",
'zip' => "CP",
];

View File

@@ -1,330 +1,331 @@
<?php
return [
"address" => "Dirección de la Empresa",
"address_required" => "La Dirección de la Empresa es un campo requerido.",
"all_set" => "Todos los permisos han sido establecidos correctamente!",
"allow_duplicate_barcodes" => "Permitir Códigos de Barra Duplicados",
"apostrophe" => "apostrofé",
"backup_button" => "Respaldar",
"backup_database" => "Respaldar Base de Datos",
"barcode" => "Código de Barras",
"barcode_company" => "Nombre de la Empresa",
"barcode_configuration" => "Configuración del Código de Barras",
"barcode_content" => "Contenido del Código de Barras",
"barcode_first_row" => "Fila 1",
"barcode_font" => "Tipo de Letra",
"barcode_formats" => "Formatos de Entrada",
"barcode_generate_if_empty" => "Generar si está vacío.",
"barcode_height" => "Alto (px)",
"barcode_id" => "Id Artículo/Nombre",
"barcode_info" => "Información de Configuración para Códigos de Barras",
"barcode_layout" => "Formato Código de Barras",
"barcode_name" => "Nombre",
"barcode_number" => "Código de Barras",
"barcode_number_in_row" => "Número en renglón",
"barcode_page_cellspacing" => "Mostrar espaciado de celda de la página.",
"barcode_page_width" => "Ancho de página",
"barcode_price" => "Precio",
"barcode_second_row" => "Renglón 2",
"barcode_third_row" => "Renglón 3",
"barcode_tooltip" => "Advertencia: Esta función puede hacer que se importen o creen elementos duplicados. No lo use si no desea códigos de barras duplicados.",
"barcode_type" => "Tipo de código de barras",
"barcode_width" => "Ancho (px)",
"bottom" => "Final",
"cash_button" => "",
"cash_button_1" => "",
"cash_button_2" => "",
"cash_button_3" => "",
"cash_button_4" => "",
"cash_button_5" => "",
"cash_button_6" => "",
"cash_decimals" => "decimales en efectivo",
"cash_decimals_tooltip" => "Si los decimales son iguales entonces no tendrá redondeo.",
"cash_rounding" => "Redondeo de efectivo",
"category_dropdown" => "Mostrar categoría como un menú desplegable",
"center" => "Centro",
"change_apperance_tooltip" => "",
"comma" => "coma",
"company" => "Nombre de la Compañía",
"company_avatar" => "",
"company_change_image" => "Cambiar Imagen",
"company_logo" => "Logo de la Compañía",
"company_remove_image" => "Eliminar Imagen",
"company_required" => "Nombre de la compañia es un campo requerido",
"company_select_image" => "Seleccionar Imagen",
"company_website_url" => "Website de la compañía no es una URL valida (http://...).",
"country_codes" => "Códigos de Países",
"country_codes_tooltip" => "Lista separada por comas de códigos de países para la búsqueda de direcciones nominatim.",
"currency_code" => "código de moneda",
"currency_decimals" => "Decimales de moneda",
"currency_symbol" => "Símbolo de moneda",
"current_employee_only" => "",
"customer_reward" => "Recompensa",
"customer_reward_duplicate" => "Recompensa debe ser única.",
"customer_reward_enable" => "Habilita recompensas para los clientes",
"customer_reward_invalid_chars" => "Recompensa no debe tener '_'",
"customer_reward_required" => "Recompensa es un campo requerido",
"customer_sales_tax_support" => "",
"date_or_time_format" => "Filtro Fecha y Hora",
"datetimeformat" => "Formato de Fecha y Hora",
"decimal_point" => "Punto Decimal",
"default_barcode_font_size_number" => "El tamaño de fuente del código de barras predeterminado debe ser un número.",
"default_barcode_font_size_required" => "El tamaño de fuente predeterminado del código de barras es un campo obligatorio.",
"default_barcode_height_number" => "La altura predeterminada del código de barras debe ser un número.",
"default_barcode_height_required" => "La altura predeterminada del código de barras es un campo obligatorio.",
"default_barcode_num_in_row_number" => "El número de código de barras predeterminado en la fila debe ser un número.",
"default_barcode_num_in_row_required" => "El número de código de barras predeterminado en la fila es un campo obligatorio.",
"default_barcode_page_cellspacing_number" => "El espacio entre celdas predeterminado de la página de código de barras debe ser un número.",
"default_barcode_page_cellspacing_required" => "El espaciado entre celdas de página de código de barras predeterminado es un campo obligatorio.",
"default_barcode_page_width_number" => "La anchura del código de barras debe ser un número.",
"default_barcode_page_width_required" => "El ancho predeterminado del código de barras es un campo obligatorio.",
"default_barcode_width_number" => "El Ancho del código de barra debe ser un número.",
"default_barcode_width_required" => "El ancho predeterminado del código de barras es un campo obligatorio.",
"default_item_columns" => "Número de artículos por columna predeterminado",
"default_origin_tax_code" => "Código de Impuesto predeterminado",
"default_receivings_discount" => "Descuentos de recibos predeterminados",
"default_receivings_discount_number" => "Descuentos de recibos deben ser números.",
"default_receivings_discount_required" => "Descuentos de recibos es un campo requerido.",
"default_sales_discount" => "% Descuentos en ventas",
"default_sales_discount_number" => "El descuento predeterminado debe ser un número.",
"default_sales_discount_required" => "Descuento de Ventas por Defecto es un campo requerido.",
"default_tax_category" => "Categoría de Impuesto Predeterminada",
"default_tax_code" => "Código de Impuesto Predeterminado",
"default_tax_jurisdiction" => "Jurisdicción de Impuesto Predeterminada",
"default_tax_name_number" => "Nombre de Impuesto Predeterminado debe ser una cadena de texto.",
"default_tax_name_required" => "Nombre de Impuesto Predeterminado es un campo requerido.",
"default_tax_rate" => "Tasa impositiva predeterminada %",
"default_tax_rate_1" => "Tasa de Impuestos 1",
"default_tax_rate_2" => "Tasa de Impuestos 2",
"default_tax_rate_3" => "",
"default_tax_rate_number" => "La tasa impositiva predeterminada debe ser un número.",
"default_tax_rate_required" => "Tasa de impuestos predeterminada es un campo obligatorio.",
"derive_sale_quantity" => "Permitir cantidad de venta derivada",
"derive_sale_quantity_tooltip" => "Si se marca, se proporcionará un nuevo tipo de artículo para los artículos pedidos por cantidad extendida",
"dinner_table" => "Mesa",
"dinner_table_duplicate" => "La tabla debe ser única.",
"dinner_table_enable" => "Habilitar Mesa de Alimentos",
"dinner_table_invalid_chars" => "El nombre de la tabla no puede llevar '_'.",
"dinner_table_required" => "Tabla es requerida.",
"dot" => "punto(.)",
"email" => "Email",
"email_configuration" => "Configuración Email",
"email_mailpath" => "Ruta a Sendmail",
"email_protocol" => "Protocolo",
"email_receipt_check_behaviour" => "Email Receipt checkbox",
"email_receipt_check_behaviour_always" => "Siempre selecionado",
"email_receipt_check_behaviour_last" => "Recuerda la última selección",
"email_receipt_check_behaviour_never" => "Núnca seleccionado",
"email_smtp_crypto" => "Encriptación SMTP",
"email_smtp_host" => "Servidor SMTP",
"email_smtp_pass" => "Contraseña del Servidor SMTP",
"email_smtp_port" => "Puerto del Servidor SMTP",
"email_smtp_timeout" => "Expiró Tiempo de Espera del Servidor SMTP",
"email_smtp_user" => "Nombre de Usuario del Servidor SMTP",
"enable_avatar" => "",
"enable_avatar_tooltip" => "",
"enable_dropdown_tooltip" => "",
"enable_new_look" => "",
"enable_right_bar" => "",
"enable_right_bar_tooltip" => "",
"enforce_privacy" => "Enforce privacy",
"enforce_privacy_tooltip" => "Protect Customers privacy enforcing data scrambling in case of their data being deleted",
"fax" => "Fax",
"file_perm" => "Hay problemas con los permisos de archivo, por favor corríjalos y recargue esta página.",
"financial_year" => "Inicio del Año Fiscal",
"financial_year_apr" => "1.º de Abril",
"financial_year_aug" => "1.º de Agosto",
"financial_year_dec" => "1.º de Diciembre",
"financial_year_feb" => "1.º de Febrero",
"financial_year_jan" => "1.º de Enero",
"financial_year_jul" => "1.º de Julio",
"financial_year_jun" => "1.º de Junio",
"financial_year_mar" => "1.º de Marzo",
"financial_year_may" => "1.º de Mayo",
"financial_year_nov" => "1.º de Noviembre",
"financial_year_oct" => "1.º de Octubre",
"financial_year_sep" => "1º. de Septiembre",
"floating_labels" => "Etiquetas Flotantes",
"gcaptcha_enable" => "reCAPTCHA de Página de Ingreso",
"gcaptcha_secret_key" => "reCAPTCHA Secret Key",
"gcaptcha_secret_key_required" => "reCAPTCHA Llave Secreta es un campo requerido",
"gcaptcha_site_key" => "reCAPTCHA Site Key",
"gcaptcha_site_key_required" => "reCAPTCHA Site Key is a required field",
"gcaptcha_tooltip" => "Protect the Login page with Google reCAPTCHA, click the icon for an API key pair.",
"general" => "General",
"general_configuration" => "General Configuration",
"giftcard_number" => "Gift Card Number",
"giftcard_random" => "Generate Random",
"giftcard_series" => "Generate in Series",
"image_allowed_file_types" => "Tipo de archivos permitidos",
"image_max_height_tooltip" => "Altura máxima permitida de imágenes en píxeles (px).",
"image_max_size_tooltip" => "Tamaño máximo permitido de archivo de imágenes en kilobytes (kb).",
"image_max_width_tooltip" => "Ancho máximo permitido para imágenes en píxeles (px).",
"image_restrictions" => "Restricciones de carga de imágenes",
"include_hsn" => "Include Support for HSN Codes",
"info" => "Information",
"info_configuration" => "Store Information",
"input_groups" => "Grupos de Entrada",
"integrations" => "Integraciones",
"integrations_configuration" => "Integraciones Externas",
"invoice" => "Invoice",
"invoice_configuration" => "Invoice Print Settings",
"invoice_default_comments" => "Default Invoice Comments",
"invoice_email_message" => "Invoice Email Template",
"invoice_enable" => "Enable Invoicing",
"invoice_printer" => "Invoice Printer",
"invoice_type" => "Invoice Type",
"is_readable" => "es legible, pero los permisos están configurados incorrectamente. Configúrelo en 640 o 660 y actualice.",
"is_writable" => "se puede escribir, pero los permisos están configurados incorrectamente. Configúrelo en 750 y actualice.",
"item_markup" => "",
"jsprintsetup_required" => "Warning: This functionality will only work if you have the FireFox jsPrintSetup addon installed. Save anyway?",
"language" => "Language",
"last_used_invoice_number" => "Last used Invoice Number",
"last_used_quote_number" => "Last used Quote Number",
"last_used_work_order_number" => "Last used W/O Number",
"left" => "Left",
"license" => "License",
"license_configuration" => "License Statement",
"line_sequence" => "Line Sequence",
"lines_per_page" => "Lines per Page",
"lines_per_page_number" => "Lines per Page must be a number.",
"lines_per_page_required" => "Lines per Page is a required field.",
"locale" => "Localization",
"locale_configuration" => "Localization Configuration",
"locale_info" => "Localization Configuration Information",
"location" => "Stock",
"location_configuration" => "Stock Locations",
"location_info" => "Location Configuration Information",
"login_form" => "Estilo de formulario de inicio de sesión",
"logout" => "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.",
"mailchimp" => "Mailchimp",
"mailchimp_api_key" => "Mailchimp Clave API",
"mailchimp_configuration" => "Configuración de MailChimp",
"mailchimp_key_successfully" => "API Key is valid.",
"mailchimp_key_unsuccessfully" => "API Key is invalid.",
"mailchimp_lists" => "Lista (s) de MailChimp",
"mailchimp_tooltip" => "Click the icon for an API Key.",
"message" => "Message",
"message_configuration" => "Message Configuration",
"msg_msg" => "Saved Text Message",
"msg_msg_placeholder" => "If you wish to use a SMS template save your message here, otherwise leave the box blank.",
"msg_pwd" => "SMS-API Password",
"msg_pwd_required" => "SMS-API Password is a required field",
"msg_src" => "SMS-API Sender ID",
"msg_src_required" => "SMS-API Sender ID is a required field",
"msg_uid" => "SMS-API Username",
"msg_uid_required" => "SMS-API Username is a required field",
"multi_pack_enabled" => "Multiple Packages per Item",
"no_risk" => "No security/vulnerability risks.",
"none" => "none",
"notify_alignment" => "Notification Popup Position",
"number_format" => "Number Format",
"number_locale" => "Localization",
"number_locale_invalid" => "The entered locale is invalid. Check the link in the tooltip to find a valid locale.",
"number_locale_required" => "Number Locale is a required field.",
"number_locale_tooltip" => "Find a suitable locale through this link.",
"os_timezone" => "Zona horaria OSPOS:",
"ospos_info" => "Información de instalación OSPOS",
"payment_options_order" => "Payment Options Order",
"perm_risk" => "Los permisos incorrectos ponen en riesgo este software.",
"phone" => "Company Phone",
"phone_required" => "Company Phone is a required field.",
"print_bottom_margin" => "Margin Bottom",
"print_bottom_margin_number" => "Margin Bottom must be a number.",
"print_bottom_margin_required" => "Margin Bottom is a required field.",
"print_delay_autoreturn" => "Autoreturn to Sale delay",
"print_delay_autoreturn_number" => "Autoreturn to Sale delay is a required field.",
"print_delay_autoreturn_required" => "Autoreturn to Sale delay must be a number.",
"print_footer" => "Print Browser Footer",
"print_header" => "Print Browser Header",
"print_left_margin" => "Margin Left",
"print_left_margin_number" => "Margin Left must be a number.",
"print_left_margin_required" => "Margin Left is a required field.",
"print_receipt_check_behaviour" => "Print Receipt checkbox",
"print_receipt_check_behaviour_always" => "Always checked",
"print_receipt_check_behaviour_last" => "Remember last selection",
"print_receipt_check_behaviour_never" => "Always unchecked",
"print_right_margin" => "Margin Right",
"print_right_margin_number" => "Margin Right must be a number.",
"print_right_margin_required" => "Margin Right is a required field.",
"print_silently" => "Show Print Dialog",
"print_top_margin" => "Margin Top",
"print_top_margin_number" => "Margin Top must be a number.",
"print_top_margin_required" => "Margin Top is a required field.",
"quantity_decimals" => "Quantity Decimals",
"quick_cash_enable" => "",
"quote_default_comments" => "Default Quote Comments",
"receipt" => "Receipt",
"receipt_category" => "",
"receipt_configuration" => "Receipt Print Settings",
"receipt_default" => "Default",
"receipt_font_size" => "Font Size",
"receipt_font_size_number" => "Font Size must be a number.",
"receipt_font_size_required" => "Font Size is a required field.",
"receipt_info" => "Receipt Configuration Information",
"receipt_printer" => "Ticket Printer",
"receipt_short" => "Short",
"receipt_show_company_name" => "Show Company Name",
"receipt_show_description" => "Show Description",
"receipt_show_serialnumber" => "Show Serial Number",
"receipt_show_tax_ind" => "Mostrar indicador de impuestos",
"receipt_show_taxes" => "Show Taxes",
"receipt_show_total_discount" => "Show Total Discount",
"receipt_template" => "Receipt Template",
"receiving_calculate_average_price" => "Calcular promedio, Precio (Recepción)",
"recv_invoice_format" => "Receivings Invoice Format",
"register_mode_default" => "Default Register Mode",
"report_an_issue" => "Reportar un problema",
"return_policy_required" => "Return policy is a required field.",
"reward" => "Reward",
"reward_configuration" => "Reward Configuration",
"right" => "Right",
"sales_invoice_format" => "Sales Invoice Format",
"sales_quote_format" => "Sales Quote Format",
"saved_successfully" => "Configuration save successful.",
"saved_unsuccessfully" => "Configuration save failed.",
"security_issue" => "Security Vulnerability Warning",
"server_notice" => "Please use the below info for issue reporting.",
"service_charge" => "",
"show_due_enable" => "",
"show_office_group" => "Show office icon",
"statistics" => "Send Statistics",
"statistics_tooltip" => "Send statistics for development and feature improvement purposes.",
"stock_location" => "Stock location",
"stock_location_duplicate" => "Stock Location must be unique.",
"stock_location_invalid_chars" => "Stock Location can not contain '_'.",
"stock_location_required" => "Stock location is a required field.",
"suggestions_fifth_column" => "",
"suggestions_first_column" => "Column 1",
"suggestions_fourth_column" => "",
"suggestions_layout" => "Search Suggestions Layout",
"suggestions_second_column" => "Column 2",
"suggestions_third_column" => "Column 3",
"system_conf" => "Setup & Conf",
"system_info" => "System Info",
"table" => "Table",
"table_configuration" => "Table Configuration",
"takings_printer" => "Receipt Printer",
"tax" => "Tax",
"tax_category" => "Tax Category",
"tax_category_duplicate" => "The entered tax category already exists.",
"tax_category_invalid_chars" => "The entered tax category is invalid.",
"tax_category_required" => "The tax category is required.",
"tax_category_used" => "Tax category cannot be deleted because it is being used.",
"tax_configuration" => "Tax Configuration",
"tax_decimals" => "Tax Decimals",
"tax_id" => "Tax Id",
"tax_included" => "Tax Included",
"theme" => "Theme",
"theme_preview" => "Vista Previa del Tema:",
"thousands_separator" => "Thousands Separator",
"timezone" => "Timezone",
"timezone_error" => "La zona horaria de OSPOS es diferente a su zona horaria local.",
"top" => "Top",
"use_destination_based_tax" => "Use Destination Based Tax",
"user_timezone" => "Zona horaria local:",
"website" => "Website",
"wholesale_markup" => "",
"work_order_enable" => "Work Order Support",
"work_order_format" => "Work Order Format",
'address' => "Dirección de la Empresa",
'address_required' => "La Dirección de la Empresa es un campo requerido.",
'all_set' => "Todos los permisos han sido establecidos correctamente!",
'allow_duplicate_barcodes' => "Permitir Códigos de Barra Duplicados",
'apostrophe' => "apostrofé",
'backup_button' => "Respaldar",
'backup_database' => "Respaldar Base de Datos",
'barcode' => "Código de Barras",
'barcode_company' => "Nombre de la Empresa",
'barcode_configuration' => "Configuración del Código de Barras",
'barcode_content' => "Contenido del Código de Barras",
'barcode_first_row' => "Fila 1",
'barcode_font' => "Tipo de Letra",
'barcode_formats' => "Formatos de Entrada",
'barcode_generate_if_empty' => "Generar si está vacío.",
'barcode_height' => "Alto (px)",
'barcode_id' => "Id Artículo/Nombre",
'barcode_info' => "Información de Configuración para Códigos de Barras",
'barcode_layout' => "Formato Código de Barras",
'barcode_name' => "Nombre",
'barcode_number' => "Código de Barras",
'barcode_number_in_row' => "Número en renglón",
'barcode_page_cellspacing' => "Mostrar espaciado de celda de la página.",
'barcode_page_width' => "Ancho de página",
'barcode_price' => "Precio",
'barcode_second_row' => "Renglón 2",
'barcode_third_row' => "Renglón 3",
'barcode_tooltip' => "Advertencia: Esta función puede hacer que se importen o creen elementos duplicados. No lo use si no desea códigos de barras duplicados.",
'barcode_type' => "Tipo de código de barras",
'barcode_width' => "Ancho (px)",
'bottom' => "Final",
'cash_button' => "",
'cash_button_1' => "",
'cash_button_2' => "",
'cash_button_3' => "",
'cash_button_4' => "",
'cash_button_5' => "",
'cash_button_6' => "",
'cash_decimals' => "decimales en efectivo",
'cash_decimals_tooltip' => "Si los decimales son iguales entonces no tendrá redondeo.",
'cash_rounding' => "Redondeo de efectivo",
'category_dropdown' => "Mostrar categoría como un menú desplegable",
'center' => "Centro",
'change_apperance_tooltip' => "",
'comma' => "coma",
'company' => "Nombre de la Compañía",
'company_avatar' => "",
'company_change_image' => "Cambiar Imagen",
'company_logo' => "Logo de la Compañía",
'company_remove_image' => "Eliminar Imagen",
'company_required' => "Nombre de la compañia es un campo requerido",
'company_select_image' => "Seleccionar Imagen",
'company_website_url' => "Website de la compañía no es una URL valida (http://...).",
'country_codes' => "Códigos de Países",
'country_codes_tooltip' => "Lista separada por comas de códigos de países para la búsqueda de direcciones nominatim.",
'currency_code' => "código de moneda",
'currency_decimals' => "Decimales de moneda",
'currency_symbol' => "Símbolo de moneda",
'current_employee_only' => "",
'customer_reward' => "Recompensa",
'customer_reward_duplicate' => "Recompensa debe ser única.",
'customer_reward_enable' => "Habilita recompensas para los clientes",
'customer_reward_invalid_chars' => "Recompensa no debe tener '_'",
'customer_reward_required' => "Recompensa es un campo requerido",
'customer_sales_tax_support' => "",
'date_or_time_format' => "Filtro Fecha y Hora",
'datetimeformat' => "Formato de Fecha y Hora",
'decimal_point' => "Punto Decimal",
'default_barcode_font_size_number' => "El tamaño de fuente del código de barras predeterminado debe ser un número.",
'default_barcode_font_size_required' => "El tamaño de fuente predeterminado del código de barras es un campo obligatorio.",
'default_barcode_height_number' => "La altura predeterminada del código de barras debe ser un número.",
'default_barcode_height_required' => "La altura predeterminada del código de barras es un campo obligatorio.",
'default_barcode_num_in_row_number' => "El número de código de barras predeterminado en la fila debe ser un número.",
'default_barcode_num_in_row_required' => "El número de código de barras predeterminado en la fila es un campo obligatorio.",
'default_barcode_page_cellspacing_number' => "El espacio entre celdas predeterminado de la página de código de barras debe ser un número.",
'default_barcode_page_cellspacing_required' => "El espaciado entre celdas de página de código de barras predeterminado es un campo obligatorio.",
'default_barcode_page_width_number' => "La anchura del código de barras debe ser un número.",
'default_barcode_page_width_required' => "El ancho predeterminado del código de barras es un campo obligatorio.",
'default_barcode_width_number' => "El Ancho del código de barra debe ser un número.",
'default_barcode_width_required' => "El ancho predeterminado del código de barras es un campo obligatorio.",
'default_item_columns' => "Número de artículos por columna predeterminado",
'default_origin_tax_code' => "Código de Impuesto predeterminado",
'default_receivings_discount' => "Descuentos de recibos predeterminados",
'default_receivings_discount_number' => "Descuentos de recibos deben ser números.",
'default_receivings_discount_required' => "Descuentos de recibos es un campo requerido.",
'default_sales_discount' => "% Descuentos en ventas",
'default_sales_discount_number' => "El descuento predeterminado debe ser un número.",
'default_sales_discount_required' => "Descuento de Ventas por Defecto es un campo requerido.",
'default_tax_category' => "Categoría de Impuesto Predeterminada",
'default_tax_code' => "Código de Impuesto Predeterminado",
'default_tax_jurisdiction' => "Jurisdicción de Impuesto Predeterminada",
'default_tax_name_number' => "Nombre de Impuesto Predeterminado debe ser una cadena de texto.",
'default_tax_name_required' => "Nombre de Impuesto Predeterminado es un campo requerido.",
'default_tax_rate' => "Tasa impositiva predeterminada %",
'default_tax_rate_1' => "Tasa de Impuestos 1",
'default_tax_rate_2' => "Tasa de Impuestos 2",
'default_tax_rate_3' => "",
'default_tax_rate_number' => "La tasa impositiva predeterminada debe ser un número.",
'default_tax_rate_required' => "Tasa de impuestos predeterminada es un campo obligatorio.",
'derive_sale_quantity' => "Permitir cantidad de venta derivada",
'derive_sale_quantity_tooltip' => "Si se marca, se proporcionará un nuevo tipo de artículo para los artículos pedidos por cantidad extendida",
'dinner_table' => "Mesa",
'dinner_table_duplicate' => "La tabla debe ser única.",
'dinner_table_enable' => "Habilitar Mesa de Alimentos",
'dinner_table_invalid_chars' => "El nombre de la tabla no puede llevar '_'.",
'dinner_table_required' => "Tabla es requerida.",
'dot' => "punto(.)",
'email' => "Email",
'email_configuration' => "Configuración Email",
'email_mailpath' => "Ruta a Sendmail",
'email_protocol' => "Protocolo",
'email_receipt_check_behaviour' => "Email Receipt checkbox",
'email_receipt_check_behaviour_always' => "Siempre selecionado",
'email_receipt_check_behaviour_last' => "Recuerda la última selección",
'email_receipt_check_behaviour_never' => "Núnca seleccionado",
'email_smtp_crypto' => "Encriptación SMTP",
'email_smtp_host' => "Servidor SMTP",
'email_smtp_pass' => "Contraseña del Servidor SMTP",
'email_smtp_port' => "Puerto del Servidor SMTP",
'email_smtp_timeout' => "Expiró Tiempo de Espera del Servidor SMTP",
'email_smtp_user' => "Nombre de Usuario del Servidor SMTP",
'enable_avatar' => "",
'enable_avatar_tooltip' => "",
'enable_dropdown_tooltip' => "",
'enable_new_look' => "",
'enable_right_bar' => "",
'enable_right_bar_tooltip' => "",
'enforce_privacy' => "Enforce privacy",
'enforce_privacy_tooltip' => "Protect Customers privacy enforcing data scrambling in case of their data being deleted",
'fax' => "Fax",
'file_perm' => "Hay problemas con los permisos de archivo, por favor corríjalos y recargue esta página.",
'financial_year' => "Inicio del Año Fiscal",
'financial_year_apr' => "1.º de Abril",
'financial_year_aug' => "1.º de Agosto",
'financial_year_dec' => "1.º de Diciembre",
'financial_year_feb' => "1.º de Febrero",
'financial_year_jan' => "1.º de Enero",
'financial_year_jul' => "1.º de Julio",
'financial_year_jun' => "1.º de Junio",
'financial_year_mar' => "1.º de Marzo",
'financial_year_may' => "1.º de Mayo",
'financial_year_nov' => "1.º de Noviembre",
'financial_year_oct' => "1.º de Octubre",
'financial_year_sep' => "1º. de Septiembre",
'floating_labels' => "Etiquetas Flotantes",
'gcaptcha_enable' => "reCAPTCHA de Página de Ingreso",
'gcaptcha_secret_key' => "reCAPTCHA Secret Key",
'gcaptcha_secret_key_required' => "reCAPTCHA Llave Secreta es un campo requerido",
'gcaptcha_site_key' => "reCAPTCHA Site Key",
'gcaptcha_site_key_required' => "reCAPTCHA Site Key is a required field",
'gcaptcha_tooltip' => "Protect the Login page with Google reCAPTCHA, click the icon for an API key pair.",
'general' => "General",
'general_configuration' => "General Configuration",
'giftcard_number' => "Gift Card Number",
'giftcard_random' => "Generate Random",
'giftcard_series' => "Generate in Series",
'image_allowed_file_types' => "Tipo de archivos permitidos",
'image_max_height_tooltip' => "Altura máxima permitida de imágenes en píxeles (px).",
'image_max_size_tooltip' => "Tamaño máximo permitido de archivo de imágenes en kilobytes (kb).",
'image_max_width_tooltip' => "Ancho máximo permitido para imágenes en píxeles (px).",
'image_restrictions' => "Restricciones de carga de imágenes",
'include_hsn' => "Include Support for HSN Codes",
'info' => "Information",
'info_configuration' => "Store Information",
'input_groups' => "Grupos de Entrada",
'integrations' => "Integraciones",
'integrations_configuration' => "Integraciones Externas",
'invoice' => "Invoice",
'invoice_configuration' => "Invoice Print Settings",
'invoice_default_comments' => "Default Invoice Comments",
'invoice_email_message' => "Invoice Email Template",
'invoice_enable' => "Enable Invoicing",
'invoice_printer' => "Invoice Printer",
'invoice_type' => "Invoice Type",
'is_readable' => "es legible, pero los permisos están configurados incorrectamente. Configúrelo en 640 o 660 y actualice.",
'is_writable' => "se puede escribir, pero los permisos están configurados incorrectamente. Configúrelo en 750 y actualice.",
'item_markup' => "",
'jsprintsetup_required' => "Warning: This functionality will only work if you have the FireFox jsPrintSetup addon installed. Save anyway?",
'language' => "Language",
'last_used_invoice_number' => "Last used Invoice Number",
'last_used_quote_number' => "Last used Quote Number",
'last_used_work_order_number' => "Last used W/O Number",
'left' => "Left",
'license' => "License",
'license_configuration' => "License Statement",
'line_sequence' => "Line Sequence",
'lines_per_page' => "Lines per Page",
'lines_per_page_number' => "Lines per Page must be a number.",
'lines_per_page_required' => "Lines per Page is a required field.",
'locale' => "Localization",
'locale_configuration' => "Localization Configuration",
'locale_info' => "Localization Configuration Information",
'location' => "Stock",
'location_configuration' => "Stock Locations",
'location_info' => "Location Configuration Information",
'login_form' => "Estilo de formulario de inicio de sesión",
'logout' => "Do you want to make a backup before logging out? Click [OK] to backup or [Cancel] to logout.",
'mailchimp' => "Mailchimp",
'mailchimp_api_key' => "Mailchimp Clave API",
'mailchimp_configuration' => "Configuración de MailChimp",
'mailchimp_key_successfully' => "API Key is valid.",
'mailchimp_key_unsuccessfully' => "API Key is invalid.",
'mailchimp_lists' => "Lista (s) de MailChimp",
'mailchimp_tooltip' => "Click the icon for an API Key.",
'message' => "Message",
'message_configuration' => "Message Configuration",
'msg_msg' => "Saved Text Message",
'msg_msg_placeholder' => "If you wish to use a SMS template save your message here, otherwise leave the box blank.",
'msg_pwd' => "SMS-API Password",
'msg_pwd_required' => "SMS-API Password is a required field",
'msg_src' => "SMS-API Sender ID",
'msg_src_required' => "SMS-API Sender ID is a required field",
'msg_uid' => "SMS-API Username",
'msg_uid_required' => "SMS-API Username is a required field",
'multi_pack_enabled' => "Multiple Packages per Item",
'no_risk' => "No security/vulnerability risks.",
'none' => "none",
'notify_alignment' => "Notification Popup Position",
'number_format' => "Number Format",
'number_locale' => "Localization",
'number_locale_invalid' => "The entered locale is invalid. Check the link in the tooltip to find a valid locale.",
'number_locale_required' => "Number Locale is a required field.",
'number_locale_tooltip' => "Find a suitable locale through this link.",
'os_timezone' => "Zona horaria OSPOS:",
'ospos_info' => "Información de instalación OSPOS",
'payment_options_order' => "Payment Options Order",
'perm_risk' => "Los permisos incorrectos ponen en riesgo este software.",
'phone' => "Company Phone",
'phone_required' => "Company Phone is a required field.",
'print_bottom_margin' => "Margin Bottom",
'print_bottom_margin_number' => "Margin Bottom must be a number.",
'print_bottom_margin_required' => "Margin Bottom is a required field.",
'print_delay_autoreturn' => "Autoreturn to Sale delay",
'print_delay_autoreturn_number' => "Autoreturn to Sale delay is a required field.",
'print_delay_autoreturn_required' => "Autoreturn to Sale delay must be a number.",
'print_footer' => "Print Browser Footer",
'print_header' => "Print Browser Header",
'print_left_margin' => "Margin Left",
'print_left_margin_number' => "Margin Left must be a number.",
'print_left_margin_required' => "Margin Left is a required field.",
'print_receipt_check_behaviour' => "Print Receipt checkbox",
'print_receipt_check_behaviour_always' => "Always checked",
'print_receipt_check_behaviour_last' => "Remember last selection",
'print_receipt_check_behaviour_never' => "Always unchecked",
'print_right_margin' => "Margin Right",
'print_right_margin_number' => "Margin Right must be a number.",
'print_right_margin_required' => "Margin Right is a required field.",
'print_silently' => "Show Print Dialog",
'print_top_margin' => "Margin Top",
'print_top_margin_number' => "Margin Top must be a number.",
'print_top_margin_required' => "Margin Top is a required field.",
'quantity_decimals' => "Quantity Decimals",
'quick_cash_enable' => "",
'quote_default_comments' => "Default Quote Comments",
'receipt' => "Receipt",
'receipt_category' => "",
'receipt_configuration' => "Receipt Print Settings",
'receipt_default' => "Default",
'receipt_font_size' => "Font Size",
'receipt_font_size_number' => "Font Size must be a number.",
'receipt_font_size_required' => "Font Size is a required field.",
'receipt_info' => "Receipt Configuration Information",
'receipt_printer' => "Ticket Printer",
'receipt_short' => "Short",
'receipt_show_company_name' => "Show Company Name",
'receipt_show_description' => "Show Description",
'receipt_show_serialnumber' => "Show Serial Number",
'receipt_show_tax_ind' => "Mostrar indicador de impuestos",
'receipt_show_taxes' => "Show Taxes",
'receipt_show_total_discount' => "Show Total Discount",
'receipt_template' => "Receipt Template",
'receiving_calculate_average_price' => "Calcular promedio, Precio (Recepción)",
'recv_invoice_format' => "Receivings Invoice Format",
'register_mode_default' => "Default Register Mode",
'report_an_issue' => "Reportar un problema",
'return_policy_required' => "Return policy is a required field.",
'reward' => "Reward",
'reward_configuration' => "Reward Configuration",
'right' => "Right",
'sales_invoice_format' => "Sales Invoice Format",
'sales_quote_format' => "Sales Quote Format",
'saved_successfully' => "Configuration save successful.",
'saved_unsuccessfully' => "Configuration save failed.",
'security_issue' => "Security Vulnerability Warning",
'server_notice' => "Please use the below info for issue reporting.",
'service_charge' => "",
'show_due_enable' => "",
'show_office_group' => "Show office icon",
'statistics' => "Send Statistics",
'statistics_tooltip' => "Send statistics for development and feature improvement purposes.",
'stock_location' => "Ubicación del inventario",
'stock_location_duplicate' => "Stock Location must be unique.",
'stock_location_invalid_chars' => "Stock Location can not contain '_'.",
'stock_location_required' => "Stock location is a required field.",
'suggestions_fifth_column' => "",
'suggestions_first_column' => "Column 1",
'suggestions_fourth_column' => "",
'suggestions_layout' => "Search Suggestions Layout",
'suggestions_second_column' => "Column 2",
'suggestions_third_column' => "Column 3",
'system_conf' => "Setup & Conf",
'system_info' => "System Info",
'table' => "Table",
'table_configuration' => "Table Configuration",
'takings_printer' => "Receipt Printer",
'tax' => "Tax",
'tax_category' => "Tax Category",
'tax_category_duplicate' => "The entered tax category already exists.",
'tax_category_invalid_chars' => "The entered tax category is invalid.",
'tax_category_required' => "The tax category is required.",
'tax_category_used' => "Tax category cannot be deleted because it is being used.",
'tax_configuration' => "Tax Configuration",
'tax_decimals' => "Tax Decimals",
'tax_id' => "Tax Id",
'tax_included' => "Tax Included",
'theme' => "Theme",
'theme_preview' => "Vista Previa del Tema:",
'thousands_separator' => "Thousands Separator",
'timezone' => "Timezone",
'timezone_error' => "La zona horaria de OSPOS es diferente a su zona horaria local.",
'top' => "Top",
'use_destination_based_tax' => "Use Destination Based Tax",
'user_timezone' => "Zona horaria local:",
'website' => "Website",
'wholesale_markup' => "",
'work_order_enable' => "Work Order Support",
'work_order_format' => "Work Order Format",
];

View File

@@ -1,56 +1,57 @@
<?php
return [
"account_number" => "Cuenta #",
"account_number_duplicate" => "El Número de Cuenta ya se encuentra en la base de datos.",
"available_points" => "Puntos Disponibles",
"available_points_value" => "",
"average" => "Gasto Promedio",
"avg_discount" => "Descuento Promedio",
"basic_information" => "Información",
"cannot_be_deleted" => "No se pueden borrar los Clientes seleccionados, uno o más tienen ventas.",
"company_name" => "Compañia",
"confirm_delete" => "¿Está seguro que quiere borrar los Clientes seleccionados?",
"confirm_restore" => "¿Está seguro que quiere restaurar los clientes seleccionados?",
"consent" => "Consentimiento de registro",
"consent_required" => "Consentimiento de registro es un campo requerido.",
"csv_import_failed" => "Fallo al importar a CSV",
"csv_import_nodata_wrongformat" => "El archivo subido no contiene datos o no está formado correctamente.",
"csv_import_partially_failed" => "La importación del Cliente fue exitosa pero con algunos errores:",
"csv_import_success" => "Cliente importado exitosamente.",
"customer" => "Cliente",
"date" => "Fecha",
"discount" => "Descuento",
"discount_fixed" => "Descuento Fijo",
"discount_percent" => "Porcentaje de Descuento",
"discount_type" => "Tipo de Descuento",
"email_duplicate" => "El correo electrónico ya se encuentra en la base de datos.",
"employee" => "Empleado",
"error_adding_updating" => "Fallo al agregar o actualizar el Cliente.",
"import_items_csv" => "Importar Cliente desde CSV",
"mailchimp_activity_click" => "Click Correo Electrónico",
"mailchimp_activity_lastopen" => "Último correo electrónico abierto",
"mailchimp_activity_open" => "Correo electrónico abierto",
"mailchimp_activity_total" => "Correo electrónico enviado",
"mailchimp_activity_unopen" => "Correo electrónico sin abrir",
"mailchimp_email_client" => "cliente de correo electrónico",
"mailchimp_info" => "Mailchimp",
"mailchimp_member_rating" => "Puntaje",
"mailchimp_status" => "Estado",
"mailchimp_vip" => "VIP",
"max" => "Gasto Máximo",
"min" => "Gasto Mínimo",
"new" => "Nuevo Cliente",
"none_selected" => "No ha seleccionado un Cliente para borrar.",
"one_or_multiple" => "Cliente(s)",
"quantity" => "Cantidad",
"stats_info" => "Estadísticas",
"successful_adding" => "Ha agregado un Cliente con éxito",
"successful_deleted" => "Lo ha borrado exitosamente",
"successful_updating" => "Ha actualizado un Cliente exitosamente",
"tax_code" => "Código de Impuesto",
"tax_id" => "Id Impuesto",
"taxable" => "Impuestable",
"total" => "Gasto total",
"update" => "Actualizar Cliente",
"rewards_package" => "Paquete de Recompensas",
'account_number' => "Cuenta #",
'account_number_duplicate' => "El Número de Cuenta ya se encuentra en la base de datos.",
'available_points' => "Puntos Disponibles",
'available_points_value' => "",
'average' => "Gasto Promedio",
'avg_discount' => "Descuento Promedio",
'basic_information' => "Información",
'cannot_be_deleted' => "No se pueden borrar los Clientes seleccionados, uno o más tienen ventas.",
'company_name' => "Compañia",
'confirm_delete' => "¿Está seguro que quiere borrar los Clientes seleccionados?",
'confirm_restore' => "¿Está seguro que quiere restaurar los clientes seleccionados?",
'consent' => "Consentimiento de registro",
'consent_required' => "Consentimiento de registro es un campo requerido.",
'csv_import_failed' => "Fallo al importar a CSV",
'csv_import_nodata_wrongformat' => "El archivo subido no contiene datos o no está formado correctamente.",
'csv_import_partially_failed' => "La importación del Cliente fue exitosa pero con algunos errores:",
'csv_import_success' => "Cliente importado exitosamente.",
'customer' => "Cliente",
'date' => "Fecha",
'discount' => "Descuento",
'discount_fixed' => "Descuento Fijo",
'discount_percent' => "Porcentaje de Descuento",
'discount_type' => "Tipo de Descuento",
'email_duplicate' => "El correo electrónico ya se encuentra en la base de datos.",
'employee' => "Empleado",
'error_adding_updating' => "Fallo al agregar o actualizar el Cliente.",
'import_items_csv' => "Importar Cliente desde CSV",
'mailchimp_activity_click' => "Click Correo Electrónico",
'mailchimp_activity_lastopen' => "Último correo electrónico abierto",
'mailchimp_activity_open' => "Correo electrónico abierto",
'mailchimp_activity_total' => "Correo electrónico enviado",
'mailchimp_activity_unopen' => "Correo electrónico sin abrir",
'mailchimp_email_client' => "cliente de correo electrónico",
'mailchimp_info' => "Mailchimp",
'mailchimp_member_rating' => "Puntaje",
'mailchimp_status' => "Estado",
'mailchimp_vip' => "VIP",
'max' => "Gasto Máximo",
'min' => "Gasto Mínimo",
'new' => "Nuevo Cliente",
'none_selected' => "No ha seleccionado un Cliente para borrar.",
'one_or_multiple' => "Cliente(s)",
'quantity' => "Cantidad",
'stats_info' => "Estadísticas",
'successful_adding' => "Ha agregado un Cliente con éxito",
'successful_deleted' => "Se ha borrado correctamente",
'successful_updating' => "Ha actualizado un Cliente exitosamente",
'tax_code' => "Código de Impuesto",
'tax_id' => "Id Impuesto",
'taxable' => "Impuestable",
'total' => "Gasto total",
'update' => "Actualizar Cliente",
'rewards_package' => "Paquete de Recompensas",
];

View File

@@ -1,44 +1,45 @@
<?php
return [
"administrator" => "",
"basic_information" => "Información",
"cannot_be_deleted" => "No se puede borrar los empleados seleccionados, uno o más de ellos tienen ventas registradas ó intentas borrar tu propia cuenta.",
"change_employee" => "",
"change_password" => "Cambiar contraseña",
"clerk" => "",
"commission" => "",
"confirm_delete" => "¿Estás seguro que deseas borrar los empleados seleccionados?",
"confirm_restore" => "¿Estás seguro que deseas restaurar los empleados seleccionados?",
"current_password" => "Contraseña Actual",
"current_password_invalid" => "La contraseña actual es inválida.",
"employee" => "Empleado",
"error_adding_updating" => "Agregar ó Actualizar empleado ha fallado.",
"error_deleting_demo_admin" => "No puede borrar el usuario demo de administrador.",
"error_updating_demo_admin" => "No puede cambiar el usuario demo de administrador.",
"language" => "Idioma",
"login_info" => "Iniciar sesión",
"manager" => "",
"new" => "Nuevo Empleado",
"none_selected" => "No ha seleccionado empleados a borrar.",
"one_or_multiple" => "Empleado(s)",
"password" => "Contraseña",
"password_minlength" => "La contraseña debe tener por lo menos 8 letras.",
"password_must_match" => "Las contraseñas no coinciden.",
"password_not_must_match" => "La contraseña actual y nueva contraseña deben ser distintas.",
"password_required" => "Se requiere contraseña.",
"permission_desc" => "Selecciona las casillas para otorgar acceso a los módulos.",
"permission_info" => "Permisos",
"repeat_password" => "Contraseña otra vez",
"subpermission_required" => "Concede por lo menos un permiso para cada módulo.",
"successful_adding" => "Empleado agregado exitosamente.",
"successful_change_password" => "Cambio de contraseña exitoso.",
"successful_deleted" => "Eliminado Satisfactoriamente",
"successful_updating" => "Empleado actualizado exitosamente",
"system_language" => "Idioma del sistema",
"unsuccessful_change_password" => "El cambio de contraseña ha fallado.",
"update" => "Actualizar Empleado",
"username" => "Nombre de Usuario",
"username_duplicate" => "El usuario del empleado ya esta en uso. Favor de escoger otro.",
"username_minlength" => "Nombre de usuario debe tener por lo menos 5 letras.",
"username_required" => "Es necesario el nombre de usuario.",
'administrator' => "",
'basic_information' => "Información",
'cannot_be_deleted' => "No se puede borrar los empleados seleccionados, uno o más de ellos tienen ventas registradas ó intentas borrar tu propia cuenta.",
'change_employee' => "",
'change_password' => "Cambiar contraseña",
'clerk' => "",
'commission' => "",
'confirm_delete' => "¿Estás seguro que deseas borrar los empleados seleccionados?",
'confirm_restore' => "¿Estás seguro que deseas restaurar los empleados seleccionados?",
'current_password' => "Contraseña Actual",
'current_password_invalid' => "La contraseña actual es inválida.",
'employee' => "Empleado",
'error_adding_updating' => "Agregar ó Actualizar empleado ha fallado.",
'error_deleting_demo_admin' => "No puede borrar el usuario demo de administrador.",
'error_updating_demo_admin' => "No puede cambiar el usuario demo de administrador.",
'language' => "Idioma",
'login_info' => "Iniciar sesión",
'manager' => "",
'new' => "Nuevo Empleado",
'none_selected' => "No ha seleccionado empleados a borrar.",
'one_or_multiple' => "Empleado(s)",
'password' => "Contraseña",
'password_minlength' => "La contraseña debe tener por lo menos 8 letras.",
'password_must_match' => "Las contraseñas no coinciden.",
'password_not_must_match' => "La contraseña actual y nueva contraseña deben ser distintas.",
'password_required' => "Se requiere contraseña.",
'permission_desc' => "Selecciona las casillas para otorgar acceso a los módulos.",
'permission_info' => "Permisos",
'repeat_password' => "Contraseña otra vez",
'subpermission_required' => "Concede por lo menos un permiso para cada módulo.",
'successful_adding' => "Empleado agregado exitosamente.",
'successful_change_password' => "Cambio de contraseña exitoso.",
'successful_deleted' => "Se ha borrado correctamente",
'successful_updating' => "Empleado actualizado exitosamente",
'system_language' => "Idioma del sistema",
'unsuccessful_change_password' => "El cambio de contraseña ha fallado.",
'update' => "Actualizar Empleado",
'username' => "Nombre de Usuario",
'username_duplicate' => "El usuario del empleado ya esta en uso. Favor de escoger otro.",
'username_minlength' => "Nombre de usuario debe tener por lo menos 5 letras.",
'username_required' => "Es necesario el nombre de usuario.",
];

View File

@@ -1,71 +1,72 @@
<?php
return [
"add_minus" => "Inventario para agregar o restar.",
"allow_alt_description" => "Permitir Descripción Alterna",
"bulk_edit" => "Editor Masivo",
"cannot_be_deleted" => "No se puede borrar la tarjeta (s) de regalo seleccionada(s), una o mas de las Tarjetas de Regalo ya tuvo ventas.",
"cannot_find_giftcard" => "Tarjeta de Regalo no encontrada.",
"cannot_use" => "Tarjeta de Regalo {0} no puede ser usada para esta venta: Cliente incorrecto.",
"card_value" => "Valor",
"category" => "Categoría",
"change_all_to_allow_alt_desc" => "Permitir descripción alternativa para todos.",
"change_all_to_not_allow_allow_desc" => "No permitir descripción alternativa para todos.",
"change_all_to_serialized" => "Cambiar Todos a Serializados",
"change_all_to_unserialized" => "Cambiar Todos a Sin Serializar",
"confirm_bulk_edit" => "¿Estas seguro que deseas editar las Tarjeta(s) de regalo seleccionadas?",
"confirm_delete" => "¿Estas seguro que deseas borrar las Tarjetas(s) de regalo seleccionadas?",
"confirm_restore" => "¿Estas seguro que deseas restaurar las Tarjeta(s) de regalo seleccionadas?",
"cost_price" => "Precio de Mayoreo",
"count" => "Actualizar Inventario",
"csv_import_failed" => "Fallo en la importación de CSV.",
"current_quantity" => "Cantidad Actual",
"description" => "Descripción",
"details_count" => "Detalles del Inventario",
"do_nothing" => "No hacer Nada",
"edit_fields_you_want_to_update" => "Editar campos para las Tarjeta(s) de regalo seleccionadas.",
"edit_multiple_giftcards" => "Editar Multiples Tarjetas de regalo.",
"error_adding_updating" => "Error al agregar o actualizar la Tarjeta de Regalo.",
"error_updating_multiple" => "Fallo en la actualización de la(s) Tarjeta(s) de regalo.",
"generate_barcodes" => "Generar Códigos de Barra",
"giftcard" => "Tarjeta de Regalo",
"giftcard_number" => "Numero de la Tarjeta de Regalo",
"info_provided_by" => "Información provista por",
"inventory_comments" => "Comentarios",
"is_serialized" => "La Tarjeta de Regalo tiene Numero de Serie",
"low_inventory_giftcards" => "Tarjetas de Regalo con Inventario Bajo",
"manually_editing_of_quantity" => "Editor Manual de Cantidad",
"must_select_giftcard_for_barcode" => "Debes seleccionar al menos (1) Tarjeta de Regalo para generar Códigos de Barra.",
"new" => "Nueva Tarjeta de Regalo",
"no_description_giftcards" => "Gif Cards sin Descripción",
"no_giftcards_to_display" => "No hay Gift Cards para mostrar.",
"none" => "Ninguno",
"none_selected" => "",
"number" => "",
"number_information" => "",
"number_required" => "",
"one_or_multiple" => "",
"person_id" => "",
"quantity" => "",
"quantity_required" => "",
"remaining_balance" => "",
"reorder_level" => "",
"retrive_giftcard_info" => "",
"sales_tax_1" => "",
"sales_tax_2" => "",
"serialized_giftcards" => "",
"successful_adding" => "",
"successful_bulk_edit" => "",
"successful_deleted" => "",
"successful_updating" => "",
"supplier" => "",
"tax_1" => "",
"tax_2" => "",
"tax_percent" => "",
"tax_percents" => "",
"unit_price" => "",
"upc_database" => "",
"update" => "",
"use_inventory_menu" => "",
"value" => "",
"value_required" => "",
'add_minus' => "Inventario para agregar o restar.",
'allow_alt_description' => "Permitir Descripción Alterna",
'bulk_edit' => "Editor Masivo",
'cannot_be_deleted' => "No se puede borrar la tarjeta (s) de regalo seleccionada(s), una o mas de las Tarjetas de Regalo ya tuvo ventas.",
'cannot_find_giftcard' => "Tarjeta de Regalo no encontrada.",
'cannot_use' => "Tarjeta de Regalo {0} no puede ser usada para esta venta: Cliente incorrecto.",
'card_value' => "Valor",
'category' => "Categoría",
'change_all_to_allow_alt_desc' => "Permitir descripción alternativa para todos.",
'change_all_to_not_allow_allow_desc' => "No permitir descripción alternativa para todos.",
'change_all_to_serialized' => "Cambiar Todos a Serializados",
'change_all_to_unserialized' => "Cambiar Todos a Sin Serializar",
'confirm_bulk_edit' => "¿Estas seguro que deseas editar las Tarjeta(s) de regalo seleccionadas?",
'confirm_delete' => "¿Estas seguro que deseas borrar las Tarjetas(s) de regalo seleccionadas?",
'confirm_restore' => "¿Estas seguro que deseas restaurar las Tarjeta(s) de regalo seleccionadas?",
'cost_price' => "Precio mayoreo.",
'count' => "Actualizar inventario",
'csv_import_failed' => "Fallo en la importación de CSV.",
'current_quantity' => "Cantidad actual",
'description' => "Descripción",
'details_count' => "Detalles del Inventario",
'do_nothing' => "No hacer Nada",
'edit_fields_you_want_to_update' => "Editar campos para las Tarjeta(s) de regalo seleccionadas.",
'edit_multiple_giftcards' => "Editar Multiples Tarjetas de regalo.",
'error_adding_updating' => "Error al agregar o actualizar la Tarjeta de Regalo.",
'error_updating_multiple' => "Fallo en la actualización de la(s) Tarjeta(s) de regalo.",
'generate_barcodes' => "Generar Códigos de Barra",
'giftcard' => "Tarjeta de Regalo",
'giftcard_number' => "Numero de la Tarjeta de Regalo",
'info_provided_by' => "Información provista por",
'inventory_comments' => "Comentarios",
'is_serialized' => "La Tarjeta de Regalo tiene Numero de Serie",
'low_inventory_giftcards' => "Tarjetas de Regalo con Inventario Bajo",
'manually_editing_of_quantity' => "Editor Manual de Cantidad",
'must_select_giftcard_for_barcode' => "Debes seleccionar al menos (1) Tarjeta de Regalo para generar Códigos de Barra.",
'new' => "Nueva Tarjeta de Regalo",
'no_description_giftcards' => "Gif Cards sin Descripción",
'no_giftcards_to_display' => "No hay Gift Cards para mostrar.",
'none' => "Ninguno",
'none_selected' => "",
'number' => "",
'number_information' => "Numero de tarjeta de regalo",
'number_required' => "",
'one_or_multiple' => "Tarjeta de regalo",
'person_id' => "",
'quantity' => "Cantidad",
'quantity_required' => "",
'remaining_balance' => "",
'reorder_level' => "Cantidad minima",
'retrive_giftcard_info' => "",
'sales_tax_1' => "Impuesto de Ventas 1",
'sales_tax_2' => "Impuesto de Ventas 2",
'serialized_giftcards' => "",
'successful_adding' => "",
'successful_bulk_edit' => "La tarjeta de regalo seleccionada ha sido actualizada",
'successful_deleted' => "Se ha borrado correctamente",
'successful_updating' => "",
'supplier' => "",
'tax_1' => "",
'tax_2' => "",
'tax_percent' => "",
'tax_percents' => "",
'unit_price' => "",
'upc_database' => "",
'update' => "",
'use_inventory_menu' => "",
'value' => "",
'value_required' => "",
];

View File

@@ -1,41 +1,42 @@
<?php
return [
"add_item" => "Agregar Artículo",
"all" => "Todo",
"cannot_be_deleted" => "Borrado de Kit(s) de Artículos fallido.",
"confirm_delete" => "¿Estás seguro(a) de querer borrar los kits seleccionados?",
"confirm_restore" => "¿Está seguro de querer restaurar lo(s) kit(s) seleccionado(s)?",
"description" => "Descripción del Kit de Artículos",
"discount" => "Descuento",
"discount_fixed" => "Descuento Fijo",
"discount_percent" => "Porcentaje de descuento",
"discount_type" => "Tipo de Descuento",
"error_adding_updating" => "Error agregando/actualizando Kit de Artículos.",
"find_kit_item" => "Kit de Artículos",
"info" => "Información del kit de artículos",
"item" => "Artículo",
"item_kit_number" => "Código de barras",
"item_kit_number_duplicate" => "El Número del Kit de Artículo ya está presente en la base de datos.",
"item_number" => "",
"item_number_duplicate" => "",
"items" => "Artículos",
"kit" => "ID del Kit",
"kit_and_components" => "Kits y Componentes",
"kit_and_stock" => "Kit y Stock",
"kit_only" => "Sólo kit",
"name" => "Nombre del Kit de Artículos",
"new" => "Nuevo Kit de Artículos",
"no_item_kits_to_display" => "Sin kit de artículos para mostrar.",
"none_selected" => "No ha seleccionado ningún kit de artículos.",
"one_or_multiple" => "Kit(s) de Artículos",
"price_option" => "Opciones de precio",
"priced_only" => "Sólo precio",
"print_option" => "Opciones de impresión",
"quantity" => "Cantidad",
"sequence" => "Secuencia",
"successful_adding" => "Has agregado un kit de artículos",
"successful_deleted" => "Borrado completo",
"successful_updating" => "Kit de Artículos actualizado",
"unit_price" => "",
"update" => "Actualizar Kit de Artículos",
'add_item' => "Agregar Artículo",
'all' => "Todo",
'cannot_be_deleted' => "Borrado de Kit(s) de Artículos fallido.",
'confirm_delete' => "¿Estás seguro(a) de querer borrar los kits seleccionados?",
'confirm_restore' => "¿Está seguro de querer restaurar lo(s) kit(s) seleccionado(s)?",
'description' => "Descripción del Kit de Artículos",
'discount' => "Descuento",
'discount_fixed' => "Descuento Fijo",
'discount_percent' => "Porcentaje de descuento",
'discount_type' => "Tipo de Descuento",
'error_adding_updating' => "Error agregando/actualizando Kit de Artículos.",
'find_kit_item' => "Kit de Artículos",
'info' => "Información del kit de artículos",
'item' => "Articulo",
'item_kit_number' => "Código de barras",
'item_kit_number_duplicate' => "El Número del Kit de Artículo ya está presente en la base de datos.",
'item_number' => "",
'item_number_duplicate' => "",
'items' => "Artículos",
'kit' => "ID del Kit",
'kit_and_components' => "Kits y Componentes",
'kit_and_stock' => "Kit y Stock",
'kit_only' => "Sólo kit",
'name' => "Nombre del Kit de Artículos",
'new' => "Nuevo Kit de Artículos",
'no_item_kits_to_display' => "Sin kit de artículos para mostrar.",
'none_selected' => "No ha seleccionado ningún kit de artículos.",
'one_or_multiple' => "Kit(s) de Artículos",
'price_option' => "Opciones de precio",
'priced_only' => "Sólo precio",
'print_option' => "Opciones de impresión",
'quantity' => "Cantidad",
'sequence' => "Secuencia",
'successful_adding' => "Has agregado un kit de artículos",
'successful_deleted' => "Se ha borrado correctamente",
'successful_updating' => "Kit de Artículos actualizado",
'unit_price' => "",
'update' => "Actualizar Kit de Artículos",
];

View File

@@ -1,120 +1,121 @@
<?php
return [
"add_minus" => "Inventario a agregar o disminuir.",
"allow_alt_description" => "Permitir Descripción Alternativa",
"amount_entry" => "Ingrese Cantidad",
"bulk_edit" => "Edición Masiva",
"buy_price_required" => "Precio de Compra es un campo requerido.",
"cannot_be_deleted" => "No se puede borrar el item(s) seleccionado, uno a mas de los items seleccionados tienen ventas.",
"cannot_find_item" => "Articulo no encontrado.",
"categories" => "",
"category" => "Categoría",
"category_new" => "",
"category_required" => "Categoría es un campo requerido.",
"change_all_to_allow_alt_desc" => "Permitir Descripción Alternativa para todo.",
"change_all_to_not_allow_allow_desc" => "No permitir Descripción Alternativa para todo.",
"change_all_to_serialized" => "Cambiar todo a Serializado",
"change_all_to_unserialized" => "Cambiar todo a No-Serializado",
"change_image" => "Cambiar Imagen",
"confirm_bulk_edit" => "¿Esta seguro que quiere editar los artículos seleccionados?",
"confirm_bulk_edit_wipe_taxes" => "Toda la información de Impuestos de los Artículos será reemplazada.",
"confirm_delete" => "¿Esta seguro que quiere eliminar los artículos seleccionados?",
"confirm_restore" => "¿Esta seguro de restaurar los articulos seleccionado?",
"cost_price" => "",
"cost_price_number" => "",
"cost_price_required" => "",
"count" => "",
"csv_import_failed" => "",
"csv_import_nodata_wrongformat" => "",
"csv_import_partially_failed" => "",
"csv_import_success" => "",
"current_quantity" => "",
"default_pack_name" => "",
"description" => "",
"details_count" => "",
"do_nothing" => "",
"edit" => "",
"edit_fields_you_want_to_update" => "",
"edit_multiple_items" => "",
"empty_upc_items" => "",
"error_adding_updating" => "",
"error_updating_multiple" => "",
"generate_barcodes" => "",
"hsn_code" => "",
"image" => "",
"import_items_csv" => "",
"info_provided_by" => "",
"inventory" => "",
"inventory_CSV_import_quantity" => "",
"inventory_comments" => "",
"inventory_data_tracking" => "",
"inventory_date" => "",
"inventory_employee" => "",
"inventory_in_out_quantity" => "",
"inventory_remarks" => "",
"is_deleted" => "",
"is_printed" => "",
"is_serialized" => "",
"item" => "",
"item_id" => "",
"item_number" => "",
"item_number_duplicate" => "",
"kit" => "",
"location" => "",
"low_inventory_items" => "",
"low_sell_item" => "",
"manually_editing_of_quantity" => "",
"markup" => "",
"name" => "",
"name_required" => "",
"new" => "",
"no_description_items" => "",
"no_items_to_display" => "",
"none" => "",
"none_selected" => "",
"nonstock" => "",
"number_information" => "",
"number_required" => "",
"one_or_multiple" => "",
"pack_name" => "",
"qty_per_pack" => "",
"quantity" => "",
"quantity_number" => "",
"quantity_required" => "",
"receiving_quantity" => "",
"remove_image" => "",
"reorder_level" => "",
"reorder_level_number" => "",
"reorder_level_required" => "",
"retrive_item_info" => "",
"sales_tax_1" => "",
"sales_tax_2" => "",
"search_attributes" => "",
"select_image" => "",
"serialized_items" => "",
"standard" => "",
"stock" => "",
"stock_location" => "",
"stock_type" => "",
"successful_adding" => "",
"successful_bulk_edit" => "",
"successful_deleted" => "",
"successful_updating" => "",
"supplier" => "",
"tax_1" => "",
"tax_2" => "",
"tax_3" => "",
"tax_category" => "",
"tax_percent" => "",
"tax_percent_number" => "",
"tax_percent_required" => "",
"tax_percents" => "",
"temp" => "",
"type" => "",
"unit_price" => "",
"unit_price_number" => "",
"unit_price_required" => "",
"upc_database" => "",
"update" => "",
"use_inventory_menu" => "",
'add_minus' => "Inventario a agregar o disminuir.",
'allow_alt_description' => "Permitir Descripción Alternativa",
'amount_entry' => "Ingrese Cantidad",
'bulk_edit' => "Edición Masiva",
'buy_price_required' => "Precio de Compra es un campo requerido.",
'cannot_be_deleted' => "No se puede borrar el item(s) seleccionado, uno a mas de los items seleccionados tienen ventas.",
'cannot_find_item' => "Articulo no encontrado.",
'categories' => "",
'category' => "Categoría",
'category_new' => "",
'category_required' => "Categoría es un campo requerido.",
'change_all_to_allow_alt_desc' => "Permitir Descripción Alternativa para todo.",
'change_all_to_not_allow_allow_desc' => "No permitir Descripción Alternativa para todo.",
'change_all_to_serialized' => "Cambiar todo a Serializado",
'change_all_to_unserialized' => "Cambiar todo a No-Serializado",
'change_image' => "Cambiar Imagen",
'confirm_bulk_edit' => "¿Esta seguro que quiere editar los artículos seleccionados?",
'confirm_bulk_edit_wipe_taxes' => "Toda la información de Impuestos de los Artículos será reemplazada.",
'confirm_delete' => "¿Esta seguro que quiere eliminar los artículos seleccionados?",
'confirm_restore' => "¿Esta seguro de restaurar los articulos seleccionado?",
'cost_price' => "Precio mayoreo.",
'cost_price_number' => "El precio de mayoreo debe ser números.",
'cost_price_required' => "El precio de mayoreo es requerido.",
'count' => "Actualizar inventario",
'csv_import_failed' => "",
'csv_import_nodata_wrongformat' => "",
'csv_import_partially_failed' => "",
'csv_import_success' => "",
'current_quantity' => "Cantidad actual",
'default_pack_name' => "",
'description' => "Descripción",
'details_count' => "",
'do_nothing' => "",
'edit' => "",
'edit_fields_you_want_to_update' => "",
'edit_multiple_items' => "Edición de varios elementos",
'empty_upc_items' => "",
'error_adding_updating' => "",
'error_updating_multiple' => "",
'generate_barcodes' => "",
'hsn_code' => "",
'image' => "",
'import_items_csv' => "",
'info_provided_by' => "",
'inventory' => "Inventario",
'inventory_CSV_import_quantity' => "",
'inventory_comments' => "Comentarios",
'inventory_data_tracking' => "",
'inventory_date' => "Fecha",
'inventory_employee' => "Empleado",
'inventory_in_out_quantity' => "",
'inventory_remarks' => "",
'is_deleted' => "",
'is_printed' => "",
'is_serialized' => "el articulo tiene número de serie",
'item' => "Articulo",
'item_id' => "",
'item_number' => "Código de barras",
'item_number_duplicate' => "El código del artículo ya está presente en la base de datos.",
'kit' => "Kit",
'location' => "Ubicación",
'low_inventory_items' => "",
'low_sell_item' => "",
'manually_editing_of_quantity' => "",
'markup' => "",
'name' => "",
'name_required' => "",
'new' => "Nuevo articulo",
'no_description_items' => "",
'no_items_to_display' => "Sin artículos.",
'none' => "",
'none_selected' => "Debe elegir algún articulo para poder modificarlo",
'nonstock' => "",
'number_information' => "",
'number_required' => "",
'one_or_multiple' => "Articulos",
'pack_name' => "",
'qty_per_pack' => "Cantidad por paquete",
'quantity' => "Cantidad",
'quantity_number' => "Cantidad debe ser número.",
'quantity_required' => "Especifique la cantidad.",
'receiving_quantity' => "Cantidad recibida",
'remove_image' => "Quitar imagen",
'reorder_level' => "Cantidad minima",
'reorder_level_number' => "Cantidad minima deber ser numero.",
'reorder_level_required' => "Cantidad minima no puede estar vacío.",
'retrive_item_info' => "Obtener información del articulo",
'sales_tax_1' => "Impuesto de Ventas 1",
'sales_tax_2' => "Impuesto de Ventas 2",
'search_attributes' => "Atributos de Búsqueda",
'select_image' => "Seleccionar imagen",
'serialized_items' => "Artículos con número de serie",
'standard' => "Estándar",
'stock' => "Existencia",
'stock_location' => "Ubicación del inventario",
'stock_type' => "",
'successful_adding' => "",
'successful_bulk_edit' => "",
'successful_deleted' => "Se ha borrado correctamente",
'successful_updating' => "",
'supplier' => "",
'tax_1' => "",
'tax_2' => "",
'tax_3' => "",
'tax_category' => "",
'tax_percent' => "",
'tax_percent_number' => "",
'tax_percent_required' => "",
'tax_percents' => "",
'temp' => "",
'type' => "",
'unit_price' => "",
'unit_price_number' => "",
'unit_price_required' => "",
'upc_database' => "",
'update' => "",
'use_inventory_menu' => "",
];

View File

@@ -1,15 +1,16 @@
<?php
return [
"gcaptcha" => "No soy un robot.",
"go" => "Entrar",
"invalid_gcaptcha" => "Por favor compruebe que usted no es un robot.",
"invalid_installation" => "La instalacion no es correcta, revise el archivo php.ini.",
"invalid_username_and_password" => "Usuario y/o Password Invalido.",
"login" => "Login",
"logout" => "Salir",
"migration_needed" => "Una migración de base de datos a {0} empezara después de entrar.",
"password" => "Contraseña",
"required_username" => "",
"username" => "Usuario",
"welcome" => "Bienvenido a {0}!",
'gcaptcha' => "No soy un robot.",
'go' => "Entrar",
'invalid_gcaptcha' => "Por favor compruebe que usted no es un robot.",
'invalid_installation' => "La instalacion no es correcta, revise el archivo php.ini.",
'invalid_username_and_password' => "Usuario y/o Password Invalido.",
'login' => "Login",
'logout' => "Salir",
'migration_needed' => "Una migración de base de datos a {0} empezara después de entrar.",
'password' => "Contraseña",
'required_username' => "El nombre de usuario es obligatorio.",
'username' => "Usuario",
'welcome' => "Bienvenido a {0}!",
];

View File

@@ -1,58 +1,59 @@
<?php
return [
"amount_due" => "",
"cancel_receiving" => "Cancelar",
"cannot_be_deleted" => "Falló al borrar Entrada(s).",
"comments" => "Comentarios",
"complete_receiving" => "Completado",
"confirm_cancel_receiving" => "Esta seguro que quiere eliminar esta recepción? Todos los items se borraran.",
"confirm_delete" => "Esta seguro que quiere borrar esta recepción? Esta acción no se puede deshacer.",
"confirm_finish_receiving" => "Esta seguro que quiere enviar esta recepción? Esto no se puede deshacer.",
"confirm_restore" => "",
"cost" => "Costo",
"daily" => "",
"date" => "Fecha de Recibido",
"date_required" => "Se debe de agregar la fecha correcta.",
"date_type" => "Fecha es un campo obligatorio.",
"delete_entire_sale" => "Borrar Venta Completa",
"discount" => "Descuento",
"edit" => "Editar",
"edit_sale" => "Editar Recepción",
"employee" => "Empleado",
"error_editing_item" => "Fallo la edición del item.",
"error_requisition" => "No se puede mover el inventario desde o hacia la misma Ubicación.",
"find_or_scan_item" => "Encontrar o Escanear Articulo",
"find_or_scan_item_or_receipt" => "Encontrar o Escanear Articulo o Recibo",
"id" => "ID de Recepción",
"item_name" => "Nombre del Articulo",
"mode" => "Modo de Recepción",
"new_supplier" => "Nuevo Proveedor",
"one_or_multiple" => "recepción(es)",
"print_after_sale" => "Imprimir después de la Venta",
"quantity" => "Cant.",
"receipt" => "Recibo de Recepcion",
"receipt_number" => "Recepción #",
"receiving" => "Recibir",
"reference" => "Referencia",
"register" => "Recepción de Artículos",
"requisition" => "Requisición",
"return" => "Devolución",
"select_supplier" => "Seleccionar Proveedor (Opcional)",
"ship_pack" => "Empaque de Envio",
"start_typing_supplier_name" => "Empiece a escribir el nombre del Proveedor...",
"stock" => "Inventario",
"stock_destination" => "Destino del Inventario",
"stock_locaiton" => "Ubicación del Inventario",
"stock_source" => "Origen del Inventario",
"successfully_deleted" => "Se ha borrado exitosamente",
"successfully_updated" => "Recepción actualizada exitosamente",
"supplier" => "Proveedor",
"supplier_address" => "Dirección",
"supplier_email" => "Email",
"supplier_location" => "Ubicación",
"total" => "Total",
"transaction_failed" => "Transacción de Recepción falló.",
"unable_to_add_item" => "Agregar Articulo a Recepción falló.",
"unsuccessfully_updated" => "Actualización de Recepción falló.",
"update" => "Actualizar",
'amount_due' => "",
'cancel_receiving' => "Cancelar",
'cannot_be_deleted' => "Falló al borrar Entrada(s).",
'comments' => "Comentarios",
'complete_receiving' => "Completado",
'confirm_cancel_receiving' => "Esta seguro que quiere eliminar esta recepción? Todos los items se borraran.",
'confirm_delete' => "Esta seguro que quiere borrar esta recepción? Esta acción no se puede deshacer.",
'confirm_finish_receiving' => "Esta seguro que quiere enviar esta recepción? Esto no se puede deshacer.",
'confirm_restore' => "",
'cost' => "Costo",
'daily' => "",
'date' => "Fecha de Recibido",
'date_required' => "Se debe de agregar la fecha correcta.",
'date_type' => "Fecha es un campo obligatorio.",
'delete_entire_sale' => "Borrar Venta Completa",
'discount' => "Descuento",
'edit' => "Editar",
'edit_sale' => "Editar Recepción",
'employee' => "Empleado",
'error_editing_item' => "Fallo la edición del item.",
'error_requisition' => "No se puede mover el inventario desde o hacia la misma Ubicación.",
'find_or_scan_item' => "Encontrar o Escanear Articulo",
'find_or_scan_item_or_receipt' => "Encontrar o Escanear Articulo o Recibo",
'id' => "ID de Recepción",
'item_name' => "Nombre del Articulo",
'mode' => "Modo de Recepción",
'new_supplier' => "Nuevo Proveedor",
'one_or_multiple' => "recepción(es)",
'print_after_sale' => "Imprimir después de la Venta",
'quantity' => "Cant.",
'receipt' => "Recibo de Recepcion",
'receipt_number' => "Recepción #",
'receiving' => "Recibir",
'reference' => "Referencia",
'register' => "Recepción de Artículos",
'requisition' => "Requisición",
'return' => "Devolución",
'select_supplier' => "Seleccionar Proveedor (Opcional)",
'ship_pack' => "Empaque de Envio",
'start_typing_supplier_name' => "Empiece a escribir el nombre del Proveedor...",
'stock' => "Existencia",
'stock_destination' => "Destino del Inventario",
'stock_locaiton' => "Ubicación del Inventario",
'stock_source' => "Origen del Inventario",
'successfully_deleted' => "Se ha borrado exitosamente",
'successfully_updated' => "Recepción actualizada exitosamente",
'supplier' => "Proveedor",
'supplier_address' => "Dirección",
'supplier_email' => "Email",
'supplier_location' => "Ubicación",
'total' => "Total",
'transaction_failed' => "Transacción de Recepción falló.",
'unable_to_add_item' => "Agregar Articulo a Recepción falló.",
'unsuccessfully_updated' => "Actualización de Recepción falló.",
'update' => "Actualizar",
];

View File

@@ -1,148 +1,149 @@
<?php
return [
"all" => "Todas",
"authority" => "Autoridad",
"canceled" => "Cancelado",
"categories" => "Categorías",
"categories_summary_report" => "Informe resumido de categorías",
"category" => "Categoría",
"code_canceled" => "CNL",
"code_invoice" => "INV",
"code_pos" => "POS",
"code_quote" => "Q",
"code_return" => "RET",
"code_type" => "Tipo",
"code_work_order" => "OT",
"comments" => "Comentarios",
"commission" => "",
"complete" => "Ventas y Devoluciones Completadas",
"completed_sales" => "Ventas Completadas",
"confirm_delete" => "Está seguro que quiere borrar la(s) entrada(s) seleccionada(s)?",
"confirm_restore" => "Está seguro que quiere restaurar la(s) entrada(s) seleccionada(s)?",
"cost" => "Al por mayor",
"cost_price" => "Precio al por mayor",
"count" => "Contar",
"customer" => "Cliente",
"customers" => "Clientes",
"customers_summary_report" => "Reporte Resumido de Clientes",
"date" => "Fecha",
"date_range" => "Rango de Fecha",
"description" => "Descripción",
"detailed_receivings_report" => "Reporte Detallado de Recepciones",
"detailed_receivings_report_input" => "",
"detailed_reports" => "Reportes detallados",
"detailed_requisition_report" => "",
"detailed_sales_report" => "Reporte Detallado de Transacciones",
"discount" => "Descuento",
"discount_fixed" => "Descuento Fijo",
"discount_percent" => "Porcentaje de Descuento",
"discount_type" => "Tipo de Descuento",
"discounts" => "Descuentos",
"discounts_summary_report" => "Reporte Resumido de Descuentos",
"earned" => "Puntos ganados",
"employee" => "Empleado",
"employees" => "Empleados",
"employees_summary_report" => "Reporte Resumido de Empleados",
"expenses" => "Gastos",
"expenses_amount" => "Cantidad",
"expenses_categories" => "Gastos",
"expenses_categories_summary_report" => "Reporte Resumido de Gastos por Categoría",
"expenses_category" => "Categoría",
"expenses_payment_amount" => "",
"expenses_tax_amount" => "Impuesto",
"expenses_total_amount" => "Monto Total",
"expenses_total_tax_amount" => "Impuesto Total",
"graphical_reports" => "Reportes Gráficos",
"inventory" => "Inventario",
"inventory_low" => "Inventario Bajo",
"inventory_low_report" => "Reporte de Inventario Bajo",
"inventory_reports" => "Reportes de Inventario",
"inventory_summary" => "Resumen de Inventario",
"inventory_summary_report" => "Reporte Resumido de Inventario",
"item" => "Artículo",
"item_count" => "Filtrar Recuento de Artículos",
"item_name" => "Nombre del Artículo",
"item_number" => "Código de barras",
"items" => "Artículos",
"items_purchased" => "Artículos Comprados",
"items_received" => "Artículos Recibidos",
"items_summary_report" => "Reporte Resumido de Artículos",
"jurisdiction" => "Jurisdicción",
"low_inventory" => "",
"low_inventory_report" => "",
"low_sell_quantity" => "Cantidad Venta Baja",
"more_than_zero" => "Más que cero",
"name" => "Nombre",
"no_reports_to_display" => "No hay Artículos para mostrar.",
"payment_type" => "Tipo de Pago",
"payments" => "Pagos",
"payments_summary_report" => "Reporte Resumido de Pagos",
"profit" => "Ganancias",
"quantity" => "Cantidad",
"quantity_purchased" => "Cantidad Comprada",
"quotes" => "Presupuesto",
"received_by" => "Recepcionado por",
"receiving_id" => "Id de Recepción",
"receiving_type" => "Tipo de Recepción",
"receivings" => "Recepciones",
"reorder_level" => "Cantidad nima",
"report" => "Reporte",
"report_input" => "Entrada de Reporte",
"reports" => "Reportes",
"requisition" => "",
"requisition_by" => "",
"requisition_id" => "",
"requisition_item" => "",
"requisition_item_quantity" => "",
"requisition_related_item" => "",
"requisition_related_item_total_quantity" => "",
"requisition_related_item_unit_quantity" => "",
"requisitions" => "Requisiciones",
"returns" => "Devoluciones",
"revenue" => "Ingresos",
"sale_id" => "Id de Transacciones",
"sale_type" => "Tipo de Transacción",
"sales" => "Transacciones",
"sales_amount" => "Monto de Transacciones",
"sales_summary_report" => "Reporte Resumido de Transacciones",
"sales_taxes" => "Impuesto sobre las Ventas",
"sales_taxes_summary_report" => "Reporte Resumido de Impuestos sobre las Ventas",
"serial_number" => "Número de Serie",
"service_charge" => "",
"sold_by" => "Vendido por",
"sold_items" => "",
"sold_to" => "Vendido a",
"stock_location" => "Ubicación de Stock",
"sub_total_value" => "el Subtotal",
"subtotal" => "el Subtotal",
"summary_reports" => "Reportes Resumidos",
"supplied_by" => "Suministrado por",
"supplier" => "Proveedor",
"suppliers" => "Proveedores",
"suppliers_summary_report" => "Reporte Resumido de Proveedores",
"tax" => "Impuesto",
"tax_category" => "Categoría de Impuesto",
"tax_name" => "Nombre de Impuesto",
"tax_percent" => "Porcentaje de Impuesto",
"tax_rate" => "Tarifa de Impuesto",
"taxes" => "Impuestos",
"taxes_summary_report" => "Reporte Resumido de Impuestos",
"total" => "Total",
"total_inventory_value" => "Valor Total del Inventario",
"total_low_sell_quantity" => "Cantidad Total de Venta Baja",
"total_quantity" => "Cantidad Total",
"total_retail" => "Valor Menor Total del Inventario",
"trans_amount" => "Monto de Transacción",
"trans_due" => "Debido",
"trans_group" => "Grupo de Transacción",
"trans_nopay_sales" => "Ventas sin pago",
"trans_payments" => "Pagos",
"trans_refunded" => "Reembolsado",
"trans_sales" => "Ventas",
"trans_type" => "Tipo de Transacción",
"type" => "Tipo",
"unit_price" => "Precio de Venta",
"used" => "Puntos Usados",
"work_orders" => "Órdenes de Trabajo",
"zero_and_less" => "Cero y menos",
'all' => "Todas",
'authority' => "Autoridad",
'canceled' => "Cancelado",
'categories' => "Categorías",
'categories_summary_report' => "Informe resumido de categorías",
'category' => "Categoría",
'code_canceled' => "CNL",
'code_invoice' => "INV",
'code_pos' => "POS",
'code_quote' => "Q",
'code_return' => "RET",
'code_type' => "Tipo",
'code_work_order' => "OT",
'comments' => "Comentarios",
'commission' => "",
'complete' => "Ventas y Devoluciones Completadas",
'completed_sales' => "Ventas Completadas",
'confirm_delete' => "Está seguro que quiere borrar la(s) entrada(s) seleccionada(s)?",
'confirm_restore' => "Está seguro que quiere restaurar la(s) entrada(s) seleccionada(s)?",
'cost' => "Al por mayor",
'cost_price' => "Precio mayoreo.",
'count' => "Contar",
'customer' => "Cliente",
'customers' => "Clientes",
'customers_summary_report' => "Reporte Resumido de Clientes",
'date' => "Fecha",
'date_range' => "Rango de Fecha",
'description' => "Descripción",
'detailed_receivings_report' => "Reporte Detallado de Recepciones",
'detailed_receivings_report_input' => "",
'detailed_reports' => "Reportes detallados",
'detailed_requisition_report' => "",
'detailed_sales_report' => "Reporte Detallado de Transacciones",
'discount' => "Descuento",
'discount_fixed' => "Descuento Fijo",
'discount_percent' => "Porcentaje de Descuento",
'discount_type' => "Tipo de Descuento",
'discounts' => "Descuentos",
'discounts_summary_report' => "Reporte Resumido de Descuentos",
'earned' => "Puntos ganados",
'employee' => "Empleado",
'employees' => "Empleados",
'employees_summary_report' => "Reporte Resumido de Empleados",
'expenses' => "Gastos",
'expenses_amount' => "Cantidad",
'expenses_categories' => "Gastos",
'expenses_categories_summary_report' => "Reporte Resumido de Gastos por Categoría",
'expenses_category' => "Categoría",
'expenses_payment_amount' => "",
'expenses_tax_amount' => "Impuesto",
'expenses_total_amount' => "Monto Total",
'expenses_total_tax_amount' => "Impuesto Total",
'graphical_reports' => "Reportes Gráficos",
'inventory' => "Inventario",
'inventory_low' => "Inventario Bajo",
'inventory_low_report' => "Reporte de Inventario Bajo",
'inventory_reports' => "Reportes de Inventario",
'inventory_summary' => "Resumen de Inventario",
'inventory_summary_report' => "Reporte Resumido de Inventario",
'item' => "Articulo",
'item_count' => "Filtrar Recuento de Artículos",
'item_name' => "Nombre del Artículo",
'item_number' => "Código de barras",
'items' => "Artículos",
'items_purchased' => "Artículos Comprados",
'items_received' => "Artículos Recibidos",
'items_summary_report' => "Reporte Resumido de Artículos",
'jurisdiction' => "Jurisdicción",
'low_inventory' => "",
'low_inventory_report' => "",
'low_sell_quantity' => "Cantidad Venta Baja",
'more_than_zero' => "Más que cero",
'name' => "Nombre",
'no_reports_to_display' => "No hay Artículos para mostrar.",
'payment_type' => "Tipo de Pago",
'payments' => "Pagos",
'payments_summary_report' => "Reporte Resumido de Pagos",
'profit' => "Ganancias",
'quantity' => "Cantidad",
'quantity_purchased' => "Cantidad Comprada",
'quotes' => "Presupuesto",
'received_by' => "Recepcionado por",
'receiving_id' => "Id de Recepción",
'receiving_type' => "Tipo de Recepción",
'receivings' => "Recepciones",
'reorder_level' => "Cantidad minima",
'report' => "Reporte",
'report_input' => "Entrada de Reporte",
'reports' => "Reportes",
'requisition' => "",
'requisition_by' => "",
'requisition_id' => "",
'requisition_item' => "",
'requisition_item_quantity' => "",
'requisition_related_item' => "",
'requisition_related_item_total_quantity' => "",
'requisition_related_item_unit_quantity' => "",
'requisitions' => "Requisiciones",
'returns' => "Devoluciones",
'revenue' => "Ingresos",
'sale_id' => "Id de Transacciones",
'sale_type' => "Tipo de Transacción",
'sales' => "Transacciones",
'sales_amount' => "Monto de Transacciones",
'sales_summary_report' => "Reporte Resumido de Transacciones",
'sales_taxes' => "Impuesto sobre las Ventas",
'sales_taxes_summary_report' => "Reporte Resumido de Impuestos sobre las Ventas",
'serial_number' => "Número de Serie",
'service_charge' => "",
'sold_by' => "Vendido por",
'sold_items' => "",
'sold_to' => "Vendido a",
'stock_location' => "Ubicación de Stock",
'sub_total_value' => "el Subtotal",
'subtotal' => "el Subtotal",
'summary_reports' => "Reportes Resumidos",
'supplied_by' => "Suministrado por",
'supplier' => "Proveedor",
'suppliers' => "Proveedores",
'suppliers_summary_report' => "Reporte Resumido de Proveedores",
'tax' => "Impuesto",
'tax_category' => "Categoría de Impuesto",
'tax_name' => "Nombre de Impuesto",
'tax_percent' => "Porcentaje de Impuesto",
'tax_rate' => "Tarifa de Impuesto",
'taxes' => "Impuestos",
'taxes_summary_report' => "Reporte Resumido de Impuestos",
'total' => "Total",
'total_inventory_value' => "Valor Total del Inventario",
'total_low_sell_quantity' => "Cantidad Total de Venta Baja",
'total_quantity' => "Cantidad Total",
'total_retail' => "Valor Menor Total del Inventario",
'trans_amount' => "Monto de Transacción",
'trans_due' => "Debido",
'trans_group' => "Grupo de Transacción",
'trans_nopay_sales' => "Ventas sin pago",
'trans_payments' => "Pagos",
'trans_refunded' => "Reembolsado",
'trans_sales' => "Ventas",
'trans_type' => "Tipo de Transacción",
'type' => "Tipo",
'unit_price' => "Precio de Venta",
'used' => "Puntos Usados",
'work_orders' => "Órdenes de Trabajo",
'zero_and_less' => "Cero y menos",
];

View File

@@ -1,224 +1,225 @@
<?php
return [
"customers_available_points" => "Puntos Disponibles",
"rewards_package" => "Premios",
"rewards_remaining_balance" => "Puntos de recompensa sobrante son: ",
"account_number" => "Cuenta #",
"add_payment" => "Agregar Pago",
"amount_due" => "Monto de adeudo",
"amount_tendered" => "Cantidad Recibida",
"authorized_signature" => "Firma Autorizada",
"cancel_sale" => "Cancelar",
"cash" => "Efectivo",
"cash_1" => "",
"cash_2" => "",
"cash_3" => "",
"cash_4" => "",
"cash_adjustment" => "Ajuste de efectivo",
"cash_deposit" => "Deposito en Efectivo",
"cash_filter" => "Efectivo",
"change_due" => "Cambio",
"change_price" => "Cambiar precio de venta",
"check" => "Cheque",
"check_balance" => "Balance de Cheque",
"check_filter" => "Comprobar",
"close" => "",
"comment" => "Comentario",
"comments" => "Comentarios",
"company_name" => "",
"complete" => "",
"complete_sale" => "Completar",
"confirm_cancel_sale" => "¿Está seguro que desea limpiar la venta? Todos los artículos serán borrados.",
"confirm_delete" => "¿Está seguro que desea borrar todas las ventas seleccionadas?",
"confirm_restore" => "¿Está seguro de desear restaurar las ventas seleccionadas?",
"credit" => "Tarjeta de Crédito",
"credit_deposit" => "Deposito de crédito",
"credit_filter" => "Tarjeta de crédito",
"current_table" => "",
"customer" => "Cliente",
"customer_address" => "Dirección",
"customer_discount" => "Descuento",
"customer_email" => "Correo electrónico",
"customer_location" => "Ubicación",
"customer_mailchimp_status" => "Estado de MailChimp",
"customer_optional" => "(Obligatorio para pagos vencidos)",
"customer_required" => "(Obligatorio)",
"customer_total" => "Total",
"customer_total_spent" => "",
"daily_sales" => "",
"date" => "Fecha de venta",
"date_range" => "Rango de fechas",
"date_required" => "Ingresar una fecha correcta.",
"date_type" => "La fecha es un campo requerido.",
"debit" => "Tarjeta de débito",
"debit_filter" => "",
"delete" => "Permitir borrar",
"delete_confirmation" => "¿Seguro(a) de querer borrar esta venta? Esta acción no se puede deshacer.",
"delete_entire_sale" => "Eliminar la venta completa",
"delete_successful" => "Venta borrada correctamente.",
"delete_unsuccessful" => "Fallo al borrar la venta.",
"description_abbrv" => "Descrip.",
"discard" => "Descartar",
"discard_quote" => "",
"discount" => "Desc.",
"discount_included" => "% Descuento",
"discount_short" => "%",
"due" => "Adeudo",
"due_filter" => "Adeudo",
"edit" => "Editar",
"edit_item" => "Editar artículo",
"edit_sale" => "Editar venta",
"email_receipt" => "Enviar ticket",
"employee" => "Empleado",
"entry" => "Entrada",
"error_editing_item" => "Error editando el artículo",
"find_or_scan_item" => "Buscar o escanear artículo",
"find_or_scan_item_or_receipt" => "Buscar o escanear artículo o recibo",
"giftcard" => "Tarjeta de regalo",
"giftcard_balance" => "Balance de Tarjeta de Regalo",
"giftcard_filter" => "",
"giftcard_number" => "Número de Tarjeta de Regalo",
"group_by_category" => "Grupo por Categoría",
"group_by_type" => "Grupo por Tipo",
"hsn" => "HSN",
"id" => "ID de Venta",
"include_prices" => "¿Incluir precios?",
"invoice" => "Factura de venta",
"invoice_confirm" => "Esta factura sera enviada a",
"invoice_enable" => "Crear factura",
"invoice_filter" => "Facturas",
"invoice_no_email" => "Este cliente no tiene un correo electrónico válido.",
"invoice_number" => "Factura #",
"invoice_number_duplicate" => "Por favor ingrese un número de factura único.",
"invoice_sent" => "Factura enviada a",
"invoice_total" => "Total Facturado",
"invoice_type_custom_invoice" => "Factura Personalizada (custom_invoice.php)",
"invoice_type_custom_tax_invoice" => "Factura de Impuesto personalizada (custom_tax_invoice.php)",
"invoice_type_invoice" => "Factura",
"invoice_type_tax_invoice" => "Factura de Impuestos",
"invoice_unsent" => "Fallo el envio de la factura a",
"invoice_update" => "Recuento",
"item_insufficient_of_stock" => "Cantidad insuficiente en inventario.",
"item_name" => "Nombre del Artículo",
"item_number" => "Artículo #",
"item_out_of_stock" => "El artículo está agotado.",
"key_browser" => "Atajos Útiles",
"key_cancel" => "Cancelar actual Cotización/Factura/Venta",
"key_customer_search" => "Buscar Cliente",
"key_finish_quote" => "Finalizar Cotización/Factura sin pago",
"key_finish_sale" => "Agregar pago y Completar la Factura/Venta",
"key_full" => "Abrir en modo Pantalla Completa",
"key_function" => "Function",
"key_help" => "Atajos",
"key_help_modal" => "Abrir Ventana de Atajos",
"key_in" => "Acercar",
"key_item_search" => "Buscar Artículo",
"key_out" => "Alejar",
"key_payment" => "Agregar Pago",
"key_print" => "Imprimir Página Actual",
"key_restore" => "Restaurar Vista",
"key_search" => "Buscar Tablas de Reporte",
"key_suspend" => "Suspender Venta Actual",
"key_suspended" => "Mostrar Ventas Suspendidas",
"key_system" => "Atajos del Sistema",
"key_tendered" => "Editar Importe Licitado",
"key_title" => "Atajos de Teclado para Ventas",
"mc" => "",
"mode" => "Registrar Modo",
"must_enter_numeric" => "Cantidad recibida debe ser un número.",
"must_enter_numeric_giftcard" => "Número de Tarjeta de Regalo debe ser un número.",
"new_customer" => "Cliente Nuevo",
"new_item" => "Artículo Nuevo",
"no_description" => "Sin descripción",
"no_filter" => "Todos",
"no_items_in_cart" => "No hay artículos en el carrito.",
"no_sales_to_display" => "No hay ventas que mostrar.",
"none_selected" => "No has seleccionado alguna venta para borrar.",
"nontaxed_ind" => " ' ",
"not_authorized" => "Esta acción no esta autorizada.",
"one_or_multiple" => "Venta(s)",
"payment" => "Tipo de pago",
"payment_amount" => "Cantidad",
"payment_not_cover_total" => "La cantidad pagada debe ser mayor o igual al Total.",
"payment_type" => "Tipo",
"payments" => "",
"payments_total" => "Total de pagado",
"price" => "Precio",
"print_after_sale" => "Imprimir recibo después de una venta",
"quantity" => "Cantidad",
"quantity_less_than_reorder_level" => "Advertencia. La cantidad deseada es insuficiente.",
"quantity_less_than_zero" => "Advertencia. La cantidad deseada es insuficiente. Puedes procesar la venta, pero verifica tu inventario.",
"quantity_of_items" => "Cantidad de {0} artículos",
"quote" => "Cotizar",
"quote_number" => "Número de presupuesto",
"quote_number_duplicate" => "El número de cotización debe ser único.",
"quote_sent" => "Cotización enviada a",
"quote_unsent" => "La cotización no se pudo enviar a",
"receipt" => "Recibo de venta",
"receipt_no_email" => "Este cliente no tiene una dirección de correo válida.",
"receipt_number" => "Venta #",
"receipt_sent" => "Recibo enviado a",
"receipt_unsent" => "Falló el envío del recibo a",
"refund" => "Modo de Reembolso",
"register" => "Registro de ventas",
"remove_customer" => "Borrar cliente",
"remove_discount" => "",
"return" => "Devolución",
"rewards" => "Puntos de recompensa",
"rewards_balance" => "Balance de puntos de recompensa",
"sale" => "Venta",
"sale_by_invoice" => "Venta por factura",
"sale_for_customer" => "Cliente:",
"sale_time" => "Hora",
"sales_tax" => "Impuestos",
"sales_total" => "",
"select_customer" => "Seleccionar cliente",
"send_invoice" => "Enviar factura",
"send_quote" => "Enviar cotización",
"send_receipt" => "Enviar recibo",
"send_work_order" => "Enviar orden de trabajo",
"serial" => "Serie",
"service_charge" => "",
"show_due" => "",
"show_invoice" => "Mostrar factura",
"show_receipt" => "Mostrar recibo",
"start_typing_customer_name" => "Empiece a escribir los detalles del cliente...",
"start_typing_item_name" => "Escriba el nombre del artículo o escanea el código de barras...",
"stock" => "Inventario",
"stock_location" => "Localización del inventario",
"sub_total" => "el subtotal",
"successfully_deleted" => "Se ha eliminado",
"successfully_restored" => "Se ha restuarado satisfactoriamente",
"successfully_suspended_sale" => "La venta se ha suspendido.",
"successfully_updated" => "Venta actualizada.",
"suspend_sale" => "Suspender",
"suspended_doc_id" => "Documento",
"suspended_sale_id" => "ID",
"suspended_sales" => "Suspendidas",
"table" => "Datos",
"takings" => "Ventas diarias",
"tax" => "Impuestos",
"tax_id" => "ID Impuesto",
"tax_invoice" => "Impuesto de la factura",
"tax_percent" => "Impuesto %",
"taxed_ind" => "T",
"total" => "Total",
"total_tax_exclusive" => "Sin impuesto",
"transaction_failed" => "Ha fallado la venta.",
"unable_to_add_item" => "Falló al agregar artículos para venta",
"unsuccessfully_deleted" => "La eliminación de venta falló.",
"unsuccessfully_restored" => "La restauración de la venta falló.",
"unsuccessfully_suspended_sale" => "La suspensión de venta falló.",
"unsuccessfully_updated" => "Ha fallado la actualización de la venta.",
"unsuspend" => "Retomar",
"unsuspend_and_delete" => "Acción",
"update" => "Actualizar",
"upi" => "UPI",
"visa" => "",
"wholesale" => "",
"work_order" => "Orden de trabajo",
"work_order_number" => "Número de orden de trabajo",
"work_order_number_duplicate" => "El número de orden de trabajo debe ser único.",
"work_order_sent" => "Orden de trabajo enviada a",
"work_order_unsent" => "Falló la Orden de Trabajo al enviar a",
'customers_available_points' => "Puntos Disponibles",
'rewards_package' => "Premios",
'rewards_remaining_balance' => "Puntos de recompensa sobrante son: ",
'account_number' => "Cuenta #",
'add_payment' => "Agregar Pago",
'amount_due' => "Monto de adeudo",
'amount_tendered' => "Cantidad Recibida",
'authorized_signature' => "Firma Autorizada",
'cancel_sale' => "Cancelar",
'cash' => "Efectivo",
'cash_1' => "",
'cash_2' => "",
'cash_3' => "",
'cash_4' => "",
'cash_adjustment' => "Ajuste de efectivo",
'cash_deposit' => "Deposito en Efectivo",
'cash_filter' => "Efectivo",
'change_due' => "Cambio",
'change_price' => "Cambiar precio de venta",
'check' => "Cheque",
'check_balance' => "Balance de Cheque",
'check_filter' => "Comprobar",
'close' => "",
'comment' => "Comentario",
'comments' => "Comentarios",
'company_name' => "",
'complete' => "",
'complete_sale' => "Completar",
'confirm_cancel_sale' => "¿Está seguro que desea limpiar la venta? Todos los artículos serán borrados.",
'confirm_delete' => "¿Está seguro que desea borrar todas las ventas seleccionadas?",
'confirm_restore' => "¿Está seguro de desear restaurar las ventas seleccionadas?",
'credit' => "Tarjeta de Crédito",
'credit_deposit' => "Deposito de crédito",
'credit_filter' => "Tarjeta de crédito",
'current_table' => "",
'customer' => "Cliente",
'customer_address' => "Dirección",
'customer_discount' => "Descuento",
'customer_email' => "Correo electrónico",
'customer_location' => "Ubicación",
'customer_mailchimp_status' => "Estado de MailChimp",
'customer_optional' => "(Obligatorio para pagos vencidos)",
'customer_required' => "(Obligatorio)",
'customer_total' => "Total",
'customer_total_spent' => "",
'daily_sales' => "",
'date' => "Fecha de venta",
'date_range' => "Rango de fechas",
'date_required' => "Ingresar una fecha correcta.",
'date_type' => "La fecha es un campo requerido.",
'debit' => "Tarjeta de débito",
'debit_filter' => "",
'delete' => "Permitir borrar",
'delete_confirmation' => "¿Seguro(a) de querer borrar esta venta? Esta acción no se puede deshacer.",
'delete_entire_sale' => "Eliminar la venta completa",
'delete_successful' => "Venta borrada correctamente.",
'delete_unsuccessful' => "Fallo al borrar la venta.",
'description_abbrv' => "Descrip.",
'discard' => "Descartar",
'discard_quote' => "",
'discount' => "Desc.",
'discount_included' => "% Descuento",
'discount_short' => "%",
'due' => "Adeudo",
'due_filter' => "Adeudo",
'edit' => "Editar",
'edit_item' => "Editar artículo",
'edit_sale' => "Editar venta",
'email_receipt' => "Enviar ticket",
'employee' => "Empleado",
'entry' => "Entrada",
'error_editing_item' => "Error editando el artículo",
'find_or_scan_item' => "Buscar o escanear artículo",
'find_or_scan_item_or_receipt' => "Buscar o escanear artículo o recibo",
'giftcard' => "Tarjeta de regalo",
'giftcard_balance' => "Balance de Tarjeta de Regalo",
'giftcard_filter' => "",
'giftcard_number' => "Número de Tarjeta de Regalo",
'group_by_category' => "Grupo por Categoría",
'group_by_type' => "Grupo por Tipo",
'hsn' => "HSN",
'id' => "ID de Venta",
'include_prices' => "¿Incluir precios?",
'invoice' => "Factura de venta",
'invoice_confirm' => "Esta factura sera enviada a",
'invoice_enable' => "Crear factura",
'invoice_filter' => "Facturas",
'invoice_no_email' => "Este cliente no tiene un correo electrónico válido.",
'invoice_number' => "Factura #",
'invoice_number_duplicate' => "Por favor ingrese un número de factura único.",
'invoice_sent' => "Factura enviada a",
'invoice_total' => "Total Facturado",
'invoice_type_custom_invoice' => "Factura Personalizada (custom_invoice.php)",
'invoice_type_custom_tax_invoice' => "Factura de Impuesto personalizada (custom_tax_invoice.php)",
'invoice_type_invoice' => "Factura",
'invoice_type_tax_invoice' => "Factura de Impuestos",
'invoice_unsent' => "Fallo el envio de la factura a",
'invoice_update' => "Recuento",
'item_insufficient_of_stock' => "Cantidad insuficiente en inventario.",
'item_name' => "Nombre del Artículo",
'item_number' => "Artículo #",
'item_out_of_stock' => "El artículo está agotado.",
'key_browser' => "Atajos Útiles",
'key_cancel' => "Cancelar actual Cotización/Factura/Venta",
'key_customer_search' => "Buscar Cliente",
'key_finish_quote' => "Finalizar Cotización/Factura sin pago",
'key_finish_sale' => "Agregar pago y Completar la Factura/Venta",
'key_full' => "Abrir en modo Pantalla Completa",
'key_function' => "Function",
'key_help' => "Atajos",
'key_help_modal' => "Abrir Ventana de Atajos",
'key_in' => "Acercar",
'key_item_search' => "Buscar Artículo",
'key_out' => "Alejar",
'key_payment' => "Agregar Pago",
'key_print' => "Imprimir Página Actual",
'key_restore' => "Restaurar Vista",
'key_search' => "Buscar Tablas de Reporte",
'key_suspend' => "Suspender Venta Actual",
'key_suspended' => "Mostrar Ventas Suspendidas",
'key_system' => "Atajos del Sistema",
'key_tendered' => "Editar Importe Licitado",
'key_title' => "Atajos de Teclado para Ventas",
'mc' => "",
'mode' => "Registrar Modo",
'must_enter_numeric' => "Cantidad recibida debe ser un número.",
'must_enter_numeric_giftcard' => "Número de Tarjeta de Regalo debe ser un número.",
'new_customer' => "Cliente Nuevo",
'new_item' => "Artículo Nuevo",
'no_description' => "Sin descripción",
'no_filter' => "Todos",
'no_items_in_cart' => "No hay artículos en el carrito.",
'no_sales_to_display' => "No hay ventas que mostrar.",
'none_selected' => "No has seleccionado alguna venta para borrar.",
'nontaxed_ind' => " ' ",
'not_authorized' => "Esta acción no esta autorizada.",
'one_or_multiple' => "Venta(s)",
'payment' => "Tipo de pago",
'payment_amount' => "Cantidad",
'payment_not_cover_total' => "La cantidad pagada debe ser mayor o igual al Total.",
'payment_type' => "Tipo",
'payments' => "",
'payments_total' => "Total de pagado",
'price' => "Precio",
'print_after_sale' => "Imprimir recibo después de una venta",
'quantity' => "Cantidad",
'quantity_less_than_reorder_level' => "Advertencia. La cantidad deseada es insuficiente.",
'quantity_less_than_zero' => "Advertencia. La cantidad deseada es insuficiente. Puedes procesar la venta, pero verifica tu inventario.",
'quantity_of_items' => "Cantidad de {0} artículos",
'quote' => "Cotizar",
'quote_number' => "Número de presupuesto",
'quote_number_duplicate' => "El número de cotización debe ser único.",
'quote_sent' => "Cotización enviada a",
'quote_unsent' => "La cotización no se pudo enviar a",
'receipt' => "Recibo de venta",
'receipt_no_email' => "Este cliente no tiene una dirección de correo válida.",
'receipt_number' => "Venta #",
'receipt_sent' => "Recibo enviado a",
'receipt_unsent' => "Falló el envío del recibo a",
'refund' => "Modo de Reembolso",
'register' => "Registro de ventas",
'remove_customer' => "Borrar cliente",
'remove_discount' => "",
'return' => "Devolución",
'rewards' => "Puntos de recompensa",
'rewards_balance' => "Balance de puntos de recompensa",
'sale' => "Venta",
'sale_by_invoice' => "Venta por factura",
'sale_for_customer' => "Cliente:",
'sale_time' => "Hora",
'sales_tax' => "Impuestos",
'sales_total' => "",
'select_customer' => "Seleccionar cliente",
'send_invoice' => "Enviar factura",
'send_quote' => "Enviar cotización",
'send_receipt' => "Enviar recibo",
'send_work_order' => "Enviar orden de trabajo",
'serial' => "Serie",
'service_charge' => "",
'show_due' => "",
'show_invoice' => "Mostrar factura",
'show_receipt' => "Mostrar recibo",
'start_typing_customer_name' => "Empiece a escribir los detalles del cliente...",
'start_typing_item_name' => "Escriba el nombre del artículo o escanea el código de barras...",
'stock' => "Existencia",
'stock_location' => "Localización del inventario",
'sub_total' => "el subtotal",
'successfully_deleted' => "Se ha eliminado",
'successfully_restored' => "Se ha restuarado satisfactoriamente",
'successfully_suspended_sale' => "La venta se ha suspendido.",
'successfully_updated' => "Venta actualizada.",
'suspend_sale' => "Suspender",
'suspended_doc_id' => "Documento",
'suspended_sale_id' => "ID",
'suspended_sales' => "Suspendidas",
'table' => "Datos",
'takings' => "Ventas diarias",
'tax' => "Impuestos",
'tax_id' => "ID Impuesto",
'tax_invoice' => "Impuesto de la factura",
'tax_percent' => "Impuesto %",
'taxed_ind' => "T",
'total' => "Total",
'total_tax_exclusive' => "Sin impuesto",
'transaction_failed' => "Ha fallado la venta.",
'unable_to_add_item' => "Falló al agregar artículos para venta",
'unsuccessfully_deleted' => "La eliminación de venta falló.",
'unsuccessfully_restored' => "La restauración de la venta falló.",
'unsuccessfully_suspended_sale' => "La suspensión de venta falló.",
'unsuccessfully_updated' => "Ha fallado la actualización de la venta.",
'unsuspend' => "Retomar",
'unsuspend_and_delete' => "Acción",
'update' => "Actualizar",
'upi' => "UPI",
'visa' => "",
'wholesale' => "",
'work_order' => "Orden de trabajo",
'work_order_number' => "Número de orden de trabajo",
'work_order_number_duplicate' => "El número de orden de trabajo debe ser único.",
'work_order_sent' => "Orden de trabajo enviada a",
'work_order_unsent' => "Falló la Orden de Trabajo al enviar a",
];

View File

@@ -1,24 +1,25 @@
<?php
return [
"account_number" => "Número de Cuenta",
"agency_name" => "Nombre de Agencia",
"cannot_be_deleted" => "No se puede borrar el/los Proveedor(es) seleccionado(s). Uno o más tienen Ventas.",
"category" => "Categoría",
"company_name" => "Nombre de la Compañía",
"company_name_required" => "Nombre de la Compañía es un campo requerido.",
"confirm_delete" => "¿Está seguro que quiere borrar al/los Proveedor(es) seleccionados?",
"confirm_restore" => "¿Esá seguro que quiere restaurar al o los Proveedores seleccionados?",
"cost" => "Costo del Proveedor",
"error_adding_updating" => "Fallo al actualizar o agregar un Proveedor.",
"goods" => "Proveedor de Materiales",
"new" => "Nuevo Proveedor",
"none_selected" => "No ha seleccionado Proveedor(es) para borrar.",
"one_or_multiple" => "Proveedor(es)",
"successful_adding" => "Usted ha agregado un Proveedor exitosamente",
"successful_deleted" => "Ha borrado con éxito",
"successful_updating" => "Ha actualizado un Proveedor con éxito",
"supplier" => "Proveedor",
"supplier_id" => "Id",
"tax_id" => "Id Impuesto",
"update" => "Actualizar Proveedor",
'account_number' => "Número de Cuenta",
'agency_name' => "Nombre de Agencia",
'cannot_be_deleted' => "No se puede borrar el/los Proveedor(es) seleccionado(s). Uno o más tienen Ventas.",
'category' => "Categoría",
'company_name' => "Nombre de la Compañía",
'company_name_required' => "Nombre de la Compañía es un campo requerido.",
'confirm_delete' => "¿Está seguro que quiere borrar al/los Proveedor(es) seleccionados?",
'confirm_restore' => "¿Esá seguro que quiere restaurar al o los Proveedores seleccionados?",
'cost' => "Costo del Proveedor",
'error_adding_updating' => "Fallo al actualizar o agregar un Proveedor.",
'goods' => "Proveedor de Materiales",
'new' => "Nuevo Proveedor",
'none_selected' => "No ha seleccionado Proveedor(es) para borrar.",
'one_or_multiple' => "Proveedor(es)",
'successful_adding' => "Usted ha agregado un Proveedor exitosamente",
'successful_deleted' => "Se ha borrado correctamente",
'successful_updating' => "Ha actualizado un Proveedor con éxito",
'supplier' => "Proveedor",
'supplier_id' => "Id",
'tax_id' => "Id Impuesto",
'update' => "Actualizar Proveedor",
];

View File

@@ -1,82 +1,83 @@
<?php
return [
"add_exception" => "Agregar Excepcion",
"cascade" => "Cascada",
"cascade_sequence" => "Secuencia de Cascada",
"city" => "Ciudad",
"code" => "Codigo",
"confirm_delete" => "Estas seguro que deseas eliminar este código de impuesto? Esta acción es irreversible",
"confirm_restore" => "Estas seguro que deseas restaurar los códigos de impuestos?",
"default_tax_category" => "Impuesto por Default",
"default_tax_rate" => "Tarifa de impuesto por default",
"error_adding_updating" => "Código de impuesto agregado o error en actualización",
"group_seq" => "Secuencia de Grupo",
"jurisdiction_name" => "Nombre de la Jurisdicción",
"name" => "Nombre",
"new" => "Impuesto Nuevo",
"no_taxes" => "",
"no_taxes_to_display" => "Códigos de impuestos no disponible",
"reporting_authority" => "Imformacion de Autoridad",
"round_half_down" => "a número entero inferior",
"round_half_even" => "a numero par entero más próximo",
"round_half_odd" => "a numero entero impar mas próximo",
"round_half_up" => "a numero entero superior",
"rounding_code" => "código de redondeo",
"sales_tax" => "Impuesto de Venta",
"sales_tax_by_invoice" => "Impuesto de Ventas por factura",
"sequence" => "Secuencia",
"state" => "Estado",
"successful_deleted" => "Eliminado Satisfactoriamente",
"tax_categories" => "Categorias de Impuestos",
"tax_categories_configuration" => "Configuración de Categorías de Impuestos",
"tax_categories_saved_successfully" => "Las categorías de impuestos han sido guardados",
"tax_categories_saved_unsuccessfully" => "Categorías de impuestos no han sido guardados",
"tax_category" => "Categoria de Impuesto",
"tax_category_code" => "codigo de categoria de impuesto",
"tax_category_duplicate" => "duplicar categoria de impuesto",
"tax_category_invalid_chars" => "caracteres invalidos en el nombre de la categoria de impuesto",
"tax_category_name" => "nombre de la categoria de impuesto",
"tax_category_new" => "nueva categoria de impuesto",
"tax_category_required" => "Categoría de impuesto es requerida",
"tax_code" => "codigo de impuesto",
"tax_code_cannot_be_deleted" => "error al eliminar codigo de impuesto",
"tax_code_duplicate" => "Código de impuesto duplicado",
"tax_code_invalid_chars" => "Caracteres inválidos en el código de impuesto",
"tax_code_name" => "nombre del codigo de impuesto",
"tax_code_required" => "codigo de impuesto es un campo requerido",
"tax_code_successful_deleted" => "has eliminado satisfactoriamente el codigo de impuesto",
"tax_code_successful_updated" => "has actualizado satisfactoriamente",
"tax_code_successful_updating" => "has actualizado satisfactoriamente el codigo de impuesto",
"tax_code_successfully_added" => "has agregado satisfactoriamente",
"tax_code_type" => "tipo de codigo de impuesto",
"tax_codes" => "codigos de impuesto",
"tax_codes_configuration" => "configuracion de codigos de impuesto",
"tax_codes_saved_successfully" => "cambios guardados en codigo de impuesto",
"tax_codes_saved_unsuccessfully" => "no se guardaron los cambios en el codigo de impuesto",
"tax_excluded" => "impuesto excluido",
"tax_group" => "grupo de impuesto",
"tax_group_not_unique" => "Grupo de impuestos {0} no es el unico",
"tax_group_sequence" => "secuencia de grupo de impuesto",
"tax_included" => "impuesto incluido",
"tax_jurisdiction" => "impuesto por ley",
"tax_jurisdiction_duplicate" => "Impuesto por ley duplicado",
"tax_jurisdiction_invalid_chars" => "Caracteres inválidos en el nombre por ley",
"tax_jurisdiction_required" => "impuesto por ley es requerido",
"tax_jurisdictions" => "impuestos por leyes",
"tax_jurisdictions_configuration" => "configuracion de impuestos por leyes",
"tax_jurisdictions_saved_successfully" => "cambios guardados en los impuestos por leyes",
"tax_jurisdictions_saved_unsuccessfully" => "no se guardaron los cambios en los impuestos por leyes",
"tax_rate" => "tarifa de impuesto",
"tax_rate_configuration" => "configuracion de tarifa de impuesto",
"tax_rate_error_adding_updating" => "tarifa de impuesto agregado o actualizacion fallida",
"tax_rate_numeric" => "tarifa de impuesto debe ser numero",
"tax_rate_required" => "tarifa de impuesto es requerida",
"tax_rate_successful_updated" => "has actualizado satisfactoriamente",
"tax_rate_successfully_added" => "has agregado satisfactoriamente",
"tax_rates" => "tarifas de impuestos",
"tax_rates_configuration" => "configuracion de tarifas de impuestos",
"tax_rounding" => "impuesto redondeado",
"tax_type" => "tipo de impuesto",
"update" => "Actualizar tarifa de impuesto",
"vat_tax" => "Impuesto IVA",
'add_exception' => "Agregar Excepcion",
'cascade' => "Cascada",
'cascade_sequence' => "Secuencia de Cascada",
'city' => "Ciudad",
'code' => "Codigo",
'confirm_delete' => "Estas seguro que deseas eliminar este código de impuesto? Esta acción es irreversible",
'confirm_restore' => "Estas seguro que deseas restaurar los códigos de impuestos?",
'default_tax_category' => "Impuesto por Default",
'default_tax_rate' => "Tarifa de impuesto por default",
'error_adding_updating' => "Código de impuesto agregado o error en actualización",
'group_seq' => "Secuencia de Grupo",
'jurisdiction_name' => "Nombre de la Jurisdicción",
'name' => "Nombre",
'new' => "Impuesto Nuevo",
'no_taxes' => "",
'no_taxes_to_display' => "Códigos de impuestos no disponible",
'reporting_authority' => "Imformacion de Autoridad",
'round_half_down' => "a número entero inferior",
'round_half_even' => "a numero par entero más próximo",
'round_half_odd' => "a numero entero impar mas próximo",
'round_half_up' => "a numero entero superior",
'rounding_code' => "código de redondeo",
'sales_tax' => "Impuesto de Venta",
'sales_tax_by_invoice' => "Impuesto de Ventas por factura",
'sequence' => "Secuencia",
'state' => "Estado",
'successful_deleted' => "Se ha borrado correctamente",
'tax_categories' => "Categorias de Impuestos",
'tax_categories_configuration' => "Configuración de Categorías de Impuestos",
'tax_categories_saved_successfully' => "Las categorías de impuestos han sido guardados",
'tax_categories_saved_unsuccessfully' => "Categorías de impuestos no han sido guardados",
'tax_category' => "Categoria de Impuesto",
'tax_category_code' => "codigo de categoria de impuesto",
'tax_category_duplicate' => "duplicar categoria de impuesto",
'tax_category_invalid_chars' => "caracteres invalidos en el nombre de la categoria de impuesto",
'tax_category_name' => "nombre de la categoria de impuesto",
'tax_category_new' => "nueva categoria de impuesto",
'tax_category_required' => "Categoría de impuesto es requerida",
'tax_code' => "codigo de impuesto",
'tax_code_cannot_be_deleted' => "error al eliminar codigo de impuesto",
'tax_code_duplicate' => "Código de impuesto duplicado",
'tax_code_invalid_chars' => "Caracteres inválidos en el código de impuesto",
'tax_code_name' => "nombre del codigo de impuesto",
'tax_code_required' => "codigo de impuesto es un campo requerido",
'tax_code_successful_deleted' => "has eliminado satisfactoriamente el codigo de impuesto",
'tax_code_successful_updated' => "has actualizado satisfactoriamente",
'tax_code_successful_updating' => "has actualizado satisfactoriamente el codigo de impuesto",
'tax_code_successfully_added' => "has agregado satisfactoriamente",
'tax_code_type' => "tipo de codigo de impuesto",
'tax_codes' => "codigos de impuesto",
'tax_codes_configuration' => "configuracion de codigos de impuesto",
'tax_codes_saved_successfully' => "cambios guardados en codigo de impuesto",
'tax_codes_saved_unsuccessfully' => "no se guardaron los cambios en el codigo de impuesto",
'tax_excluded' => "impuesto excluido",
'tax_group' => "grupo de impuesto",
'tax_group_not_unique' => "Grupo de impuestos {0} no es el unico",
'tax_group_sequence' => "secuencia de grupo de impuesto",
'tax_included' => "impuesto incluido",
'tax_jurisdiction' => "impuesto por ley",
'tax_jurisdiction_duplicate' => "Impuesto por ley duplicado",
'tax_jurisdiction_invalid_chars' => "Caracteres inválidos en el nombre por ley",
'tax_jurisdiction_required' => "impuesto por ley es requerido",
'tax_jurisdictions' => "impuestos por leyes",
'tax_jurisdictions_configuration' => "configuracion de impuestos por leyes",
'tax_jurisdictions_saved_successfully' => "cambios guardados en los impuestos por leyes",
'tax_jurisdictions_saved_unsuccessfully' => "no se guardaron los cambios en los impuestos por leyes",
'tax_rate' => "tarifa de impuesto",
'tax_rate_configuration' => "configuracion de tarifa de impuesto",
'tax_rate_error_adding_updating' => "tarifa de impuesto agregado o actualizacion fallida",
'tax_rate_numeric' => "tarifa de impuesto debe ser numero",
'tax_rate_required' => "tarifa de impuesto es requerida",
'tax_rate_successful_updated' => "has actualizado satisfactoriamente",
'tax_rate_successfully_added' => "has agregado satisfactoriamente",
'tax_rates' => "tarifas de impuestos",
'tax_rates_configuration' => "configuracion de tarifas de impuestos",
'tax_rounding' => "impuesto redondeado",
'tax_type' => "tipo de impuesto",
'update' => "Actualizar tarifa de impuesto",
'vat_tax' => "Impuesto IVA",
];

View File

@@ -1,15 +1,16 @@
<?php
return [
"gcaptcha" => "Je ne suis pas un robot.",
"go" => "Lancer",
"invalid_gcaptcha" => "Veuillez vérifier que vous n'êtes pas un robot.",
"invalid_installation" => "Cette installation est incorrecte, veuillez vérifier votre fichier php.ini.",
"invalid_username_and_password" => "Nom d'utilisateur et/ou mot de passe invalide.",
"login" => "Login",
"logout" => "Déconnexion",
"migration_needed" => "Une migration de base de données vers {0} débutera après l'ouverture de session.",
"password" => "Mot de passe",
"required_username" => "",
"username" => "Nom d'utilisateur",
"welcome" => "Bienvenue à {0} !",
'gcaptcha' => "Je ne suis pas un robot.",
'go' => "Lancer",
'invalid_gcaptcha' => "Veuillez vérifier que vous n'êtes pas un robot.",
'invalid_installation' => "Cette installation est incorrecte, veuillez vérifier votre fichier php.ini.",
'invalid_username_and_password' => "Nom d'utilisateur et/ou mot de passe invalide.",
'login' => "Login",
'logout' => "Déconnexion",
'migration_needed' => "Une migration de base de données vers {0} débutera après l'ouverture de session.",
'password' => "Mot de passe",
'required_username' => "Le champ nom utilisateur est obligatoire.",
'username' => "Nom d'utilisateur",
'welcome' => "Bienvenue à {0} !",
];

View File

@@ -1,88 +1,88 @@
<?php
return [
"address_1" => "Alamat 1",
"address_2" => "Alamat 2",
"admin" => "",
"city" => "Kota",
"clerk" => "",
"close" => "Tutup",
"color" => "",
"comments" => "Komentar",
"common" => "umum",
"confirm_search" => "Anda telah memilih satu atau beberapa baris, ini tidak akan dipilih lagi setelah pencarian Anda. Apakah Anda yakin ingin mengirimkan pencarian ini?",
"copyrights" => "© 2010 - {0}",
"correct_errors" => "Silahkan perbaiki kesalahan sebelum menyimpan",
"country" => "Negara",
"dashboard" => "",
"date" => "Tanggal",
"delete" => "Hapus",
"det" => "detil",
"download_import_template" => "Unduh yang Diimpor dalam format CSV (CSV)",
"edit" => "ubah",
"email" => "Email",
"email_invalid_format" => "Alamat email tidak dalam format yang benar.",
"export_csv" => "Ekspor ke CSV",
"export_csv_no" => "Tidak",
"export_csv_yes" => "Ya",
"fields_required_message" => "Bagian yang berwarna merah harus diisi",
"fields_required_message_unique" => "",
"first_name" => "Nama Depan",
"first_name_required" => "Nama Depan harus diisi.",
"first_page" => "Pertama",
"gender" => "Jenis Kelamin",
"gender_female" => "P",
"gender_male" => "L",
"gender_undefined" => "",
"icon" => "ikon",
"id" => "Nomor ID",
"import" => "Impor",
"import_change_file" => "Ubah",
"import_csv" => "Impor dari CSV",
"import_full_path" => "Diperlukan alamat lengkap file CSV",
"import_remove_file" => "Hapus",
"import_select_file" => "Pilih file",
"inv" => "Persediaan",
"last_name" => "Nama Belakang",
"last_name_required" => "Nama belakang harus diisi.",
"last_page" => "Akhir",
"learn_about_project" => "Untuk mempelajari informasi terbaru tentang proyek ini.",
"list_of" => "Daftar",
"logo" => "Logo",
"logo_mark" => "Tanda",
"logout" => "Keluar",
"manager" => "",
"migration_needed" => "Migrasi data ke {0} akan dimulai setelah masuk.",
"new" => "Baru",
"no" => "",
"no_persons_to_display" => "Tidak ada orang yang ditampilkan.",
"none_selected_text" => "[Pilih]",
"or" => "ATAU",
"people" => "",
"phone_number" => "Nomor Telepon",
"phone_number_required" => "Nomer Telepon Wajib Diisi",
"please_visit_my" => "Silahkan kunjungi",
"position" => "",
"powered_by" => "Diberdayakan oleh",
"price" => "Harga",
"print" => "Cetak",
"remove" => "Hapus",
"required" => "Diperlukan",
"restore" => "Kembalikan",
"return_policy" => "Kebijakan Retur",
"search" => "Cari",
"search_options" => "Pilihan pencarian",
"searched_for" => "Mencari untuk",
"software_short" => "OSPOS",
"software_title" => "Sumber Terbuka Titik Penjualan",
"state" => "Provinsi",
"submit" => "Kirim",
"total_spent" => "Total",
"unknown" => "Tidak diketahui",
"view_recent_sales" => "Lihat Penjualan Terkini",
"website" => "Situs",
"welcome" => "Selamat Datang",
"welcome_message" => "Selamat Datang di OSPOS, klik modul di bawah ini untuk memulai.",
"yes" => "",
"you_are_using_ospos" => "Anda menggunakan Open Source Point Of Sale Versi",
"zip" => "Kode POS",
return [
'address_1' => "Alamat 1",
'address_2' => "Alamat 2",
'admin' => "",
'city' => "Kota",
'clerk' => "",
'close' => "Tutup",
'color' => "",
'comments' => "Komentar",
'common' => "umum",
'confirm_search' => "Anda telah memilih satu atau beberapa baris, ini tidak akan dipilih lagi setelah pencarian Anda. Apakah Anda yakin ingin mengirimkan pencarian ini?",
'copyrights' => "© 2010 - {0}",
'correct_errors' => "Silahkan perbaiki kesalahan sebelum menyimpan",
'country' => "Negara",
'dashboard' => "",
'date' => "Tanggal",
'delete' => "Hapus",
'det' => "detil",
'download_import_template' => "Unduh yang Diimpor dalam format CSV (CSV)",
'edit' => "ubah",
'email' => "Email",
'email_invalid_format' => "Alamat email tidak dalam format yang benar.",
'export_csv' => "Ekspor ke CSV",
'export_csv_no' => "Tidak",
'export_csv_yes' => "Ya",
'fields_required_message' => "Bagian yang berwarna merah harus diisi",
'fields_required_message_unique' => "",
'first_name' => "Nama Depan",
'first_name_required' => "Nama Depan harus diisi.",
'first_page' => "Pertama",
'gender' => "Jenis Kelamin",
'gender_female' => "P",
'gender_male' => "L",
'gender_undefined' => "",
'icon' => "ikon",
'id' => "Nomor ID",
'import' => "Impor",
'import_change_file' => "Ubah",
'import_csv' => "Impor dari CSV",
'import_full_path' => "Diperlukan alamat lengkap file CSV",
'import_remove_file' => "Hapus",
'import_select_file' => "Pilih file",
'inv' => "Persediaan",
'last_name' => "Nama Belakang",
'last_name_required' => "Nama belakang harus diisi.",
'last_page' => "Akhir",
'learn_about_project' => "Untuk mempelajari informasi terbaru tentang proyek ini.",
'list_of' => "Daftar",
'logo' => "Logo",
'logo_mark' => "Tanda",
'logout' => "Keluar",
'manager' => "",
'migration_needed' => "Migrasi data ke {0} akan dimulai setelah masuk.",
'new' => "Baru",
'no' => "Tidak",
'no_persons_to_display' => "Tidak ada orang yang ditampilkan.",
'none_selected_text' => "[Pilih]",
'or' => "ATAU",
'people' => "",
'phone_number' => "Nomor Telepon",
'phone_number_required' => "Nomer Telepon Wajib Diisi",
'please_visit_my' => "Silahkan kunjungi",
'position' => "",
'powered_by' => "Diberdayakan oleh",
'price' => "Harga",
'print' => "Cetak",
'remove' => "Hapus",
'required' => "Diperlukan",
'restore' => "Kembalikan",
'return_policy' => "Kebijakan Retur",
'search' => "Cari",
'search_options' => "Pilihan pencarian",
'searched_for' => "Mencari untuk",
'software_short' => "OSPOS",
'software_title' => "Sumber Terbuka Titik Penjualan",
'state' => "Provinsi",
'submit' => "Kirim",
'total_spent' => "Total",
'unknown' => "Tidak diketahui",
'view_recent_sales' => "Lihat Penjualan Terkini",
'website' => "Situs",
'welcome' => "Selamat Datang",
'welcome_message' => "Selamat Datang di OSPOS, klik modul di bawah ini untuk memulai.",
'yes' => "Iya",
'you_are_using_ospos' => "Anda menggunakan Open Source Point Of Sale Versi",
'zip' => "Kode POS",
];

View File

@@ -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",
];

View File

@@ -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",
];

View File

@@ -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.",
];

View File

@@ -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.",
];

View File

@@ -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",
];

View File

@@ -1,120 +1,121 @@
<?php
return [
"add_minus" => "Menambah atau mengurangi Inventori.",
"allow_alt_description" => "Deskripsi Alternatif dimungkinkan",
"amount_entry" => "Jumlah entri",
"bulk_edit" => "Ubah Massal",
"buy_price_required" => "Harga Beli wajib diisi.",
"cannot_be_deleted" => "Tidak dapat menghapus item terpilih, satu atau lebih item yang dipilih memiliki penjualan.",
"cannot_find_item" => "Item tidak ditemukan.",
"categories" => "",
"category" => "Kategori",
"category_new" => "",
"category_required" => "Kategori wajib diisi.",
"change_all_to_allow_alt_desc" => "Izinkan deskripsi alternatif untuk semua.",
"change_all_to_not_allow_allow_desc" => "Tidak diizinkan deskripsi alternatif untuk semua.",
"change_all_to_serialized" => "Ubah semua menggunakan nomor serial",
"change_all_to_unserialized" => "Ubah semua tanpa nomor serial",
"change_image" => "Ubah Gambar",
"confirm_bulk_edit" => "Apakah Anda yakin ingin merubah semua item yang dipilih?",
"confirm_bulk_edit_wipe_taxes" => "Semua item informasi pajak akan diganti.",
"confirm_delete" => "Apakah Anda yakin ingin menghapus item yang dipilih?",
"confirm_restore" => "Anda yakin ingin mengembalikan item terpilih?",
"cost_price" => "Harga Beli",
"cost_price_number" => "Harga beli harus berupa angka.",
"cost_price_required" => "Harga beli harus diisi.",
"count" => "Mutasi/Penyesuaian Inventori",
"csv_import_failed" => "Impor dari CSV tidak berhasil dilakukan",
"csv_import_nodata_wrongformat" => "Berkas unggahan tidak berisi data atau format salah.",
"csv_import_partially_failed" => "Terdapat {0} item yang gagal diimpor pada baris: {1}. Tidak ada kolom yang diimpor.",
"csv_import_success" => "Impor item berhasil.",
"current_quantity" => "Jumlah Saat ini",
"default_pack_name" => "Setiap",
"description" => "Deskripsi",
"details_count" => "Jumlah Detail Inventori",
"do_nothing" => "Tidak ada Perubahan",
"edit" => "",
"edit_fields_you_want_to_update" => "Edit ruas untuk item terpilih.",
"edit_multiple_items" => "Ubah Beberapa Item",
"empty_upc_items" => "UPC Items Kosong",
"error_adding_updating" => "Kesalahan ketika menambahkan/memperbarui item",
"error_updating_multiple" => "Kesalahan ketika memperbarui item",
"generate_barcodes" => "Buat Barcode",
"hsn_code" => "Kode HSN",
"image" => "Gambar",
"import_items_csv" => "Impor item dari CSV sheet",
"info_provided_by" => "Info disediakan oleh",
"inventory" => "Inventori",
"inventory_CSV_import_quantity" => "Jumlah telah diimpor dari CSV",
"inventory_comments" => "Keterangan",
"inventory_data_tracking" => "Pelacakan Data Inventaris",
"inventory_date" => "Tanggal",
"inventory_employee" => "Karyawan",
"inventory_in_out_quantity" => "Jumlah Masuk/Keluar",
"inventory_remarks" => "Komentar",
"is_deleted" => "Item dihapus",
"is_printed" => "",
"is_serialized" => "Item Memiliki Nomor Serial",
"item" => "Item Barang",
"item_id" => "",
"item_number" => "Kode Barang",
"item_number_duplicate" => "Nomor item telah ada pada basis data.",
"kit" => "Paket",
"location" => "Lokasi Barang",
"low_inventory_items" => "Daftar Stock Rendah",
"low_sell_item" => "Produk dengan Penjualan yang Rendah",
"manually_editing_of_quantity" => "Perubahan jumlah Stok secara manual",
"markup" => "",
"name" => "Nama Barang",
"name_required" => "Nama item wajib diisi.",
"new" => "Buat Barang Baru",
"no_description_items" => "Produk/Item tidak ada deskripsi",
"no_items_to_display" => "Tidak ada item untuk ditampilkan.",
"none" => "Tidak Ada",
"none_selected" => "Anda belum memilih Barang untuk diubah",
"nonstock" => "Tidak ada stok",
"number_information" => "Nomor Barang",
"number_required" => "Barcode harus diisi.",
"one_or_multiple" => "Item Barang",
"pack_name" => "Nama paket",
"qty_per_pack" => "Jumlah per paket",
"quantity" => "Jumlah",
"quantity_number" => "Jumlah harus berupa angka.",
"quantity_required" => "Jumlah wajib diisi.",
"receiving_quantity" => "Jumlah per penerimaan",
"remove_image" => "Hapus gambar",
"reorder_level" => "Batas pesan ulang",
"reorder_level_number" => "Batas pesan ulang harus berupa angka.",
"reorder_level_required" => "Batas pesan ulang wajib diisi.",
"retrive_item_info" => "Dapatkan Info Barang",
"sales_tax_1" => "Pajak Penjualan1",
"sales_tax_2" => "Pajak Penjualan2",
"search_attributes" => "Cari Atribut",
"select_image" => "Pilih Gambar",
"serialized_items" => "Serial Item",
"standard" => "Standar",
"stock" => "Stok",
"stock_location" => "Lokasi Stok",
"stock_type" => "Jenis Stok",
"successful_adding" => "Item Barang telah berhasil ditambahkan",
"successful_bulk_edit" => "Anda telah berhasil memperbarui item yang dipilih",
"successful_deleted" => "Item Barang telah berhasil dihapus",
"successful_updating" => "Item Barang telah berhasil diperbarui",
"supplier" => "Pemasok",
"tax_1" => "Pajak 1",
"tax_2" => "Pajak 2",
"tax_3" => "",
"tax_category" => "Kategori Pajak",
"tax_percent" => "Tarif Pajak",
"tax_percent_number" => "Nilai persen pajak harus berupa angka",
"tax_percent_required" => "Tarif Pajak wajib diisi.",
"tax_percents" => "Tarif Pajak",
"temp" => "Sementara",
"type" => "Tipe Item",
"unit_price" => "Harga Jual",
"unit_price_number" => "Harga satuan harus berupa angka.",
"unit_price_required" => "Harga Jual wajib diisi.",
"upc_database" => "Database UPC",
"update" => "Ubah",
"use_inventory_menu" => "Gunakan Inv. Menu",
'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.",
'cannot_be_deleted' => "Tidak dapat menghapus item terpilih, satu atau lebih item yang dipilih memiliki penjualan.",
'cannot_find_item' => "Item tidak ditemukan.",
'categories' => "",
'category' => "Kategori",
'category_new' => "",
'category_required' => "Kategori wajib diisi.",
'change_all_to_allow_alt_desc' => "Izinkan deskripsi alternatif untuk semua.",
'change_all_to_not_allow_allow_desc' => "Tidak diizinkan deskripsi alternatif untuk semua.",
'change_all_to_serialized' => "Ubah semua jadi berseri",
'change_all_to_unserialized' => "Ubah semua menjadi tidak berseri",
'change_image' => "Ubah Gambar",
'confirm_bulk_edit' => "Anda yakin ingin mengubah semua item terpilih?",
'confirm_bulk_edit_wipe_taxes' => "Semua item informasi pajak akan diganti.",
'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 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",
'do_nothing' => "Tidak ada Perubahan",
'edit' => "",
'edit_fields_you_want_to_update' => "Edit ruas untuk item terpilih.",
'edit_multiple_items' => "Ubah Beberapa Item",
'empty_upc_items' => "UPC Items Kosong",
'error_adding_updating' => "Kesalahan ketika menambahkan/memperbarui item",
'error_updating_multiple' => "Kesalahan ketika memperbarui item",
'generate_barcodes' => "Buat Barcode",
'hsn_code' => "Kode HSN",
'image' => "Gambar",
'import_items_csv' => "Impor item dari CSV sheet",
'info_provided_by' => "Info disediakan oleh",
'inventory' => "Inventori",
'inventory_CSV_import_quantity' => "Jumlah telah diimpor dari CSV",
'inventory_comments' => "Keterangan",
'inventory_data_tracking' => "Pelacakan Data Inventaris",
'inventory_date' => "Tanggal",
'inventory_employee' => "Karyawan",
'inventory_in_out_quantity' => "Jumlah Masuk/Keluar",
'inventory_remarks' => "Komentar",
'is_deleted' => "Item dihapus",
'is_printed' => "",
'is_serialized' => "Item Memiliki Nomor Serial",
'item' => "Item Barang",
'item_id' => "",
'item_number' => "Kode Barang",
'item_number_duplicate' => "Nomor item telah ada pada basis data.",
'kit' => "Perlengkapan",
'location' => "Lokasi Barang",
'low_inventory_items' => "Daftar Stock Rendah",
'low_sell_item' => "Produk dengan Penjualan yang Rendah",
'manually_editing_of_quantity' => "Edit manual kuantitas",
'markup' => "",
'name' => "Nama Barang",
'name_required' => "Nama item wajib diisi.",
'new' => "Buat Barang Baru",
'no_description_items' => "Produk/Item tidak ada deskripsi",
'no_items_to_display' => "Tidak ada item untuk ditampilkan.",
'none' => "Tidak Ada",
'none_selected' => "Anda belum memilih Barang untuk diubah",
'nonstock' => "Tidak ada stok",
'number_information' => "Nomor Barang",
'number_required' => "Barcode harus diisi.",
'one_or_multiple' => "Item Barang",
'pack_name' => "Nama paket",
'qty_per_pack' => "Jumlah per paket",
'quantity' => "Jumlah",
'quantity_number' => "Jumlah harus berupa angka.",
'quantity_required' => "Jumlah wajib diisi.",
'receiving_quantity' => "Jumlah per penerimaan",
'remove_image' => "Hapus gambar",
'reorder_level' => "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",
'sales_tax_1' => "Pajak Penjualan1",
'sales_tax_2' => "Pajak Penjualan2",
'search_attributes' => "Cari Atribut",
'select_image' => "Pilih Gambar",
'serialized_items' => "Serial Item",
'standard' => "Standar",
'stock' => "Stok",
'stock_location' => "Lokasi Stok",
'stock_type' => "Jenis Stok",
'successful_adding' => "Item Barang telah berhasil ditambahkan",
'successful_bulk_edit' => "Anda telah berhasil memperbarui item yang dipilih",
'successful_deleted' => "Berhasil menghapus Kartu Hadiah",
'successful_updating' => "Item Barang telah berhasil diperbarui",
'supplier' => "Pemasok",
'tax_1' => "Pajak 1",
'tax_2' => "Pajak 2",
'tax_3' => "",
'tax_category' => "Kategori Pajak",
'tax_percent' => "Tarif Pajak",
'tax_percent_number' => "Nilai persen pajak harus berupa angka",
'tax_percent_required' => "Tarif Pajak wajib diisi.",
'tax_percents' => "Tarif Pajak",
'temp' => "Sementara",
'type' => "Tipe Item",
'unit_price' => "Harga Jual",
'unit_price_number' => "Harga satuan harus berupa angka.",
'unit_price_required' => "Harga Jual wajib diisi.",
'upc_database' => "Basis data Barcode",
'update' => "Ubah",
'use_inventory_menu' => "Gunakan Inv. Menu",
];

View File

@@ -1,15 +1,15 @@
<?php
return [
"gcaptcha" => "Saya bukan robot.",
"go" => "Lanjutkan",
"invalid_gcaptcha" => "Tolong buktikan bahwa anda bukan robot.",
"invalid_installation" => "Instalasi tidak benar, periksa file php.ini Anda.",
"invalid_username_and_password" => "Nama Pengguna Atau Sandi Salah.",
"login" => "Masuk",
"logout" => "Keluar",
"migration_needed" => "Migrasi basis data untuk {0} akan mulai setelah masuk.",
"password" => "Kata kunci",
"required_username" => "",
"username" => "Nama Anda",
"welcome" => "Selamat Datang di {0}!",
return [
'gcaptcha' => "Saya bukan robot.",
'go' => "Lanjutkan",
'invalid_gcaptcha' => "Tolong buktikan bahwa anda bukan robot.",
'invalid_installation' => "Instalasi tidak benar, periksa file php.ini Anda.",
'invalid_username_and_password' => "Nama Pengguna Atau Sandi Salah.",
'login' => "Masuk",
'logout' => "Keluar",
'migration_needed' => "Migrasi basis data untuk {0} akan mulai setelah masuk.",
'password' => "Kata kunci",
'required_username' => "Kolom nama pengguna wajib diisi.",
'username' => "Nama Anda",
'welcome' => "Selamat Datang di {0}!",
];

View File

@@ -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",
];

View File

@@ -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",
];

View File

@@ -1,224 +1,226 @@
<?php
return [
"customers_available_points" => "Poin tersedia",
"rewards_package" => "Hadiah",
"rewards_remaining_balance" => "Poin hadiah yang tersisa adalah ",
"account_number" => "Akun #",
"add_payment" => "Terima",
"amount_due" => "Uang Kembalian",
"amount_tendered" => "Nilai Pembayaran",
"authorized_signature" => "Tanda tangan",
"cancel_sale" => "Batal Jual",
"cash" => "Tunai",
"cash_1" => "",
"cash_2" => "",
"cash_3" => "",
"cash_4" => "",
"cash_adjustment" => "Penyesuaian Kas",
"cash_deposit" => "Deposit Tunai",
"cash_filter" => "Tunai",
"change_due" => "Kembalian Uang",
"change_price" => "Ubah Harga Jual",
"check" => "Cek",
"check_balance" => "Aktifkan pengingat",
"check_filter" => "Cek",
"close" => "",
"comment" => "Catatan",
"comments" => "Keterangan",
"company_name" => "",
"complete" => "",
"complete_sale" => "Selesai",
"confirm_cancel_sale" => "Apakah anda yakin ingin mengosongkan transaksi penjualan ini? Semua item akan dihapus.",
"confirm_delete" => "Apakah anda yakin akan menghapus penjualan terpilih?",
"confirm_restore" => "Apakah anda yakin akan mengembalikan penjualan terpilih?",
"credit" => "Kartu Kredit",
"credit_deposit" => "Deposit Kredit",
"credit_filter" => "Kartu Kredit",
"current_table" => "",
"customer" => "Pelanggan",
"customer_address" => "Alamat",
"customer_discount" => "Diskon",
"customer_email" => "Email",
"customer_location" => "Lokasi",
"customer_mailchimp_status" => "Status MailChimp",
"customer_optional" => "(Diperlukan untuk Pembayaran Jatuh Tempo)",
"customer_required" => "(Dibutuhkan)",
"customer_total" => "Total",
"customer_total_spent" => "",
"daily_sales" => "",
"date" => "Tanggal Penjualan",
"date_range" => "Rentang Tanggal",
"date_required" => "Masukkan tanggal yang benar.",
"date_type" => "Tanggal tidak boleh kosong.",
"debit" => "Kartu Debit",
"debit_filter" => "",
"delete" => "Boleh dihapus",
"delete_confirmation" => "Apakah anda yakin ingin menghapus transaksi penjualan ini, Pilihan ini tidak dapat dibatalkan.",
"delete_entire_sale" => "Hapus Transaksi Penjualan",
"delete_successful" => "Transaksi Penjualan berhasil dihapus.",
"delete_unsuccessful" => "Transaksi Penjualan gagal dihapus.",
"description_abbrv" => "Deskripsi.",
"discard" => "Buang",
"discard_quote" => "",
"discount" => "Diskon",
"discount_included" => "% Diskon",
"discount_short" => "%",
"due" => "Jatuh tempo",
"due_filter" => "Jatuh tempo",
"edit" => "Ubah",
"edit_item" => "Ubah Item",
"edit_sale" => "Ubah Penjualan",
"email_receipt" => "email Faktur",
"employee" => "Karyawan",
"entry" => "Entri",
"error_editing_item" => "mengubah item salah",
"find_or_scan_item" => "Cari/Scan Item",
"find_or_scan_item_or_receipt" => "Cari atau Scan Item atau Faktur",
"giftcard" => "Kupon Bonus",
"giftcard_balance" => "Nilai Kupon Bonus",
"giftcard_filter" => "",
"giftcard_number" => "Nomor Kartu Bonus",
"group_by_category" => "Dikelompokkan berdasarkan Kategori",
"group_by_type" => "Dikelompokkan berdasarkan Jenis",
"hsn" => "HSN",
"id" => "ID Penjualan",
"include_prices" => "Termasuk Harga?",
"invoice" => "Faktur",
"invoice_confirm" => "Faktur ini akan dikirim ke",
"invoice_enable" => "Buat Faktur",
"invoice_filter" => "Faktur",
"invoice_no_email" => "Pelanggan ini tidak memiliki alamat email yang valid.",
"invoice_number" => "Nomor Nota",
"invoice_number_duplicate" => "Nomor nota harus unik.",
"invoice_sent" => "Faktur dikirim kepada",
"invoice_total" => "Total faktur",
"invoice_type_custom_invoice" => "Faktur kustom (custom_invoice.php)",
"invoice_type_custom_tax_invoice" => "Faktur pajak kustom (custom_tax_invoice.php)",
"invoice_type_invoice" => "Faktur (invoice.php)",
"invoice_type_tax_invoice" => "Faktur pajak (tax_invoice.php)",
"invoice_unsent" => "Faktur gagal dikirim kepada",
"invoice_update" => "Menghitung ulang",
"item_insufficient_of_stock" => "Stok Item tidak mencukupi.",
"item_name" => "Nama Barang",
"item_number" => "Barang #",
"item_out_of_stock" => "Barang habis.",
"key_browser" => "Pintasan bermanfaat",
"key_cancel" => "Membatalkan Penawaran/Faktur/Penjualan saat ini",
"key_customer_search" => "Pencarian Pelanggan",
"key_finish_quote" => "Selesaikan Struk/Faktur tanpa pembayaran",
"key_finish_sale" => "Tambahkan Pembayaran dan Lengkapi Faktur/Penjualan",
"key_full" => "Buka dalam Mode Layar Penuh",
"key_function" => "Fungsi",
"key_help" => "Pintasan",
"key_help_modal" => "Buka Jendela Pintasan",
"key_in" => "Perbesar",
"key_item_search" => "Pencarian Barang",
"key_out" => "Perkecil",
"key_payment" => "Tambahkan Pembayaran",
"key_print" => "Cetak Halaman sekarang",
"key_restore" => "Reset tampilan zum",
"key_search" => "Cari Tabel Laporan",
"key_suspend" => "Tangguhkan Penjualan saat ini",
"key_suspended" => "Tampilkan Penjualan yang Ditangguhkan",
"key_system" => "Pemintas Sistem",
"key_tendered" => "Edit jumlah yang dibayarkan",
"key_title" => "Pintasan Papan Ketik Penjualan",
"mc" => "",
"mode" => "Jenis Transaksi",
"must_enter_numeric" => "Nilai yang dimasukkan harus berupa angka.",
"must_enter_numeric_giftcard" => "Nomor Gift Card harus berupa angka.",
"new_customer" => "Pelanggan Baru",
"new_item" => "Barang Baru",
"no_description" => "Tidak ada deskripsi",
"no_filter" => "Semua",
"no_items_in_cart" => "Tidak ada Barang dalam Keranjang Belanja.",
"no_sales_to_display" => "Tidak ada penjualan yang ditampilkan.",
"none_selected" => "Anda belum memilih Penjualan untuk dihapus.",
"nontaxed_ind" => " . ",
"not_authorized" => "Aksi ini tidak resmi.",
"one_or_multiple" => "Penjualan",
"payment" => "Jenis Pembayaran",
"payment_amount" => "Jumlah",
"payment_not_cover_total" => "Jumlah pembayaran harus lebih besar atau sama dengan Total.",
"payment_type" => "Jenis",
"payments" => "",
"payments_total" => "Total Pembayaran",
"price" => "Harga",
"print_after_sale" => "Cetak Faktur setelah penjualan",
"quantity" => "Jumlah",
"quantity_less_than_reorder_level" => "Peringatan: Stok Inventori barang ini dibawah level order ulang.",
"quantity_less_than_zero" => "Peringatan: Stok Inventori tidak cukup. Proses penjualan masih dapat dilanjutkan, tapi periksa Inventori.",
"quantity_of_items" => "Jumlah dari {0} item",
"quote" => "Penawaran",
"quote_number" => "No. Penawaran",
"quote_number_duplicate" => "No. Penawaran tidak boleh sama.",
"quote_sent" => "Penawaran dikirim ke",
"quote_unsent" => "Penawaran gagal dikirim ke",
"receipt" => "Faktur Penjualan",
"receipt_no_email" => "Pembeli ini tidak memiliki surel yang valid.",
"receipt_number" => "POS #",
"receipt_sent" => "Nota dikirim ke",
"receipt_unsent" => "Noto gagal dikirim kepada",
"refund" => "Tipe Pengembalian Dana",
"register" => "Transaksi Penjualan",
"remove_customer" => "Hapus Pelanggan",
"remove_discount" => "",
"return" => "Retur",
"rewards" => "Poin Penghargaan",
"rewards_balance" => "Jumlah Poin Penghargaan",
"sale" => "Penjualan",
"sale_by_invoice" => "Penjualan berdasarkan Faktur",
"sale_for_customer" => "Pelanggan:",
"sale_time" => "Waktu",
"sales_tax" => "Pajak Penjualan",
"sales_total" => "",
"select_customer" => "Pilih Pelanggan",
"send_invoice" => "Kirim Faktur",
"send_quote" => "Kirim Penawaran",
"send_receipt" => "Kirim Nota",
"send_work_order" => "Kirim Order Kerja",
"serial" => "Seri",
"service_charge" => "",
"show_due" => "",
"show_invoice" => "Tampilkan Faktur",
"show_receipt" => "Tampilkan Nota",
"start_typing_customer_name" => "Ketik Nama Pelanggan...",
"start_typing_item_name" => "Ketik Nama Barang atau Scan Barcode...",
"stock" => "Stok",
"stock_location" => "Lokasi Stock",
"sub_total" => "Sub-total",
"successfully_deleted" => "Transaksi Penjualan berhasil dihapus",
"successfully_restored" => "Berhasil dikembalikan",
"successfully_suspended_sale" => "Penjualan berhasil ditangguhkan.",
"successfully_updated" => "Penjualan berhasil diperbarui.",
"suspend_sale" => "Tangguhkan",
"suspended_doc_id" => "Dokumen",
"suspended_sale_id" => "ID Penjualan ditangguhkan",
"suspended_sales" => "Penangguhan",
"table" => "Meja",
"takings" => "Daftar Penjualan",
"tax" => "Pajak",
"tax_id" => "ID Pajak",
"tax_invoice" => "Faktur Pajak",
"tax_percent" => "Pajak %",
"taxed_ind" => "P",
"total" => "Total",
"total_tax_exclusive" => "Tidak termasuk pajak",
"transaction_failed" => "Transaksi Penjualan gagal.",
"unable_to_add_item" => "Tidak dapat menambahkan item pada penjualan",
"unsuccessfully_deleted" => "Transaksi Penjualan gagal dihapus.",
"unsuccessfully_restored" => "Transaksi Penjualan gagal dikembalikan.",
"unsuccessfully_suspended_sale" => "Transaksi penjualan gagal ditangguhkan.",
"unsuccessfully_updated" => "Transaksi Penjualan gagal diperbaharui.",
"unsuspend" => "Tidak Ditangguhkan",
"unsuspend_and_delete" => "Batalkan dan hapus penangguhan",
"update" => "Ubah",
"upi" => "UPI",
"visa" => "",
"wholesale" => "",
"work_order" => "Perintah Kerja",
"work_order_number" => "Nomor Perintah Kerja",
"work_order_number_duplicate" => "Nomor Perintah Kerja tidak boleh sama.",
"work_order_sent" => "Perintah Kerja dikirim ke",
"work_order_unsent" => "Perintah Kerja gagal dikirim ke",
'customers_available_points' => "Poin tersedia",
'rewards_package' => "Hadiah",
'rewards_remaining_balance' => "Poin hadiah yang tersisa adalah ",
'account_number' => "Akun #",
'add_payment' => "Terima",
'amount_due' => "Uang Kembalian",
'amount_tendered' => "Nilai Pembayaran",
'authorized_signature' => "Tanda tangan",
'cancel_sale' => "Batal Jual",
'cash' => "Tunai",
'cash_1' => "",
'cash_2' => "",
'cash_3' => "",
'cash_4' => "",
'cash_adjustment' => "Penyesuaian Kas",
'cash_deposit' => "Deposit Tunai",
'cash_filter' => "Tunai",
'change_due' => "Kembalian Uang",
'change_price' => "Ubah Harga Jual",
'check' => "Cek",
'check_balance' => "Aktifkan pengingat",
'check_filter' => "Cek",
'close' => "",
'comment' => "Catatan",
'comments' => "Keterangan",
'company_name' => "",
'complete' => "",
'complete_sale' => "Selesai",
'confirm_cancel_sale' => "Apakah anda yakin ingin mengosongkan transaksi penjualan ini? Semua item akan dihapus.",
'confirm_delete' => "Apakah anda yakin akan menghapus penjualan terpilih?",
'confirm_restore' => "Apakah anda yakin akan mengembalikan penjualan terpilih?",
'credit' => "Kartu Kredit",
'credit_deposit' => "Deposit Kredit",
'credit_filter' => "Kartu Kredit",
'current_table' => "",
'customer' => "Pelanggan",
'customer_address' => "Alamat",
'customer_discount' => "Diskon",
'customer_email' => "Email",
'customer_location' => "Lokasi",
'customer_mailchimp_status' => "Status MailChimp",
'customer_optional' => "(Diperlukan untuk Pembayaran Jatuh Tempo)",
'customer_required' => "(Dibutuhkan)",
'customer_total' => "Total",
'customer_total_spent' => "",
'daily_sales' => "",
'date' => "Tanggal Penjualan",
'date_range' => "Rentang Tanggal",
'date_required' => "Masukkan tanggal yang benar.",
'date_type' => "Tanggal tidak boleh kosong.",
'debit' => "Kartu Debit",
'debit_filter' => "",
'delete' => "Boleh dihapus",
'delete_confirmation' => "Apakah anda yakin ingin menghapus transaksi penjualan ini, Pilihan ini tidak dapat dibatalkan.",
'delete_entire_sale' => "Hapus Transaksi Penjualan",
'delete_successful' => "Transaksi Penjualan berhasil dihapus.",
'delete_unsuccessful' => "Transaksi Penjualan gagal dihapus.",
'description_abbrv' => "Deskripsi.",
'discard' => "Buang",
'discard_quote' => "",
'discount' => "Diskon",
'discount_included' => "% Diskon",
'discount_short' => "%",
'due' => "Jatuh tempo",
'due_filter' => "Jatuh tempo",
'edit' => "Ubah",
'edit_item' => "Ubah Item",
'edit_sale' => "Ubah Penjualan",
'email_receipt' => "email Faktur",
'employee' => "Karyawan",
'entry' => "Entri",
'error_editing_item' => "mengubah item salah",
'find_or_scan_item' => "Cari/Scan Item",
'find_or_scan_item_or_receipt' => "Temukan atau pindai Item atau Faktur",
'giftcard' => "Kartu Hadiah",
'giftcard_balance' => "Nilai Kupon Bonus",
'giftcard_filter' => "",
'giftcard_number' => "Nomor Kartu Hadiah",
'group_by_category' => "Dikelompokkan berdasarkan Kategori",
'group_by_type' => "Dikelompokkan berdasarkan Jenis",
'hsn' => "HSN",
'id' => "ID Penjualan",
'include_prices' => "Termasuk Harga?",
'invoice' => "Faktur",
'invoice_confirm' => "Faktur ini akan dikirim ke",
'invoice_enable' => "Nomor Faktur",
'invoice_filter' => "Faktur",
'invoice_no_email' => "Pelanggan ini tidak memiliki alamat email yang valid.",
'invoice_number' => "Nomor Nota",
'invoice_number_duplicate' => "Nomor nota harus unik.",
'invoice_sent' => "Faktur dikirim kepada",
'invoice_total' => "Total faktur",
'invoice_type_custom_invoice' => "Faktur kustom (custom_invoice.php)",
'invoice_type_custom_tax_invoice' => "Faktur pajak kustom (custom_tax_invoice.php)",
'invoice_type_invoice' => "Faktur (invoice.php)",
'invoice_type_tax_invoice' => "Faktur pajak (tax_invoice.php)",
'invoice_unsent' => "Faktur gagal dikirim kepada",
'invoice_update' => "Menghitung ulang",
'item_insufficient_of_stock' => "Stok Item tidak mencukupi.",
'item_name' => "Nama Barang",
'item_number' => "Barang #",
'item_out_of_stock' => "Barang habis.",
'key_browser' => "Pintasan bermanfaat",
'key_cancel' => "Membatalkan Penawaran/Faktur/Penjualan saat ini",
'key_customer_search' => "Pencarian Pelanggan",
'key_finish_quote' => "Selesaikan Struk/Faktur tanpa pembayaran",
'key_finish_sale' => "Tambahkan Pembayaran dan Lengkapi Faktur/Penjualan",
'key_full' => "Buka dalam Mode Layar Penuh",
'key_function' => "Fungsi",
'key_help' => "Pintasan",
'key_help_modal' => "Buka Jendela Pintasan",
'key_in' => "Perbesar",
'key_item_search' => "Pencarian Barang",
'key_out' => "Perkecil",
'key_payment' => "Tambahkan Pembayaran",
'key_print' => "Cetak Halaman sekarang",
'key_restore' => "Reset tampilan zum",
'key_search' => "Cari Tabel Laporan",
'key_suspend' => "Tangguhkan Penjualan saat ini",
'key_suspended' => "Tampilkan Penjualan yang Ditangguhkan",
'key_system' => "Pemintas Sistem",
'key_tendered' => "Edit jumlah yang dibayarkan",
'key_title' => "Pintasan Papan Ketik Penjualan",
'mc' => "",
'mode' => "Jenis Transaksi",
'must_enter_numeric' => "Nilai yang dimasukkan harus berupa angka.",
'must_enter_numeric_giftcard' => "Nomor Gift Card harus berupa angka.",
'new_customer' => "Pelanggan Baru",
'new_item' => "Barang Baru",
'no_description' => "Tidak ada deskripsi",
'no_filter' => "Semua",
'no_items_in_cart' => "Tidak ada Barang dalam Keranjang Belanja.",
'no_sales_to_display' => "Tidak ada penjualan yang ditampilkan.",
'none_selected' => "Anda belum memilih Penjualan untuk dihapus.",
'nontaxed_ind' => " . ",
'not_authorized' => "Aksi ini tidak resmi.",
'one_or_multiple' => "Penjualan",
'payment' => "Jenis Pembayaran",
'payment_amount' => "Jumlah",
'payment_not_cover_total' => "Jumlah pembayaran harus lebih besar atau sama dengan Total.",
'payment_type' => "Jenis",
'payments' => "",
'payments_total' => "Total Pembayaran",
'price' => "Harga",
'print_after_sale' => "Cetak Faktur setelah penjualan",
'quantity' => "Jumlah",
'quantity_less_than_reorder_level' => "Peringatan: Stok Inventori barang ini dibawah level order ulang.",
'quantity_less_than_zero' => "Peringatan: Stok Inventori tidak cukup. Proses penjualan masih dapat dilanjutkan, tapi periksa Inventori.",
'quantity_of_items' => "Jumlah dari {0} item",
'quote' => "Penawaran",
'quote_number' => "No. Penawaran",
'quote_number_duplicate' => "No. Penawaran tidak boleh sama.",
'quote_sent' => "Penawaran dikirim ke",
'quote_unsent' => "Penawaran gagal dikirim ke",
'receipt' => "Faktur Penjualan",
'receipt_no_email' => "Pembeli ini tidak memiliki surel yang valid.",
'receipt_number' => "POS #",
'receipt_sent' => "Nota dikirim ke",
'receipt_unsent' => "Noto gagal dikirim kepada",
'refund' => "Tipe Pengembalian Dana",
'register' => "Transaksi Penjualan",
'remove_customer' => "Hapus Pelanggan",
'remove_discount' => "",
'return' => "Retur",
'rewards' => "Poin Penghargaan",
'rewards_balance' => "Jumlah Poin Penghargaan",
'sale' => "Penjualan",
'sale_by_invoice' => "Penjualan berdasarkan Faktur",
'sale_for_customer' => "Pelanggan:",
'sale_time' => "Waktu",
'sales_tax' => "Pajak Penjualan",
'sales_total' => "",
'select_customer' => "Pilih Pelanggan",
'send_invoice' => "Kirim Faktur",
'send_quote' => "Kirim Penawaran",
'send_receipt' => "Kirim Nota",
'send_work_order' => "Kirim Order Kerja",
'serial' => "Seri",
'service_charge' => "",
'show_due' => "",
'show_invoice' => "Tampilkan Faktur",
'show_receipt' => "Tampilkan Nota",
'start_typing_customer_name' => "Ketik Nama Pelanggan...",
'start_typing_item_name' => "Ketik Nama Barang atau Scan Barcode...",
'stock' => "Stok",
'stock_location' => "Lokasi Stock",
'sub_total' => "Sub-total",
'successfully_deleted' => "Transaksi Penjualan berhasil dihapus",
'successfully_restored' => "Berhasil dikembalikan",
'successfully_suspended_sale' => "Penjualan berhasil ditangguhkan.",
'successfully_updated' => "Penjualan berhasil diperbarui.",
'suspend_sale' => "Tangguhkan",
'suspended_doc_id' => "Dokumen",
'suspended_sale_id' => "ID Penjualan ditangguhkan",
'suspended_sales' => "Penangguhan",
'table' => "Meja",
'takings' => "Daftar Penjualan",
'tax' => "Pajak",
'tax_id' => "ID Pajak",
'tax_invoice' => "Faktur Pajak",
'tax_percent' => "Pajak %",
'taxed_ind' => "P",
'total' => "Total",
'total_tax_exclusive' => "Tidak termasuk pajak",
'transaction_failed' => "Transaksi Penjualan gagal.",
'unable_to_add_item' => "Tidak dapat menambahkan item pada penjualan",
'unsuccessfully_deleted' => "Transaksi Penjualan gagal dihapus.",
'unsuccessfully_restored' => "Transaksi Penjualan gagal dikembalikan.",
'unsuccessfully_suspended_sale' => "Transaksi penjualan gagal ditangguhkan.",
'unsuccessfully_updated' => "Transaksi Penjualan gagal diperbaharui.",
'unsuspend' => "Tidak Ditangguhkan",
'unsuspend_and_delete' => "Batalkan dan hapus penangguhan",
'update' => "Ubah",
'upi' => "UPI",
'visa' => "",
'wholesale' => "",
'work_order' => "Perintah Kerja",
'work_order_number' => "Nomor Perintah Kerja",
'work_order_number_duplicate' => "Nomor Perintah Kerja tidak boleh sama.",
'work_order_sent' => "Perintah Kerja dikirim ke",
'work_order_unsent' => "Perintah Kerja gagal dikirim ke",
'selected_customer' => "Pelanggan Terpilih",
];

View File

@@ -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",
];

View File

@@ -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",
];

View File

@@ -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",

View File

@@ -1,11 +1,12 @@
<?php
return [
"all" => "alla",
"columns" => "Kolumner",
"hide_show_pagination" => "Dölj/visa sida",
"loading" => "Laddar, ha tålamod...",
"page_from_to" => "Visar {0} till {1} av {2} rader",
"refresh" => "Ladda om",
"rows_per_page" => "{0} rader per sida",
"toggle" => "Växla",
'all' => "alla",
'columns' => "Kolumner",
'hide_show_pagination' => "Dölj/visa sida",
'loading' => "Laddar, vänligen vänta...",
'page_from_to' => "Visar {0} till {1} av {2} rader",
'refresh' => "Ladda om",
'rows_per_page' => "{0} rader per sida",
'toggle' => "Växla",
];

View File

@@ -1,49 +1,50 @@
<?php
return [
"amount" => "Summa",
"amount_number" => "Summa måste vara ett nummer",
"amount_required" => "Summa kan ej lämnas tomt.",
"cancel_cashups" => "",
"cancel_cashups_enter" => "",
"cannot_be_deleted" => "Dagskassa kan ej raderas",
"cash_difference" => "",
"close_date" => "Avslutsdatum",
"close_employee" => "Avslutad av",
"closed_amount_card" => "Kort",
"closed_amount_cash" => "Stängda kontanter",
"closed_amount_check" => "Checkar",
"closed_amount_due" => "Avgifter",
"closed_amount_giftcard" => "",
"closed_amount_total" => "Total",
"closed_date" => "Avslutat datum",
"confirm_delete" => "Är du säker på att du vill ta bort den valda dagskassan?",
"confirm_restore" => "Är du säker på att du vill återställa valda dagsavslut?",
"confirm_submit" => "",
"date_number" => "Datum måste vara ett nummer",
"date_required" => "Datum måste anges",
"description" => "Beskrivning",
"enable_expected" => "",
"error_adding_updating" => "Fel vid tillägg / uppdatering av dagskassa",
"giftcard" => "",
"id" => "Id",
"info" => "Dagskassa information",
"info_employee" => "",
"is_deleted" => "Raderad",
"new" => "Ny dagskassa",
"no_cashups_to_display" => "Finns inga dagskassor att visa",
"none_selected" => "Du har inte vald någon dagskassa",
"note" => "Anteckningar",
"one_or_multiple" => "Dagskassor",
"open_amount_cash" => "Öppna kontanter",
"open_date" => "Öppningsdatum",
"open_employee" => "Öppnad av",
"opened_date" => "Öppningsdatum",
"successful_adding" => "Dagskassa tillagd",
"successful_deleted" => "Dagskassa raderades",
"successful_updating" => "Dagskassa uppdaterades",
"total" => "Toralt",
"transfer_amount_cash" => "Växelkassa",
"transfer_amount_cash_minus" => "",
"update" => "Uppdatera dagskassa",
"warning" => "",
'amount' => "Summa",
'amount_number' => "Summa måste vara ett nummer",
'amount_required' => "Summa kan ej lämnas tomt.",
'cancel_cashups' => "",
'cancel_cashups_enter' => "",
'cannot_be_deleted' => "Dagskassa kan inte tas bort",
'cash_difference' => "",
'close_date' => "Datum för avslut",
'close_employee' => "Stängdes av",
'closed_amount_card' => "Kort",
'closed_amount_cash' => "Stängda kontanter",
'closed_amount_check' => "Kontroller",
'closed_amount_due' => "Avgifter",
'closed_amount_giftcard' => "",
'closed_amount_total' => "Total",
'closed_date' => "Avslutat datum",
'confirm_delete' => "Är du säker på att du vill ta bort den valda dagskassan?",
'confirm_restore' => "Är du säker på att du vill återställa valda dagsavslut?",
'confirm_submit' => "",
'date_number' => "Datum måste vara ett nummer",
'date_required' => "Datum är ett fält som krävs",
'description' => "Beskrivning",
'enable_expected' => "",
'error_adding_updating' => "Fel vid tilläggning/uppdatering av dagskassa",
'giftcard' => "",
'id' => "Id",
'info' => "Information om dagskassor",
'info_employee' => "",
'is_deleted' => "Raderad",
'new' => "Ny dagskassa",
'no_cashups_to_display' => "Finns inga dagskassor att visa",
'none_selected' => "Du har inte vald någon dagskassa",
'note' => "Anteckningar",
'one_or_multiple' => "Dagskassor",
'open_amount_cash' => "Öppna kontanter",
'open_date' => "Öppningsdatum",
'open_employee' => "Öppnad av",
'opened_date' => "Öppningsdatum",
'successful_adding' => "Dagskassa tillagd",
'successful_deleted' => "Dagskassa raderades",
'successful_updating' => "Dagskassa uppdaterades",
'total' => "Toralt",
'transfer_amount_cash' => "Växelkassa",
'transfer_amount_cash_minus' => "",
'update' => "Uppdatera dagskassa",
'warning' => "",
];

View File

@@ -1,88 +1,89 @@
<?php
return [
"address_1" => "Adress 1",
"address_2" => "Adress 2",
"admin" => "",
"city" => "Stad",
"clerk" => "",
"close" => "Stäng",
"color" => "",
"comments" => "Kommentarer",
"common" => "allmänt",
"confirm_search" => "Du har valt en eller flera rader, dessa kommer inte längre att väljas efter din sökning. Är du säker på att du vill skicka in den här sökningen?",
"copyrights" => "© 2010 - {0}",
"correct_errors" => "Rätta identifierat fel innan du sparar",
"country" => "Land",
"dashboard" => "",
"date" => "Datum",
"delete" => "Radera",
"det" => "detaljer",
"download_import_template" => "Hämta importerad CSV-mall (CSV)",
"edit" => "Ändra",
"email" => "E-mail",
"email_invalid_format" => "E-postadressen är inte i rätt format.",
"export_csv" => "CSV Export",
"export_csv_no" => "Nej",
"export_csv_yes" => "Ja",
"fields_required_message" => "Fält markerade i rött är obligatoriska",
"fields_required_message_unique" => "",
"first_name" => "Förnamn",
"first_name_required" => "Förnamn är ett obligatoriskt fält.",
"first_page" => "Första",
"gender" => "Kön",
"gender_female" => "Kvinna",
"gender_male" => "Man",
"gender_undefined" => "",
"icon" => "Ikon",
"id" => "ID",
"import" => "Import",
"import_change_file" => "Ändra",
"import_csv" => "CSV-import",
"import_full_path" => "Fullständig sökväg till CSV-fil krävs",
"import_remove_file" => "Radera",
"import_select_file" => "Välj fil",
"inv" => "Fakt",
"last_name" => "Efternamn",
"last_name_required" => "Efternamn är ett obligatoriskt fält.",
"last_page" => "Sista",
"learn_about_project" => "för att lära sig den senaste informationen om projektet.",
"list_of" => "Lista av",
"logo" => "Logga",
"logo_mark" => "",
"logout" => "Logga ut",
"manager" => "",
"migration_needed" => "Migration av databasen {0} kommer att påbörjas efter login.",
"new" => "Ny",
"no" => "",
"no_persons_to_display" => "Det finns inga personer att visa.",
"none_selected_text" => "[Inget valt]",
"or" => "Eller",
"people" => "",
"phone_number" => "Telefonnummer",
"phone_number_required" => "",
"please_visit_my" => "Vänligen besök",
"position" => "",
"powered_by" => "Drivs av",
"price" => "Pris",
"print" => "Skriv ut",
"remove" => "Radera",
"required" => "Krävs",
"restore" => "Återställ",
"return_policy" => "Retur policy",
"search" => "Sök",
"search_options" => "Sökalternativ",
"searched_for" => "Sök efter",
"software_short" => "",
"software_title" => "",
"state" => "Län",
"submit" => "Spara",
"total_spent" => "Totalt spenderat",
"unknown" => "Okänt",
"view_recent_sales" => "Visa senaste försäljningar",
"website" => "opensourcepos.org",
"welcome" => "Välkommen",
"welcome_message" => "Välkommen till OSPOS, klicka på en modul nedan för att komma igång.",
"yes" => "",
"you_are_using_ospos" => "Du använder Open Source Point of Sale version",
"zip" => "Postnummer",
'address_1' => "Adress 1",
'address_2' => "Adress 2",
'admin' => "",
'city' => "Stad",
'clerk' => "",
'close' => "Stäng",
'color' => "",
'comments' => "Kommentarer",
'common' => "allmänt",
'confirm_search' => "Du har valt en eller flera rader, dessa kommer inte längre att väljas efter din sökning. Är du säker på att du vill skicka in den här sökningen?",
'copyrights' => "© 2010 - {0}",
'correct_errors' => "Vänligen rätta till identifierade fel innan du sparar",
'country' => "Land",
'dashboard' => "",
'date' => "Datum",
'delete' => "Radera",
'det' => "detaljer",
'download_import_template' => "Hämta importerad CSV-mall (CSV)",
'edit' => "redigera",
'email' => "E-post",
'email_invalid_format' => "E-postadressen är inte i rätt format.",
'export_csv' => "CSV Export",
'export_csv_no' => "Nej",
'export_csv_yes' => "Ja",
'fields_required_message' => "Fält markerade i rött är obligatoriska",
'fields_required_message_unique' => "",
'first_name' => "Förnamn",
'first_name_required' => "Förnamn är ett obligatoriskt fält.",
'first_page' => "Första",
'gender' => "Kön",
'gender_female' => "Kvinna",
'gender_male' => "Man",
'gender_undefined' => "",
'icon' => "Ikon",
'id' => "ID",
'import' => "Import",
'import_change_file' => "Ändra",
'import_csv' => "CSV-import",
'import_full_path' => "Fullständig sökväg till CSV-fil krävs",
'import_remove_file' => "Radera",
'import_select_file' => "Välj fil",
'inv' => "Fakt",
'last_name' => "Efternamn",
'last_name_required' => "Efternamn är ett obligatoriskt fält.",
'last_page' => "Sista",
'learn_about_project' => "för att lära sig den senaste informationen om projektet.",
'list_of' => "Lista av",
'logo' => "Logga",
'logo_mark' => "Varumärke",
'logout' => "Logga ut",
'manager' => "",
'migration_needed' => "Migration av databasen {0} kommer att påbörjas efter login.",
'new' => "Ny",
'no' => "Nej",
'no_persons_to_display' => "Det finns inga personer att visa.",
'none_selected_text' => "[Inget valt]",
'or' => "Eller",
'people' => "",
'phone_number' => "Telefonnummer",
'phone_number_required' => "",
'please_visit_my' => "Vänligen besök",
'position' => "",
'powered_by' => "Drivs av",
'price' => "Pris",
'print' => "Skriv ut",
'remove' => "Radera",
'required' => "Krävs",
'restore' => "Återställ",
'return_policy' => "Retur policy",
'search' => "Sök",
'search_options' => "Sökalternativ",
'searched_for' => "Sök efter",
'software_short' => "OSPOS",
'software_title' => "Point of Sale med öppen källkod",
'state' => "Län",
'submit' => "Spara",
'total_spent' => "Totalt spenderat",
'unknown' => "Okänt",
'view_recent_sales' => "Visa senaste försäljningar",
'website' => "opensourcepos.org",
'welcome' => "Välkommen",
'welcome_message' => "Välkommen till OSPOS, klicka på en modul nedan för att komma igång.",
'yes' => "Ja",
'you_are_using_ospos' => "Du använder Open Source Point of Sale version",
'zip' => "Postnummer",
];

View File

@@ -1,330 +1,331 @@
<?php
return [
"address" => "Företagsadress",
"address_required" => "Företagsadress är ett obligatoriskt fält.",
"all_set" => "All file permissions are set correctly!",
"allow_duplicate_barcodes" => "Tillåt duplicera streckkoder",
"apostrophe" => "apostrof",
"backup_button" => "Backup",
"backup_database" => "Säkerhetskopiera databas",
"barcode" => "Streckkod",
"barcode_company" => "Företagsnamn",
"barcode_configuration" => "Streckkodskonfiguration",
"barcode_content" => "Streckkod innehåll",
"barcode_first_row" => "Rad 1",
"barcode_font" => "Font",
"barcode_formats" => "Inmatningsformat",
"barcode_generate_if_empty" => "Skapa om tom.",
"barcode_height" => "Höjd (px)",
"barcode_id" => "Artikel-id / namn",
"barcode_info" => "Streckkodskonfigurationsinformation",
"barcode_layout" => "Streckkodslayout",
"barcode_name" => "Namn",
"barcode_number" => "Streckkod",
"barcode_number_in_row" => "Antal i rad",
"barcode_page_cellspacing" => "Visa kolumnbredd.",
"barcode_page_width" => "Visa sidbredd",
"barcode_price" => "Pris",
"barcode_second_row" => "Rad 2",
"barcode_third_row" => "Rad 3",
"barcode_tooltip" => "Varning: Den här funktionen kan orsaka att duplicerade objekt importeras eller skapas. Använd inte om du inte vill ha dubbla streckkoder.",
"barcode_type" => "Streckkodstyp",
"barcode_width" => "Bredd (px)",
"bottom" => "Botten",
"cash_button" => "",
"cash_button_1" => "",
"cash_button_2" => "",
"cash_button_3" => "",
"cash_button_4" => "",
"cash_button_5" => "",
"cash_button_6" => "",
"cash_decimals" => "Kontant decimaler",
"cash_decimals_tooltip" => "Om kontanterna och valutadecimalen är desamma kommer ingen öresutjämning att äga rum.",
"cash_rounding" => "Öresavjämning",
"category_dropdown" => "Visa kategori som en rullgardinsmeny",
"center" => "Mitten",
"change_apperance_tooltip" => "",
"comma" => "komma",
"company" => "Företasnamn",
"company_avatar" => "",
"company_change_image" => "Ändra bild",
"company_logo" => "Företagslogo",
"company_remove_image" => "Radera bild",
"company_required" => "Företagsnamn är ett obligatoriskt fält",
"company_select_image" => "Välj Bild",
"company_website_url" => "Företagets webbplats är inte en giltig URL (http: // ...).",
"country_codes" => "Landskod",
"country_codes_tooltip" => "Kommaseparerad lista över landskoder för nominatimadressuppslag.",
"currency_code" => "Valutakod",
"currency_decimals" => "Valuta Decimaler",
"currency_symbol" => "Valutasymbol",
"current_employee_only" => "",
"customer_reward" => "Bonus",
"customer_reward_duplicate" => "Bonus måste vara unik.",
"customer_reward_enable" => "Aktivera kundbonus",
"customer_reward_invalid_chars" => "Bonus kan inte innehålla '_'",
"customer_reward_required" => "Bonus är ett obligatoriskt fält",
"customer_sales_tax_support" => "Kundomsättningskatt Support",
"date_or_time_format" => "Datum och tidsfilter",
"datetimeformat" => "Datum och tid Format",
"decimal_point" => "Decimalpunkt",
"default_barcode_font_size_number" => "Standard streckkods teckensnittstorlek måste vara ett nummer.",
"default_barcode_font_size_required" => "Standard streckkodstorlekstorlek är ett obligatoriskt fält.",
"default_barcode_height_number" => "Standard streckkodshöjd måste vara ett nummer.",
"default_barcode_height_required" => "Standard streckkodshöjd är ett obligatoriskt fält.",
"default_barcode_num_in_row_number" => "Standard streckkodsnummer i rad måste vara ett nummer.",
"default_barcode_num_in_row_required" => "Standard streckkodsnummer i rad måste vara ett nummer.",
"default_barcode_page_cellspacing_number" => "Standard Streckkodssida Cellspacing måste vara ett nummer.",
"default_barcode_page_cellspacing_required" => "Standard Streckkodssida Cellspacing är ett obligatoriskt fält.",
"default_barcode_page_width_number" => "Standard streckkodssidans bredd måste vara ett nummer.",
"default_barcode_page_width_required" => "Standard streckkodssidans bredd är ett obligatoriskt fält.",
"default_barcode_width_number" => "Standard streckkodsbredd måste vara ett nummer.",
"default_barcode_width_required" => "Standard streckkodsbredd är ett obligatoriskt fält.",
"default_item_columns" => "Standard synliga artikel kolumner",
"default_origin_tax_code" => "Standard Urkomstskattkod",
"default_receivings_discount" => "Standardmottagningsrabatt",
"default_receivings_discount_number" => "Standardmottagningsrabatten måste vara ett nummer.",
"default_receivings_discount_required" => "Standardmottagningsrabatt är ett obligatoriskt fält.",
"default_sales_discount" => "Standard Försäljningsrabatt %",
"default_sales_discount_number" => "Standardförsäljningsrabatt måste vara ett nummer.",
"default_sales_discount_required" => "Standardförsäljningsrabatt är ett obligatoriskt fält.",
"default_tax_category" => "Standardskattskategori",
"default_tax_code" => "Standard skattetabell",
"default_tax_jurisdiction" => "Standardskattejurisdiktion",
"default_tax_name_number" => "Standardskattnamn måste vara en sträng.",
"default_tax_name_required" => "Standardskattnamn är ett obligatoriskt fält.",
"default_tax_rate" => "Standardskattesats%",
"default_tax_rate_1" => "Skattesats 1",
"default_tax_rate_2" => "Skattesats 2",
"default_tax_rate_3" => "",
"default_tax_rate_number" => "Standardskattesats måste vara ett nummer.",
"default_tax_rate_required" => "Standardskattesats är ett obligatoriskt fält.",
"derive_sale_quantity" => "Tillåt avledad försäljningskvantitet",
"derive_sale_quantity_tooltip" => "Om den är markerad kommer en ny objekttyp att tillhandahållas för poster som beställts med förlängd mängd",
"dinner_table" => "Bord",
"dinner_table_duplicate" => "Bordsnummer måste vara unik.",
"dinner_table_enable" => "Aktivera bord",
"dinner_table_invalid_chars" => "Bordsnamn får inte innehålla '_'.",
"dinner_table_required" => "Bord är ett obligatoriskt fält.",
"dot" => "punkt",
"email" => "E-mail",
"email_configuration" => "E-mail Konfiguration",
"email_mailpath" => "Sökväg till Sendmail",
"email_protocol" => "Protokol",
"email_receipt_check_behaviour" => "Kryssruta för e-postkvitto",
"email_receipt_check_behaviour_always" => "Alltid förikryssad",
"email_receipt_check_behaviour_last" => "Kom ihåg det senaste valet",
"email_receipt_check_behaviour_never" => "Alltid urkryssad",
"email_smtp_crypto" => "SMTP kryptering",
"email_smtp_host" => "SMTP Server",
"email_smtp_pass" => "SMTP Lösenord",
"email_smtp_port" => "SMTP Port",
"email_smtp_timeout" => "SMTP Timeout",
"email_smtp_user" => "SMTP Användarnamn",
"enable_avatar" => "",
"enable_avatar_tooltip" => "",
"enable_dropdown_tooltip" => "",
"enable_new_look" => "",
"enable_right_bar" => "",
"enable_right_bar_tooltip" => "",
"enforce_privacy" => "Upprätthålla integritet",
"enforce_privacy_tooltip" => "Skydda kundernas integritet genom att kryptera data om deras data raderas",
"fax" => "Fax",
"file_perm" => "There are problems with file permissions please fix and reload this page.",
"financial_year" => "Fiscal Year Start",
"financial_year_apr" => "1 april",
"financial_year_aug" => "1 augusti",
"financial_year_dec" => "1 december",
"financial_year_feb" => "1 februari",
"financial_year_jan" => "1 januari",
"financial_year_jul" => "1 juli",
"financial_year_jun" => "1 juni",
"financial_year_mar" => "1 mars",
"financial_year_may" => "1 maj",
"financial_year_nov" => "1 november",
"financial_year_oct" => "1 oktober",
"financial_year_sep" => "1 september",
"floating_labels" => "",
"gcaptcha_enable" => "Inloggningssida reCAPTCHA",
"gcaptcha_secret_key" => "reCAPTCHA Secret Key",
"gcaptcha_secret_key_required" => "reCAPTCHA Secret Key är ett obligatoriskt fält",
"gcaptcha_site_key" => "reCAPTCHA Site Key",
"gcaptcha_site_key_required" => "reCAPTCHA Site Key är ett obligatoriskt fält",
"gcaptcha_tooltip" => "Skydda inloggningssidan med Google reCAPTCHA, klicka på ikonen för ett API-nyckelpar.",
"general" => "Allmämt",
"general_configuration" => "Allmänna inställningar",
"giftcard_number" => "Presentkortsnummer",
"giftcard_random" => "Slumpa fram",
"giftcard_series" => "Generera i serie",
"image_allowed_file_types" => "Tillåtna filtyper",
"image_max_height_tooltip" => "Högsta tillåtna höjd för bilduppladdningar i pixlar (px).",
"image_max_size_tooltip" => "Högsta tillåtna filstorlek för bilduppladdningar i kilobyte (kb).",
"image_max_width_tooltip" => "Högsta tillåtna bredd för bilduppladdningar i pixlar (px).",
"image_restrictions" => "Begränsningar för bildöverföring",
"include_hsn" => "Inkludera stöd för HSN-koder",
"info" => "Information",
"info_configuration" => "Butiksinformation",
"input_groups" => "",
"integrations" => "Integrationer",
"integrations_configuration" => "Tredjepartsintegrationer",
"invoice" => "Faktura",
"invoice_configuration" => "Faktura utskriftsinställningar",
"invoice_default_comments" => "Standardfaktura kommentarer",
"invoice_email_message" => "Faktura e-postmall",
"invoice_enable" => "Aktivera fakturering",
"invoice_printer" => "Faktura skrivare",
"invoice_type" => "Fakturatyp",
"is_readable" => "är läsbar, men behörigheterna är felaktigt inställda. Ställ in den på 640 eller 660 och uppdatera.",
"is_writable" => "är skrivbar, men behörigheterna är felaktigt inställda. Ställ in den på 750 och uppdatera.",
"item_markup" => "",
"jsprintsetup_required" => "Varning: Den här funktionaliteten fungerar bara om du har installerat FireFox jsPrintSetup addon. Spara ändå?",
"language" => "Språk",
"last_used_invoice_number" => "Senast använt Fakturanummer",
"last_used_quote_number" => "Senast använt Qouta nummer",
"last_used_work_order_number" => "Senast använt arbetsordernummer",
"left" => "Vänster",
"license" => "Licens",
"license_configuration" => "Licensvilkor",
"line_sequence" => "Linjesekvens",
"lines_per_page" => "Linjer per sida",
"lines_per_page_number" => "Linjer per sida måste vara ett nummer.",
"lines_per_page_required" => "Linjer per sida är ett obligatoriskt fält.",
"locale" => "Lokalisering",
"locale_configuration" => "Lokaliseringskonfiguration",
"locale_info" => "Lokaliseringskonfigurationsinformation",
"location" => "Lager",
"location_configuration" => "Lagerplatser",
"location_info" => "Platskonfigurationsinformation",
"login_form" => "",
"logout" => "Vill du göra en säkerhetskopiering innan du loggar ut? Klicka på [OK] för att säkerhetskopiera eller [Avbryt] för att logga ut.",
"mailchimp" => "MailChimp",
"mailchimp_api_key" => "MailChimp API Key",
"mailchimp_configuration" => "Mailchimp konfiguration",
"mailchimp_key_successfully" => "API-nyckeln är giltig.",
"mailchimp_key_unsuccessfully" => "API-nyckeln är ogiltig.",
"mailchimp_lists" => "MailChimp Listor",
"mailchimp_tooltip" => "Klicka på ikonen för en API-nyckel.",
"message" => "Medelande",
"message_configuration" => "Meddelandekonfiguration",
"msg_msg" => "Sparade SMS",
"msg_msg_placeholder" => "Om du vill använda en SMS-mall, spara ditt meddelande här, annars lämna rutan tomt.",
"msg_pwd" => "SMS-API-lösenord",
"msg_pwd_required" => "SMS-API lösenord är ett obligatoriskt fält",
"msg_src" => "SMS-API Sender-ID",
"msg_src_required" => "SMS-API Sender-ID är ett obligatoriskt fält",
"msg_uid" => "SMS-API Användarnamn",
"msg_uid_required" => "SMS-API Användarnamn är ett obligatoriskt fält",
"multi_pack_enabled" => "Flera paket per artikel",
"no_risk" => "No security/vulnerability risks.",
"none" => "inga",
"notify_alignment" => "Meddelande Popup Position",
"number_format" => "Nummerformat",
"number_locale" => "Lokalisering",
"number_locale_invalid" => "Den angivna lokaliseringen är ogiltig. Kontrollera länken i verktygstipset för att hitta en giltig plats.",
"number_locale_required" => "Nummerlandskap är ett obligatoriskt fält.",
"number_locale_tooltip" => "Hitta en lämplig ort genom denna länk.",
"os_timezone" => "OSPOS-tidszon:",
"ospos_info" => "OSPOS installationsinfo",
"payment_options_order" => "Betalningsalternativ ordnning",
"perm_risk" => "Felaktiga behörigheter gör att denna programvara är i fara.",
"phone" => "Företagets telefon",
"phone_required" => "Företagets telefon är ett obligatoriskt fält.",
"print_bottom_margin" => "Marginal botten",
"print_bottom_margin_number" => "Marginalbotten måste vara ett nummer.",
"print_bottom_margin_required" => "Marginalbotten är ett obligatoriskt fält.",
"print_delay_autoreturn" => "Autoreturn to Sale-försening",
"print_delay_autoreturn_number" => "Fördröjning av autoreturn to Sale är ett obligatoriskt fält.",
"print_delay_autoreturn_required" => "Fördröjning av autoreturn to Sale måste vara ett nummer.",
"print_footer" => "Skriv ut sidfot",
"print_header" => "Skriv ut sidhuvudet",
"print_left_margin" => "Marginal vänster",
"print_left_margin_number" => "Marginal vänster måste vara ett nummer.",
"print_left_margin_required" => "Marginal vänster är ett obligatoriskt fält.",
"print_receipt_check_behaviour" => "Kryssrutan Skriv ut kvitto",
"print_receipt_check_behaviour_always" => "Kontrolleras alltid",
"print_receipt_check_behaviour_last" => "Kom ihåg det senaste valet",
"print_receipt_check_behaviour_never" => "Alltid urkryssad",
"print_right_margin" => "Marginal höger",
"print_right_margin_number" => "Marginal höger måste vara ett tal.",
"print_right_margin_required" => "Marginal höger är ett obligatoriskt fält.",
"print_silently" => "Visa utskriftsdialog",
"print_top_margin" => "Marginal top",
"print_top_margin_number" => "Marginal Top måste vara ett nummer.",
"print_top_margin_required" => "Margin Top är ett obligatoriskt fält.",
"quantity_decimals" => "Antal decimaler",
"quick_cash_enable" => "",
"quote_default_comments" => "Standardoffert kommentar",
"receipt" => "Kvitto",
"receipt_category" => "",
"receipt_configuration" => "Kvittosutskriftsinställningar",
"receipt_default" => "Standard",
"receipt_font_size" => "Textstorlek",
"receipt_font_size_number" => "Teckensnittstorlek måste vara ett nummer.",
"receipt_font_size_required" => "Teckensnittstorlek är ett obligatoriskt fält.",
"receipt_info" => "Kvittokonfigurationsinformation",
"receipt_printer" => "Kvittoskrivare",
"receipt_short" => "Kort",
"receipt_show_company_name" => "Visa företagsnamn",
"receipt_show_description" => "Visa beskrivning",
"receipt_show_serialnumber" => "Visa serienummer",
"receipt_show_tax_ind" => "Visa skatteindikator",
"receipt_show_taxes" => "Visa skatter",
"receipt_show_total_discount" => "Visa total rabatt",
"receipt_template" => "Kvitto mall",
"receiving_calculate_average_price" => "Beräkna avg. Pris (Inleverans)",
"recv_invoice_format" => "Mottagningsfakturaformat",
"register_mode_default" => "Standardregisterläge",
"report_an_issue" => "Rapportera ett problem",
"return_policy_required" => "Returpolicy är ett obligatoriskt fält.",
"reward" => "Bonus",
"reward_configuration" => "Bonuskonfiguration",
"right" => "Höger",
"sales_invoice_format" => "Försäljningsfakturaformat",
"sales_quote_format" => "Försäljningsquotaformat",
"saved_successfully" => "Konfigurationen sparades.",
"saved_unsuccessfully" => "Konfigurationsbesparingen misslyckades.",
"security_issue" => "Security Vulnerability Warning",
"server_notice" => "Please use the below info for issue reporting.",
"service_charge" => "",
"show_due_enable" => "",
"show_office_group" => "Visa kontorsikon",
"statistics" => "Skicka statistik",
"statistics_tooltip" => "Skicka statistik för utveckling och funktionsförbättringsändamål.",
"stock_location" => "Lagerplats",
"stock_location_duplicate" => "Lagerplats måste vara unik.",
"stock_location_invalid_chars" => "Lagerplatsen kan inte innehålla '_'.",
"stock_location_required" => "Lagerplats är ett obligatoriskt fält.",
"suggestions_fifth_column" => "",
"suggestions_first_column" => "Kolumn 1",
"suggestions_fourth_column" => "",
"suggestions_layout" => "Sök förslag till layout",
"suggestions_second_column" => "Kolumn 2",
"suggestions_third_column" => "Kolumn 3",
"system_conf" => "Setup & Conf",
"system_info" => "System Info",
"table" => "Bord",
"table_configuration" => "Bordsinställningar",
"takings_printer" => "Kvittoskrivare",
"tax" => "Skatt",
"tax_category" => "Skattekategori",
"tax_category_duplicate" => "Den angivna skattekategori existerar redan.",
"tax_category_invalid_chars" => "Den angivna skattekategori är ogiltig.",
"tax_category_required" => "Skattekategori krävs.",
"tax_category_used" => "Skattekategori kan inte raderas eftersom den används.",
"tax_configuration" => "Skattkonfiguration",
"tax_decimals" => "Skatt decimaler",
"tax_id" => "Skatteid",
"tax_included" => "Skatt ingår",
"theme" => "Tema",
"theme_preview" => "",
"thousands_separator" => "Tusentals separator",
"timezone" => "Tidszon",
"timezone_error" => "OSPOS-tidszon skiljer sig från din lokala tidszon.",
"top" => "Top",
"use_destination_based_tax" => "Använd destinationsbaserad skatt",
"user_timezone" => "Lokal tidszon:",
"website" => "Hemsida",
"wholesale_markup" => "",
"work_order_enable" => "Arbetsorderstöd",
"work_order_format" => "Arbetsorderformat",
'address' => "Företagsadress",
'address_required' => "Företagsadress är ett obligatoriskt fält.",
'all_set' => "Alla filbehörigheter är korrekt inställda!",
'allow_duplicate_barcodes' => "Tillåt duplicera streckkoder",
'apostrophe' => "apostrof",
'backup_button' => "Backup",
'backup_database' => "Säkerhetskopiera databas",
'barcode' => "Streckkod",
'barcode_company' => "Företagsnamn",
'barcode_configuration' => "Streckkodskonfiguration",
'barcode_content' => "Streckkod innehåll",
'barcode_first_row' => "Rad 1",
'barcode_font' => "Font",
'barcode_formats' => "Inmatningsformat",
'barcode_generate_if_empty' => "Skapa om tom.",
'barcode_height' => "Höjd (px)",
'barcode_id' => "Artikel-id / namn",
'barcode_info' => "Streckkodskonfigurationsinformation",
'barcode_layout' => "Streckkodslayout",
'barcode_name' => "Namn",
'barcode_number' => "Streckkod",
'barcode_number_in_row' => "Antal i rad",
'barcode_page_cellspacing' => "Visa kolumnbredd.",
'barcode_page_width' => "Visa sidbredd",
'barcode_price' => "Pris",
'barcode_second_row' => "Rad 2",
'barcode_third_row' => "Rad 3",
'barcode_tooltip' => "Varning: Den här funktionen kan orsaka att duplicerade objekt importeras eller skapas. Använd inte om du inte vill ha dubbla streckkoder.",
'barcode_type' => "Streckkodstyp",
'barcode_width' => "Bredd (px)",
'bottom' => "Botten",
'cash_button' => "",
'cash_button_1' => "",
'cash_button_2' => "",
'cash_button_3' => "",
'cash_button_4' => "",
'cash_button_5' => "",
'cash_button_6' => "",
'cash_decimals' => "Kontant decimaler",
'cash_decimals_tooltip' => "Om kontanterna och valutadecimalen är desamma kommer ingen öresutjämning att äga rum.",
'cash_rounding' => "Öresavjämning",
'category_dropdown' => "Visa kategori som en rullgardinsmeny",
'center' => "Mitten",
'change_apperance_tooltip' => "",
'comma' => "komma",
'company' => "Företasnamn",
'company_avatar' => "",
'company_change_image' => "Ändra bild",
'company_logo' => "Företagslogo",
'company_remove_image' => "Radera bild",
'company_required' => "Företagsnamn är ett obligatoriskt fält",
'company_select_image' => "Välj Bild",
'company_website_url' => "Företagets webbplats är inte en giltig URL (http: // ...).",
'country_codes' => "Landskod",
'country_codes_tooltip' => "Kommaseparerad lista över landskoder för nominatimadressuppslag.",
'currency_code' => "Valutakod",
'currency_decimals' => "Valuta Decimaler",
'currency_symbol' => "Valutasymbol",
'current_employee_only' => "",
'customer_reward' => "Bonus",
'customer_reward_duplicate' => "Bonus måste vara unik.",
'customer_reward_enable' => "Aktivera kundbonus",
'customer_reward_invalid_chars' => "Bonus kan inte innehålla '_'",
'customer_reward_required' => "Bonus är ett obligatoriskt fält",
'customer_sales_tax_support' => "Kundomsättningskatt Support",
'date_or_time_format' => "Datum och tidsfilter",
'datetimeformat' => "Datum och tid Format",
'decimal_point' => "Decimalpunkt",
'default_barcode_font_size_number' => "Standard streckkods teckensnittstorlek måste vara ett nummer.",
'default_barcode_font_size_required' => "Standard streckkodstorlekstorlek är ett obligatoriskt fält.",
'default_barcode_height_number' => "Standard streckkodshöjd måste vara ett nummer.",
'default_barcode_height_required' => "Standard streckkodshöjd är ett obligatoriskt fält.",
'default_barcode_num_in_row_number' => "Standard streckkodsnummer i rad måste vara ett nummer.",
'default_barcode_num_in_row_required' => "Standard streckkodsnummer i rad måste vara ett nummer.",
'default_barcode_page_cellspacing_number' => "Standard Streckkodssida Cellspacing måste vara ett nummer.",
'default_barcode_page_cellspacing_required' => "Standard Streckkodssida Cellspacing är ett obligatoriskt fält.",
'default_barcode_page_width_number' => "Standard streckkodssidans bredd måste vara ett nummer.",
'default_barcode_page_width_required' => "Standard streckkodssidans bredd är ett obligatoriskt fält.",
'default_barcode_width_number' => "Standard streckkodsbredd måste vara ett nummer.",
'default_barcode_width_required' => "Standard streckkodsbredd är ett obligatoriskt fält.",
'default_item_columns' => "Standard synliga artikel kolumner",
'default_origin_tax_code' => "Standard Urkomstskattkod",
'default_receivings_discount' => "Standardmottagningsrabatt",
'default_receivings_discount_number' => "Standardmottagningsrabatten måste vara ett nummer.",
'default_receivings_discount_required' => "Standardmottagningsrabatt är ett obligatoriskt fält.",
'default_sales_discount' => "Standard Försäljningsrabatt %",
'default_sales_discount_number' => "Standardförsäljningsrabatt måste vara ett nummer.",
'default_sales_discount_required' => "Standardförsäljningsrabatt är ett obligatoriskt fält.",
'default_tax_category' => "Standardskattskategori",
'default_tax_code' => "Standard skattetabell",
'default_tax_jurisdiction' => "Standardskattejurisdiktion",
'default_tax_name_number' => "Standardskattnamn måste vara en sträng.",
'default_tax_name_required' => "Standardskattnamn är ett obligatoriskt fält.",
'default_tax_rate' => "Standardskattesats%",
'default_tax_rate_1' => "Skattesats 1",
'default_tax_rate_2' => "Skattesats 2",
'default_tax_rate_3' => "",
'default_tax_rate_number' => "Standardskattesats måste vara ett nummer.",
'default_tax_rate_required' => "Standardskattesats är ett obligatoriskt fält.",
'derive_sale_quantity' => "Tillåt avledad försäljningskvantitet",
'derive_sale_quantity_tooltip' => "Om den är markerad kommer en ny objekttyp att tillhandahållas för poster som beställts med förlängd mängd",
'dinner_table' => "Bord",
'dinner_table_duplicate' => "Bordsnummer måste vara unik.",
'dinner_table_enable' => "Aktivera bord",
'dinner_table_invalid_chars' => "Bordsnamn får inte innehålla '_'.",
'dinner_table_required' => "Bord är ett obligatoriskt fält.",
'dot' => "punkt",
'email' => "E-post",
'email_configuration' => "E-mail Konfiguration",
'email_mailpath' => "Sökväg till Sendmail",
'email_protocol' => "Protokol",
'email_receipt_check_behaviour' => "Kryssruta för e-postkvitto",
'email_receipt_check_behaviour_always' => "Alltid förikryssad",
'email_receipt_check_behaviour_last' => "Kom ihåg det senaste valet",
'email_receipt_check_behaviour_never' => "Alltid urkryssad",
'email_smtp_crypto' => "SMTP kryptering",
'email_smtp_host' => "SMTP Server",
'email_smtp_pass' => "SMTP Lösenord",
'email_smtp_port' => "SMTP Port",
'email_smtp_timeout' => "SMTP Timeout",
'email_smtp_user' => "SMTP Användarnamn",
'enable_avatar' => "",
'enable_avatar_tooltip' => "",
'enable_dropdown_tooltip' => "",
'enable_new_look' => "",
'enable_right_bar' => "",
'enable_right_bar_tooltip' => "",
'enforce_privacy' => "Upprätthålla integritet",
'enforce_privacy_tooltip' => "Skydda kundernas integritet genom att kryptera data om deras data raderas",
'fax' => "Fax",
'file_perm' => "There are problems with file permissions please fix and reload this page.",
'financial_year' => "Räkenskapsårets början",
'financial_year_apr' => "1 april",
'financial_year_aug' => "1 augusti",
'financial_year_dec' => "1 december",
'financial_year_feb' => "1 februari",
'financial_year_jan' => "1 januari",
'financial_year_jul' => "1 juli",
'financial_year_jun' => "1 juni",
'financial_year_mar' => "1 mars",
'financial_year_may' => "1 maj",
'financial_year_nov' => "1 november",
'financial_year_oct' => "1 oktober",
'financial_year_sep' => "1 september",
'floating_labels' => "Flytande etiketter",
'gcaptcha_enable' => "Inloggningssida reCAPTCHA",
'gcaptcha_secret_key' => "Hemlig nyckel för reCAPTCHA",
'gcaptcha_secret_key_required' => "reCAPTCHA Secret Key är ett obligatoriskt fält",
'gcaptcha_site_key' => "Sid-nyckel för reCAPTCHA",
'gcaptcha_site_key_required' => "reCAPTCHA Site Key är ett obligatoriskt fält",
'gcaptcha_tooltip' => "Skydda inloggningssidan med Google reCAPTCHA, klicka på ikonen för ett API-nyckelpar.",
'general' => "Allmämt",
'general_configuration' => "Allmänna inställningar",
'giftcard_number' => "Presentkortsnummer",
'giftcard_random' => "Slumpa fram",
'giftcard_series' => "Generera i serie",
'image_allowed_file_types' => "Tillåtna filtyper",
'image_max_height_tooltip' => "Högsta tillåtna höjd för bilduppladdningar i pixlar (px).",
'image_max_size_tooltip' => "Högsta tillåtna filstorlek för bilduppladdningar i kilobyte (kb).",
'image_max_width_tooltip' => "Högsta tillåtna bredd för bilduppladdningar i pixlar (px).",
'image_restrictions' => "Begränsningar för bildöverföring",
'include_hsn' => "Inkludera stöd för HSN-koder",
'info' => "Information",
'info_configuration' => "Butiksinformation",
'input_groups' => "Inmatningsgrupper",
'integrations' => "Integrationer",
'integrations_configuration' => "Tredjepartsintegrationer",
'invoice' => "Faktura",
'invoice_configuration' => "Faktura utskriftsinställningar",
'invoice_default_comments' => "Standardfaktura kommentarer",
'invoice_email_message' => "Faktura e-postmall",
'invoice_enable' => "Aktivera Fakturering",
'invoice_printer' => "Faktura skrivare",
'invoice_type' => "Fakturatyp",
'is_readable' => "är läsbar, men behörigheterna är felaktigt inställda. Ställ in den på 640 eller 660 och uppdatera.",
'is_writable' => "är skrivbar, men behörigheterna är felaktigt inställda. Ställ in den på 750 och uppdatera.",
'item_markup' => "",
'jsprintsetup_required' => "Varning: Den här funktionaliteten fungerar bara om du har installerat FireFox jsPrintSetup addon. Spara ändå?",
'language' => "Språk",
'last_used_invoice_number' => "Senast använt Fakturanummer",
'last_used_quote_number' => "Senast använt Qouta nummer",
'last_used_work_order_number' => "Senast använt arbetsordernummer",
'left' => "Vänster",
'license' => "Licens",
'license_configuration' => "Licensvilkor",
'line_sequence' => "Linjesekvens",
'lines_per_page' => "Linjer per sida",
'lines_per_page_number' => "Linjer per sida måste vara ett nummer.",
'lines_per_page_required' => "Linjer per sida är ett obligatoriskt fält.",
'locale' => "Lokalisering",
'locale_configuration' => "Lokaliseringskonfiguration",
'locale_info' => "Lokaliseringskonfigurationsinformation",
'location' => "Lager",
'location_configuration' => "Lagerplatser",
'location_info' => "Platskonfigurationsinformation",
'login_form' => "Formulär-stil för inloggning",
'logout' => "Vill du göra en säkerhetskopiering innan du loggar ut? Klicka på [OK] för att säkerhetskopiera eller [Avbryt] för att logga ut.",
'mailchimp' => "MailChimp",
'mailchimp_api_key' => "API-nyckel för MailChimp",
'mailchimp_configuration' => "Mailchimp konfiguration",
'mailchimp_key_successfully' => "API-nyckeln är giltig.",
'mailchimp_key_unsuccessfully' => "API-nyckeln är ogiltig.",
'mailchimp_lists' => "MailChimp Listor",
'mailchimp_tooltip' => "Klicka på ikonen för en API-nyckel.",
'message' => "Medelande",
'message_configuration' => "Meddelandekonfiguration",
'msg_msg' => "Sparade SMS",
'msg_msg_placeholder' => "Om du vill använda en SMS-mall, spara ditt meddelande här, annars lämna rutan tomt.",
'msg_pwd' => "SMS-API-lösenord",
'msg_pwd_required' => "SMS-API lösenord är ett obligatoriskt fält",
'msg_src' => "SMS-API Sender-ID",
'msg_src_required' => "SMS-API Sender-ID är ett obligatoriskt fält",
'msg_uid' => "SMS-API Användarnamn",
'msg_uid_required' => "SMS-API Användarnamn är ett obligatoriskt fält",
'multi_pack_enabled' => "Flera paket per artikel",
'no_risk' => "Ingen säkerhet/sårbarhetsrisker.",
'none' => "inga",
'notify_alignment' => "Meddelande Popup Position",
'number_format' => "Nummerformat",
'number_locale' => "Lokalisering",
'number_locale_invalid' => "Den angivna lokaliseringen är ogiltig. Kontrollera länken i verktygstipset för att hitta en giltig plats.",
'number_locale_required' => "Nummerlandskap är ett obligatoriskt fält.",
'number_locale_tooltip' => "Hitta en lämplig ort genom denna länk.",
'os_timezone' => "OSPOS-tidszon:",
'ospos_info' => "OSPOS installationsinfo",
'payment_options_order' => "Betalningsalternativ ordnning",
'perm_risk' => "Felaktiga behörigheter gör att denna programvara är i fara.",
'phone' => "Företagets telefon",
'phone_required' => "Företagets telefon är ett obligatoriskt fält.",
'print_bottom_margin' => "Marginal botten",
'print_bottom_margin_number' => "Marginalbotten måste vara ett nummer.",
'print_bottom_margin_required' => "Marginalbotten är ett obligatoriskt fält.",
'print_delay_autoreturn' => "Autoreturn to Sale-försening",
'print_delay_autoreturn_number' => "Fördröjning av autoreturn to Sale är ett obligatoriskt fält.",
'print_delay_autoreturn_required' => "Fördröjning av autoreturn to Sale måste vara ett nummer.",
'print_footer' => "Skriv ut sidfot",
'print_header' => "Skriv ut sidhuvudet",
'print_left_margin' => "Marginal vänster",
'print_left_margin_number' => "Marginal vänster måste vara ett nummer.",
'print_left_margin_required' => "Marginal vänster är ett obligatoriskt fält.",
'print_receipt_check_behaviour' => "Kryssrutan Skriv ut kvitto",
'print_receipt_check_behaviour_always' => "Kontrolleras alltid",
'print_receipt_check_behaviour_last' => "Kom ihåg det senaste valet",
'print_receipt_check_behaviour_never' => "Alltid urkryssad",
'print_right_margin' => "Marginal höger",
'print_right_margin_number' => "Marginal höger måste vara ett tal.",
'print_right_margin_required' => "Marginal höger är ett obligatoriskt fält.",
'print_silently' => "Visa utskriftsdialog",
'print_top_margin' => "Marginal top",
'print_top_margin_number' => "Marginal Top måste vara ett nummer.",
'print_top_margin_required' => "Margin Top är ett obligatoriskt fält.",
'quantity_decimals' => "Antal decimaler",
'quick_cash_enable' => "",
'quote_default_comments' => "Standardoffert kommentar",
'receipt' => "Kvitto",
'receipt_category' => "",
'receipt_configuration' => "Kvittosutskriftsinställningar",
'receipt_default' => "Standard",
'receipt_font_size' => "Textstorlek",
'receipt_font_size_number' => "Teckensnittstorlek måste vara ett nummer.",
'receipt_font_size_required' => "Teckensnittstorlek är ett obligatoriskt fält.",
'receipt_info' => "Kvittokonfigurationsinformation",
'receipt_printer' => "Kvittoskrivare",
'receipt_short' => "Kort",
'receipt_show_company_name' => "Visa företagsnamn",
'receipt_show_description' => "Visa beskrivning",
'receipt_show_serialnumber' => "Visa serienummer",
'receipt_show_tax_ind' => "Visa skatteindikator",
'receipt_show_taxes' => "Visa skatter",
'receipt_show_total_discount' => "Visa total rabatt",
'receipt_template' => "Kvitto mall",
'receiving_calculate_average_price' => "Beräkna avg. Pris (Inleverans)",
'recv_invoice_format' => "Mottagningsfakturaformat",
'register_mode_default' => "Standardregisterläge",
'report_an_issue' => "Rapportera ett problem",
'return_policy_required' => "Returpolicy är ett obligatoriskt fält.",
'reward' => "Bonus",
'reward_configuration' => "Bonuskonfiguration",
'right' => "Höger",
'sales_invoice_format' => "Försäljningsfakturaformat",
'sales_quote_format' => "Försäljningsquotaformat",
'saved_successfully' => "Konfigurationen sparades.",
'saved_unsuccessfully' => "Konfigurationsbesparingen misslyckades.",
'security_issue' => "Varning för säkerhetsrisker",
'server_notice' => "Vänligen använd nedanstående info för fel-rapportering.",
'service_charge' => "",
'show_due_enable' => "",
'show_office_group' => "Visa kontorsikon",
'statistics' => "Skicka statistik",
'statistics_tooltip' => "Skicka statistik för utveckling och funktionsförbättringsändamål.",
'stock_location' => "Lagerplats",
'stock_location_duplicate' => "Lagerplats måste vara unik.",
'stock_location_invalid_chars' => "Lagerplatsen kan inte innehålla '_'.",
'stock_location_required' => "Lagerplats är ett obligatoriskt fält.",
'suggestions_fifth_column' => "",
'suggestions_first_column' => "Kolumn 1",
'suggestions_fourth_column' => "",
'suggestions_layout' => "Sök förslag till layout",
'suggestions_second_column' => "Kolumn 2",
'suggestions_third_column' => "Kolumn 3",
'system_conf' => "Ställ in & Konf",
'system_info' => "System Info",
'table' => "Bord",
'table_configuration' => "Bordsinställningar",
'takings_printer' => "Kvittoskrivare",
'tax' => "Skatt",
'tax_category' => "Skattekategori",
'tax_category_duplicate' => "Den angivna skattekategori existerar redan.",
'tax_category_invalid_chars' => "Den angivna skattekategori är ogiltig.",
'tax_category_required' => "Skattekategori krävs.",
'tax_category_used' => "Skattekategori kan inte raderas eftersom den används.",
'tax_configuration' => "Skattkonfiguration",
'tax_decimals' => "Skatt decimaler",
'tax_id' => "Skatteid",
'tax_included' => "Skatt ingår",
'theme' => "Tema",
'theme_preview' => "Förhandsgranska tema:",
'thousands_separator' => "Tusentals separator",
'timezone' => "Tidszon",
'timezone_error' => "OSPOS-tidszon skiljer sig från din lokala tidszon.",
'top' => "Top",
'use_destination_based_tax' => "Använd destinationsbaserad skatt",
'user_timezone' => "Lokal tidszon:",
'website' => "Hemsida",
'wholesale_markup' => "",
'work_order_enable' => "Arbetsorderstöd",
'work_order_format' => "Arbetsorderformat",
];

View File

@@ -1,56 +1,57 @@
<?php
return [
"account_number" => "Konto #",
"account_number_duplicate" => "Kontonummer finns redan i databasen.",
"available_points" => "Tillgängliga poäng",
"available_points_value" => "",
"average" => "Genomsnittlig spenderad",
"avg_discount" => "Genomsnittlig rabatt",
"basic_information" => "Information",
"cannot_be_deleted" => "Kunde inte radera valda kunder, en eller flera av de valda kunderna har försäljning.",
"company_name" => "Företag",
"confirm_delete" => "Är du säker på att du vill radera den valda kunden / kunderna?",
"confirm_restore" => "Är du säker på att du vill återställa valda kunder?",
"consent" => "Registreringssamtycke",
"consent_required" => "Registreringssamtycke är ett obligatoriskt fält.",
"csv_import_failed" => "CSV-import misslyckades",
"csv_import_nodata_wrongformat" => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
"csv_import_partially_failed" => "Kundimporten lyckades med några misslyckanden:",
"csv_import_success" => "Kundimporten lyckades.",
"customer" => "Kund",
"date" => "Datum",
"discount" => "Rabatt",
"discount_fixed" => "Fast rabatt",
"discount_percent" => "Procentrabatt",
"discount_type" => "Rabattyp",
"email_duplicate" => "E-postadress finns redan i databasen.",
"employee" => "Anställd",
"error_adding_updating" => "Kund tillägg eller uppdatering misslyckades.",
"import_items_csv" => "Kund import från CSV",
"mailchimp_activity_click" => "E-post klick",
"mailchimp_activity_lastopen" => "Senast öppet e-mail",
"mailchimp_activity_open" => "E-post öppnad",
"mailchimp_activity_total" => "E-mail skickad",
"mailchimp_activity_unopen" => "E-mail oöppnad",
"mailchimp_email_client" => "E-mailklient",
"mailchimp_info" => "MailChimp",
"mailchimp_member_rating" => "Betyg",
"mailchimp_status" => "Status",
"mailchimp_vip" => "VIP",
"max" => "Max. spenderat",
"min" => "Min. spenderat",
"new" => "Ny kund",
"none_selected" => "Du har inte valt någon kund att radera.",
"one_or_multiple" => "Kunder",
"quantity" => "Antal",
"stats_info" => "Status",
"successful_adding" => "Du har lagt till en kund",
"successful_deleted" => "Du har tagit bort",
"successful_updating" => "Du har uppdaterat kunden",
"tax_code" => "Skattekod",
"tax_id" => "Skatteid",
"taxable" => "Skattetabell",
"total" => "Totalt spenderat",
"update" => "Uppdatera kund",
"rewards_package" => "Belöningspaket",
'account_number' => "Konto #",
'account_number_duplicate' => "Kontonummer finns redan i databasen.",
'available_points' => "Tillgängliga poäng",
'available_points_value' => "",
'average' => "Genomsnittlig spenderad",
'avg_discount' => "Genomsnittlig rabatt",
'basic_information' => "Information",
'cannot_be_deleted' => "Kunde inte radera valda kunder, en eller flera av de valda kunderna har försäljning.",
'company_name' => "Företag",
'confirm_delete' => "Är du säker på att du vill radera den valda kunden / kunderna?",
'confirm_restore' => "Är du säker på att du vill återställa valda kunder?",
'consent' => "Registreringssamtycke",
'consent_required' => "Registreringssamtycke är ett obligatoriskt fält.",
'csv_import_failed' => "CSV-import misslyckades",
'csv_import_nodata_wrongformat' => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
'csv_import_partially_failed' => "Kundimporten lyckades med några misslyckanden:",
'csv_import_success' => "Kundimporten lyckades.",
'customer' => "Kund",
'date' => "Datum",
'discount' => "Rabatt",
'discount_fixed' => "Fast rabatt",
'discount_percent' => "Procentrabatt",
'discount_type' => "Typ av rabatt",
'email_duplicate' => "E-postadress finns redan i databasen.",
'employee' => "Anställd",
'error_adding_updating' => "Kund tillägg eller uppdatering misslyckades.",
'import_items_csv' => "Kund import från CSV",
'mailchimp_activity_click' => "E-post klick",
'mailchimp_activity_lastopen' => "Senast öppet e-mail",
'mailchimp_activity_open' => "E-post öppnad",
'mailchimp_activity_total' => "E-mail skickad",
'mailchimp_activity_unopen' => "E-mail oöppnad",
'mailchimp_email_client' => "E-mailklient",
'mailchimp_info' => "MailChimp",
'mailchimp_member_rating' => "Betyg",
'mailchimp_status' => "Status",
'mailchimp_vip' => "VIP",
'max' => "Max. spenderat",
'min' => "Min. spenderat",
'new' => "Ny kund",
'none_selected' => "Du har inte valt någon kund att radera.",
'one_or_multiple' => "Kunder",
'quantity' => "Antal",
'stats_info' => "Status",
'successful_adding' => "Du har lagt till en kund",
'successful_deleted' => "Du har tagit bort",
'successful_updating' => "Du har uppdaterat kunden",
'tax_code' => "Skattekod",
'tax_id' => "Skatteid",
'taxable' => "Skattetabell",
'total' => "Totalt spenderat",
'update' => "Uppdatera kund",
'rewards_package' => "Belöningspaket",
];

View File

@@ -1,23 +1,24 @@
<?php
return [
"all_time" => "All Tid",
"apply" => "Skicka",
"cancel" => "Avbryt",
"custom" => "Anpassa",
"from" => "Från",
"last_30" => "Senaste 30 dagar",
"last_7" => "Senaste 7 dagar",
"last_financial_year" => "Senaste bokföringsår",
"last_month" => "Senaste månaden",
"last_year" => "Senaste året",
"same_month_last_year" => "Samma månad föregående år",
"same_month_to_same_day_last_year" => "Samma månad till dag förra året",
"this_financial_year" => "Nuvarande bokföringsår",
"this_month" => "Nuvarande månad",
"this_year" => "Nuvarande år",
"to" => "Till",
"today" => "Idag",
"today_last_year" => "Idag föregående år",
"weekstart" => "0",
"yesterday" => "I går",
'all_time' => "All Tid",
'apply' => "Verkställ",
'cancel' => "Avbryt",
'custom' => "Anpassa",
'from' => "Från",
'last_30' => "Senaste 30 dagar",
'last_7' => "Senaste 7 dagar",
'last_financial_year' => "Senaste bokföringsår",
'last_month' => "Senaste månaden",
'last_year' => "Förra året",
'same_month_last_year' => "Samma månad förra året",
'same_month_to_same_day_last_year' => "Samma månad för samma dag förra året",
'this_financial_year' => "Nuvarande bokföringsår",
'this_month' => "Nuvarande månad",
'this_year' => "Nuvarande år",
'to' => "Till",
'today' => "Idag",
'today_last_year' => "Idag föregående år",
'weekstart' => "0",
'yesterday' => "I går",
];

View File

@@ -1,44 +1,45 @@
<?php
return [
"administrator" => "",
"basic_information" => "Information",
"cannot_be_deleted" => "Det går inte att radera valda anställda, en eller flera av de behandlade försäljningarna eller du försöker radera ditt konto.",
"change_employee" => "",
"change_password" => "Ändra lösenord",
"clerk" => "",
"commission" => "",
"confirm_delete" => "Är du säker på att du vill radera de valda arbetstagarna?",
"confirm_restore" => "Är du säker på att du vill återställa valda anställda (er)?",
"current_password" => "Nuvarande lösenord",
"current_password_invalid" => "Nuvarande lösenord är fel.",
"employee" => "Anställd",
"error_adding_updating" => "Anställd lägg till eller uppdatering misslyckades.",
"error_deleting_demo_admin" => "Du kan inte radera demo admin-användaren.",
"error_updating_demo_admin" => "Du kan inte ändra demo admin-användaren.",
"language" => "Språk",
"login_info" => "Login",
"manager" => "",
"new" => "Ny anställd",
"none_selected" => "Du har inte valt någon anställd att radera.",
"one_or_multiple" => "Anställda",
"password" => "Lösenord",
"password_minlength" => "Lösenordet måste vara minst 8 tecken i längd.",
"password_must_match" => "Lösenorden matchar ej.",
"password_not_must_match" => "Nuvarande lösenord och nytt lösenord måste vara unikt.",
"password_required" => "Lösenord krävs.",
"permission_desc" => "Markera rutorna nedan för att ge tillgång till moduler.",
"permission_info" => "Behörigheter",
"repeat_password" => "Lösenord igen",
"subpermission_required" => "Lägg till minst en behörighet för varje modul.",
"successful_adding" => "Tillägg av anställd lyckades.",
"successful_change_password" => "Lösenordsbyte lyckades.",
"successful_deleted" => "Du har tagit bort",
"successful_updating" => "Du har uppdaterat anställda",
"system_language" => "System Språk",
"unsuccessful_change_password" => "Lösenordsbyte misslyckades.",
"update" => "Uppdatera anställd",
"username" => "Användarnamn",
"username_duplicate" => "",
"username_minlength" => "Användarnamnet måste vara minst 5 tecken långt.",
"username_required" => "Användarnamnet är ett obligatoriskt fält.",
'administrator' => "",
'basic_information' => "Information",
'cannot_be_deleted' => "Det går inte att radera valda anställda, en eller flera av de behandlade försäljningarna eller du försöker radera ditt konto.",
'change_employee' => "",
'change_password' => "Ändra lösenord",
'clerk' => "",
'commission' => "",
'confirm_delete' => "Är du säker på att du vill radera de valda arbetstagarna?",
'confirm_restore' => "Är du säker på att du vill återställa valda anställda (er)?",
'current_password' => "Nuvarande lösenord",
'current_password_invalid' => "Nuvarande lösenord är fel.",
'employee' => "Anställd",
'error_adding_updating' => "Anställd lägg till eller uppdatering misslyckades.",
'error_deleting_demo_admin' => "Du kan inte radera demo admin-användaren.",
'error_updating_demo_admin' => "Du kan inte ändra demo admin-användaren.",
'language' => "Språk",
'login_info' => "Login",
'manager' => "",
'new' => "Ny anställd",
'none_selected' => "Du har inte valt någon anställd att radera.",
'one_or_multiple' => "Anställda",
'password' => "Lösenord",
'password_minlength' => "Lösenordet måste vara minst 8 tecken i längd.",
'password_must_match' => "Lösenorden matchar ej.",
'password_not_must_match' => "Nuvarande lösenord och nytt lösenord måste vara unikt.",
'password_required' => "Lösenord krävs.",
'permission_desc' => "Markera rutorna nedan för att ge tillgång till moduler.",
'permission_info' => "Behörigheter",
'repeat_password' => "Lösenord igen",
'subpermission_required' => "Lägg till minst en behörighet för varje modul.",
'successful_adding' => "Tillägg av anställd lyckades.",
'successful_change_password' => "Lösenordsbyte lyckades.",
'successful_deleted' => "Du har tagit bort",
'successful_updating' => "Du har uppdaterat anställda",
'system_language' => "System Språk",
'unsuccessful_change_password' => "Lösenordsbyte misslyckades.",
'update' => "Uppdatera anställd",
'username' => "Användarnamn",
'username_duplicate' => "Användarnamnet för den anställda används redan. Vänligen välj ett annat.",
'username_minlength' => "Användarnamnet måste vara minst 5 tecken långt.",
'username_required' => "Användarnamnet är ett obligatoriskt fält.",
];

View File

@@ -1,50 +1,51 @@
<?php
return [
"add_item" => "Lägg till kostnad",
"amount" => "Belopp",
"amount_number" => "Beloppet måste vara ett nummer",
"amount_required" => "Kostnadsbeloppet krävs",
"by_category" => "Kategori",
"cannot_be_deleted" => "Kunde inte ta bort kategorikostnad",
"cash" => "Kontant",
"cash_filter" => "Kontant",
"categories_name" => "Kategori",
"category_required" => "kategori är ett obligatoriskt fält",
"check" => "Check",
"check_filter" => "Check",
"confirm_delete" => "Är du säker på att du vill radera den valda utgiften(erna)?",
"confirm_restore" => "Är du säker på att du vill återställa valda utgifter(erna)?",
"credit" => "Kreditkort",
"credit_filter" => "Kreditkort",
"date" => "Datum",
"date_number" => "Datumet måste vara ett nummer",
"date_required" => "Datumet är ett obligatoriskt fält",
"debit" => "Kontokort",
"debit_filter" => "Kontokort",
"description" => "Beskrivning",
"due" => "Skuld",
"due_filter" => "skuld",
"employee" => "Skapad av",
"error_adding_updating" => "Det gick inte att lägga till / uppdatera kostnader",
"expense_id" => "Id",
"expenses_employee" => "Anställd",
"info" => "Utgifter info",
"ip_address" => "",
"is_deleted" => "Raderad",
"name_required" => "Expense Kategori namn krävs",
"new" => "Ny kostnad",
"new_supplier" => "",
"no_expenses_to_display" => "Det finns inga utgifter att visa",
"none_selected" => "Du har inte valt någon kostnad",
"one_or_multiple" => "Utgifter",
"payment" => "Betalningstyp",
"start_typing_supplier_name" => "Börja skriva leverantörens namn ...",
"successful_adding" => "Kostnaden tillagd",
"successful_deleted" => "Kostnaden raderas",
"successful_updating" => "Kostnaden uppdaterades",
"supplier_name" => "Leverantör",
"supplier_tax_code" => "Skattesats",
"tax_amount" => "Skatt",
"tax_amount_number" => "",
"update" => "Uppdatera kostnad",
'add_item' => "Lägg till kostnad",
'amount' => "Belopp",
'amount_number' => "Beloppet måste vara ett nummer",
'amount_required' => "Kostnadsbeloppet krävs",
'by_category' => "Kategori",
'cannot_be_deleted' => "Kunde inte ta bort kategorikostnad",
'cash' => "Kontant",
'cash_filter' => "Kontant",
'categories_name' => "Kategori",
'category_required' => "kategori är ett obligatoriskt fält",
'check' => "Kontrollera",
'check_filter' => "Kontrollera",
'confirm_delete' => "Är du säker på att du vill radera den valda utgiften(erna)?",
'confirm_restore' => "Är du säker på att du vill återställa valda utgifter(erna)?",
'credit' => "Kreditkort",
'credit_filter' => "Kreditkort",
'date' => "Datum",
'date_number' => "Datumet måste vara ett nummer",
'date_required' => "Datumet är ett obligatoriskt fält",
'debit' => "Kontokort",
'debit_filter' => "Kontokort",
'description' => "Beskrivning",
'due' => "Skuld",
'due_filter' => "skuld",
'employee' => "Skapad av",
'error_adding_updating' => "Det gick inte att lägga till / uppdatera kostnader",
'expense_id' => "Id",
'expenses_employee' => "Anställd",
'info' => "Utgifter info",
'ip_address' => "",
'is_deleted' => "Raderad",
'name_required' => "Expense Kategori namn krävs",
'new' => "Ny kostnad",
'new_supplier' => "",
'no_expenses_to_display' => "Det finns inga utgifter att visa",
'none_selected' => "Du har inte valt någon kostnad",
'one_or_multiple' => "Utgifter",
'payment' => "Betalningstyp",
'start_typing_supplier_name' => "Börja skriva leverantörens namn ...",
'successful_adding' => "Kostnaden tillagd",
'successful_deleted' => "Kostnaden raderas",
'successful_updating' => "Kostnaden uppdaterades",
'supplier_name' => "Leverantör",
'supplier_tax_code' => "Skattesats",
'tax_amount' => "Skatt",
'tax_amount_number' => "",
'update' => "Uppdatera kostnad",
];

View File

@@ -1,71 +1,72 @@
<?php
return [
"add_minus" => "Förteckning för att lägga till eller subtrahera.",
"allow_alt_description" => "Tillåt alternativ beskrivning",
"bulk_edit" => "Massändra",
"cannot_be_deleted" => "Det gick inte att radera valda presentkort, ett eller flera av de valda presentkorten har försäljning.",
"cannot_find_giftcard" => "Presentkort hittades inte.",
"cannot_use" => "Giftcard {0} cannot be used for this sale. Invalid Customer!",
"card_value" => "Värde",
"category" => "Kategori",
"change_all_to_allow_alt_desc" => "Tillåt alternativ beskrivning för alla.",
"change_all_to_not_allow_allow_desc" => "Tillåt inte alternativ beskrivning för alla.",
"change_all_to_serialized" => "Ändra allt till Serialized",
"change_all_to_unserialized" => "Ändra allt till ej Serialized",
"confirm_bulk_edit" => "Är du säker på att du vill redigera det valda presentkortet?",
"confirm_delete" => "Är du säker på att du vill radera det valda presentkortet?",
"confirm_restore" => "Är du säker på att du vill återställa valda presentkort?",
"cost_price" => "Grossistpris",
"count" => "Uppdatera Inventory",
"csv_import_failed" => "CSV-import misslyckades.",
"current_quantity" => "Nuvarande antal",
"description" => "Beskrivning",
"details_count" => "Inventarieringsuppgifter",
"do_nothing" => "Gör ingeting",
"edit_fields_you_want_to_update" => "Redigera önskade fält för utvalda presentkort.",
"edit_multiple_giftcards" => "Redigera flera presentkort.",
"error_adding_updating" => "Presentkortets tillägg eller uppdatering misslyckades.",
"error_updating_multiple" => "Uppdatering av presentkortet misslyckades.",
"generate_barcodes" => "Generera streckkoder",
"giftcard" => "Presentkort",
"giftcard_number" => "Presentkortsnummer",
"info_provided_by" => "Info tillhandahållen av",
"inventory_comments" => "Kommentarer",
"is_serialized" => "Presentkortet har serienummer",
"low_inventory_giftcards" => "Presentkort med låg lagernivå",
"manually_editing_of_quantity" => "Manuell redigering av antal",
"must_select_giftcard_for_barcode" => "Du måste välja minst ett (1) presentkort för att generera streckkoder.",
"new" => "Nytt presentkort",
"no_description_giftcards" => "Presentkort utan Beskrivning",
"no_giftcards_to_display" => "Inga presentkort att visa.",
"none" => "inga",
"none_selected" => "Inga presentkort har valts för att redigering.",
"number" => "Presentkortets nummer måste vara ett nummer.",
"number_information" => "Presentkortsnummer",
"number_required" => "Presentkortets nummer är ett obligatoriskt fält.",
"one_or_multiple" => "Presentkort",
"person_id" => "Kund",
"quantity" => "Antal",
"quantity_required" => "Antal är ett obligatoriskt fält. Vänligen truck på stäng (X) för att avbryta.",
"remaining_balance" => "Presentkort {0} återstående värde är {1}!",
"reorder_level" => "Återbeställningsnivå",
"retrive_giftcard_info" => "Hämta presentkort Info",
"sales_tax_1" => "Moms",
"sales_tax_2" => "Moms 2",
"serialized_giftcards" => "Serialiserade presentkort",
"successful_adding" => "Du har lagt till presentkort",
"successful_bulk_edit" => "Du har uppdaterat det valda presentkortet",
"successful_deleted" => "Du har tagit bort",
"successful_updating" => "Du har uppdaterat det valda presentkortet",
"supplier" => "Leverantör",
"tax_1" => "Moms",
"tax_2" => "Moms 2",
"tax_percent" => "Skatt %",
"tax_percents" => "Skatt %",
"unit_price" => "Butiksvärde",
"upc_database" => "Streckkod databas",
"update" => "Uppdatera presentkort",
"use_inventory_menu" => "Använd Inventory Menu",
"value" => "Presentkort Värdet måste vara ett nummer.",
"value_required" => "Presentkort Värde är ett obligatoriskt fält.",
'add_minus' => "Förteckning för att lägga till eller subtrahera.",
'allow_alt_description' => "Tillåt alternativ beskrivning",
'bulk_edit' => "Massändra",
'cannot_be_deleted' => "Det gick inte att radera valda presentkort, ett eller flera av de valda presentkorten har försäljning.",
'cannot_find_giftcard' => "Presentkort hittades inte.",
'cannot_use' => "Giftcard {0} cannot be used for this sale. Invalid Customer!",
'card_value' => "Värde",
'category' => "Kategori",
'change_all_to_allow_alt_desc' => "Tillåt alternativ beskrivning för alla.",
'change_all_to_not_allow_allow_desc' => "Tillåt inte alternativ beskrivning för alla.",
'change_all_to_serialized' => "Ändra allt till Serialized",
'change_all_to_unserialized' => "Ändra allt till ej Serialized",
'confirm_bulk_edit' => "Är du säker på att du vill redigera det valda presentkortet?",
'confirm_delete' => "Är du säker på att du vill radera det valda presentkortet?",
'confirm_restore' => "Är du säker på att du vill återställa valda presentkort?",
'cost_price' => "Grossistpris",
'count' => "Uppdatera Inventory",
'csv_import_failed' => "CSV-import misslyckades.",
'current_quantity' => "Nuvarande antal",
'description' => "Beskrivning",
'details_count' => "Inventarieringsuppgifter",
'do_nothing' => "Gör ingeting",
'edit_fields_you_want_to_update' => "Redigera önskade fält för utvalda presentkort.",
'edit_multiple_giftcards' => "Redigera flera presentkort.",
'error_adding_updating' => "Presentkortets tillägg eller uppdatering misslyckades.",
'error_updating_multiple' => "Uppdatering av presentkortet misslyckades.",
'generate_barcodes' => "Generera streckkoder",
'giftcard' => "Presentkort",
'giftcard_number' => "Presentkortsnummer",
'info_provided_by' => "Info tillhandahållen av",
'inventory_comments' => "Kommentarer",
'is_serialized' => "Presentkortet har serienummer",
'low_inventory_giftcards' => "Presentkort med låg lagernivå",
'manually_editing_of_quantity' => "Manuell redigering av antal",
'must_select_giftcard_for_barcode' => "Du måste välja minst ett (1) presentkort för att generera streckkoder.",
'new' => "Nytt presentkort",
'no_description_giftcards' => "Presentkort utan Beskrivning",
'no_giftcards_to_display' => "Inga presentkort att visa.",
'none' => "inga",
'none_selected' => "Inga presentkort har valts för att redigering.",
'number' => "Presentkortets nummer måste vara ett nummer.",
'number_information' => "Presentkortsnummer",
'number_required' => "Presentkortets nummer är ett obligatoriskt fält.",
'one_or_multiple' => "Presentkort",
'person_id' => "Kund",
'quantity' => "Antal",
'quantity_required' => "Antal är ett obligatoriskt fält. Vänligen truck på stäng (X) för att avbryta.",
'remaining_balance' => "Presentkort {0} återstående värde är {1}!",
'reorder_level' => "Nivå för ombeställning",
'retrive_giftcard_info' => "Hämta presentkort Info",
'sales_tax_1' => "Moms",
'sales_tax_2' => "Moms 2",
'serialized_giftcards' => "Serialiserade presentkort",
'successful_adding' => "Du har lagt till presentkort",
'successful_bulk_edit' => "Du har uppdaterat det valda presentkortet",
'successful_deleted' => "Du har tagit bort",
'successful_updating' => "Du har uppdaterat det valda presentkortet",
'supplier' => "Leverantör",
'tax_1' => "Moms",
'tax_2' => "Moms 2",
'tax_percent' => "Skatt i procent",
'tax_percents' => "Skatt %",
'unit_price' => "Butiksvärde",
'upc_database' => "Streckkod databas",
'update' => "Uppdatera presentkort",
'use_inventory_menu' => "Använd Inventory Menu",
'value' => "Presentkort Värdet måste vara ett nummer.",
'value_required' => "Presentkort Värde är ett obligatoriskt fält.",
];

View File

@@ -1,41 +1,42 @@
<?php
return [
"add_item" => "Lägg till artikel",
"all" => "Alla",
"cannot_be_deleted" => "Kunde inte radera artikelpaketet.",
"confirm_delete" => "Är du säker på att du vill radera det valda artikelpaketet?",
"confirm_restore" => "Är du säker på att du vill återställa valda artikelpaket?",
"description" => "Beskrivning artikelpaket",
"discount" => "Rabatt",
"discount_fixed" => "Fast rabatt",
"discount_percent" => "Rabattprocent",
"discount_type" => "Rabattyp",
"error_adding_updating" => "Artikelpaket: tillägg eller uppdatering misslyckades.",
"find_kit_item" => "Artikelpaket",
"info" => "Artikelpaket beskrivning",
"item" => "Artikel",
"item_kit_number" => "Streckkod",
"item_kit_number_duplicate" => "Artikelpaketet nummer finns redan i databasen.",
"item_number" => "",
"item_number_duplicate" => "",
"items" => "Artiklar",
"kit" => "Artikelpaket ID",
"kit_and_components" => "Artikelpaket och delar",
"kit_and_stock" => "Artikelpaket och lager",
"kit_only" => "Artikelpaket",
"name" => "Artikelpaket Namn",
"new" => "Nytt Artikelpaket",
"no_item_kits_to_display" => "Inga artikelpaket att visa.",
"none_selected" => "Du har inte valt något artikelpaket.",
"one_or_multiple" => "Artikelpaket",
"price_option" => "Prisalternativ",
"priced_only" => "Endast prissatt",
"print_option" => "Utskriftsalternativ",
"quantity" => "Antal",
"sequence" => "Sekvens",
"successful_adding" => "Du har lyckats lägga till artikelpaketet",
"successful_deleted" => "Du har tagit bort",
"successful_updating" => "Du har uppdaterat artikelpaketet",
"unit_price" => "",
"update" => "Uppdatera artikelpaketet",
'add_item' => "Lägg till artikel",
'all' => "Alla",
'cannot_be_deleted' => "Kunde inte radera artikelpaketet.",
'confirm_delete' => "Är du säker på att du vill radera det valda artikelpaketet?",
'confirm_restore' => "Är du säker på att du vill återställa valda artikelpaket?",
'description' => "Beskrivning artikelpaket",
'discount' => "Rabatt",
'discount_fixed' => "Fast rabatt",
'discount_percent' => "Rabatt i procent",
'discount_type' => "Typ av rabatt",
'error_adding_updating' => "Artikelpaket: tillägg eller uppdatering misslyckades.",
'find_kit_item' => "Artikelpaket",
'info' => "Artikelpaket beskrivning",
'item' => "Artikel",
'item_kit_number' => "Streckkod",
'item_kit_number_duplicate' => "Artikelpaketet nummer finns redan i databasen.",
'item_number' => "",
'item_number_duplicate' => "",
'items' => "Artiklar",
'kit' => "Artikelpaket ID",
'kit_and_components' => "Artikelpaket och delar",
'kit_and_stock' => "Artikelpaket och lager",
'kit_only' => "Artikelpaket",
'name' => "Artikelpaket Namn",
'new' => "Nytt Artikelpaket",
'no_item_kits_to_display' => "Inga artikelpaket att visa.",
'none_selected' => "Du har inte valt något artikelpaket.",
'one_or_multiple' => "Artikelpaket",
'price_option' => "Prisalternativ",
'priced_only' => "Endast prissatt",
'print_option' => "Utskriftsalternativ",
'quantity' => "Antal",
'sequence' => "Sekvens",
'successful_adding' => "Du har lyckats lägga till artikelpaketet",
'successful_deleted' => "Du har tagit bort",
'successful_updating' => "Du har uppdaterat artikelpaketet",
'unit_price' => "",
'update' => "Uppdatera artikelpaketet",
];

View File

@@ -1,120 +1,121 @@
<?php
return [
"add_minus" => "Lager att lägga till eller ta bort.",
"allow_alt_description" => "Tillåt alternativ beskrivning",
"amount_entry" => "Belopp",
"bulk_edit" => "Massändra",
"buy_price_required" => "Köppriset är ett obligatoriskt fält.",
"cannot_be_deleted" => "Kunde inte radera valda objekt, en eller flera av de valda objekten har försäljning.",
"cannot_find_item" => "Artikeln hittades inte.",
"categories" => "",
"category" => "Kategori",
"category_new" => "",
"category_required" => "Kategori är ett obligatoriskt fält.",
"change_all_to_allow_alt_desc" => "Tillåt alternativ beskrivning för alla.",
"change_all_to_not_allow_allow_desc" => "Tillåt inte alternativ beskrivning för alla.",
"change_all_to_serialized" => "Ändra allt till Serialized",
"change_all_to_unserialized" => "Ändra allt till ej Serialized",
"change_image" => "Ändra bild",
"confirm_bulk_edit" => "Är du säker på att du vill redigera valda artiklar?",
"confirm_bulk_edit_wipe_taxes" => "All Artikel Skatteinformation kommer att ersättas.",
"confirm_delete" => "Är du säker på att du vill radera valda artiklar?",
"confirm_restore" => "Är du säker på att du vill återställa valda artiklar?",
"cost_price" => "Grossistpris",
"cost_price_number" => "Grosistpriset måste vara ett nummer.",
"cost_price_required" => "Grossistpris är ett obligatoriskt fält.",
"count" => "Uppdatera Inventory",
"csv_import_failed" => "CSV-import misslyckades",
"csv_import_nodata_wrongformat" => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
"csv_import_partially_failed" => "Det fanns{0} importfel (er) på rad (er):{1}. Inga rader importerades.",
"csv_import_success" => "Artikelimporten lyckades.",
"current_quantity" => "Nuvarande antal",
"default_pack_name" => "Varje",
"description" => "Beskrivning",
"details_count" => "Inventarieringsuppgifter",
"do_nothing" => "Gör ingeting",
"edit" => "",
"edit_fields_you_want_to_update" => "Redigera önskade fält för valda artiklar.",
"edit_multiple_items" => "Redigering av flera artiklar",
"empty_upc_items" => "Tomma streckkodsposter",
"error_adding_updating" => "Det gick inte att lägga till / uppdatera artiklar",
"error_updating_multiple" => "Ett fel uppstod vid uppdatering av artiklar",
"generate_barcodes" => "Generera streckkoder",
"hsn_code" => "Harmoniserade systemnomenklaturen",
"image" => "Avatar",
"import_items_csv" => "Artikelimport från CSV",
"info_provided_by" => "Information tillhandahållen av",
"inventory" => "Lager",
"inventory_CSV_import_quantity" => "Antal importerat från CSV",
"inventory_comments" => "Kommentarer",
"inventory_data_tracking" => "Lagerspårning",
"inventory_date" => "Datum",
"inventory_employee" => "Anställd",
"inventory_in_out_quantity" => "In / Out Mängd",
"inventory_remarks" => "Anmärkningar",
"is_deleted" => "Raderad",
"is_printed" => "",
"is_serialized" => "Artikeln har serienummer",
"item" => "Artikel",
"item_id" => "",
"item_number" => "Streckkod",
"item_number_duplicate" => "Artikelnummer finns redan i databasen.",
"kit" => "Kit",
"location" => "Lagerplats",
"low_inventory_items" => "Artikeln slutsåld",
"low_sell_item" => "Låg försäljnings artikel",
"manually_editing_of_quantity" => "Manuell redigering av antal",
"markup" => "",
"name" => "Artikelnamn",
"name_required" => "Artikelnamn är ett obligatoriskt fält.",
"new" => "Ny artikel",
"no_description_items" => "Inga beskrivning av artikel",
"no_items_to_display" => "Inga artiklar att visa.",
"none" => "inga",
"none_selected" => "Du har inte valt några artiklar att redigera",
"nonstock" => "Icke-lager",
"number_information" => "Artikelnummer",
"number_required" => "Streckkod är ett obligatoriskt fält.",
"one_or_multiple" => "Artikel",
"pack_name" => "Förpackningsnamn",
"qty_per_pack" => "Antal per förpackning",
"quantity" => "Kvantitet",
"quantity_number" => "Antal måste vara ett nummer.",
"quantity_required" => "Antal är ett obligatoriskt fält.",
"receiving_quantity" => "Mottagningskvantitet",
"remove_image" => "Radera bild",
"reorder_level" => "Återbeställningsnivå",
"reorder_level_number" => "Omordningsnivå måste vara ett nummer.",
"reorder_level_required" => "Återbeställningsnivå är ett obligatoriskt fält.",
"retrive_item_info" => "Hämta artikelinfo",
"sales_tax_1" => "Moms",
"sales_tax_2" => "Moms 2",
"search_attributes" => "Sök attribut",
"select_image" => "Välj Bild",
"serialized_items" => "Serialiserade artiklar",
"standard" => "Standard",
"stock" => "Lager",
"stock_location" => "Lagerplats",
"stock_type" => "Lagertyp",
"successful_adding" => "Du har lagt till Artikeln",
"successful_bulk_edit" => "Du har uppdaterat den valda atikeln",
"successful_deleted" => "Du har tagit bort artikeln",
"successful_updating" => "Du har uppdaterat artikeln",
"supplier" => "Leverantör",
"tax_1" => "Skatt 1",
"tax_2" => "Skatt 2",
"tax_3" => "",
"tax_category" => "Skattekategori",
"tax_percent" => "Skatt %",
"tax_percent_number" => "Skattprocent måste vara ett numeriskt värde",
"tax_percent_required" => "Skattprocent är ett obligatoriskt fält.",
"tax_percents" => "Skatt %",
"temp" => "Tillfällig",
"type" => "Artikeltyp",
"unit_price" => "Försäljningspris",
"unit_price_number" => "Enhetspriset måste vara ett nummer.",
"unit_price_required" => "Enhetspriset är ett obligatoriskt fält.",
"upc_database" => "Streckkod databas",
"update" => "Uppdatera artikeln",
"use_inventory_menu" => "Använd Inventory Menu",
'add_minus' => "Lager att lägga till eller ta bort.",
'allow_alt_description' => "Tillåt alternativ beskrivning",
'amount_entry' => "Belopp",
'bulk_edit' => "Massändra",
'buy_price_required' => "Köppriset är ett obligatoriskt fält.",
'cannot_be_deleted' => "Kunde inte radera valda objekt, en eller flera av de valda objekten har försäljning.",
'cannot_find_item' => "Artikeln hittades inte.",
'categories' => "",
'category' => "Kategori",
'category_new' => "",
'category_required' => "Kategori är ett obligatoriskt fält.",
'change_all_to_allow_alt_desc' => "Tillåt alternativ beskrivning för alla.",
'change_all_to_not_allow_allow_desc' => "Tillåt inte alternativ beskrivning för alla.",
'change_all_to_serialized' => "Ändra allt till Serialized",
'change_all_to_unserialized' => "Ändra allt till ej Serialized",
'change_image' => "Ändra bild",
'confirm_bulk_edit' => "Är du säker på att du vill redigera valda artiklar?",
'confirm_bulk_edit_wipe_taxes' => "All Artikel Skatteinformation kommer att ersättas.",
'confirm_delete' => "Är du säker på att du vill radera valda artiklar?",
'confirm_restore' => "Är du säker på att du vill återställa valda artiklar?",
'cost_price' => "Grossistpris",
'cost_price_number' => "Grosistpriset måste vara ett nummer.",
'cost_price_required' => "Grossistpris är ett obligatoriskt fält.",
'count' => "Uppdatera Inventory",
'csv_import_failed' => "CSV-import misslyckades",
'csv_import_nodata_wrongformat' => "Den uppladdade filen har ingen data eller är formaterad felaktigt.",
'csv_import_partially_failed' => "Det fanns{0} importfel (er) på rad (er):{1}. Inga rader importerades.",
'csv_import_success' => "Artikelimporten lyckades.",
'current_quantity' => "Nuvarande antal",
'default_pack_name' => "Varje",
'description' => "Beskrivning",
'details_count' => "Inventarieringsuppgifter",
'do_nothing' => "Gör ingeting",
'edit' => "",
'edit_fields_you_want_to_update' => "Redigera önskade fält för valda artiklar.",
'edit_multiple_items' => "Redigering av flera artiklar",
'empty_upc_items' => "Tomma streckkodsposter",
'error_adding_updating' => "Det gick inte att lägga till / uppdatera artiklar",
'error_updating_multiple' => "Ett fel uppstod vid uppdatering av artiklar",
'generate_barcodes' => "Generera streckkoder",
'hsn_code' => "Harmoniserade systemnomenklaturen",
'image' => "Avatar",
'import_items_csv' => "Artikelimport från CSV",
'info_provided_by' => "Information tillhandahållen av",
'inventory' => "Lager",
'inventory_CSV_import_quantity' => "Antal importerat från CSV",
'inventory_comments' => "Kommentarer",
'inventory_data_tracking' => "Lagerspårning",
'inventory_date' => "Datum",
'inventory_employee' => "Anställd",
'inventory_in_out_quantity' => "In / Out Mängd",
'inventory_remarks' => "Anmärkningar",
'is_deleted' => "Raderad",
'is_printed' => "",
'is_serialized' => "Artikeln har serienummer",
'item' => "Artikel",
'item_id' => "",
'item_number' => "Streckkod",
'item_number_duplicate' => "Artikelnummer finns redan i databasen.",
'kit' => "Kit",
'location' => "Lagerplats",
'low_inventory_items' => "Artikeln slutsåld",
'low_sell_item' => "Låg försäljnings artikel",
'manually_editing_of_quantity' => "Manuell redigering av antal",
'markup' => "",
'name' => "Artikelnamn",
'name_required' => "Artikelnamn är ett obligatoriskt fält.",
'new' => "Ny artikel",
'no_description_items' => "Inga beskrivning av artikel",
'no_items_to_display' => "Inga artiklar att visa.",
'none' => "inga",
'none_selected' => "Du har inte valt några artiklar att redigera",
'nonstock' => "Icke-lager",
'number_information' => "Artikelnummer",
'number_required' => "Streckkod är ett obligatoriskt fält.",
'one_or_multiple' => "Artikel",
'pack_name' => "Förpackningsnamn",
'qty_per_pack' => "Antal per förpackning",
'quantity' => "Kvantitet",
'quantity_number' => "Antal måste vara ett nummer.",
'quantity_required' => "Antal är ett obligatoriskt fält.",
'receiving_quantity' => "Mottagningskvantitet",
'remove_image' => "Radera bild",
'reorder_level' => "Nivå för ombeställning",
'reorder_level_number' => "Omordningsnivå måste vara ett nummer.",
'reorder_level_required' => "Återbeställningsnivå är ett obligatoriskt fält.",
'retrive_item_info' => "Hämta artikelinfo",
'sales_tax_1' => "Moms",
'sales_tax_2' => "Moms 2",
'search_attributes' => "Sök attribut",
'select_image' => "Välj Bild",
'serialized_items' => "Serialiserade artiklar",
'standard' => "Standard",
'stock' => "Lager",
'stock_location' => "Lagerplats",
'stock_type' => "Lagertyp",
'successful_adding' => "Du har lagt till Artikeln",
'successful_bulk_edit' => "Du har uppdaterat den valda atikeln",
'successful_deleted' => "Du har tagit bort artikeln",
'successful_updating' => "Du har uppdaterat artikeln",
'supplier' => "Leverantör",
'tax_1' => "Skatt 1",
'tax_2' => "Skatt 2",
'tax_3' => "",
'tax_category' => "Skattekategori",
'tax_percent' => "Skatt %",
'tax_percent_number' => "Skattprocent måste vara ett numeriskt värde",
'tax_percent_required' => "Skattprocent är ett obligatoriskt fält.",
'tax_percents' => "Skatt %",
'temp' => "Tillfällig",
'type' => "Artikeltyp",
'unit_price' => "Försäljningspris",
'unit_price_number' => "Enhetspriset måste vara ett nummer.",
'unit_price_required' => "Enhetspriset är ett obligatoriskt fält.",
'upc_database' => "Streckkod databas",
'update' => "Uppdatera artikeln",
'use_inventory_menu' => "Använd Inventory Menu",
];

View File

@@ -1,15 +1,16 @@
<?php
return [
"gcaptcha" => "Jag är inte en robot.",
"go" => "Logga in",
"invalid_gcaptcha" => "Ogiltig jag är ingen robot.",
"invalid_installation" => "Installationen är inte korrekt, kontrollera din php.ini fil.",
"invalid_username_and_password" => "Ogiltigt användarnamn eller lösenord.",
"login" => "Login",
"logout" => "",
"migration_needed" => "",
"password" => "Lösenord",
"required_username" => "",
"username" => "Användarnamn",
"welcome" => "",
'gcaptcha' => "Jag är inte en robot.",
'go' => "Logga in",
'invalid_gcaptcha' => "Ogiltig jag är ingen robot.",
'invalid_installation' => "Installationen är inte korrekt, kontrollera din php.ini fil.",
'invalid_username_and_password' => "Ogiltigt användarnamn eller lösenord.",
'login' => "Login",
'logout' => "Logga ut",
'migration_needed' => "En migration av databasen till {0} kommer att påbörjas efter inloggningen.",
'password' => "Lösenord",
'required_username' => "Fältet för användarnamn krävs.",
'username' => "Användarnamn",
'welcome' => "Välkommen till {0}!",
];

View File

@@ -1,15 +1,16 @@
<?php
return [
"first_name" => "Förnamn",
"last_name" => "Efternamn",
"message" => "Meddelande",
"message_placeholder" => "Ditt meddelande här...",
"message_required" => "Meddelande krävs",
"multiple_phones" => "(vid flera mottagare, avdela mobilnummer med komma)",
"phone" => "Telefonnummer",
"phone_number_required" => "Telefonnummer krävs",
"phone_placeholder" => "Mobiltelefonnummer...",
"sms_send" => "Skicka SMS",
"successfully_sent" => "Meddelandet skickat till: ",
"unsuccessfully_sent" => "Meddelandet skickades ej till: ",
'first_name' => "Förnamn",
'last_name' => "Efternamn",
'message' => "Meddelande",
'message_placeholder' => "Ditt meddelande här...",
'message_required' => "Meddelande krävs",
'multiple_phones' => "(vid flera mottagare, ange mobilnummer separerade med kommatecken)",
'phone' => "Telefonnummer",
'phone_number_required' => "Telefonnummer krävs",
'phone_placeholder' => "Mobilnummer här...",
'sms_send' => "Skicka SMS",
'successfully_sent' => "Skickandet av meddelandet till lyckades: ",
'unsuccessfully_sent' => "Meddelandet skickades ej till: ",
];

View File

@@ -1,48 +1,49 @@
<?php
return [
"admin_cashups" => "",
"admin_cashups_desc" => "",
"attributes" => "Attribut",
"attributes_desc" => "Lägg till, uppdatera, ta bort och sök attribut.",
"both" => "Båda",
"cashups" => "Dagskassa",
"cashups_desc" => "Lägg till, uppdatera, ta bort och sök i dagskassor.",
"config" => "Konfiguration",
"config_desc" => "Ändra OSPOS: s konfiguration.",
"customers" => "Kunder",
"customers_desc" => "Lägg till, uppdatera, ta bort och sök kunder.",
"employees" => "Anställda",
"employees_desc" => "Lägg till, uppdatera, ta bort och sök anställda.",
"expenses" => "Utgifter",
"expenses_categories" => "Utgifter Kategorier",
"expenses_categories_desc" => "Lägg till, uppdatera och ta bort kostnadskategorier.",
"expenses_desc" => "Lägg till, uppdatera, ta bort och sökutgifter.",
"giftcards" => "Presentkort",
"giftcards_desc" => "Lägg till, uppdatera, ta bort och sök presentkort.",
"home" => "Hem",
"home_desc" => "Lista hemmeny moduler.",
"item_kits" => "Artikelpaket",
"item_kits_desc" => "Lägg till, uppdatera, radera och söka artikelpaket.",
"items" => "Artiklar",
"items_desc" => "Lägg till, uppdatera, ta bort och artiklar.",
"messages" => "Meddelande",
"messages_desc" => "Skicka meddelanden till kunder, leverantörer och anställda.",
"migrate" => "Migrera",
"migrate_desc" => "Uppdatera OSPOS-databasen.",
"office" => "Kontor",
"office_desc" => "Lista kontors menyn moduler.",
"receivings" => "Mottagande",
"receivings_desc" => "Process inköpsorder.",
"reports" => "Rapporter",
"reports_desc" => "Visa och skapa rapporter.",
"sales" => "Försäljning",
"sales_desc" => "Process Försäljning och Returer.",
"suppliers" => "Leverantörer",
"suppliers_desc" => "Lägg till, uppdatera, ta bort och sök leverantörer.",
"taxes" => "Skatt",
"taxes_desc" => "Konfigurera försäljningsskatter.",
"timeclocks" => "",
"timeclocks_categories" => "",
"timeclocks_categories_desc" => "",
"timeclocks_desc" => "",
'admin_cashups' => "",
'admin_cashups_desc' => "",
'attributes' => "Attributer",
'attributes_desc' => "Lägg till, uppdatera, ta bort och sök attributer.",
'both' => "Båda",
'cashups' => "Dagskassa",
'cashups_desc' => "Lägg till, uppdatera, ta bort och sök i dagskassor.",
'config' => "Konfiguration",
'config_desc' => "Ändra OSPOS's konfiguration.",
'customers' => "Kunder",
'customers_desc' => "Lägg till, uppdatera, ta bort och sök kunder.",
'employees' => "Anställda",
'employees_desc' => "Lägg till, uppdatera, ta bort och sök anställda.",
'expenses' => "Utgifter",
'expenses_categories' => "Utgifter Kategorier",
'expenses_categories_desc' => "Lägg till, uppdatera och ta bort kostnadskategorier.",
'expenses_desc' => "Lägg till, uppdatera, ta bort och sök efter utgifter.",
'giftcards' => "Presentkort",
'giftcards_desc' => "Lägg till, uppdatera, ta bort och sök efter presentkort.",
'home' => "Hem",
'home_desc' => "Lista moduler för hem-menyn.",
'item_kits' => "Artikelpaket",
'item_kits_desc' => "Lägg till, uppdatera, radera och söka artikelpaket.",
'items' => "Artiklar",
'items_desc' => "Lägg till, uppdatera, ta bort och sök efter artiklar.",
'messages' => "Meddelande",
'messages_desc' => "Skicka meddelanden till kunder, leverantörer och anställda.",
'migrate' => "Migrera",
'migrate_desc' => "Uppdatera OSPOS-databasen.",
'office' => "Kontor",
'office_desc' => "Lista kontors menyn moduler.",
'receivings' => "Inkomster",
'receivings_desc' => "Behandla inköpsordrar.",
'reports' => "Rapporter",
'reports_desc' => "Visa och generera rapporter.",
'sales' => "Försäljning",
'sales_desc' => "Process Försäljning och Returer.",
'suppliers' => "Leverantörer",
'suppliers_desc' => "Lägg till, uppdatera, ta bort och sök efter leverantörer.",
'taxes' => "Skatter",
'taxes_desc' => "Konfigurera försäljningsskatter.",
'timeclocks' => "",
'timeclocks_categories' => "",
'timeclocks_categories_desc' => "",
'timeclocks_desc' => "",
];

View File

@@ -1,58 +1,59 @@
<?php
return [
"amount_due" => "",
"cancel_receiving" => "Avbryt",
"cannot_be_deleted" => "Mottagande (s) radering misslyckades.",
"comments" => "Kommentarer",
"complete_receiving" => "Slutför",
"confirm_cancel_receiving" => "Är du säker på att du vill rensa den här mottagningen? Alla objekt kommer att rensas.",
"confirm_delete" => "Är du säker på att du vill ta bort den här mottagningen? Den här åtgärden kan inte ångras.",
"confirm_finish_receiving" => "Är du säker på att du vill skicka in den här mottagaren? Detta kan inte göras ogjort.",
"confirm_restore" => "",
"cost" => "Kostnad",
"daily" => "",
"date" => "Inleveransdatum",
"date_required" => "Ett korrekt datum måste anges.",
"date_type" => "Datumet är ett obligatoriskt fält.",
"delete_entire_sale" => "Ta bort hela försäljningen",
"discount" => "Rabat %",
"edit" => "Ändra",
"edit_sale" => "Ändra Inleverans",
"employee" => "Anställd",
"error_editing_item" => "Artikelredigering misslyckades.",
"error_requisition" => "Det går inte att flytta lagerplats från eller till samma lagerplats.",
"find_or_scan_item" => "Hitta eller skanna artikel",
"find_or_scan_item_or_receipt" => "Hitta eller skanna artikel eller kvitto",
"id" => "Inleverans-ID",
"item_name" => "Artikelnamn",
"mode" => "Inleveransläge",
"new_supplier" => "Ny leverantör",
"one_or_multiple" => "Inleveranser",
"print_after_sale" => "Skriv ut efter försäljning",
"quantity" => "Antal.",
"receipt" => "Inleverans kvitto",
"receipt_number" => "Inleverans #",
"receiving" => "Inlevera",
"reference" => "Referens",
"register" => "Artiklar Inleverans",
"requisition" => "Rekvisition",
"return" => "Retur",
"select_supplier" => "Välj leverantör (valfritt)",
"ship_pack" => "Ship Pack",
"start_typing_supplier_name" => "Börja skriva leverantörens namn ...",
"stock" => "Lager",
"stock_destination" => "Lagerplats",
"stock_locaiton" => "Lagerplats",
"stock_source" => "Lagerplats",
"successfully_deleted" => "Du har tagit bort",
"successfully_updated" => "Mottagning uppdaterad",
"supplier" => "Leverantör",
"supplier_address" => "Adress",
"supplier_email" => "E-mail",
"supplier_location" => "Plats",
"total" => "Totalt",
"transaction_failed" => "Mottagande transaktioner misslyckades.",
"unable_to_add_item" => "Artikel tillägg i Mottagning misslyckades.",
"unsuccessfully_updated" => "Mottagning uppdateringen misslyckades.",
"update" => "Uppdatera",
'amount_due' => "",
'cancel_receiving' => "Avbryt",
'cannot_be_deleted' => "Mottagande (s) radering misslyckades.",
'comments' => "Kommentarer",
'complete_receiving' => "Slutför",
'confirm_cancel_receiving' => "Är du säker på att du vill rensa den här mottagningen? Alla objekt kommer att rensas.",
'confirm_delete' => "Är du säker på att du vill ta bort den här mottagningen? Den här åtgärden kan inte ångras.",
'confirm_finish_receiving' => "Är du säker på att du vill skicka in den här mottagaren? Detta kan inte göras ogjort.",
'confirm_restore' => "",
'cost' => "Kostnad",
'daily' => "",
'date' => "Inleveransdatum",
'date_required' => "Ett korrekt datum måste anges.",
'date_type' => "Datumet är ett obligatoriskt fält.",
'delete_entire_sale' => "Ta bort hela försäljningen",
'discount' => "Rabatt",
'edit' => "Ändra",
'edit_sale' => "Ändra Inleverans",
'employee' => "Anställd",
'error_editing_item' => "Artikelredigering misslyckades.",
'error_requisition' => "Det går inte att flytta lagerplats från eller till samma lagerplats.",
'find_or_scan_item' => "Hitta eller skanna artikel",
'find_or_scan_item_or_receipt' => "Hitta eller skanna artikel eller kvitto",
'id' => "Inleverans-ID",
'item_name' => "Namn på artikel",
'mode' => "Inleveransläge",
'new_supplier' => "Ny leverantör",
'one_or_multiple' => "Inleveranser",
'print_after_sale' => "Skriv ut efter försäljning",
'quantity' => "Antal.",
'receipt' => "Inleverans kvitto",
'receipt_number' => "Inleverans #",
'receiving' => "Inlevera",
'reference' => "Referens",
'register' => "Artiklar Inleverans",
'requisition' => "Rekvisition",
'return' => "Retur",
'select_supplier' => "Välj leverantör (valfritt)",
'ship_pack' => "Ship Pack",
'start_typing_supplier_name' => "Börja skriva leverantörens namn ...",
'stock' => "Lager",
'stock_destination' => "Lagerplats",
'stock_locaiton' => "Lagerplats",
'stock_source' => "Lagerplats",
'successfully_deleted' => "Du har tagit bort",
'successfully_updated' => "Mottagning uppdaterad",
'supplier' => "Leverantör",
'supplier_address' => "Adress",
'supplier_email' => "E-mail",
'supplier_location' => "Plats",
'total' => "Totalt",
'transaction_failed' => "Mottagande transaktioner misslyckades.",
'unable_to_add_item' => "Artikel tillägg i Mottagning misslyckades.",
'unsuccessfully_updated' => "Mottagning uppdateringen misslyckades.",
'update' => "Uppdatera",
];

Some files were not shown because too many files have changed in this diff Show More