Compare commits

..

4065 Commits

Author SHA1 Message Date
Ollama
80fdf2b7b5 fix: add autoload-dev for Tests namespace and fix UrlHelperTest namespace
- Add autoload-dev section to composer.json for Tests namespace
- Rename tests/helpers to tests/Helpers for PSR-4 compliance
- Add proper namespace to UrlHelperTest.php
- This fixes PHPUnit test discovery - previously only 6 tests were running
2026-04-01 21:18:52 +00:00
Ollama
6d02eb12c2 fix: remove duplicate phpunit.xml that prevented tests from running
The tests/phpunit.xml was incomplete - it only configured helpers and
Libraries testsuites, while phpunit.xml.dist at root contains all tests.
PHPUnit was likely using the incomplete config, resulting in empty test
results.
2026-03-27 07:54:37 +00:00
Ollama
0c3574423c refactor: optimize Docker image size
- Combine RUN commands to reduce layers
- Add --no-install-recommends and clean apt cache
- Use COPY --chown to set ownership during copy
- Update .dockerignore to exclude dev files and build configs

Saves ~260MB (21%) in image size
2026-03-24 08:00:56 +00:00
Ollama
6fea9c3abd refactor: remove build-database gulp task (#4447)
The build-database task previously concatenated tables.sql and constraints.sql
into database.sql. Since we now use initial_schema.sql directly in migrations,
this task is no longer needed.

- Remove gulp task 'build-database'
- Keep all other build tasks intact
2026-03-20 19:36:11 +00:00
Ollama
0547d3ba60 refactor: remove tables.sql and constraints.sql (#4447)
These files have been replaced by initial_schema.sql which is now the
authoritative source for the database schema. The initial migration
loads this schema on fresh installs.

- Remove app/Database/tables.sql
- Remove app/Database/constraints.sql
- Schema is frozen in app/Database/Migrations/sqlscripts/initial_schema.sql
2026-03-20 19:33:13 +00:00
Ollama
a18dde4bbe feat: migrate CI from Travis to GitHub Actions with enhancements
- Convert Travis CI configuration to GitHub Actions workflows
- Add multi-arch Docker builds (amd64/arm64)
- Implement initial schema migration for fresh database installs
- Add multi-attribute search with AND logic and sort by attribute columns
- Address various PR review feedback and formatting fixes
2026-03-19 21:34:12 +00:00
dependabot[bot]
e4b92b58c3 Bump jspdf from 4.2.0 to 4.2.1
Bumps [jspdf](https://github.com/parallax/jsPDF) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/parallax/jsPDF/releases)
- [Changelog](https://github.com/parallax/jsPDF/blob/master/RELEASE.md)
- [Commits](https://github.com/parallax/jsPDF/compare/v4.2.0...v4.2.1)

---
updated-dependencies:
- dependency-name: jspdf
  dependency-version: 4.2.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-17 19:06:05 +00:00
Ollama
dc1e448bc3 Fix review comments: remove redundant loop and add XSS escaping
- Remove redundant property assignment loop in Expenses.php
- Add esc() to employee name values to prevent XSS vulnerabilities
2026-03-17 15:32:16 +00:00
Ollama
24b2825b31 Fix: Restrict employee selection in expenses and receivings forms
Users without the 'employees' permission can no longer impersonate other
employees when creating or editing expenses and receivings. The employee
field is now restricted to the current user for new records and shows the
stored employee for existing records.

Changes:
- Expenses controller: Add permission check in getView() and postSave()
- Receivings controller: Add permission check in getEdit() and postSave()
- Form views: Conditionally display dropdown or read-only field

Fixes #3616
2026-03-17 15:32:16 +00:00
Ollama
38d672592b Add seed data to tests for proper integration testing
- Add setUp() to seed test data: items, sales, sales_items, sales_items_taxes
- Add tearDown() to clean up seeded data after tests
- Remove skip conditions since we now have guaranteed test data
- Add testTaxDataIsGroupedByTaxNameAndPercent to verify grouping
- Use narrow date range to isolate seeded data
2026-03-16 18:36:31 +00:00
Ollama
6f7e06e986 Rewrite tests to use database integration testing
Tests now:
- Use DatabaseTestTrait for real database integration
- Actually call getData() and getSummaryData() methods
- Verify row totals (subtotal + tax = total) from real queries
- Verify summary data matches sum of rows
- Test getDataColumns() returns expected structure
- Use assertEqualsWithDelta for float comparisons with tolerance

These tests exercise the actual SQL queries and verify the
mathematical consistency of the calculations returned.
2026-03-16 18:36:31 +00:00
Ollama
fda40d9340 Fix rounding consistency and update tests per review feedback
- Ensure total = subtotal + tax by deriving total from rounded components
- Use assertEqualsWithDelta for float comparisons in tests
- Add defensive null coalescing in calculateSummary helper
- Add missing 'count' key to test data rows
- Add testRoundingAtBoundary test case
2026-03-16 18:36:31 +00:00
Ollama
b49186ec7c Add unit tests for Taxes Summary Report calculations
Tests verify:
- Row totals add up (subtotal + tax = total)
- Summary totals match sum of row values
- Tax-included and tax-not-included modes calculate correctly
- Rounding consistency across calculations
- Negative values (returns) are handled correctly
- Zero tax rows are handled correctly
2026-03-16 18:36:31 +00:00
Ollama
8b56f61b8a Fix Taxes Summary Report totals not matching row values
The report had calculation inconsistencies where:
1. Per-line totals (subtotal + tax) didn't equal the total column
2. Column totals didn't match the sum of individual rows

Root cause: subtotal, tax, and total were calculated independently
using different formulas and rounding at different stages, leading to
cumulative rounding errors.

Fix:
- Use item_tax_amount from database as the source of truth for tax
- Derive subtotal from sale_amount (handling both tax_included and
  tax_not_included modes correctly)
- Calculate total = subtotal + tax consistently for each line
- Override getSummaryData() to sum values from getData() rows,
  ensuring summary totals match the sum of displayed rows

Fixes #4112
2026-03-16 18:36:31 +00:00
Ollama
9820beb0e1 Fix: Add Debit Card filter to Daily Sales and Takings
Add 'only_debit' filter to Daily Sales and Takings dropdown. Reuses
existing 'Sales.debit' language string for the filter label. Includes
filter default initialization in getSearch() to prevent PHP warnings.

Fixes #4439
2026-03-16 18:06:00 +00:00
Ollama
e01dad728f Add AGENTS.md with coding guidelines for AI agents 2026-03-16 18:02:50 +00:00
Ollama
234f930079 Fix strftime directives handling and tighten test assertions
- Remove incorrect %C mapping (was mapping century to full year)
- Add special handling for %C (century), %c (datetime), %n (newline), %t (tab), %x (date)
- Add %h mapping (same as %b for abbreviated month)
- Tighten edge-case test assertions to use assertSame/assertMatchesRegularExpression
- Add tests for new directives: %C, %c, %n, %t, %x, %h
2026-03-14 23:08:39 +00:00
Ollama
3001dc0e17 Fix: Pass parameter to generate() and add composite format tests
- Fixed bug where render() was not passing caller-supplied  to
  generate(), causing ad-hoc tokens to be ignored
- Added %F (yyyy-MM-dd) and %D (MM/dd/yy) composite date formats to
  the IntlDateFormatter pattern map
- Added test coverage for composite date format directives (%F, %D, %T, %R)
2026-03-14 23:08:39 +00:00
Ollama
3ba207e8b9 Use CIUnitTestCase for consistency with other tests 2026-03-14 23:08:39 +00:00
Ollama
d684c49ebd Fix Token_lib::render() for PHP 8.4 compatibility
- Replaced deprecated strftime() with IntlDateFormatter
- Added proper handling for edge cases:
  - Strings with '%' not in date format (e.g., 'Discount: 50%')
  - Invalid date formats (e.g., '%-%-%', '%Y-%q-%bad')
  - Very long strings
- Added comprehensive unit tests for Token_lib
- All date format specifiers now mapped to IntlDateFormatter patterns
2026-03-14 23:08:39 +00:00
Ollama
071e641f95 Fix stored XSS via stock location name
Add esc() to stock_name output in sales/register.php and receivings/receiving.php

GHSA-vmm7-g33q-qqr2
2026-03-14 15:35:32 +00:00
Ollama
48af67bd00 Fix stored XSS in gcaptcha_site_key on login page 2026-03-14 15:35:16 +00:00
Ollama
7cb1d95da7 Fix: Host Header Injection vulnerability (GHSA-jchf-7hr6-h4f3)
Security: Prevent Host Header Injection attacks by validating HTTP_HOST
against a whitelist of allowed hostnames before constructing the baseURL.

Changes:
- Add getValidHost() method to validate HTTP_HOST against allowedHostnames
- If allowedHostnames is empty, log warning and fall back to 'localhost'
- If host not in whitelist, log warning and use first allowed hostname
- Update .env.example with allowedHostnames documentation
- Add security configuration section to INSTALL.md
- Add unit tests for host validation

This addresses the security advisory where the application constructed
baseURL from the attacker-controllable HTTP_HOST header, allowing:
- Login form phishing via manipulated form actions
- Cache poisoning via poisoned asset URLs

Fixes GHSA-jchf-7hr6-h4f3
2026-03-14 15:34:21 +00:00
jekkos
bafe3ddf1b Fix stored XSS vulnerability in Attribute Definitions (GHSA-rvfg-ww4r-rwqf) (#4429)
* Fix stored XSS vulnerability in Attribute Definitions

GHSA-rvfg-ww4r-rwqf: Stored XSS via Attribute Definition Name

Security Impact:
- Authenticated users with attribute management permission can inject XSS payloads
- Payloads execute when viewing/editing attributes in admin panel
- Can steal session cookies, perform CSRF attacks, or compromise admin operations

Root Cause:
1. Input: Attributes.php postSaveDefinition() accepts definition_name without sanitization
2. Output: Views echo definition_name without proper escaping

Fix Applied:
- Input sanitization: Added FILTER_SANITIZE_FULL_SPECIAL_CHARS to definition_name and definition_unit
- Output escaping: Added esc() wrapper when displaying definition_name in views
- Defense-in-depth: htmlspecialchars on attribute values saved to database

Files Changed:
- app/Controllers/Attributes.php - Sanitize inputs on save
- app/Views/attributes/form.php - Escape output on display
- app/Views/attributes/item.php - Escape output on display

* Remove input sanitization, keep output escaping only

Use escaping on output (esc() in views) as the sole XSS prevention
measure instead of sanitizing on input. This preserves the original
data in the database while still protecting against XSS attacks.

* Add validation for definition_fk foreign key in attribute definitions

Validate definition_group input before saving:
- Must be a positive integer (> 0)
- Must exist in attribute_definitions table
- Must be of type GROUP to ensure data integrity

Also add translation for definition_invalid_group error message
in all 45 language files (English placeholder for translations).

* Refactor definition_fk validation into single conditional statement

* Add esc() to attribute value outputs for XSS protection

- Add esc() to TEXT input value in item.php
- Add esc() to definition_unit in form.php

These fields display user-provided content and need output escaping
to prevent stored XSS attacks.

* Refactor definition_group validation into separate method

Extract validation logic for definition_fk into validateDefinitionGroup()
private method to improve code readability and reduce method complexity.

Returns:
- null if input is empty (no group selected)
- false if validation fails (invalid group)
- integer ID if valid

* Add translations for definition_invalid_group in all languages

- Added proper translations for 28 languages (de, es, fr, it, nl, pl, pt-BR, ru, tr, uk, th, zh-Hans, zh-Hant, ro, sv, vi, id, el, he, fa, hu, da, sw-KE, sw-TZ, ar-LB, ar-EG)
- Set empty string for 14 languages to fallback to English (cs, hr-HR, bg, bs, ckb, hy, km, lo, ml, nb, ta, tl, ur, az)

---------

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-14 15:33:58 +00:00
jekkos
c482e75304 Fix DECIMAL attribute not respecting locale format (#4422)
* Fix DECIMAL attribute not respecting locale format

Issue: DECIMAL attribute values were displayed as raw database values
instead of being formatted according to the user's locale settings.

Fix:
1. Modified Attribute::get_definitions_by_flags() to optionally return
   definition types along with names (new $include_types parameter)
2. Updated expand_attribute_values() in tabular_helper.php to detect
   DECIMAL attributes and apply to_decimals() locale formatting
3. Updated callers (Reports, Items table) to pass include_types=true
   where attributes are displayed

The DECIMAL values in table views (items, sales reports, receiving reports)
now respect the configured locale number format, matching DATE attributes
which already use locale-based formatting.

* Apply PSR-12 camelCase naming to new variables

Response to PR review comments:
- Rename  to
- Rename  to
- Rename  to

---------

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 21:23:52 +00:00
jekkos
afc2f82dc6 Fix PHPUnit environment variables not being set (#4434)
PHPUnit 10+/11+ requires force="true" attribute on <env> elements
to properly set environment variables. Without this attribute, the
database connection env vars were not being set during test bootstrap,
causing tests to fail silently with empty junit.xml output.

This fix adds force="true" to all <env> elements in phpunit.xml.dist.

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 18:54:29 +00:00
jekkos
ce411707b4 Fix SQL injection in suggestions column configuration (#4421)
* Fix SQL injection in suggestions column configuration

The suggestions_first_column, suggestions_second_column, and
suggestions_third_column configuration values were concatenated
directly into SQL SELECT statements without validation, allowing
SQL injection attacks through the item search suggestions.

Changes:
- Add whitelist validation in Config controller to only allow
  valid column names (name, item_number, description, cost_price,
  unit_price)
- Add defensive validation in Item model's get_search_suggestion_format()
  and get_search_suggestion_label() methods
- Default invalid values to 'name' column for safety
- Add unit tests to verify malicious inputs are rejected

This is a critical security fix as attackers with config permissions
could inject arbitrary SQL through these configuration fields.

Vulnerability reported as additional injection point in bug report.

* Refactor: Move allowed suggestions columns to Item model constants

Extract the list of valid suggestion columns into two constants in the Item model for better cohesion:
- ALLOWED_SUGGESTIONS_COLUMNS: valid column names
- ALLOWED_SUGGESTIONS_COLUMNS_WITH_EMPTY: includes empty string for config validation

This consolidates the validation logic in one place and makes it reusable across Config controller and Item model.

* Address PR review comments: improve validation and code quality

Changes:
- Use camelCase naming for validateSuggestionsColumn() method (PSR-12)
- Add field-aware validation with different fallbacks for first vs other columns
- Handle non-string POST input by checking is_string() before validation
- Refactor duplicate validation logic into suggestionColumnIsAllowed() helper
- Use consistent camelCase variable names ($suggestionsFirstColumn)
- Update tests to validate constants and behavior rather than implementation
- Tests now focus on security properties of the allowlist itself

The validation now properly handles:
- First column: defaults to 'name' when invalid
- Second/Third columns: defaults to '' (empty) when invalid
- Non-string inputs: treated as invalid with appropriate fallback

---------

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 18:13:54 +00:00
jekkos
37c6e22fc4 Update SECURITY.md with published security advisories (#4431)
- Add Security Advisories section with 4 published CVEs
- Include CVE ID, vulnerability description, CVSS score, publication date, fixed version, and reporter credits
- Update supported versions table to reflect current state (>= 3.4.2)
- Add link to GitHub Security Advisories page for complete list

CVEs added:
- CVE-2025-68434: CSRF leading to Admin Creation (8.8)
- CVE-2025-68147: Stored XSS in Return Policy (8.1)
- CVE-2025-66924: Stored XSS in Item Kits (7.2)
- CVE-2025-68658: Stored XSS in Company Name (4.3)

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 17:53:32 +00:00
jekkos
3c7ece5c33 Fix permission bypass in Sales.getManage() access control (#4428)
The redirect() in getManage() returned a RedirectResponse that was never
executed, allowing unauthorized access to reports_sales. Updated method
signature to return ResponseInterface|string and properly return the
redirect response.

Refs: GHSA-94jm-c32g-48r5

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 17:52:07 +00:00
jekkos
02fccaf43f Fix XSS vulnerability in tax invoice view (#4432)
Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 16:09:04 +00:00
jekkos
ee4d44ed39 Fix IDOR vulnerability in password change (GHSA-mcc2-8rp2-q6ch) (#4427)
* Fix IDOR vulnerability in password change (GHSA-mcc2-8rp2-q6ch)

The previous authorization check using can_modify_employee() was too
permissive - it allowed non-admin users to change other non-admin users'
passwords. For password changes, users should only be able to change
their own password. Only admins should be able to change any user's
password.

This fix replaces the can_modify_employee() check with a stricter
authorization that only allows:
- Users to change their own password
- Admins to change any user's password

Affected endpoints:
- GET /home/changePassword/{employee_id}
- POST /home/save/{employee_id}

Added tests to verify non-admin users cannot access or change other
non-admin users' passwords.

* Address PR review feedback

- Replace header/exit redirect with proper 403 response in getChangePassword
- Refactor createNonAdminEmployee helper to accept overrides array
- Simplify tests by reusing the helper
- Update tests to expect 403 response instead of redirect

---------

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 12:13:21 +01:00
jekkos
fa3f257e7b Fix PHPUnit test configuration for database connectivity (#4430)
- Add database.tests.* environment variables to phpunit.xml.dist
- Set hostname to 127.0.0.1 to match CI MariaDB container
- Add MYSQL_* env vars for Database.php compatibility
- Tests were not running because database connection failed silently

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-13 10:38:37 +01:00
jekkos
431a9951e9 Fix filter persistence javascript issues (#4400) 2026-03-11 23:03:21 +01:00
jekkos
f7e8d6e427 Add filter persistence for table views via URL query string (#4400)
This commit adds URL-based filter persistence for table views, allowing
users to navigate away from a filtered view (e.g., clicking into sale
details) and return without losing their filter settings.

The solution uses history.replaceState() to update the URL without
triggering a page reload, providing a seamless user experience while
maintaining shareable/bookmarkable URLs.

Fixes navigation issue where filters are lost when viewing details or
navigating away from table views.

* Move filter restoration to server-side for cleaner architecture

Changes:
- Controllers now restore filters from URL query string on initial page load:
  * Sales.php: Reads start_date, end_date, and filters[] from GET
  * Items.php: Reads start_date, end_date, filters[], and stock_location
  * Expenses.php: Reads start_date, end_date, and filters[]
  * Cashups.php: Reads start_date, end_date, and filters[]

- Views now receive restored filter values from controllers:
  * Server-side date override via JavaScript variables
  * form_multiselect() receives $selected_filters from controller
  * Removed setTimeout hack from table_filter_persistence.php

- Simplified table_filter_persistence.php:
  * Now only handles URL updates on filter changes
  * No longer responsible for restoring state
  * Cleaner, single responsibility (client-side URL management)

Benefits:
- Works without JavaScript for initial render
- Cleaner architecture (server controls initial state)
- Client-side JS only handles "live" filter updates
- Filters persist across navigation via URL query string
- Shareable/bookmarkable URLs

How it works:
1. User visits /sales/manage?start_date=2024-01-01&filters[]=only_cash
2. Controller reads GET params and passes to view
3. View renders with correct initial filter values
4. User changes filter → JavaScript updates URL via replaceState()
5. User navigates away and back → Controller restores from URL again

* Refactor filter restoration into helper function and use PSR-12 naming

* Use array_merge with helper to reduce code duplication

---------

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-11 20:11:00 +01:00
dependabot[bot]
85889b6e65 Bump jspdf from 4.1.0 to 4.2.0 (#4383)
Bumps [jspdf](https://github.com/parallax/jsPDF) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/parallax/jsPDF/releases)
- [Changelog](https://github.com/parallax/jsPDF/blob/master/RELEASE.md)
- [Commits](https://github.com/parallax/jsPDF/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: jspdf
  dependency-version: 4.2.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
2026-03-11 16:36:53 +04:00
Ollama
6818f02ef9 Update SECURITY.md with published security advisories
- Add Security Advisories section with 4 published CVEs
- Include CVE ID, vulnerability description, CVSS score, publication date, fixed version, and reporter credits
- Update supported versions table to reflect current state (>= 3.4.2)
- Add link to GitHub Security Advisories page for complete list

CVEs added:
- CVE-2025-68434: CSRF leading to Admin Creation (8.8)
- CVE-2025-68147: Stored XSS in Return Policy (8.1)
- CVE-2025-66924: Stored XSS in Item Kits (7.2)
- CVE-2025-68658: Stored XSS in Company Name (4.3)
2026-03-10 22:28:09 +01:00
Ollama
436696b11b Add workflow to auto-update issue templates with releases
Adds a GitHub Actions workflow that automatically updates the
OpensourcePOS Version dropdown in bug report and feature request
templates when new releases are published.

Fixes #4317
2026-03-10 22:26:49 +01:00
Ollama
9a2b308647 Sync language files (#3468)
- Add csv_import_invalid_location to Items.php for CSV import validation
- Add error_deleting_admin and error_updating_admin to Employees.php for admin protection messages

Strings added with empty values so they fallback to English and show as untranslated in Weblate.
2026-03-09 07:45:19 +01:00
Ollama
1f55d96580 Fix mass assignment vulnerability in bulk edit (GHSA-49mq-h2g4-grr9)
The bulk edit function iterated over all $_POST keys without a whitelist,
allowing authenticated users to inject arbitrary database columns (e.g.,
cost_price, deleted, item_type) into the update query. This bypassed
CodeIgniter 4's $allowedFields protection since Query Builder was used
directly.

Fix: Add ALLOWED_BULK_EDIT_FIELDS constant to Item model defining the
explicit whitelist of fields that can be bulk-updated. Use this constant
in the controller instead of iterating over $_POST directly.

Fields allowed: name, category, supplier_id, cost_price, unit_price,
reorder_level, description, allow_alt_description, is_serialized

Security impact: High (CVSS 8.1) - Could allow price manipulation and
data integrity violations.
2026-03-08 22:49:12 +01:00
Ollama
b2fadea44a Fix broken SQL injection fix - use havingLike() instead of having() with named params
The previous SQL injection fix (GHSA-hmjv-wm3j-pfhw) used named parameter
syntax :search: with having(), but CodeIgniter 4's having() method does
not support named parameters. This caused the query to fail.

The fix uses havingLike() which properly:
- Escapes the search value to prevent SQL injection
- Handles the LIKE clause construction internally (wraps value with %)
- Works correctly with HAVING clauses for aggregated columns

This maintains the security fix while actually working on CI4.
2026-03-08 22:48:43 +01:00
Ollama
0fdb3ba37b Fix payment type becoming null when editing sales
When localization uses dot (.) as thousands separator (e.g., it_IT, es_ES, pt_PT),
the payment_amount value was displayed as raw float (e.g., '10.50') but parsed
using parse_decimals() which expects locale-formatted numbers.

In these locales, '.' is thousands separator and ',' is decimal separator.
parse_decimals('10.50') would return false, causing the condition
 != 0 to evaluate incorrectly (false == 0 in PHP),
resulting in the payment being deleted instead of updated.

Fix: Use to_currency_no_money() to format payment_amount and cash_refund
values according to locale before displaying in the form, so parse_decimals()
can correctly parse them on submission.
2026-03-08 22:34:47 +01:00
jekkos
d7b2264ac1 Fix: Preserve CHECKBOX attribute state when adding attributes (#4385)
Modified definition_values() function in app/Views/attributes/item.php to properly handle checkbox attributes.

The issue was that checkbox attributes have two input elements (hidden and checkbox) with the same name pattern. When collecting attribute values during the refresh operation, both inputs were being processed, with the hidden input potentially overwriting the checkbox state.

Changes:
- Skip hidden inputs that have a corresponding checkbox input
- For checkbox inputs, explicitly capture the checked state using prop('checked')
- Convert checked state to '1' or '0' for consistency

This ensures that when adding another attribute to an item, existing checkbox states are preserved correctly.
2026-03-08 22:31:02 +01:00
Ollama
a229bf6031 Fix stored XSS vulnerabilities in employee permissions and customer data
1. Stock Location XSS (GHSA-7hg5-68rx-xpmg):
   - Stock location names were rendered unescaped in employee form
   - Malicious stock locations could contain XSS payloads that execute
     when viewing employee permissions
   - Fixed by adding esc() to permission display in employees/form.php

2. Customer Name XSS (GHSA-hcfr-9hfv-mcwp):
   - Bootstrap-table columns had escape disabled for customer_name,
     email, phone_number, and note fields
   - Malicious customer names could execute XSS in Daily Sales view
   - Fixed by removing user-controlled fields from escape exception list
   - Only 'edit', 'messages', and 'item_pic' remain in exception list
     (these contain safe server-generated HTML)

Both vulnerabilities allow authenticated attackers with basic permissions
to inject JavaScript that executes in admin/other user sessions.
2026-03-08 18:42:30 +01:00
Ollama
977fa5647b Fix stored XSS vulnerability in item descriptions
GHSA-q58g-gg7v-f9rf: Stored XSS via Item Description

Security Impact:
- Authenticated users with item management permission can inject XSS payloads
- Payloads execute in POS register view (sales and receivings)
- Can steal session cookies, perform CSRF attacks, or compromise POS operations

Root Cause:
1. Input: Items.php:614 accepts description without sanitization
2. Output: register.php:255 and receiving.php:220 echo description without escaping

Fix Applied:
- Input sanitization: Added FILTER_SANITIZE_FULL_SPECIAL_CHARS to description POST
- Output escaping: Added esc() wrapper when echoing item descriptions
- Defense-in-depth approach: sanitize on input, escape on output

Files Changed:
- app/Controllers/Items.php - Sanitize description on save
- app/Views/sales/register.php - Escape description on display
- app/Views/receivings/receiving.php - Escape description on display

Testing:
- XSS payloads like '<script>alert(1)</script>' are now sanitized on input
- Any existing malicious descriptions are escaped on output
- Does not break legitimate descriptions with special characters
2026-03-07 20:51:48 +01:00
Ollama
52b0a83190 Fix SQL injection in custom attribute search
Parameterize LIKE queries in HAVING clause to prevent SQL injection
when search_custom filter is enabled. Also sanitize search parameter
input at controller level for defense-in-depth.

Fixes vulnerability where user input was directly interpolated into
SQL queries without sanitization.
2026-03-07 19:10:42 +01:00
jekkos
f25a0f5b09 Refactor: Move ADMIN_MODULES to constants, rename methods to camelCase
- Move admin modules list from is_admin method to ADMIN_MODULES constant
- Rename is_admin() to isAdmin() following CodeIgniter naming conventions
- Rename can_modify_employee() to canModifyEmployee() following conventions
- Update all callers in Employees controller and tests
2026-03-06 17:25:25 +01:00
jekkos
f0f288797a Add migration to fix existing image filenames with spaces (#4372)
This migration will:
- Scan all items for filenames containing spaces
- Rename both original and thumbnail files on the filesystem
- Update database records with sanitized filenames
- Only process files that actually exist on the filesystem
2026-03-06 17:09:52 +01:00
jekkos
63083a0946 Fix: Sanitize image filenames to prevent thumbnail display issues (#4372)
When uploading item images with filenames containing spaces, the thumbnails fail to load due to Apache mod_rewrite rejecting URLs with spaces.

Changes:
- Modified upload_image() method to sanitize filenames by replacing spaces and special characters with underscores
- Uses regex to keep only alphanumeric, underscores, hyphens, and periods
- Preserves original filename in 'orig_name' field for reference
- Fixes issue where thumbnail URLs would fail with 'AH10411: Rewritten query string contains control characters or spaces'

Example: 'banana marsmellow.jpg' becomes 'banana_marsmellow.jpg'

Fixes: #4372
2026-03-06 17:09:52 +01:00
jekkos
3a33098776 Fix: Handle image filenames with spaces in thumbnails
- URL-encode filenames when constructing image/thumbnail URLs
- Decode filename parameter in getPicThumb() controller
- Prevents Apache AH10411 error with spaces in rewritten URLs

Fixes #4372
2026-03-06 17:09:52 +01:00
jekkos
ca6a1b35af Add row-level authorization to password change endpoints (#4401)
* fix(security): add row-level authorization to password change endpoints

- Prevents non-admin users from viewing other users' password forms
- Prevents non-admin users from changing other users' passwords
- Uses can_modify_employee() check consistent with Employees controller fix
- Addresses BOLA vulnerability in Home controller (GHSA-q58g-gg7v-f9rf)

* test(security): add BOLA authorization tests for Home controller

- Test non-admin cannot view/change admin password
- Test user can view/change own password
- Test admin can view/change any password
- Test default employee_id uses current user
- Add JUnit test result upload to CI workflow

* refactor: apply PSR-12 naming and add DEFAULT_EMPLOYEE_ID constant

- Add DEFAULT_EMPLOYEE_ID constant to Constants.php
- Rename variables to follow PSR-12 camelCase convention
- Use ternary for default employee ID assignment

* refactor: use NEW_ENTRY constant instead of adding DEFAULT_EMPLOYEE_ID

Reuse existing NEW_ENTRY constant for default employee ID parameter.
Avoids adding redundant constants to Constants.php with same value (-1).

---------

Co-authored-by: jekkos <jeroen@steganos.dev>
2026-03-06 17:08:36 +01:00
jekkos
418580a52d Fix second-order SQL injection in currency_symbol config (#4390)
* Fix second-order SQL injection in currency_symbol config

The currency_symbol value was concatenated directly into SQL queries
without proper escaping, allowing SQL injection attacks via the
Summary Discounts report.

Changes:
- Use $this->db->escape() in Summary_discounts::getData() to properly
  escape the currency symbol value before concatenation
- Add htmlspecialchars() validation in Config::postSaveLocale() to
  sanitize the input at storage time
- Add unit tests to verify escaping of malicious inputs

Fixes SQL injection vulnerability described in bug report where
attackers with config permissions could inject arbitrary SQL through
the currency_symbol field.

* Update test to use CIUnitTestCase for consistency

Per code review feedback, updated test to extend CIUnitTestCase
instead of PHPUnit TestCase to maintain consistency with other
tests in the codebase.

---------

Co-authored-by: Ollama <ollama@steganos.dev>
2026-03-06 17:01:38 +01:00
jekkos
31d25e06dc fix(security): whitelist and validate invoice template types (#4393)
- Add whitelist validation for invoice_type to prevent path traversal and LFI
- Validate invoice_type against allowed values in Sale_lib
- Sanitize invoice_type input in Config controller before saving
- Default to 'invoice' template for invalid types

Security: Prevents arbitrary file inclusion via user-controlled invoice_type config
2026-03-06 13:18:47 +01:00
jekkos
b1819b3b36 dd validation for invalid stock locations in CSV import (#4399)
- Add validateCSVStockLocations() method to check CSV columns against allowed locations
- Log error when invalid stock location columns are detected
- Tests for valid, invalid, and mixed stock location columns
- Tests for location name case sensitivity
- Tests for CSV parsing and detecting location columns
- Add error message language string for invalid locations

Co-authored-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
2026-03-06 13:17:52 +01:00
jekkos
6705420373 Fix incorrect argument types in migration round_number() methods (#4403)
The round_number() method signature declares $amount as string, but the
HALF_FIVE case and other rounding operations pass string values to round()
and other arithmetic operations which expect numeric types. This causes
type errors when strict type checking is enabled.

Fix by casting $amount to float before arithmetic operations in both
migration files:
- 20170502221506_sales_tax_data.php (line 268)
- 20200202000000_taxamount.php (line 244)

Also cast sale_tax_amount to float in round_sales_taxes() method before
passing to round() operations (lines 381 in sales_tax_data.php and 358 in
taxamount.php).

Fixes #4324
2026-03-06 13:07:24 +01:00
dependabot[bot]
d6b767c80a Bump dompurify from 3.3.1 to 3.3.2 (#4402)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 3.3.1 to 3.3.2.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.3.1...3.3.2)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.3.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 21:54:49 +01:00
jekkos
19eb43270a Fix broken object-level authorization in Employees controller (CVE-worthy) (#4391)
- Non-admin employees can no longer view/modify admin accounts
- Non-admin employees can no longer delete admin accounts
- Non-admin employees can only grant permissions they themselves have
- Added is_admin() and can_modify_employee() methods to Employee model
- Prevents privilege escalation via permission grants

Add tests for BOLA fix and permission delegation

- EmployeeTest: Unit tests for is_admin() and can_modify_employee() methods
- EmployeesControllerTest: Test cases for authorization checks (integration tests require DB)
- ReportsControllerTest: Test validating the constructor redirect fix pattern

Fix return type error in Employees controller

Use $this->response->setJSON() instead of echo json_encode() + return
to properly satisfy the ResponseInterface return type.
2026-03-05 19:46:39 +01:00
jekkos
df4549bb0b Fix Docker image upload by replacing slashes in TAG 2026-03-05 14:46:45 +00:00
jekkos
bdc965be23 Fix: Refresh session language for employee after update. (#4245) 2026-03-04 22:43:52 +01:00
Lucas Lyimo
5c8905aa1b Language Array Key Typo Fix (#4371)
* Fix typo in stock location translation

* Fix typo in stock location key

* Fix typo in Language Receivings files stock_location

* Add Swahili-TZ Language Files

* Add Swahili-KE Language Files
2026-03-04 22:06:17 +01:00
jekkos
690f43578d Use Content-Type application/json for AJAX responses (#4357)
Complete Content-Type application/json fix for all AJAX responses

- Add missing return statements to all ->response->setJSON() calls
- Fix Items.php method calls from JSON() to setJSON()
- Convert echo statements to proper JSON responses
- Ensure consistent Content-Type headers across all controllers
- Fix 46+ instances across 12 controller files
- Change Config.php methods to : ResponseInterface (all return setJSON only):
  - postSaveRewards(), postSaveBarcode(), postSaveReceipt()
  - postSaveInvoice(), postRemoveLogo()
  - Update PHPDoc @return tags

- Change Receivings.php _reload() to : string (only returns view)
- Change Receivings.php methods to : string (all return _reload()):
  - getIndex(), postSelectSupplier(), postChangeMode(), postAdd()
  - postEditItem(), getDeleteItem(), getRemoveSupplier()
  - postComplete(), postRequisitionComplete(), getReceipt(), postCancelReceiving()
- Change postSave() to : ResponseInterface (returns setJSON)
- Update all PHPDoc @return tags

Fix XSS vulnerabilities in sales templates, login, and config pages

This commit addresses 5 XSS vulnerabilities by adding proper escaping
to all user-controlled configuration values in HTML contexts.

Fixed Files:
- app/Views/sales/invoice.php: Escaped company_logo (URL context) and company (HTML)
- app/Views/sales/work_order.php: Escaped company_logo (URL context)
- app/Views/sales/receipt_email.php: Added file path validation and escaping for logo
- app/Views/login.php: Escaped all config values in title, logo src, and alt
- app/Views/configs/info_config.php: Escaped company_logo (URL context)

Security Impact:
- Prevents stored XSS attacks if configuration is compromised
- Defense-in-depth principle applied to administrative interfaces
- Follows OWASP best practices for output encoding

Testing:
- Verified no script execution with XSS payloads in config values
- Confirmed proper escaping in HTML, URL, and file contexts
- All templates render correctly with valid configuration

Severity: High (4 files), Medium-High (1 file)
CVSS Score: ~6.1
CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation)

Fix critical password validation bypass and add unit tests

This commit addresses a critical security vulnerability where the password
minimum length check was performed on the HASHED password (always 60
characters for bcrypt) instead of the actual password before hashing.

Vulnerability Details:
- Original code: strlen($employee_data['password']) >= 8
- This compared the hash length (always 60) instead of raw password
- Impact: Users could set 1-character passwords like "a"
- Severity: Critical (enables brute force attacks on weak passwords)
- CVE-like issue: CWE-307 (Improper Restriction of Excessive Authentication Attempts)

Fix Applied:
- Validate password length BEFORE hashing
- Clear error message when password is too short
- Added unit tests to verify minimum length enforcement
- Regression test to prevent future vulnerability re-introduction

Test Coverage:
- testPasswordMinLength_Rejects7Characters: Verify 7 chars rejected
- testPasswordMinLength_Accepts8Characters: Verify 8 chars accepted
- testPasswordMinLength_RejectsEmptyString: Verify empty rejected
- testPasswordMinLength_RejectsWhitespaceOnly: Verify whitespace rejected
- testPasswordMinLength_AcceptsSpecialCharacters: Verify special chars OK
- testPasswordMinLength_RejectsPreviousBehavior: Regression test for bug

Files Modified:
- app/Controllers/Home.php: Fixed password validation logic
- tests/Controllers/HomeTest.php: Added comprehensive unit tests

Security Impact:
- Enforces 8-character minimum password policy
- Prevents extremely weak passwords that facilitate brute-force attacks
- Critical for credential security and user account protection

Breaking Changes:
- Users with passwords < 8 characters will need to reset their password
- This is the intended security improvement

Severity: Critical
CVSS Score: ~7.5
CWE: CWE-305 (Authentication Bypass by Primary Weakness), CWE-307

Add GitHub Actions workflow to run PHPUnit tests

Move business logic from views to controllers for better separation of concerns

- Move logo URL computation from info_config view to Config::getIndex()
- Move image base64 encoding from receipt_email view to Sales controller
- Improves separation of concerns by keeping business logic in controllers
- Simplifies view templates to only handle presentation

Fix XSS vulnerabilities in report views - escape user-controllable summary data and labels

Fix base64 encoding URL issue in delete payment - properly URL encode base64 string

Fix remaining return type declarations for Sales controller

Fixed additional methods that call _reload():
- postAdd() - returns _reload($data)
- postAddPayment() - returns _reload($data)
- postEditItem() - returns _reload($data)
- postSuspend() - returns _reload($data)
- postSetPaymentType() - returns _reload()

All methods now return ResponseInterface|string to match _reload() signature.
This resolves PHP TypeError errors.
2026-03-04 21:42:35 +01:00
jekkos
0858a1c23c Fix permission bypass in Reports submodule access control (#4389)
The redirect() in constructor returned a RedirectResponse that was never executed, allowing unauthorized access to report submodules. Replaced with header() + exit() to enforce permission checks.
2026-03-04 21:18:42 +01:00
jekkos
3c217bbddd Fix XSS vulnerabilities in invoice_email.php view 2026-03-04 17:54:01 +00:00
jekkos
87a0606141 Fix XSS vulnerability in register (#3965) 2026-03-03 22:40:50 +01:00
jekkos
b6a90f7880 Fix XSS vulnerability in register (#3965) 2026-03-03 22:37:08 +01:00
jekkos
b93359bcaf Fix XSS vulnerability in attributes (#3965) 2026-03-03 22:28:32 +01:00
jekkos
79427481b3 Fix XSS vulnerabilities in invoices + receipts (#3965) (#4363) 2026-02-23 20:14:55 +01:00
dependabot[bot]
b23351a45c Bump jspdf and jspdf-autotable (#4373)
Bumps [jspdf](https://github.com/parallax/jsPDF) and [jspdf-autotable](https://github.com/simonbengtsson/jsPDF-AutoTable). These dependencies needed to be updated together.

Updates `jspdf` from 3.0.2 to 4.1.0
- [Release notes](https://github.com/parallax/jsPDF/releases)
- [Changelog](https://github.com/parallax/jsPDF/blob/master/RELEASE.md)
- [Commits](https://github.com/parallax/jsPDF/compare/v3.0.2...v4.1.0)

Updates `jspdf-autotable` from 5.0.2 to 5.0.7
- [Release notes](https://github.com/simonbengtsson/jsPDF-AutoTable/releases)
- [Commits](https://github.com/simonbengtsson/jsPDF-AutoTable/compare/v5.0.2...v5.0.7)

---
updated-dependencies:
- dependency-name: jspdf
  dependency-version: 4.1.0
  dependency-type: direct:production
- dependency-name: jspdf-autotable
  dependency-version: 5.0.7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 11:46:11 +00:00
dependabot[bot]
bee0c8e364 Bump lodash from 4.17.21 to 4.17.23 (#4369)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-22 20:51:03 +01:00
jekkos
849439c71e Fix multiple XSS vulnerabilities (#3965) (#4356) 2025-12-22 17:21:49 +01:00
Chathura Dilushanka
25680f05db Add equals as permitted URI character (#4329)
This should resolve the 400 error when deleting payments with base64 encoded IDs containing `=`.
2025-12-21 22:41:36 +01:00
jekkos
a11fb099e2 Fix travis build after merge (#4130) 2025-12-21 19:51:21 +01:00
BhojKamal
aee5f31cf5 Add show/hide cost price & profit feature - in reports #4130 (#4350)
* Add show/hide cost price & profit feature

* .env should be ignored.

* js code formatted. .vscode folder ignore for vscode user settings.json

* style is replaced with bootstrap class, formatted and .env.example

* toggle button on table to like in other

* comment corrected.

* class re-factored

* minor refactor

* formatted with 4 space

---------

Co-authored-by: Lotussoft Youngtech <lotussoftyoungtech@gmail.com>
2025-12-21 15:23:39 +05:45
jekkos
643b0ac499 Fix for detailed suppliers report (#4351) 2025-12-17 22:46:59 +01:00
jekkos
3e844f2f89 Escape return_policy in receipt + invoice (#4349)
* Escape return_policy in receipt + invoice

* Enable CSRF using session token (#3632)
2025-12-17 20:39:58 +01:00
jekkos
2acdec431f Fix wrong migration script location (#4285) 2025-12-08 23:06:48 +01:00
jekkos
f245f585da Fix creation of date attribute value (#4310) (#4344)
Fix type hints in case search string is empty in sales
2025-12-02 07:19:14 +01:00
jekkos
e48ab45094 Fix toast notifications in config (#4341) (#4343) 2025-11-28 09:01:07 +01:00
jekkos
46e31b1c16 Allow anonymous giftcard creation (#4278)
* Allow giftcard without person (#4276)

* Update giftcard form validation (#4276)
2025-11-24 22:54:52 +01:00
jekkos
bea69c7aa1 Add DOMPurify to JS includes (#4341) 2025-11-23 22:20:40 +01:00
jekkos
30da69a382 Fix attachment cid (#4314)
* Add attachment cid when sending emails (#4308)

Also check if an encryption key is set before decrypting the SMTP
password.

* Upgrade to CI 4.6.3 (#4308)

* Fix for changing invoice id in email (#4308)
2025-11-23 21:37:32 +01:00
jekkos
6dd5a9162f Add DOMpurify + fix XSS (#4341) 2025-11-23 21:35:47 +01:00
jekkos
26a398f7d2 Add recent releases to issue template (#4317) 2025-11-21 23:55:24 +01:00
jekkos
ce73d9bb31 Add env variable to disallow pwd change (#4325) 2025-11-21 23:46:48 +01:00
jekkos
83af580d40 Add server side validation for password (#4335) 2025-11-21 23:45:47 +01:00
jekkos
ca7adf76c1 Update SECURITY.md contact (#4335) 2025-11-21 23:22:39 +01:00
jekkos
832db664e5 Fix tax configuration pages (#4331) 2025-11-21 22:13:35 +01:00
jekkos
36e73a84af Clean up docker compose setup (#4308) 2025-10-27 21:57:12 +01:00
Joe Williams
bcddf482fe [Feature] Add logging to migrations (#4327)
* `execute_script()` now returns a boolean for error handling.

* Added transaction to `Migration_MissingConfigKeys.up()`.

* Added logging to various migrations.

* Added transaction to `Migration_MissingConfigKeys.up()`.

* Added logging to various migrations.

* Formatting and function call fixes

Fixed a minor formatting issue in the migration helper.
Replaced a few remaining error_log() calls.
Updated executeScriptWithTransaction() to use log_message()

* Function call fix

Replaced the last error_log() calls with log_message().

---------

Co-authored-by: Joe Williams <hey-there-joe@outlook.com>
2025-10-19 22:10:28 -07:00
Joe Williams
759356288b Add transactions to missing config keys migration. (#4318)
* `execute_script()` now returns a boolean for error handling.

* Added transaction to `Migration_MissingConfigKeys.up()`.

* Added `executeScriptWithTransaction()` to migration helpers.

* Many changes for testing; also minor formatting fixes.

* Removed test code and pointed the `NullableTaxCategoryId` migration at the right SQL file.

* Fixed header.php

* Code cleanup from code review:
- Added IGNORE to SQL scripts.
- Added try-catch to executeScriptWithTransaction().
- Various comment changes.

* Fixed naming issue

Nullable tax category ID migration now runs the correct script.

* Updated SQL

Replaced INSERT WHERE NOT EXISTS in missing config keys sql script to use a single INSERT IGNORE.

* Updated migration helper

Updated executeScriptWithTransaction to use transRollback

---------

Co-authored-by: Joe Williams <hey-there-joe@outlook.com>
2025-10-15 22:53:14 -07:00
j2272850861-pixel
d1e5575ac1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/pt_BR/
2025-10-10 12:58:48 +02:00
j2272850861-pixel
b3f67a5e0f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/pt_BR/
2025-10-10 12:58:48 +02:00
j2272850861-pixel
41b349134a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/pt_BR/
2025-10-10 12:58:48 +02:00
jekkos
b1f6ae6d35 Fix mount path for uploads (#4308)
Remove duplicated compose sections in nginx version.  We will include
parts of the main file instead of duplicating it here.
2025-08-29 09:12:02 +02:00
dependabot[bot]
4153c69ccd Bump jspdf from 3.0.1 to 3.0.2 (#4309)
Bumps [jspdf](https://github.com/parallax/jsPDF) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/parallax/jsPDF/releases)
- [Changelog](https://github.com/parallax/jsPDF/blob/master/RELEASE.md)
- [Commits](https://github.com/parallax/jsPDF/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: jspdf
  dependency-version: 3.0.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-29 07:32:54 +02:00
jekkos
87fbd72478 Add generic try/catch in import (#4302) 2025-08-28 00:05:58 +02:00
jekkos
a4ac42b4ad Fix reference to uploads folder (#4270) (#4286) 2025-08-18 21:19:36 +02:00
jekkos
2eff79a8b6 Fix for suspended sales (#4283) (#4303) 2025-08-15 23:12:35 +02:00
Aril Apria Susanto
880fb8faef 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/
2025-08-11 10:27:22 +02:00
Aril Apria Susanto
4d2347173b 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/
2025-08-11 10:27:22 +02:00
Aril Apria Susanto
82d36d01fb Translated using Weblate (Indonesian)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/id/
2025-08-11 10:27:22 +02:00
Aril Apria Susanto
13314b7da1 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/
2025-08-11 10:27:22 +02:00
jekkos
43808c5970 Revert toast message sanitization (#4302) 2025-08-07 23:49:54 +02:00
jekkos
1615ef3832 Set release version to 3.4.2 2025-08-07 21:06:11 +02:00
jekkos
e089dc5e2c Fix item kits update (#4294) 2025-08-06 23:40:00 +02:00
jekkos
4cf70a95e6 Fix security incident email address (#4298) 2025-07-30 08:05:58 +02:00
jekkos
e08367aaae Allow empty tax category id (#4285) (#4288) 2025-07-29 23:59:23 +02:00
jekkos
9cd2f685ff Fix barcode generation in items (#4270) 2025-07-29 23:56:50 +02:00
jekkos
6800f338e7 Upgrade to ci 4.6.2 (#4296) (#4298) 2025-07-29 23:20:24 +02:00
jekkos
d4ab56b742 Fix migration 20250522000000 (#4284)
* Fix migration errors

Add dropColumnIfExists to migration_helper

* Add config key/values if missing (#4282)
2025-07-16 23:28:24 +02:00
jekkos
1eb75d6e05 Fix typo in writeable (#4270) 2025-07-11 23:23:13 +02:00
jekkos
8833420917 Upgrade github workflow (#3708) (#4280)
Co-authored-by: El_Coloso <diegoramosp@gmail.com>
2025-07-11 23:13:44 +02:00
jekkos
0d1f4efe3c Extended payment delete fix (#4274)
* Create a  Base64 URL-Safe encoding and decoding helper

* Rename web_helper to url_helper

---------

Co-authored-by: El_Coloso <diegoramosp@gmail.com>
2025-07-07 13:57:03 +02:00
jekkos
b9e17daac7 Fix writable folder permission check (#4270) (#4273) 2025-07-06 22:04:17 +02:00
jekkos
5f395d987b Set release version to 3.4.1 2025-06-05 21:28:32 +02:00
objecttothis
6f587498e6 Migration fix for MariaDB databases
- This fix properly creates Primary Keys on both MariaDB and MySQL

Signed-off-by: objecttothis <objecttothis@gmail.com>
2025-06-01 10:15:57 +02:00
jekkos
29c3c55fcc Fix item number lookup in sales/receivings (#4212) (#4250)
* Fix item number lookup in sales/receivings (#4212)

* Remove item_number check in exists()
2025-05-30 22:29:35 +02:00
objecttothis
e1fedab9b7 Bugfix: constraint migration fixes (#4230)
- Refactored function names for PSR-12 compliance
- Programmatically cascade delete attribute_link rows when a drop-down attribute is deleted but leave attribute_link rows associated with transactions.
- Added `WHERE item_id IS NOT NULL` to migration to prevent failure on MySQL databases during migration
- Retroactive correction of migration to prevent MySQL databases from failing.
- Refactored generic functions to helper
- Reverted attribute_links foreign key to ON DELETE RESTRICT which is required for a unique constraint on this table. Cascading deletes are now handled programmatically.
- Migration Session table to match Code Igniter 4.6
- Add index to attribute_links to prevent query timeout in items view on large databases
- Added overridePrefix() function to the migration_helper. Any time QueryBuilder is adding a prefix to the query when we don't want it to, this query can be used to override the prefix then set it back after you're done.
- Added dropAllForeignKeyConstraints() helper function.
- Added deleteIndex() helper function.
- Added indexExists() helper function.
- Added primaryKeyExists() helper function.
- Added recreateForeignKeyConstraints() helper function.
- Added CRUD section headings to the Attribute model.
- Replaced `==` with `===` to prevent type juggling.
- Removed unused delete_value function.
- Reworked deleteDefinition() and deleteDefinitionList() functions to delete rows from the attribute_links table which are associated.
- Added deleteAttributeLinksByDefinitionId() function

Implement Cascading Delete
- Function to delete attribute links with one or more attribute definitions.
- Call function to implement an effective cascading delete.
- Refactor function naming to meet PSR-12 conventions

Fix Migration
- Add drop of Generated Column to prevent failure of migration on MySQL databases.

Fix Migration
- Removed blank lines
- Refactored function naming for PSR compliance
- Reformatted code for PSR compliance
- Added logic to drop dependent foreign key constraints before deleting an index then recreating them.

Migrate ospos_sessions table
- DROP and CREATE session table to prevent migration problems on populated databases

Fixed Bug in Migration
- In the event that item_id = null (e.g., it's a dropdown) it should not be included in the results.

Fixed bug in Dropdown deletes
- Removed delete_value function in Attributes Controller as it is unused.
- Renamed postDelete_attribute_value function for PSR-12 compliance.
- Renamed delete_value Attribute model function for PSR-12 compliance.
- Refactored out function to getAttributeIdByValue
- Replaced == with === to prevent type juggling
- Reorganized parts of model to make it easier to find CRUD functions.

Refactoring
- PSR-12 Compliance formatting changes
- Refactored several generic functions into the migration_helper.php
- First check if primary key exists before attempting to create it.
- Grouped functions together in migration_helper.php
- phpdoc commenting functions

Optimizing Indices
- There are two queries run while opening the Items view which time out on large databases with weak hardware. These indices cut the query execution in half or better.

Add Unique constraint back into attribute_links
- This migration reverts ospos_attribute_links_ibfk_1 and 2 to ON DELETE RESTRICT. Cascade delete is done programmatically. This is needed to have a unique column on the attribute_links table which prevents duplicate attributes from begin created with the same item_id-attribute_id-definition_id combination

Correct spacing after if for PSR-12

Minor code cleanup.
- Removed Comments separating sections of code in Attribute model
- Removed extra log line to prevent cluttering of the log
2025-05-29 15:24:08 +04:00
Maxime
3c846e6324 Fixed broken escape string for success & warning messages (#4253)
* Fixed broken escape string for success & warning messages

* Fixed issue in sales register

---------

Co-authored-by: Franchovy <franchovy@pm.me>
2025-05-27 23:27:27 +02:00
diego-ramos
85120fa4be Fix encoding issue for payment types with special characters (#4232) 2025-05-22 22:34:39 +02:00
Mohamed-Qadir
7ba60ba58b Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-05-10 02:04:32 +02:00
Mohamed-Qadir
64f34933c4 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-10 02:04:32 +02:00
Mohamed-Qadir
1c0442c4f6 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-10 02:04:32 +02:00
Mohamed-Qadir
8bc4ee3792 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ckb/
2025-05-10 02:04:31 +02:00
Mohamed-Qadir
c200561eb5 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-10 02:04:19 +02:00
Mohamed-Qadir
a55d5b415e Translated using Weblate (Kurdish (Central))
Currently translated at 73.3% (33 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ckb/
2025-05-09 19:33:42 +02:00
Mohamed-Qadir
f31d004fb7 Translated using Weblate (Kurdish (Central))
Currently translated at 55.2% (21 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-05-09 19:33:41 +02:00
Mohamed-Qadir
40e4ad3d38 Translated using Weblate (Kurdish (Central))
Currently translated at 35.8% (42 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-09 19:33:41 +02:00
Mohamed-Qadir
7658ca8dd2 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-09 19:33:41 +02:00
Mohamed-Qadir
f38272cb59 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ckb/
2025-05-09 19:33:40 +02:00
Mohamed-Qadir
dca3cdeaf5 Translated using Weblate (Kurdish (Central))
Currently translated at 31.1% (14 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ckb/
2025-05-09 19:11:03 +02:00
Mohamed-Qadir
41eb07caec Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-09 19:11:03 +02:00
Mohamed-Qadir
766c9bb0f2 Translated using Weblate (Kurdish (Central))
Currently translated at 33.3% (39 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-09 19:11:02 +02:00
Mohamed-Qadir
7113e1167c Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ckb/
2025-05-09 19:11:02 +02:00
Mohamed-Qadir
eaeb9cb426 Translated using Weblate (Kurdish (Central))
Currently translated at 89.7% (61 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-09 19:11:01 +02:00
Mohamed-Qadir
1971519629 Translated using Weblate (Kurdish (Central))
Currently translated at 31.5% (12 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-05-09 19:11:00 +02:00
Mohamed-Qadir
b4e010dab8 Translated using Weblate (Kurdish (Central))
Currently translated at 33.8% (23 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-09 17:52:39 +02:00
Mohamed-Qadir
75e709d0b5 Translated using Weblate (Kurdish (Central))
Currently translated at 51.7% (75 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-09 17:52:39 +02:00
Mohamed-Qadir
605f550666 Translated using Weblate (Kurdish (Central))
Currently translated at 20.0% (9 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ckb/
2025-05-09 17:52:38 +02:00
Mohamed-Qadir
bc55908af2 Translated using Weblate (Kurdish (Central))
Currently translated at 20.5% (24 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-09 17:52:38 +02:00
Mohamed-Qadir
707339f3b5 Translated using Weblate (Kurdish (Central))
Currently translated at 27.9% (19 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-09 16:40:06 +02:00
Mohamed-Qadir
d0bb7998a9 Translated using Weblate (Kurdish (Central))
Currently translated at 18.8% (22 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-09 16:40:06 +02:00
Mohamed-Qadir
c47ea659bc Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/ckb/
2025-05-09 16:40:06 +02:00
Mohamed-Qadir
9b8d6acb79 Translated using Weblate (Kurdish (Central))
Currently translated at 16.2% (19 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-07 22:48:28 +02:00
Mohamed-Qadir
640bdfd0f9 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/ckb/
2025-05-07 22:48:27 +02:00
Mohamed-Qadir
0ea4fcd474 Translated using Weblate (Kurdish (Central))
Currently translated at 42.0% (61 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-07 22:48:27 +02:00
Mohamed-Qadir
056add7979 Translated using Weblate (Kurdish (Central))
Currently translated at 11.7% (8 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-07 22:48:27 +02:00
Mohamed-Qadir
4577525566 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ckb/
2025-05-07 22:48:27 +02:00
Mohamed-Qadir
75d4d894a4 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ckb/
2025-05-07 22:48:27 +02:00
Mohamed-Qadir
e4b07125d6 Translated using Weblate (Kurdish (Central))
Currently translated at 89.4% (17 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ckb/
2025-05-07 22:48:27 +02:00
Mohamed-Qadir
2d35346d16 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ckb/
2025-05-04 15:27:04 +02:00
Mohamed-Qadir
e0969a8c2b Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ckb/
2025-05-03 23:45:43 +02:00
Mohamed-Qadir
965f3706da Translated using Weblate (Kurdish (Central))
Currently translated at 36.3% (20 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ckb/
2025-05-03 23:45:00 +02:00
BudsieBuds
e83c23cf0c Improve code style and PSR-12 compliance (#4204)
* Improve code style and PSR-12 compliance
- refactored code formatting to adhere to PSR-12 guidelines
- standardized coding conventions across the codebase
- added missing framework files and reverted markup changes
- reformatted arrays for enhanced readability
- updated language files for consistent styling and clarity
- minor miscellaneous improvements
2025-05-02 19:37:06 +02:00
Mohamed-Qadir
1456feae58 Translated using Weblate (Kurdish (Central))
Currently translated at 75.0% (15 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ckb/
2025-05-02 12:54:14 +02:00
Mohamed-Qadir
32c0b74e0a Translated using Weblate (Kurdish (Central))
Currently translated at 35.0% (7 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ckb/
2025-05-02 12:05:16 +02:00
Mohamed-Qadir
9ecbe5770c Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-02 11:31:10 +02:00
Mohamed-Qadir
cedcbf459e Translated using Weblate (Kurdish (Central))
Currently translated at 41.6% (5 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/ckb/
2025-05-02 11:31:09 +02:00
Mohamed-Qadir
73df6db4f8 Translated using Weblate (Kurdish (Central))
Currently translated at 94.4% (309 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-02 10:55:23 +02:00
Mohamed-Qadir
b0e0b5b429 Translated using Weblate (Kurdish (Central))
Currently translated at 94.1% (308 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-02 10:50:44 +02:00
Mohamed-Qadir
36f41db6aa Translated using Weblate (Kurdish (Central))
Currently translated at 15.5% (7 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ckb/
2025-05-02 10:50:44 +02:00
Mohamed-Qadir
a6c9011954 Translated using Weblate (Kurdish (Central))
Currently translated at 16.2% (19 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-02 10:50:43 +02:00
Mohamed-Qadir
9f19a15845 Translated using Weblate (Kurdish (Central))
Currently translated at 11.7% (8 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-02 10:50:34 +02:00
Mohamed-Qadir
c33bd9a868 Translated using Weblate (Kurdish (Central))
Currently translated at 26.3% (10 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-05-02 10:50:33 +02:00
Mohamed-Qadir
d4e775d252 Translated using Weblate (Kurdish (Central))
Currently translated at 42.0% (61 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-02 10:50:33 +02:00
Mohamed-Qadir
aeda461743 Translated using Weblate (Kurdish (Central))
Currently translated at 90.5% (296 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-02 10:39:47 +02:00
Mohamed-Qadir
c1c74279f1 Translated using Weblate (Kurdish (Central))
Currently translated at 32.4% (47 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-02 10:39:46 +02:00
Mohamed-Qadir
aecb4deac0 Translated using Weblate (Kurdish (Central))
Currently translated at 90.2% (295 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-02 10:38:12 +02:00
Mohamed-Qadir
fb2d61fc49 Translated using Weblate (Kurdish (Central))
Currently translated at 23.6% (9 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-05-02 10:38:11 +02:00
Mohamed-Qadir
ea21abf7a7 Translated using Weblate (Kurdish (Central))
Currently translated at 28.9% (42 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-02 10:38:11 +02:00
Mohamed-Qadir
0acd52cfdd Translated using Weblate (Kurdish (Central))
Currently translated at 86.2% (282 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-02 00:56:40 +02:00
Mohamed-Qadir
e2cfcc07a4 Translated using Weblate (Kurdish (Central))
Currently translated at 10.2% (7 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-05-01 23:35:24 +02:00
Mohamed-Qadir
fc676091c3 Translated using Weblate (Kurdish (Central))
Currently translated at 24.1% (35 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-05-01 23:35:24 +02:00
Mohamed-Qadir
bcf17ae4c3 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (222 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ckb/
2025-05-01 23:35:23 +02:00
Mohamed-Qadir
2c598c6e3c Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/ckb/
2025-05-01 23:35:23 +02:00
Mohamed-Qadir
6139659c94 Translated using Weblate (Kurdish (Central))
Currently translated at 75.2% (246 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-05-01 23:35:22 +02:00
Mohamed-Qadir
17c14c8a41 Translated using Weblate (Kurdish (Central))
Currently translated at 8.3% (1 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/ckb/
2025-05-01 23:35:21 +02:00
Mohamed-Qadir
c7223e4b75 Translated using Weblate (Kurdish (Central))
Currently translated at 38.2% (18 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ckb/
2025-05-01 23:35:21 +02:00
Mohamed-Qadir
7e1895d06c Translated using Weblate (Kurdish (Central))
Currently translated at 34.5% (19 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ckb/
2025-05-01 23:35:20 +02:00
Mohamed-Qadir
3b959bb1e8 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ckb/
2025-05-01 23:35:20 +02:00
Mohamed-Qadir
33b8fc1607 Translated using Weblate (Kurdish (Central))
Currently translated at 14.5% (17 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-05-01 23:35:20 +02:00
Mohamed-Qadir
0f5718e53e Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/ckb/
2025-04-30 13:17:01 +02:00
Mohamed-Qadir
42feed19a0 Translated using Weblate (Kurdish (Central))
Currently translated at 12.1% (27 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ckb/
2025-04-30 13:17:01 +02:00
Mohamed-Qadir
bbab34e6ba Translated using Weblate (Kurdish (Central))
Currently translated at 12.7% (7 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ckb/
2025-04-30 13:17:01 +02:00
Mohamed-Qadir
d6bf2d11a0 Translated using Weblate (Kurdish (Central))
Currently translated at 18.6% (27 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-04-30 13:17:00 +02:00
Mohamed-Qadir
f38661bd76 Translated using Weblate (Kurdish (Central))
Currently translated at 89.1% (41 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
1fe6cf67f6 Translated using Weblate (Kurdish (Central))
Currently translated at 17.0% (8 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
45b39cf8c5 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
6056ebf9d4 Translated using Weblate (Kurdish (Central))
Currently translated at 17.9% (26 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
9726b46b15 Translated using Weblate (Kurdish (Central))
Currently translated at 12.8% (15 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
16307105a4 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
86325263bc Translated using Weblate (Kurdish (Central))
Currently translated at 95.1% (39 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
0fd1bd9b50 Translated using Weblate (Kurdish (Central))
Currently translated at 22.3% (73 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
0339ed8292 Translated using Weblate (Kurdish (Central))
Currently translated at 3.7% (3 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
2b6d5eae77 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
b0c71621a9 Translated using Weblate (Kurdish (Central))
Currently translated at 16.6% (2 of 12 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
b9c97324fa Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
546b90e5f7 Translated using Weblate (Kurdish (Central))
Currently translated at 21.0% (8 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
205346ff90 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
edb0bcf206 Translated using Weblate (Kurdish (Central))
Currently translated at 7.3% (5 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-04-30 09:05:35 +02:00
Mohamed-Qadir
6987e14147 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/ckb/
2025-04-30 09:05:35 +02:00
odiea
d5910f2e75 Fix ajax cashup total (#4238) 2025-04-27 09:31:46 +02:00
odiea
7fb75dbea9 Fix reports to show table details (#4231) 2025-04-22 17:51:31 +02:00
diego-ramos
febe5109f0 Fix error when sending a receipt of a sale without invoice (#4229) 2025-04-21 18:21:30 +02:00
jekkos
a32519fe4a Fix password change submission (#1479) 2025-04-20 18:53:32 +02:00
jekkos
e0cb950083 Fix datetime rendering (#4226) (#4227) 2025-04-20 18:42:12 +02:00
BudsieBuds
9c963814dd Some bug fixes (#4225)
- use unminified login css since gulp doesn't minify it
- adjust container max width to bootstrap 5's container-xxl
- add rtl css to bootstrap theme, to match bootswatch standards
2025-04-20 18:27:36 +02:00
BudsieBuds
2fec49e7df Enhance license handling (#4223)
- automate license updates
- license text rendered in monospace font
- removed old bower license generation code
2025-04-19 20:20:50 +02:00
BudsieBuds
1bdc19f14f Convert menu icons to SVG (#4220)
* Convert menu icons to SVG
- replaced png images with svg
- 20% decrease in file size, improving load times
- removed 384 unused files from repo

* Transferred package to organisation
2025-04-18 19:48:19 +02:00
BudsieBuds
02d63fe067 Update install docs (#4217)
- updated to show support for php 8.4
2025-04-16 07:17:28 +02:00
BudsieBuds
3e996b7818 Update language names (#4218) 2025-04-16 07:16:28 +02:00
BudsieBuds
fc37848fa7 Add default bootstrap to themes (#4219)
- also update bootstrap
2025-04-16 07:15:27 +02:00
Omer Qadir
477942beea Translated using Weblate (Kurdish (Central))
Currently translated at 5.2% (1 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
f7e12d6ba1 Translated using Weblate (Kurdish (Central))
Currently translated at 21.0% (8 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
a0f49d70b1 Translated using Weblate (Kurdish (Central))
Currently translated at 5.8% (4 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
66502af0ad Translated using Weblate (Kurdish (Central))
Currently translated at 11.7% (26 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
b099161dd1 Translated using Weblate (Kurdish (Central))
Currently translated at 3.7% (3 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
2e2bbf35b9 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
bc8c42ee0d Translated using Weblate (Kurdish (Central))
Currently translated at 11.1% (13 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-04-15 22:11:51 +02:00
Omer Qadir
2b361aaaed Translated using Weblate (Kurdish (Central))
Currently translated at 17.2% (25 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-04-15 22:11:51 +02:00
BudsieBuds
82f0e75bf0 Fix PHP 8.4 errors (#4200) 2025-04-15 20:38:52 +02:00
Omer Qadir
4d8403eb2b Translated using Weblate (Kurdish (Central))
Currently translated at 50.9% (27 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ckb/
2025-04-15 16:55:14 +02:00
Omer Qadir
d89cf3c9ad Translated using Weblate (Kurdish (Central))
Currently translated at 19.5% (8 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ckb/
2025-04-15 16:55:14 +02:00
Omer Qadir
adfd708613 Translated using Weblate (Kurdish (Central))
Currently translated at 11.2% (25 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ckb/
2025-04-15 16:55:14 +02:00
Omer Qadir
4166ee96d5 Translated using Weblate (Kurdish (Central))
Currently translated at 10.9% (6 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ckb/
2025-04-15 16:55:13 +02:00
Omer Qadir
123606e842 Translated using Weblate (Kurdish (Central))
Currently translated at 8.5% (4 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ckb/
2025-04-15 16:55:13 +02:00
Omer Qadir
9d02e288e7 Translated using Weblate (Kurdish (Central))
Currently translated at 10.2% (12 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-04-15 16:55:12 +02:00
Omer Qadir
c7f379f8a4 Translated using Weblate (Kurdish (Central))
Currently translated at 18.4% (7 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-04-15 16:55:12 +02:00
Omer Qadir
229685f8e0 Translated using Weblate (Kurdish (Central))
Currently translated at 16.5% (24 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-04-15 16:55:11 +02:00
Omer Qadir
d10b38a03b Translated using Weblate (Kurdish (Central))
Currently translated at 12.4% (18 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ckb/
2025-04-15 13:32:59 +02:00
Omer Qadir
264a449496 Translated using Weblate (Kurdish (Central))
Currently translated at 14.6% (6 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ckb/
2025-04-15 13:32:59 +02:00
Omer Qadir
12a57d5701 Translated using Weblate (Kurdish (Central))
Currently translated at 10.5% (4 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ckb/
2025-04-15 13:32:59 +02:00
Omer Qadir
27f769e3f4 Translated using Weblate (Kurdish (Central))
Currently translated at 9.4% (11 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ckb/
2025-04-15 13:32:58 +02:00
Omer Qadir
fc60a09f28 Translated using Weblate (Kurdish (Central))
Currently translated at 5.6% (3 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ckb/
2025-04-15 13:32:58 +02:00
Omer Qadir
59798cae28 Translated using Weblate (Kurdish (Central))
Currently translated at 4.4% (3 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ckb/
2025-04-15 13:32:58 +02:00
Omer Qadir
7a170b7f7f Translated using Weblate (Kurdish (Central))
Currently translated at 9.9% (22 of 222 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ckb/
2025-04-15 13:32:57 +02:00
Omer Qadir
9c6023e7f0 Translated using Weblate (Kurdish (Central))
Currently translated at 2.5% (2 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ckb/
2025-04-15 13:32:57 +02:00
Omer Qadir
70352ba954 Translated using Weblate (Kurdish (Central))
Currently translated at 8.2% (27 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ckb/
2025-04-15 13:32:57 +02:00
Omer Qadir
01d0555586 Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/ckb/
2025-04-15 13:32:56 +02:00
Omer Qadir
22203a83d7 Translated using Weblate (Kurdish (Central))
Currently translated at 7.2% (4 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ckb/
2025-04-15 13:32:55 +02:00
Omer Qadir
2d99655400 Translated using Weblate (Kurdish)
Currently translated at 7.6% (9 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ku/
2025-04-15 11:55:07 +02:00
Omer Qadir
b8be47d4ef Translated using Weblate (Kurdish)
Currently translated at 11.7% (17 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ku/
2025-04-15 11:55:07 +02:00
Omer Qadir
fd86e08e7e Translated using Weblate (Kurdish)
Currently translated at 1.4% (1 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ku/
2025-04-15 11:55:07 +02:00
Omer Qadir
a1d2d19a5b Translated using Weblate (Kurdish)
Currently translated at 33.3% (7 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/ku/
2025-04-15 11:55:07 +02:00
BudsieBuds
766b3b967e Convert language ku to ckb (#4211)
- convert ku (Kurdish) to ckb (Central Kurdish)
- replaced tabs with spaces
- replace single quotation marks with double
2025-04-15 08:31:40 +02:00
BudsieBuds
a62bef53b4 Add Kurdish language option to UI (#4210) 2025-04-14 18:33:05 +02:00
jekkos
eb643cc74c Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:47:11 +02:00
jekkos
a0fb5f317c Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:46:35 +02:00
jekkos
1f7da93189 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:45:28 +02:00
jekkos
ed00395243 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:44:04 +02:00
jekkos
f47f474335 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:43:47 +02:00
jekkos
e0cebb86bd Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:43:29 +02:00
jekkos
78d0193121 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:28:07 +02:00
jekkos
3d5d2ebb89 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:27:06 +02:00
jekkos
075d261758 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:26:32 +02:00
jekkos
8e9c3d7df5 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:25:56 +02:00
jekkos
1428ad2789 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:25:38 +02:00
jekkos
89919c88a2 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:25:03 +02:00
jekkos
31edc87348 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:24:13 +02:00
jekkos
8565e73f0c Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:22:53 +02:00
jekkos
942ea19fe4 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-13 00:22:25 +02:00
Omer Qadir
c4fbdb1231 Translated using Weblate (Kurdish (Central, Iraq))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ckb_IQ/
2025-04-12 15:15:31 +02:00
Omer Qadir
fd441d57a1 Translated using Weblate (Kurdish (Central, Iraq))
Currently translated at 88.2% (75 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ckb_IQ/
2025-04-12 14:21:16 +02:00
Omer Qadir
2080f5b187 Translated using Weblate (Kurdish (Central, Iraq))
Currently translated at 74.1% (63 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ckb_IQ/
2025-04-12 14:16:15 +02:00
Omer Qadir
ad2902cb19 Translated using Weblate (Kurdish (Central, Iraq))
Currently translated at 72.9% (62 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ckb_IQ/
2025-04-12 04:10:00 +02:00
Omer Qadir
606b9461d2 Translated using Weblate (Kurdish (Central, Iraq))
Currently translated at 40.0% (34 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ckb_IQ/
2025-04-12 01:13:11 +02:00
jekkos
d37016a9f5 Added translation using Weblate (Kurdish (Central, Iraq)) 2025-04-12 00:29:25 +02:00
objecttothis
09530c1609 Feature bump ci to 4.6.0 (#4197)
* Replace tabs with spaces

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

* Composer package bumps

- Bump codeigniter4/framework to 4.6.0
- Bump codeIgniter/coding-standard to ^1.8
- Bump codeigniter4/devkit to ^1.3
- Updated framework files required by CI4.6.0
- Removed Deprecated variables
- Added new file in the repo from framework

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

* Reflect PHP 8.4 support
Updates for PHP 8.4 support introduced with the upgrade to CodeIgniter 4.6.x

* Update INSTALL.md

- Revert PHP 8.4 support for now.
- Removed extra space before comma

---------

Signed-off-by: objecttothis <objecttothis@gmail.com>
Co-authored-by: BudsieBuds <bas_hubers@hotmail.com>
2025-04-03 14:16:06 +04:00
dependabot[bot]
2c9ae36247 Bump jspdf and jspdf-autotable (#4190)
Bumps [jspdf](https://github.com/MrRio/jsPDF) and [jspdf-autotable](https://github.com/simonbengtsson/jsPDF-AutoTable). These dependencies needed to be updated together.

Updates `jspdf` from 2.5.1 to 3.0.1
- [Release notes](https://github.com/MrRio/jsPDF/releases)
- [Changelog](https://github.com/parallax/jsPDF/blob/master/RELEASE.md)
- [Commits](https://github.com/MrRio/jsPDF/compare/v2.5.1...v3.0.1)

Updates `jspdf-autotable` from 3.8.2 to 5.0.2
- [Release notes](https://github.com/simonbengtsson/jsPDF-AutoTable/releases)
- [Commits](https://github.com/simonbengtsson/jsPDF-AutoTable/compare/v3.8.2...v5.0.2)

---
updated-dependencies:
- dependency-name: jspdf
  dependency-type: direct:production
- dependency-name: jspdf-autotable
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-31 13:03:50 +04:00
dependabot[bot]
69a507f879 Bump canvg from 3.0.10 to 3.0.11 (#4189)
Bumps [canvg](https://github.com/canvg/canvg) from 3.0.10 to 3.0.11.
- [Release notes](https://github.com/canvg/canvg/releases)
- [Changelog](https://github.com/canvg/canvg/blob/v3.0.11/CHANGELOG.md)
- [Commits](https://github.com/canvg/canvg/commits/v3.0.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-31 11:40:49 +04:00
jekkos
e1e3a30fc0 Add CI4 coding standards linter (#3708) (#4198) 2025-03-31 11:39:44 +04:00
Almubaraq Ratomi
c1906727ec 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/
2025-03-28 22:21:40 +01:00
Almubaraq Ratomi
8dde4c3425 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/
2025-03-28 22:21:40 +01:00
jekkos
f399714dc3 Add .env to dist zip (#4194) 2025-03-28 22:19:26 +01:00
objecttothis
e90b5b87da Replace tabs with spaces (#4196)
Signed-off-by: objecttothis <objecttothis@gmail.com>
2025-03-28 21:24:21 +04:00
jekkos
69bcd84699 Update INSTALL instructions (#4194) 2025-03-26 19:43:34 +01:00
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
objecttothis
e1f8b73005 Add check to migration to prevent errors (#4032)
* Add check to migration

- Only drop the constraint if it exists.

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

* Automatic bump of package-lock.json

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

---------

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-07-27 00:08:49 +04:00
Steve Ireland
05538570ec Supplementing issue #3997, this change allows the discount amount to be deleted by the user (instead of needing to enter a zero). 2024-07-26 21:36:19 +02:00
Steve Ireland
82aac4ec79 Resolving issue #3997 for discount type toggle not staying put. 2024-07-26 21:36:19 +02:00
Steve Ireland
d2622e94d7 An attempt to resolve issue #4025. Since a kit item code is prefixed by "KIT" it's not going to work to always assume that the item id is numeric. So "int" needs to be replaced with "string". 2024-07-22 08:38:18 +02:00
Steve Ireland
034f79e157 Start Daily Sales with selected customer (#4019) 2024-07-08 20:48:31 -04:00
Steve Ireland
c972cdfaf4 Correct a constraint that wasn't using the full unique key based on composite keys. (#4014) 2024-07-01 13:25:11 -04:00
Steve Ireland
a1e8841129 Missed a comma (#4012) 2024-06-27 19:38:47 +02:00
jekkos
70ac367761 Reinstate required_username translation (#3468) 2024-06-27 19:38:37 +02:00
Temuri Doghonadze
a9fcbc624b Translated using Weblate (Georgian)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/ci4-upgrade
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/ci4-upgrade/ka/
2024-06-27 19:38:37 +02:00
Temuri Doghonadze
fd163923ad Added translation using Weblate (Georgian) 2024-06-27 19:38:37 +02:00
khao_lek
35fe460692 Translated using Weblate (Thai)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/ci4-upgrade
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/ci4-upgrade/th/
2024-06-27 19:38:37 +02:00
Steve Ireland
0b889ec443 Clean up install.md a bit (#4012)
Corrected primary keys involving person_id.
Corrected a couple of errors in constraints involving compound keys.
2024-06-27 19:38:09 +02:00
jekkos
154fe9f9e3 Temporarily remove linter (#3708) 2024-06-15 17:19:15 +02:00
objecttothis
0bd0d48c91 revert fallback language to en
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
c942f53bf1 Minor fixes.
- Correct capitalization.
- Revert assignment to an invalid language code.
- Correct dynamic assignment in config singleton.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
BudsieBuds
c39b733c90 Language fallback improvement
- Changes for following best practice for CI4 localization
- Norwegian and Urdu languages now working again
- Sort languages by alphabet in config
2024-06-15 17:19:15 +02:00
jekkos
fea38e1608 Sync language files (#3468) 2024-06-15 17:19:15 +02:00
SpookedByRoaches
4436d7396d Fixed get_definition_by_name so that it does not get deleted
definitions.
2024-06-15 17:19:15 +02:00
objecttothis
52723ceeec Updated PHPDocs
- Added @noinspection PhpUnused to AJAX-called functions to remove weak warning that the function is unused. This will be needed for the linter.
- Referenced where the function is called in the PHPdocs.
- Removed redundant transaction. batch_save() is already being run in a transaction.
- Fixed function name in controller and view.
- Removed form helper load because it's autoloaded.
- Corrected variable reference in Secure_Controller.php

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
b3b8e7ec1d HTMLPurifier filtering on searches
- Formatting
- Added calls to HTMLPurifier
- Added filtering
- Refactored out variable for clarity

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
8408bb0d80 Revert push
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
14248edc06 HTMLPurifier filtering
- Replaced == with === to avoid type juggling
- Removed unneeded TODO
- Added HTMLPurifier to composer.json
- Added Service to allow singleton instance of purifier.
- Implemented use in Customer Controller Search function.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
061ed57bf2 - Corrected capitalization
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
SpookedByRoaches
11d5abe6d7 Fixed csv import when updating items that have a barcode 2024-06-15 17:19:15 +02:00
BudsieBuds
e4c1f4a146 Update README.md
Updated Travis CI badge
2024-06-15 17:19:15 +02:00
BudsieBuds
c384909cf6 Update BUILD.md
Reflect changes in #3826
2024-06-15 17:19:15 +02:00
jekkos
dfe614efaf Fix pie charts (#3773) 2024-06-15 17:19:15 +02:00
jekkos
a1c3b2090b Fix graphical reports (#3773) 2024-06-15 17:19:15 +02:00
jekkos
07e09e1948 Fix register functionality
Fix controller method names
2024-06-15 17:19:15 +02:00
jekkos
f81dfe1b0b Fix permissions checkbox state (#3993) 2024-06-15 17:19:15 +02:00
BudsieBuds
9fe578504c Update login screen
- Updated deprecated BS5 classes
- Throw errors in separate alert boxes and not as an <ul>
- Make error translatable
- Small updates/fixes
2024-06-15 17:19:15 +02:00
jekkos
f9f40c7f3c Remove linter overrides (#3708) 2024-06-15 17:19:15 +02:00
jekkos
46009b2062 Remove admin folder from linter (#3708) 2024-06-15 17:19:15 +02:00
jekkos
24772f856f Remove action for userguide (#3708) 2024-06-15 17:19:15 +02:00
jekkos
857ef96724 Add workflow to test coding standards 2024-06-15 17:19:15 +02:00
jekkos
9da7c73415 Fix gulp font copy issue (#3987) 2024-06-15 17:19:15 +02:00
objecttothis
63ae5494a7 - Converted raw queries to QueryBuilder where possible
- Removed completed TODOs
- Added TODOs and comments where needed.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
1328b4d9b8 - Removed TODOs that had been completed
- Added TODO where we need to convert to querybuilder
- Converted to switch statement.
- Removed unnecessary local variable
- Replaced Qualifiers with imports
- Replaced isset() call with null coalescing operator
- Replaced strpos function calls in if statements with str_contains calls
- Removed unnecessary leading \ in use statement
- Replaced deprecated functions
- Updated PHPdocs to match function signature
- Added missing type declarations
- Made class variables private.
- Explicitly declared dynamic properties
- use https:// links instead of http://
- Fixed type error from sending null when editing transactions
- Fixed Search Suggestion function name in Employees, Persons, Suppliers controller
- Fixed function name on Receivings Controller

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
41d06f5f79 Remove unneeded use statement
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
5824f78d55 Convert raw query to querybuilder for security
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
SpookedByRoaches
17908b55ef Make register background colors use bootswatch 2024-06-15 17:19:15 +02:00
jekkos
3963b2c924 Fix redirect + no permission error message 2024-06-15 17:19:15 +02:00
jekkos
8d59cd9d83 Fix no_access route (#3984) 2024-06-15 17:19:15 +02:00
jekkos
bd1af2b854 Fix delete payment (#3983) 2024-06-15 17:19:15 +02:00
jekkos
8886cac056 Update travis file (#3916) 2024-06-15 17:19:15 +02:00
jekkos
8f52e283bb Add gulp compress task (#3916) 2024-06-15 17:19:15 +02:00
jekkos
c9c6a88c5d Add suffix to exported filename (#3970) 2024-06-15 17:19:15 +02:00
jekkos
2fdddbc043 Revert gulp downgrade (#3909) 2024-06-15 17:19:15 +02:00
jekkos
75b00be637 Upgrade jspdf (#3909) 2024-06-15 17:19:15 +02:00
BudsieBuds
dd5a20229d Docker compose typo
Fixed a typo in docker-compose.test file
2024-06-15 17:19:15 +02:00
BudsieBuds
0f098bb741 Docs updated
Updated documentation. Fixed image links, links in changelog, and minor typos.
2024-06-15 17:19:15 +02:00
objecttothis
1bc3d141e9 Bump npm dependencies
- Revert jspdf and jspdf-autotable bump due to problems caused in npm run build
- Correct gulpfile for fixed reference.
- Reverted chartist dependency changes since it broke the build.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
2985b8c6ae Bump npm dependencies
- Revert jspdf and jspdf-autotable bump due to problems caused in npm run build
- Correct gulpfile for fixed reference.
- Reverted chartist dependency changes since it broke the build.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
87b4526078 Bump npm dependencies
- bootstrap-tagsinput-2021 replaced bootstrap-tagsinput because the latter has vulnerabilities.
- Chartist and addons bumped to attempt to resolve issues with graphical reports.
- jspdf and addons bumped due to vulnerabilities.  It's still be broken however.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
c60d81dd88 Removed escaping of data
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
141a644d14 Summary Taxes Report fix
- Added name to group by to satisfy only full groupby settings
- Added commented replacement of the query using query builder which is buggy. See https://forum.codeigniter.com/showthread.php?tid=90756&pid=418212#pid418212

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
84e01d14c6 Summary Reports fix
- Converted query to use QueryBuilder for security.
- Reworked code to generate a BaseBuilder instance and pass it.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
SpookedByRoaches
3d163e1969 Fix for attribute addition for items 2024-06-15 17:19:15 +02:00
WShells
a105308ad4 Fix for Edit Sales Receipt Details
Modal not displaying
2024-06-15 17:19:15 +02:00
WShells
70f464c094 Gift Card edit
Refining code to ensure consistency among other sections.
Replacing FILTER_SANITIZE_NUMBER_FLOAT as it's removing all other chars
2024-06-15 17:19:15 +02:00
WShells
95a1d0b4f1 Fix for Receivings Receipt display
Receivings receipt returning the following errors:
. Param count in the URI are greater than the controller method
. ($supplier_id) must be of type int
2024-06-15 17:19:15 +02:00
WShells
32c05b475d Fix for Receivings Edit form
Receiving form wasn't popping up for update.
2024-06-15 17:19:15 +02:00
WShells
e779ac8a79 Fix for Low Inventory Report
. Param count in the URI are greater than the controller method params.
Now displaying and listing items as needed
2024-06-15 17:19:15 +02:00
objecttothis
80e83448ee Minor formating fix
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
34503b73b8 Fixing Reports
- Corrected sale_time data

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
35e3adeca8 Fixing Reports
- Added checks for array keys not set
- Renamed functions so that reports would generate
- Minor reformatting
- Added sale_id to the groupBy() call to remove error when only full group by is enabled.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
658a9ce553 Fixing routes
- Refactored function name to match the route.
- Added null check on sale date.
- enabled escaping in bootstrap-tables
- removed the esc() function from the

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
6b44aea1c5 Fixing routes
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
WShells
9c0d597159 Fix for invoice barcode 2024-06-15 17:19:15 +02:00
WShells
9516073084 Fix for line break in invoice 2024-06-15 17:19:15 +02:00
WShells
128ac0c63e Fix for New Kit
Fix new kit modal not displaying expecting int
2024-06-15 17:19:15 +02:00
WShells
ffa92dd37c Fix for Receipt & Invoice Reprint / Display through Daily Sales
The param count in the URI are greater than the controller method params. Handler:\App\Controllers\Sales::getIndex
2024-06-15 17:19:15 +02:00
WShells
3d88d1a387 Fix For Gift Card: Always displaying invalid when generated randomly
Upon creating a new gift card and using it to complete the sales alphabetical identifiers are being removed due to FILTER_SANITIZE_NUMBER_FLOAT thus detecting gift card as invalid.
This is a fix unless we should rewrite it in a different way.
2024-06-15 17:19:15 +02:00
WShells
77420083ef Fix for Gift Card Number Display
Gift card number field wasn't displaying
2024-06-15 17:19:15 +02:00
WShells
f5bc497602 Fix for Sale Suspend/Unsuspend 2024-06-15 17:19:15 +02:00
WShells
f75c7fad15 Fix for Sale Suspend/Unsuspend 2024-06-15 17:19:15 +02:00
jekkos
1f2d2efbc2 Set default timezone to UTC 2024-06-15 17:19:15 +02:00
WShells
e07cfd4143 Fix for Shortcuts
Keyboard Shortcuts Help modl returning 404 / not displaying
2024-06-15 17:19:15 +02:00
WShells
9fc2a4edbd Refactoring Change Register Mode
Switched from conditional if stmt to case
2024-06-15 17:19:15 +02:00
WShells
ec283e24dc Fix for Gift Cards creation
($value) must be of type string, int given
Unable to load view upon new gift card creation
2024-06-15 17:19:15 +02:00
WShells
b2f5a94859 Fix for Quantity Update in Register
($decimal) must be of type string, null given
2024-06-15 17:19:15 +02:00
WShells
75f435787c Fix for Update Inventory
Update inventory form ( Adding/Subtracting Qty )
2024-06-15 17:19:15 +02:00
WShells
5e55296ea7 Fix for Item Update in Items
Qty Per Pack: ($decimal) must be of type string, null given
2024-06-15 17:19:15 +02:00
objecttothis
9d083f2fe7 Fixing routes
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
b07051e448 Fixing routes
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
WShells
9508770f47 Fix for Serialnumber & Discount Type
($discount_type) must be of type int
($serialnumber) must be of type string
2024-06-15 17:19:15 +02:00
objecttothis
9ad99a92e0 Cast tax code id's to string
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
57755a338d Routes change
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
WShells
18d0345370 Adding item to sales fix 2024-06-15 17:19:15 +02:00
objecttothis
b593de9f83 Receivings Bugfixes
- Fixed incorrect variable name
- Return empty string on null
- Added return types for mixed return functions

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
5500d3989f Filtering
- Added filtering to decimals which may have different comma separator
- Added formatting of decimals before concatenating into string
- Cast int to string in form_hidden() call

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
73cec25468 Clean up code
- Removed unneeded use statements

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
8197e1918a - Refactor file name to match class name.
- Updated autoload in composer.json to reflect actual structure.
- Removed unneeded use statements

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
665ef5aeef - Updated .gitattributes to automatically convert line endings on commit to LF.
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
e8c6d7e01d - Updated .gitattributes to automatically convert line endings on commit to LF.
- Changed Line endings.
- Prepared Decimals before filtering them for number_float.
- Refactored variable names
- Reworked code for clarity
- Added empty check to POST var.
- Removed unneeded code.
- Removed old TODO.
- changed POST variable check to !empty

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
730d01fb74 CI 4.5.1 fixes
Changed .editorconfig
- Force lf line endings for compatibility with all systems.

Fixed Login
- Removed strtolower() call because getMethod() now returns all uppercase

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
d8ec3a4c6c Changed .editorconfig
- Force lf line endings for compatibility with all systems.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
09f84526ac Added missing filters
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
865044f114 Bump CodeIgniter to 4.5.1
- CodeIgniter 4.5.1
- PSR/Log 3.0.0
- PHP >= 8.1
- Replaced mandatory files.
- Modified breaking change code.
- Modified updated code.
- Added missing files.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
00fed097b0 Update .env template 2024-06-15 17:19:15 +02:00
objecttothis
4c689ec6fd Bump CodeIgniter to 4.5.1
- CodeIgniter 4.5.1
- PSR/Log 3.0.0
- PHP >= 8.1
- Replaced mandatory files.
- Modified breaking change code.
- Modified updated code.
- Added missing files.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
68d3482065 Attribute item form and decimal fixes
- Updated formatting to reflect standard
- Wrapped Decimal type in to_decimals() function for localization
- Fixed function name
- Removed unneeded TODO
- Fixed problems with sales register not receiving decimals with comma for separator properly.

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
9428d1cd61 Attribute item form
- Updated formatting to reflect standard
- Wrapped Decimal type in to_decimals() function for localization

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
34476ce374 Bump CI4 to 4.4.8
- Merged changed files since 4.4.8
- Fixed Breaking changes

Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
79812c5982 Fixing accidentally deleted line of code
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
c71c75d69f - Minor HTML formatting
Signed-off-by: objecttothis <objecttothis@gmail.com>
2024-06-15 17:19:15 +02:00
objecttothis
34246ee885 Prepped barcode for being able to be set by width. 2024-06-15 17:19:15 +02:00
objecttothis
21c84efd2d Formatting
- Added missing ; to "nbsp"
- Remove filtering from checkbox items in controller
- Added null check to checkboxes in controller
- Fixed function naming to avoid 404
- Removed escaping from fixed urls
- Removed esc() wrapping around site_url() which already returns escaped urls.
2024-06-15 17:19:15 +02:00
objecttothis
e71c035671 Formatting
- Made view CI form helper function call format uniform.
- replaced calls to array() with []
- Placed { on its own line
- Removed empty lines where there shouldn't be any.
- Replaced text/javascript with application/javascript as the former is deprecated
2024-06-15 17:19:15 +02:00
odiea
27a4ccdff6 Update Persons.php (#3962)
Back to the original
2024-06-15 17:19:15 +02:00
odiea
ab88f1eec1 Update Persons.php (#3961)
added use Tamtamchik\NameCase\Formatter;
2024-06-15 17:19:15 +02:00
odiea
0f33c399a9 Changed < 0 to == NEW_ENTRY (#3960)
* Update Cashup.php

If(!count_only) was causing the table view to not show properly.

* Update Cashups.php

empty it must not be.

* Update Cashups.php

* Update Expenses.php

* Update Persons.php
2024-06-15 17:19:15 +02:00
odiea
9f78a8a075 Changes to Cash_up and Cash_ups for better date feature and Table view to show data (#3958)
* Update Cashup.php

If(!count_only) was causing the table view to not show properly.

* Update Cashups.php

empty it must not be.
2024-06-15 17:19:15 +02:00
objecttothis
c1c2e9df77 Bumped bootstrap-table to 1.22.4 2024-06-15 17:19:15 +02:00
objecttothis
3d6f0a912a Removed escaping
- Removed escaping from anchor() functions
- Removed escaping from form_helper functions
- added context
2024-06-15 17:19:15 +02:00
objecttothis
6d37414444 Removed escaping 2024-06-15 17:19:15 +02:00
objecttothis
a6b674e995 Barcode & escaping
- Removed overflow-visible as it is not needed.
- Bumped TamTamChik/nameCase to latest.
- Workaround to prevent nameCase from capitalizing the first letter of html entities
- Autoload security_helper.php
- Develop means of escaping outputs without encoding characters we don't want encoded.
- proof of concept in form_basic_info.php
2024-06-15 17:19:15 +02:00
odiea
a2df771f19 Update Customers.php
To keep coding the same
2024-06-15 17:19:15 +02:00
odiea
9926577b2f Update Suppliers.php
this allows correct sorting
2024-06-15 17:19:15 +02:00
odiea
5b8ccb6e2a Update Supplier.php (#3952)
* Update Supplier.php

Only way I could get supplier Category to show properly

* Update receipt.php

This changes display to show Address and New Barcode correctly
2024-06-15 17:19:15 +02:00
objecttothis
e327bb3780 Suppliers Fixes
- Added html_entity_decode() to outputs which had been html encoded
- Added escaping of direct data from the database.
2024-06-15 17:19:15 +02:00
objecttothis
b42d43d71d Change generated Barcodes to SVG 2024-06-15 17:19:15 +02:00
odiea
3555de87f6 Item Kits updates for form and Barcodes to show (#3949)
* Update Item_kits.php

* Update Item_kits.php Barcode Issue

public function Generate Barcodes
changed Code to just c and it started working
2024-06-15 17:19:15 +02:00
objecttothis
0fbbc26ab6 Convert Barcode to new Types 2024-06-15 17:19:15 +02:00
objecttothis
68d6479f0d Decimal changes
- Format percentage per locale rules
- Format sequence as integer, not per quantity rules
- Minor formatting changes
2024-06-15 17:19:15 +02:00
objecttothis
7356500d86 - Fixed missing call to helper and helper function
- Format percentage per locale rules
- Moved constants to Constants.php
- Added PHPdoc comments
- Refactor code for clarity and simplicity.
- Added decimal formatting per locale for display.
- autoload locale helper
- Remove unneeded calls to helpers
- Removed unneeded comments
- fixed errors causing checks in parse_decimals to return false due to locales which use a comma.
2024-06-15 17:19:15 +02:00
objecttothis
7cb9ffd7aa Formattings
- Format of ternary changed for readability
- Corrected CSS to use : instead of =
- Removed Label for item name to allow more text
2024-06-15 17:19:15 +02:00
objecttothis
453ee6c061 Formattings
- Format of ternary changed for readability
- Corrected CSS to use : instead of =
2024-06-15 17:19:15 +02:00
objecttothis
a5b5fccd5e Barcode Changes
- Strip out old code
- Added missing variable declaration
2024-06-15 17:19:15 +02:00
objecttothis
20828ea421 Barcode Changes
- Barcode content is item_id if barcode_number is empty.
- Styling fixes
- Bump picquer/php-barcode-generator version to 2.4.0
- Ported over Receipt Barcode Generation
2024-06-15 17:19:15 +02:00
odiea
5d1670fe65 Update Config.php (#3944)
Remove /Name from config language
2024-06-15 17:19:15 +02:00
odiea
2446b23f6e Update general_config.php (#3942) 2024-06-15 17:19:15 +02:00
odiea
c4d293b1a0 Update Customer form.php 2024-06-15 17:19:15 +02:00
objecttothis
24fd80e4fd Barcode Changes
- Removed mixed type-hint
- Replacing emberlabs code with picquer/php-barcode-generator
2024-06-15 17:19:15 +02:00
objecttothis
183f2472eb Fixed issues related to barcode generation 2024-06-15 17:19:15 +02:00
objecttothis
bf167a06b6 Removed log_message() call for debugging 2024-06-15 17:19:15 +02:00
objecttothis
b4b0b5ff8b CodeIgniter 4.4.5 version bump
- Corrected syntax to allow all 8.x versions of PHP in composer.json
- Bumped CodeIgniter from 4.4.3 to 4.4.5
- Bumped Code from 4.4.3 format to 4.4.4 format
2024-06-15 17:19:15 +02:00
objecttothis
5b725d04d5 Company logo upload
- Added conversion to migration file for delimiter in image_allowed_types
- Corrected business logic for image upload in items form.
- Removed log message used for debugging.
- Replaced '|' with ',' in image_allowed_types save/populate.
2024-06-15 17:19:15 +02:00
objecttothis
5c0325511c Company logo upload
- Corrected errors uploading file
- Renamed remove_logo for proper routing
- Corrected name
- Assigned file extension based on guessFileExtension() for security
- Don't call file upload if no file was specified
- added missing jpeg mime type
- fixed company logo change
2024-06-15 17:19:15 +02:00
objecttothis
a5296e81bb Bump PHP require version range 2024-06-15 17:19:15 +02:00
jekkos
204734570b Inline docker-mysql (#3826)
Fix database.sql mapping
2024-06-15 17:19:15 +02:00
jekkos
cefd200b29 Add suggestion for receiving validation (#3878) 2024-06-15 17:19:15 +02:00
objecttothis
61cc93ab57 Updated helper
- Removed TODO which is already a github issue (https://github.com/opensourcepos/opensourcepos/issues/3833)
- Removed call to auto_detect_line_endings which was deprecated in php 8.1. This only negatively affects files created using macOS 9 or earlier which had an EOL in 2002.
- Updated PHPdoc comments
- Removed unnecessary comments
2024-06-15 17:19:15 +02:00
objecttothis
a810100ca1 Added check to javascript
- Checks to see if response.id is undefined before trying to call toString() against it.
2024-06-15 17:19:15 +02:00
objecttothis
34bc4540bf Added Error log
- Logs message when error encountered during Customers CSV Import
2024-06-15 17:19:15 +02:00
jekkos
b25273ceee Fix docker compose version (#3826) 2024-06-15 17:19:15 +02:00
jekkos
a4b3469369 Fix user/groupadd in container (#3826) 2024-06-15 17:19:15 +02:00
jekkos
84f3bd3bfb Add docker build args (#3826) 2024-06-15 17:19:15 +02:00
Doug Hutcheson
9315d56408 ci4-bugfix to stock locations and item csv import
Stock locations are now being handled correctly in the Configuration stock page, due to a fix to Models/Stock_locations.php  and imports to stock locations from csv are now working due to a correction to Controllers/Items.php
2024-06-15 17:19:15 +02:00
Doug Hutcheson
b36ef3a603 ci4-bugfix to items customers and attributes
Attributes: Noticed log_message() being called with uppercase letters in the level which causes errors in the system; Customers: improved the layout of the stats page in the information dialog issue 3892; Items: got csv import working issue 3896 and bulk edits working - barcode generation does not work yet.
2024-06-15 17:19:15 +02:00
jekkos
fba33ed995 Update packaga-lock.json (#3923) 2024-06-15 17:19:15 +02:00
jekkos
c0cdff7e11 Fix reference to chartist-tooltip (#3923) 2024-06-15 17:19:15 +02:00
objecttothis
cb1b269d7a Datepicker fixes
- Updated datepicker_locale.php to prevent array/string conversion.
- changed bootstrap-datepicker_locale version in package.json to specify which version.
- Changed bootstrap-table back to latest since the github commit did not resolve the issue.
2024-06-15 17:19:15 +02:00
Doug Hutcheson
c01b514596 ci4-bugfix further corrections for lang calls
These files have been patched to correct anomalies in the calls to lang().
2024-06-15 17:19:15 +02:00
Doug Hutcheson
f7bb778351 ci4-bugfix ucase first letter of controller name
Many labels were not picking up the language stings because the langauge file name was being passes to lang() without an uppercase first letter.
2024-06-15 17:19:15 +02:00
Doug Hutcheson
c6d51bff04 ci4 bug fix Sales controller_name and Receivings function name
In Views/sales/register.php two button labels did not show the correct language strings, because the variable '$controller_name' was passed to lang(), but this needed to be given literally as 'Sales'. In Views/receivings/receiving.php, the suggested items autocomplete function was called as stock_item_search and needed to be changed to stockItemSearch. There is also an almost identical function itemSearch, which may indicate that one of the two is redundant and should be pruned, but without documentation to guide me I am unwilling to do that at this time.
2024-06-15 17:19:15 +02:00
jekkos
de9038f450 Remove free query + update CSP (#3885) 2024-06-15 17:19:15 +02:00
jekkos
09bf4d2f31 Update npm dependencies (#3909) 2024-06-15 17:19:15 +02:00
jekkos
7523c0fed8 Fix bstables to commit ca85b98 2024-06-15 17:19:15 +02:00
jekkos
ff4ef97b25 Add back debian base layer in Dockerfile (#3875) 2024-06-15 17:19:15 +02:00
jekkos
5e3fa3c580 Map uid in container (#3875) 2024-06-15 17:19:15 +02:00
jekkos
0669428026 Bump bstables (#3854) 2024-06-15 17:19:15 +02:00
jekkos
9f2474e156 Use loading animation only (#3891) 2024-06-15 17:19:15 +02:00
Doug Hutcheson
9723e82b61 CI4 bug fixes on behalf of DEV-byoos 3776
Changes to Controllers/Receivings.php and Controllers/Sales.php identified by @DEV-byoos, plus a change to Controllers/Customers.php to deal with the new way PHP 8.2 handles missing array keys.
2024-06-15 17:19:15 +02:00
jekkos
8457f1460e Replace Cal. with Calendar (#3864) 2024-06-15 17:19:15 +02:00
jekkos
1789311299 Strip prefix in calendar files (#3864) 2024-06-15 17:19:15 +02:00
jekkos
6b8d788185 Add english calendar language files (#3864) 2024-06-15 17:19:15 +02:00
jekkos
dedb6f9836 Add calendar language files (#3864) 2024-06-15 17:19:15 +02:00
jekkos
c20153aa00 Sync language files (#3468) 2024-06-15 17:19:15 +02:00
jekkos
245dcd2dd1 Add missing docker-mysql.yml (#3826) 2024-06-15 17:19:15 +02:00
jekkos
33a6356cc4 Create backup folder if it does not exist (#3826) 2024-06-15 17:19:15 +02:00
jekkos
8dbb8f8f69 Enable docker config override (#3908) 2024-06-15 17:19:15 +02:00
jekkos
60c3a9a96f Remove stale .bowerrc, update INSTALL.md 2024-06-15 17:19:15 +02:00
jekkos
b4fea6dddc Fix database.sql mount (#3875) 2024-06-15 17:19:15 +02:00
jekkos
681ec28131 Add .git to .dockerignore
This decreases docker image size locally by 700MB
2024-06-15 17:19:15 +02:00
jekkos
cd3581ce28 Try to build with default travis docker (#3875) 2024-06-15 17:19:15 +02:00
jekkos
b89faa3a94 Add back debian base layer in Dockerfile (#3875) 2024-06-15 17:19:15 +02:00
objecttothis
60a5bfdc9a Corrected Function names for routes
- generate_barcode function name changes in Controllers
- generate_barcode function name calls in views
- Added PHPdocs
2024-06-15 17:19:15 +02:00
objecttothis
47341f1a07 Bump tableexport.jquery.plugin
- New version 1.28.0
2024-06-15 17:19:15 +02:00
objecttothis
29d0703426 Fixed report error
- can_show_report() was returning an unexpected value.
2024-06-15 17:19:15 +02:00
objecttothis
ff676aeb93 Fixes
- Removed XLSX export format due to errors.
- Upgraded Fakerphp to try to resolve datepicker issues.
- Attempted to fix datepicker language issues.
- Removed duplicate Sunday in the picker.
2024-06-15 17:19:15 +02:00
objecttothis
05d39ff896 Attempts at correcting problem with JSPDF 2024-06-15 17:19:15 +02:00
objecttothis
b5f93b6325 Fixed Customer CSV import
- Corrected function name for CI4
- Removed trailing whitespace
2024-06-15 17:19:15 +02:00
objecttothis
2efda51309 Fixes
- Removed unneeded use statements
- Corrected function name for routes
- Moved import_customers.csv to writable folder to prevent unauthorized access
- Added return to function to force download
2024-06-15 17:19:15 +02:00
objecttothis
728a6a67e0 Fixed incorrect verb 2024-06-15 17:19:15 +02:00
objecttothis
ae44e38855 Dependencies
- Updated bootstrap-table
- Updated jquery
- Refactored local variable name
- fixed problem with null being sent on no filters
- fixed incorrect reference in view of variables
2024-06-15 17:19:15 +02:00
objecttothis
f662f45bf7 bootstrap-table
- Updated dependency
- Added XLSX format to export formats.
2024-06-15 17:19:15 +02:00
objecttothis
ac3a11c6a3 Corrected ID
- company_name id was overriding in the CSS so that text in the form was 150% and bold.  Changed the ID field
2024-06-15 17:19:15 +02:00
objecttothis
d18d2cf814 PHPdocs
- Removed unnecessary ReflectionException in PHPdoc
- Corrected return details of insert function
- Replaced deprecated class
- Removed Inventory model's insert function because it wasn't providing functionality that the Model class wasn't.
- Corrected the calling method signature for Inventory->insert()
2024-06-15 17:19:15 +02:00
objecttothis
cc58cecff0 Compatibility changes
- Removed `mixed` function return type from some functions for backward compatibility with php 7.4
- Refactored string concatination for readability.
- Added TODO for later
- Corrected PHPdocs
- Removed unneeded TODO
- Refactored function names with mixed snake and pascal case names
2024-06-15 17:19:15 +02:00
objecttothis
ba9bcd7786 PHPdocs
- Added missing PHPdocs
- Corrected Syntax
- Added noinspection parameters to PHPdoc for AJAX called functions
- Added missing function return types
- Added missing parameter types
- Added public keyword to functions without visibility modifier
- Corrected incorrectly formatted PHPdocs
- Added public to constants and functions missing a visibility keyword
2024-06-15 17:19:15 +02:00
objecttothis
88007f56be Fixed enforce_privacy checkbox 2024-06-15 17:19:15 +02:00
objecttothis
4a23adbb2f Corrected Function call
- setAttribute() expects the second parameter to be an int or float. setTextAttribute() resolves this.
- Added TODO
2024-06-15 17:19:15 +02:00
objecttothis
2245aacf81 Refactoring
- Minor formatting fix
- Refactored function name for clarity
- Corrected name of route
2024-06-15 17:19:15 +02:00
objecttothis
a8d67895e7 Remove debugging log_message() references 2024-06-15 17:19:15 +02:00
objecttothis
2a3317a270 Removed htmlspecialchars() calls 2024-06-15 17:19:15 +02:00
objecttothis
1dfa428989 Fixed bug causing checkbox not to populate
- The two values set for show_office_group in the database are 0 and 999. Testing for 1 will always leave the checkbox disabled.
2024-06-15 17:19:15 +02:00
objecttothis
01512b0835 Fixed incorrectly named function for route. 2024-06-15 17:19:15 +02:00
objecttothis
3e3da57543 Fixed multiselect form issues
- Missing `[]` in name of multiselect form.
2024-06-15 17:19:15 +02:00
odiea
d5c767aeb9 Update Config.php (#3884) 2024-06-15 17:19:15 +02:00
objecttothis
7124e4ca5f Minor changes and fixes
- Convert space to tab indents
- Fix location of company_logo file to uploads
2024-06-15 17:19:15 +02:00
objecttothis
c8773ad7b1 Formatting fixes
- Convert space to tab indents
2024-06-15 17:19:15 +02:00
objecttothis
7b224be665 PSR compliance and formatting changes
- Replaced TRUE/FALSE constants with true/false keywords
- Replaced NULL constant with null keyword
- Replaced `<?php echo` in views with shortened `<?=`
- Added missing variable declaration
- Added missing function return type in declaration
- replaced `== true`, `== false`, `=== true` and `=== false` in if statements with simplified forms
2024-06-15 17:19:15 +02:00
objecttothis
588f96a945 Added missing return type to function 2024-06-15 17:19:15 +02:00
objecttothis
0754f2f6e6 Fix Request variable retrieval
- getSearch functions to properly retrieve HTTP vars.
- getVar() function calls replaced with getGet() or getPost()
- replaced TRUE/FALSE constants with true/false keywords
2024-06-15 17:19:15 +02:00
objecttothis
48c04417b8 Fixes
- PHP 8.2 deprecates dynamically declared class properties. Adding these declarations removes deprecation warnings and makes the code PHP 8.3 compatible.
- Add Elvis operator to set search string to an empty string when it's value is null to get rid of an error in the search function call.
- Imported class for OSPOS config
- Replaced private with protected in parent controller's property.
- Removed unneeded TODO
- Refactored local variables
- Replaced ternary notation
- Removed unneeded comments
- Removed unneeded class property
- Removed unneeded @property declarations
- Fixed database version
2024-06-15 17:19:15 +02:00
objecttothis
70ee1ed36e Declared class properties
PHP 8.2 deprecates dynamically declared class properties. Adding these declarations removes deprecation warnings and makes the code PHP 8.3 compatible.
2024-06-15 17:19:15 +02:00
objecttothis
283ee4d7c6 Corrected Problems
- Add missing use statement
- Remove log messages used for debug
2024-06-15 17:19:15 +02:00
objecttothis
0a527abfa0 Corrected Problems
- Corrected type of config property.
- Added property declarations.
2024-06-15 17:19:15 +02:00
objecttothis
3890f50e77 Corrected Problems
- Added types to config.
- Added formatting to DB_log messages
- Corrected bug referencing non-existent OSPOS config property timezone
- set the date_default_timezone to the php-specified default when timezone is not set in the app rather than 'America/New York'
- Added TODO indicating problem.
2024-06-15 17:19:15 +02:00
objecttothis
c4cd60ad58 Update .env
- Corrected order.
- Added db_log_only_long boolean
2024-06-15 17:19:15 +02:00
objecttothis
3da79fc47c Added long running query tag
- Now if queries run for longer than 0.5 s, a tag will be appended to the log [LONG RUNNING QUERY]
- If app.db_log_only_long is set to true in the .env file, the db log will only show long running queries.
2024-06-15 17:19:15 +02:00
objecttothis
e90029dea6 Changed db log file type
- It's inaccurate to log these as .php files since they do not contain php.
2024-06-15 17:19:15 +02:00
objecttothis
ad9645020c Database Logging fixes
- Corrected the event listener names. `post_controller` no longer exists.
- Corrected the db_log_queries function to pull just the most recent query
- Added function to convert time into a more easily understood unit when small
2024-06-15 17:19:15 +02:00
objecttothis
2bb4b7c865 Formatting and naming refactor
- Added `@noinspection PhpUnused` tags to PHPdocs for functions which are called via AJAX.
- removed conversion to array in getResult in favor of returning an array to begin with.
- Refactored variable for clarity.
- declared variable in view coming from controller
- Added PHPdocs
- Refactored nested if/else statements into ternary notation.
- Corrected tab type
- added missing model declaration in view
- Modified query builder to extrapolate out the set() command for clarity
2024-06-15 17:19:15 +02:00
objecttothis
c971e025b8 Fix gitignore
- Removed ignore from master .gitignore
- Added .gitignore to item_pics directory.
- Added .gitignore to uploads directory.
2024-06-15 17:19:15 +02:00
jekkos
05372b96cc Fix string escape (#3468) 2024-06-15 17:19:15 +02:00
objecttothis
086a90b04d Code fixes
- Added PHPdoc tags for the IDE to ignore unused function inspections on AJAX calls.
- set TRUE, FALSE, NULL to true, false, null for PSR-2,12 compliance
2024-06-15 17:19:15 +02:00
objecttothis
6074d984ed Code fixes
- Replaced ternary notation with null coalescing version.
- Removed unnecessary semi-colon
- Replaced `<? echo` with short echo ``<?=`
- declared stay_open explicitly with `let`
- Updated PHPdocs
- Replaced force_download() from the CI3 download helper with CI4 version
- Removed unneeded using statements
- added needed call to db_connect()
- Removed parameter that matches the default value since it's redundant.
2024-06-15 17:19:15 +02:00
objecttothis
20bbe8c783 Formatting fixes 2024-06-15 17:19:15 +02:00
objecttothis
a5cdbe4523 Attributes fixes and warning removal
- Declared variable in view coming down from controller
- refactored javascript variable name to remove duplicate declaration warning
- Import missing class
2024-06-15 17:19:15 +02:00
objecttothis
405583c832 Attributes fixes and warning removal
- when the payments array was folded into sale_data there was an earlier payments[] reference in the foreach loop that didn't get folded in.
- Update PHPdoc
- Added ::class to remove polymorphic call warning
- Removed unreachable 'break;' statement after return statement.
- Added missing return type
- fixed missing assignment of mailchimp_api_key
2024-06-15 17:19:15 +02:00
objecttothis
6a316c56f6 Attributes fixes and warning removal
- missing return type in Events->load_config(), added void
- Dynamic property creation is deprecated starting in php 8.2. The solution is to declare the property in the class before using it.
- Added ::class to model instantiations to remove "potentially polymorphic call" warnings
- Corrected phpdoc
2024-06-15 17:19:15 +02:00
objecttothis
54f5b6fa8f Downgraded laminas/laminas-escaper
- 2.13 drops support for php 7.4 and 8.0
- Fixed 2.12 support for now
2024-06-15 17:19:15 +02:00
objecttothis
e5dcdd5970 Attributes queries fixes
- Minor formatting fixes
- Adding back bitwise equals into query using RawSql()
- Corrected GET method to POST
- Removed if statement causing no attribute values
- Removed param in get() from CI3
- Changed setAttribute to setTextAttribute
- Replaced NULL constant with null keyword PSR-2,12
- Replaced TRUE/FALSE constants with true/false keywords PSR-2,12
- explicit cast to get rid of deprecation warning
2024-06-15 17:19:15 +02:00
jekkos
6b7608fd62 Fix bootstrap tables prefix in conversion 2024-06-15 17:19:15 +02:00
jekkos
43c37da01a Sync language files (#3468) 2024-06-15 17:19:15 +02:00
objecttothis
af21beb19e Resolve issue with item_pics
- item_pics were being escaped by bootstrap-table
2024-06-15 17:19:15 +02:00
objecttothis
0de0f3ec89 bump bootstrap5
- bootstrap5 to 5.3.2
- bootswatch5 to 5.3.2
2024-06-15 17:19:15 +02:00
objecttothis
aa5bfd9b18 bump readable-stream to 4.4.2 2024-06-15 17:19:15 +02:00
objecttothis
3536454638 bump gulp-debug to 5.0.1 2024-06-15 17:19:15 +02:00
objecttothis
08f1318268 bump npm-check-updates to 16.14.6 2024-06-15 17:19:15 +02:00
objecttothis
397194f2ca ignore files in uploads 2024-06-15 17:19:15 +02:00
objecttothis
75d66f62c0 ignore webp files 2024-06-15 17:19:15 +02:00
objecttothis
b19b4818e3 Roll back committed injections 2024-06-15 17:19:15 +02:00
objecttothis
2601fbb7b0 Formatting fixes
- Removed TODOs
- String Interpolation
- Changed quotes in html to match the rest of code
2024-06-15 17:19:15 +02:00
objecttothis
e8e3073553 - Converted statement to ternary notation for readability
- Removed space
- Removed TODO
- Added TODO
2024-06-15 17:19:15 +02:00
objecttothis
6c6b1cb4bc gitignore transient files 2024-06-15 17:19:15 +02:00
objecttothis
8081a98243 gitignore debugbar 2024-06-15 17:19:15 +02:00
objecttothis
3025615ff8 gitignore logs 2024-06-15 17:19:15 +02:00
objecttothis
2fa3ef3c30 Removed non-existent folders from gitignore 2024-06-15 17:19:15 +02:00
objecttothis
aa5fd5d0aa Fixed Thumbnail Generation Endpoint
- String interpolation
- Removed TODO
- Reworked thumbnail creation for CI4
- Corrected capitalization in calling function URL
- Added send() to return the HTTP response
2024-06-15 17:19:15 +02:00
objecttothis
f661284612 fixed out of range segment 2024-06-15 17:19:15 +02:00
objecttothis
fd77dcfc5e Syntax errors
- Deleted extra closing parenthesis
2024-06-15 17:19:15 +02:00
objecttothis
c5c4a528b4 Fixed incorrect session table name 2024-06-15 17:19:15 +02:00
objecttothis
85de6adadb Upgrade CI to 4.4.3
- Bump composer.json/lock to codeigniter 4.4.3
- Fix base_url() call without arguments
- Updated files in the project space
- Bump composer.json/lock to kint 5.0.4
- Update composer.json to include missing CI elements
- Corrected composer.json regarding minimum versions
- Updated README.md to reflect CI4 implementation
- Migrated some Routes.php to Routing.php
- Removed deprecated settings from Config/App.php
2024-06-15 17:19:15 +02:00
objecttothis
93a3788467 Replaced BASEPATH with FCPATH 2024-06-15 17:19:15 +02:00
objecttothis
62cfc67779 add location to gitignore 2024-06-15 17:19:15 +02:00
objecttothis
3072b4c1c0 Remove location from gitignore 2024-06-15 17:19:15 +02:00
jekkos
2c4a2f7af1 Remove Gruntfile.js + bower.json (#3842) 2024-06-15 17:19:15 +02:00
objecttothis
7d791ba59f Corrected keys for Bootstrap_tables.php 2024-06-15 17:19:15 +02:00
objecttothis
74210bead5 Bump to allow php 8.1 2024-06-15 17:19:15 +02:00
Doug Hutcheson
044170b2b1 CI4: Bugfix test sanity of config item
Add a !empty test when dereferencing mailchimp_api_key and mailchimp_list_id from the config array.
2024-06-15 17:19:15 +02:00
Doug Hutcheson
8ea5fc5078 CI4: Bugfix to correct two config issues
Adds 'payment_message' to the app_config table and corrects a typo in Views/login.php where 'Login.form' should have been 'login_form'.
2024-06-15 17:19:15 +02:00
jekkos
b4d117011a Add CI4 language migration scripts (#3468) 2024-06-15 17:19:15 +02:00
Doug Hutcheson
1a465621e0 Ci4 bugfix string interpolation (#3836)
* CI4: Bugfix string interpolation language files

These are the language files with all placeholders converted to CI4 numbered style eg {0}.

* CI4: Bugfix string interpolation source code files

These are the controllers and views which call lang() with parameters to be interpolated.

* CI4: Bugfix string interpolation shell scripts

These are the Linux bash scripts which use the sed (stream editor) utility to convert earlier forms of placeholders to CI4 numeric type. A number of typographical errors in the original Language files were corrected by these scripts.
2024-06-15 17:19:15 +02:00
Edwin Smith
af51e4c735 Clean up work on reports listing view and lang() methods (#3707)
* reworked reports and listing page to handle lang() functions in CI_4

* removed old methods

* update code style

* updated bracket style

---------

Co-authored-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
2024-06-15 17:19:15 +02:00
Doug Hutcheson
310585d8af CI4: Bugfix - add function to remove .env.bak issue #3826
Added function remove_backup() to security_helper.php. Added a call to this from the two places that call check_encryption where the backup is created. Added more defensive code to Config.php to ensure the encrypter  objectexists before it is called to avoid a crash.
2024-06-15 17:19:15 +02:00
jekkos
3690296766 Add CI4 coding standards linter 2024-06-15 17:19:15 +02:00
Doug Hutcheson
9b86ddaac0 CI4: string interpolation changes (#3811)
* Initial setup in a new environment

The result of running the npm build and editing the .env file

* Revert "Initial setup in a new environment"

This reverts commit 23e06dea7f.

* Language interpolation update

I have edited all the interpolations in the en-US tree. To be consistent in using named parameters and not just positional numbers, I also edited the relevant lines in two controllers (Sales.php and Items.php) to send named variables to the lang() calls. The language string 'Sales.invoice_number_duplicate' contains an interploation for 'invoice_number'. This is sent when used by Controllers/Sales.php, but not sent when used by Views/sales/form.php, which means that string will contain a double space where the invoice number should be. The language string 'Customers.csv_import_partially_failed' contains no interpolations but two parameters are not being sent where it is used by Controllers/Customers.php. The string appears to be a near duplicate of 'Items.csv_import_partially_failed' which contains two interpolations. Either the Customers controller needs to be edited, or the Customers language string needs to be revised to look like the Items string.

---------

Co-authored-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
2024-06-15 17:19:15 +02:00
jekkos
d47143bfef Reinstate en-US files (#3468) 2024-06-15 17:19:15 +02:00
objecttothis
76cefada53 added note about intl 2024-06-15 17:19:15 +02:00
jekkos
2b7e37c8d9 Revert to last working Dockerfile (#3584) 2024-06-15 17:19:15 +02:00
Steve Ireland
78a6316062 Correct dockerignore to pick up changes to path folder names. 2024-06-15 17:19:15 +02:00
jekkos
9e182c323b Add back database Dockerfile (#3584) 2024-06-15 17:19:15 +02:00
Steve Ireland
477ceb2317 In Token_lib change App\Models\tokens\Token to App\Models\Tokens\Toke 2024-06-15 17:19:15 +02:00
jekkos
24539101d2 Bump docker base image to php8 2024-06-15 17:19:15 +02:00
Steve Ireland
f5094d62a2 Restore the tables.sql to its virgin state. 2024-06-15 17:19:15 +02:00
jarebear6expepjozn6rakjq5iczi3irqwphcvbswgkahd6b6twnxxid
a2610c3bc9 update int(1) columns in _customers and _cash_up tables to use tinyint (#3709) 2024-06-15 17:19:15 +02:00
Steve Ireland
4798041408 Tack on the void return type onto the Employee:logout method. 2024-06-15 17:19:15 +02:00
objecttothis
1d87de6f7d Sales MVC
- Added todo to Stock_location.php
- make library function return nullable
- Added missing model instantiation
- Commented out Sale model instantiation in library because it's causing infinite loop
- Changed function name prepending get and post required by CI4 autorouting
2024-06-15 17:19:15 +02:00
Steve Ireland
13a14ec310 Remove grunt045 from zipped opensourcepos file. Also fix the call to array_walker since the parameters (even if not used) are validated in PHP 8. 2024-06-15 17:19:15 +02:00
objecttothis
8d80f5a261 CI4 bugfixes
- Added session variable instantiation where needed.
- Added tabular helper to autoload
- removed tabular helper reference where no longer needed.
- Remove esc() references where it was causing display problems.
- Remove excess whitespace on blank line
- Remove unecessary using reference
- Make parameters for dinner table functions nullable
2024-06-15 17:19:15 +02:00
Steve Ireland
145930ce5b Mostly clean up the build documentation, but also corrects an error in the creation of the database script that supports migration from phppos 2024-06-15 17:19:15 +02:00
objecttothis
525c65ffb3 Convert encryption to CI4
- automatic upgrade of encryption key.
- automatic decryption of CI3 data, then re-encryption in CI4 and update of table.
- Fixing save function in app_config model
2024-06-15 17:19:15 +02:00
Steve Ireland
2e06f89724 This revises the build process to handle grunt components requiring two versions of grunt. The new BUILD.md file documents the changes. 2024-06-15 17:19:15 +02:00
objecttothis
ae357cab4a Formatting
- Convert indents to tabs
- Remove unnecessary else statement
- Correct PHPDoc formatting
2024-06-15 17:19:15 +02:00
Steve Ireland
38a1815d31 Adjust the build config to allow building the CI4 branch. 2024-06-15 17:19:15 +02:00
objecttothis
1dd58e922f Corrected link in README.md 2024-06-15 17:19:15 +02:00
jekkos
4123d9d8f7 Use double quotes in language files (#3468) 2024-06-15 17:19:15 +02:00
Samuel
8526947df1 Item thumbnail creation ported to CI4 (#3597)
* pic_thumb() now using CI4 service image

* remove unused lines

Co-authored-by: Samuel Bentil <bentilebo@gmail.com>
2024-06-15 17:19:15 +02:00
jekkos
828fd639b2 Porting over 4f3226b 2024-06-15 17:19:15 +02:00
chunter2
e4fed64976 Porting over e4ca111 2024-06-15 17:19:15 +02:00
objecttothis
de531e20c6 Migrations
- Delete old CI3 file
- Correct format of Migrations file datetime
2024-06-15 17:19:15 +02:00
jekkos
1745e973a1 Apply changes from master 2024-06-15 17:19:15 +02:00
objecttothis
b4f0aaa587 Porting 5669dff 2024-06-15 17:19:15 +02:00
jekkos
2d45ca626b Apply changes from master 2024-06-15 17:19:15 +02:00
objecttothis
f84b795ee6 Upgrade to CodeIgniter 4.1.3 2024-06-15 17:19:15 +02:00
jekkos
73b189b6d4 Prepare rebase: move files to new folder structure 2024-06-15 17:19:15 +02:00
Oleg
a6f4558829 Translated using Weblate (Russian)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ru/
2024-06-04 13:33:51 +02:00
jekkos
bfdffbb944 Update README.md 2024-04-26 08:42:20 +02:00
Poedeloel
7355ee6154 Translated using Weblate (Dutch)
Currently translated at 98.1% (52 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/nl/
2024-04-22 10:54:34 +02:00
Poedeloel
6ecacabe16 Translated using Weblate (Dutch)
Currently translated at 98.1% (217 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl/
2024-04-22 10:54:33 +02:00
Poedeloel
0c1cd830f7 Translated using Weblate (Dutch)
Currently translated at 96.2% (76 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/nl/
2024-04-22 10:22:44 +02:00
objecttothis
83a0ca4a5b Update bug report.yml (#3950)
* Update bug report.yml

Changed order of bug report

* Update bug report.yml

Converted values into placeholders
2024-03-20 17:17:52 +04:00
SONKO ABDOU
6c6eb09dcc Translated using Weblate (French)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/fr/
2024-03-17 21:19:57 +01:00
SONKO ABDOU
cad41e5576 Translated using Weblate (French)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/fr/
2024-03-17 21:19:57 +01:00
SONKO ABDOU
dda927ad09 Translated using Weblate (French)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/fr/
2024-03-17 16:42:11 +01:00
SONKO ABDOU
585e674e4d Translated using Weblate (French)
Currently translated at 96.5% (28 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/fr/
2024-03-17 16:42:11 +01:00
Emin Tufan Çetin
d56c78ebc0 Translated using Weblate (Turkish)
Currently translated at 99.1% (116 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/tr/
2024-03-13 03:20:30 +01:00
objecttothis
698f9bb3d7 Update bug report.yml (#3946)
Add option to select a development build
2024-03-12 20:42:27 +04:00
iscdavidhernandez
dc943aecb8 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/
2024-03-02 17:50:34 +01:00
jekkos
2618772f20 Update issue templates (#3895) (#3936)
Co-authored-by: odiea <oagnew@aim.com>
2024-02-29 00:16:07 +04:00
khao_lek
d4ee5c12dd Translated using Weblate (Thai)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/th/
2024-02-28 18:28:07 +01:00
khao_lek
1fdebed0e2 Translated using Weblate (Thai)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2023-12-19 11:05:19 +01:00
khao_lek
5cf744d885 Translated using Weblate (Thai)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2023-12-19 11:05:18 +01:00
khao_lek
1b8c66122f Translated using Weblate (Thai)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/th/
2023-12-19 11:05:18 +01:00
khao_lek
40a1ec8baf Translated using Weblate (Thai)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/th/
2023-12-19 11:05:17 +01:00
khao_lek
eb4ef3f487 Translated using Weblate (Thai)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/th/
2023-12-19 11:05:16 +01:00
khao_lek
ead1603213 Translated using Weblate (Thai)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/th/
2023-12-19 11:05:15 +01:00
khao_lek
26f10c09b1 Translated using Weblate (Thai)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/th/
2023-12-19 11:05:15 +01:00
donjade
bf7f2e03b7 Translated using Weblate (Chinese (Simplified))
Currently translated at 60.3% (32 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/zh_Hans/
2023-11-14 08:05:17 +01:00
donjade
d21b3f7ba9 Translated using Weblate (Chinese (Simplified))
Currently translated at 28.5% (2 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/zh_Hans/
2023-11-14 08:05:17 +01:00
donjade
c0fce5fabb Translated using Weblate (Chinese (Simplified))
Currently translated at 93.6% (44 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/zh_Hans/
2023-11-14 08:05:17 +01:00
donjade
9bdaeaa95b Translated using Weblate (Chinese (Simplified))
Currently translated at 63.9% (209 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hans/
2023-11-14 08:05:17 +01:00
donjade
ed371a0568 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/zh_Hans/
2023-11-14 08:05:17 +01:00
donjade
5b003c6519 Translated using Weblate (Chinese (Simplified))
Currently translated at 72.7% (8 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/zh_Hans/
2023-11-14 08:05:17 +01:00
jekkos
c00ff28d10 Update npm package secret 2023-11-06 22:29:19 +01:00
jekkos
351ab93523 Update .travis.yml secret 2023-11-06 19:44:06 +01:00
jekkos
7c87ac6f60 Bump to 3.3.9 2023-11-06 09:55:29 +01:00
jekkos
f7b5c6542d Bump jspdf to 1.3.5 2023-11-06 09:47:20 +01:00
FrancescoUK
676e09068e Fix cash_adjustment NULL exception 2023-11-05 13:50:48 +00:00
Flibble
f0067757e2 Translated using Weblate (Czech)
Currently translated at 76.9% (170 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/cs/
2023-11-02 09:35:57 +01:00
Flibble
5ad8af8fe9 Translated using Weblate (Czech)
Currently translated at 54.7% (29 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/cs/
2023-11-02 09:35:56 +01:00
jekkos
7109ab3521 Translated using Weblate (English)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/en/
2023-10-16 23:53:22 +02:00
Johntini
4e182fcde8 Translated using Weblate (Spanish)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/es/
2023-10-09 08:05:23 +02:00
truchosky
bd65957d02 Translated using Weblate (Spanish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/es/
2023-10-09 08:05:23 +02:00
Johntini
a9e5a0fcfe Translated using Weblate (Spanish)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2023-10-09 08:05:23 +02:00
Johntini
fc15db9d2c Translated using Weblate (Spanish)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/es/
2023-10-09 08:05:23 +02:00
Johntini
7db56e8ee8 Translated using Weblate (Spanish)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/es/
2023-10-09 08:05:23 +02:00
Johntini
f035fe7ab3 Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/es/
2023-10-09 08:05:23 +02:00
Johntini
8cc8ab61ae 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/
2023-10-09 08:05:23 +02:00
daN4cat
10b245399d Revert config.php changes 2023-09-02 18:18:32 +01:00
daN4cat
4806c0f700 Various fixes 2023-08-30 23:54:13 +02:00
jekkos
82d7f48ee0 Add semicolon (#3792) 2023-08-29 00:49:20 +02:00
Denis Baryshev
9f377fa40a Update config.php 2023-08-29 00:35:04 +02:00
Denis Baryshev
d0209a711b allow unattended scheme mode
Signed-off-by: Denis Baryshev <dennybaa@gmail.com>
2023-08-29 00:35:04 +02:00
jekkos
57eb9c1e35 Fix tagsinput bower dependency 2023-08-29 00:33:44 +02:00
Jan Kadlec
5ad6097fd1 Fixing typo 2023-08-07 23:45:01 +02:00
Jorge Ivan Contreras Pacheco
712d4c60ae Translated using Weblate (Spanish (Mexico))
Currently translated at 57.3% (39 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/es_MX/
2023-07-28 00:35:48 +02:00
Jorge Ivan Contreras Pacheco
79618f3877 Translated using Weblate (Spanish (Mexico))
Currently translated at 22.2% (26 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es_MX/
2023-07-27 19:29:17 +02:00
Jorge Ivan Contreras Pacheco
a67872f66d Translated using Weblate (Spanish (Mexico))
Currently translated at 99.3% (325 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es_MX/
2023-07-19 20:41:28 +02:00
WebShells
8659c17ddd Translated using Weblate (Croatian)
Currently translated at 68.3% (151 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/hr/
2023-07-08 18:02:51 +02:00
jekkos
dcb797571e evert "Prepare rebase: move files to new folder structure"
This reverts commit eed0cd1ca0.
2023-05-30 17:52:17 +02:00
Oleg
5bd358dd24 Translated using Weblate (Russian)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ru/
2023-05-26 20:42:38 +02:00
Oleg
427aa592d9 Translated using Weblate (Russian)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ru/
2023-05-24 13:35:59 +02:00
Oleg
6d2e95c4ed Translated using Weblate (Russian)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ru/
2023-05-24 08:57:22 +02:00
Oleg
5852c0a709 Translated using Weblate (Russian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ru/
2023-05-24 08:57:21 +02:00
Oleg
31ca72fbde Translated using Weblate (Russian)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ru/
2023-05-24 08:57:21 +02:00
Oleg
e6811ce2a1 Translated using Weblate (Russian)
Currently translated at 97.6% (83 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ru/
2023-05-23 19:25:35 +02:00
Oleg
4d960c7b78 Translated using Weblate (Russian)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ru/
2023-05-23 19:25:35 +02:00
Oleg
a1f50e1df7 Translated using Weblate (Russian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ru/
2023-05-23 19:25:28 +02:00
Oleg
9de467fd30 Translated using Weblate (Russian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ru/
2023-05-23 14:47:28 +02:00
Oleg
9be17a277a Translated using Weblate (Russian)
Currently translated at 94.9% (75 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ru/
2023-05-23 14:47:27 +02:00
Oleg
6c5982b5f2 Translated using Weblate (Russian)
Currently translated at 95.5% (43 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ru/
2023-05-23 14:47:26 +02:00
Oleg
fd8da94487 Translated using Weblate (Russian)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/ru/
2023-05-23 14:47:26 +02:00
Oleg
4c04279b1e Translated using Weblate (Russian)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ru/
2023-05-23 14:47:25 +02:00
Oleg
a56fd88247 Translated using Weblate (Russian)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ru/
2023-05-23 14:47:24 +02:00
Oleg
15edc925ca Translated using Weblate (Russian)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ru/
2023-05-23 14:47:23 +02:00
Oleg
ff4b04757a Translated using Weblate (Russian)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ru/
2023-05-23 14:47:22 +02:00
Oleg
3c5ab264ea Translated using Weblate (Russian)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ru/
2023-05-23 11:31:44 +02:00
Oleg
c85fccd99a Translated using Weblate (Russian)
Currently translated at 95.5% (43 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ru/
2023-05-23 11:31:44 +02:00
Oleg
80cdd2f2d1 Translated using Weblate (Russian)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/ru/
2023-05-23 11:31:44 +02:00
Oleg
28ffc64af1 Translated using Weblate (Russian)
Currently translated at 89.6% (130 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ru/
2023-05-23 11:31:43 +02:00
Oleg
ad0476d99e Translated using Weblate (Russian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ru/
2023-05-23 11:31:43 +02:00
Oleg
bc2d1f587b Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ru/
2023-05-22 19:01:11 +02:00
Oleg
62f53e110e Translated using Weblate (Russian)
Currently translated at 97.6% (83 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ru/
2023-05-22 19:01:11 +02:00
Oleg
cf5e6dee39 Translated using Weblate (Russian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ru/
2023-05-22 19:01:10 +02:00
Oleg
8890dc30e8 Translated using Weblate (Russian)
Currently translated at 93.1% (109 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ru/
2023-05-22 19:01:10 +02:00
Oleg
35d44ffccc Translated using Weblate (Russian)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ru/
2023-05-22 19:01:09 +02:00
Oleg
b69280ec55 Translated using Weblate (Russian)
Currently translated at 98.1% (52 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ru/
2023-05-22 19:01:09 +02:00
Oleg
6459ee7ddb Translated using Weblate (Russian)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ru/
2023-05-22 19:01:08 +02:00
Oleg
3004f1e9ea Translated using Weblate (Russian)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ru/
2023-05-22 19:01:08 +02:00
Oleg
ab88c76596 Translated using Weblate (Russian)
Currently translated at 30.4% (14 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/ru/
2023-05-22 19:01:08 +02:00
Oleg
0e697e3c53 Translated using Weblate (Russian)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ru/
2023-05-22 19:01:07 +02:00
Oleg
75c61b3e49 Translated using Weblate (Russian)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/ru/
2023-05-22 19:00:59 +02:00
Oleg
cf45b25a3a Translated using Weblate (Russian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/ru/
2023-05-22 19:00:59 +02:00
Oleg
5347c4981b Translated using Weblate (Russian)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ru/
2023-05-22 19:00:59 +02:00
Oleg
383ffd2e73 Translated using Weblate (Russian)
Currently translated at 28.5% (2 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/ru/
2023-05-22 19:00:58 +02:00
Oleg
a981387e9f Translated using Weblate (Russian)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ru/
2023-05-22 19:00:58 +02:00
Oleg
90ad5ae115 Translated using Weblate (Russian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/ru/
2023-05-22 12:20:21 +02:00
jekkos
568678587e Revert compose file to v2 (#3754) 2023-05-07 15:12:59 +02:00
jekkos
eed0cd1ca0 Prepare rebase: move files to new folder structure 2023-05-07 15:10:27 +02:00
titusito
a312434b87 Update system_info.php
add php_Xml dependecie check
2023-04-22 21:43:36 +02:00
titusito
69b2c4c51c Update INSTALL.md
add php-xml to needed extensions
2023-04-22 21:08:07 +02:00
Aril Apria Susanto
f2faf1cf32 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/
2023-04-12 14:03:43 +02:00
Aril Apria Susanto
2c508f3fe5 Translated using Weblate (Indonesian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/id/
2023-04-12 14:03:43 +02:00
Aril Apria Susanto
20fad5890f 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/
2023-04-12 14:03:42 +02:00
Aril Apria Susanto
099d324d2e Translated using Weblate (Indonesian)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2023-04-12 14:03:42 +02:00
Aril Apria Susanto
2fe82484d7 Translated using Weblate (Indonesian)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/id/
2023-04-12 14:03:42 +02:00
Aril Apria Susanto
ea99d0234d 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/
2023-04-12 14:03:41 +02:00
WebShells
0f435621ad Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/en_GB/
2023-04-03 07:50:57 +02:00
WebShells
fda088d4f2 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/en_GB/
2023-04-03 07:50:56 +02:00
WebShells
d71c831a58 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/en_GB/
2023-04-03 07:50:56 +02:00
WebShells
fb40550756 Translated using Weblate (French)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/fr/
2023-04-03 07:50:56 +02:00
WebShells
bb2fc5e888 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/en_GB/
2023-04-03 07:50:55 +02:00
WebShells
d6a35c66f5 Translated using Weblate (French)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/fr/
2023-04-03 07:50:55 +02:00
WebShells
782438892e Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ar_EG/
2023-04-03 07:50:55 +02:00
WebShells
9d5d1ced07 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en_GB/
2023-04-03 07:50:54 +02:00
WebShells
beea0efee8 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/en_GB/
2023-04-03 07:50:54 +02:00
WebShells
f73740547b Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/en_GB/
2023-04-03 07:50:54 +02:00
WebShells
d125c8a5d7 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ar_LB/
2023-04-03 07:50:54 +02:00
WebShells
610fdf9213 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ar_EG/
2023-04-03 07:50:53 +02:00
FrancescoUK
21d41ae371 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2023-04-03 07:50:52 +02:00
WebShells
a35004f1a5 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2023-04-03 07:50:52 +02:00
WebShells
8c40242a4c Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en_GB/
2023-04-03 07:50:52 +02:00
WebShells
ca7ea81769 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ar_EG/
2023-04-03 07:50:51 +02:00
WebShells
05df1dae4b Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/en_GB/
2023-04-03 07:50:51 +02:00
WebShells
d5b4a2745e Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ar_EG/
2023-04-03 07:50:51 +02:00
WebShells
fd96bac495 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2023-04-03 07:50:51 +02:00
WebShells
52d1da53d0 Translated using Weblate (Lao)
Currently translated at 55.1% (16 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/lo/
2023-04-03 07:50:49 +02:00
WebShells
abf5bffeff Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/en_GB/
2023-04-03 07:50:49 +02:00
WebShells
a045296b77 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/en_GB/
2023-04-03 07:50:47 +02:00
WebShells
04fb87fd8e Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/en_GB/
2023-04-03 07:50:47 +02:00
WebShells
89d7fcc3ca Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/en_GB/
2023-04-03 07:50:47 +02:00
WebShells
51daf2b70e Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/en_GB/
2023-04-03 07:50:47 +02:00
WebShells
8a2f125c52 Translated using Weblate (French)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/fr/
2023-04-03 07:50:46 +02:00
WebShells
0f83096296 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/en_GB/
2023-04-03 07:50:46 +02:00
WebShells
6f0b35bb2c Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ar_EG/
2023-04-03 07:50:46 +02:00
BudsieBuds
003f68a681 Translated using Weblate (English)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en/
2023-04-03 07:50:46 +02:00
BudsieBuds
f696731b1d Translated using Weblate (English)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/en/
2023-04-03 07:50:45 +02:00
WebShells
d8ade4b023 Translated using Weblate (English)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2023-04-03 07:50:45 +02:00
BudsieBuds
36e3861894 Translated using Weblate (English)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2023-04-03 07:50:45 +02:00
WebShells
1657510ca2 Translated using Weblate (English)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en/
2023-04-03 07:50:44 +02:00
WebShells
7215747000 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ar_LB/
2023-03-29 11:49:14 +02:00
WebShells
71bfb4681b Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ar_LB/
2023-03-29 11:49:14 +02:00
WebShells
a98fa2b166 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ar_EG/
2023-03-29 11:49:14 +02:00
WebShells
922d8491da Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ar_EG/
2023-03-29 11:49:14 +02:00
WebShells
b7b8c314c7 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ar_LB/
2023-03-29 11:49:13 +02:00
WebShells
580f04dea4 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ar_EG/
2023-03-29 11:49:13 +02:00
WebShells
3422a15fb1 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ar_LB/
2023-03-29 11:49:13 +02:00
WebShells
3392c5357f Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ar_EG/
2023-03-29 11:49:13 +02:00
WebShells
dd329840dc Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ar_EG/
2023-03-29 11:49:12 +02:00
WebShells
a79d553d5c Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ar_EG/
2023-03-29 11:49:12 +02:00
WebShells
1eead53cd7 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ar_EG/
2023-03-29 11:49:12 +02:00
WebShells
8a8235c1e5 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ar_EG/
2023-03-29 11:49:12 +02:00
WebShells
c28a7fba63 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ar_EG/
2023-03-29 11:49:12 +02:00
WebShells
ecbb00fb1b Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/ar_LB/
2023-03-29 11:49:11 +02:00
WebShells
08f6a1a151 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ar_LB/
2023-03-29 11:49:11 +02:00
WebShells
f9a6d8ce77 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ar_EG/
2023-03-29 11:49:11 +02:00
WebShells
253e76b21d Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ar_LB/
2023-03-29 11:49:10 +02:00
WebShells
312b965c66 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ar_EG/
2023-03-29 11:49:10 +02:00
WebShells
8bdbd77422 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ar_LB/
2023-03-29 11:49:10 +02:00
WebShells
af286f00b9 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/ar_LB/
2023-03-29 11:49:10 +02:00
WebShells
dac42b1630 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ar_LB/
2023-03-29 11:49:09 +02:00
WebShells
3a92ec0da7 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ar_LB/
2023-03-29 11:49:09 +02:00
WebShells
3766a90540 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ar_EG/
2023-03-29 11:49:09 +02:00
WebShells
0d2affadc5 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ar_LB/
2023-03-29 11:49:09 +02:00
WebShells
e5b8a2063f Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ar_LB/
2023-03-29 11:49:08 +02:00
WebShells
6556e40aff Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ar_LB/
2023-03-29 11:49:08 +02:00
WebShells
3a0b0af047 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ar_EG/
2023-03-29 11:49:08 +02:00
WebShells
6d3eee6bea Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/ar_LB/
2023-03-29 11:49:08 +02:00
Pascual Marcone
cfdc3cf9a8 Translated using Weblate (Spanish)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2023-03-20 02:42:47 +01:00
kampvogn
5ecb68a384 Translated using Weblate (Danish)
Currently translated at 20.3% (45 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/da/
2023-03-07 18:54:03 +01:00
dependabot[bot]
3c4dff5ac1 Bump dompdf/dompdf from 2.0.2 to 2.0.3 (#3653)
Bumps [dompdf/dompdf](https://github.com/dompdf/dompdf) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/dompdf/dompdf/releases)
- [Commits](https://github.com/dompdf/dompdf/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: dompdf/dompdf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-08 00:40:41 +04:00
dependabot[bot]
eacd7d1f07 Bump mout and grunt-wiredep (#3651)
Bumps [mout](https://github.com/mout/mout) to 1.2.4 and updates ancestor dependency [grunt-wiredep](https://github.com/stephenplusplus/grunt-wiredep). These dependencies need to be updated together.


Updates `mout` from 0.9.1 to 1.2.4
- [Release notes](https://github.com/mout/mout/releases)
- [Changelog](https://github.com/mout/mout/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mout/mout/compare/v0.9.1...v1.2.4)

Updates `grunt-wiredep` from 2.0.0 to 3.0.1
- [Release notes](https://github.com/stephenplusplus/grunt-wiredep/releases)
- [Commits](https://github.com/stephenplusplus/grunt-wiredep/compare/v2.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: mout
  dependency-type: indirect
- dependency-name: grunt-wiredep
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 09:17:22 +04:00
dependabot[bot]
702d0c773c Bump http-cache-semantics and npm (#3645)
Removes [http-cache-semantics](https://github.com/kornelski/http-cache-semantics). It's no longer used after updating ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together.


Removes `http-cache-semantics`

Updates `npm` from 6.14.15 to 9.4.1
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.14.15...v9.4.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
- dependency-name: npm
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 06:48:46 +04:00
dependabot[bot]
56994b1b85 Bump dompdf/dompdf from 0.8.6 to 2.0.2 (#3643)
Bumps [dompdf/dompdf](https://github.com/dompdf/dompdf) from 0.8.6 to 2.0.2.
- [Release notes](https://github.com/dompdf/dompdf/releases)
- [Commits](https://github.com/dompdf/dompdf/compare/v0.8.6...v2.0.2)

---
updated-dependencies:
- dependency-name: dompdf/dompdf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 06:43:27 +04:00
dependabot[bot]
6c7ff029d3 Bump debug and grunt-contrib-watch (#3625)
Bumps [debug](https://github.com/debug-js/debug) to 3.2.7 and updates ancestor dependency [grunt-contrib-watch](https://github.com/gruntjs/grunt-contrib-watch). These dependencies need to be updated together.


Updates `debug` from 0.7.4 to 3.2.7
- [Release notes](https://github.com/debug-js/debug/releases)
- [Commits](https://github.com/debug-js/debug/compare/0.7.4...3.2.7)

Updates `grunt-contrib-watch` from 0.5.3 to 1.1.0
- [Release notes](https://github.com/gruntjs/grunt-contrib-watch/releases)
- [Changelog](https://github.com/gruntjs/grunt-contrib-watch/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt-contrib-watch/compare/v0.5.3...v1.1.0)

---
updated-dependencies:
- dependency-name: debug
  dependency-type: indirect
- dependency-name: grunt-contrib-watch
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-06 06:41:44 +04:00
Clifford Cheefoon
57662183f9 update readme 2023-01-31 22:51:42 +01:00
objecttothis
98eff67702 Translated using Weblate (Azerbaijani)
Currently translated at 96.0% (314 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/az/
2023-01-31 01:12:13 +01:00
Boors96
1547663439 Translated using Weblate (Arabic (ar_LB))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ar_LB/
2023-01-08 16:11:12 +01:00
jekkos
babe06132c Update README.md 2022-11-28 23:04:10 +01:00
jekkos
db9da86df5 Update version badge 2022-11-27 00:15:17 +01:00
jekkos
b44993f2fa Fix logout race condition (#3578) 2022-10-18 23:00:50 +02:00
khao_lek
3c32944ce9 Translated using Weblate (Thai)
Currently translated at 99.0% (219 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-10-15 05:16:34 +02:00
Nicolás Gómez Solano
8d8487a637 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/
2022-10-08 06:20:07 +02:00
Aamir Shahzad
b449c10f0d Updated my info 2022-10-04 22:32:14 +02:00
Aamir Shahzad
a91f21ca05 Timezone added for Pakistan 2022-10-04 22:32:14 +02:00
Aamir Shahzad
a501dc9b99 Fix closing parenthesis, otherwise ENVIRONMENT always resulted true & path added as tests/ 2022-10-04 22:32:14 +02:00
jekkos
06ca9e9f74 Update DO offer 2022-10-04 14:41:21 +02:00
Aril Apria Susanto
56bb57ba8a 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/
2022-09-26 09:50:58 +02:00
Cheabhak Ezecom
20dad261fd Translated using Weblate (Central Khmer)
Currently translated at 43.8% (97 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/km/
2022-09-14 16:53:36 +02:00
Cheabhak Ezecom
6c60a6aa78 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/km/
2022-09-13 14:41:01 +02:00
Cheabhak Ezecom
e48f408635 Translated using Weblate (Central Khmer)
Currently translated at 97.4% (114 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/km/
2022-09-13 14:41:01 +02:00
Cheabhak Ezecom
87af7df2a5 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/km/
2022-09-13 14:41:00 +02:00
Cheabhak Ezecom
67aadb48ae Translated using Weblate (Central Khmer)
Currently translated at 31.6% (70 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/km/
2022-09-13 14:41:00 +02:00
Cheabhak Ezecom
5248e964ff Translated using Weblate (Central Khmer)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/km/
2022-09-13 14:40:59 +02:00
Cheabhak Ezecom
fd474f548e Translated using Weblate (Central Khmer)
Currently translated at 37.9% (11 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/km/
2022-09-12 22:03:30 +02:00
robbytriadi
78d2ca72b2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/id/
2022-09-10 12:37:34 +02:00
robbytriadi
ed7613b7da Translated using Weblate (Indonesian)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2022-09-10 12:37:33 +02:00
Cheabhak Ezecom
0b2198e229 Translated using Weblate (Central Khmer)
Currently translated at 65.0% (13 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/km/
2022-09-09 10:43:01 +02:00
Cheabhak Ezecom
5f5fe5eb47 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/km/
2022-09-09 10:43:01 +02:00
Cheabhak Ezecom
1da81e95b3 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/km/
2022-09-09 10:43:01 +02:00
Cheabhak Ezecom
c45e164a83 Translated using Weblate (Central Khmer)
Currently translated at 95.2% (81 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/km/
2022-09-06 09:56:48 +02:00
Cheabhak Ezecom
2bf9effe1d Translated using Weblate (Central Khmer)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/km/
2022-09-06 09:56:48 +02:00
Kasper
bd4ec13b9a Translated using Weblate (Danish)
Currently translated at 51.7% (75 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/da/
2022-09-05 00:07:06 +02:00
Aril Apria Susanto
44651de42b 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/
2022-08-11 18:03:57 +02:00
jekkos
ffe49278fc Bump to 3.3.8 2022-08-03 08:50:41 +02:00
Nguyen Tuan Anh
2eb6d85818 Translated using Weblate (Vietnamese)
Currently translated at 99.0% (219 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/vi/
2022-08-02 03:21:05 +02:00
Johntini
d5e371d0ef 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/
2022-07-29 02:30:19 +02:00
Johntini
306cfbef7c 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/
2022-07-29 02:30:19 +02:00
Johntini
9ce55583f5 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/
2022-07-29 02:30:18 +02:00
Johntini
f2dd1131a2 Translated using Weblate (Spanish)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es/
2022-07-29 02:30:16 +02:00
Johntini
4df6d708dc 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/
2022-07-29 02:30:16 +02:00
Johntini
dbf2ee711e Translated using Weblate (Spanish)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2022-07-29 02:30:15 +02:00
Johntini
aff43196eb Translated using Weblate (Spanish)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/es/
2022-07-29 02:30:14 +02:00
Johntini
8d8d9b7b54 Translated using Weblate (Spanish)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/es/
2022-07-29 02:30:14 +02:00
Johntini
76a96503da 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/
2022-07-28 13:05:40 +02:00
Johntini
6cfb6abbf9 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/
2022-07-28 13:05:37 +02:00
khao_lek
b864e684b6 Translated using Weblate (Thai)
Currently translated at 97.7% (44 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/th/
2022-07-28 13:05:37 +02:00
Ricardo Vargas
1516006646 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/
2022-07-28 13:05:37 +02:00
Johntini
86757cb11a 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/
2022-07-28 13:05:36 +02:00
Johntini
96abcf6ba9 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es_MX/
2022-07-28 05:09:28 +02:00
Johntini
4ae8505a19 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/
2022-07-28 05:09:27 +02:00
Johntini
5b6ada58d4 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/es_MX/
2022-07-28 05:09:25 +02:00
Val Thi
d2301dbfde Translated using Weblate (French)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/fr/
2022-07-14 21:48:12 +02:00
Val Thi
0ec9a85990 Translated using Weblate (French)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/fr/
2022-07-14 21:48:11 +02:00
Val Thi
6181953039 Translated using Weblate (French)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/fr/
2022-07-14 21:48:11 +02:00
Val Thi
d81d0b2fc5 Translated using Weblate (French)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/fr/
2022-07-14 21:48:10 +02:00
Val Thi
b37cc5ee8b Translated using Weblate (French)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/fr/
2022-07-14 21:48:09 +02:00
Val Thi
5daed8cc84 Translated using Weblate (French)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/fr/
2022-07-14 21:48:09 +02:00
Val Thi
8ea4869f4d Translated using Weblate (French)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/fr/
2022-07-14 07:25:56 +02:00
Val Thi
2b3818c5da Translated using Weblate (French)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/fr/
2022-07-14 07:25:56 +02:00
Val Thi
1bb96f6dda Translated using Weblate (French)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/fr/
2022-07-14 07:25:56 +02:00
Val Thi
f3f1d0e28c Translated using Weblate (French)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/fr/
2022-07-14 07:25:56 +02:00
Val Thi
05229bc2f6 Translated using Weblate (French)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/fr/
2022-07-14 07:25:55 +02:00
Val Thi
fbb4739673 Translated using Weblate (French)
Currently translated at 92.9% (79 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/fr/
2022-07-14 07:25:55 +02:00
Val Thi
90186bc667 Translated using Weblate (French)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/fr/
2022-07-14 07:25:55 +02:00
Val Thi
bd9d2c00a7 Translated using Weblate (French)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/fr/
2022-07-14 07:25:55 +02:00
Val Thi
e91fcd8bb9 Translated using Weblate (French)
Currently translated at 88.0% (288 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/fr/
2022-07-14 07:25:55 +02:00
Val Thi
d44dbb8760 Translated using Weblate (French)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/fr/
2022-07-14 07:25:54 +02:00
Val Thi
1649b81038 Translated using Weblate (French)
Currently translated at 93.1% (109 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/fr/
2022-07-14 07:25:54 +02:00
Val Thi
16ded77931 Translated using Weblate (French)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/fr/
2022-07-14 07:25:54 +02:00
Val Thi
f8f186ca2e Translated using Weblate (French)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/fr/
2022-07-14 07:25:53 +02:00
Val Thi
94bd295188 Translated using Weblate (French)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/fr/
2022-07-14 07:25:53 +02:00
Val Thi
0aa2dd3f6c Translated using Weblate (French)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/fr/
2022-07-14 07:25:53 +02:00
Val Thi
cbed9e4882 Translated using Weblate (French)
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/fr/
2022-07-14 07:25:52 +02:00
Val Thi
31fa79e27a Translated using Weblate (French)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/fr/
2022-07-14 07:25:52 +02:00
Val Thi
7f1411edbc Translated using Weblate (French)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/fr/
2022-07-14 02:37:27 +02:00
Val Thi
2e41975c4e Translated using Weblate (French)
Currently translated at 92.1% (35 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/fr/
2022-07-14 02:37:27 +02:00
Val Thi
1740a69e7c Translated using Weblate (French)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/fr/
2022-07-14 02:37:27 +02:00
Val Thi
0544e13211 Translated using Weblate (French)
Currently translated at 84.8% (123 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/fr/
2022-07-14 02:37:27 +02:00
Val Thi
2da2895062 Translated using Weblate (French)
Currently translated at 90.9% (10 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/fr/
2022-07-14 02:37:27 +02:00
Val Thi
f11f4eeb2d Translated using Weblate (French)
Currently translated at 95.0% (19 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/fr/
2022-07-14 02:37:27 +02:00
Val Thi
71efb0262f Translated using Weblate (French)
Currently translated at 96.5% (28 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/fr/
2022-07-14 02:37:27 +02:00
jekkos
f061a83317 Substract refund from total rewards (#3536) 2022-06-30 14:22:26 +02:00
jekkos
e09875e5f3 Use POST to prevent CSRF logo attack (#3533) 2022-06-30 00:25:35 +02:00
Josuw
6a244d1beb Translated using Weblate (Spanish (Mexico))
Currently translated at 21.3% (25 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es_MX/
2022-06-24 01:04:04 +02:00
Josuw
5695b74f1b 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/
2022-06-24 01:04:04 +02:00
jekkos
77393d1d21 Add zipfile to releases (#3519) 2022-06-16 10:53:30 +02:00
Dzung Do
b366641fbc Translated using Weblate (Vietnamese)
Currently translated at 90.9% (10 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/vi/
2022-06-03 05:54:03 +02:00
Dzung Do
bde0dc0b7c Translated using Weblate (Vietnamese)
Currently translated at 34.7% (16 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/vi/
2022-06-03 05:54:03 +02:00
Dzung Do
f99d0dca8d Translated using Weblate (Vietnamese)
Currently translated at 49.3% (39 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/vi/
2022-06-03 05:54:03 +02:00
Dzung Do
24f8c94c49 Translated using Weblate (Vietnamese)
Currently translated at 91.7% (78 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/vi/
2022-06-03 05:54:03 +02:00
dependabot[bot]
7e3d048bfc Bump grunt from 1.5.2 to 1.5.3
Bumps [grunt](https://github.com/gruntjs/grunt) from 1.5.2 to 1.5.3.
- [Release notes](https://github.com/gruntjs/grunt/releases)
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt/compare/v1.5.2...v1.5.3)

---
updated-dependencies:
- dependency-name: grunt
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-26 09:47:02 +02:00
FastAct
122a827645 Translated using Weblate (Flemish)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/nl_BE/
2022-05-25 14:01:36 +02:00
FastAct
427c4c7d3d Translated using Weblate (Flemish)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/nl_BE/
2022-05-25 14:01:36 +02:00
FastAct
6ca1cb739f Translated using Weblate (Flemish)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/nl_BE/
2022-05-25 14:01:36 +02:00
FastAct
070d989548 Translated using Weblate (Flemish)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/nl_BE/
2022-05-25 14:01:36 +02:00
FastAct
cd0132c22c Translated using Weblate (Flemish)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl_BE/
2022-05-25 14:01:35 +02:00
FastAct
9f8cf48467 Translated using Weblate (Flemish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl_BE/
2022-05-25 14:01:35 +02:00
FastAct
206b56333a Translated using Weblate (Flemish)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/nl_BE/
2022-05-25 14:01:35 +02:00
FastAct
cf59d6779e Translated using Weblate (Flemish)
Currently translated at 100.0% (327 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl_BE/
2022-05-25 14:01:35 +02:00
FastAct
68ed73ab3b Translated using Weblate (Flemish)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/nl_BE/
2022-05-25 14:01:34 +02:00
FastAct
e5236dd510 Translated using Weblate (Flemish)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl_BE/
2022-05-25 14:01:34 +02:00
FastAct
d1f8c15f3e Translated using Weblate (Flemish)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/nl_BE/
2022-05-25 14:01:33 +02:00
FastAct
6810f613a0 Translated using Weblate (Flemish)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/nl_BE/
2022-05-25 14:01:32 +02:00
FastAct
3980f248ed Translated using Weblate (Flemish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/nl_BE/
2022-05-25 14:01:32 +02:00
Natig Asadov
bf2cf416db Translated using Weblate (Azerbaijani)
Currently translated at 99.5% (220 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/az/
2022-05-18 04:36:03 +02:00
knnhsn
772d42490b Translated using Weblate (Azerbaijani)
Currently translated at 97.8% (46 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/az/
2022-05-16 12:43:12 +02:00
Natig Asadov
c580e4cdee Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/az/
2022-05-13 05:44:30 +02:00
Natig Asadov
efe4becfab Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/az/
2022-05-13 05:44:30 +02:00
Natig Asadov
d1c25991fe Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/az/
2022-05-13 05:44:29 +02:00
khao_lek
528ebf8e20 Translated using Weblate (Thai)
Currently translated at 99.0% (219 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-05-10 21:47:53 +02:00
jekkos
4f3226b1ba Add item_pic to escape ignore list (#3379) 2022-05-03 11:26:34 +02:00
jekkos
82ae2e0931 Enable search in detailed reports (#3495) 2022-05-01 11:59:35 +02:00
chunter2
e4ca111977 Add cost price column to item summary report (#3495) 2022-04-30 01:16:32 +02:00
jekkos
31944f491c Enable search in reports (#3491) 2022-04-29 21:30:23 +02:00
dependabot[bot]
19342e4d6f Bump simple-get from 3.1.0 to 3.1.1
Bumps [simple-get](https://github.com/feross/simple-get) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/feross/simple-get/releases)
- [Commits](https://github.com/feross/simple-get/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: simple-get
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-29 18:36:35 +02:00
jekkos
c8a83fbb57 Update unstable build URL
NPM package uploads are working again. Update the URL in the documentation.
2022-04-29 15:26:29 +02:00
jekkos
c3d06fc6f5 Remove markup last row expenses (#3779) 2022-04-29 15:17:53 +02:00
jekkos
553eae19a3 Add version string echo 2022-04-29 15:16:32 +02:00
jekkos
63f282a8b5 3.3.7-master-564465 2022-04-29 15:16:32 +02:00
jekkos
cfd5973f0e Add npm version --from-git
Rotate npm token
2022-04-29 15:16:32 +02:00
dependabot[bot]
e44bc3e674 Bump grunt from 1.4.1 to 1.5.2
Bumps [grunt](https://github.com/gruntjs/grunt) from 1.4.1 to 1.5.2.
- [Release notes](https://github.com/gruntjs/grunt/releases)
- [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG)
- [Commits](https://github.com/gruntjs/grunt/compare/v1.4.1...v1.5.2)

---
updated-dependencies:
- dependency-name: grunt
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-29 15:16:32 +02:00
Casper Hsiao
d6b66d9fe2 Translated using Weblate (Chinese (Traditional))
Currently translated at 95.4% (211 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/zh_Hant/
2022-04-27 20:32:20 +02:00
jekkos
a6b4f826c5 Update changelog 2022-04-26 23:49:58 +02:00
jekkos
d26498d1ad Do not escape email and phone_numbers (#3379) 2022-04-26 23:49:58 +02:00
jekkos
5897130e0a Fix sales last row style (#3379) 2022-04-25 23:32:50 +02:00
khao_lek
a0c3a532aa Translated using Weblate (Thai)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-04-19 19:36:33 +02:00
jekkos
9331d82313 Add escape flag for XSS mitigation (#3379) 2022-04-14 09:28:12 +02:00
khao_lek
3e60b74c4c Translated using Weblate (Thai)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-04-07 09:45:36 +02:00
jekkos
4a591e89b6 Mount database.sql from docker volume (#3352) 2022-04-05 21:52:52 +02:00
jekkos
8c1977b1ec Fix transaction summary for serialized items (#3445) 2022-04-01 08:56:15 +02:00
Aril Apria Susanto
4a8aaf8ef0 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/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
c4b8f8654d 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/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
cb3d84f1bf 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/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
166d2b586c 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/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
ca792b44cd Translated using Weblate (Indonesian)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
4825248a1a Translated using Weblate (Indonesian)
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
17973151e4 Translated using Weblate (Indonesian)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/id/
2022-04-01 07:34:24 +02:00
Aril Apria Susanto
5b9301567c 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/
2022-04-01 07:34:24 +02:00
jekkos
6028bc408d Run build if git tag is added 2022-03-29 22:30:59 +02:00
khao_lek
5974d01453 Translated using Weblate (Thai)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-03-29 19:13:13 +02:00
khao_lek
c83db2f5c7 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/
2022-03-29 19:12:49 +02:00
khao_lek
8e24570cfb Translated using Weblate (Thai)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2022-03-29 09:00:18 +02:00
khao_lek
fdf49e9038 Translated using Weblate (Thai)
Currently translated at 99.0% (219 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-03-29 09:00:18 +02:00
khao_lek
559b354925 Translated using Weblate (Thai)
Currently translated at 97.7% (44 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/th/
2022-03-29 09:00:17 +02:00
khao_lek
af864aefd5 Translated using Weblate (Thai)
Currently translated at 99.6% (326 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2022-03-29 09:00:15 +02:00
ALink3133
5e55952ce8 Translated using Weblate (Thai)
Currently translated at 97.2% (215 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-02-23 10:46:51 +01:00
ALink3133
8e1a8fe480 Translated using Weblate (Thai)
Currently translated at 90.9% (10 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2022-02-23 10:46:51 +01:00
ALink3133
99e51bcdf9 Translated using Weblate (Thai)
Currently translated at 93.3% (42 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/th/
2022-02-23 10:46:51 +01:00
Mats Pålsson
48217895bb Translated using Weblate (Swedish)
Currently translated at 95.2% (81 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2022-02-18 11:26:14 +01:00
Steve Ireland
96c59245e3 Change register to show anticipated invoice number. (#3408) 2022-01-28 14:35:22 -05:00
Elio Enzo Papais
9cf4e6e07b Translated using Weblate (Italian)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-27 18:28:34 +01:00
Elio Enzo Papais
bb73d48d37 Translated using Weblate (Italian)
Currently translated at 93.6% (44 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/it/
2022-01-27 18:28:34 +01:00
Elio Enzo Papais
2af5642fe7 Translated using Weblate (Italian)
Currently translated at 0.0% (0 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/it/
2022-01-27 18:28:34 +01:00
Elio Enzo Papais
c1207b64df Translated using Weblate (Italian)
Currently translated at 97.6% (83 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
5e02f0531a Translated using Weblate (Italian)
Currently translated at 94.3% (50 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
bea49e6eeb Translated using Weblate (Italian)
Currently translated at 96.3% (53 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
a7772f3e1b Translated using Weblate (Italian)
Currently translated at 93.1% (109 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/it/
2022-01-27 18:28:33 +01:00
Elio Enzo Papais
e6072ee9fa Translated using Weblate (Italian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/it/
2022-01-27 05:34:23 +01:00
Elio Enzo Papais
dd24a3c8d0 Translated using Weblate (Italian)
Currently translated at 95.7% (112 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/it/
2022-01-27 05:34:23 +01:00
Elio Enzo Papais
7857206999 Translated using Weblate (Italian)
Currently translated at 100.0% (46 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/it/
2022-01-27 05:34:22 +01:00
Elio Enzo Papais
4c642bd8d3 Translated using Weblate (Italian)
Currently translated at 98.7% (323 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/it/
2022-01-27 05:34:22 +01:00
Elio Enzo Papais
0ec68c8b99 Translated using Weblate (Italian)
Currently translated at 98.6% (218 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-27 05:34:22 +01:00
Elio Enzo Papais
0e2e808635 Translated using Weblate (Italian)
Currently translated at 97.9% (142 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/it/
2022-01-26 03:10:19 +01:00
Elio Enzo Papais
4f81d602ea Translated using Weblate (Italian)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/it/
2022-01-26 03:10:19 +01:00
Elio Enzo Papais
db14ea80e2 Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/it/
2022-01-26 03:10:19 +01:00
Elio Enzo Papais
09d0005724 Translated using Weblate (Italian)
Currently translated at 98.1% (217 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-26 03:10:18 +01:00
Elio Enzo Papais
9bb48cee59 Translated using Weblate (Italian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/it/
2022-01-26 03:10:18 +01:00
Elio Enzo Papais
38e718774f Translated using Weblate (Italian)
Currently translated at 92.3% (302 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/it/
2022-01-26 03:10:18 +01:00
Elio Enzo Papais
1470cce981 Translated using Weblate (Italian)
Currently translated at 88.0% (288 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
ff55e966ce Translated using Weblate (Italian)
Currently translated at 91.4% (202 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
de4ea6299f Translated using Weblate (Italian)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
d3906cbbc4 Translated using Weblate (Italian)
Currently translated at 100.0% (38 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
8df3735bbf Translated using Weblate (Italian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
85b9048041 Translated using Weblate (Italian)
Currently translated at 88.8% (104 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
7f7de97920 Translated using Weblate (Italian)
Currently translated at 90.9% (10 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
912c035e27 Translated using Weblate (Italian)
Currently translated at 84.8% (123 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
bd1baad7f1 Translated using Weblate (Italian)
Currently translated at 90.5% (77 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
d61d1ad878 Translated using Weblate (Italian)
Currently translated at 73.9% (34 of 46 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
d14e21cc68 Translated using Weblate (Italian)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/it/
2022-01-25 00:16:21 +01:00
Elio Enzo Papais
780db269de Translated using Weblate (Italian)
Currently translated at 64.5% (51 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/it/
2022-01-25 00:16:21 +01:00
jekkos
669a5b33f3 Bump to 3.3.7 2022-01-23 23:01:32 +01:00
khao_lek
3d4dc0fc56 Translated using Weblate (Thai)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2022-01-17 19:38:10 +01:00
khao_lek
7a4e16422e Translated using Weblate (Thai)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/th/
2022-01-17 19:38:10 +01:00
khao_lek
0dc7da8a3b Translated using Weblate (Thai)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/th/
2022-01-17 19:38:09 +01:00
khao_lek
ba66e8d8c7 Translated using Weblate (Thai)
Currently translated at 100.0% (117 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/th/
2022-01-17 19:38:08 +01:00
Nicolas Hurtubise
5eea70dca4 Translated using Weblate (French)
Currently translated at 94.1% (208 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/fr/
2022-01-16 09:14:51 +01:00
Nicolas Hurtubise
f7bbc7c634 Translated using Weblate (French)
Currently translated at 87.5% (7 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/fr/
2022-01-16 09:14:51 +01:00
Nicolas Hurtubise
0df712fbd7 Translated using Weblate (French)
Currently translated at 93.6% (207 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/fr/
2022-01-14 18:53:46 +01:00
Nicolas Hurtubise
511c6238a8 Translated using Weblate (English)
Currently translated at 100.0% (221 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2022-01-14 18:53:46 +01:00
jekkos
730ec1292d Use anchor in supplier regex (#3402)
Adding a unit test to check the url patterns allowed/disallowed would be a good idea. I should practice what I preach.
2022-01-12 00:34:16 +01:00
jekkos
6e1db1458b Rotate npm token (#2834) 2022-01-11 23:32:13 +01:00
jekkos
5c425febfb Use https for git-script-link-tags 2022-01-11 23:31:11 +01:00
jekkos
81087fc093 Update link to unstable builds (#2834) 2022-01-10 12:25:19 +01:00
jekkos
0231c0bc4f Use git tag in case of release (#2834) 2022-01-09 18:13:18 +01:00
jekkos
bece3b5fea Enable npm package uploads for unstable (#2834) 2022-01-08 12:27:21 +01:00
jekkos
b309b631f2 Update CHANGELOG.md 2022-01-08 01:11:16 +01:00
jacekz123
f3e41a4535 Translated using Weblate (Polish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/pl/
2022-01-07 13:20:30 +01:00
jacekz123
5675aeed12 Translated using Weblate (Polish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/pl/
2022-01-06 23:54:53 +01:00
jacekz123
2c331b6244 Translated using Weblate (Polish)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/pl/
2022-01-06 23:54:53 +01:00
jacekz123
3841502704 Translated using Weblate (Polish)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/pl/
2022-01-06 23:54:53 +01:00
jacekz123
e94af0ddbc Translated using Weblate (Polish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/pl/
2022-01-06 23:54:53 +01:00
jacekz123
11a05501c5 Translated using Weblate (Polish)
Currently translated at 2.9% (2 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/pl/
2022-01-06 23:54:53 +01:00
jacekz123
0262f644af Translated using Weblate (Polish)
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/pl/
2022-01-06 23:54:53 +01:00
jacekz123
67881c172f Translated using Weblate (Polish)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/pl/
2022-01-06 23:54:53 +01:00
jekkos
40565ea811 Add default user/password in testing (#3374) 2022-01-06 23:26:10 +01:00
jekkos
9332d16ec4 Fix logout csrf 2022-01-01 22:32:36 +01:00
FrancescoUK
bb0e771542 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (85 of 85 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-12-13 03:24:26 +01:00
Cedo
24cb0247d5 Translated using Weblate (Bosnian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/bs/
2021-12-04 21:30:21 +01:00
Cedo
e22608ba61 Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-12-04 18:37:53 +01:00
Cedo
ac76ab290b Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-12-04 18:37:53 +01:00
Cedo
07fd9b4c5c Translated using Weblate (Bosnian)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/bs/
2021-12-04 18:37:53 +01:00
programmer111213
8c432c00b0 Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ru/
2021-11-27 09:16:03 +01:00
programmer111213
c3cfed5cbf Translated using Weblate (Russian)
Currently translated at 97.3% (37 of 38 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/ru/
2021-11-22 16:41:03 +01:00
programmer111213
3dbd39058f Translated using Weblate (Russian)
Currently translated at 85.9% (190 of 221 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ru/
2021-11-22 16:41:02 +01:00
programmer111213
df932b8870 Translated using Weblate (Russian)
Currently translated at 25.0% (3 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/ru/
2021-11-22 16:41:02 +01:00
programmer111213
13920e18ad Translated using Weblate (Russian)
Currently translated at 96.3% (53 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ru/
2021-11-22 16:41:02 +01:00
MushlihTechFoundation
7105013c5f Translated using Weblate (Indonesian)
Currently translated at 97.4% (75 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2021-11-20 00:36:48 +01:00
MushlihTechFoundation
01a9810a0c Translated using Weblate (Indonesian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/id/
2021-11-20 00:36:48 +01:00
jekkos
0618ff47fd Update ISSUE_TEMPLATE.md 2021-11-16 22:08:49 +01:00
Cedo
77eb5e4da3 Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-11-16 05:31:35 +01:00
Cedo
c4dfef10f7 Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bs/
2021-11-16 05:31:35 +01:00
Cedo
f3056c155a Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-11-16 05:31:34 +01:00
Cedo
4a3ac37f22 Translated using Weblate (Bosnian)
Currently translated at 100.0% (302 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/bs/
2021-11-16 03:08:25 +01:00
Cedo
4f07754071 Translated using Weblate (Bosnian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/bs/
2021-11-16 03:08:24 +01:00
Cedo
80e5d94b66 Translated using Weblate (Bosnian)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/bs/
2021-11-16 03:08:24 +01:00
Cedo
ef75301b65 Translated using Weblate (Bosnian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/bs/
2021-11-16 03:08:24 +01:00
Cedo
4a05748e67 Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-11-15 02:14:46 +01:00
Cedo
59a1725501 Translated using Weblate (Bosnian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/bs/
2021-11-15 02:14:46 +01:00
Cedo
dd21356b81 Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-11-15 02:14:45 +01:00
BudsieBuds
65726930bc Translated using Weblate (Dutch)
Currently translated at 94.8% (73 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-11-03 18:16:36 +01:00
crls12opazo
cdeda755fc Translated using Weblate (Spanish)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2021-11-01 16:08:28 +01:00
Cedo
b5d0399205 Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bs/
2021-10-31 12:26:05 +01:00
Cedo
871310a83f Translated using Weblate (Bosnian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/bs/
2021-10-31 12:26:05 +01:00
Cedo
ba4be2fca1 Translated using Weblate (Bosnian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/bs/
2021-10-31 12:26:05 +01:00
Cedo
4d506fec09 Translated using Weblate (Bosnian)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/bs/
2021-10-31 12:26:05 +01:00
Cedo
a25f9a94ce Translated using Weblate (Bosnian)
Currently translated at 100.0% (140 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-10-31 10:37:02 +01:00
Cedo
594b376720 Translated using Weblate (Bosnian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/bs/
2021-10-31 10:37:01 +01:00
Cedo
f8c8a5874a Translated using Weblate (Bosnian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/bs/
2021-10-31 10:37:01 +01:00
Cedo
b8ff4d9886 Translated using Weblate (Bosnian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/bs/
2021-10-31 10:37:01 +01:00
Cedo
0576cd5bc5 Translated using Weblate (Bosnian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/bs/
2021-10-31 10:37:00 +01:00
Cedo
5fe631c188 Translated using Weblate (Bosnian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/bs/
2021-10-31 08:59:56 +01:00
Cedo
b9284a7abd Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bs/
2021-10-31 08:59:56 +01:00
Cedo
256c83c20f Translated using Weblate (Bosnian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/bs/
2021-10-31 08:59:55 +01:00
Cedo
da0263c3d7 Translated using Weblate (Bosnian)
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/bs/
2021-10-31 08:59:55 +01:00
Cedo
c9716a890a Translated using Weblate (Bosnian)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/bs/
2021-10-31 08:59:55 +01:00
Cedo
b9a75c0be6 Translated using Weblate (Bosnian)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/bs/
2021-10-31 08:59:55 +01:00
Cedo
0b5453926e Translated using Weblate (Bosnian)
Currently translated at 100.0% (302 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/bs/
2021-10-31 08:59:54 +01:00
Cedo
bfd8e2b727 Translated using Weblate (Bosnian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/bs/
2021-10-31 08:59:53 +01:00
Cedo
11bf7ce3ed Translated using Weblate (Bosnian)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/bs/
2021-10-31 08:59:53 +01:00
Cedo
566d1267fd Translated using Weblate (Bosnian)
Currently translated at 97.8% (137 of 140 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/bs/
2021-10-31 00:37:58 +02:00
programmer111213
1b035cdf8a Translated using Weblate (Russian)
Currently translated at 87.2% (157 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ru/
2021-10-21 17:32:53 +02:00
programmer111213
17fd336ecd Translated using Weblate (Russian)
Currently translated at 80.7% (42 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ru/
2021-10-21 17:32:53 +02:00
programmer111213
d225d9057c Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/ru/
2021-10-21 17:32:53 +02:00
programmer111213
cfac498232 Translated using Weblate (Russian)
Currently translated at 92.2% (71 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ru/
2021-10-21 17:32:53 +02:00
BudsieBuds
b936306b50 Combine dependencies info, update npm packages
Combined the package.md and composer.md to DEVELOPMENT.md. Updated bootstrap, bootswatch, and grunt-bower packages to newest versions.
2021-10-20 22:32:02 +02:00
BudsieBuds
33cb3fa3f9 Text improvements
Improved some of the non-trivial files.
2021-10-20 22:32:02 +02:00
jekkos
caaa26f9ba Bump to 3.3.6 2021-10-19 23:28:01 +02:00
jekkos
bbac91f421 Sync language files (#2554) 2021-10-19 23:00:00 +02:00
WebShells
6f8b877bd9 Keyboard Shortcuts/Hotkeys (#2618)
Added Shortcuts/Hotkeys to Register

ESC 	Cancels Current Quote/Invoice/Sale
ALT + 1 	Item Search
ALT + 2 	Customer Search
ALT + 3 	Suspend Current Sale
ALT + 4 	Show Suspended Sales
ALT + 5 	Edit Amount Tendered
ALT + 6 	Add Payment
ALT + 7 	Add Payment and Complete Invoice/Sale
ALT + 8 	Finish Quote/Invoice witdout payment
ALT + 9 	Open Shortcuts Window

Layout / Responsiveness

F11 Full Screen mode
CTRL + Zoom in
CTRL - Zoom out
CTRL 0 Reset Zoom

CTRL P Print out current page
CTRL F Search reports tables
2021-10-19 23:00:00 +02:00
jekkos
c5bf78fcbd Fix payment summary refresh after edit (#3329) 2021-10-16 23:21:14 +02:00
jekkos
3ac43c2d26 Use POST for delete supplier & customer (#3336) 2021-10-15 21:46:32 +02:00
FrancescoUK
2e33f32630 Leave cURL default for SSL because more secure 2021-10-10 14:09:49 +01:00
jekkos
986ab7e86c Make footer revision clickable (#3306) 2021-10-08 23:18:46 +02:00
FrancescoUK
9b1def4324 Translated using Weblate (English (United Kingdom))
Currently translated at 86.6% (39 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/en_GB/
2021-10-08 00:34:22 +02:00
FrancescoUK
8d87f35fd8 Fix reCaptcha issue with wrong keys (#3207) 2021-10-07 21:35:30 +01:00
FrancescoUK
35b850a19b Translated using Weblate (English (United Kingdom))
Currently translated at 81.3% (70 of 86 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-10-07 21:40:24 +02:00
FrancescoUK
9f13778cdb Translated using Weblate (English (United Kingdom))
Currently translated at 89.7% (105 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/en_GB/
2021-10-07 21:40:24 +02:00
FrancescoUK
1ecb834b4c Translated using Weblate (English (United Kingdom))
Currently translated at 93.1% (135 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/en_GB/
2021-10-07 21:40:23 +02:00
FrancescoUK
8e8008e285 Translated using Weblate (English (United Kingdom))
Currently translated at 92.7% (51 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/en_GB/
2021-10-07 21:40:23 +02:00
FrancescoUK
fa6e8e853b Translated using Weblate (English (United Kingdom))
Currently translated at 88.5% (177 of 200 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en_GB/
2021-10-07 21:40:22 +02:00
FrancescoUK
9c24fd8b3d Translated using Weblate (English (United Kingdom))
Currently translated at 94.1% (308 of 327 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2021-10-07 21:40:22 +02:00
FrancescoUK
cf59e06294 Translated using Weblate (English (United Kingdom))
Currently translated at 84.4% (38 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/en_GB/
2021-10-07 21:40:21 +02:00
FrancescoUK
2267bf6896 Translated using Weblate (English (United Kingdom))
Currently translated at 96.2% (51 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en_GB/
2021-10-07 21:40:19 +02:00
FrancescoUK
b2d187a349 Add dev docker-compose with phpmyadmin 2021-10-06 20:24:08 +01:00
FrancescoUK
d821c69e6c Fix dev docker-compose 2021-10-06 20:22:13 +01:00
FrancescoUK
e36a74ded2 Fix CSP, it needs to be one line + ReCaptcha 2021-10-06 18:39:02 +01:00
FrancescoUK
ee5e06cd0c Fix CSP rules (and tested) 2021-10-06 14:37:11 +01:00
jekkos
d04f1e434c Try unsafe-inline for script-src, add font-src 2021-10-06 14:37:11 +01:00
jekkos
38ebf9e819 Add CSP directive for javascript (#3217) 2021-10-06 14:37:11 +01:00
FrancescoUK
05de93cb68 Update composer.lock 2021-10-05 19:10:33 +01:00
FrancescoUK
970744d8fc Update docker-compose.dev.yml 2021-10-05 19:08:37 +01:00
FrancescoUK
a5f063b382 Remove deprecated MAINTAINER from Dockerfile 2021-10-05 19:06:59 +01:00
jekkos
6b3aa876ed Amend the fix to include delete_supplier (#3332) 2021-10-04 23:23:27 +02:00
jekkos
f1672d9701 Prevent type juggling for password hash comparison (#3324) 2021-09-30 22:51:05 +02:00
Jevinson Lim
2f69841c95 Update Items.php
Fixes the problem where 'Supplier ID' is not saved during csv import.
2021-09-30 00:08:27 +02:00
jekkos
e8f27f547b Extend method hook validation for deletes 2021-09-29 00:20:13 +02:00
jekkos
2b031e6466 Fix reflected XSS vulnerability 2021-09-28 20:44:50 +02:00
WShells
6ef764d9b2 Typo 2021-09-23 08:57:29 +02:00
WebShells
d2d9c9c532 Tax name
Added tax name to tax summary report.
Closes #3009
2021-09-23 08:57:29 +02:00
WebShells
b15d0b046e Time in Reports
Replaced Date by Date/time in detailed and specific reports.
2021-09-23 08:57:29 +02:00
WebShells
e51a3e698a Revert "Time in Reports"
This reverts commit a33f29b713.
2021-09-18 23:31:16 +03:00
WebShells
a33f29b713 Time in Reports
Replaced Date by Date time in detailed reports section and specific ones.
2021-09-18 23:03:31 +03:00
objecttothis
ad7ae23f2c Correct bug preventing new item creation
The `===` (type comparison equality operator) was preventing new items from being created because $item_id was coming through as a string and not an integer.
2021-09-14 07:47:35 +01:00
jekkos
a2e7c0a74b Revert SQLi fixes (#3284) 2021-09-06 21:45:08 +02:00
jekkos
136448444d Enable mode_headers for docker 2021-08-31 08:26:23 +02:00
jekkos
2c9355e8b8 Add X-Frame-Options header (prevent clickjacking) 2021-08-30 22:10:07 +02:00
jekkos
77c30b7f90 Use bootstrap 5.0.2 (#3281) 2021-08-28 11:22:09 +02:00
jekkos
fe727674a5 Merge all unstable builds in one draft release (#3110) 2021-08-27 14:13:21 +02:00
jekkos
b4c48e5141 Blind sql injection fixes (#3284) 2021-08-27 00:20:50 +02:00
jekkos
b925155ba5 Update changelist (#3218) 2021-08-26 08:23:40 +02:00
jekkos
d07b9349e3 Try to upgrade docker version (#3281) 2021-08-26 00:29:50 +02:00
jekkos
51a8cffc9e Bump to 3.3.5 (#3281) 2021-08-25 23:13:40 +02:00
Dan Tiganuc
694b7fe52d Translated using Weblate (Romanian)
Currently translated at 10.2% (12 of 117 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ro/
2021-08-24 11:29:46 +02:00
jekkos
5669dff7da Add sorting for quantity and sales (#3262) 2021-08-20 23:36:02 +02:00
Johntini
6d8890f61e Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/es/
2021-08-20 22:41:13 +02:00
Johntini
a4bae6536d Translated using Weblate (Spanish)
Currently translated at 100.0% (41 of 41 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/es/
2021-08-20 22:41:13 +02:00
Johntini
e1e61ba98d Translated using Weblate (Spanish)
Currently translated at 100.0% (47 of 47 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/es/
2021-08-20 22:41:13 +02:00
Johntini
225bfda867 Translated using Weblate (Spanish)
Currently translated at 100.0% (79 of 79 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/es/
2021-08-20 22:41:13 +02:00
Johntini
0a2dc49e3e Translated using Weblate (Spanish)
Currently translated at 100.0% (86 of 86 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/es/
2021-08-20 22:41:13 +02:00
Johntini
dcc9745991 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/
2021-08-20 22:41:13 +02:00
Johntini
339eca6028 Translated using Weblate (Spanish)
Currently translated at 100.0% (45 of 45 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/es/
2021-08-20 22:41:13 +02:00
Johntini
d1e9b6d943 Translated using Weblate (Spanish)
Currently translated at 100.0% (53 of 53 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/es/
2021-08-20 22:41:13 +02:00
Johntini
2da34b0789 Translated using Weblate (Spanish)
Currently translated at 100.0% (145 of 145 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es/
2021-08-20 22:41:13 +02:00
Johntini
44d89a5ed2 Translated using Weblate (Spanish)
Currently translated at 100.0% (37 of 37 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es/
2021-08-20 22:41:13 +02:00
Johntini
0637266560 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/
2021-08-20 22:41:13 +02:00
Johntini
32c99248af Translated using Weblate (Spanish)
Currently translated at 100.0% (55 of 55 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/es/
2021-08-20 22:41:13 +02:00
Johntini
fad53d52d4 Translated using Weblate (Spanish)
Currently translated at 100.0% (200 of 200 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es/
2021-08-20 22:41:13 +02:00
Johntini
29bdb7b75e Translated using Weblate (Spanish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/es/
2021-08-20 22:41:13 +02:00
Johntini
3f1bbf99b4 Translated using Weblate (Spanish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/es/
2021-08-20 22:41:13 +02:00
Jeroen Peelaerts
4c3f6e4c31 Fix username verification on insert/update (#3239) 2021-08-07 02:12:30 +02:00
Jeroen Peelaerts
85f577556e Fix employee update (#3239) 2021-08-07 02:12:30 +02:00
Jeroen Peelaerts
dc2b2862f9 Fix employee update (#3239) 2021-08-07 02:12:30 +02:00
objecttothis
9217f2d12f Fixed missing function call
This removes the function call to a function that doesn't exist anymore.
The replacement does the same job in one line of code.
Added comment to bring clarity to what the code is doing.
2021-08-06 19:19:09 +02:00
objecttothis
5ebe626543 Formatting Changes
- Removed unneeded tabs that mess up alignment.
2021-08-06 19:16:52 +02:00
Mehmet Keçeci
e277fc09ac minimal Turkish translation 2021-08-05 10:40:56 +02:00
sonnysk76
7e2a5eb297 Translated using Weblate (Spanish (Mexico))
Currently translated at 94.4% (34 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
bcc9cac570 Translated using Weblate (Spanish (Mexico))
Currently translated at 35.8% (14 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
6d4421e13b Translated using Weblate (Spanish (Mexico))
Currently translated at 13.6% (15 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
9d320772f5 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/es_MX/
2021-08-05 07:09:41 +02:00
sonnysk76
3d441689d0 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/es_MX/
2021-08-05 07:09:40 +02:00
sonnysk76
4eacc65785 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/es_MX/
2021-08-05 07:09:40 +02:00
sonnysk76
a31ae36e18 Translated using Weblate (Spanish (Mexico))
Currently translated at 19.4% (27 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2021-08-05 07:09:40 +02:00
sonnysk76
74ed7488ee Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/es_MX/
2021-08-05 07:09:39 +02:00
khao_lek
be72a0169b Translated using Weblate (Thai)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2021-08-04 07:03:00 +02:00
khao_lek
d786039765 Translated using Weblate (Thai)
Currently translated at 99.3% (300 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2021-08-04 07:03:00 +02:00
khao_lek
74724a890f Translated using Weblate (Thai)
Currently translated at 98.7% (76 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/th/
2021-08-04 07:03:00 +02:00
Jeroen Peelaerts
8c201816b9 Update spanish (#3255) 2021-08-03 11:04:03 +02:00
Jeroen Peelaerts
5767a3929f Fix duplicate username error message (#3239) 2021-07-30 21:16:35 +02:00
Jeroen Peelaerts
2311a644ab Fix employee username duplication check (#3239) 2021-07-30 21:09:17 +02:00
objecttothis
3d65c3fffa CSV import optimizations and code cleanup (#3150)
Optimizations and CSV Import Rework
- Replaced " with ' where possible to prevent the parser from being called when not needed.
- Replaced == and != with === and !== where possible for bug prevention and speed.
- Replaced -1 with NEW_ITEM global constant for code clarity.
- Added NEW_ITEM global constant to constants.php.
- Refactored CSV import function names for clarity.
- Added capability to import a CSV file containing updates.
- Replaced array() with [] for speed and consistency.
- Removed hungarian notation from two private functions.
- Refactored QueryBuilder functions to place table name in the get() function call.
- Replaced (int) cast with call to intval() for speed.
- Replaced == and != with === and !== where possible to prevent bugs and for speed.
- Replaced array() with [] for speed and consistency.
- Fixed search_custom call

Optimizations and bugfixes for attributes used in csv_import
- Reordered where statements in queries to match composite index on attribute_links table.
- fixed value_exists() to account for different attribute types.
- Removed hungarian notation on private function.
- Replaced array() with [] for speed and consistency.
- Replaced != with <> in SQL for consistency.
- Removed from() calls in querybuilder where possible to reduce function calls.
- Add get_items_by_value()
- Reworked check_data_validity()
- Remove unneeded comments
- Refactor functions for code clarity.
- Use $this->db->dbprefix() where possible instead of hand-writing ospos_...
- Removed unneeded column from query.
- Replaced (int) cast with intval() call for speed.
- Added get_attribute_values()
- Fixed issue with date format locale not being used
- Refactored save_value to respect different attribute_types
- Added delete_orphaned_links() to remove attribute_links that are no longer linked to any items
- Added get_attributes_by_definition()
- Added attribute_cleanup()

Optimizations used in csv_import
- replaced array() with [] for consistency and speed.
- Removed hungarian notation in private functions.
- Replaced " with ' where possible to prevent the parser from being called.
- Minor formatting
- Refactored if statement to tertiary notation for cleaner implementation.
- Replaced " for ' where possible to prevent the parser from being called.
- Added the Id column in the generate_import_items_csv() template so that users can submit an update to an existing item.
- Removed unused key=>value pairs in foreach loops for speed.
- Removed unneeded comments where the function name was self-explanatory.
- Rework get_csv_file() for speed.
- Rework bom_exists() for speed.
- Replaced array() with [] for speed and consistency.
- Replaced == with === where possible to prevent bugs and for speed.
- Reworked valid_date() and valid_decimal helper functions for speed and accuracy according to the locale_format instead of a fixed format.
- Minor Reformatting for clarity.
- Replaced " for ' to prevent the parser from being called.
- Refactored function call names to reflect new names.
- Added missing ; in &nbsp;
- Used String interpolation where useful.

- Spelling fix in comment

Requested Review Changes
- Fixed indentation in Items.php
- Fixed indentation in Attribute.php
- Refactored variable out of long line of code to make it more readable.
2021-07-29 22:22:59 +02:00
gurulenin
517635181c Translated using Weblate (Tamil)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ta/
2021-07-28 15:46:15 +02:00
Jeroen Peelaerts
1547272665 Check username before employee creation (#3239) 2021-07-23 00:59:40 +02:00
Jeroen Peelaerts
8675aa82df Attribute value encoding fix (#3241) 2021-07-22 19:01:59 +02:00
gurulenin
5acafd4ea8 Translated using Weblate (Tamil)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/ta/
2021-07-22 18:45:40 +02:00
gurulenin
2db50d69d0 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/ta/
2021-07-22 18:45:40 +02:00
Jeroen Peelaerts
c6d0582fcb Add category column to item summary report (#3240) 2021-07-21 23:22:53 +02:00
Emin Tufan Çetin
3fbfd8c917 Translated using Weblate (Turkish)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/tr/
2021-07-18 11:06:10 +02:00
Emin Tufan Çetin
c38fc60f6a Translated using Weblate (Turkish)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/tr/
2021-07-18 11:06:10 +02:00
Emin Tufan Çetin
346a34121f Translated using Weblate (Turkish)
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/tr/
2021-07-18 11:06:10 +02:00
Emin Tufan Çetin
9c9c2e8b81 Translated using Weblate (Turkish)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/tr/
2021-07-18 11:06:09 +02:00
Emin Tufan Çetin
510a01e2b5 Translated using Weblate (Turkish)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/tr/
2021-07-18 11:06:09 +02:00
Emin Tufan Çetin
93014dc4d8 Translated using Weblate (Turkish)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/tr/
2021-07-18 11:06:08 +02:00
Emin Tufan Çetin
294f63bd31 Translated using Weblate (Turkish)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/tr/
2021-07-18 11:06:08 +02:00
Emin Tufan Çetin
1b7531c7f4 Translated using Weblate (Turkish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/tr/
2021-07-18 11:06:08 +02:00
Emin Tufan Çetin
6d1eeb3c62 Translated using Weblate (Turkish)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/tr/
2021-07-18 11:06:07 +02:00
Emin Tufan Çetin
3ada6f8372 Translated using Weblate (Turkish)
Currently translated at 100.0% (302 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/tr/
2021-07-18 11:06:07 +02:00
Emin Tufan Çetin
d15d001b5b Translated using Weblate (Turkish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/tr/
2021-07-18 11:06:06 +02:00
BudsieBuds
29d6138951 Translated using Weblate (Dutch)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-07-17 04:55:34 +02:00
BudsieBuds
d6a4161416 Translated using Weblate (Dutch)
Currently translated at 96.1% (74 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-07-17 04:55:34 +02:00
BudsieBuds
0604ad121b Translated using Weblate (Dutch)
Currently translated at 99.3% (300 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl/
2021-07-17 04:55:34 +02:00
teddy tang
ffdc8f0bd5 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-15 06:59:54 +02:00
teddy tang
83d1194d0c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (77 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/zh_Hant/
2021-07-15 06:59:54 +02:00
gurulenin
e90b58f110 Translated using Weblate (Tamil)
Currently translated at 98.7% (76 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ta/
2021-07-15 06:59:53 +02:00
gurulenin
bee3c7ede0 Translated using Weblate (Tamil)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/ta/
2021-07-15 06:59:53 +02:00
gurulenin
bfc1c2e55e Translated using Weblate (Tamil)
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ta/
2021-07-15 06:59:53 +02:00
teddy tang
8d0c5c6ee9 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (11 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/zh_Hant/
2021-07-15 06:59:53 +02:00
teddy tang
f87c90fdec Translated using Weblate (Chinese (Traditional))
Currently translated at 96.0% (290 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-15 06:59:52 +02:00
FrancescoUK
cb560949ac Translated using Weblate (English (United Kingdom))
Currently translated at 92.2% (71 of 77 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-07-14 23:56:52 +02:00
FrancescoUK
4d5a2f15c2 Translated using Weblate (English (United Kingdom))
Currently translated at 54.5% (6 of 11 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/en_GB/
2021-07-14 23:56:52 +02:00
FrancescoUK
defb484640 Translated using Weblate (English (United Kingdom))
Currently translated at 98.6% (298 of 302 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2021-07-14 23:56:52 +02:00
Jeroen Peelaerts
57fb2c98fa Move expenses categories to office menu group 2021-07-14 23:43:36 +02:00
Jeroen Peelaerts
c3bdff6fb4 Fix escape sequence in Polish 2021-07-14 15:50:34 +02:00
teddy tang
4ecfbc2398 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/zh_Hant/
2021-07-14 14:06:17 +02:00
gurulenin
41152a5b12 Translated using Weblate (Tamil)
Currently translated at 99.4% (179 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ta/
2021-07-14 14:06:17 +02:00
teddy tang
797ac4c9d4 Translated using Weblate (Chinese (Traditional))
Currently translated at 80.5% (240 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-14 14:06:17 +02:00
gurulenin
13be0a1b0c Translated using Weblate (Tamil)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ta/
2021-07-14 14:06:17 +02:00
gurulenin
b6ac9e5909 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-07-14 14:06:17 +02:00
gurulenin
3debc57ca8 Translated using Weblate (Tamil)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/ta/
2021-07-14 14:06:17 +02:00
teddy tang
fd1e942273 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-14 14:06:17 +02:00
gurulenin
c641b1762c Translated using Weblate (Tamil)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/ta/
2021-07-14 14:06:17 +02:00
gurulenin
6ee8757b12 Translated using Weblate (Tamil)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ta/
2021-07-14 14:06:17 +02:00
teddy tang
ee575b5109 Translated using Weblate (Chinese (Traditional))
Currently translated at 90.6% (126 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-14 14:06:17 +02:00
Jeroen Peelaerts
e11eba978f Sync language files 2021-07-14 08:35:04 +02:00
Jeroen Peelaerts
a4234a3129 Fix minification (#3213)
Upgrade grunt, grunt-cli and grunt-uglify

Only copy bootswatch 5 using npm.  Remove unused dependencies and tasks
(apigen, mocha, wd, phantomjs). This should decrease the container size.
2021-07-14 08:35:04 +02:00
BudsieBuds
ba8cb0ef86 Create codeql-analysis.yml 2021-07-14 08:35:04 +02:00
BudsieBuds
2eee6313e0 Converted login to BS5 and other changes
Converted the login view to Bootstrap and Bootswatch 5. Added an option to change the login form style. Shifted some translations around and added new ones. Partially moved from Bower to NPM, added new branding logo's. Some other small changes and optimizations.
2021-07-14 08:35:04 +02:00
Jeroen Peelaerts
95f19d6063 Force html2canvas version (#3236) 2021-07-14 00:18:00 +02:00
jacekz123
8a854d1912 Translated using Weblate (Polish)
Currently translated at 2.7% (1 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/pl/
2021-07-13 18:03:01 +02:00
jacekz123
80f8dd9b37 Translated using Weblate (Polish)
Currently translated at 2.5% (1 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/pl/
2021-07-13 18:03:00 +02:00
jacekz123
94e9d35314 Translated using Weblate (Polish)
Currently translated at 3.8% (2 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/pl/
2021-07-13 18:03:00 +02:00
jacekz123
8b5b4f9279 Translated using Weblate (Polish)
Currently translated at 5.5% (2 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/pl/
2021-07-13 18:03:00 +02:00
jacekz123
b3e4b72b30 Translated using Weblate (Polish)
Currently translated at 1.1% (2 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/pl/
2021-07-13 18:03:00 +02:00
jacekz123
ffd511bd06 Translated using Weblate (Polish)
Currently translated at 1.2% (1 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/pl/
2021-07-13 18:02:59 +02:00
jacekz123
393cee62aa Translated using Weblate (Polish)
Currently translated at 55.0% (11 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/pl/
2021-07-13 18:02:58 +02:00
jacekz123
870aad2d67 Translated using Weblate (Polish)
Currently translated at 12.5% (1 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/pl/
2021-07-13 18:02:58 +02:00
jacekz123
789eb82940 Translated using Weblate (Polish)
Currently translated at 3.4% (1 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/pl/
2021-07-13 18:02:58 +02:00
jacekz123
89783bc190 Translated using Weblate (Polish)
Currently translated at 8.3% (1 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/pl/
2021-07-13 18:02:57 +02:00
jacekz123
d11824ffd4 Translated using Weblate (Polish)
Currently translated at 1.9% (1 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/pl/
2021-07-13 18:02:57 +02:00
jacekz123
d0093253a1 Translated using Weblate (Polish)
Currently translated at 2.2% (1 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/pl/
2021-07-13 18:02:57 +02:00
jacekz123
1f7529baf9 Translated using Weblate (Polish)
Currently translated at 8.6% (12 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/pl/
2021-07-13 18:02:57 +02:00
jacekz123
feba68b08f Translated using Weblate (Polish)
Currently translated at 2.8% (1 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/pl/
2021-07-13 18:02:56 +02:00
jacekz123
37cf26b10a Translated using Weblate (Polish)
Currently translated at 12.5% (1 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/pl/
2021-07-13 18:02:56 +02:00
jacekz123
f80f3a9cab Translated using Weblate (Polish)
Currently translated at 4.7% (1 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/pl/
2021-07-13 18:02:55 +02:00
teddy tang
74a4bfac85 Translated using Weblate (Chinese (Traditional))
Currently translated at 74.1% (221 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-12 12:00:34 +02:00
teddy tang
fa347aa281 Translated using Weblate (Chinese (Traditional))
Currently translated at 88.1% (97 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-12 12:00:33 +02:00
teddy tang
c1f1e6306e Translated using Weblate (Chinese (Traditional))
Currently translated at 84.1% (117 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-12 12:00:32 +02:00
teddy tang
dc9d66f3de Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/zh_Hant/
2021-07-12 08:06:57 +02:00
teddy tang
a4f52b765c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/zh_Hant/
2021-07-12 08:06:57 +02:00
teddy tang
e023b081c5 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
9c6f1e4429 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
962a323694 Translated using Weblate (Chinese (Traditional))
Currently translated at 82.7% (91 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
49a99c68ff Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/zh_Hant/
2021-07-12 08:06:56 +02:00
teddy tang
44024b0929 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
4e52c2f036 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
37e757128b Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
394bd671aa Translated using Weblate (Chinese (Traditional))
Currently translated at 73.4% (219 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-12 08:06:55 +02:00
teddy tang
d0b29d39bf Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/zh_Hant/
2021-07-12 08:06:54 +02:00
teddy tang
eb970b2315 Translated using Weblate (Chinese (Traditional))
Currently translated at 77.6% (108 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-12 08:06:54 +02:00
teddy tang
c0c2001754 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/zh_Hant/
2021-07-12 08:06:54 +02:00
teddy tang
ec51bb3991 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/zh_Hant/
2021-07-12 08:06:53 +02:00
teddy tang
4ce569d76e Translated using Weblate (Chinese (Traditional))
Currently translated at 58.3% (21 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/zh_Hant/
2021-07-09 17:20:46 +02:00
teddy tang
c08e32d016 Translated using Weblate (Chinese (Traditional))
Currently translated at 66.6% (24 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/zh_Hant/
2021-07-09 17:20:46 +02:00
Ali Alsalman
8a495ffce6 Translated using Weblate (Arabic)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ar_LB/
2021-07-09 17:20:45 +02:00
teddy tang
ea1528f5b9 Translated using Weblate (Chinese (Traditional))
Currently translated at 90.0% (18 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/zh_Hant/
2021-07-09 17:20:45 +02:00
teddy tang
e59dbdf47e Translated using Weblate (Chinese (Traditional))
Currently translated at 79.0% (87 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
0e29a7950a Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
3d32536292 Translated using Weblate (Chinese (Traditional))
Currently translated at 71.8% (214 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
be24044076 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.5% (67 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/zh_Hant/
2021-07-09 17:20:44 +02:00
teddy tang
3986aa8e0a Translated using Weblate (Chinese (Traditional))
Currently translated at 76.9% (107 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/zh_Hant/
2021-07-09 17:20:43 +02:00
teddy tang
d7e40cbe43 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/zh_Hant/
2021-07-09 17:20:42 +02:00
teddy tang
f61307d380 Translated using Weblate (Chinese (Traditional))
Currently translated at 82.0% (64 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/zh_Hant/
2021-07-09 17:20:42 +02:00
Ir. Anggun Nugroho, M.Kom
ebae2eab5d Translated using Weblate (Indonesian)
Currently translated at 99.0% (109 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
795e030e07 Translated using Weblate (Indonesian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
0a91c0009f Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
5cea9a7555 Translated using Weblate (Indonesian)
Currently translated at 98.0% (51 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/id/
2021-07-08 00:27:05 +02:00
Ir. Anggun Nugroho, M.Kom
9838045683 Translated using Weblate (Indonesian)
Currently translated at 99.4% (179 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2021-07-08 00:27:04 +02:00
Ir. Anggun Nugroho, M.Kom
e33c10e8c4 Translated using Weblate (Indonesian)
Currently translated at 87.5% (7 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/id/
2021-07-07 22:23:41 +02:00
Ir. Anggun Nugroho, M.Kom
d680b78e49 Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/id/
2021-07-07 22:01:53 +02:00
jeffyeh
4d7561d311 Translated using Weblate (Chinese (Traditional))
Currently translated at 66.6% (24 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/zh_Hant/
2021-07-07 17:10:13 +02:00
jeffyeh
ad37b2cc24 Translated using Weblate (Chinese (Traditional))
Currently translated at 74.3% (29 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/zh_Hant/
2021-07-07 17:10:13 +02:00
jeffyeh
562d760174 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/zh_Hant/
2021-07-07 17:10:13 +02:00
jeffyeh
3ea32e7444 Translated using Weblate (Chinese (Traditional))
Currently translated at 71.8% (214 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-07 17:10:12 +02:00
jeffyeh
2953cf47ed Translated using Weblate (Chinese (Traditional))
Currently translated at 28.5% (2 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/zh_Hant/
2021-07-07 17:10:12 +02:00
jeffyeh
0066447fdb Translated using Weblate (Chinese (Traditional))
Currently translated at 63.7% (190 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/zh_Hant/
2021-07-07 12:22:53 +02:00
jeffyeh
8af2466b20 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/zh_Hant/
2021-07-07 12:22:52 +02:00
jeffyeh
fb7fd0fc38 Translated using Weblate (Chinese (Traditional))
Currently translated at 64.1% (50 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/zh_Hant/
2021-07-07 12:22:52 +02:00
William Levesque
52c08e9210 Translated using Weblate (French)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/fr/
2021-07-06 16:58:06 +02:00
William Levesque
f17388e755 Translated using Weblate (French)
Currently translated at 93.1% (27 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/fr/
2021-07-06 16:58:06 +02:00
Jeroen Peelaerts
a39b3ec1bc Fallback to english if translations are missing (#3205) 2021-07-04 22:18:46 +02:00
Jeroen Peelaerts
ddc7215424 Make Dockerfile windows compatible 2021-07-04 22:18:46 +02:00
khao_lek
2e09cd31c2 Translated using Weblate (Thai)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/th/
2021-07-02 13:44:39 +02:00
Jeroen Peelaerts
7726adbd6f Revert compose container to 3.3.4 2021-06-29 22:33:02 +02:00
Ricardo Vargas
7bce75f5b6 Translated using Weblate (Spanish (Mexico))
Currently translated at 16.5% (23 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2021-06-21 13:23:12 +02:00
jekkos
ef612fb0c9 Update package.json 2021-06-12 11:35:14 +02:00
jekkos
107745d683 Update grunt to 1.4
A CVE was found in the old version of Grunt. Update to the latest.
2021-06-12 11:35:14 +02:00
Jeroen Peelaerts
1117c39c27 Upgrade node & grunt buildbox (#3208) 2021-06-12 10:34:52 +02:00
BudsieBuds
ae93341f75 Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-06-09 23:20:00 +02:00
BudsieBuds
d24624d1f6 Translated using Weblate (English)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/en/
2021-06-09 23:20:00 +02:00
jekkos
d87d27dec9 Extract version from config.php (#3110) 2021-06-09 17:51:19 +02:00
jekkos
92f25c3993 Remove bintray link (#3110) 2021-06-09 15:46:07 +02:00
jekkos
3116903129 Add newline to .travis.yml (#3110) 2021-06-09 15:30:52 +02:00
jekkos
cff79601e4 Keep only one zip build per branch (#3110) 2021-06-09 13:15:30 +02:00
BudsieBuds
9ca998d523 Translated using Weblate (Dutch)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl/
2021-06-09 04:30:43 +02:00
jekkos
0efd58217f Publish to github releases (#3110) 2021-06-09 00:02:32 +02:00
khao_lek
72eab0cd28 Translated using Weblate (Thai)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/th/
2021-06-07 21:45:10 +02:00
khao_lek
a258567955 Translated using Weblate (Thai)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/th/
2021-06-07 21:45:10 +02:00
khao_lek
ca4782f751 Translated using Weblate (Thai)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/th/
2021-06-07 21:45:10 +02:00
khao_lek
e638ff8595 Translated using Weblate (Thai)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/th/
2021-06-07 21:45:10 +02:00
khao_lek
5f10fda2c1 Translated using Weblate (Thai)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/th/
2021-06-07 21:45:10 +02:00
khao_lek
1faeccc596 Translated using Weblate (Thai)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2021-06-07 21:45:10 +02:00
khao_lek
fb328e4fb0 Translated using Weblate (Thai)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2021-06-07 21:45:10 +02:00
jekkos
136f778028 Update build badge for travis-ci.com (#3063) 2021-06-06 14:37:13 +02:00
truchosky
8ed0091400 Translated using Weblate (Spanish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/es/
2021-06-03 16:35:11 +02:00
truchosky
977d1869e6 Translated using Weblate (Spanish)
Currently translated at 98.6% (71 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/es/
2021-06-03 16:35:11 +02:00
truchosky
cc527d8426 Translated using Weblate (Spanish)
Currently translated at 87.5% (7 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/es/
2021-06-03 16:35:10 +02:00
truchosky
aa28c0dbf0 Translated using Weblate (Spanish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/es/
2021-06-03 16:35:10 +02:00
Mats Pålsson
15f41c129c Translated using Weblate (Swedish)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
ee30b4d544 Translated using Weblate (Swedish)
Currently translated at 98.7% (77 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
2d0029e605 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/
2021-06-02 07:54:24 +02:00
Mats Pålsson
3fb4b398ea Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
ebe1860858 Translated using Weblate (Swedish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/sv/
2021-06-02 07:54:24 +02:00
Mats Pålsson
7f18d7c1fa 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/
2021-06-02 07:54:23 +02:00
Mats Pålsson
e77b357b38 Translated using Weblate (Swedish)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/sv/
2021-06-02 07:54:23 +02:00
Mats Pålsson
3e90244410 Translated using Weblate (Swedish)
Currently translated at 99.6% (297 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/sv/
2021-06-02 07:54:23 +02:00
Mats Pålsson
2689426e15 Translated using Weblate (Swedish)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
fc3cff5225 Translated using Weblate (Swedish)
Currently translated at 98.0% (51 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
5cee7cd005 Translated using Weblate (Swedish)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
e29b8b1b87 Translated using Weblate (Swedish)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/sv/
2021-06-02 07:54:22 +02:00
Mats Pålsson
b3e49f05d1 Translated using Weblate (Swedish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/sv/
2021-06-02 07:54:21 +02:00
Mats Pålsson
274ad1afde 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/
2021-06-02 07:54:21 +02:00
Mats Pålsson
d4df4e96b6 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/
2021-06-02 07:54:21 +02:00
Mats Pålsson
20f104abc8 Translated using Weblate (Swedish)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/sv/
2021-06-02 07:54:21 +02:00
Mats Pålsson
25b22a2ebe Translated using Weblate (Swedish)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/sv/
2021-06-02 07:54:20 +02:00
Mats Pålsson
6ecd9a91c4 Translated using Weblate (Swedish)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/sv/
2021-06-02 07:54:20 +02:00
Mats Pålsson
d2f48a9987 Translated using Weblate (Swedish)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/sv/
2021-06-02 07:54:20 +02:00
Mats Pålsson
c90631fe38 Translated using Weblate (Swedish)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/sv/
2021-06-02 07:54:19 +02:00
Mats Pålsson
dfb47060fa 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/
2021-05-31 13:08:38 +02:00
Mats Pålsson
f50cbbf29d Translated using Weblate (Swedish)
Currently translated at 28.5% (2 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
a186de7db2 Translated using Weblate (Swedish)
Currently translated at 98.6% (71 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
4845230bd3 Translated using Weblate (Swedish)
Currently translated at 66.6% (8 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
ac0ec7d729 Translated using Weblate (Swedish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/sv/
2021-05-31 13:08:38 +02:00
Mats Pålsson
25b3de4f2f Translated using Weblate (Swedish)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/sv/
2021-05-31 13:08:38 +02:00
Jeroen Peelaerts
aee186b2a6 Bump to 3.4.0-dev (#2942) 2021-05-26 00:48:42 +02:00
objecttothis
352036209f Requested Changes
- Removed unnecessary indices on deleted column where there would not be many rows.
- Removed unnecessary parenthesis in Item Model.
- Added Composite indices based on MySQL EXPLAIN results.
2021-05-25 14:04:01 +02:00
objecttothis
9ff8611672 Requested Changes
- Removed unnecessary indices on deleted column where there would not be many rows.
- Explicitly stated NULL in second parameter of WHERE to improve readability.
2021-05-25 14:04:01 +02:00
objecttothis
2f4c95ecd2 Corrected a duplicated line in the query 2021-05-25 14:04:01 +02:00
objecttothis
97159d42c7 Database Optimizations
- Add indexes to tables to improve query times.
- Delete orphaned attribute values.
- Resolve duplicate attribute values.
- Deleted whitespace after migration which was causing Severity: Warning --> Cannot modify header information - headers already sent by
2021-05-25 14:04:01 +02:00
Miguel Martins
2b9155d2f1 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es_MX/
2021-05-24 20:51:50 +02:00
Miguel Martins
dab1640e70 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/es_MX/
2021-05-24 20:51:50 +02:00
Miguel Martins
2bc70f6426 Translated using Weblate (Spanish (Mexico))
Currently translated at 15.8% (22 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/es_MX/
2021-05-24 20:51:49 +02:00
Miguel Martins
15130140be Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
aab5ae685a Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
afedaa4510 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
0e79e145c3 Translated using Weblate (Spanish)
Currently translated at 95.9% (286 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/es/
2021-05-24 06:01:58 +02:00
Miguel Martins
fabc4d7153 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
0e2b7a87d9 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
115b014a8c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
70bb633581 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
1c86b0b697 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
75684ab009 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/pt_BR/
2021-05-24 06:01:58 +02:00
Miguel Martins
b7e164a4a6 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en_GB/
2021-05-24 06:01:58 +02:00
Miguel Martins
ddc12be596 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/en_GB/
2021-05-24 06:01:58 +02:00
Steve Ireland
0147c3a80e Fix Discounted Item Kit bug #3129 (#3186) 2021-05-23 18:30:31 -04:00
robbytriadi
6dc3816c46 Translated using Weblate (Indonesian)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/id/
2021-05-23 00:47:39 +02:00
robbytriadi
88ca4aca87 Translated using Weblate (Indonesian)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/id/
2021-05-23 00:47:39 +02:00
robbytriadi
ae37dd9bea Translated using Weblate (Indonesian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/id/
2021-05-23 00:47:39 +02:00
robbytriadi
e24cd75f0d Translated using Weblate (Indonesian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/id/
2021-05-23 00:47:38 +02:00
Natig Asadov
b79e93ccb6 Translated using Weblate (Azerbaijani)
Currently translated at 97.2% (35 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/az/
2021-05-21 22:11:14 +02:00
Anton
ad3399b1f6 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
a3b45f0f4b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
200cab389a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
b53d0ad821 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/uk-UA/
2021-05-21 04:52:42 +02:00
Anton
8fa6992b00 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
fe6d599005 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
374cacd860 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
fcd65a6e9c Translated using Weblate (Ukrainian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
309417c405 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
50bca01126 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/uk-UA/
2021-05-21 04:52:41 +02:00
Anton
fa9bb50b73 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/uk-UA/
2021-05-21 04:52:40 +02:00
Anton
2ec186d3a3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/uk-UA/
2021-05-21 04:52:40 +02:00
Anton
1574e99338 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/uk-UA/
2021-05-21 04:52:40 +02:00
Anton
1c36e649d6 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/uk-UA/
2021-05-21 04:52:39 +02:00
Anton
01b8828871 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/uk-UA/
2021-05-21 04:52:39 +02:00
BudsieBuds
0e2fbb9832 Translated using Weblate (English)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/en/
2021-05-19 23:49:49 +02:00
BudsieBuds
87c788af62 Translated using Weblate (English)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/en/
2021-05-19 23:49:49 +02:00
BudsieBuds
ac9830ec2b Translated using Weblate (Dutch)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/nl/
2021-05-19 23:49:48 +02:00
BudsieBuds
3d3c928d98 Translated using Weblate (Dutch)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl/
2021-05-19 23:49:48 +02:00
BudsieBuds
a3d8b11be0 Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/nl/
2021-05-19 23:49:48 +02:00
BudsieBuds
4929d7c8ce Translated using Weblate (Dutch)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/nl/
2021-05-19 23:49:47 +02:00
BudsieBuds
5493c75320 Translated using Weblate (English)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2021-05-19 23:49:47 +02:00
BudsieBuds
1e1e992f94 Translated using Weblate (Dutch)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-05-19 23:49:47 +02:00
BudsieBuds
e26f9e9fa7 Translated using Weblate (English)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/en/
2021-05-19 23:49:47 +02:00
BudsieBuds
a90af8dd9e Translated using Weblate (Dutch)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
13a6ce3e45 Translated using Weblate (Dutch)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
7af15c253c Translated using Weblate (Dutch)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
3f18619497 Translated using Weblate (Dutch)
Currently translated at 100.0% (44 of 44 strings)

Translation: opensourcepos/expenses
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses/nl/
2021-05-19 23:49:46 +02:00
BudsieBuds
8a904ba749 Translated using Weblate (Dutch)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/nl/
2021-05-19 23:49:45 +02:00
BudsieBuds
aaa1055adc Translated using Weblate (Dutch)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/nl/
2021-05-19 23:49:45 +02:00
BudsieBuds
cddc67bb2d Translated using Weblate (English)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/en/
2021-05-19 23:49:45 +02:00
BudsieBuds
246a121203 Translated using Weblate (Dutch)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl/
2021-05-19 23:49:44 +02:00
BudsieBuds
4402d35ed7 Translated using Weblate (Dutch)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/nl/
2021-05-19 23:49:43 +02:00
BudsieBuds
3696e7237b Translated using Weblate (Dutch)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/nl/
2021-05-19 23:49:43 +02:00
BudsieBuds
f2e20266d3 Translated using Weblate (Dutch)
Currently translated at 14.0% (42 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl/
2021-05-18 23:31:03 +02:00
BudsieBuds
12952aaa26 Translated using Weblate (Dutch)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/nl/
2021-05-18 23:31:02 +02:00
BudsieBuds
faebbce51a Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/nl/
2021-05-18 23:31:02 +02:00
BudsieBuds
5f9ed5c576 Translated using Weblate (Dutch)
Currently translated at 98.6% (71 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-05-18 23:31:02 +02:00
BudsieBuds
24644eaf19 Translated using Weblate (Dutch)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
3314705d7a Translated using Weblate (Dutch)
Currently translated at 94.8% (37 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
c9552585bf Translated using Weblate (Dutch)
Currently translated at 90.4% (19 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
e9f4e81f37 Translated using Weblate (Dutch)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl/
2021-05-18 23:31:01 +02:00
BudsieBuds
763cb0c06b Translated using Weblate (English)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/en/
2021-05-18 23:31:01 +02:00
BudsieBuds
493e295701 Translated using Weblate (Dutch)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
a4a31ade22 Translated using Weblate (Dutch)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
03187da0d9 Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
ac6e421906 Translated using Weblate (Dutch)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
feb7d1847c Translated using Weblate (Dutch)
Currently translated at 59.7% (43 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl/
2021-05-18 20:46:32 +02:00
BudsieBuds
b0190e416f Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-05-18 20:46:32 +02:00
jekkos
19bd43280d Update badges in README.md 2021-05-18 14:56:30 +02:00
BudsieBuds
3ebda3cc98 Translated using Weblate (Dutch)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
6503621f1d Translated using Weblate (Dutch)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
c8ad6b911a Translated using Weblate (Dutch)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
20eb15beaf Translated using Weblate (Dutch)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
7dca1decd5 Translated using Weblate (Dutch)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/nl/
2021-05-18 12:55:56 +02:00
BudsieBuds
6e11b1d242 Translated using Weblate (Dutch)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/nl/
2021-05-18 12:55:55 +02:00
BudsieBuds
a60a4904cb Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/nl/
2021-05-18 12:55:55 +02:00
BudsieBuds
dce47200bf Translated using Weblate (Dutch)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/nl/
2021-05-18 12:55:55 +02:00
sathisharumugams
b255ce8609 Translated using Weblate (Tamil)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ta/
2021-05-15 16:55:40 +02:00
sathisharumugams
5fd211d3a8 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-13 17:23:04 +02:00
sathisharumugams
c977f16859 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-13 09:07:57 +02:00
sathisharumugams
2bebfba3ef Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-12 21:04:05 +02:00
sathisharumugams
1c9a1a3550 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-05-12 14:58:47 +02:00
robbytriadi
fa6d0004de Translated using Weblate (Indonesian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2021-05-08 00:55:30 +02:00
NGUYỄN HỮU DŨNG
dce9e889e4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/vi/
2021-05-03 22:53:30 +02:00
NGUYỄN HỮU DŨNG
ef488fe0cd Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-05-03 22:53:30 +02:00
NGUYỄN HỮU DŨNG
e2a3647227 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/vi/
2021-05-03 22:53:29 +02:00
karikalan-cherian
c19612814e Translated using Weblate (Tamil)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ta/
2021-04-23 07:20:41 +02:00
karikalan-cherian
bb64e1db00 Translated using Weblate (Tamil)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/ta/
2021-04-23 07:20:41 +02:00
karikalan-cherian
49137f5a76 Translated using Weblate (Tamil)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ta/
2021-04-23 07:20:41 +02:00
karikalan-cherian
e9dd350222 Translated using Weblate (Tamil)
Currently translated at 100.0% (20 of 20 strings)

Translation: opensourcepos/datepicker
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/datepicker/ta/
2021-04-23 07:20:41 +02:00
jekkos
663da89293 Fix decimal render (#2975) 2021-04-22 22:28:12 +02:00
Jeroen Peelaerts
8513a2b85b Disable https in docker-compose (#3164) 2021-04-22 22:01:27 +02:00
karikalan-cherian
d70a90e12c Translated using Weblate (Tamil)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ta/
2021-04-22 19:01:18 +02:00
karikalan-cherian
aa9d2519f4 Translated using Weblate (Tamil)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/ta/
2021-04-22 16:14:42 +02:00
jekkos
fc4e320ee3 Remove cPanel instructions as it's not maintained 2021-04-22 15:36:17 +02:00
oviya22
b42b26b469 Translated using Weblate (Tamil)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/ta/
2021-04-22 15:12:34 +02:00
NGUYỄN HỮU DŨNG
392d92b3b9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-04-22 09:26:20 +02:00
NGUYỄN HỮU DŨNG
3405c9f974 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/vi/
2021-04-22 09:26:20 +02:00
NGUYỄN HỮU DŨNG
72465d36e3 Translated using Weblate (Vietnamese)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/vi/
2021-04-22 09:26:19 +02:00
karikalan-cherian
e596cd43c2 Translated using Weblate (Tamil)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/ta/
2021-04-22 09:26:19 +02:00
zv20
48daa94926 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/bg/
2021-04-22 00:17:46 +02:00
Kumaran
810a2f7e7a Translated using Weblate (Tamil)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/ta/
2021-04-22 00:17:46 +02:00
Kumaran
96c69f927f Translated using Weblate (Tamil)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/ta/
2021-04-22 00:17:46 +02:00
Kumaran
8229092cad Translated using Weblate (Tamil)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/ta/
2021-04-22 00:17:46 +02:00
Kumaran
34e0c28886 Translated using Weblate (Tamil)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/ta/
2021-04-22 00:17:46 +02:00
Kumaran
73fe8a0e0b Translated using Weblate (English)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2021-04-22 00:17:46 +02:00
zv20
0ff1782cd3 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/bg/
2021-04-22 00:17:46 +02:00
zv20
e89aed188b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/bg/
2021-04-22 00:17:46 +02:00
zv20
2b4cdfb2a1 Translated using Weblate (Bulgarian)
Currently translated at 98.8% (178 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/bg/
2021-04-22 00:17:46 +02:00
zv20
4f8dc9003a Translated using Weblate (Bulgarian)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/bg/
2021-04-22 00:17:46 +02:00
Jeroen Peelaerts
5cac9bb5ed Bump to 3.3.4 2021-04-21 21:47:33 +02:00
zv20
59fe090b5e Translated using Weblate (English)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/en/
2021-04-21 21:13:17 +02:00
Jeroen Peelaerts
080e8ac20c Add Tamil language (#3162) 2021-04-18 22:48:00 +02:00
Jeroen Peelaerts
46346a5b46 Fix discount rendering in receiving receipt (#3114) 2021-04-18 21:31:02 +02:00
Jeroen Peelaerts
dfd19c38f2 Render percentage discounts in configured locale (#3114) 2021-04-18 21:31:02 +02:00
Jeroen Peelaerts
b400223c57 Fix discount parsing (#3114) 2021-04-18 21:31:02 +02:00
Aril Apria Susanto
adb17c9865 Translated using Weblate (Indonesian)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/id/
2021-04-18 04:31:59 +02:00
Aril Apria Susanto
793bd7b093 Translated using Weblate (Indonesian)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
a84c734c75 Translated using Weblate (Indonesian)
Currently translated at 100.0% (180 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
c2cee3c603 Translated using Weblate (Indonesian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
954d2bdb37 Translated using Weblate (Indonesian)
Currently translated at 100.0% (12 of 12 strings)

Translation: opensourcepos/messages
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/messages/id/
2021-04-17 19:01:35 +02:00
Aril Apria Susanto
8b03b98b57 Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/id/
2021-04-17 19:01:35 +02:00
Jeroen Peelaerts
0fb93d6d14 Add sales total to daily overview (#3138) 2021-04-07 08:51:29 +02:00
Jeroen Peelaerts
a3a06fdb07 Fix cash totals in payment summary (#3138) 2021-04-07 08:51:29 +02:00
Jeroen Peelaerts
85b9e3bf65 Show sale count in tax summary (#3134) 2021-04-02 09:12:02 +02:00
Trần Ngọc Quân
990daef2c2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (72 of 72 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/vi/
2021-03-31 05:05:08 +02:00
Trần Ngọc Quân
1a26f096fe Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/vi/
2021-03-30 02:37:26 +02:00
Trần Ngọc Quân
8c15742f56 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/vi/
2021-03-30 02:37:15 +02:00
Trần Ngọc Quân
51ec09d527 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/vi/
2021-03-30 02:37:04 +02:00
Trần Ngọc Quân
d29bab6974 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/enum/vi/
2021-03-30 02:36:53 +02:00
Trần Ngọc Quân
f06f020df2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-03-30 02:36:42 +02:00
Trần Ngọc Quân
d0dd8667b5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/vi/
2021-03-30 02:36:31 +02:00
Trần Ngọc Quân
0fde542bec Translated using Weblate (Vietnamese)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/vi/
2021-03-30 02:36:19 +02:00
Trần Ngọc Quân
4d447167c2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/vi/
2021-03-30 02:06:05 +02:00
Trần Ngọc Quân
e52c17efd4 Translated using Weblate (Vietnamese)
Currently translated at 99.4% (179 of 180 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/vi/
2021-03-30 02:05:48 +02:00
Trần Ngọc Quân
3f372c2f9d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/vi/
2021-03-30 02:05:35 +02:00
Trần Ngọc Quân
5b715a7e65 Translated using Weblate (Vietnamese)
Currently translated at 98.0% (51 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/vi/
2021-03-30 02:05:15 +02:00
Trần Ngọc Quân
7ab6ef758e Translated using Weblate (Vietnamese)
Currently translated at 5.5% (2 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/vi/
2021-03-28 12:20:13 +02:00
Jeroen Peelaerts
d701f770cb Revert back to jsPDF 1.3.4 (#3132) 2021-03-25 23:21:35 +01:00
jekkos
3f5e0b91da Bump jsPdf to 1.4.2 (#3132) 2021-03-25 11:48:43 +01:00
Jeroen Peelaerts
26083171be Remove unneeded directives (#3133) 2021-03-24 23:12:24 +01:00
jekkos
6df9ac6a99 Correct mapping for Bosnian (#3105) 2021-03-17 14:34:22 +01:00
Steve Ireland
3b1f4590ca This is a quick fix to a failure in the Sale.get_info method. (#3130) 2021-03-14 18:06:08 -04:00
Steve Ireland
da17356e89 Fix discount round plus some other minor tweaks. (#3125) 2021-03-13 19:05:29 -05:00
maktu
34f72d8b6a Translated using Weblate (Spanish (Mexico))
Currently translated at 96.9% (32 of 33 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/es_MX/
2021-03-12 13:16:39 +01:00
Jeroen Peelaerts
05942fe2f3 Add hook to validate save HTTP method (#3100) 2021-03-12 13:12:44 +01:00
Jeroen Peelaerts
162ca73ec2 Fix greyed out submit button after validation (#3122) 2021-03-10 22:18:12 +01:00
objecttothis
23f720ba40 Correct bug
- Corrected problem where clicking New caused future submit clicks to not submit.
2021-02-25 00:02:35 +01:00
objecttothis
ec587cc8a8 Correct formatting errors 2021-02-25 00:02:35 +01:00
objecttothis
d4f273e306 Grey out/disable Submit button after validation to prevent double submissions.
Change to a centralized method of greying out the submit button.
Rollback previous decentralized changes.
2021-02-25 00:02:35 +01:00
objecttothis
b0ed2bd34f Grey out/disable Submit button after validation to prevent double submissions. 2021-02-25 00:02:35 +01:00
Jeroen Peelaerts
3babfd2473 Refer to nginx docker in init_selfcert.sh (#3106) 2021-02-22 22:16:07 +01:00
Jeroen Peelaerts
e92a929ae3 Add bosnian translations (#3105) 2021-02-22 22:15:16 +01:00
Jeroen Peelaerts
21722f0749 Add Ukrainian translations
Signed-off-by: admin@buchach.org.ua
2021-02-21 22:20:51 +01:00
Jeroen Peelaerts
ca730c8f9c Login to docker hub before pulling images (#2995) 2021-02-20 21:35:22 +01:00
FrancescoUK
ea70956229 Merge pull request #3113 from opensourcepos/fix_disc_sales_rounding_2
Fix the discount calculation on reports.
2021-02-20 07:13:31 +00:00
Steve Ireland
4b65aa628a Fix the discount calculation on reports. The rounding was in the wrong place. 2021-02-19 22:00:31 -05:00
jekkos
4d03915612 Build docker container using travis.ci
Docker container was not built anymore the default compose file now downloads the image from docker hub.
This means we need to call docker daemon directly and build the Dockerfile ourselves.
2021-02-18 00:52:56 +01:00
Jeroen Peelaerts
6e546a098e Add mysql volumes + resolve CI_ENV (#3106) 2021-02-15 22:50:23 +01:00
FrancescoUK
a87faf8b1d Merge pull request #3106 from opensourcepos/fix-compose-file
Cleanup docker compose files
2021-02-14 21:02:13 +00:00
Jeroen Peelaerts
030ddea814 Make MySQL volume persistent in docker compose 2021-02-14 10:52:23 +01:00
Jeroen Peelaerts
a6cc04f49f Move ssl setup to separate compose file 2021-02-14 10:44:22 +01:00
FrancescoUK
da17d536ee Merge pull request #3107 from opensourcepos/fix_discounted_sales_rounding
Fix discounted price rounding issues in reports reported in  #2995
2021-02-14 06:41:19 +00:00
Steve Ireland
7a4cf1e2bd Fix discounted price rounding issues in reports 2021-02-13 20:44:56 -05:00
Jeroen Peelaerts
ddcfc0c3f0 Use stable docker hub image in compose.yml 2021-02-13 12:03:40 +01:00
FrancescoUK
4edc44a816 Merge pull request #3102 from albjeremias/revert-3098-fix-vendor-docker
Revert "add vendor folder to docker container"
2021-02-12 19:59:22 +00:00
FrancescoUK
03863f3737 Merge pull request #3099 from albjeremias/persistent-db
make db persistent..
2021-02-12 19:58:55 +00:00
FrancescoUK
7981d5ae77 Merge pull request #3101 from albjeremias/fix-docker-compose-build
Fix docker compose build
2021-02-12 19:58:06 +00:00
Albatroz Jeremias
8e3d90b62e Revert "add vendor folder to docker container" 2021-02-12 19:05:01 +00:00
Albatroz Jeremias
98363eec4c add assets building to server install 2021-02-12 18:57:39 +00:00
Albatroz Jeremias
ca98ca89b9 add assets building to local install 2021-02-12 18:57:18 +00:00
Albatroz Jeremias
9e339385a3 adding file for building assets 2021-02-12 18:55:22 +00:00
FrancescoUK
858246b335 Merge pull request #3098 from albjeremias/fix-vendor-docker
add vendor folder to docker container
2021-02-12 17:39:44 +00:00
Albatroz Jeremias
51bf757ffc make db persistent..
so it wont be destroyed with every start of docker-compose
2021-02-12 14:38:30 +00:00
Albatroz Jeremias
71f339028a add vendor folder to docker container 2021-02-12 14:35:29 +00:00
Aril Apria Susanto
b4fc061629 Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/id/
2021-02-10 10:44:52 +01:00
Aril Apria Susanto
e2a8c4a615 Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/id/
2021-02-10 10:44:52 +01:00
Jeroen Peelaerts
df45d8baf6 Item kit barcode review fixes (#3090) 2021-02-10 10:27:17 +01:00
Jeroen Peelaerts
6705e5f259 Add item_number to item kits module 2021-02-10 10:27:17 +01:00
Steve Ireland
68a2292d49 Merge pull request #3026 from opensourcepos/cash-rounding-register
Correct issues with cash rounding.
2021-02-08 08:26:47 -05:00
Steve Ireland
c5b22a0300 Improved support for cash rounding transactions. 2021-02-07 13:39:51 -05:00
Jeroen Peelaerts
be7d14c295 Change email address 2021-01-20 20:35:01 +01:00
Jeroen Peelaerts
485c24a123 Fix cookie secure flag (#3082) 2021-01-20 20:35:01 +01:00
Jeroen Peelaerts
6f2ac77a6e Remove unused migration (#3006) 2021-01-19 21:47:06 +01:00
jekkos
6e790aeea1 Update README.md 2021-01-19 21:43:39 +01:00
printgeek
2cb65bc2cb Update Specific_supplier.php 2021-01-19 21:39:20 +01:00
Jeroen Peelaerts
83ab188c8d Remove duplicate migration (#3006) 2021-01-17 11:52:45 +01:00
Jeroen Peelaerts
e20bf34a74 Use longblob for session data storage (#3006) 2021-01-17 11:36:06 +01:00
FrancescoUK
0daf08bf94 Merge pull request #3068 from opensourcepos/session-storage-fix
Use mediumblob for session data storage (#3006)
2021-01-04 21:58:31 +00:00
FrancescoUK
9297db9272 Merge pull request #3069 from opensourcepos/License-update
Contribution dates rearranged
2021-01-04 17:22:24 +00:00
WShells
d9dbb3d642 Dates fixing 2021-01-03 21:40:23 +02:00
Jeroen Peelaerts
5583a97772 Use mediumblob for session data storage (#3006) 2021-01-03 12:05:48 +01:00
WShells
630e38054a Contribution dates rearranged
Updated & Contribution dates rearranged.
2021-01-03 02:25:03 +02:00
hunsly
685033807a Translated using Weblate (Hungarian)
Currently translated at 83.3% (30 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/hu/
2021-01-01 23:04:58 +01:00
hunsly
c38801d8c0 Translated using Weblate (Hungarian)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/hu/
2021-01-01 23:04:58 +01:00
FrancescoUK
41f218806b Update README.md badge 2021-01-01 12:03:10 +00:00
FrancescoUK
8e52bd4c1a Prepare release 3.3.3 2020-12-31 12:13:50 +00:00
FrancescoUK
2a66107cbc Fix copyright typo and update licenses 2020-12-31 10:00:50 +00:00
FrancescoUK
2dec15c760 Merge pull request #3060 from opensourcepos/fix-table-mobile-glitch
Disable resize trigger (#3057)
2020-12-31 09:34:40 +00:00
FrancescoUK
dcda176614 Remove extra init_resize call 2020-12-31 09:25:22 +00:00
Jeroen Peelaerts
98306e20be Disable resize trigger (#3057) 2020-12-30 22:46:44 +01:00
Jeroen Peelaerts
a8e505d668 Use correct mimetype for invoice logo (#3019) 2020-12-29 22:09:27 +01:00
Jeroen Peelaerts
3acf9056ec Enable PHP rendering in DOMPdf (#3019) 2020-12-29 22:09:27 +01:00
FrancescoUK
9e800fa2c3 Register dropdown issue fix and refactoring (#3055) 2020-12-29 18:04:50 +00:00
FrancescoUK
5578b40185 Fix sale register issue with due amount and no customer (#3055) 2020-12-28 22:59:53 +00:00
FrancescoUK
03e2bed008 Merge pull request #2980 from opensourcepos/bower-update
Update bower.json
2020-12-28 16:09:40 +00:00
jekkos
c57a3d8973 Add dev server URL to README.md 2020-12-28 13:58:24 +01:00
jekkos
6178b7b678 Update README.md 2020-12-28 13:55:48 +01:00
Jeroen Peelaerts
4e85b8a677 Remove basic/selected toggle (#2980) 2020-12-27 22:00:22 +01:00
Jeroen Peelaerts
23e4deb7c4 se basic as export mode if nothing is selected (#2980) 2020-12-26 23:58:35 +01:00
Jeroen Peelaerts
f7d06c1da4 Enable secure flag to make SameSite effective 2020-12-25 22:19:59 +01:00
Jeroen Peelaerts
a25653e3cf Add cookie workaround for php 7.2 (#1980) 2020-12-25 22:19:59 +01:00
Jeroen Peelaerts
49ef2a2105 Enable httpOnly for session cookie only (#1903) 2020-12-25 22:19:59 +01:00
Jeroen Peelaerts
57f5d419dd Add samesite=Strict attribute (#1980) 2020-12-25 22:19:59 +01:00
Jeroen Peelaerts
58192f74c0 Export only selection if it's present (#2980) 2020-12-25 20:25:15 +01:00
FrancescoUK
d34ff02686 Update supported PHP versions 2020-12-23 12:46:47 +00:00
Jeroen Peelaerts
37cacdbc39 Fix sticky table header alignment (#2980) 2020-12-22 23:36:46 +01:00
Jeroen Peelaerts
f312a45469 Update header.php (#2980) 2020-12-22 14:16:44 +01:00
Jeroen Peelaerts
18d61188ff Fix sticky table headers (#2980) 2020-12-22 11:41:36 +01:00
FrancescoUK
718729b4c7 Merge pull request #3049 from opensourcepos/fix-form-submission
Use jquery.validate to check form submission state (#3044)
2020-12-21 16:38:56 +00:00
Jeroen Peelaerts
9a881c5232 Add stripes to table again (#2980) 2020-12-21 15:40:05 +01:00
Jeroen Peelaerts
82a9348bf9 Use jquery.validate to check form submission state (#3044) 2020-12-21 14:17:00 +01:00
Jeroen Peelaerts
76d6ad215e Fix modal submit after close (#3044) 2020-12-20 22:09:20 +01:00
Jeroen Peelaerts
2e2ef29f72 Add chartist bower main override 2020-12-20 12:09:50 +01:00
jekkos
2d21980313 Update bower.json 2020-12-18 13:55:30 +01:00
FrancescoUK
7eb310aac6 Further JS plugins updates 2020-12-17 12:43:52 +00:00
FrancescoUK
c72ef2aae9 Update npm packages 2020-12-17 12:12:07 +00:00
FrancescoUK
c8e7fab9d3 Update js plugins 2020-12-17 12:10:31 +00:00
FrancescoUK
4ca39bfedb Update grunt and composer 2020-12-17 10:43:00 +00:00
FrancescoUK
6ec7fa822b Merge pull request #3045 from opensourcepos/fix-double-submit
Prevent double submit (#3044)
2020-12-17 10:37:42 +00:00
Jeroen Peelaerts
fb21359663 Prevent double submit (#3044) 2020-12-16 22:50:01 +01:00
FrancescoUK
030b67224e Reset payments on item remove and sales register mode change (#3043) 2020-12-16 15:36:15 +00:00
FrancescoUK
2ce73993c6 Empty payments when Sales register item is edited (#3042) 2020-12-16 11:14:29 +00:00
FrancescoUK
0d08e8e15b Update en-GB sales_lang.php 2020-12-15 11:32:51 +00:00
WebShells
c3150efad5 Minor changes
divs and tds fixing
2020-12-15 10:21:00 +01:00
WebShells
303a1442d7 PDF Minor fixes
Textarea replacements for better Pdf rendering.
2020-12-15 10:21:00 +01:00
WShells
8a2923854a Update work_order.php
Textarea replacement
2020-12-15 10:21:00 +01:00
WShells
9318adaeb9 Update tax_invoice.php
Textarea replacement
2020-12-15 10:21:00 +01:00
WShells
ea64e5bb40 Minor changes
Replacing main textareas with fixed divs
2020-12-15 10:21:00 +01:00
WShells
5dd340d84c Update quote.php
Additional spaces removal/alignment
2020-12-15 10:21:00 +01:00
Jeroen Peelaerts
36bab70bfd Fix default register mode (#3016) 2020-12-15 09:54:08 +01:00
Jeroen Peelaerts
e4aa4017ba Fix invoice_email.css reference (#3019) 2020-12-06 23:21:55 +01:00
Jeroen Peelaerts
87ea0c45f7 Update inventory date if sale/receiving is edited (#2844) 2020-12-04 23:48:57 +01:00
Jeroen Peelaerts
9ee3557672 Use float precision 1e14 as upper limit for decimal parsing (#3004) 2020-12-04 23:48:05 +01:00
Carl Hunter
0fd531c4a2 Increase font size to 150% for total sales and 120% for amount due in sales module for better visibility 2020-12-03 15:49:16 +01:00
Carl Hunter
a54f596ea9 Rename Count column in Payments Summary Report to Transactions 2020-12-03 15:49:16 +01:00
Carl Hunter
d571734f98 Fixed sorting of Quantity column in Customer Summary Report 2020-12-03 15:49:16 +01:00
Carl Hunter
516f8f71da Added Transactions column to Customer Summary Report 2020-12-03 15:49:16 +01:00
Carl Hunter
5c31fb094b Fixed typo in Column 3 of Search Suggestions Layout 2020-12-03 15:49:16 +01:00
Carl Hunter
7b20e2c29c Added wholesale price as an option in search suggestions 2020-12-03 15:49:16 +01:00
Sean Sopheak Rida
d8431b8c00 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (36 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/km/
2020-11-30 18:50:36 +01:00
Sean Sopheak Rida
4484a47d4c Translated using Weblate (Central Khmer)
Currently translated at 1.1% (2 of 179 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/km/
2020-11-27 20:03:38 +01:00
Sean Sopheak Rida
ea523dd765 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/km/
2020-11-27 20:03:38 +01:00
Sean Sopheak Rida
b0e833f8c4 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/km/
2020-11-27 20:03:38 +01:00
Jeroen Peelaerts
4e83d967c1 Fix receiving return total (#3033) 2020-11-25 20:19:48 +01:00
Jeroen Peelaerts
f01f882bb8 Use float precision 1e14 as upper limit for decimal parsing (#3004) 2020-11-24 22:24:50 +01:00
Jeroen Peelaerts
e72dc752bb Make receivings date readonly (#2843) 2020-11-24 22:08:38 +01:00
FrancescoUK
8e054de506 Merge pull request #3024 from ket-c/master
Fixed inventory after deleting receiving
2020-11-22 09:02:27 +00:00
Kwaku Amoh-Aboagye
084770643d Fixed inventory after deleting receiving
When you add new/ update an item with a *receiving quantity* more than 1, (Let's say 63), so you then do a new receiving of that particular item, you will get the option to select pack as x63 or x1.

So if you select more that 1 Ship pack (receiving quantity), (in this eg. that is, x63) and finish the receiving successfully, your inventory of that item update with increment of 63 and inventory count details also, good.

But when you realize the receiving you just did had a mistake and  you go and delete it, the inventory reduction is wrongly calculated.
Instead of decreasing the inventory by 63, it reduces it by 1.

So i fixed it.
2020-11-20 21:49:52 +01:00
Jeroen Peelaerts
4b2b098a85 Add credit filter for payment types (#2983) 2020-11-20 17:24:24 +01:00
Kwaku Amoh-Aboagye
d4d25d240e Fixed inventory after deleting receiving
When you add new/ update an item with a *receiving quantity* more than 1, (Let's say 63), so you then do a new receiving of that particular item, you will get the option to select pack as x63 or x1.

So if you select more that 1 Ship pack (receiving quantity), (in this eg. that is, x63) and finish the receiving successfully, your inventory of that item update with increment of 63 and inventory count details also, good.

But when you realize the receiving you just did had a mistake and  you go and delete it, the inventory reduction is wrongly calculated.
Instead of decreasing the inventory by 63, it reduces it by 1.

So i fixed it.
2020-11-20 12:51:35 +00:00
Jeroen Peelaerts
2393c21647 Add FUNDING.yml 2020-11-15 23:43:21 +01:00
Jeroen Peelaerts
e47f3ee571 Fix detailed sales report (#2967) 2020-11-15 17:02:00 +01:00
Carl Hunter
5ddda4dc1e Fix quantity sorting in Categories, Employees and Transactions reports 2020-11-15 15:44:40 +01:00
Carl Hunter
20d78224a4 Added Transactions column to Employees Summary Report and Transactions Summary Report 2020-11-15 15:44:40 +01:00
khao_lek
8571cd1a44 Translated using Weblate (Thai)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/th/
2020-11-12 18:23:47 +01:00
khao_lek
772e809ee6 Translated using Weblate (Thai)
Currently translated at 100.0% (33 of 33 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/th/
2020-11-12 18:23:47 +01:00
khao_lek
35b09b2dfb Translated using Weblate (Thai)
Currently translated at 100.0% (179 of 179 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/th/
2020-11-12 18:23:47 +01:00
khao_lek
705fc1dd0b Translated using Weblate (Thai)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/th/
2020-11-12 18:23:47 +01:00
khao_lek
814cd4503c Translated using Weblate (Thai)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/th/
2020-11-12 18:23:47 +01:00
khao_lek
9020e85a17 Translated using Weblate (Thai)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/th/
2020-11-12 18:23:47 +01:00
khao_lek
f0b2f64490 Translated using Weblate (Thai)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/th/
2020-11-12 18:23:47 +01:00
Carl Hunter
36b0b28109 Add Retail Price to Items Summary Report 2020-11-07 22:40:07 +01:00
Jeroen Peelaerts
5a124ede99 Fix supplier category after update (#2972) 2020-11-07 22:25:56 +01:00
Steve Ireland
a8aafb6f47 Merge pull request #3001 from opensourcepos/theme-tweaker
Adjust a theme to handle feature development using non-theme supported classes.
2020-11-05 21:29:50 -05:00
SiuDuck
eae0f8e0cb Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/login
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/login/zh_Hant/
2020-11-03 06:56:02 +01:00
SiuDuck
9542f2dd9c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/zh_Hant/
2020-11-03 06:55:51 +01:00
Steve Ireland
b8eb67a14a Provides a way to adjust a theme to handle feature development using non-theme supported classes. 2020-11-02 21:02:43 -05:00
SiuDuck
d763dd3665 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/zh_Hant/
2020-11-03 02:40:10 +01:00
SiuDuck
5e3a6f0b07 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/zh_Hant/
2020-11-03 02:40:10 +01:00
SiuDuck
d45d57ac4a Translated using Weblate (Chinese (Traditional))
Currently translated at 8.3% (3 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/zh_Hant/
2020-11-03 02:40:10 +01:00
SiuDuck
58476dd3bc Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/zh_Hant/
2020-11-03 02:40:10 +01:00
Jeroen Peelaerts
67e1e4ef19 Add takings filtering on credit card (#2983) 2020-11-02 12:42:45 +01:00
Jeroen Peelaerts
8a26195a60 Remove magic quotes check in dompdf helper (#2996) 2020-10-29 23:14:44 +01:00
Jeroen Peelaerts
84a3a7e9b7 Fix notifications bis 2020-10-29 23:00:44 +01:00
Jeroen Peelaerts
958469e207 Fix detailed sale report (#2967) 2020-10-29 22:14:34 +01:00
Jeroen Peelaerts
47f61e1a30 Detailed sales + receiving fix (#2967) 2020-10-29 21:35:04 +01:00
jekkos-t520
f04ff91f44 Fix notifications 2020-10-29 21:07:46 +01:00
FrancescoUK
e6ac4de69d Merge pull request #2994 from opensourcepos/config-permissions
Increase timeout on migration (#2992)
2020-10-29 19:06:48 +00:00
Jeroen Peelaerts
e1ff739621 Increase timeout on migration (#2992) 2020-10-29 00:31:48 +01:00
Jeroen Peelaerts
625fb584ed Fix migration errors on clean install 2020-10-28 21:31:31 +01:00
Jeroen Peelaerts
fdb8cf8bda Do not show takings if no grant for sales_reports (#2981) 2020-10-28 21:00:16 +01:00
Jeroen Peelaerts
65c84a8857 Fix receivings report in MySQL (#2967) 2020-10-28 20:55:57 +01:00
jekkos
c0ac4b3400 Fix invoice email notification 2020-10-22 18:59:34 +02:00
jekkos
3471c0f947 Translated using Weblate (Flemish)
Currently translated at 98.3% (175 of 178 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
3aafa1649c Translated using Weblate (Flemish)
Currently translated at 97.2% (35 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
a8b37d36ff Translated using Weblate (Flemish)
Currently translated at 10.2% (8 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
5ec7e11c37 Translated using Weblate (Flemish)
Currently translated at 100.0% (2 of 2 strings)

Translation: opensourcepos/error
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/error/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
96c3738a7e Translated using Weblate (Flemish)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
1bb72d9fa9 Translated using Weblate (Flemish)
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
5737d220eb Translated using Weblate (Flemish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos
f40c4aedef Translated using Weblate (Flemish)
Currently translated at 92.7% (102 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/nl_BE/
2020-10-21 15:23:43 +02:00
jekkos-t520
52fc45ae23 Get rid of warnings in Php 7.4 2020-10-18 22:28:08 +02:00
jekkos
44f0036ac0 Bump MariaDB in test container 2020-10-18 00:40:26 +02:00
jekkos
1e47521f55 Bump MariaDB in dev container 2020-10-18 00:39:49 +02:00
FrancescoUK
d840a67150 Merge pull request #2970 from opensourcepos/fix-location-crud
Fix stock location crud (#2965)
2020-10-17 21:39:09 +01:00
FrancescoUK
8a16d5c93c Merge pull request #2971 from opensourcepos/email-config
Email config (#2968)
2020-10-17 21:37:51 +01:00
FrancescoUK
b3d4ad1a13 Update dockerfile images 2020-10-17 20:18:31 +01:00
FrancescoUK
2b8a2d8bb6 Housekeeping 2020-10-17 20:14:33 +01:00
jekkos
49be337200 Bump php to 7.4 in docker 2020-10-17 01:51:58 +02:00
jekkos-t520
632e25abe3 Email config (#2968) 2020-10-17 01:19:12 +02:00
jekkos-t520
760d7490a2 Fix stock location crud (#2965) 2020-10-17 01:05:03 +02:00
Jeroen Peelaerts
c0ff849c0f Do not cast quantity change to int in sale delete (#2964) 2020-10-13 21:27:09 +02:00
jekkos-t520
730b9ff366 Fix EAN13 generation for 90 (#2521) 2020-10-12 23:06:19 +02:00
Dźmitry Lizunkoŭ
71f12bf205 Translated using Weblate (Russian)
Currently translated at 41.0% (32 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/ru/
2020-10-09 12:38:56 +02:00
jekkos
8960f57bea Translated using Weblate (Flemish)
Currently translated at 99.2% (138 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/nl_BE/
2020-10-08 20:31:52 +02:00
jekkos
437b4115e6 Translated using Weblate (Flemish)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/nl_BE/
2020-10-08 20:31:51 +02:00
jekkos
461db7883f Translated using Weblate (Flemish)
Currently translated at 100.0% (68 of 68 strings)

Translation: opensourcepos/giftcards
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/giftcards/nl_BE/
2020-10-08 20:31:51 +02:00
jekkos
f254ecc44a Translated using Weblate (Flemish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/nl_BE/
2020-10-08 20:31:51 +02:00
jekkos
6432843fda Translated using Weblate (Flemish)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/nl_BE/
2020-10-08 20:31:51 +02:00
jekkos
ef198ce07a Translated using Weblate (Flemish)
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/nl_BE/
2020-10-08 20:31:51 +02:00
Emin Tufan Çetin
847724c5b3 Translated using Weblate (Turkish)
Currently translated at 100.0% (33 of 33 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/tr/
2020-10-08 17:32:50 +02:00
Emin Tufan Çetin
7c173cbfe2 Translated using Weblate (Turkish)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/tr/
2020-10-08 17:32:49 +02:00
Emin Tufan Çetin
93b3e85b8d Translated using Weblate (Turkish)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/tr/
2020-10-08 17:32:49 +02:00
Emin Tufan Çetin
4e83a2d45f Translated using Weblate (Turkish)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/tr/
2020-10-08 17:32:49 +02:00
jekkos-t520
eb9e9ddd38 Prepare 3.3.3 release 2020-10-05 22:45:20 +02:00
jekkos-t520
4fa69cbe13 Sync language files 2020-10-05 22:44:10 +02:00
WebShells
12d79b7309 En_GB Fix
En_GB Fix
2020-10-02 22:40:52 +02:00
WebShells
2743a6cf15 System Info Permissions
System Info Permissions Fix
2020-10-02 22:40:52 +02:00
WShells
9528624c0e Vulnerability Check
Import customers Vulnerability Check
2020-10-02 22:40:52 +02:00
WebShells
382aebcf16 Updates to System Info
Updates to System Info Fixing misplaced error messages (language variables).
2020-10-02 22:40:52 +02:00
Anaconda313
1be9fd04c4 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/expenses_categories/az/
2020-09-27 08:35:48 +02:00
Anaconda313
407a7c0132 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/receivings
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/receivings/az/
2020-09-27 08:35:48 +02:00
Anaconda313
8732648fc0 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/az/
2020-09-27 08:03:25 +02:00
Anaconda313
a3380a616b Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/az/
2020-09-27 08:03:25 +02:00
Anaconda313
56487226ef Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/employees
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/employees/az/
2020-09-27 08:03:25 +02:00
Anaconda313
cba6efec73 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (39 of 39 strings)

Translation: opensourcepos/module
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/module/az/
2020-09-27 07:27:15 +02:00
Anaconda313
7872a4c212 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (139 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/az/
2020-09-27 07:27:14 +02:00
Anaconda313
64ab220c4d Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (52 of 52 strings)

Translation: opensourcepos/customers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/customers/az/
2020-09-27 07:14:19 +02:00
Anaconda313
f8e9090eb7 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/az/
2020-09-27 06:57:57 +02:00
Natig Asadov
edef11ce7f Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (178 of 178 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/az/
2020-09-24 10:44:09 +02:00
jekkos
9ad13bf3e2 Add empty error.log so nginx can log to it (#2953) 2020-09-21 11:16:02 +02:00
Natig Asadov
3f70e24780 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/az/
2020-09-20 05:32:34 +02:00
Natig Asadov
5522f8580c Translated using Weblate (English)
Currently translated at 100.0% (8 of 8 strings)

Translation: opensourcepos/bootstrap_tables
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/bootstrap_tables/en/
2020-09-20 05:32:34 +02:00
Natig Asadov
956b54ad27 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (33 of 33 strings)

Translation: opensourcepos/item_kits
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/item_kits/az/
2020-09-20 05:25:16 +02:00
jekkos
1860fa0eaa Translated using Weblate (Flemish)
Currently translated at 89.2% (124 of 139 strings)

Translation: opensourcepos/reports
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/reports/nl_BE/
2020-09-20 05:25:16 +02:00
Natig Asadov
9e2cc52275 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (178 of 178 strings)

Translation: opensourcepos/sales
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/sales/az/
2020-09-20 05:25:16 +02:00
jekkos
3ee277ef70 Translated using Weblate (Flemish)
Currently translated at 100.0% (29 of 29 strings)

Translation: opensourcepos/attributes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/attributes/nl_BE/
2020-09-20 05:25:16 +02:00
Natig Asadov
1b5fe21f00 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (69 of 69 strings)

Translation: opensourcepos/common
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/common/az/
2020-09-20 05:25:16 +02:00
Natig Asadov
dd0b1d4628 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (298 of 298 strings)

Translation: opensourcepos/config
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/config/az/
2020-09-20 05:25:16 +02:00
Natig Asadov
65da551aad Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (78 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/az/
2020-09-20 05:25:16 +02:00
Natig Asadov
9aa6406dae Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (21 of 21 strings)

Translation: opensourcepos/suppliers
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/suppliers/az/
2020-09-20 05:25:16 +02:00
jekkos
d429712c98 Translated using Weblate (Flemish)
Currently translated at 6.4% (5 of 78 strings)

Translation: opensourcepos/taxes
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/taxes/nl_BE/
2020-09-20 05:25:16 +02:00
jekkos
8c92cbb277 Remove broken devDependencies badge 2020-09-19 22:58:05 +02:00
jekkos
40f02988d8 Update weblate svg url (#2914) 2020-09-19 22:57:23 +02:00
jekkos
9d7519bdc1 Translated using Weblate (Flemish)
Currently translated at 97.2% (35 of 36 strings)

Translation: opensourcepos/cashups
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/cashups/nl_BE/
2020-09-19 22:44:24 +02:00
Natig Asadov
4fcfdfd4aa Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (110 of 110 strings)

Translation: opensourcepos/items
Translate-URL: https://translate.opensourcepos.org/projects/opensourcepos/items/az/
2020-09-19 21:51:21 +02:00
Steve Ireland
8e99889174 On document reprint retrieve the taxes originally applied to the reprinted document. 2020-09-19 14:14:01 +02:00
jekkos-t520
30134520f4 Also add files inside of docker folder (#2953) 2020-09-17 23:42:47 +02:00
jekkos
0ade104dff Add docker folder to bintray zip (#2953) 2020-09-17 23:33:20 +02:00
jekkos-t520
1709be588f Bump to 3.4.0 (#2942) 2020-09-14 18:17:36 +02:00
SteveIreland
bf88f8fdae Fixes #2922 feature request by adding the cash rounding type of half-five as a trigger for cash rounding and including the decimals as a factor in the round function. 2020-09-14 18:03:12 +02:00
jekkos
bb309c2579 Revert force flag for docker push/tag (#2907)
Fix is done in the deploy script now, we explicitly remove the image tag before pull.
2020-09-02 09:34:01 +02:00
jekkos
b8bfe2239e Revert force flag for docker push/tag (#2907)
Fix is done in the deploy script now, we explicitly remove the image tag before pull.
2020-09-02 09:33:53 +02:00
jekkos
22324471e7 Use force flag with docker tag and push (#2907) 2020-09-01 17:40:57 +02:00
jekkos
5a638aa11c Remove dist and group tag from .travis.yml 2020-09-01 17:25:51 +02:00
FrancescoUK
f59bffd063 Merge pull request #2939 from jerry2714/fix_lets_encrypt_fail
fix Let's Encrypt fail on host install using docker
2020-09-01 15:56:03 +01:00
Jerry Hsu
24687756c1 fix Let's Encrypt fail on host install using docker
nginx container keep crashing while installing due to
wrong configuration file and ssl_certificate path mismatch.

- replace ssl_certificate path to match custom domain
- use correct URL to download files from certbot repo
2020-09-01 21:43:55 +08:00
jekkos-t520
b4fadbf84f Add quote year count to token list (#2886) 2020-08-24 13:21:40 +02:00
jekkos-t520
7873110fc5 Code style remarks (#2886) 2020-08-24 13:21:40 +02:00
Jeroen Peelaerts
46d957f5b4 Quote improvements 2020-08-24 13:21:40 +02:00
jekkos-t520
458856668d Fix farsi language bug (#2926) 2020-08-22 00:36:31 +02:00
odiea
98bd5ed09c Merge pull request #2931 from opensourcepos/fix_tax_basis
Fixes #2920 issue
2020-08-21 10:15:50 -06:00
SteveIreland
8b22b1d733 Fixes #2920 issue with computing item tax basis with base non-include taxes not factoring including discounts. 2020-08-20 22:03:59 -04:00
objecttothis
b9727d72d7 Allow ON DELETE CASCADE for receiving_id foreign key in links table 2020-08-19 23:01:30 +02:00
FrancescoUK
3e4e6af726 Merge pull request #2926 from Ali-Rnik/i18n-farsi-add
Add Farsi language
2020-08-19 21:43:29 +01:00
Ali R. Nik
4aabbaadaf solved syntax error 2020-08-18 22:01:24 +04:30
Ali R. Nik
a009f1719a add farsi language 2020-08-18 16:53:34 +04:30
jekkos-t520
cb67b53913 Update risky permission language (#2885) 2020-07-30 00:13:42 +02:00
objecttothis
d31307f8f7 Merge pull request #2910 from opensourcepos/remove_colon_limitation
Modify input validator
2020-07-29 22:31:47 +04:00
objecttothis
18bdb5d854 Modify input validator
- Matched the allowed inputs to what is found in the validator for the
Attribute form (/views/attributes/form.php) for consistency.
- Removed the restriction on colon and added the restriction on
underscore.
- Modified the language line to indicate correct error.
2020-07-28 16:58:43 +04:00
objecttothis
27e297540e Merge pull request #2909 from opensourcepos/objecttothis-patch-1
Update INSTALL.md
2020-07-28 16:35:54 +04:00
objecttothis
88033799a0 Update INSTALL.md
Added support for PHP 7.4
2020-07-28 15:31:04 +04:00
jekkos-t520
d9ec9ce772 Add danish, hebrew, armenian as languages 2020-07-28 00:29:25 +02:00
Weblate
b680bea331 Merge branch 'origin/master' into Weblate 2020-07-27 09:28:05 +02:00
Emin Tufan Çetin
9116dc1920 Translated using Weblate (Turkish)
Currently translated at 100.0% (297 of 297 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tr/
2020-07-27 09:28:00 +02:00
jekkos-t520
088f175fd6 Fix escape issue in german 2020-07-26 23:55:55 +02:00
jekkos-t520
8f3d960817 Only check read permissions on import_customers (#2885) 2020-07-26 23:45:29 +02:00
jekkos-t520
33734a27ce Sync translations files 2020-07-26 23:42:42 +02:00
jekkos-t520
dbcf980a2a Relax required permissions for import_customers (#2885) 2020-07-25 11:14:39 +02:00
jekkos-t520
e0709fcebb Update system_info.php (#2885) 2020-07-25 11:14:39 +02:00
Emin Tufan Çetin
b54adc09ad Translated using Weblate (Turkish)
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/tr/
2020-07-24 23:46:00 +02:00
khao_lek
33f87aeff1 Translated using Weblate (Thai)
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/th/
2020-07-24 23:46:00 +02:00
khao_lek
ceb6ba49b2 Translated using Weblate (Thai)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2020-07-24 23:46:00 +02:00
jekkos-t520
4d0b23cd23 Update permissions on application/logs (#2885) 2020-07-22 22:04:35 +02:00
jekkos
9cc38765c3 Update system_info.php (#2885)
@WebShells for you to review, but I think that removing that code will fix #2860
2020-07-21 23:20:52 +03:00
jekkos
b65f68b677 Update README.md 2020-07-15 11:43:15 +02:00
jekkos
702c1dc4df Update README.md 2020-07-15 10:54:34 +02:00
khao_lek
7040f80b7f Translated using Weblate (Thai)
Currently translated at 100.0% (78 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/th/
2020-07-14 19:28:58 +02:00
nicmorais
d925388424 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (78 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/pt_BR/
2020-07-14 19:28:58 +02:00
khao_lek
6c35f4bce0 Translated using Weblate (Thai)
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/th/
2020-07-14 19:28:58 +02:00
khao_lek
dd7f8bb508 Translated using Weblate (Thai)
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/th/
2020-07-14 19:28:58 +02:00
khao_lek
0ac0d1d06c Translated using Weblate (Thai)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/th/
2020-07-14 19:28:58 +02:00
khao_lek
5ffd536d4c Translated using Weblate (Thai)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/th/
2020-07-14 19:28:58 +02:00
khao_lek
2f71a6c6bb Translated using Weblate (Thai)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/th/
2020-07-14 19:28:58 +02:00
khao_lek
e8a15ebd37 Translated using Weblate (Thai)
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/th/
2020-07-14 19:28:58 +02:00
khao_lek
8d88e23ab9 Translated using Weblate (Thai)
Currently translated at 100.0% (68 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/th/
2020-07-14 19:28:58 +02:00
khao_lek
b07b17f1c7 Translated using Weblate (Thai)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/th/
2020-07-14 19:28:58 +02:00
khao_lek
ea8b9b4d10 Translated using Weblate (Thai)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/th/
2020-07-14 19:28:58 +02:00
khao_lek
b3d7b8d2f7 Translated using Weblate (Thai)
Currently translated at 100.0% (7 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/th/
2020-07-14 19:28:58 +02:00
Emin Tufan Çetin
cf2f29d91b Translated using Weblate (Turkish)
Currently translated at 100.0% (295 of 295 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tr/
2020-07-14 19:28:58 +02:00
khao_lek
5514cbea79 Translated using Weblate (Thai)
Currently translated at 100.0% (295 of 295 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2020-07-14 19:28:58 +02:00
nicmorais
5e9e09a227 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (295 of 295 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/pt_BR/
2020-07-14 19:28:58 +02:00
khao_lek
27659f8098 Translated using Weblate (Thai)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2020-07-14 19:28:58 +02:00
Emin Tufan Çetin
aed4163c51 Translated using Weblate (Turkish)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/tr/
2020-07-14 19:28:58 +02:00
khao_lek
09e3e56245 Translated using Weblate (Thai)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/th/
2020-07-14 19:28:58 +02:00
nicmorais
edf2258463 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/pt_BR/
2020-07-14 19:28:58 +02:00
jekkos-t520
0cb20b6384 Clear work order number during clear_all (#2820) 2020-07-05 23:13:36 +02:00
jekkos-t520
10bc0b5720 Fix custom invoice number (#2820) 2020-07-05 23:13:36 +02:00
Weblate
7704d5ec6f Merge branch 'origin/master' into Weblate 2020-07-01 11:18:43 +02:00
Jose Cruz Moreira Galvan
b08f087306 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (78 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es_MX/
2020-07-01 11:18:40 +02:00
Jose Cruz Moreira Galvan
0484cdd7d6 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es_MX/
2020-07-01 11:18:27 +02:00
Antonio Morales
e7deac8a00 Translated using Weblate (Spanish (Mexico))
Currently translated at 52.9% (36 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/es_MX/
2020-07-01 11:18:14 +02:00
Jose Cruz Moreira Galvan
d0e44a2fc5 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (292 of 292 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es_MX/
2020-07-01 11:17:58 +02:00
SteveIreland
b7fcc94eb0 Fixes #2872 SQL Error in Sale.php 2020-07-01 08:58:04 +02:00
objecttothis
a11f25e983 Update Item.php
Set group_concat_max_len session variable to prevent count totals at the bottom of the tables becoming `1 to null of null items` when database includes significant number of item rows.
2020-06-29 11:23:10 +02:00
objecttothis
85fea45def Merge pull request #2780 from opensourcepos/fix-included-destination-tax
Fix included destination tax
2020-06-29 09:25:06 +04:00
SteveIreland
6d91ae3845 Fix included destination tax 2020-06-28 18:12:46 -04:00
FrancescoUK
be44fb2aa7 Merge pull request #2870 from opensourcepos/fix-invoice-field
Fix invoice field visibility (#2820)
2020-06-27 19:02:26 +01:00
Jeroen Peelaerts
fa15b1e94b Fix invoice field visibility (#2820) 2020-06-27 17:36:17 +02:00
objecttothis
535df2b706 Merge pull request #2840 from opensourcepos/System-Info
Minor Changes & Footer Update
2020-06-27 15:27:23 +04:00
objecttothis
5fa4e18eb7 Update common_lang.php
Changes to British English at @daN4cat request.
2020-06-27 15:08:43 +04:00
objecttothis
581ca8745a Update common_lang.php
Inserting inline variable and resorted variables for ease of finding.
2020-06-27 14:57:25 +04:00
objecttothis
687ae74a62 Update footer.php
replaced " with ' to prevent the string from being parsed for variables unnecessarily.
2020-06-27 14:54:39 +04:00
objecttothis
f3ee3d7dbd Update footer.php
Corrected code to send the ending year to the language line for RTL languages to juggle.
2020-06-27 14:53:28 +04:00
Emin Tufan Çetin
fb0cee0e74 Translated using Weblate (Turkish)
Currently translated at 100.0% (292 of 292 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tr/
2020-06-17 20:41:36 +02:00
jekkos
1bd9501e76 Translated using Weblate (Flemish)
Currently translated at 93.1% (27 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/nl_BE/
2020-06-09 14:33:53 +02:00
Weblate
3fa55b2ff4 Merge branch 'origin/master' into Weblate 2020-06-09 14:19:16 +02:00
Corvin
633a888ae4 Translated using Weblate (Hungarian)
Currently translated at 29.5% (13 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/hu/
2020-06-09 14:19:15 +02:00
Emin Tufan Çetin
12125dfbd7 Translated using Weblate (Turkish)
Currently translated at 100.0% (291 of 291 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tr/
2020-06-09 14:18:59 +02:00
Andrés Sánchez
06aa032d45 Translated using Weblate (Spanish)
Currently translated at 100.0% (291 of 291 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es/
2020-06-09 14:18:52 +02:00
mazbrili
46f0af4d48 Translated using Weblate (Indonesian)
Currently translated at 100.0% (291 of 291 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/id/
2020-06-09 14:18:44 +02:00
Corvin
70857ba358 Translated using Weblate (Hungarian)
Currently translated at 27.7% (10 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/hu/
2020-06-09 14:18:29 +02:00
jekkos
5cf0d5faeb Added translation using Weblate (Armenian) 2020-06-09 14:18:13 +02:00
FrancescoUK
d6df082d32 Merge pull request #2852 from opensourcepos/constant_location_patch
Update constants.php
2020-06-04 09:16:10 +01:00
objecttothis
2cd90ccb17 Update constants.php
Correcting missing '
2020-06-04 11:11:50 +04:00
objecttothis
63ea90f537 Merge pull request #2849 from opensourcepos/constant_location_patch
Change the locations of global constants to make them global across files
2020-06-03 22:01:41 +04:00
objecttothis
a3fb05b566 Change the locations of global constants to make them global across
files

- Items Constants
- Attributes Constants
- Sale Constants
2020-06-03 14:15:05 +04:00
WebShells
8fc27d88e0 Colors for User Setup section
Colors for User Setup section
2020-05-27 10:16:46 +03:00
WebShells
b2bb4d8b62 PHP Declaration 2020-05-27 10:10:52 +03:00
WebShells
2fd50471de Footer in License Section 2020-05-27 09:24:49 +03:00
WebShells
ecff38d5bb Language Updates 2020-05-27 09:06:42 +03:00
WebShells
026114457b Minor Changes & Footer Update
Added timezone checkup to system info

1st Case:
Timezones are the same ( no warning )
2nd Case:
Difference in timezones: Warning will be displayed.

Simplifying OSPOS footer and replacing git project link by OSPOS website.
2020-05-27 08:56:51 +03:00
objecttothis
d5659b5131 Merge pull request #2816 from opensourcepos/category_as_dropdown
Category as dropdown
2020-05-20 14:08:32 +04:00
objecttothis
979ec9fe02 Merge branch 'master' into category_as_dropdown 2020-05-20 13:55:41 +04:00
objecttothis
89a56820d2 Formatting Corrections 2020-05-20 13:52:54 +04:00
objecttothis
145f49d247 Code Review Changes
- Refactored code to include constants
- Fixed comment formatting issues
2020-05-20 13:48:24 +04:00
objecttothis
a155399ec0 Merge branch 'master' into category_as_dropdown 2020-05-19 18:14:31 +04:00
objecttothis
f5424a3ed2 Create Global Constants to clarify code 2020-05-19 18:06:20 +04:00
objecttothis
35023e648f Force Travis-CI to rebuild to demo 2020-05-14 19:35:55 +04:00
jekkos
00020ba7dc Fix token_lib regresssion 2020-05-13 13:53:14 +02:00
jekkos-t520
3854587907 Fix default quantity #2829 2020-05-13 13:53:14 +02:00
objecttothis
ba6826a31e Merge pull request #2824 from opensourcepos/custom_image_upload_restrictions
Custom image upload restrictions
2020-05-08 23:59:22 +04:00
objecttothis
a154a8705c Fixed indentation issue
Fixed indentation issue
2020-05-08 23:58:40 +04:00
WShells
e6dad3eb81 Updating System Info Section (#2805)
* Updating Permissions Checkup & Fixed Clipboard issue on Mozilla and Other Browsers

* Re-ordering Tabs & Minor Changes

- Re-ordering Configuration Tabs, Merging Configuration/Settings tabs under Setup & Conf
- Minor Changes to Setup & Conf
- Translations Added

* Indent

* Minor Changes

* Dir Fix 

* Fixing Listing Sign

* Fixing Listing Sign in Warning messages
2020-05-08 20:14:48 +03:00
objecttothis
b3b7b227a9 Fixed problem with Images not deleting 2020-05-08 16:52:35 +04:00
objecttothis
f4a941e209 Removed duplicate variable 2020-05-08 16:08:49 +04:00
objecttothis
75f45bdb47 Corrected variable names 2020-05-08 16:04:37 +04:00
objecttothis
8a9edb8963 Removing variable not yet merged into the master from another PR 2020-05-08 16:02:02 +04:00
WShells
6f78672f82 Avatar Permissions
Editing Avatar file permissions to display 750 in place of 755 as our security check is set.
2020-05-08 14:59:42 +03:00
objecttothis
68a2489e13 Add Save logic
- Corrected minimum image size value in migration script
- Added save logic to save_general() in Config controller
- Added logic in the index() of the Config controller to properly prep
allowed_image_types data
2020-05-08 15:58:37 +04:00
objecttothis
9b18072f1e migration corrections 2020-05-08 14:23:12 +04:00
objecttothis
59142d9f69 Database logic additions
- Migration script to create default values
- Corrected naming of variables in general_config.php
- Replaced hardcoded values with db variables
2020-05-08 14:22:49 +04:00
objecttothis
a79e9dd4cb Changes to allow custom image restrictions in view.
- Added the fields to the general config view.
- Added Language lines to en_US and en_GB
- Corrected formatting of Columns in search suggestion layout
2020-05-08 13:15:13 +04:00
WShells
6eb5ed9381 Fixing TR Issues
Fixing TR Issues
2020-05-07 17:57:09 +03:00
Pete Ongsuwan
bfa42dba4a Translated using Weblate (Thai)
Currently translated at 92.8% (259 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2020-05-07 08:36:24 +02:00
Pete Ongsuwan
54d07e9063 Translated using Weblate (Thai)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/th/
2020-05-07 08:36:09 +02:00
Robby Triadi Susanto
e830595f43 Translated using Weblate (Indonesian)
Currently translated at 100.0% (78 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/id/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
79632731f8 Translated using Weblate (Thai)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/th/
2020-05-05 17:47:31 +02:00
Robby Triadi Susanto
5ed8384d45 Translated using Weblate (Indonesian)
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/id/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
307407d732 Translated using Weblate (Thai)
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/th/
2020-05-05 17:47:31 +02:00
khao_lek
a0b885d5ca Translated using Weblate (Thai)
Currently translated at 98.5% (67 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/th/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
5bf2f2ec43 Translated using Weblate (Thai)
Currently translated at 86.7% (242 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
a5f9185308 Translated using Weblate (Thai)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/th/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
c9535653c9 Translated using Weblate (Thai)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/th/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
249aa091fd Translated using Weblate (Thai)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2020-05-05 17:47:31 +02:00
Pete Ongsuwan
569e09e741 Translated using Weblate (Thai)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/th/
2020-05-05 17:47:31 +02:00
objecttothis
5a58af7a01 Removing LEFT JOIN of supplier table
per #2788 the Supplier table results from Item->get_all() and Item->get_info() are not used anywhere and causing a bug where the duplicate fields between the items table and the suppliers table (deleted and category) are returning just one value to the results.  This creates the undesired effect of expecting items.deleted and items.category but getting values from suppliers.deleted and suppliers.category.
2020-05-05 15:01:32 +02:00
objecttothis
9557f1c310 Forgotten commit
- This was correct in my code base.  I just forgot to commit it.
2020-05-05 14:47:42 +04:00
objecttothis
ee860e3b71 Disable fields on category_dropdown attribute view
- These changes prevent the type of attribute to be changed from
dropdown for categories as dropdown.
2020-05-05 14:06:11 +04:00
objecttothis
1dc3e15a55 Implement dropdown into item form view
- Created business logic in view to show dropdown if enabled
- Created business logic in controller to calculate key/value pairs of
dropdown
- Adjusted attribute model get_definition values to send values also if
definition_id is -1 or > 0 but not 0 which is what we are now using as
no definition instead of -1
2020-05-05 11:59:03 +04:00
objecttothis
d5d6d6668c Corrected errors 2020-05-04 17:19:03 +04:00
objecttothis
0051fa87ec Corrected errors 2020-05-04 17:18:48 +04:00
objecttothis
15a987cfd9 Adjust functions related to attributes 2020-05-04 17:00:02 +04:00
objecttothis
96bfa330ba Added the creation and removal of ospos_category attribute
- Added undelete function in Attribute model which could be useful for
adding the ability to restore attributes once deleted.
- Added business logic to Config controller save_general to
create/remove the attribute when the box is checked or unchecked.
2020-05-04 16:45:58 +04:00
objecttothis
231fe483d9 Add Config to enable show Category as dropdown
- Added the config item and label to view.
- Added the language line in en_US and en_GB.
- Added save business to Config controller.
- Fixed formatting issues in Config controller (removed tabs on blank
lines)
2020-05-04 15:23:50 +04:00
jekkos-t520
431074af58 Fix token lib test 2020-05-02 18:06:28 +02:00
objecttothis
06d73959af Merge pull request #2814 from opensourcepos/attr-dropdown-sort-patch
Added ORDER BY to sort various dropdowns
2020-05-01 17:54:01 +04:00
objecttothis
06eebc2ad3 Make DROPDOWN values sorted by alphabet. 2020-05-01 17:51:13 +04:00
objecttothis
42f8d71404 Added ORDER BY to sort various dropdowns
This sorts alphabetically:
- Attributes on the Attribute->Item view
- Dropdowns for adding attributes in the Attribute->Item view
- Dropdowns for the attribute values themselves.
2020-04-30 17:12:59 +04:00
Pete Ongsuwan
9b4621d3b8 Translated using Weblate (Thai)
Currently translated at 74.9% (209 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2020-04-29 12:39:02 +02:00
khao_lek
6b830d7acd Translated using Weblate (Thai)
Currently translated at 74.9% (209 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2020-04-29 12:38:56 +02:00
jekkos-t520
99fb55051a Divide quantity and price according to configured precision 2020-04-23 22:50:41 +02:00
jekkos-t520
6bd0d6277b Move parsing to token_lib 2020-04-23 22:50:41 +02:00
FrancescoUK
494b112424 Merge pull request #2806 from opensourcepos/values-keyword-patch-checkbox
Values is a mysql keyword
2020-04-22 18:55:59 +01:00
objecttothis
b0ba354b31 Values is a mysql keyword
Corrected the name of the alias from values to vals to prevent DB errors on conversion from DROPDOWN to CHECKBOX.
2020-04-22 13:37:31 +04:00
Weblate
e27c703026 Merge branch 'origin/master' into Weblate 2020-04-20 15:41:42 +02:00
khao_lek
822cd9f4ce Translated using Weblate (Thai)
Currently translated at 80.7% (42 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/th/
2020-04-20 15:41:41 +02:00
Emil Ebsen
a964c9b7d0 Added translation using Weblate (Danish) 2020-04-20 15:41:24 +02:00
WShells
7e49a7b82a Indent... 2020-04-18 05:56:44 +03:00
WShells
5fe3b2ff00 Updating Dir/File Location 2020-04-18 05:48:50 +03:00
WShells
c1b2e0cec6 Clipboard.js 2020-04-18 05:47:51 +03:00
WShells
11f2f1eafa Updating Copy to Clipboard
Updating Copy to Clipboard Function Supporting Mozilla Firefox Again
2020-04-18 05:46:18 +03:00
FrancescoUK
60d2dfcf1e Merge pull request #2791 from blutme/patch-1
loginButton Update login.php
2020-04-13 06:20:15 +01:00
blutme
64b2843cf6 loginButton Update login.php
the "loginButton" valule had no translation when changing languages.
2020-04-12 18:27:08 -05:00
Weblate
d716cf9a48 Merge branch 'origin/master' into Weblate 2020-04-10 19:00:22 +02:00
Emil Ebsen
01bb4e1b7a Added translation using Weblate (Danish) 2020-04-10 19:00:18 +02:00
WShells
3572ed1f86 Adding Andriux
...
2020-04-10 05:27:02 +03:00
objecttothis
66d426a1b6 Merge pull request #2739 from opensourcepos/pos_bool
Implement CHECKBOX attribute type
2020-04-08 15:37:12 +04:00
Weblate
62946906d8 Merge branch 'origin/master' into Weblate 2020-04-07 10:28:36 +02:00
Emil Ebsen
20e0eae9bd Translated using Weblate (Danish)
Currently translated at 99.6% (278 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/da/
2020-04-07 10:28:35 +02:00
Emil Ebsen
cf4a794c51 Translated using Weblate (Danish)
Currently translated at 97.2% (35 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/da/
2020-04-07 10:28:16 +02:00
JOHN PAPOULAKOS
748c48b43f Translated using Weblate (Greek)
Currently translated at 65.5% (19 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/el/
2020-04-07 10:28:01 +02:00
Emil Ebsen
03f2a0a921 Translated using Weblate (Danish)
Currently translated at 95.5% (64 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/da/
2020-04-07 10:27:46 +02:00
Emil Ebsen
d2409bf952 Added translation using Weblate (Danish) 2020-04-07 10:27:31 +02:00
jekkos-t520
783de92707 Revert migration version 2020-04-06 21:19:37 +02:00
jekkos-t520
5db1c7a813 Make migration logging more verbose 2020-04-04 17:03:21 +02:00
Emil Ebsen
5720f2b893 Added translation using Weblate (Danish) 2020-04-01 22:59:18 +02:00
Emil Ebsen
5286f80748 Added translation using Weblate (Danish) 2020-04-01 17:51:04 +02:00
Emil Ebsen
8a19bf3f4a Added translation using Weblate (Danish) 2020-03-31 19:41:34 +02:00
Emil Ebsen
c2a13fce9c Added translation using Weblate (Danish) 2020-03-28 17:11:15 +01:00
Emil Ebsen
b1973f26c9 Added translation using Weblate (Danish) 2020-03-27 14:46:13 +01:00
objecttothis
b5265870be More descriptive alias 2020-03-24 14:21:57 +04:00
objecttothis
4584b7eace Final indentation and formatting fixes 2020-03-24 14:17:36 +04:00
objecttothis
8a0c88b11c More indentation corrections 2020-03-24 14:13:08 +04:00
objecttothis
3281fc9bb0 Correct indentation problems 2020-03-24 14:04:04 +04:00
objecttothis
971ae5ec19 Correcting indentation problems 2020-03-24 13:18:35 +04:00
objecttothis
fb9fec1a10 Merge branch 'master' into pos_bool 2020-03-18 16:19:45 +04:00
objecttothis
c4c475b51f Updated CSV import to handle checkboxes
0, FALSE values create attributes marked as "unchecked"
NULL, "" and spaces do not create an attribute
1, TRUE and ANY other value creates an attribute and marks as checked.

Blank lines in CSV files are skipped with no error.
2020-03-18 15:49:49 +04:00
Emil Ebsen
e7ec8aa49f Added translation using Weblate (Danish) 2020-03-16 13:56:49 +01:00
Weblate
1be27549df Merge branch 'origin/master' into Weblate 2020-03-16 13:35:34 +01:00
khao_lek
8e979deb99 Translated using Weblate (Thai)
Currently translated at 68.4% (191 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2020-03-16 13:35:33 +01:00
Emil Ebsen
5ba9746264 Translated using Weblate (Danish)
Currently translated at 50.0% (18 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/da/
2020-03-16 13:35:20 +01:00
Emil Ebsen
20e4040d02 Added translation using Weblate (Danish) 2020-03-16 13:35:03 +01:00
FrancescoUK
425bee0ba1 Merge pull request #2764 from opensourcepos/fix-attribute-search
Fix attribute search (#2723)
2020-03-14 07:22:04 +00:00
FrancescoUK
5fe7186571 Merge pull request #2763 from opensourcepos/currency-format-test
Add unit test for locale_helper (#2748)
2020-03-14 07:20:59 +00:00
FrancescoUK
3382610871 Merge pull request #2760 from opensourcepos/attribute-colon-patch
Removing the restriction for colons in the name
2020-03-14 07:18:44 +00:00
jekkos-t520
0f2bafc7dd Fix attribute search (#2723) 2020-03-14 01:44:08 +01:00
jekkos-t520
ea85a85518 Add unit test for locale_helper (#2748) 2020-03-13 23:12:56 +01:00
jekkos
531035fef2 Update invalid chars 2020-03-13 22:41:42 +01:00
FrancescoUK
1d39ec3aa5 Merge pull request #2762 from opensourcepos/amp-attribute-bug-patch
Correct a bug causing & to break in POST
2020-03-13 18:11:24 +00:00
objecttothis
ecb21d2d5e Same correction for removing attribute value 2020-03-13 16:38:18 +04:00
objecttothis
a2a5db8901 Correct a bug causing & to break in POST
See #2758 for details
2020-03-13 16:32:39 +04:00
objecttothis
04ade7ab0b Removing the restriction for colons in the name
Please see #2665
2020-03-13 13:22:23 +04:00
Weblate
e579029ded Merge branch 'origin/master' into Weblate 2020-03-11 17:26:52 +01:00
Emil Ebsen
be06cec80d Translated using Weblate (Danish)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/da/
2020-03-11 17:26:50 +01:00
Emil Ebsen
ba1ef472e6 Added translation using Weblate (Danish) 2020-03-11 17:26:34 +01:00
jekkos-t520
45894857a6 Fix tests 2020-03-11 00:46:46 +01:00
jekkos-t520
4f60465fa0 Revert barcode rework 2020-03-11 00:15:37 +01:00
objecttothis
cefd287668 Resolve bug not updating attributes correctly
Prior to this fix, if the attribute was of DECIMAL or DATE type and the action was an UPDATE, then it would try to update the attribute_value, not the corresponding attribute_decimal or attribute_date.
2020-03-10 09:21:09 +01:00
Weblate
009905e405 Merge branch 'origin/master' into Weblate 2020-03-09 22:48:34 +01:00
Emin Tufan Çetin
bc38e94f42 Translated using Weblate (Turkish)
Currently translated at 100.0% (78 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/tr/
2020-03-09 22:48:34 +01:00
Johntini
ff8625fbe7 Translated using Weblate (Spanish)
Currently translated at 100.0% (78 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es/
2020-03-09 22:48:20 +01:00
Qbin
a5440f0443 Translated using Weblate (Chinese (Simplified))
Currently translated at 42.3% (33 of 78 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/zh_Hans/
2020-03-09 22:48:06 +01:00
khao_lek
5692ae4902 Translated using Weblate (Thai)
Currently translated at 84.1% (149 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/th/
2020-03-09 22:47:43 +01:00
Johntini
1cf5cbadd0 Translated using Weblate (Spanish)
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es/
2020-03-09 22:47:35 +01:00
Qbin
82351243f9 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.0% (51 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/zh_Hans/
2020-03-09 22:47:20 +01:00
Qbin
d47e687337 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/zh_Hans/
2020-03-09 22:47:04 +01:00
khao_lek
3700674045 Translated using Weblate (Thai)
Currently translated at 100.0% (35 of 35 strings)

Translation: ospos/employees
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/employees/th/
2020-03-09 22:46:50 +01:00
Johntini
b646e78ba6 Translated using Weblate (Spanish)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es/
2020-03-09 22:46:35 +01:00
Emil Ebsen
b1cb951a9e Translated using Weblate (Danish)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/da/
2020-03-09 22:46:21 +01:00
Jintao-Yao
f30e085d78 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/zh_Hans/
2020-03-09 22:46:13 +01:00
khao_lek
91c6508317 Translated using Weblate (Thai)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/th/
2020-03-09 22:46:00 +01:00
Qbin
d341f1987a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/zh_Hans/
2020-03-09 22:45:52 +01:00
Emil Ebsen
34b7e68f04 Added translation using Weblate (Danish) 2020-03-09 22:45:33 +01:00
jekkos-t520
858320fe20 Disable attribute sort (#2722) 2020-03-09 19:54:14 +01:00
jekkos-t520
4300f0a3c6 Rework barcode format parser 2020-03-08 20:15:22 +01:00
jekkos-t520
7c33159a38 Fix config.php in testing mode 2020-03-07 15:21:45 +01:00
jekkos-t520
9583483543 Update after_success line 2020-03-07 12:59:07 +01:00
jekkos
ba19bc5ad6 Update INSTALL.md 2020-03-07 12:51:28 +01:00
jekkos
a9b63fa360 Update INSTALL.md 2020-03-07 12:50:07 +01:00
jekkos-t520
dbe525a724 Run regular container build before push 2020-03-07 00:13:41 +01:00
jekkos-t520
7a1891e5e8 Try to fix docker push (#2751) 2020-03-06 23:52:48 +01:00
jekkos-t520
c6048c8461 Set global variables in .travis.env 2020-03-06 23:36:01 +01:00
jekkos-t520
1c76edfc01 Fix config.php (#2751) 2020-03-06 23:22:34 +01:00
jekkos-t520
eae2dd483b Remove hebrew (no more official CI support) 2020-03-06 23:00:46 +01:00
jekkos-t520
a8d0a376f3 Remove failing test + fetch script from github 2020-03-06 21:32:51 +01:00
jekkos-t520
be2ff4bee4 Don't expose port + set mysql hostname 2020-03-06 21:32:51 +01:00
jekkos-t520
609cb14cda Upgrade compose version 2020-03-06 21:32:51 +01:00
jekkos-t520
2d57326779 Run tests using travis-CI 2020-03-06 21:32:51 +01:00
jekkos-t520
2eec0ae6f0 Fix unit test 2020-03-06 21:32:51 +01:00
jekkos-t520
99bd6570b9 Load testing dotenv if environment is set 2020-03-06 21:32:51 +01:00
jekkos-t520
2110692664 Overwrite backupGlobals + base_url generation in testing mode 2020-03-06 21:32:51 +01:00
jekkos-t520
bc4a5570a5 Disable globals + fixup base_url 2020-03-06 21:32:51 +01:00
jekkos-t520
d8f784c3f0 Align mariadb versions for compose files 2020-03-06 21:32:51 +01:00
jekkos-t520
7d94ba7817 Make multistage docker build 2020-03-06 21:32:51 +01:00
FrancescoUK
f3e87d3c3c Revert change causing issues with Detailed Transactions 2020-03-06 19:56:48 +00:00
Weblate
f4487947c5 Merge branch 'origin/master' into Weblate 2020-03-02 22:10:46 +01:00
Qbin
72915d84ef Translated using Weblate (Chinese (Simplified))
Currently translated at 66.1% (117 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/zh_Hans/
2020-03-02 22:10:45 +01:00
Qbin
62eae20cfa Translated using Weblate (Chinese (Simplified))
Currently translated at 55.7% (29 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/zh_Hans/
2020-03-02 22:10:19 +01:00
Thomas Arleth Pedersen
3e698f96dc Added translation using Weblate (Danish) 2020-03-02 22:09:56 +01:00
objecttothis
ea7cb48f1c CHECKBOX Attribute type
Conversion from DROPDOWN or TEXT logic
2020-03-02 14:17:48 +04:00
FrancescoUK
cdaf88ef28 Fix Employee autocomplete bug (#2736) 2020-03-01 17:34:39 +00:00
jekkos
822b7211ec Install dev dependencies again 2020-02-28 15:36:23 +01:00
objecttothis
d7a59221fc Fix problem with unchecked attributes
Previously, if the attribute was unchecked, the form wouldn't submit the
attribute and the model/controller would delete the attribute_link from
the item.  A hidden input type with value 0 occuring before the checkbox
fixes this problem.
2020-02-27 12:24:04 +04:00
jekkos-t520
b8174a85ee Move dotenv to depdencies (#2737) 2020-02-26 23:41:33 +01:00
jekkos-t520
519242aead Set copy permissions to 775 2020-02-25 22:39:17 +01:00
objecttothis
ff79b73e34 Implement CHECKBOX attribute type
Attribute Configuration view
Attributes section of item management view
Attributes section of CSV item import
2020-02-25 15:44:49 +04:00
Weblate
c8b49de7d1 Merge branch 'origin/master' into Weblate 2020-02-24 22:26:53 +01:00
Emin Tufan Çetin
cd9e05dac1 Translated using Weblate (Turkish)
Currently translated at 100.0% (177 of 177 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/tr/
2020-02-24 22:26:52 +01:00
Fredrik Angell Moe
1488453ffa Added translation using Weblate (Norwegian Bokmål) 2020-02-24 22:26:34 +01:00
FrancescoUK
c5838ba098 Merge pull request #2727 from opensourcepos/add_tax_group_constraint
Add tax group constraint
2020-02-23 17:51:39 +00:00
jekkos-t520
b88b60597b Disable tests in build 2020-02-22 01:14:32 +01:00
jekkos-t520
3ceb2569cf Use private docker buildbox 2020-02-22 01:08:30 +01:00
jekkos
556335918b Do not install dev dependencies 2020-02-21 22:41:02 +01:00
FrancescoUK
7145ad9eec Fix Travis composer docker error (#2729) 2020-02-18 21:03:06 +00:00
SteveIreland
57dc2d2b11 Add unique contraint to tax group 2020-02-16 21:08:58 -05:00
FrancescoUK
bf88927e66 Fix README sentence 2020-02-16 14:00:40 +00:00
FrancescoUK
efd53cbccf Add Employee name to suspended form (#2678) 2020-02-16 13:46:25 +00:00
FrancescoUK
e0620e1a3e Add more onClick select the text content 2020-02-15 22:44:03 +00:00
FrancescoUK
622fdc27aa Fix detailed reports error with attributes (#2721) 2020-02-15 22:01:51 +00:00
Emin Tufan Çetin
7a7d1ed44e Translated using Weblate (Turkish)
Currently translated at 100.0% (176 of 176 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/tr/
2020-02-15 01:18:50 +01:00
Josué Arreola
161bbb4e07 Translated using Weblate (Spanish (Mexico))
Currently translated at 98.8% (174 of 176 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es_MX/
2020-02-15 01:18:50 +01:00
Josué Arreola
035f2b7982 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/es_MX/
2020-02-15 01:18:50 +01:00
Nguyen Tuan Anh
4234c4bc3a Translated using Weblate (Vietnamese)
Currently translated at 99.2% (277 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/vi/
2020-02-15 01:18:50 +01:00
jekkos
fa9f0ade55 Don't close bug tickets direclty 2020-02-15 01:04:00 +01:00
jekkos
0bbb6adaba Add stale bot configuration 2020-02-15 01:00:37 +01:00
FrancescoUK
8452959388 Merge pull request #2720 from opensourcepos/favicon.ico-correction-patch
uploaded the png when I should have uploaded the ico
2020-02-12 15:21:13 +00:00
objecttothis
d1ba4bc875 corrected favicon.ico 2020-02-12 18:03:17 +04:00
objecttothis
fbd895d67c uploaded the png when I should have uploaded the ico 2020-02-12 18:01:24 +04:00
FrancescoUK
ca2907d6a6 Merge pull request #2708 from opensourcepos/fix-inv-summary-regression
Fix inventory summary regression (#2702)
2020-02-05 20:54:41 +00:00
FrancescoUK
6b07d8ee21 Fix wrong tax amount with tax included 2020-02-04 21:25:37 +00:00
jekkos
8d97efd52d Fix inventory summary regression (#2702) 2020-02-04 18:07:52 +01:00
FrancescoUK
864b024f31 Merge pull request #2709 from opensourcepos/fix-location-permissions
Check if grant for module exists (#2702)
2020-01-31 06:12:20 +00:00
jekkos
8d6a23d0e7 Check if grant for module exists (#2702) 2020-01-30 08:56:39 +01:00
jekkos
4722a5600f Do not show deleted items in low inventory report (#2702) 2020-01-29 23:26:08 +01:00
FrancescoUK
aba9c2bc30 Fix Customer delete issue 2020-01-26 09:12:02 +00:00
FrancescoUK
dea21f6d38 Revert "set customer date to be the first sale one if time 0"
This reverts commit 3cb1bf6b87.
2020-01-25 23:27:22 +00:00
FrancescoUK
3cb1bf6b87 set customer date to be the first sale one if time 0 2020-01-25 23:22:06 +00:00
FrancescoUK
dfe66e8083 Fix Customer delete error 2020-01-25 21:11:30 +00:00
FrancescoUK
285b66406b Fix Sale_lib error with PHP 7.2 (#2648) 2020-01-25 20:57:43 +00:00
FrancescoUK
99d861535e Add allow sales change price permission (#2653) 2020-01-25 17:22:26 +00:00
FrancescoUK
ba40783017 Fix graphical payment report bug 2020-01-22 22:10:56 +00:00
FrancescoUK
c871c68aeb Fix payment dates not being set correctly 2020-01-19 23:02:26 +00:00
FrancescoUK
6e523a30ab Database migration minor fixes 2020-01-19 22:45:17 +00:00
FrancescoUK
7739994eda Minor indentation adjustment 2020-01-19 20:51:41 +00:00
FrancescoUK
5007410c1a Change Employee input type in Sales edit form 2020-01-19 20:32:57 +00:00
FrancescoUK
b4eabd2265 Fix missing cash refund in sale edit form 2020-01-19 18:24:11 +00:00
FrancescoUK
40d8ea0268 Replace serial number with item_number (barcode) in detailed reports 2020-01-18 15:32:12 +00:00
jekkos
0de4e51c41 Fix item bulk creation 2020-01-17 20:52:21 +01:00
Trần Ngọc Quân
6c6c18418e Translated using Weblate (Vietnamese)
Currently translated at 40.2% (31 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/vi/
2020-01-17 13:49:56 +01:00
Emin Tufan Çetin
2f245b0c73 Translated using Weblate (Turkish)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/tr/
2020-01-17 13:49:48 +01:00
Trần Ngọc Quân
1337e88191 Translated using Weblate (Vietnamese)
Currently translated at 90.4% (19 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/vi/
2020-01-17 13:49:33 +01:00
Trần Ngọc Quân
6ad6483e3a Translated using Weblate (Vietnamese)
Currently translated at 98.2% (172 of 175 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/vi/
2020-01-17 13:49:20 +01:00
Emin Tufan Çetin
afa13473ed Translated using Weblate (Turkish)
Currently translated at 100.0% (175 of 175 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/tr/
2020-01-17 13:49:12 +01:00
Trần Ngọc Quân
4e26567bee Translated using Weblate (Vietnamese)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/vi/
2020-01-17 13:48:58 +01:00
Emin Tufan Çetin
d0ac084cac Translated using Weblate (Turkish)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/tr/
2020-01-17 13:48:51 +01:00
Trần Ngọc Quân
bee6e4d2a9 Translated using Weblate (Vietnamese)
Currently translated at 94.8% (37 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/vi/
2020-01-17 13:48:36 +01:00
Emin Tufan Çetin
a6c76ae0e4 Translated using Weblate (Turkish)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/tr/
2020-01-17 13:48:30 +01:00
Trần Ngọc Quân
bf0875be45 Translated using Weblate (Vietnamese)
Currently translated at 99.0% (108 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/vi/
2020-01-17 13:48:15 +01:00
Emin Tufan Çetin
74585ff97d Translated using Weblate (Turkish)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/tr/
2020-01-17 13:48:01 +01:00
Trần Ngọc Quân
81ea7ab872 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/vi/
2020-01-17 13:47:46 +01:00
Trần Ngọc Quân
4b6fd69e3c Translated using Weblate (Vietnamese)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/vi/
2020-01-17 13:47:31 +01:00
Trần Ngọc Quân
bc4266e9ab Translated using Weblate (Vietnamese)
Currently translated at 85.7% (6 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/vi/
2020-01-17 13:47:17 +01:00
Emin Tufan Çetin
d6147b4292 Translated using Weblate (Turkish)
Currently translated at 100.0% (7 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/tr/
2020-01-17 13:47:11 +01:00
Emin Tufan Çetin
84ef3e6c3d Translated using Weblate (Turkish)
Currently translated at 100.0% (279 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tr/
2020-01-17 13:46:56 +01:00
jekkos
b4cde57036 Translated using Weblate (Flemish)
Currently translated at 100.0% (279 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/nl_BE/
2020-01-17 13:46:47 +01:00
Emin Tufan Çetin
4c3551909f Translated using Weblate (Turkish)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/tr/
2020-01-17 13:46:34 +01:00
Trần Ngọc Quân
2075f3c717 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/vi/
2020-01-17 13:46:18 +01:00
FrancescoUK
d08381850d Merge pull request #2668 from opensourcepos/fix-attr-default-date
Use today as default date in DATETIME attribute (#2666)
2020-01-12 22:13:59 +00:00
FrancescoUK
af2fd78348 Fix Graphical Summary Payment report 2020-01-12 20:28:55 +00:00
FrancescoUK
60b9069a60 Fix Inventory Summary wrong filters input 2020-01-12 20:28:55 +00:00
FrancescoUK
472e15ab0a Add detailed supplier report 2020-01-12 20:28:55 +00:00
FrancescoUK
bdddb945f0 Reports minor fixes 2020-01-12 20:28:55 +00:00
jekkos
615038ef38 Change mktime() with time() (#2666) 2020-01-11 20:08:45 +01:00
Emin Tufan Çetin
ef661e52e7 Translated using Weblate (Turkish)
Currently translated at 100.0% (175 of 175 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/tr/
2020-01-11 18:57:53 +01:00
Robby Triadi Susanto
bd52f0b004 Translated using Weblate (Indonesian)
Currently translated at 100.0% (175 of 175 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/id/
2020-01-11 18:57:53 +01:00
Mohammed Bensoltana
8ec90d3b40 Translated using Weblate (French)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/fr/
2020-01-11 18:57:53 +01:00
Mohammed Bensoltana
2aee09d441 Translated using Weblate (French)
Currently translated at 98.0% (51 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/fr/
2020-01-11 18:57:53 +01:00
Emin Tufan Çetin
35a6095d30 Translated using Weblate (Turkish)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/tr/
2020-01-11 18:57:53 +01:00
Mohammed Bensoltana
23a251aa77 Translated using Weblate (French)
Currently translated at 87.5% (7 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/fr/
2020-01-11 18:57:53 +01:00
justln1113
48852f0c3f Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (2 of 2 strings)

Translation: ospos/error
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/error/zh_Hant/
2020-01-11 18:57:53 +01:00
Emin Tufan Çetin
42ffe87bf5 Translated using Weblate (Turkish)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/tr/
2020-01-11 18:57:53 +01:00
Emin Tufan Çetin
2ba61fab9d Translated using Weblate (Turkish)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/tr/
2020-01-11 18:57:53 +01:00
Emin Tufan Çetin
1fc634214f Translated using Weblate (Turkish)
Currently translated at 100.0% (279 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tr/
2020-01-11 18:57:53 +01:00
luisgarciadiaz
cec35683f4 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es_MX/
2020-01-11 18:57:53 +01:00
Robby Triadi Susanto
d4b2b768d3 Translated using Weblate (Indonesian)
Currently translated at 100.0% (279 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/id/
2020-01-11 18:57:53 +01:00
Mohammed Bensoltana
a71226e995 Translated using Weblate (French)
Currently translated at 93.5% (261 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/fr/
2020-01-11 18:57:53 +01:00
Emin Tufan Çetin
3cec08c734 Translated using Weblate (Turkish)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/tr/
2020-01-11 18:57:53 +01:00
justln1113
cccc72d0d8 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.8% (2 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/zh_Hant/
2020-01-11 18:57:53 +01:00
Emin Tufan Çetin
bf19f13d4c Translated using Weblate (Turkish)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/tr/
2020-01-11 18:57:53 +01:00
luisgarciadiaz
0d7d8ddee2 Translated using Weblate (Spanish)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/es/
2020-01-11 18:57:53 +01:00
jekkos
de6a547272 Use today as default date in DATETIME attribute (#2666) 2020-01-09 20:24:32 +01:00
FrancescoUK
2e1c798c6e Merge pull request #2662 from andriux1990/master
More select onClick
2020-01-04 15:03:54 +00:00
FrancescoUK
26afd63e39 Revert permission change, retain rest of updates. 2020-01-04 15:01:23 +00:00
andriux1990
f8ef88362d disable edit price to sales employees 2020-01-04 06:32:37 -06:00
FrancescoUK
ae445c8ece Merge pull request #2660 from opensourcepos/payments-for-invoice-email
Add payments to emailed invoice and fix issue with unsupported fonts
2020-01-04 10:41:50 +00:00
FrancescoUK
351bc544ee Fixed indentation 2020-01-04 10:38:31 +00:00
SteveIreland
5dfe0c237f Add payments to emailed invoice and fix issue with unsupported fonts 2020-01-03 21:01:07 -05:00
FrancescoUK
3b628bed45 Prepare Release 3.3.2 2020-01-03 22:38:57 +00:00
FrancescoUK
a081b72916 Fix issue with POS transaction return when Items are deleted (#2659) 2020-01-03 21:56:43 +00:00
FrancescoUK
44c1e8ce69 Merge pull request #2658 from opensourcepos/fix_full_group_by
Fix item + item kits using only_full_group_by
2020-01-03 18:16:51 +00:00
jekkos
d52c16fbba Fix item form refresh (#2538) 2020-01-03 14:26:11 +01:00
jekkos
2351ced921 Add aggregate to fix only_full_group_by (#2538) 2020-01-03 09:13:51 +01:00
Awadhoot Jog
afef8ff4a3 use github raw urls
curl fetches html content for non-raw urls
2020-01-03 09:10:01 +01:00
jekkos
f9da801f06 Add aggregate to fix only_full_group_by (#2538) 2020-01-03 00:16:34 +01:00
FrancescoUK
0c3e7be420 Merge pull request #2633 from opensourcepos/decimal_parsing_fix
Expand flexibility of parse_decimal function
2020-01-02 17:03:32 +00:00
jekkos
43420f02f2 Codestyle remarks 2020-01-02 12:40:31 +01:00
FrancescoUK
47b1b7f519 Update composer libraries 2019-12-30 12:01:01 +00:00
FrancescoUK
91d72c0265 Merge pull request #2641 from opensourcepos/csrf-cookie-prefix
Add cookie_prefix to csrf cookie name (#2638)
2019-12-30 11:47:37 +00:00
jekkos
5a98b9c3fd Fix portugese language (#2632) 2019-12-30 12:46:07 +01:00
jekkos
fd3b48ba43 Add cookie_prefix to csrf cookie name (#2638) 2019-12-30 11:29:17 +01:00
FrancescoUK
e03ee00e61 Merge pull request #2639 from opensourcepos/refresh-after-import
Refresh tables after import + close after invoice email (#478)
2019-12-29 20:31:23 +00:00
jekkos
685f38e6a0 Bump to CI 3.1.11 (fixes bug with captcha generation) 2019-12-29 19:02:44 +01:00
andriux1990
2641a34a1e onclick 2019-12-29 17:55:35 +01:00
andriux1990
59bf8d0a45 item selection 2019-12-29 17:55:35 +01:00
jekkos
b8f255cc50 Refresh tables after import + close after invoice email (#478) 2019-12-29 17:50:17 +01:00
andriux1990
fae67be8c8 onclick 2019-12-24 07:18:10 -06:00
SteveIreland
230d822fce Add support to parse_decimal function for tax_decimals and quantity_decimals parsing. 2019-12-22 11:04:01 -05:00
andriux1990
5088362430 item selection 2019-12-15 22:02:09 -06:00
FrancescoUK
970d2d1f42 Bump version to 3.4.0 2019-12-14 18:42:40 +00:00
FrancescoUK
c786d4e0ab Fix certbot github path (#2598) 2019-12-14 17:17:40 +00:00
FrancescoUK
dcb130c1c6 Fix certbot github path (#2598) 2019-12-14 17:01:04 +00:00
Ivailo Kamenov
39d70f17b3 Translated using Weblate (Bulgarian)
Currently translated at 94.8% (166 of 175 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/bg/
2019-12-01 01:48:30 +01:00
Jintao-Yao
b7443be756 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/zh_Hans/
2019-12-01 01:48:30 +01:00
Jintao-Yao
f75d0af6df Translated using Weblate (Chinese (Simplified))
Currently translated at 61.6% (172 of 279 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/zh_Hans/
2019-12-01 01:48:30 +01:00
Jintao-Yao
420957ecb7 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.5% (28 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/zh_Hans/
2019-12-01 01:48:30 +01:00
Jintao-Yao
fde61ae0d6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/zh_Hans/
2019-12-01 01:48:30 +01:00
FrancescoUK
644694a9f2 Merge pull request #2611 from opensourcepos/3.3.1_patch_csv_import_BOM_check
3.3.1 patch csv import bom check
2019-11-26 19:03:11 +00:00
objecttothis
05c022c3f0 Refactoring variables and replacing Excel with CSV 2019-11-26 14:40:41 +04:00
objecttothis
619742de4e Refactoring files and variable names in Customer/People 2019-11-25 17:27:59 +04:00
objecttothis
6294079ce3 File rename and variable refactor to correct error in import. 2019-11-25 15:51:31 +04:00
objecttothis
35a59fc400 refactor variable names to reflect Excel --> CSV wording 2019-11-18 14:39:21 +04:00
objecttothis
0180de5490 Correctly check for BOM and skip if exists
No characters are skipped if BOM doesn't exist
2019-11-18 14:30:18 +04:00
objecttothis
a26ae1a9b3 Refactor to reflect Excel --> CSV wording change 2019-11-18 14:30:18 +04:00
Jens
dd7495a04c Translated using Weblate (Dutch)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/nl/
2019-11-16 16:36:15 +01:00
Jens
a59236f4ae Translated using Weblate (Dutch)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/nl/
2019-11-16 16:36:00 +01:00
Jens
ab23e01ef8 Translated using Weblate (Dutch)
Currently translated at 11.8% (33 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/nl/
2019-11-16 16:35:47 +01:00
Jens
a52d923f79 Translated using Weblate (Dutch)
Currently translated at 47.7% (32 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/nl/
2019-11-16 16:35:32 +01:00
Weblate
5c541fcc03 Merge branch 'origin/master' into Weblate 2019-11-14 22:08:14 +01:00
Israel Chavez
afba8b58a3 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es_MX/
2019-11-14 22:08:13 +01:00
xarhang
2f755de206 Translated using Weblate (Lao)
Currently translated at 45.4% (35 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/lo/
2019-11-14 22:08:06 +01:00
numa-drrey
06506d2793 Translated using Weblate (German)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/de/
2019-11-14 22:07:59 +01:00
wd-code
11a66b79b1 Translated using Weblate (French)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/fr/
2019-11-14 22:07:52 +01:00
Lord Cold
782bfd23ad Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/es_MX/
2019-11-14 22:07:17 +01:00
EcuadorAmaLaVida
d3625c1b72 Translated using Weblate (Spanish)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/es/
2019-11-14 22:07:06 +01:00
Daniel Millan
87ec999053 Translated using Weblate (Spanish)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/es/
2019-11-14 22:07:06 +01:00
Andrea Mangini
5e074d2bef Translated using Weblate (Italian)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/it/
2019-11-14 22:06:58 +01:00
wd-code
bbc12bb026 Translated using Weblate (French)
Currently translated at 90.4% (19 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/fr/
2019-11-14 22:06:48 +01:00
amir alcocer
9b15d1dcd1 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es_MX/
2019-11-14 22:06:24 +01:00
Lord Cold
fa38bf747a Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es_MX/
2019-11-14 22:06:21 +01:00
EcuadorAmaLaVida
a03c22cbac Translated using Weblate (Spanish)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es/
2019-11-14 22:06:13 +01:00
Andrea Mangini
e51f77d30e Translated using Weblate (Italian)
Currently translated at 98.8% (171 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/it/
2019-11-14 22:06:06 +01:00
numa-drrey
577394f167 Translated using Weblate (German)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/de/
2019-11-14 22:05:59 +01:00
wd-code
c67af83de4 Translated using Weblate (French)
Currently translated at 93.0% (161 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/fr/
2019-11-14 22:05:52 +01:00
Remco Gerbrands
7e8014dd2e Translated using Weblate (Dutch)
Currently translated at 69.9% (121 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/nl/
2019-11-14 22:05:45 +01:00
numa-drrey
4600f4d9f2 Translated using Weblate (German)
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/de/
2019-11-14 22:04:57 +01:00
EcuadorAmaLaVida
bbd2c120f8 Translated using Weblate (Spanish)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/es/
2019-11-14 22:04:38 +01:00
EcuadorAmaLaVida
1036fcedd7 Translated using Weblate (Spanish)
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/es/
2019-11-14 22:04:23 +01:00
numa-drrey
47121d31d1 Translated using Weblate (German)
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/de/
2019-11-14 22:04:14 +01:00
Natig Asad
5c9414656b Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/az/
2019-11-14 22:04:06 +01:00
WebShells
7a7f0e34ea Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/ar_EG/
2019-11-14 22:03:58 +01:00
amir alcocer
ec2f825ceb Translated using Weblate (Spanish (Mexico))
Currently translated at 10.5% (2 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/es_MX/
2019-11-14 22:03:42 +01:00
EcuadorAmaLaVida
5bdd249557 Translated using Weblate (Spanish)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/es/
2019-11-14 22:03:34 +01:00
Israel Chavez
8261a50365 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/es_MX/
2019-11-14 22:03:13 +01:00
numa-drrey
a5e8665870 Translated using Weblate (German)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/de/
2019-11-14 22:03:04 +01:00
amir alcocer
01b3db39c4 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (2 of 2 strings)

Translation: ospos/error
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/error/es_MX/
2019-11-14 22:02:48 +01:00
amir alcocer
c989362875 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (7 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/es_MX/
2019-11-14 22:02:32 +01:00
numa-drrey
430cd13e09 Translated using Weblate (German)
Currently translated at 85.7% (6 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/de/
2019-11-14 22:02:23 +01:00
Israel Chavez
78a3724efe Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (35 of 35 strings)

Translation: ospos/employees
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/employees/es_MX/
2019-11-14 22:02:05 +01:00
Israel Chavez
6d23c1baf5 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/es_MX/
2019-11-14 22:01:49 +01:00
Israel Chavez
1d4d1e207e Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/es_MX/
2019-11-14 22:01:30 +01:00
EcuadorAmaLaVida
3cc5199e80 Translated using Weblate (Spanish)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/es/
2019-11-14 22:01:23 +01:00
wd-code
f350dac237 Translated using Weblate (French)
Currently translated at 92.3% (48 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/fr/
2019-11-14 22:01:15 +01:00
amir alcocer
ee4349fe8a Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es_MX/
2019-11-14 22:01:01 +01:00
Lord Cold
96b755d2c6 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es_MX/
2019-11-14 22:01:01 +01:00
EcuadorAmaLaVida
6b459ee78f Translated using Weblate (Spanish)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es/
2019-11-14 22:00:54 +01:00
numa-drrey
82f4694cd2 Translated using Weblate (German)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/de/
2019-11-14 22:00:47 +01:00
Jens
156aa721fe Translated using Weblate (Dutch)
Currently translated at 3.5% (10 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/nl/
2019-11-14 22:00:40 +01:00
Haseeb
81f3e02c7b Translated using Weblate (Urdu (Pakistan))
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ur_PK/
2019-11-14 22:00:26 +01:00
xarhang
4b42fd270b Translated using Weblate (Lao)
Currently translated at 51.7% (15 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/lo/
2019-11-14 22:00:12 +01:00
numa-drrey
6212595ab7 Translated using Weblate (German)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/de/
2019-11-14 22:00:03 +01:00
Jens
bd353a3f99 Translated using Weblate (Dutch)
Currently translated at 79.3% (23 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/nl/
2019-11-14 21:59:50 +01:00
amir alcocer
03a2f5c06e Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/es_MX/
2019-11-14 21:59:37 +01:00
xarhang
e4972852c6 Translated using Weblate (Lao)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/lo/
2019-11-14 21:59:30 +01:00
numa-drrey
ad4cb84a0d Translated using Weblate (German)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/de/
2019-11-14 21:59:23 +01:00
wd-code
efc66bd1b9 Translated using Weblate (French)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/fr/
2019-11-14 21:59:14 +01:00
Remco Gerbrands
7e7622ceca Translated using Weblate (Dutch)
Currently translated at 46.2% (31 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/nl/
2019-11-14 21:59:07 +01:00
Remco Gerbrands
76607c99fd Translated using Weblate (Dutch)
Currently translated at 3.5% (10 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/nl/
2019-11-14 21:58:52 +01:00
FrancescoUK
75113388f5 Merge pull request #2609 from opensourcepos/3.3.1_patch_icon_logo_button_colors
3.3.1 patch icon logo button colors
2019-11-14 19:40:55 +00:00
objecttothis
68f573caba Correcting Blue background
Matching button and text background to new logo color
2019-11-14 18:10:43 +04:00
objecttothis
7a4193c4d5 Corrected Transparency
Corrected transparency on favicon.ico and logo.png
removed "OSPOS" lettering from favicon.ico since it was too small to see.
2019-11-14 17:58:15 +04:00
FrancescoUK
a923f279ff Merge pull request #2606 from bricas/master
type="username" is not valid html and breaks firefox autofill; changed to "text"
2019-11-13 07:58:51 +00:00
Brian Cassidy
a84b33d013 css fix 2019-11-12 18:49:35 -04:00
Brian Cassidy
80a512b9be type="username" is not valid html and breaks firefox autofill; changed to "text" 2019-11-12 15:30:20 -04:00
FrancescoUK
ed10104f98 Merge pull request #2603 from opensourcepos/fix_item_type_maintenance
Fix item type maintenance issue regardless.
2019-11-11 19:07:01 +00:00
SteveIreland
fffb70933d Fix item type maintenance issue regardless. 2019-11-10 19:40:57 -05:00
Weblate
bb4c79d975 Merge translations 2019-11-06 03:55:54 +01:00
FrancescoUK
281d2df621 Prepare release 3.3.1 2019-10-26 17:43:16 +01:00
FrancescoUK
ac1c6b2286 Minor fixes, add CI_ENV to docker-compose 2019-10-26 17:42:30 +01:00
Steve Ireland
a45ac78274 Merge pull request #2583 from opensourcepos/fix_locale_config_3
Fix numeric locale configuration.
2019-10-19 17:53:59 -04:00
SteveIreland
4c4725795c Fix numeric locale configuration. 2019-10-19 17:10:51 -04:00
FrancescoUK
907e42e46b Merge pull request #2581 from opensourcepos/fix_numeric_locale_config
Fix numeric locale configuration.
2019-10-17 06:43:24 +01:00
SteveIreland
d4c2693511 Fix numeric locale configuration. 2019-10-16 21:37:46 -04:00
FrancescoUK
eef7d65b5c Update Bootswatch themes to latest version 2019-10-13 21:29:40 +01:00
FrancescoUK
bdb3dbe0eb Merge pull request #2579 from opensourcepos/receipt_tax_indicator
Add a code to indicate a taxable item on a sales receipt
2019-10-11 06:31:36 +01:00
SteveIreland
61e28302ce Add a code to indicate a taxable item on a sales receipt 2019-10-11 00:10:13 -04:00
FrancescoUK
a56a4070a6 Revert "Fix "only_full_group_by" issue (#2538)"
This reverts commit 424eb4cf14.
2019-10-06 20:15:24 +01:00
FrancescoUK
69d57b3744 Merge pull request #2567 from opensourcepos/fix-initial-tax-config
Clear initial default for Cascade and Seq for Tax Config Tables
2019-10-06 18:54:31 +01:00
FrancescoUK
424eb4cf14 Fix "only_full_group_by" issue (#2538) 2019-10-06 18:43:58 +01:00
WShells
3a06f55db9 Update INSTALL.md 2019-10-06 00:31:24 +03:00
WShells
5fc20600e7 Removed breaks
Removed Line Breaks
2019-10-06 00:28:53 +03:00
SteveIreland
4a6f4e1f74 Clear initial default for Cascade and Seq for Tax Jurisdiction and Tax Category. 2019-10-03 22:28:30 -04:00
tuthanika
216396c94c Update attributes_lang.php (#2561)
VI Translations Added
2019-10-02 04:00:49 +03:00
FrancescoUK
19eb1cab59 Bump version to 3.3.1 to contain bug fixing 2019-10-01 20:09:55 +01:00
tuthanika
51ca6e92c7 Fix Colspan in receipt_short.php (#2557)
On Discounts: Columns deviation after adding a discounted amount to sales.
2019-10-01 13:22:02 +03:00
WShells
fd9d143269 Fix Graphical Summary 500 Internal Server Error
500 Internal Server Error Fix On Summary Graphical Reports Fix
2019-10-01 05:09:30 +03:00
WShells
0b9a767d9a Sectioning Fix
Sectioning Fix
2019-09-29 20:06:09 +03:00
WShells
a90f34d938 Added cPanel Auto Installer
For  VPS, Dedicated Servers, or Shared Hosting Installation running on cPanel with **SSH** access:

Stand-alone [WS-OSPOS-Installer](https://github.com/WebShells/WS-OSPOS-Installer.git), it will handle:

. Database.php config files generation
. Creation of db User & Password depending on user's input of Dbname, Username, Password, & Hostname ( No need for phpmyadmin )
. Imports default Db SQL files in order to run the project.
2019-09-29 18:24:03 +03:00
WShells
53a1adca04 Added cPanel Auto Installer
For  VPS, Dedicated Servers, or Shared Hosting Installation running on cPanel with **SSH** access:

Stand-alone [OSPOS-Auto-Installer](https://github.com/WebShells/WS-OSPOS-Installer.git), it will handle:

. Database.php config files generation
. Creation of db User & Password depending on user's input of Dbname, Username, Password, & Hostname ( No need for phpmyadmin )
. Imports default Db SQL files in order to run the project.
2019-09-29 18:19:03 +03:00
FrancescoUK
17b8cfd70c Add new docker installation guideline, update LICENSE 2019-09-29 13:35:35 +01:00
jekkos
8a8f708ff9 Travis: Try to find correct container name 2019-09-29 12:54:45 +02:00
jekkos
14dab2515f Travis: Tag container with correct name 2019-09-29 12:35:36 +02:00
jekkos
2d8bdae77a Remove docker tag after build 2019-09-29 11:09:02 +02:00
jekkos
79ca1ce58c Minor update Install + Readme 2019-09-29 01:35:37 +02:00
WShells
40036e6050 Added Fixed Sales Discount 2019-09-29 02:25:04 +03:00
WShells
6c1ccc6bac System Info
System Info For Issue Reporting
2019-09-28 23:33:10 +03:00
WShells
e8960c7398 System Info
Added system info for issue reporting for version 3.3.0 or higher.
2019-09-28 23:30:43 +03:00
FrancescoUK
27dd669579 Fix PHP version in INSTALL.md 2019-09-28 21:22:37 +01:00
FrancescoUK
8b8472b836 New logo and updated files to prepare for Release 3.3.0 2019-09-28 20:47:37 +01:00
FrancescoUK
b4ed7c925f Upgrade CodeIgniter to 3.1.11, LICENSE files and npm 2019-09-28 19:08:36 +01:00
FrancescoUK
8d699cc9ad Upgrade CodeIgniter to 3.1.11, LICENSE file and npm 2019-09-28 19:06:52 +01:00
FrancescoUK
d63eb47e63 Merge pull request #2550 from opensourcepos/3_3_0_validate_after_bulk
Trigger validation when creating items in bulk (#2521)
2019-09-25 21:08:17 +01:00
jekkos
0ca766e9c9 Trigger validation when creating items in bulk (#2521) 2019-09-25 00:17:55 +02:00
FrancescoUK
ad14936cf3 Merge pull request #2546 from opensourcepos/3.3.0_fix_barcode_import
Fix barcode import (#2515)
2019-09-23 08:43:56 +01:00
jekkos
55c86afcde Fix warning in development mode (#2476) 2019-09-23 07:55:44 +02:00
jekkos
e0cd10c8ec Fix barcode import (#2515) 2019-09-22 19:43:58 +02:00
FrancescoUK
4274321a3f Fix empty report issue (#2522) 2019-09-11 21:46:06 +01:00
Weblate
9bdebc6bdd Fix escape sequence in spanish 2019-09-11 09:36:36 +02:00
FrancescoUK
b4d860282b Merge pull request #2534 from WebShells/LB
EG to LB
2019-09-10 21:28:01 +01:00
WebShells
4f089aa68d Re-added EG
Re-added EG, need to be double checked to make sure it fits Egyptian Language. ( most probably 70% no differences in language ).
2019-09-10 20:08:03 +03:00
WebShells
59884e7f81 EG to LB
Although it fits for all arabic language countries, yet it's the most accurate locale to be used.
Most of AR Translation were made for LB language.
2019-09-10 16:51:46 +03:00
dimon daemon
d29d2e8bc4 Translated using Weblate (Russian)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ru/
2019-09-10 12:57:29 +02:00
FrancescoUK
64eb7abf2f Fix empty reports issue (#2522) 2019-09-09 22:11:38 +01:00
WShells
05dd216ad9 Update LICENSE 2019-09-09 01:06:25 +03:00
FrancescoUK
2c4c29e31d Merge pull request #2531 from opensourcepos/fix-cart-reseq
Remove the redundancy of cart resequencing for POS receipts.
2019-09-08 20:17:07 +01:00
SteveIreland
6ad3db7ef9 Remove the redundancy of cart resequencing for POS receipts. 2019-09-07 20:57:28 -04:00
FrancescoUK
4c80a97202 Merge pull request #2528 from mckaygerhard/feat-sumrep-inventorycatcolum1
added category column to the inventory summary report due huge produc… (#2526)
2019-09-07 19:00:47 +01:00
PICCORO Lenz McKAY
37189ba1f3 added category column to the inventory summary report due huge product data
closes https://github.com/opensourcepos/opensourcepos/issues/2526
2019-09-02 22:34:30 -04:30
jekkos
7ebae8ad8a Fix warning when opening attribute edit form 2019-08-11 17:22:47 +02:00
jekkos
8bca8fab53 Fix warning in dev mode (#2485) 2019-08-07 00:19:12 +02:00
jekkos
0d3a33f1ba Fix attribute visibility view if none selected (#2485) 2019-08-07 00:14:22 +02:00
jekkos
0a2894c582 Left join on attribute_values to show items with no value (#2485) 2019-08-04 22:29:44 +02:00
FrancescoUK
ac6d5eef46 Merge pull request #2496 from opensourcepos/dinner_table_fix
Improves the behavior of dinner table selection.
2019-07-22 18:17:23 +01:00
SteveIreland
f95d777dc2 Improves the behavior of dinner table selection. 2019-07-21 11:53:01 -04:00
FrancescoUK
fa71bc6ed6 Merge pull request #2490 from opensourcepos/3.3.0_patch_empty_reports
fix empty reports
2019-07-14 13:40:50 +01:00
objecttothis
f235cede08 Update date_input.php
Corrected this from 1 to 2.  'All' is counted in the array which means that if there is only one stock location, this dropdown will still appear.  Setting this to 2 means that the dropdown only shows when there is more than 1 stock location.
2019-07-12 15:16:21 +04:00
objecttothis
991830817e Create 20190712150200_fix_empty_reports.php
This corrects an error in a previous migration (2.3_to_2.3.1.sql) that assigned a null value to receivings_stock and sales_stock for the location_id when it should have been the location_id of that particular stock_location.
2019-07-12 15:05:14 +04:00
Weblate
929dc7fbb8 Merge branch 'origin/master' into Weblate 2019-07-10 12:20:26 +02:00
Francisco xyko
764b3d2a84 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/pt_BR/
2019-07-10 12:20:25 +02:00
Francisco xyko
a89cc74ba5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/pt_BR/
2019-07-10 12:20:12 +02:00
FrancescoUK
7daa69db43 Merge pull request #2488 from opensourcepos/3.3.0_patch_datetime_to_date
3.3.0 patch datetime to date
2019-07-10 07:54:22 +01:00
objecttothis
8c173540e6 Update Attribute.php
changed DATETIME to DATE since constant name was changed but it wasn't changed here.
2019-07-09 18:05:23 +04:00
objecttothis
9297e73b69 Update locale_helper.php
Adding back in deleted method.
2019-07-09 18:03:28 +04:00
FrancescoUK
79e1ccc9a0 Add new languages to config selection list 2019-07-07 11:19:26 +01:00
Weblate
e275486efe Add th config 2019-07-06 14:10:09 +02:00
jekkos
7da7c0e16f Send back to bintray (#2464) 2019-07-04 19:30:50 +02:00
jekkos
abcf12c3d7 Change newlines into html breaks (invoice template) 2019-07-03 19:44:55 +02:00
jekkos
a45b8e2689 Keep history for downloads branch 2019-07-01 09:19:55 +02:00
Weblate
4269884008 Merge branch 'master' of https://github.com/opensourcepos/opensourcepos 2019-06-30 23:16:03 +02:00
jekkos
efd92fb94f Push to downloads branch instead 2019-06-30 23:00:41 +02:00
jekkos
4cecfb5079 Merge branch 'master' of https://github.com/opensourcepos/opensourcepos 2019-06-30 22:44:49 +02:00
jekkos
84a4f53aa0 Add repo name (#2464) 2019-06-30 22:43:17 +02:00
jekkos
8daab70725 Fix text attribute parsing (#2476) 2019-06-30 22:03:02 +02:00
jekkos
89654f8b00 Use underscors in .travis.yml (#2464) 2019-06-30 19:03:31 +02:00
jekkos
d8173e79e5 Fix dpl argument format 2019-06-30 18:44:21 +02:00
Weblate
7591b7418f Merge branch 'origin/master' into Weblate 2019-06-30 18:43:31 +02:00
Ho
f62c668c09 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.4% (5 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/zh_Hant/
2019-06-30 18:43:26 +02:00
Ho
27b81de285 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/zh_Hant/
2019-06-30 18:43:13 +02:00
Ho
cd79cd16ac Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/zh_Hant/
2019-06-30 18:43:01 +02:00
Ho
d22dc1fa93 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/zh_Hant/
2019-06-30 18:42:47 +02:00
Ho
d865d64e4d Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/zh_Hant/
2019-06-30 18:42:35 +02:00
Ho
28885ed1e0 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/zh_Hant/
2019-06-30 18:42:07 +02:00
khao_lek
6c1853bdb5 Translated using Weblate (Thai)
Currently translated at 61.8% (172 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2019-06-30 18:41:52 +02:00
Ho
7d21e08e7d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/zh_Hans/
2019-06-30 18:41:39 +02:00
Ho
09805d1fd0 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/zh_Hant/
2019-06-30 18:41:26 +02:00
jekkos
6817620808 Use sudo to move artifact 2019-06-30 17:52:42 +02:00
jekkos
cfe5a3c84e Enable attribute search for datetime (#2441) 2019-06-30 17:52:32 +02:00
jekkos
6167a164ad Keep artifact in the same folder 2019-06-30 17:38:25 +02:00
jekkos
6d6a983b9d Add before_deploy hook 2019-06-30 17:31:54 +02:00
jekkos
d0bf865e6b Use gh-pages brnach for deployment 2019-06-30 17:25:46 +02:00
Alex Garcia
7bb05a09d9 Translated using Weblate (Spanish (Mexico))
Currently translated at 96.1% (74 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es_MX/
2019-06-27 21:14:07 +02:00
Trần Ngọc Quân
9d17cd1322 Translated using Weblate (Vietnamese)
Currently translated at 93.5% (102 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/vi/
2019-06-27 21:14:07 +02:00
Alex Garcia
c47b3aceaa Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es_MX/
2019-06-27 21:14:07 +02:00
Trần Ngọc Quân
29e5a5959d Translated using Weblate (Vietnamese)
Currently translated at 44.8% (13 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/vi/
2019-06-27 21:14:07 +02:00
objecttothis
fe2b609446 Update LICENSE
Added copyright claim regarding my pull requests.
2019-06-26 12:14:41 +04:00
FrancescoUK
cfd1bd13e1 Merge pull request #2468 from opensourcepos/add-decimal-attrs-to-items
Add decimals to items search result + fix reports
2019-06-23 14:29:18 +01:00
FrancescoUK
1f2aa2708d Fix missing ) and minor change 2019-06-22 16:39:18 +01:00
jekkos
8ca5449b79 Add decimals to items search result + fix reports 2019-06-20 18:39:17 +02:00
FrancescoUK
54925b27a8 Merge pull request #2467 from opensourcepos/fix-payment-update
Fix a couple of issues with payment processing.
2019-06-20 04:27:23 +01:00
Steve Ireland
a34f017dbd Fix a couple of issues with payment processing. 2019-06-19 21:50:20 -04:00
Robby Triadi Susanto
5355b671fe Translated using Weblate (Indonesian)
Currently translated at 100.0% (109 of 109 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/id/
2019-06-18 23:14:48 +02:00
Robby Triadi Susanto
eea25b1e17 Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/id/
2019-06-18 23:14:48 +02:00
FrancescoUK
196573f49b Merge pull request #2410 from opensourcepos/letsencryptdocker
docker-compose with nginx reverse proxy and letsencrypt certbot
2019-06-16 14:46:59 +01:00
FrancescoUK
37e369ce46 Fix .env issue and add logs as volume 2019-06-16 14:14:37 +01:00
FrancescoUK
30d29f797e Upgrade PHP to 7.3 2019-06-16 14:14:37 +01:00
FrancescoUK
a3b117fcb3 Update docker-compose.dev and docker-compose.test 2019-06-16 14:14:37 +01:00
FrancescoUK
a7950e02fc docker-compose for nginx reverse proxy and letsencrypt certbot 2019-06-16 14:14:37 +01:00
FrancescoUK
0491c1888e Fix wrong Sale and Receivings receipt times 2019-06-16 14:12:12 +01:00
FrancescoUK
e173186109 Temporary fix sale form cash_refund crash, other minor code changes 2019-06-16 10:27:27 +01:00
FrancescoUK
3f9b8c59e1 Remove spurious system_info.php file (security) 2019-06-15 21:39:30 +01:00
FrancescoUK
4f78b1efab Fix datetime issues (#2319) and refactor code 2019-06-15 21:37:27 +01:00
FrancescoUK
6ef038d0ca Update composer libraries and License file 2019-06-15 11:53:00 +01:00
FrancescoUK
4aec3d04d6 Bump script date to follow the correct database migration order 2019-06-15 10:48:50 +01:00
FrancescoUK
01dfd023eb Merge pull request #2319 from opensourcepos/fix-attribute-datetime
Fix attribute datetime formatting
2019-06-15 10:32:22 +01:00
FrancescoUK
e60d2ab900 Merge pull request #2461 from opensourcepos/database-fixes-si
Database Fix
2019-06-15 10:10:01 +01:00
FrancescoUK
b4790334a6 Add ospos_expenses date index 2019-06-15 09:42:54 +01:00
FrancescoUK
4644dd2e46 MySQL queries consistency check 2019-06-15 09:39:08 +01:00
Steve Ireland
442af20815 Add missing database constraints. 2019-06-14 21:28:16 -04:00
FrancescoUK
cb3fd1f0eb Merge pull request #2462 from opensourcepos/patch-install-statistics-page
Update system_info.php
2019-06-13 21:23:54 +01:00
objecttothis
32a88098b0 Update system_info.php
Remove check for write permissions on import_items.csv file since the file no longer exists and is generated on-the-fly.
2019-06-13 23:52:03 +04:00
FrancescoUK
28b3bc87d4 Comment out unused code still with custom fields 2019-06-09 21:47:36 +01:00
Steve Ireland
7b07ac9e21 Merge pull request #2448 from opensourcepos/track-initial-cash-refund
Track initial cash refunds
2019-06-09 12:13:29 -04:00
FrancescoUK
a61ddc19d2 Optimise DB query, tidy up 2019-06-09 10:53:48 +01:00
Steve Ireland
595ef0b617 Track initial cash refunds 2019-06-07 21:48:05 -04:00
jekkos
0ae6470b35 Migrate attribute datetime to date (#2441) 2019-06-05 00:47:17 +02:00
jekkos
d3d051ee72 Fix loading attribute values in item search (#2232) 2019-06-05 00:31:45 +02:00
jekkos
f2d2b1d3e2 Fix datetime attribute formatting (#2232) 2019-06-05 00:29:48 +02:00
FrancescoUK
d47099fa23 Merge pull request #2431 from opensourcepos/attributes_csv_import_integration
Attributes csv import integration
2019-06-04 21:13:54 +01:00
objecttothis
1f18ccd6d6 Delete import_items.csv
Apparently this deletion was undone when we squashed commits.  This file is no longer needed due to generating the CSV on the fly.
2019-06-04 12:04:29 +04:00
objecttothis
e900607725 Delete 20190415111200_stock_location.php
Apparently this deletion was undone when we squashed commits.  This file is no longer needed due to generating the CSV on the fly.
2019-06-04 12:03:46 +04:00
FrancescoUK
3894af4db2 Optimise database temp tables indexes (#2409) 2019-06-03 22:45:00 +01:00
FrancescoUK
dbf3114267 Attributes csv import integration 2019-06-03 21:13:21 +01:00
FrancescoUK
bab07fc857 Merge pull request #2426 from opensourcepos/fix-pdfcreate
Fix Send Invoice PDF
2019-06-02 21:23:22 +01:00
jekkos
2f3e915a3e Bump php base container 2019-05-25 15:15:32 +02:00
Robby Triadi Susanto
6e3271b6eb Translated using Weblate (Indonesian)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/id/
2019-05-23 22:33:22 +02:00
Robby Triadi Susanto
cdf3db2f5a Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/id/
2019-05-23 22:33:09 +02:00
Weblate
4c507540c8 Merge branch 'origin/master' into Weblate 2019-05-21 14:16:01 +02:00
objecttothis
72a6ee1d55 Translated using Weblate (Tagalog)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/tl/
2019-05-21 14:16:01 +02:00
Amine Amine
4b305a708f Translated using Weblate (French)
Currently translated at 33.7% (26 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/fr/
2019-05-21 14:15:54 +02:00
objecttothis
05c34912df Translated using Weblate (Tagalog)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/tl/
2019-05-21 14:15:41 +02:00
Johntini
ab8e8373c0 Translated using Weblate (Spanish)
Currently translated at 97.6% (169 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es/
2019-05-21 14:15:27 +02:00
Johntini
5a46dfc0c0 Translated using Weblate (Spanish)
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/es/
2019-05-21 14:15:12 +02:00
objecttothis
b32344dbc5 Translated using Weblate (Tagalog)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/tl/
2019-05-21 14:14:55 +02:00
objecttothis
342a561d98 Translated using Weblate (Tagalog)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/tl/
2019-05-21 14:14:38 +02:00
objecttothis
3d8d3dca09 Translated using Weblate (Tagalog)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/tl/
2019-05-21 14:14:20 +02:00
objecttothis
97276b9227 Translated using Weblate (Tagalog)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/tl/
2019-05-21 14:14:04 +02:00
objecttothis
a8153a0beb Translated using Weblate (Tagalog)
Currently translated at 100.0% (68 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/tl/
2019-05-21 14:13:47 +02:00
objecttothis
6b090e1bc3 Translated using Weblate (Tagalog)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/tl/
2019-05-21 14:13:32 +02:00
objecttothis
c5ccf4aa68 Translated using Weblate (Tagalog)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/tl/
2019-05-21 14:13:17 +02:00
objecttothis
94a9f0282d Translated using Weblate (Tagalog)
Currently translated at 100.0% (35 of 35 strings)

Translation: ospos/employees
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/employees/tl/
2019-05-21 14:13:02 +02:00
objecttothis
987399b337 Translated using Weblate (Tagalog)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/tl/
2019-05-21 14:12:47 +02:00
objecttothis
eaf0af7fd2 Translated using Weblate (Tagalog)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/tl/
2019-05-21 14:12:32 +02:00
objecttothis
2ee699441c Translated using Weblate (Tagalog)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/tl/
2019-05-21 14:12:15 +02:00
objecttothis
62da526d1a Translated using Weblate (Tagalog)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/tl/
2019-05-21 14:11:59 +02:00
objecttothis
edaead7584 Translated using Weblate (Tagalog)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/tl/
2019-05-21 14:11:44 +02:00
objecttothis
ea02ae5d01 Translated using Weblate (Tagalog)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/tl/
2019-05-21 14:11:28 +02:00
objecttothis
92c975d84a Merge pull request #2450 from opensourcepos/rename-tagalog-folder
Rename tagalog folder
2019-05-21 16:08:53 +04:00
objecttothis
5d68926e7f Rename application/language/tl/taxes_lang.php to application/language/tl-PH/taxes_lang.php 2019-05-21 15:55:43 +04:00
objecttothis
d9195a90a6 Rename application/language/tl/suppliers_lang.php to application/language/tl-PH/suppliers_lang.php 2019-05-21 15:55:33 +04:00
objecttothis
ec51249eab Rename application/language/tl/sales_lang.php to application/language/tl-PH/sales_lang.php 2019-05-21 15:55:26 +04:00
objecttothis
3e6d0e4977 Rename application/language/tl/reports_lang.php to application/language/tl-PH/reports_lang.php 2019-05-21 15:55:18 +04:00
objecttothis
c9bbfa0862 Rename application/language/tl/receivings_lang.php to application/language/tl-PH/receivings_lang.php 2019-05-21 15:55:11 +04:00
objecttothis
3fd0bccc7b Rename application/language/tl/module_lang.php to application/language/tl-PH/module_lang.php 2019-05-21 15:55:00 +04:00
objecttothis
00d3f59471 Rename application/language/tl/messages_lang.php to application/language/tl-PH/messages_lang.php 2019-05-21 15:54:19 +04:00
objecttothis
996b4030a6 Rename application/language/tl/login_lang.php to application/language/tl-PH/login_lang.php 2019-05-21 15:54:11 +04:00
objecttothis
826966441a Rename application/language/tl/items_lang.php to application/language/tl-PH/items_lang.php 2019-05-21 15:54:02 +04:00
objecttothis
e21249dd32 Rename application/language/tl/item_kits_lang.php to application/language/tl-PH/item_kits_lang.php 2019-05-21 15:53:52 +04:00
objecttothis
2089463f86 Rename application/language/tl/giftcards_lang.php to application/language/tl-PH/giftcards_lang.php 2019-05-21 15:53:42 +04:00
objecttothis
4c7829876c Rename application/language/tl/expenses_lang.php to application/language/tl-PH/expenses_lang.php 2019-05-21 15:53:33 +04:00
objecttothis
980b6013f2 Rename application/language/tl/expenses_categories_lang.php to application/language/tl-PH/expenses_categories_lang.php 2019-05-21 15:53:20 +04:00
objecttothis
a57edc829f Rename application/language/tl/error_lang.php to application/language/tl-PH/error_lang.php 2019-05-21 15:53:13 +04:00
objecttothis
074c68d940 Rename application/language/tl/enum_lang.php to application/language/tl-PH/enum_lang.php 2019-05-21 15:53:05 +04:00
objecttothis
bd9cb1a141 Rename application/language/tl/employees_lang.php to application/language/tl-PH/employees_lang.php 2019-05-21 15:52:54 +04:00
objecttothis
70fc42aa39 Rename application/language/tl/datepicker_lang.php to application/language/tl-PH/datepicker_lang.php 2019-05-21 15:52:44 +04:00
objecttothis
9ec2db667b Rename application/language/tl/customers_lang.php to application/language/tl-PH/customers_lang.php 2019-05-21 15:52:30 +04:00
objecttothis
0a21a0a87d Rename application/language/tl/config_lang.php to application/language/tl-PH/config_lang.php 2019-05-21 15:52:10 +04:00
objecttothis
2238e8fcff Rename application/language/tl/cashups_lang.php to application/language/tl-PH/cashups_lang.php 2019-05-21 15:52:00 +04:00
objecttothis
978b395b70 Rename application/language/common_lang.php to application/language/tl-PH/common_lang.php 2019-05-21 15:51:51 +04:00
objecttothis
4520f0bb09 Rename application/language/tl/common_lang.php to application/language/common_lang.php 2019-05-21 15:51:35 +04:00
objecttothis
48d3c1873c Rename application/language/tl/bootstrap_tables_lang.php to application/language/tl-PH/bootstrap_tables_lang.php 2019-05-21 15:47:43 +04:00
objecttothis
97a567ef50 Rename application/language/tl/attributes_lang.php to application/language/tl-PH/attributes_lang.php 2019-05-21 15:46:20 +04:00
objecttothis
8305623791 Added translation using Weblate (Tagalog) 2019-05-20 19:58:49 +02:00
objecttothis
37073ec146 Added translation using Weblate (Tagalog) 2019-05-20 19:55:47 +02:00
objecttothis
439875064e Added translation using Weblate (Tagalog) 2019-05-20 14:46:56 +02:00
objecttothis
ce2983e457 Added translation using Weblate (Tagalog) 2019-05-20 14:46:29 +02:00
objecttothis
180c31ab36 Added translation using Weblate (Tagalog) 2019-05-20 14:45:57 +02:00
objecttothis
509698b17a Added translation using Weblate (Tagalog) 2019-05-20 14:44:20 +02:00
objecttothis
e6509daf8f Added translation using Weblate (Tagalog) 2019-05-20 14:38:08 +02:00
objecttothis
901c1ef36b Deleted translation using Weblate (Filipino) 2019-05-20 14:37:32 +02:00
objecttothis
30408fc142 Added translation using Weblate (Tagalog) 2019-05-20 14:36:47 +02:00
objecttothis
3ebfe29d9a Deleted translation using Weblate (Filipino) 2019-05-20 14:36:09 +02:00
objecttothis
ed4856b483 Added translation using Weblate (Tagalog) 2019-05-20 14:35:31 +02:00
objecttothis
f3eaf428c2 Deleted translation using Weblate (Filipino) 2019-05-20 14:34:42 +02:00
objecttothis
e676f5f4d2 Added translation using Weblate (Tagalog) 2019-05-20 14:33:43 +02:00
objecttothis
444189c670 Deleted translation using Weblate (Filipino) 2019-05-20 14:31:45 +02:00
objecttothis
c902d4e51e Added translation using Weblate (Tagalog) 2019-05-20 14:24:53 +02:00
objecttothis
5876e1ae32 Deleted translation using Weblate (Filipino) 2019-05-20 14:22:39 +02:00
objecttothis
9d31b75c15 Added translation using Weblate (Tagalog) 2019-05-20 14:15:20 +02:00
objecttothis
9ab1dac38c Deleted translation using Weblate (Filipino) 2019-05-20 14:14:43 +02:00
objecttothis
0a2f6c19c2 Added translation using Weblate (Tagalog) 2019-05-20 14:03:09 +02:00
objecttothis
3e908c89ff Deleted translation using Weblate (Filipino) 2019-05-20 13:58:22 +02:00
objecttothis
41e7cb3c81 Added translation using Weblate (Tagalog) 2019-05-20 13:56:30 +02:00
objecttothis
c76fa73010 Deleted translation using Weblate (Filipino) 2019-05-20 13:55:55 +02:00
objecttothis
1f1abb1bd6 Added translation using Weblate (Tagalog) 2019-05-20 13:55:22 +02:00
objecttothis
50b681215c Deleted translation using Weblate (Filipino) 2019-05-20 13:54:37 +02:00
objecttothis
7dd99d5e17 Added translation using Weblate (Tagalog) 2019-05-20 13:46:05 +02:00
objecttothis
7edbd8b3b9 Deleted translation using Weblate (Filipino) 2019-05-20 13:45:19 +02:00
objecttothis
e7298aa521 Added translation using Weblate (Tagalog) 2019-05-20 13:43:24 +02:00
objecttothis
7350e2f62e Deleted translation using Weblate (Filipino) 2019-05-20 13:42:44 +02:00
objecttothis
255fec2ba7 Added translation using Weblate (Tagalog) 2019-05-20 13:40:03 +02:00
objecttothis
c20169ae18 Deleted translation using Weblate (Filipino) 2019-05-20 13:39:18 +02:00
objecttothis
f90c99a276 Added translation using Weblate (Tagalog) 2019-05-20 13:08:19 +02:00
objecttothis
939a9157c2 Deleted translation using Weblate (Filipino) 2019-05-20 13:07:19 +02:00
objecttothis
7936998c53 Added translation using Weblate (Tagalog) 2019-05-20 13:06:34 +02:00
objecttothis
f55ab2fd80 Deleted translation using Weblate (Filipino) 2019-05-20 13:05:50 +02:00
objecttothis
383dc0057c Added translation using Weblate (Tagalog) 2019-05-20 13:04:04 +02:00
objecttothis
5dbf473ddd Deleted translation using Weblate (Filipino) 2019-05-20 13:03:26 +02:00
objecttothis
47534b5ead Added translation using Weblate (Tagalog) 2019-05-20 13:02:53 +02:00
objecttothis
2154b6d5c3 Deleted translation using Weblate (Filipino) 2019-05-20 13:02:15 +02:00
objecttothis
9ca685698c Deleted translation using Weblate (Filipino) 2019-05-20 13:01:45 +02:00
objecttothis
1d2198563f Added translation using Weblate (Filipino) 2019-05-20 12:58:31 +02:00
objecttothis
a648e7415d Added translation using Weblate (Filipino) 2019-05-20 12:56:36 +02:00
objecttothis
9b533396b8 Added translation using Weblate (Filipino) 2019-05-20 12:52:38 +02:00
objecttothis
0dc4c60aaf Added translation using Weblate (Filipino) 2019-05-20 12:50:31 +02:00
objecttothis
7a6b600f2c Added translation using Weblate (Filipino) 2019-05-20 12:48:25 +02:00
objecttothis
993343a2a2 Added translation using Weblate (Filipino) 2019-05-20 12:39:00 +02:00
objecttothis
b173de6c6d Added translation using Weblate (Filipino) 2019-05-20 12:34:10 +02:00
objecttothis
8d1f52ac5a Added translation using Weblate (Filipino) 2019-05-20 12:33:05 +02:00
objecttothis
a579e57ea4 Added translation using Weblate (Filipino) 2019-05-20 12:26:36 +02:00
objecttothis
0a07cec9c4 Added translation using Weblate (Filipino) 2019-05-20 12:24:26 +02:00
objecttothis
303d39f367 Added translation using Weblate (Filipino) 2019-05-20 12:22:29 +02:00
objecttothis
5fb3c59489 Added translation using Weblate (Filipino) 2019-05-20 12:17:45 +02:00
objecttothis
7c34eeb982 Added translation using Weblate (Filipino) 2019-05-20 12:15:08 +02:00
objecttothis
603ff87b50 Added translation using Weblate (Filipino) 2019-05-20 12:04:22 +02:00
objecttothis
b531fc1cbc Added translation using Weblate (Filipino) 2019-05-20 11:56:48 +02:00
objecttothis
2d13cb7dc8 Added translation using Weblate (Filipino) 2019-05-20 11:54:25 +02:00
objecttothis
f94af21484 Added translation using Weblate (Filipino) 2019-05-20 11:49:30 +02:00
jekkos
cac35f147f Added translation using Weblate (Tagalog) 2019-05-20 10:00:36 +02:00
Weblate
a7a7f4753c Merge branch 'origin/master' into Weblate 2019-05-14 22:08:33 +02:00
Gonzalo Fleming
bed6fc9a70 Translated using Weblate (Spanish)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es/
2019-05-14 22:08:30 +02:00
Robby Triadi Susanto
ac673555c9 Translated using Weblate (Indonesian)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/id/
2019-05-14 22:08:24 +02:00
Robby Triadi Susanto
0096eb9e38 Translated using Weblate (Indonesian)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/id/
2019-05-14 22:08:14 +02:00
Gonzalo Fleming
367c63a9aa Translated using Weblate (Spanish)
Currently translated at 94.7% (164 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/es/
2019-05-14 22:07:58 +02:00
Robby Triadi Susanto
2bda9d5f42 Translated using Weblate (Indonesian)
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/id/
2019-05-14 22:07:33 +02:00
Robby Triadi Susanto
dcd89faa28 Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/id/
2019-05-14 22:07:21 +02:00
Robby Triadi Susanto
b0c3ff84c9 Translated using Weblate (Indonesian)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/id/
2019-05-14 22:07:10 +02:00
Robby Triadi Susanto
da9d584dd3 Translated using Weblate (Indonesian)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/id/
2019-05-14 22:06:59 +02:00
Robby Triadi Susanto
f3dff053d3 Translated using Weblate (Indonesian)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/id/
2019-05-14 22:06:49 +02:00
Robby Triadi Susanto
9903912bd7 Translated using Weblate (Indonesian)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/id/
2019-05-14 22:06:38 +02:00
Robby Triadi Susanto
a26fc359ac Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/id/
2019-05-14 22:06:28 +02:00
Robby Triadi Susanto
857e0bb7a0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/id/
2019-05-14 22:06:18 +02:00
Robby Triadi Susanto
eed58af6ee Translated using Weblate (Indonesian)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/id/
2019-05-14 22:06:07 +02:00
Robby Triadi Susanto
d37783ef0f Translated using Weblate (Indonesian)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/id/
2019-05-14 22:05:56 +02:00
Gonzalo Fleming
79a563cf66 Translated using Weblate (Spanish)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/es/
2019-05-14 22:05:46 +02:00
WShells
56f43fb67f DB Version Fix
DB Version now reflecting server's version
2019-05-09 03:03:05 +03:00
FrancescoUK
9786d63804 Merge pull request #2440 from josh-tf/master
fix typo in url in bintray config
2019-05-05 14:40:07 +01:00
Josh Bowden
c69a1d9f40 fix typo in url in bintray config 2019-05-05 19:28:16 +10:00
Steve Ireland
b6c6cc88bc Merge pull request #2439 from opensourcepos/fix-quote-print
Fix quote print
2019-05-02 22:29:25 -04:00
Steve Ireland
dc8b69ab50 Fix quote print 2019-05-02 22:10:35 -04:00
Steve Ireland
cb0660e4a6 Merge pull request #2434 from opensourcepos/payment_update
Support updates to payments
2019-05-01 21:34:46 -04:00
Steve Ireland
a89674ccfe Support updates to payments 2019-05-01 21:17:22 -04:00
Nick Avramidis
3b49f7829e Translated using Weblate (Greek)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/el/
2019-04-28 13:54:27 +02:00
Nick Avramidis
bd7d615ef6 Translated using Weblate (Greek)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/el/
2019-04-28 13:54:13 +02:00
Nick Avramidis
18c342e2be Translated using Weblate (Greek)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/el/
2019-04-28 13:53:57 +02:00
Nick Avramidis
e5cdcc1e81 Translated using Weblate (Greek)
Currently translated at 1.9% (1 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/el/
2019-04-28 13:53:44 +02:00
Nick Avramidis
f7d2800f77 Translated using Weblate (Greek)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/el/
2019-04-28 13:53:31 +02:00
Weblate
d35317273d Merge branch 'origin/master' into Weblate 2019-04-23 01:05:11 +02:00
cristianjav
b6776c47ad Translated using Weblate (Spanish)
Currently translated at 77.9% (60 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es/
2019-04-23 01:05:11 +02:00
cristianjav
abaa2b2dea Translated using Weblate (Spanish)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/es/
2019-04-23 01:04:59 +02:00
cristianjav
6120f8d613 Translated using Weblate (Spanish)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/es/
2019-04-23 01:04:48 +02:00
cristianjav
4b12c49b6e Translated using Weblate (Spanish)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/es/
2019-04-23 01:04:36 +02:00
cristianjav
cea173a53a Translated using Weblate (Spanish)
Currently translated at 86.2% (25 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/es/
2019-04-23 01:04:22 +02:00
FrancescoUK
ee3e8f8424 Merge pull request #2429 from josh-tf/master
fix typo with lang string
2019-04-22 08:41:29 +01:00
Josh Bowden
a70545abd2 fix missing underscore from lang string 2019-04-22 17:29:10 +10:00
Josh Bowden
bd55624470 fix typo with lang string 2019-04-22 13:47:14 +10:00
Steve Ireland
41c282bf85 Merge pull request #2427 from opensourcepos/fix-taxgroup
Fix Tax Group
2019-04-21 13:42:42 -04:00
Steve Ireland
e740d8665f Fix Tax Group 2019-04-21 13:33:25 -04:00
Steve Ireland
ddcd5a7ae4 Fix Send Invoice PDF 2019-04-21 11:25:14 -04:00
Weblate
9ccb9779bf Merge branch 'origin/master' into Weblate 2019-04-20 18:33:39 +02:00
Karin
9672d70853 Translated using Weblate (Spanish)
Currently translated at 72.7% (56 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es/
2019-04-20 18:33:36 +02:00
Robby Triadi Susanto
889300c699 Translated using Weblate (Indonesian)
Currently translated at 75.0% (27 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/id/
2019-04-20 18:33:24 +02:00
Robby Triadi Susanto
7495ba7fb4 Translated using Weblate (Indonesian)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/id/
2019-04-20 18:33:14 +02:00
Steve Ireland
12edac37eb Merge pull request #2425 from josh-tf/master
fix typo with lang string w/ variable
2019-04-20 10:43:30 -04:00
Josh Bowden
0e2e4d722b fix typo with lang string w/ variable 2019-04-18 17:15:50 +10:00
Steve Ireland
ca3b56c760 Merge pull request #2420 from opensourcepos/fix-sales-tax-migration
Fix Sales Tax Migration
2019-04-14 10:13:33 -04:00
alexandr0g
a1cba7fc6a Translated using Weblate (Spanish)
Currently translated at 70.1% (54 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es/
2019-04-08 20:50:23 +02:00
Leandro Sbrissa
4084f75838 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/pt_BR/
2019-04-08 20:50:13 +02:00
Leandro Sbrissa
5c4108dc08 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/pt_BR/
2019-04-08 20:50:03 +02:00
alexandr0g
842c365532 Translated using Weblate (Spanish)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/es/
2019-04-08 20:49:53 +02:00
Leandro Sbrissa
007e03d248 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/pt_BR/
2019-04-08 20:49:43 +02:00
alexandr0g
3f81d1872c Translated using Weblate (Spanish)
Currently translated at 8.3% (3 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/es/
2019-04-08 20:49:33 +02:00
Leandro Sbrissa
607cffb902 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/pt_BR/
2019-04-08 20:49:23 +02:00
Steve Ireland
ae1fb3cac1 Fix Sales Tax Migration 2019-04-07 14:54:21 -04:00
Eugen Sclavone
2c4114765a Translated using Weblate (Romanian)
Currently translated at 28.5% (6 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/ro/
2019-03-27 00:34:23 +01:00
khao_lek
16e508777a Translated using Weblate (Thai)
Currently translated at 68.7% (119 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/th/
2019-03-27 00:34:23 +01:00
Aril Apria Susanto
a035cab88b Translated using Weblate (Indonesian)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/id/
2019-03-27 00:34:23 +01:00
Natig Asad
9c62164512 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/az/
2019-03-27 00:34:23 +01:00
Natig Asad
d69a8b79ab Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/az/
2019-03-27 00:34:23 +01:00
khao_lek
26fbbd8113 Translated using Weblate (Thai)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/th/
2019-03-27 00:34:23 +01:00
Aril Apria Susanto
86604f4c50 Translated using Weblate (Indonesian)
Currently translated at 99.0% (107 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/id/
2019-03-27 00:34:23 +01:00
khao_lek
7f6621ae74 Translated using Weblate (Thai)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/th/
2019-03-27 00:34:23 +01:00
Aril Apria Susanto
98bb149127 Translated using Weblate (Indonesian)
Currently translated at 98.9% (275 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/id/
2019-03-27 00:34:23 +01:00
Natig Asad
d55e5c1769 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/az/
2019-03-27 00:34:23 +01:00
khao_lek
0bbd62a53b Translated using Weblate (Thai)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2019-03-27 00:34:23 +01:00
Natig Asad
921b4966e4 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/az/
2019-03-27 00:34:23 +01:00
khao_lek
5c667b7deb Translated using Weblate (Thai)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/th/
2019-03-27 00:34:23 +01:00
Aril Apria Susanto
ef9ab3bc4b Translated using Weblate (Indonesian)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/id/
2019-03-27 00:34:23 +01:00
FrancescoUK
84c1a8eb39 Merge pull request #2412 from opensourcepos/sales-summary-cashups
Adapt Cashups to new Summary Payments Report
2019-03-23 17:43:50 +00:00
Steve Ireland
4ae1c575fc Adapt Cashups to new Sales Summary Report 2019-03-23 10:36:30 -04:00
Weblate
aafa614520 Remove duplicated lines 2019-03-23 14:12:43 +01:00
Weblate
bde34dc342 Remove duplicate strings 2019-03-21 08:12:40 +01:00
Weblate
b425f8b22a Sync + fix language files 2019-03-20 19:07:28 +01:00
Weblate
969336248c Merge remote-tracking branch 'origin/master' 2019-03-18 22:58:26 +01:00
WebShells
003a6b0bb1 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ar_EG/
2019-03-18 22:53:18 +01:00
WebShells
916782edba Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/ar_EG/
2019-03-18 22:53:08 +01:00
tomer
ad6d325cc8 Translated using Weblate (Hebrew)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/he/
2019-03-18 22:52:58 +01:00
WebShells
03b1a84f98 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/ar_EG/
2019-03-18 22:52:53 +01:00
WebShells
647e7ec49f Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/ar_EG/
2019-03-18 22:52:42 +01:00
WebShells
39e7d102bd Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/ar_EG/
2019-03-18 22:52:32 +01:00
WebShells
fae7fc986e Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/ar_EG/
2019-03-18 22:52:22 +01:00
tomer
a6e6f8278d Translated using Weblate (Hebrew)
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/he/
2019-03-18 22:52:12 +01:00
WebShells
3c3c10d843 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (278 of 278 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/ar_EG/
2019-03-18 22:52:07 +01:00
tomer
749aa1831a Translated using Weblate (Hebrew)
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/he/
2019-03-18 22:51:57 +01:00
WebShells
8f8d671ea1 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (29 of 29 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ar_EG/
2019-03-18 22:51:51 +01:00
WebShells
5238ce2ade Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/ar_EG/
2019-03-18 22:51:40 +01:00
FrancescoUK
bbcefa1753 Fix language files (remove unused strings) 2019-03-17 16:30:16 +00:00
FrancescoUK
a146bbaa86 Reinstate removed en-GB and en-US translations 2019-03-16 18:45:59 +00:00
FrancescoUK
1bf99fd477 Add Docker container depends_on and restart rules 2019-03-16 18:43:06 +00:00
jekkos
5d047303a0 Sync language files + add script to .gitignore 2019-03-16 14:38:01 +01:00
Weblate
92b5bd2514 Merge branch 'origin/master' into Weblate 2019-03-16 14:20:39 +01:00
tomer
606be6f970 Translated using Weblate (Hebrew)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/he/
2019-03-16 14:20:39 +01:00
khao_lek
519f1a9aa5 Translated using Weblate (Thai)
Currently translated at 89.0% (114 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/th/
2019-03-16 14:20:28 +01:00
tomer
9e585072cd Translated using Weblate (Hebrew)
Currently translated at 100.0% (128 of 128 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/he/
2019-03-16 14:20:22 +01:00
tomer
09ab671285 Translated using Weblate (Hebrew)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/he/
2019-03-16 14:20:12 +01:00
Dinuka Dilruwan Perera
1e3886e37e Translated using Weblate (Italian)
Currently translated at 98.0% (51 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/it/
2019-03-16 14:20:01 +01:00
khao_lek
35f5aa1ea3 Translated using Weblate (Thai)
Currently translated at 62.3% (172 of 276 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/th/
2019-03-16 14:19:51 +01:00
tomer
7ff878bfe1 Translated using Weblate (Hebrew)
Currently translated at 100.0% (276 of 276 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/he/
2019-03-16 14:19:46 +01:00
khao_lek
a3b0cc9f14 Translated using Weblate (Thai)
Currently translated at 100.0% (28 of 28 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2019-03-16 14:19:35 +01:00
tomer
e201f9adf0 Translated using Weblate (Hebrew)
Currently translated at 100.0% (28 of 28 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/he/
2019-03-16 14:19:30 +01:00
Hezbullah Shah
3e69c3f683 Added translation using Weblate (Urdu (Pakistan)) 2019-03-16 14:19:18 +01:00
WShells
6910efe526 Attributes missing language
Attributes missing language string fixed.
2019-03-15 23:46:16 +02:00
FrancescoUK
3e4964ada3 Merge pull request #2404 from WebShells/master
Customer Name for Due Sales & System info changes
2019-03-15 21:36:01 +00:00
WShells
e5927f94c6 Update system_info.php 2019-03-15 19:49:57 +02:00
WebShells
a2b10612c5 Line breaks
Added line breaks to help easily read issue template sections
2019-03-15 19:46:59 +02:00
WebShells
a386a0b485 Added Copy to Clipboard
Few changes including copy to clipboard  section in order to copy the text in same format.
2019-03-15 18:37:01 +02:00
WShells
5f9ef6cf4d Update register.php 2019-03-15 00:57:02 +02:00
WebShells
37d95fe75e Merge branch 'master' of https://github.com/WebShells/WS 2019-03-14 22:33:32 +02:00
WebShells
531805be14 Minor System Info changes
Few editions as requested
2019-03-14 22:31:06 +02:00
WShells
d419ffbdab Update register.php 2019-03-14 22:22:22 +02:00
WebShells
ce6aed67d6 Added en-GB Lang
Added en-GB Lang
2019-03-14 22:19:23 +02:00
WebShells
0ecba4c170 Customer Name Required
Customer Name required in order to continue the sales once due payment is selected.
2019-03-14 19:43:56 +02:00
FrancescoUK
6de77f0ebb Merge pull request #2400 from opensourcepos/language_patch
Update config_lang.php
2019-03-14 07:39:43 +00:00
objecttothis
49419ac204 Update config_lang.php 2019-03-14 10:54:25 +04:00
FrancescoUK
5efe04930e Merge pull request #2402 from opensourcepos/attribute_bug_patch
Update Attribute.php
2019-03-14 06:25:32 +00:00
objecttothis
185cf88534 Update Attribute.php
Remove blank line
2019-03-14 10:05:39 +04:00
objecttothis
2dca4785e1 Update Attribute.php
Without this else if the change from text to dropdown fails but no actual query is made since the query to update the attribute type gets made by the save_definition function.
2019-03-14 10:04:46 +04:00
objecttothis
0db8f2928f Update config_lang.php
This is to correct a missing language line from integrations.  @jekkos can you run your script to propagate en-US language lines to the rest of the languages and in weblate?
2019-03-14 09:46:25 +04:00
objecttothis
ce7b13a633 Merge pull request #2394 from opensourcepos/add_iso_currency_code
Add iso currency code
2019-03-13 13:54:46 +04:00
objecttothis
2cd9c23ac0 Update 20190317102600_add_iso_4217.php 2019-03-13 13:53:14 +04:00
objecttothis
2e755c6806 Rename 3.4.0_add_iso_4217.sql to 3.3.0_add_iso_4217.sql
3.3.0 release
2019-03-13 13:52:21 +04:00
objecttothis
59260241cb Update Language code definition
Removed two-character locales as those are deprecated.
2019-03-13 12:11:58 +04:00
objecttothis
75b548b81e Update locale_config.php
Fix jquery to update currency code
2019-03-13 12:02:00 +04:00
objecttothis
8d8ab9add6 Currency code auto update 2019-03-12 13:23:40 +04:00
Steve Ireland
16c28f1062 Merge pull request #2396 from opensourcepos/fix-discount-amount-formatting
Fix discount amount formatting.
2019-03-10 18:00:30 -04:00
Weblate
e9af0abd95 Merge branch 'origin/master' into Weblate 2019-03-10 15:00:16 +01:00
Aril Apria Susanto
fb6fe3c2fa Translated using Weblate (Indonesian)
Currently translated at 72.7% (56 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/id/
2019-03-10 15:00:11 +01:00
Aril Apria Susanto
7bca61fe2b Translated using Weblate (Indonesian)
Currently translated at 58.3% (21 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/id/
2019-03-10 15:00:00 +01:00
jekkos
a46a874874 Sync language files 2019-03-10 14:58:34 +01:00
Steve Ireland
acf913f025 Fix discount amount formatting. 2019-03-09 19:01:53 -05:00
Steve Ireland
805dfbe4d3 Merge pull request #2395 from opensourcepos/summary-payments-2
Two more Payment Summary report fixes.
2019-03-09 16:59:13 -05:00
Steve Ireland
d242c65e99 Two more Payment Summary report fixes. 2019-03-09 16:34:49 -05:00
FrancescoUK
fb112e502b Use networks: in docker-compose since links: is legacy 2019-03-09 13:26:16 +00:00
FrancescoUK
0199b29063 Summary report code refactoring 2019-03-09 09:44:56 +00:00
FrancescoUK
3f1ca2480c Rename migration script 2019-03-09 09:15:15 +00:00
objecttothis
dd77bb5632 Language additions and code corrections 2019-03-08 12:15:16 +04:00
objecttothis
12104c21c6 Correct error in the code 2019-03-08 11:59:02 +04:00
objecttothis
f284823707 Add ISO currency code 2019-03-08 11:48:38 +04:00
objecttothis
34d3352d73 Create 20190317102600_add_iso_4217.php 2019-03-08 11:09:21 +04:00
objecttothis
1776de12ff Update Attributes.php
Correcting variable naming.
2019-03-08 10:14:05 +04:00
Weblate
ccca81e2c8 Merge branch 'origin/master' into Weblate 2019-03-07 22:11:59 +01:00
khao_lek
a6de175f3c Translated using Weblate (Thai)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/th/
2019-03-07 22:11:58 +01:00
khao_lek
eb377781c8 Translated using Weblate (Thai)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/th/
2019-03-07 22:11:49 +01:00
Weerasakol Chawanotai
e536c859a7 Translated using Weblate (Thai)
Currently translated at 100.0% (27 of 27 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2019-03-07 22:11:39 +01:00
khao_lek
2e7c20142c Translated using Weblate (Thai)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/th/
2019-03-07 22:11:30 +01:00
objecttothis
a55893930a Create 3.4.0_add_iso_4217.sql 2019-03-07 16:01:03 +04:00
objecttothis
ea75574b82 Merge pull request #2393 from opensourcepos/add_DECIMAL_attribute_type
Add decimal attribute type
2019-03-07 15:20:02 +04:00
FrancescoUK
8f7e5297cd Merge pull request #2391 from opensourcepos/payments-report
Improve the summary payments report.
2019-03-07 07:41:19 +00:00
Steve Ireland
09432c6450 Improve the summary payments report. 2019-03-06 19:27:58 -05:00
objecttothis
1afbe029b5 Correct indentation 2019-03-06 15:44:11 +04:00
objecttothis
74995a5ac1 Adding of decimal unit field 2019-03-06 15:42:04 +04:00
objecttothis
d79783f605 Create 3.4.0_decimal_attribute_type.sql
Adding migration script for database add of DECIMAL attribute type
2019-03-01 17:52:30 +04:00
objecttothis
5fe9e3f8d2 Create 20190301124900_decimal_attribute_type.php
Adding migration php file
2019-03-01 17:51:09 +04:00
objecttothis
f875c8e518 Changes to allow attribute type of DECIMAL 2019-03-01 17:48:20 +04:00
WebShells
80179339e8 Live Data Search
Live Data Search for Specific Customer Input Report/Detailed Reports section in order to search for a specific client rather than typing it's name in a fast way.
2019-03-01 01:58:50 +02:00
WShells
f3163198a0 Sync
Sync latest commits
2019-03-01 01:54:26 +02:00
WShells
6a654e4f49 Re-added config-wrapper
Re-align content of div/center align notice message.
2019-03-01 01:18:55 +02:00
Weblate
0f91feee2a Merge branch 'origin/master' into Weblate 2019-02-27 22:52:03 +01:00
tomer
f1a0034f19 Translated using Weblate (Hebrew)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/he/
2019-02-27 22:52:00 +01:00
tomer
78ec9d8e22 Translated using Weblate (Hebrew)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/he/
2019-02-27 22:51:50 +01:00
tomer
b6e5a0f732 Translated using Weblate (Hebrew)
Currently translated at 100.0% (120 of 120 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/he/
2019-02-27 22:51:40 +01:00
tomer
a697df7de9 Translated using Weblate (Hebrew)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/he/
2019-02-27 22:51:30 +01:00
tomer
a728dc5d7f Translated using Weblate (Hebrew)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/he/
2019-02-27 22:51:20 +01:00
tomer
7994803d65 Translated using Weblate (Hebrew)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/he/
2019-02-27 22:51:11 +01:00
tomer
9b666bdc40 Translated using Weblate (Hebrew)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/he/
2019-02-27 22:51:01 +01:00
tomer
27c372e891 Translated using Weblate (Hebrew)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/he/
2019-02-27 22:50:51 +01:00
tomer
313727ca5c Translated using Weblate (Hebrew)
Currently translated at 100.0% (68 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/he/
2019-02-27 22:50:41 +01:00
tomer
ea21970e5e Translated using Weblate (Hebrew)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/he/
2019-02-27 22:50:31 +01:00
tomer
794020921a Translated using Weblate (Hebrew)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/he/
2019-02-27 22:50:21 +01:00
Natig Asad
8a389a8ab9 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/az/
2019-02-27 22:50:01 +01:00
FrancescoUK
defb8d0d6f Merge pull request #2364 from WebShells/Stats
System & Installation Info
2019-02-27 20:26:10 +00:00
FrancescoUK
3f89612830 Merge pull request #2379 from opensourcepos/attribute_conversion_fixes
Attribute conversion fixes
2019-02-27 20:25:09 +00:00
objecttothis
0e6eac9375 Update Attributes.php
Correcting variable name.  adding parameterization instead of php concatenate.
2019-02-27 19:43:24 +04:00
objecttothis
54048802f2 Update attributes_lang.php
Parameterize Lang->Line and correct spelling of variable
2019-02-27 19:36:17 +04:00
objecttothis
fe4b6dc640 Update config.php
Security Restriction per #2377
2019-02-27 11:27:05 +04:00
jekkos
c08bfa643c Fix attributes_lang.php 2019-02-26 23:55:06 +01:00
tomer
321f31c0c0 Added translation using Weblate (Hebrew) 2019-02-26 12:16:36 +01:00
tomer
17451c5b93 Added translation using Weblate (Hebrew) 2019-02-26 12:10:52 +01:00
tomer
67f134a14b Added translation using Weblate (Hebrew) 2019-02-26 11:24:03 +01:00
objecttothis
aea080d6bd Update Attribute.php
Without this else, TEXT->DROPDOWN fails.  It just returns a simple success because no database changes are needed other than changing the definition_type which is not done here.  This would also cause all other conversions not listed to automatically succeed, but we don't need to worry because those are restricted in the view to only ones that are actually supported.
2019-02-26 14:08:33 +04:00
tomer
14c1be25c9 Added translation using Weblate (Hebrew) 2019-02-26 11:02:41 +01:00
objecttothis
bcf82a0830 Update Attributes.php
Unified format changes.  All lang lines should be _definition_ or _definitions_ but not a mix of both.
2019-02-26 13:49:48 +04:00
objecttothis
79b00e8040 Update attributes_lang.php
Unified format changes.  All lang lines should be _definition_ or _definitions_ but not a mix of both.
2019-02-26 13:49:06 +04:00
objecttothis
8a935625ec Update attributes_lang.php
The language line did not formerly exist and needed to be added.  This line needs to get propagated to all other languages.
2019-02-26 13:43:01 +04:00
tomer
efd4e9aeb1 Added translation using Weblate (Hebrew) 2019-02-26 08:57:21 +01:00
tomer
3df719baee Added translation using Weblate (Hebrew) 2019-02-26 08:51:48 +01:00
tomer
30dac982cc Added translation using Weblate (Hebrew) 2019-02-26 08:11:18 +01:00
tomer
bd6b0d3543 Added translation using Weblate (Hebrew) 2019-02-25 22:28:59 +01:00
tomer
0d1925abae Added translation using Weblate (Hebrew) 2019-02-25 22:04:23 +01:00
tomer
e39176e69a Added translation using Weblate (Hebrew) 2019-02-25 21:45:46 +01:00
khao_lek
9fe3ce6679 Translated using Weblate (Thai)
Currently translated at 3.8% (3 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/th/
2019-02-25 21:39:40 +01:00
khao_lek
da4b6ba9d3 Translated using Weblate (Thai)
Currently translated at 67.6% (117 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/th/
2019-02-25 21:39:30 +01:00
tomer
0e3d8b54de Translated using Weblate (Hebrew)
Currently translated at 97.7% (43 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/he/
2019-02-25 21:39:20 +01:00
tomer
79ae61d173 Translated using Weblate (Hebrew)
Currently translated at 100.0% (2 of 2 strings)

Translation: ospos/error
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/error/he/
2019-02-25 21:39:10 +01:00
tomer
d194c2af27 Translated using Weblate (Hebrew)
Currently translated at 100.0% (7 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/he/
2019-02-25 21:39:00 +01:00
tomer
f8fa528ad9 Translated using Weblate (Hebrew)
Currently translated at 100.0% (35 of 35 strings)

Translation: ospos/employees
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/employees/he/
2019-02-25 21:38:46 +01:00
tomer
9470e9efd1 Translated using Weblate (Hebrew)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/he/
2019-02-25 21:38:25 +01:00
khao_lek
483530507c Translated using Weblate (Thai)
Currently translated at 98.0% (51 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/th/
2019-02-25 21:38:05 +01:00
tomer
70239374d3 Translated using Weblate (Hebrew)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/he/
2019-02-25 21:37:55 +01:00
tomer
e9dc3d53e1 Translated using Weblate (Hebrew)
Currently translated at 100.0% (273 of 273 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/he/
2019-02-25 21:37:38 +01:00
khao_lek
8883a16f42 Translated using Weblate (Thai)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/th/
2019-02-25 21:37:26 +01:00
tomer
a47d1ff12e Translated using Weblate (Hebrew)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/he/
2019-02-25 21:37:21 +01:00
tomer
a4e644fe14 Translated using Weblate (Hebrew)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/he/
2019-02-25 21:37:10 +01:00
tomer
60195d4757 Translated using Weblate (Hebrew)
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/he/
2019-02-25 21:37:00 +01:00
tomer
b32ce7958e Translated using Weblate (Hebrew)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/he/
2019-02-25 21:36:51 +01:00
tomer
9d7e0e0664 Added translation using Weblate (Hebrew) 2019-02-25 21:35:24 +01:00
tomer
1d705158ef Added translation using Weblate (Hebrew) 2019-02-25 21:32:33 +01:00
tomer
b8d20abc76 Added translation using Weblate (Hebrew) 2019-02-25 21:25:28 +01:00
tomer
8a5e8656ee Added translation using Weblate (Hebrew) 2019-02-25 20:54:49 +01:00
tomer
9f26e7b30f Added translation using Weblate (Hebrew) 2019-02-25 20:49:12 +01:00
tomer
5d32252f2e Added translation using Weblate (Hebrew) 2019-02-25 20:26:59 +01:00
tomer
30bbddc96d Added translation using Weblate (Hebrew) 2019-02-25 17:59:24 +01:00
tomer
ebf6ee16d2 Added translation using Weblate (Hebrew) 2019-02-25 17:26:45 +01:00
tomer
75839b69ce Added translation using Weblate (Hebrew) 2019-02-25 16:57:59 +01:00
tomer
7be9db2cc7 Added translation using Weblate (Hebrew) 2019-02-25 14:14:04 +01:00
tomer
49fcb988ad Added translation using Weblate (Hebrew) 2019-02-25 12:55:07 +01:00
Weblate
1c4847f35e Merge branch 'origin/master' into Weblate 2019-02-24 23:56:45 +01:00
Francisco xyko
f341d8bca3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/pt_BR/
2019-02-24 23:56:42 +01:00
Natig Asad
723c3f4756 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/az/
2019-02-24 23:56:32 +01:00
Francisco xyko
befde25d85 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (273 of 273 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/pt_BR/
2019-02-24 23:56:21 +01:00
Natig Asad
4987afbf6e Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (273 of 273 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/az/
2019-02-24 23:56:16 +01:00
Francisco xyko
4bddfb6a31 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/pt_BR/
2019-02-24 23:56:06 +01:00
Natig Asad
ada9438731 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/az/
2019-02-24 23:56:01 +01:00
FrancescoUK
c0b947f72e Merge pull request #2362 from opensourcepos/convert_attribute_type
Add attribute type conversion, error checking.
2019-02-24 21:25:46 +00:00
Steve Ireland
66d80f9a78 Merge pull request #2343 from opensourcepos/indiagst-migration-fix
Haven't heard anything from anybody and since this has been reviewed a few times it should be relatively safe to merge.  I wanted to have time to rebase my other change and retest this weekend.
2019-02-24 09:54:52 -05:00
Steve Ireland
2f710e80e7 Fixes a couple of problems with sales tax migration plus a couple of other problems. 2019-02-23 18:58:28 -05:00
WShells
1681afe65a CSV check 2019-02-24 00:41:58 +02:00
WShells
85f7139dfe Update system_info.php 2019-02-24 00:19:28 +02:00
WShells
8f59740a5b Update config_lang.php 2019-02-24 00:19:12 +02:00
objecttothis
3b3b58bda4 Refactor regex to locale_helper to be used in other parts of the code. 2019-02-21 15:04:48 +04:00
objecttothis
fd99df8c2e combined nested if statement into single if 2019-02-21 12:23:44 +04:00
objecttothis
994428eb7f Fix bug preventing new Attribute from being anything but GROUP 2019-02-20 12:06:33 +04:00
objecttothis
20af6120b1 Corrections to $success 2019-02-20 10:32:40 +04:00
objecttothis
7875ecaa5b Corrected $success references 2019-02-19 10:46:27 +04:00
objecttothis
c631cdbaf4 Added code to error out on incorrectly formatted data. 2019-02-18 17:02:12 +04:00
objecttothis
81033f55e5 Corrected code 2019-02-18 12:37:11 +04:00
WebShells
4db2d24ed4 Added system info to public
Added System Info to public, so people who are unable to login can make use of it in error reporting...
Added Git Link for Submitting an Issue
Forced Read only permissions on CSV files
Switched cases for csv files, in case writable show x and in case not writable show a check mark.
2019-02-17 22:48:14 +02:00
WebShells
958d9db0d0 Info Lang Add.
Server Info Lang Add.
2019-02-17 21:47:00 +02:00
WShells
59e3d0d84c Removed commented lines 2019-02-17 15:28:12 +02:00
WShells
dbb25b7e17 Rename server_info.php to system_info.php 2019-02-17 02:07:33 +02:00
WShells
6afae3b855 Rename server_stats.php to server_info.php 2019-02-17 02:06:48 +02:00
WShells
2b2e8b1da0 Update server_stats.php 2019-02-17 00:40:02 +02:00
WShells
57e6863769 Indent... 2019-02-17 00:37:52 +02:00
WebShells
b0374d52aa System Info
Helpful info about ospos installation, user settings, system settings, and files permissions...
2019-02-17 00:06:43 +02:00
WShells
7b318e411c Merge pull request #2 from opensourcepos/master
..
2019-02-16 23:37:59 +02:00
WShells
069715fe4a Merge branch 'master' into master 2019-02-16 23:32:37 +02:00
FrancescoUK
b72f1919e9 Merge pull request #2322 from erastus/timezone
fixed timezone (#2321)
2019-02-16 17:49:01 +00:00
FrancescoUK
8431e4c1e6 Update locale_helper.php 2019-02-16 17:48:34 +00:00
jekkos
888c01282b Translated using Weblate (Flemish)
Currently translated at 85.7% (18 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/nl_BE/
2019-02-16 14:55:45 +01:00
jekkos
67415e33a5 Translated using Weblate (Flemish)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/nl_BE/
2019-02-16 14:55:34 +01:00
Natig Asad
0dcb032b1d Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/az/
2019-02-16 14:55:24 +01:00
kevinyl18
d55cd787ad Translated using Weblate (Indonesian)
Currently translated at 42.3% (11 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/id/
2019-02-16 14:55:13 +01:00
jekkos
be20d8cc1e Translated using Weblate (Flemish)
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/nl_BE/
2019-02-16 14:55:08 +01:00
objecttothis
e66c7bad24 Add attribute type conversion, error checking. 2019-02-15 17:03:31 +04:00
jekkos
98b39b2f0c Sync language files 2019-02-14 23:50:18 +01:00
Weblate
255939c2a9 Merge branch 'origin/master' into Weblate 2019-02-14 23:33:24 +01:00
Natig Asad
7e6e038a9b Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (77 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/az/
2019-02-14 23:33:24 +01:00
Natig Asad
d20f0e045b Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/az/
2019-02-14 23:33:13 +01:00
eugen-sclavone
31b07d8843 Translated using Weblate (Romanian)
Currently translated at 96.5% (167 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/ro/
2019-02-14 23:33:03 +01:00
Natig Asad
1ce9691911 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/az/
2019-02-14 23:32:57 +01:00
Natig Asad
86982f6d47 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (120 of 120 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/az/
2019-02-14 23:32:46 +01:00
eugen-sclavone
4988122ee3 Translated using Weblate (Romanian)
Currently translated at 9.6% (5 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/ro/
2019-02-14 23:32:35 +01:00
Natig Asad
a32947e149 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/az/
2019-02-14 23:32:30 +01:00
Natig Asad
9387b078c6 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/az/
2019-02-14 23:32:20 +01:00
khao_lek
300ba1bc63 Translated using Weblate (Thai)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/th/
2019-02-14 23:32:09 +01:00
Natig Asad
c276318790 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/az/
2019-02-14 23:32:04 +01:00
khao_lek
b283011436 Translated using Weblate (Thai)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/th/
2019-02-14 23:31:54 +01:00
nikopoler
786e32944e Translated using Weblate (Russian)
Currently translated at 87.5% (7 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/ru/
2019-02-14 23:31:48 +01:00
wd-code
7e2a82ee19 Translated using Weblate (French)
Currently translated at 62.5% (5 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/fr/
2019-02-14 23:31:43 +01:00
Natig Asad
7c77d6841a Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/az/
2019-02-14 23:31:38 +01:00
khao_lek
2e107b888a Translated using Weblate (Thai)
Currently translated at 99.0% (107 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/th/
2019-02-14 23:31:27 +01:00
nikopoler
a1b9a84ca7 Translated using Weblate (Russian)
Currently translated at 93.5% (101 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/ru/
2019-02-14 23:31:22 +01:00
Natig Asad
a83105ecb8 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/az/
2019-02-14 23:31:16 +01:00
khao_lek
51baef438a Translated using Weblate (Thai)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/th/
2019-02-14 23:31:05 +01:00
Natig Asad
9d336a1804 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/az/
2019-02-14 23:31:00 +01:00
Natig Asad
430586a68b Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (68 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/az/
2019-02-14 23:30:50 +01:00
Natig Asad
a0b397a74a Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/az/
2019-02-14 23:30:39 +01:00
Natig Asad
c4144405a8 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/az/
2019-02-14 23:30:29 +01:00
eugen-sclavone
2a1d8d0751 Translated using Weblate (Romanian)
Currently translated at 100.0% (2 of 2 strings)

Translation: ospos/error
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/error/ro/
2019-02-14 23:30:19 +01:00
Natig Asad
6e7259dd83 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (7 of 7 strings)

Translation: ospos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/az/
2019-02-14 23:30:08 +01:00
Natig Asad
bcb8c4b0fb Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (35 of 35 strings)

Translation: ospos/employees
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/employees/az/
2019-02-14 23:29:57 +01:00
khao_lek
92212a30ae Translated using Weblate (Thai)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/th/
2019-02-14 23:29:47 +01:00
Natig Asad
fccbdf844a Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/az/
2019-02-14 23:29:41 +01:00
eugen-sclavone
013dc576b6 Translated using Weblate (Romanian)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/ro/
2019-02-14 23:29:30 +01:00
Natig Asad
6f63a4a369 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/az/
2019-02-14 23:29:24 +01:00
Natig Asad
c740781df2 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (272 of 272 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/az/
2019-02-14 23:29:13 +01:00
eugen-sclavone
0abaa4bc04 Translated using Weblate (Romanian)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/ro/
2019-02-14 23:29:02 +01:00
wd-code
5d5e316b39 Translated using Weblate (French)
Currently translated at 47.2% (17 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/fr/
2019-02-14 23:28:55 +01:00
Natig Asad
53714acd27 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/az/
2019-02-14 23:28:50 +01:00
khao_lek
4317e82a7b Translated using Weblate (Thai)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/th/
2019-02-14 23:28:39 +01:00
Natig Asad
8d19f1e41b Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/az/
2019-02-14 23:28:33 +01:00
khao_lek
b13b12ec6a Translated using Weblate (Thai)
Currently translated at 96.1% (25 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/th/
2019-02-14 23:28:23 +01:00
eugen-sclavone
83cd4c6d50 Translated using Weblate (Romanian)
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ro/
2019-02-14 23:28:18 +01:00
Natig Asad
2ec26f4357 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/az/
2019-02-14 23:28:12 +01:00
nikopoler
bd18fd5577 Translated using Weblate (Russian)
Currently translated at 95.5% (64 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/ru/
2019-02-14 23:28:01 +01:00
eugen-sclavone
3a51371834 Translated using Weblate (Romanian)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/ro/
2019-02-14 23:27:55 +01:00
Natig Asad
9c060e8c9e Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/az/
2019-02-14 23:27:50 +01:00
FrancescoUK
9e2f9f1322 Add en_GB translation for Integrations 2019-02-10 12:28:35 +00:00
FrancescoUK
be4460d1b6 Merge pull request #2344 from opensourcepos/fix-tax-group-rendering
This fixes the improper display of the tax group
2019-02-10 12:11:57 +00:00
FrancescoUK
4d474f5952 Merge pull request #2357 from opensourcepos/cash-rounding-for-chile
Cash rounding for Chile requires rounding to the nearest 10 pesos.
2019-02-10 12:03:33 +00:00
Steve Ireland
b3f53fa627 Fix tax group rendering issue triggered by "% CE" 2019-02-09 16:33:45 -05:00
Steve Ireland
8bf819abb9 Cash rounding for Chili requires rounding to the nearest 10 pesoes. 2019-02-09 15:51:46 -05:00
Steve Ireland
a33db6f055 Merge pull request #2356 from opensourcepos/stock-type-visibility
Allow user excluded from item kit maintenance to maintain stock type.
2019-02-09 13:02:08 -05:00
Steve Ireland
03fe400e9e Allow user excluded from item kit maintenance to maintain stock type. 2019-02-09 11:56:49 -05:00
jekkos
929f3e63fc Show 6 character git hash instead of 5 (#2352) 2019-02-08 08:26:16 +01:00
objecttothis
3b9bf5eaa4 Correcting positioning of the ospos.css file
I wasn't aware of the need to build the project before css changes would take effect nor that I could just add `?debug=true` to the URL to see changes.  I've put the line back in its original position and it works without other changes.
2019-02-05 09:40:27 +01:00
objecttothis
81b056b8f0 Merge pull request #2330 from opensourcepos/third_party_integrations
Third party integrations
2019-02-04 17:07:03 +04:00
objecttothis
2d7ea8d4e7 modified CSS id to be unique
Rather than override an existing CSS id with potential consequences I just created a unique ID in ospos.css
2019-02-04 13:47:43 +04:00
objecttothis
381b741f42 Add css for integrations header 2019-02-04 13:46:08 +04:00
objecttothis
9b6edaea4d Move ospos.css below opensourcepos.min.css
This prevents changes in ospos.css from being ignored
2019-02-04 13:44:40 +04:00
jekkos
9527ad4f33 Use dev as default commit hash (#2324) 2019-02-02 18:44:12 +01:00
jekkos
bf28072f0d Try to reuse $rev variable in pre_install secion (#2324) 2019-02-02 15:16:10 +01:00
jekkos
231f7485fe Temporarily fix supplier update (#2309) 2019-02-02 14:36:05 +01:00
jekkos
6f75ec3ae2 Skip india GST migration if it ran before + force cleanup (#2302) 2019-02-02 14:08:20 +01:00
jekkos
2674fbd03f Disable .gitattributes ident (#2324) 2019-02-02 14:08:20 +01:00
jekkos
a36bfdd32d Translated using Weblate (Flemish)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/nl_BE/
2019-02-02 12:47:12 +01:00
Weblate
b75f486e6e Merge branch 'origin/master' into Weblate 2019-02-01 22:05:48 +01:00
Héctor Martín
618465bf80 Translated using Weblate (Spanish)
Currently translated at 67.5% (52 of 77 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/es/
2019-02-01 22:05:45 +01:00
jekkos
33f4471364 Translated using Weblate (Flemish)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/nl_BE/
2019-02-01 22:05:31 +01:00
Héctor Martín
7cb5bb98ff Translated using Weblate (Spanish)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/es/
2019-02-01 22:05:17 +01:00
haygcao
71a1c2ac08 Translated using Weblate (Chinese (Simplified))
Currently translated at 69.2% (18 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/zh_Hans/
2019-02-01 22:05:01 +01:00
jekkos
80a1c73652 Ignore apache rewrite rule for let's encrypt challenge renewal 2019-02-01 21:14:08 +01:00
objecttothis
00a16ac50b Update manage.php
Fixed another forgotten change
2019-01-31 16:42:58 +04:00
objecttothis
d3155ed8be Merge pull request #2325 from opensourcepos/attribute_value_duplicate_check
Check to see if attribute_value already exists
2019-01-30 13:29:09 +04:00
objecttothis
749c41c43c Merge pull request #2333 from opensourcepos/attribute_migrations_values_fix
Add IGNORE to insert and UNIQUE constraint to attribute_value
2019-01-30 13:27:02 +04:00
objecttothis
ab2a46ff22 Add IGNORE to insert and UNIQUE constraint to attribute_value 2019-01-30 13:08:12 +04:00
objecttothis
2c06edba02 Remove function and combine call to reduce redundant code. 2019-01-30 11:30:28 +04:00
objecttothis
6b12cd6cc7 Correct missing change
Not sure how this didn't get changed before.  I had the change in my test database.  I must have just missed it.
2019-01-30 10:35:41 +04:00
Steve Ireland
cb79bbe5ef Merge pull request #2332 from opensourcepos/fix-upgrade-sequence
India GST script is dependent on the 3.3.0 script.
2019-01-29 21:43:00 -05:00
Steve Ireland
57fa8c1a4b India GST script is dependent on the 3.3.0 script. 2019-01-29 21:30:52 -05:00
objecttothis
f238bc7d40 Rename mailchimp_config.php to integrations_config.php
Rename file to match generic integrations rather than specific mailchimp
2019-01-29 18:27:41 +04:00
objecttothis
4d13cf2f67 Converting mailchimp config to integrations config 2019-01-29 18:25:44 +04:00
objecttothis
e080873ec3 Check to see if attribute_value already exists 2019-01-28 18:16:17 +04:00
Erastus
db6ee6839a fixed timezone (#2321) 2019-01-26 14:47:36 -06:00
Weblate
74417024b4 Merge branch 'origin/master' into Weblate 2019-01-20 01:05:47 +01:00
Marek Borowik
322dc85e2c Added translation using Weblate (Polish) 2019-01-20 01:05:44 +01:00
Steve Ireland
740305c2ca Merge pull request #2314 from opensourcepos/fix-sales-tax-amount
It's a small change and I couldn't have introduced too many problems.  I tested the change locally to confirm that it works (at least with gift cards).  So I went ahead and merged this change.
2019-01-16 22:04:12 -05:00
Steve Ireland
0dc5a8e3a2 Rename sales_tax_amount to sale_tax_amount 2019-01-16 21:45:55 -05:00
FrancescoUK
cbfb8e5a89 Merge pull request #2289 from opensourcepos/refactor-tax-config
Refactor Tax Configuration
2019-01-14 10:59:09 +00:00
bashar alghnnam
2c76f90f67 Translated using Weblate (Arabic (Egypt))
Currently translated at 43.2% (29 of 67 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ar_EG/
2019-01-13 13:21:17 +01:00
bashar alghnnam
32813fc65e Translated using Weblate (Arabic (Egypt))
Currently translated at 94.7% (164 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/ar_EG/
2019-01-13 13:21:17 +01:00
Albert García
2ed5ff3c02 Translated using Weblate (Spanish)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/es/
2019-01-13 13:21:17 +01:00
Albert García
86144b7816 Translated using Weblate (Spanish)
Currently translated at 96.6% (260 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es/
2019-01-13 13:21:17 +01:00
Albert García
687229dbec Translated using Weblate (Spanish)
Currently translated at 100.0% (66 of 66 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/es/
2019-01-13 13:21:17 +01:00
jekkos
f911cebae2 Revert translation update + bump migration script version 2019-01-13 13:18:51 +01:00
jekkos
02d7588e59 Add config item for default order discount 2019-01-13 13:18:51 +01:00
Steve Ireland
20cb007f3c Refactor Tax Configuration 2019-01-10 21:42:15 -05:00
FrancescoUK
74f5bb17bb Update to Bootswatch and Bootstrap 3.4.0 2019-01-07 21:51:36 +00:00
jekkos
acba94baf2 Fix broken dialogs after column visiblity toggle (#2132) 2019-01-07 18:44:24 +01:00
jekkos
6792c829b2 Cleanup duplicated field 2019-01-07 18:44:24 +01:00
FrancescoUK
0ada6ba25d Fix login missing version issue 2019-01-06 17:21:21 +00:00
Weblate
85564d9201 Merge branch 'origin/master' into Weblate 2019-01-05 11:53:48 +01:00
jekkos
489ed6c23f Translated using Weblate (Flemish)
Currently translated at 99.6% (268 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/nl_BE/
2019-01-05 11:53:47 +01:00
jekkos
f2f2e52abe Fix flemish discount translation 2019-01-03 23:53:54 +01:00
FrancescoUK
205cd2fce7 Fix en-GB translations 2019-01-02 20:20:21 +00:00
jekkos
6c685f89b8 Fix amount formatting in expenses (#2085) 2018-12-30 18:27:58 +01:00
jekkos
4261613316 Fix migration message, add UK translation (#2247) 2018-12-30 18:27:58 +01:00
jekkos
8b72f9b46a Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (269 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/en_GB/
2018-12-30 15:24:42 +01:00
Ahmet BAYKAL
847e7e2598 Translated using Weblate (Turkish)
Currently translated at 44.7% (30 of 67 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/tr/
2018-12-30 13:41:07 +01:00
Francisco xyko
448971c8ec Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (67 of 67 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/pt_BR/
2018-12-30 13:41:07 +01:00
Francisco xyko
f8519b8d3f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/pt_BR/
2018-12-30 13:41:06 +01:00
Francisco xyko
47892c9866 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/pt_BR/
2018-12-30 13:41:06 +01:00
Francisco xyko
4a4ef2da4b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (120 of 120 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/pt_BR/
2018-12-30 13:41:05 +01:00
Johannes Roesch
d506099869 Translated using Weblate (German)
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/de/
2018-12-30 13:41:05 +01:00
Francisco xyko
7203737bd5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/pt_BR/
2018-12-30 13:41:05 +01:00
Francisco xyko
d8a65a6921 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/pt_BR/
2018-12-30 13:41:04 +01:00
Jenaro Centeno
7f90cfcdac Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (269 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/es_MX/
2018-12-30 13:41:04 +01:00
Francisco xyko
7e497ca4c2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (269 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/pt_BR/
2018-12-30 13:41:03 +01:00
Jenaro Centeno
0448a02c84 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/es_MX/
2018-12-30 13:41:03 +01:00
Jenaro Centeno
7bdaafce08 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/es_MX/
2018-12-30 13:41:02 +01:00
Jenaro Centeno
1511791dbd Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/es_MX/
2018-12-30 13:41:02 +01:00
Francisco xyko
2f1c212f4a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/pt_BR/
2018-12-30 13:41:01 +01:00
Jenaro Centeno
8877e86af4 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (66 of 66 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/es_MX/
2018-12-30 13:41:01 +01:00
Francisco xyko
d0fb8c789a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (66 of 66 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/pt_BR/
2018-12-30 13:41:00 +01:00
Johannes Roesch
2fa03cdb22 Translated using Weblate (German)
Currently translated at 100.0% (120 of 120 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/de/
2018-12-26 21:35:16 +01:00
Johannes Roesch
78573e02e7 Translated using Weblate (German)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/de/
2018-12-26 21:27:06 +01:00
Johannes Roesch
f7196f7a15 Translated using Weblate (German)
Currently translated at 100.0% (68 of 68 strings)

Translation: ospos/giftcards
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/giftcards/de/
2018-12-26 21:21:25 +01:00
Johannes Roesch
28bb50f205 Translated using Weblate (German)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/de/
2018-12-26 21:18:31 +01:00
Johannes Roesch
bc006ce1c9 Translated using Weblate (German)
Currently translated at 100.0% (21 of 21 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/de/
2018-12-26 21:16:33 +01:00
Johannes Roesch
41c58b04fc Translated using Weblate (German)
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/de/
2018-12-26 21:12:21 +01:00
Johannes Roesch
e29c8b64f2 Translated using Weblate (German)
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/de/
2018-12-26 21:07:17 +01:00
Johannes Roesch
8bc375f2e7 Translated using Weblate (German)
Currently translated at 94.1% (113 of 120 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/de/
2018-12-26 15:52:55 +01:00
Johannes Roesch
754df74512 Translated using Weblate (German)
Currently translated at 100.0% (173 of 173 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/de/
2018-12-26 15:34:26 +01:00
Johannes Roesch
5b6cc424ff Translated using Weblate (German)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/de/
2018-12-26 15:06:36 +01:00
Johannes Roesch
f82e69defc Translated using Weblate (German)
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/de/
2018-12-26 14:56:26 +01:00
Johannes Roesch
d00fd6a90a Translated using Weblate (German)
Currently translated at 97.7% (43 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/de/
2018-12-26 14:49:00 +01:00
Johannes Roesch
4f69b961dc Translated using Weblate (German)
Currently translated at 98.5% (265 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/de/
2018-12-26 14:31:50 +01:00
Johannes Roesch
0919042321 Translated using Weblate (German)
Currently translated at 100.0% (108 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/de/
2018-12-26 14:18:25 +01:00
Johannes Roesch
9bfd6e13f3 Translated using Weblate (German)
Currently translated at 86.5% (58 of 67 strings)

Translation: ospos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/de/
2018-12-26 14:12:07 +01:00
Johannes Roesch
be4715b6d6 Translated using Weblate (German)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/de/
2018-12-26 14:10:30 +01:00
Johannes Roesch
cbcbc70b91 Translated using Weblate (German)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/de/
2018-12-26 14:09:27 +01:00
Johannes Roesch
2601acc53a Translated using Weblate (German)
Currently translated at 98.1% (106 of 108 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/de/
2018-12-26 14:08:31 +01:00
Johannes Roesch
8c0dd4398c Translated using Weblate (German)
Currently translated at 91.8% (247 of 269 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/de/
2018-12-26 14:06:04 +01:00
Johannes Roesch
c49cc42997 Translated using Weblate (German)
Currently translated at 100.0% (66 of 66 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/de/
2018-12-26 13:50:13 +01:00
Johannes Roesch
0370c4c9d1 Translated using Weblate (German)
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/de/
2018-12-26 13:48:10 +01:00
Johannes Roesch
150eff28eb Translated using Weblate (German)
Currently translated at 80.7% (21 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/de/
2018-12-26 13:46:13 +01:00
Jenaro Centeno
7d12a2fec9 Added translation using Weblate (Spanish (Mexico)) 2018-12-26 01:55:37 +01:00
Jenaro Centeno
2d54317c2c Added translation using Weblate (Spanish (Mexico)) 2018-12-26 01:11:06 +01:00
Jenaro Centeno
369f011d8a Added translation using Weblate (Spanish (Mexico)) 2018-12-26 00:57:05 +01:00
Jenaro Centeno
385013da68 Added translation using Weblate (Spanish (Mexico)) 2018-12-26 00:52:16 +01:00
Jenaro Centeno
2a5ee75dac Added translation using Weblate (Spanish (Mexico)) 2018-12-26 00:34:26 +01:00
jekkos
a5a0aa0e1b Refresh langauge files 2018-12-24 20:50:13 +01:00
jekkos
804942cff5 Add warning if migration is needed (#2247) 2018-12-24 20:43:22 +01:00
Steve Ireland
6d43e8882d Merge pull request #2202 from opensourcepos/india-gst
Add support for India GST
2018-12-23 11:27:36 -05:00
Steve Ireland
3220469837 Add support for India GST 2018-12-23 09:16:10 -05:00
FrancescoUK
e4d946fdc9 Fix en-GB translations (#2222) 2018-12-22 18:26:16 +00:00
Ethan Horseshoe
aa309028ea Translated using Weblate (German)
Currently translated at 42.3% (11 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/de/
2018-12-22 15:21:29 +01:00
M.Sva
f4cdc527c3 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ar_EG/
2018-12-22 15:21:29 +01:00
jekkos
6a47d60d35 Update turkish (#2281) 2018-12-22 15:17:42 +01:00
jekkos
e87c1d9210 Merge pull request #2269 from opensourcepos/attribute_lang_changes
As per #2222, these are linguistic clarity changes in master.
2018-12-15 15:28:19 +01:00
WebShells
cabd232b3c Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/ar_EG/
2018-12-14 01:02:58 +01:00
Benjamin Kahlau
7c6fe8c272 Translated using Weblate (German)
Currently translated at 88.8% (144 of 162 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/de/
2018-12-14 01:02:58 +01:00
WebShells
c311d9a315 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (114 of 114 strings)

Translation: ospos/reports
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/reports/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
244cecd0a7 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (52 of 52 strings)

Translation: ospos/receivings
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/receivings/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
3d1176a9dd Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
de62b9441c Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
17d80dd8ec Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
ec167cedd3 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (107 of 107 strings)

Translation: ospos/items
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/items/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
38bc7cacae Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (19 of 19 strings)

Translation: ospos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
cc5a9b5d09 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
e9d00db912 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
ee702d9475 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (51 of 51 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/ar_EG/
2018-12-14 01:02:58 +01:00
Francisco xyko
1602404d32 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (263 of 263 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/pt_BR/
2018-12-14 01:02:58 +01:00
WebShells
b416b947ee Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (263 of 263 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/ar_EG/
2018-12-14 01:02:58 +01:00
mazbrili
dca79f6b0b Translated using Weblate (Indonesian)
Currently translated at 47.2% (17 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/id/
2018-12-14 01:02:58 +01:00
WebShells
54f3fa37e6 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/ar_EG/
2018-12-14 01:02:58 +01:00
WebShells
4a14620c16 Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/bootstrap_tables
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/bootstrap_tables/ar_EG/
2018-12-14 01:02:58 +01:00
Benjamin Kahlau
dd8585a1fb Translated using Weblate (German)
Currently translated at 11.5% (3 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/de/
2018-12-14 01:02:58 +01:00
objecttothis
42c444e3d9 Translated using Weblate (English (United States))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/en_US/
2018-12-14 01:02:58 +01:00
WebShells
cd8078fa4f Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ar_EG/
2018-12-14 01:02:58 +01:00
Benjamin Kahlau
b6deb18e66 Translated using Weblate (German)
Currently translated at 98.4% (64 of 65 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/de/
2018-12-14 01:02:58 +01:00
objecttothis
5a907259ee Translated using Weblate (English (United States))
Currently translated at 100.0% (65 of 65 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/en_US/
2018-12-14 01:02:58 +01:00
WebShells
d0bf52444c Translated using Weblate (Arabic (Egypt))
Currently translated at 100.0% (65 of 65 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/ar_EG/
2018-12-14 01:02:58 +01:00
objecttothis
41599bb11b Merge branch 'master' into attribute_lang_changes 2018-12-13 14:40:52 +04:00
objecttothis
4cd0ed7ecb As per #2222, these are linguistic clarity changes in master. 2018-12-13 14:35:57 +04:00
jekkos
06a6f82015 Fix attribute search (#2268) 2018-12-12 23:20:25 +01:00
jekkos
26fdac75e3 Upgrade docker php version 2018-12-12 21:49:12 +01:00
Weblate
4ca07c8b2c Merge branch 'origin/master' into Weblate 2018-12-09 14:17:31 +01:00
Gary Sze
21ae793784 Translated using Weblate (Chinese (Traditional))
Currently translated at 83.3% (135 of 162 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/zh_Hant/
2018-12-09 14:17:28 +01:00
jekkos
4ee8207ec1 Update gitter URL link (point to new ospos room) 2018-12-07 00:26:04 +01:00
Gary Sze
6f0bfdc6bf Translated using Weblate (Chinese (Traditional))
Currently translated at 79.6% (129 of 162 strings)

Translation: ospos/sales
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/sales/zh_Hant/
2018-12-05 18:01:07 +01:00
Gary Sze
bdf834e40e Translated using Weblate (Chinese (Traditional))
Currently translated at 45.0% (23 of 51 strings)

Translation: ospos/customers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/customers/zh_Hant/
2018-12-05 18:01:06 +01:00
Gary Sze
aaac19ad20 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (65 of 65 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/zh_Hant/
2018-12-05 18:01:05 +01:00
jekkos
69522b751a Added translation using Weblate (Malayalam) 2018-12-05 12:01:11 +01:00
Weblate
bea75566d6 Merge branch 'origin/master' into Weblate 2018-12-05 00:07:11 +01:00
Francisco xyko
20488c6a01 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/suppliers
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/suppliers/pt_BR/
2018-12-05 00:07:08 +01:00
Francisco xyko
809eceb8cb Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/pt_BR/
2018-12-05 00:07:08 +01:00
Francisco xyko
df6fd28d24 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (12 of 12 strings)

Translation: ospos/messages
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/messages/pt_BR/
2018-12-05 00:07:08 +01:00
Francisco xyko
28c01e86e7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/pt_BR/
2018-12-05 00:07:07 +01:00
mazbrili
381750c84d Translated using Weblate (Indonesian)
Currently translated at 100.0% (8 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/id/
2018-12-05 00:07:07 +01:00
M.Sva
15b5e25a1a Translated using Weblate (Arabic (Egypt))
Currently translated at 87.5% (7 of 8 strings)

Translation: ospos/login
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/login/ar_EG/
2018-12-05 00:07:07 +01:00
mazbrili
2418f3b44b Translated using Weblate (Indonesian)
Currently translated at 100.0% (33 of 33 strings)

Translation: ospos/item_kits
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/item_kits/id/
2018-12-05 00:07:06 +01:00
Francisco xyko
5ffc474fa4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)

Translation: ospos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/pt_BR/
2018-12-05 00:07:06 +01:00
Francisco xyko
1e0b2f6285 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/pt_BR/
2018-12-05 00:07:05 +01:00
mazbrili
8953c0af4c Translated using Weblate (Indonesian)
Currently translated at 100.0% (20 of 20 strings)

Translation: ospos/datepicker
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/datepicker/id/
2018-12-05 00:07:05 +01:00
Francisco xyko
6bfe6a0035 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (262 of 262 strings)

Translation: ospos/config
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/config/pt_BR/
2018-12-05 00:07:05 +01:00
Francisco xyko
8f8fec39ab Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (36 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/pt_BR/
2018-12-05 00:07:04 +01:00
mazbrili
d29d004f3d Translated using Weblate (Indonesian)
Currently translated at 11.1% (4 of 36 strings)

Translation: ospos/cashups
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/cashups/id/
2018-12-05 00:07:04 +01:00
Francisco xyko
5a15a29cea Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/pt_BR/
2018-12-05 00:07:03 +01:00
Francisco xyko
e57ae3e3ba Translated using Weblate (English (United States))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/en_US/
2018-12-05 00:07:03 +01:00
Francisco xyko
384e9b93f1 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/en_GB/
2018-12-05 00:07:03 +01:00
M.Sva
cc0895bb9d Translated using Weblate (Arabic (Egypt))
Currently translated at 11.5% (3 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/ar_EG/
2018-12-05 00:07:02 +01:00
Francisco xyko
dbbf8c0d40 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (65 of 65 strings)

Translation: ospos/common
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/common/pt_BR/
2018-12-05 00:07:02 +01:00
jekkos
70ea30efbd Remove deprecated translations for custom fields (#2253) 2018-12-04 23:19:24 +01:00
objecttothis
41db04eb0e Removed rows associated with custom fields in ospos_app_config 2018-12-04 23:00:30 +01:00
objecttothis
e432cd9b4e Removed deprecated language lines pertaining to custom fields which no
longer exist as of 3.3.0
2018-12-04 23:00:30 +01:00
jekkos
2f3c75db25 Show attribute values in search results (#2248) 2018-12-03 23:09:11 +01:00
jekkos
38ad73cc70 Translated using Weblate (Flemish)
Currently translated at 100.0% (39 of 39 strings)

Translation: ospos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/nl_BE/
2018-12-03 22:43:12 +01:00
jekkos
497befdf78 Sync language files (#2253) 2018-12-03 21:18:03 +01:00
jekkos
44ce09be0f Translated using Weblate (Flemish)
Currently translated at 100.0% (26 of 26 strings)

Translation: ospos/attributes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/attributes/nl_BE/
2018-12-02 02:03:57 +01:00
objecttothis
b1e123aaa1 Merge pull request #2246 from opensourcepos/attributes_migration_tweaks
Attributes migration tweaks
2018-11-29 10:20:12 +04:00
objecttothis
cc669eb347 Increase maximum varchar size to 255 for attribute_value 2018-11-27 17:37:27 +04:00
objecttothis
0509c24f31 Check for and exclude empty custom values not just NULL custom values 2018-11-27 17:35:25 +04:00
jekkos
3f3e1581ce Extend request timeout if migration needs to be done (#2241) 2018-11-26 23:52:58 +01:00
jekkos
9f386b003b Keep attributes selected when creating new items (#2221) 2018-11-26 13:06:25 +01:00
FrancescoUK
383a2d0520 Update composer.lock 2018-11-17 20:32:26 +00:00
jekkos
3a66646e09 Update minimum supported PHP version 2018-11-16 09:04:28 +01:00
jekkos
ceeebfcc62 Bump minimum PHP version in composer 2018-11-16 09:02:08 +01:00
jekkos
bbac4c5847 Set migrated attribute visiblity to items only (#2224) 2018-11-15 23:31:36 +01:00
jekkos
e8aa12a296 Add default attribute visiblity (#2224) 2018-11-15 23:23:20 +01:00
jekkos
c93b057ba1 Fix items column sorting order (#2224) 2018-11-15 22:08:54 +01:00
jekkos
2e67007c69 Fix attributes submit error (#2201) 2018-11-15 21:54:35 +01:00
jekkos
465a2c29d5 Fix temporal dependency in migration 2018-11-05 19:30:12 +01:00
jekkos
db6963a8a6 Fix blank screen after update (#2201) 2018-11-03 23:24:19 +01:00
jekkos
afbb06eaad Fix issue with PHP7.2 (#2190) 2018-11-03 20:19:19 +01:00
Steve Ireland
145e0b7783 Merge pull request #2215 from opensourcepos/chinese-lang
Split Chinese language options into Simplified and Traditional
2018-10-31 11:25:54 -04:00
Steve Ireland
42a69e7e9d Split Chinese language options into Simplified and Traditional 2018-10-30 20:50:01 -04:00
Khaled Saad
aa58bfdb76 Translated using Weblate (Arabic)
Currently translated at 100.0% (33 of 33 strings)
2018-10-24 08:31:39 +02:00
Khaled Saad
2810d930b0 Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-10-24 08:29:07 +02:00
Khaled Saad
8dbed47a87 Translated using Weblate (Arabic)
Currently translated at 100.0% (272 of 272 strings)
2018-10-24 08:22:24 +02:00
WIbi
9b6276411f Translated using Weblate (Indonesian)
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/id/
2018-10-23 08:39:51 +02:00
WIbi
7aa50530c0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/id/
2018-10-23 08:39:51 +02:00
WIbi
d99aba0bcc Translated using Weblate (Indonesian)
Currently translated at 100.0% (20 of 20 strings)
2018-10-23 08:39:51 +02:00
WIbi
dfd32d1b0e Translated using Weblate (Indonesian)
Currently translated at 100.0% (162 of 162 strings)
2018-10-23 08:39:51 +02:00
WIbi
1138bbf40e Translated using Weblate (Indonesian)
Currently translated at 100.0% (110 of 110 strings)
2018-10-23 08:39:51 +02:00
WIbi
bf658af8d0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)
2018-10-23 08:39:11 +02:00
WIbi
d4f449697f Translated using Weblate (Indonesian)
Currently translated at 100.0% (37 of 37 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/id/
2018-10-23 08:39:11 +02:00
WIbi
04346da7ef Translated using Weblate (Indonesian)
Currently translated at 100.0% (30 of 30 strings)
2018-10-23 08:39:11 +02:00
WIbi
64c2596979 Translated using Weblate (Indonesian)
Currently translated at 100.0% (68 of 68 strings)
2018-10-23 08:38:42 +02:00
WIbi
33502e4613 Translated using Weblate (Indonesian)
Currently translated at 99.6% (270 of 271 strings)
2018-10-23 08:38:42 +02:00
WIbi
d02cd24ebf Translated using Weblate (Indonesian)
Currently translated at 100.0% (65 of 65 strings)
2018-10-23 08:38:42 +02:00
WIbi
440cacade1 Translated using Weblate (Indonesian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/id/
2018-10-23 08:38:42 +02:00
WIbi
6e84469aa2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (110 of 110 strings)
2018-10-23 08:38:42 +02:00
WIbi
2eca946504 Translated using Weblate (Indonesian)
Currently translated at 100.0% (30 of 30 strings)
2018-10-23 08:38:42 +02:00
WIbi
a8d6ee6b43 Translated using Weblate (Indonesian)
Currently translated at 100.0% (162 of 162 strings)
2018-10-23 08:38:42 +02:00
WIbi
e0dafb7ab8 Translated using Weblate (Indonesian)
Currently translated at 100.0% (52 of 52 strings)
2018-10-23 08:38:42 +02:00
Zhivko Vanev
5d2f49e950 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (35 of 35 strings)
2018-10-23 08:38:42 +02:00
Eugen Sclavone
76684f69f5 Translated using Weblate (Romanian)
Currently translated at 23.6% (64 of 271 strings)
2018-10-23 08:38:42 +02:00
WIbi
9d1d57d42b Translated using Weblate (Indonesian)
Currently translated at 100.0% (37 of 37 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/id/
2018-10-23 08:37:15 +02:00
FrancescoUK
e9c192f70b Merge branch 'emi-silva-linked-expenses-supplier'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2018-10-21 17:22:27 +01:00
FrancescoUK
12ca6125fb Minor fixes 2018-10-21 17:21:05 +01:00
Emilio Silva Schlenker
f96f5efe48 Ternary operator instead of if clause to keep consistency 2018-10-21 16:51:34 +01:00
Emilio Silva Schlenker
5650a26381 Corrected indentation, chained some frontend calls 2018-10-21 16:51:34 +01:00
Emilio Silva Schlenker
2122866b50 Supplier field optional, SQL script, removed extra tab 2018-10-21 16:51:34 +01:00
Emilio Silva Schlenker
18db2e5c82 linked expenses with suppliers 2018-10-21 16:51:34 +01:00
Steve Ireland
1627a26bf6 Remove license folder and .license file 2018-10-17 21:44:16 -04:00
FrancescoUK
21ed53aa6d Minor fixes (#68) 2018-10-15 21:11:28 +01:00
jekkos
612d23fa63 Fix attribute selection for update (#68) 2018-10-15 19:32:29 +02:00
jekkos
3c6f7dd9c1 Fix item update query (#68) 2018-10-15 19:32:29 +02:00
jekkos
504f9cf853 Align items + sales and receivings reports (#68) 2018-10-15 19:32:29 +02:00
jekkos
fd00a74225 Refactor + fix detailed reports (#68) 2018-10-15 19:32:29 +02:00
jekkos
9c5ec71c19 Show line in detailed reports if no attribute value (#68) 2018-10-15 19:32:29 +02:00
jekkos
a7bc09312d Update migration script (#68) 2018-10-15 19:32:29 +02:00
jekkos
9c863e7795 Fix undefined offset error in devmode (#68) 2018-10-15 19:32:29 +02:00
jekkos
abc067a10b Fix development mode warning (#68) 2018-10-15 19:32:29 +02:00
jekkos
6fc2072967 Fix attribute search (#68) 2018-10-15 19:32:29 +02:00
jekkos
9570cb8b28 Fix offset warning (#68) 2018-10-15 19:32:29 +02:00
jekkos
8e58d57ab3 Fix line count in detailed sales/receivings reports (#68) 2018-10-15 19:32:29 +02:00
jekkos
7683cfe5c9 Fix dropdown preselection on edit (#68) 2018-10-15 19:32:29 +02:00
jekkos
43e3400468 Fix item row refresh (#68) 2018-10-15 19:32:29 +02:00
jekkos
74f31dbaf9 Keep unsaved attributes when adding multiple (#68) 2018-10-15 19:32:29 +02:00
jekkos
b9cba20d84 Fix items row refresh (#68) 2018-10-15 19:32:29 +02:00
jekkos
9cdfc0ce8a Fix css overflow + form refresh 2018-10-15 19:32:29 +02:00
jekkos
667c4e2afe Fix values when using multiple attribute columns (#68) 2018-10-15 19:32:29 +02:00
jekkos
e2147d8b00 Update language files (#68) 2018-10-15 19:32:29 +02:00
FrancescoUK
a7bad34fce Fix language files 2018-10-15 19:32:29 +02:00
jekkos
093b2d96af Correct language files (#68) 2018-10-15 19:32:29 +02:00
jekkos
fc01e35a43 Add collation to tables 2018-10-15 19:32:29 +02:00
jekkos
9e7543a41a Fix attribute values in items (#68) 2018-10-15 19:32:29 +02:00
jekkos
3c21b8ff5a Minor db script review remarks 2018-10-15 19:32:29 +02:00
jekkos
2fc353cd14 Don't show GROUP attribute as column (#68) 2018-10-15 19:32:29 +02:00
jekkos
9d0da3e6b8 Fix detailed receivings/sales report issues (#68) 2018-10-15 19:32:29 +02:00
jekkos
83dc1de6d6 Don't create attributes if custom fields were empty (#68) 2018-10-15 19:32:29 +02:00
jekkos
1ed56e388b Rename migration script (#68) 2018-10-15 19:32:29 +02:00
jekkos
5d088f0283 Revert tables.sql to original 3.0 (#68) 2018-10-15 19:32:29 +02:00
jekkos
77682973a0 Enable attributes in items table (#68) 2018-10-15 19:32:29 +02:00
jekkos
288b4029d7 Add attributes to detailed sales/receiving reports (#68) 2018-10-15 19:32:29 +02:00
jekkos
0fc702627e Fix detailed reports (#68) 2018-10-15 19:32:29 +02:00
jekkos
b2da8f5e9d Fix attribute delete (#68) 2018-10-15 19:32:29 +02:00
FrancescoUK
f86eaa78a2 Update form.php 2018-10-15 19:32:29 +02:00
FrancescoUK
6bbf927d81 Update Attribute.php 2018-10-15 19:32:29 +02:00
FrancescoUK
be3d0fe8e1 Update item.php 2018-10-15 19:32:29 +02:00
FrancescoUK
042c81a6b4 Update form.php 2018-10-15 19:32:29 +02:00
FrancescoUK
75097e9485 Update Item.php 2018-10-15 19:32:29 +02:00
FrancescoUK
27122a8578 Update form.php 2018-10-15 19:32:29 +02:00
FrancescoUK
3c876d7f6f Update Items.php 2018-10-15 19:32:29 +02:00
FrancescoUK
c61d32bc58 Update Item_kit.php 2018-10-15 19:32:29 +02:00
FrancescoUK
03aaec04b9 Update module_lang.php 2018-10-15 19:32:29 +02:00
FrancescoUK
744854726c Update module_lang.php 2018-10-15 19:32:29 +02:00
jekkos
a0727a8ea5 Fix bug in sales receipt (#68) 2018-10-15 19:32:29 +02:00
jekkos
3be57ffb66 Fix config screen (#68) 2018-10-15 19:32:29 +02:00
jekkos
085d24447c Disablel SHOW_IN_ITEMS (#68) 2018-10-15 19:32:29 +02:00
jekkos
8b212a8dd0 Fix some final bugs (#68) 2018-10-15 19:32:29 +02:00
jekkos
1a490cedf5 Add support for DATETIME in attributes (#68) 2018-10-15 19:32:29 +02:00
jekkos
98022f3b96 Cleanup + enable item attribute delete (#68) 2018-10-15 19:32:29 +02:00
jekkos
1e0063e574 Fix attribute table refresh (#68) 2018-10-15 19:32:29 +02:00
jekkos
a8d73d5f99 Add attributes to items (#68) 2018-10-15 19:32:29 +02:00
jekkos
500a8d7a8f Work in progress, still testing items form (#68) 2018-10-15 19:32:29 +02:00
jekkos
df61ee09bb Add item attributes functionality (#68) 2018-10-15 19:32:29 +02:00
FrancescoUK
f521257570 Fix Items search category issue (#2179) 2018-10-13 17:23:28 +01:00
jekkos
ddcece66d6 Fix bstables sorting (#2159) 2018-10-13 14:12:01 +02:00
Zhivko Vanev
a268c0a48d Translated using Weblate (Bulgarian)
Currently translated at 100.0% (2 of 2 strings)
2018-10-11 09:00:49 +02:00
Zhivko Vanev
77f9251447 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (162 of 162 strings)
2018-10-11 09:00:49 +02:00
Zhivko Vanev
e8f85ef27f Translated using Weblate (Bulgarian)
Currently translated at 100.0% (51 of 51 strings)
2018-10-11 09:00:49 +02:00
FrancescoUK
6342f5e4b8 Fix chartist broken dependency, upgrade composer dependencies 2018-10-07 16:43:41 +01:00
FrancescoUK
44712e7efe Add recent code contributors to LICENSE files 2018-10-07 16:01:06 +01:00
FrancescoUK
c855bc00d7 Merge Supplier Category (#2088) 2018-10-07 15:46:36 +01:00
FrancescoUK
006ee22435 Add Supplier Category (#2088) 2018-10-07 15:45:20 +01:00
FrancescoUK
deed04cd46 Alter cashup db table (#440 #2131) 2018-10-03 21:10:20 +01:00
FrancescoUK
bc34293cac Add due payment to cashup (#440 #2131) 2018-09-30 15:17:31 +01:00
Zhivko Vanev
cc47df6ee6 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/bg/
2018-09-30 09:43:01 +02:00
Zhivko Vanev
1b8d7a6de5 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (17 of 17 strings)
2018-09-30 08:24:16 +02:00
Xyko Arteiro
cfa7844a42 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (272 of 272 strings)
2018-09-30 08:24:16 +02:00
Zhivko Vanev
c2f8fcb0c4 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/bg/
2018-09-30 08:24:16 +02:00
Zhivko Vanev
ef8dc97de9 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (17 of 17 strings)
2018-09-30 08:24:16 +02:00
Xyko Arteiro
710ab32b2f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (272 of 272 strings)
2018-09-30 08:24:16 +02:00
Xyko Arteiro
87f63c4655 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (162 of 162 strings)
2018-09-30 08:24:16 +02:00
Xyko Arteiro
adc72571ba Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (114 of 114 strings)
2018-09-30 08:24:16 +02:00
jekkos
c57f063dc1 Fix discount calculation 2018-09-29 16:47:28 +02:00
jekkos
511f21931c Fix discount totals 2018-09-28 20:52:42 +02:00
jekkos
46b845ab01 Add totals to discount repor 2018-09-28 20:43:12 +02:00
jekkos
68051bdcdb Add totals to discount report 2018-09-28 20:42:52 +02:00
Steve Ireland
6d5f518855 Fix issue with deleted items not being included in reprinted receipts. 2018-09-28 20:37:51 +02:00
Steve Ireland
3a7d8415f6 Merge pull request #2162 from RuleDomain/fix_receipt_missing_del_item
Fix issue with deleted items not being included in reprinted receipts.
2018-09-25 21:06:08 -04:00
Steve Ireland
68fe267fad Fix issue with deleted items not being included in reprinted receipts. 2018-09-25 20:24:20 -04:00
Xyko Arteiro
dd83139760 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (37 of 37 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/pt_BR/
2018-09-23 20:45:40 +02:00
Xyko Arteiro
b561de77ab Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (108 of 108 strings)
2018-09-23 20:43:07 +02:00
Xyko Arteiro
1ffbbefca4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (19 of 19 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/pt_BR/
2018-09-23 20:41:37 +02:00
Xyko Arteiro
d692553d02 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (51 of 51 strings)
2018-09-23 20:41:05 +02:00
Xyko Arteiro
b38e090fe8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (52 of 52 strings)
2018-09-23 20:40:08 +02:00
Xyko Arteiro
6db892467c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (33 of 33 strings)
2018-09-23 20:37:42 +02:00
Xyko Arteiro
330ec999b5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/pt_BR/
2018-09-23 20:26:53 +02:00
FrancescoUK
a30d2d2506 Merge pull request #2144 from opensourcepos/public_redirect
Correct errors in redirect with advanced install
2018-09-23 16:47:56 +01:00
jekkos
a6b5726cdc Start migration after installation check (#2148) 2018-09-23 14:28:23 +02:00
jekkos
9f71427fee Check for employee language property first (#2148) 2018-09-23 14:17:30 +02:00
jekkos
2cc58ad546 Fix language fallback (#2148) 2018-09-23 02:04:16 +02:00
Josh
c3ba10f2e5 update invoice_email.css typo (#2146)
Correcting css html color code.
2018-09-19 11:58:00 +03:00
objecttothis
0ffece7cb8 Correct errors in redirect with advanced install
This should cover the following scenarios
1- Install is in the root folder (www.example.com)
2- Install is in a subfolder (www.example.com/pos/)
3- Install is in an subdomain or subdomain and subfolder (pos.example.com or pos.example.com/abc)
4- User attempts to navigate to other subfolders (www.example.com/vendor).

In each case the expected behavior is to redirect to URI/public as an external redirect with no errors.

When testing PLEASE clear your browser cache/history and restart your browser.  Most browsers have a bad habit of caching errors and then you don't know if you are getting a cached error or the current results.
2018-09-18 18:15:34 +04:00
jekkos
dbfe9b7e55 Migration script fixes 2018-09-16 23:50:07 +02:00
jekkos
9307ebbaa9 Revert wrong change 2018-09-16 23:50:07 +02:00
jekkos
2181b0ebce Update second method 2018-09-16 23:50:07 +02:00
jekkos
ec5e016401 Fix tax migration script 2018-09-16 23:50:07 +02:00
Weblate
513f847f4d Upade Czech translation 2018-09-16 15:39:30 +02:00
Weblate
d5c270b4dc Translated using Weblate (Flemish)
Currently translated at 99.3% (161 of 162 strings)
2018-09-16 15:39:30 +02:00
FrancescoUK
522011b92c Fix migration scripts (#440) 2018-09-09 20:14:59 +01:00
Rostislav Hučka
26ac789e57 Translated using Weblate (Czech)
Currently translated at 90.1% (46 of 51 strings)
2018-09-09 20:08:05 +02:00
Rostislav Hučka
3e07d2cd01 Translated using Weblate (Czech)
Currently translated at 86.4% (140 of 162 strings)
2018-09-09 20:08:05 +02:00
Rostislav Hučka
922143aacf Translated using Weblate (Czech)
Currently translated at 91.8% (101 of 110 strings)
2018-09-09 20:08:05 +02:00
FrancescoUK
d8cb0dfc9b Add cashup feature (#440)
Add cashup feature
2018-09-09 12:48:11 +01:00
FrancescoUK
b3bfc51ee8 Add cashup feature 2018-09-09 11:09:43 +01:00
FrancescoUK
4420dccc60 Add (commented out) phpmyadmin to docker-compose 2018-09-09 10:18:44 +01:00
FrancescoUK
c7b32a5a0e Minor fixes 2018-09-08 15:48:21 +01:00
FrancescoUK
493eb5051c Merge pull request #2127 from erastus/master
fixed in specific_customer change discount_fixed for discount_type
2018-09-08 06:43:45 +01:00
Erastus
82a228fa99 fixed in specific_customer change discount_fixed for discount_type 2018-09-07 16:35:52 -05:00
Weblate
f80d42e211 Translated using Weblate (Flemish)
Currently translated at 99.3% (161 of 162 strings)
2018-09-07 20:22:53 +02:00
Weblate
e52634bd06 Update German + Flemish 2018-09-07 19:51:16 +02:00
Aril Apria Susanto
0bcee8eff2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (17 of 17 strings)
2018-09-07 19:51:16 +02:00
Weblate
801c8e284d Translated using Weblate (Flemish)
Currently translated at 100.0% (17 of 17 strings)
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
96bd405e4f Translated using Weblate (Indonesian)
Currently translated at 94.5% (104 of 110 strings)
2018-09-07 19:51:16 +02:00
Weblate
745a20d2f3 Translated using Weblate (Flemish)
Currently translated at 99.0% (109 of 110 strings)
2018-09-07 19:51:16 +02:00
Weblate
be33a6e14b Translated using Weblate (Flemish)
Currently translated at 100.0% (51 of 51 strings)
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
c25279db8c Translated using Weblate (Indonesian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/id/
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
bbbf706941 Translated using Weblate (Indonesian)
Currently translated at 100.0% (104 of 104 strings)
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
c29da31752 Translated using Weblate (Indonesian)
Currently translated at 96.6% (29 of 30 strings)
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
70aef10e14 Translated using Weblate (Indonesian)
Currently translated at 100.0% (68 of 68 strings)
2018-09-07 19:51:16 +02:00
Weblate
c9411a1430 Translated using Weblate (Flemish)
Currently translated at 94.4% (17 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/nl_BE/
2018-09-07 19:51:16 +02:00
Songwut Kanchanakosai
51cfae280f Translated using Weblate (Thai)
Currently translated at 51.1% (22 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/th/
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
8bf1cc1775 Translated using Weblate (Indonesian)
Currently translated at 95.3% (41 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/id/
2018-09-07 19:51:16 +02:00
Songwut Kanchanakosai
02890a528f Translated using Weblate (Thai)
Currently translated at 71.4% (5 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/th/
2018-09-07 19:51:16 +02:00
Xyko Arteiro
c3063b32fe Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.7% (6 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/pt_BR/
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
dfb33b09ee Translated using Weblate (Indonesian)
Currently translated at 57.1% (4 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/id/
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
849bba59bd Translated using Weblate (Indonesian)
Currently translated at 100.0% (35 of 35 strings)
2018-09-07 19:51:16 +02:00
Weblate
f18be62946 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
dfd5913583 Translated using Weblate (Indonesian)
Currently translated at 100.0% (48 of 48 strings)
2018-09-07 19:51:16 +02:00
Emanuel Ioan Cretu
85b6185fda Translated using Weblate (Romanian)
Currently translated at 13.2% (36 of 271 strings)
2018-09-07 19:51:16 +02:00
Aril Apria Susanto
11564228bf Translated using Weblate (Indonesian)
Currently translated at 97.7% (265 of 271 strings)
2018-09-07 19:51:16 +02:00
Weblate
a0eb54ef14 Translated using Weblate (Flemish)
Currently translated at 100.0% (271 of 271 strings)
2018-09-07 19:51:16 +02:00
Weblate
d4368333e3 Translated using Weblate (Flemish)
Currently translated at 100.0% (51 of 51 strings)
2018-09-07 19:51:16 +02:00
Weblate
1d4c69394c Translated using Weblate (Flemish)
Currently translated at 100.0% (271 of 271 strings)
2018-09-07 19:51:16 +02:00
Weblate
2c55c22d4a Translated using Weblate (Flemish)
Currently translated at 100.0% (17 of 17 strings)
2018-09-07 19:51:16 +02:00
jekkos
2605dff9b7 Fix colspan in receivings 2018-09-07 00:38:11 +02:00
FrancescoUK
6d03c1a1fb Merge pull request #2126 from opensourcepos/fix-employee-name
Fix employee name on receipt/invoice (#2108)
2018-09-06 14:04:33 +01:00
jekkos
f19147b201 Fix employee name on receipt/invoice (#2108) 2018-09-06 14:23:16 +02:00
jekkos
d81ff11483 Remove docker-cloud + stop pushing sqlscript (#2120, #1939) 2018-09-06 09:37:09 +02:00
jekkos
9ca63e1b55 Add credits 2018-09-05 21:10:12 +02:00
Weblate
2c1035cba4 Update thai translations 2018-09-05 08:49:17 +02:00
Emanuel Ioan Cretu
68c9173353 Added translation using Weblate (Romanian) 2018-09-05 08:49:17 +02:00
Emanuel Ioan Cretu
055c0df2a0 Translated using Weblate (Romanian)
Currently translated at 100.0% (65 of 65 strings)
2018-09-05 08:49:17 +02:00
Emanuel Ioan Cretu
6aff17a212 Added translation using Weblate (Romanian) 2018-09-05 08:49:17 +02:00
Emanuel Ioan Cretu
d40bc6cc4d Translated using Weblate (Romanian)
Currently translated at 100.0% (8 of 8 strings)

Romanian people know what means Refresh,
2018-09-05 08:49:17 +02:00
Emanuel Ioan Cretu
e7b89e1d9a Translated using Weblate (Romanian)
Currently translated at 75.0% (6 of 8 strings)
2018-09-05 08:49:17 +02:00
Weblate
091cf1d9d8 Added translation using Weblate (Romanian) 2018-09-05 08:49:17 +02:00
Aril Apria Susanto
a46cc5d8ae Translated using Weblate (Indonesian)
Currently translated at 100.0% (17 of 17 strings)
2018-09-05 08:49:17 +02:00
Aril Apria Susanto
33371a071e Translated using Weblate (Indonesian)
Currently translated at 100.0% (104 of 104 strings)
2018-09-05 08:49:17 +02:00
Aril Apria Susanto
df43f14093 Translated using Weblate (Indonesian)
Currently translated at 100.0% (35 of 35 strings)
2018-09-05 08:49:17 +02:00
Aril Apria Susanto
ae801455f2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/id/
2018-09-05 08:49:17 +02:00
Aril Apria Susanto
a267fb20b0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (68 of 68 strings)
2018-09-05 08:49:17 +02:00
Aril Apria Susanto
b46e69efe9 Translated using Weblate (Indonesian)
Currently translated at 100.0% (48 of 48 strings)
2018-09-05 08:49:17 +02:00
Xyko Arteiro
f9928acd42 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (104 of 104 strings)
2018-09-05 08:49:17 +02:00
Xyko Arteiro
b2cc7ae0d7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (271 of 271 strings)
2018-09-05 08:49:17 +02:00
Xyko Arteiro
745ae8eaaa Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
2018-09-05 08:49:17 +02:00
Xyko Arteiro
6b40ae25f8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (48 of 48 strings)
2018-09-05 08:49:17 +02:00
Khalid
b893d23915 Translated using Weblate (Arabic)
Currently translated at 100.0% (104 of 104 strings)
2018-09-05 08:49:17 +02:00
SOTOS
346dcac65b Added translation using Weblate (Greek) 2018-09-05 08:49:17 +02:00
SOTOS
64079fbd90 Added translation using Weblate (Greek) 2018-09-05 08:49:17 +02:00
Trần Ngọc Quân
61954733d7 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (104 of 104 strings)
2018-09-05 08:49:17 +02:00
Songwut Kanchanakosai
1bb46fa905 Translated using Weblate (Thai)
Currently translated at 100.0% (65 of 65 strings)
2018-09-05 08:49:17 +02:00
FrancescoUK
4d11a55091 Amend database upgrade script (#2061) 2018-09-04 22:17:43 +01:00
FrancescoUK
35c57e6cf2 Add en-GB translations 2018-09-03 21:57:36 +01:00
FrancescoUK
f9f8f0cb50 Merge pull request #2091 from erastus/master
Discount on Sales
2018-09-03 21:48:14 +01:00
FrancescoUK
561f6eb784 Update README.md 2018-09-03 19:28:06 +01:00
Erastus
858f7614f9 merge branch 2018-09-03 01:10:28 -05:00
Erastus
c57d8ef536 discount in item_kits 2018-09-03 00:51:34 -05:00
Erastus
3b659526f3 cleaning spaces 2018-09-02 17:58:41 -05:00
FrancescoUK
7e85586313 Fix Receivings colspan when cart is empty 2018-09-01 16:24:28 +01:00
jekkos
a1ae343139 Add download badge to README.md 2018-09-01 11:16:16 +02:00
jekkos
da114ae988 Add item_number to receivings view 2018-09-01 09:42:46 +02:00
Erastus
53efbdb3b7 reports discount fixed 2018-08-31 23:05:32 -05:00
jekkos
024565d67c Enable array filtering (#2030) 2018-09-01 01:23:07 +02:00
jekkos
0248a50ae3 Filter out duplicate results (#2038) 2018-09-01 01:23:07 +02:00
Erastus
eb6a7b08fa default_sales_discount_fixed deleted 2018-08-31 16:01:34 -05:00
Erastus
a6b11e6f48 new discount on sales 2018-08-31 15:27:44 -05:00
FrancescoUK
26e33dddec Check FORCE_HTTPS env to be true, upgrade MariaDB vs in docker-compose 2018-08-25 16:03:07 +01:00
Erastus
a5f0c83e87 update Tax_lib 2018-08-21 10:57:50 -05:00
Erastus
3b9f52de18 update LICENSE 2018-08-21 01:09:57 -05:00
Erastus
8b29fc7fea reports graphical discount 2018-08-20 23:42:47 -05:00
erastus
325ce79bed Change to 3.3.0 2018-08-20 15:03:09 -05:00
Erastus
85bbbe835c Discount on Sales 2018-08-20 13:41:56 -05:00
FrancescoUK
04b9a181dc No password change in testing mode (#2073) 2018-08-18 13:17:42 +01:00
FrancescoUK
9c3c7a9c77 Update Employee.php 2018-08-18 12:35:29 +01:00
jekkos
f20ba23640 No password change in testing mode (#2073) 2018-08-17 23:54:47 +02:00
Emilio Silva Schlenker
909cd52d56 added 'due' as a payment option for receivings 2018-08-17 11:09:14 +02:00
jekkos
76c63f6a60 Remove broken gemnasium dependencies badge 2018-07-21 18:50:41 +02:00
Steve Ireland
cabb0b7964 Merge pull request #2049 from RuleDomain/fix-count-function-error
Fix Count Function Error
2018-07-14 12:32:47 -04:00
Steve Ireland
497c9e4617 Add support for India GST 2018-07-14 11:20:54 -04:00
WShells
674f142eac Items Display in Inv Summary Report
Item names weren't showing in the inventory summary report due to variable issue...
2018-07-14 12:42:00 +03:00
FrancescoUK
8e6b33b228 Add support for multi-pack items (#1919) 2018-07-14 09:33:08 +01:00
FrancescoUK
baebd237e5 Fix review feedback 2018-07-14 09:29:10 +01:00
FrancescoUK
1486a41363 Fix review issues 2018-07-14 09:26:47 +01:00
FrancescoUK
463a56b1c4 Fix item_kits form issue 2018-07-08 18:02:19 +01:00
jekkos
a4e135eb92 Add support for multi-pack items. 2018-07-05 19:05:54 -04:00
FrancescoUK
1026ebb0eb Fix indentation issue 2018-07-05 18:09:42 +02:00
jekkos
d8f086a840 Fix double submit issue (#2020) 2018-07-05 18:09:42 +02:00
FrancescoUK
732e1a028b Fix indentation issue 2018-07-05 18:09:42 +02:00
jekkos
8f172e172b Fix double submit issue 2018-07-05 18:09:42 +02:00
FrancescoUK
683ef75162 Code refactoring 2018-07-05 18:09:42 +02:00
FrancescoUK
957dc5de16 Fix exception with PHP 7 2018-07-05 18:09:42 +02:00
FrancescoUK
086c2de441 Remove csrf_form_base() from register 2018-07-05 18:09:42 +02:00
FrancescoUK
e6e7fb2e2a Remove translation duplication 2018-07-05 18:09:42 +02:00
jekkos
bc0077012d Use backend for amount validation (#2020, #2018) 2018-07-05 18:09:42 +02:00
FrancescoUK
43bea53b56 Merge pull request #2039 from RuleDomain/item-kit-fix
Fix issue with item kits not being listed.
2018-07-01 11:09:33 +01:00
Steve Ireland
72245c8631 Fix issue with item kits not being listed. 2018-06-30 09:46:36 -04:00
WShells
500f14d002 Update INSTALL.md
Resetting Demo...
2018-06-24 04:18:18 +03:00
jekkos
b2aaae9f38 Update cloud install instructions 2018-06-17 14:27:35 +02:00
jekkos
b52174216e Update LICENSE 2018-06-14 00:27:26 +02:00
FrancescoUK
a34f152153 Revert "Fix Item form issue (#2021)" 2018-06-13 22:30:37 +01:00
jekkos
abd23e5cb4 Refresh language files 2018-06-13 22:11:53 +01:00
Steve Ireland
3f12d57f82 Fix item select issue introduced with temp item feature 2018-06-13 22:11:53 +01:00
Steve Ireland
f49c896e4f Restore ctype_digit 2018-06-13 22:11:53 +01:00
FrancescoUK
019fc7a3d5 Remove generated database sql files 2018-06-13 22:11:00 +01:00
Steve Ireland
5ef8a88000 Add support for temporary items. 2018-06-13 22:11:00 +01:00
FrancescoUK
c6b5ff1934 Restore CSRF change with & issue fix (#1990, #2009) 2018-06-13 22:11:00 +01:00
FrancescoUK
ebdc1880d9 Bump version to 3.3.0 for next phase 2018-06-13 22:11:00 +01:00
FrancescoUK
f1cf3d3c87 Release 3.2.3 2018-06-13 21:37:15 +01:00
FrancescoUK
8138db1a80 Fix Item form issue (#2021) 2018-06-13 21:19:55 +01:00
FrancescoUK
c5632a2f5a Release 3.2.2 2018-06-06 21:35:52 +01:00
FrancescoUK
2e7e9cecd8 Revert CSRF change (#2009) 2018-06-06 21:28:52 +01:00
FrancescoUK
5ce7fcf5ed Bump version to 3.3.0 for next phase 2018-06-04 22:01:10 +01:00
FrancescoUK
d3c215f744 Release 3.2.1 2018-06-04 21:41:10 +01:00
Aril Apria Susanto
73e2d01c91 Translated using Weblate (Indonesian)
Currently translated at 93.8% (152 of 162 strings)
2018-06-04 19:13:46 +02:00
Aril Apria Susanto
0a299d8858 Translated using Weblate (Indonesian)
Currently translated at 74.1% (201 of 271 strings)
2018-06-04 19:13:46 +02:00
Aril Apria Susanto
5adc3b18c2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (65 of 65 strings)
2018-06-04 19:13:46 +02:00
FrancescoUK
0c2c999746 Minor improvement 2018-06-03 16:39:40 +01:00
Rostislav Hučka
9d072da872 Translated using Weblate (Czech)
Currently translated at 85.1% (138 of 162 strings)
2018-05-31 17:59:36 +02:00
WebShells
a610346576 Translated using Weblate (French)
Currently translated at 100.0% (110 of 110 strings)
2018-05-31 17:59:34 +02:00
WebShells
e3e4c8b3a4 Translated using Weblate (French)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/fr/
2018-05-31 17:59:22 +02:00
WebShells
af8cb4243b Translated using Weblate (French)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/fr/
2018-05-31 14:35:14 +02:00
WebShells
3c87bdec57 Translated using Weblate (French)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/fr/
2018-05-31 14:25:52 +02:00
WebShells
4062b9890b Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/fr/
2018-05-31 14:24:38 +02:00
WebShells
0ccfe72a26 Translated using Weblate (French)
Currently translated at 80.0% (88 of 110 strings)
2018-05-31 13:58:39 +02:00
WebShells
79ca657a6e Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/fr/
2018-05-31 13:58:21 +02:00
Rostislav Hučka
36bf371f38 Translated using Weblate (Czech)
Currently translated at 58.8% (30 of 51 strings)
2018-05-31 13:29:14 +02:00
Rostislav Hučka
efc689530e Translated using Weblate (Czech)
Currently translated at 92.2% (95 of 103 strings)
2018-05-31 13:29:14 +02:00
WebShells
6bc5842402 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/fr/
2018-05-31 13:29:14 +02:00
Rostislav Hučka
d4761ad095 Translated using Weblate (Czech)
Currently translated at 92.2% (95 of 103 strings)
2018-05-31 13:29:14 +02:00
Rostislav Hučka
cdf0c819ac Added translation using Weblate (Czech) 2018-05-31 13:29:14 +02:00
FrancescoUK
fe2ae55e94 Minor tidy up 2018-05-30 11:49:26 +02:00
FrancescoUK
fea0462407 Remove additional csrf_form_base calls, general tidy up 2018-05-30 11:49:26 +02:00
jekkos
c9a50cdeaf Check first if type parameter exists (#1990) 2018-05-30 11:49:26 +02:00
jekkos
04cbd95c13 Add as query string in case we use url encoded form (#1990) 2018-05-30 11:49:26 +02:00
jekkos
07d4b852e0 Hook $.ajax instead of $.post 2018-05-30 11:49:26 +02:00
jekkos
5d00a4354c Update .gitignore, add generated database scripts 2018-05-30 11:49:26 +02:00
Rostislav Hučka
6e33838fb7 Translated using Weblate (Czech)
Currently translated at 94.2% (33 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/cs/
2018-05-30 10:15:36 +02:00
Rostislav Hučka
e96b54509a Translated using Weblate (Czech)
Currently translated at 89.3% (92 of 103 strings)
2018-05-30 10:02:44 +02:00
Rostislav Hučka
530c75df4d Added translation using Weblate (Czech) 2018-05-30 10:02:44 +02:00
Rostislav Hučka
a8bb790ebe Translated using Weblate (Czech)
Currently translated at 89.3% (92 of 103 strings)
2018-05-30 10:02:44 +02:00
Rostislav Hučka
f82701adae Translated using Weblate (Czech)
Currently translated at 100.0% (20 of 20 strings)
2018-05-30 10:02:44 +02:00
Rostislav Hučka
36ea11f96f Added translation using Weblate (Czech) 2018-05-30 10:02:44 +02:00
FrancescoUK
4fe4c8eb57 Merge pull request #2006 from RuleDomain/fix-receivings-receiving-quantity
Insure that the receiving_quantity is not zero
2018-05-30 05:38:00 +01:00
Steve Ireland
4d41ad5735 Insure that the receiving_quantity is not zero 2018-05-29 19:45:14 -04:00
WebShells
fae7702719 Translated using Weblate (French)
Currently translated at 97.1% (34 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/fr/
2018-05-28 13:22:28 +02:00
FrancescoUK
ed888be463 Update README.md 2018-05-27 21:24:06 +01:00
FrancescoUK
c423bc4222 Fix Mailchimp config issue due to missing json payload format 2018-05-27 19:20:12 +01:00
WebShells
aa624f3680 Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-25 10:36:21 +02:00
WebShells
121cc000b3 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)
2018-05-25 10:36:08 +02:00
WebShells
458118469a Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-23 18:44:13 +02:00
Weblate
07d1a5fb9b Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-23 18:44:13 +02:00
WebShells
78436ee39d Translated using Weblate (French)
Currently translated at 100.0% (17 of 17 strings)
2018-05-22 23:56:25 +02:00
WebShells
3f1f4c8e05 Translated using Weblate (French)
Currently translated at 100.0% (103 of 103 strings)
2018-05-22 23:56:21 +02:00
WebShells
2704bd7e83 Translated using Weblate (French)
Currently translated at 100.0% (30 of 30 strings)
2018-05-22 23:56:16 +02:00
Aril Apria Susanto
5d3643a8d0 Translated using Weblate (Indonesian)
Currently translated at 89.5% (145 of 162 strings)
2018-05-21 16:28:21 +02:00
Aril Apria Susanto
454155f8de Translated using Weblate (Indonesian)
Currently translated at 97.1% (34 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/id/
2018-05-21 16:27:53 +02:00
WebShells
e03f7a7af6 Translated using Weblate (French)
Currently translated at 100.0% (103 of 103 strings)
2018-05-21 14:16:50 +02:00
WebShells
7cce40af25 Translated using Weblate (French)
Currently translated at 100.0% (48 of 48 strings)
2018-05-20 13:10:07 +02:00
WebShells
8d7fb2cd25 Translated using Weblate (French)
Currently translated at 100.0% (271 of 271 strings)
2018-05-20 13:09:53 +02:00
WebShells
dcd78d8266 Translated using Weblate (French)
Currently translated at 100.0% (48 of 48 strings)
2018-05-19 22:18:58 +02:00
WebShells
3dc950d930 Translated using Weblate (French)
Currently translated at 100.0% (162 of 162 strings)
2018-05-19 22:02:56 +02:00
WebShells
7ba8ddb0c0 Translated using Weblate (French)
Currently translated at 100.0% (271 of 271 strings)
2018-05-19 21:47:37 +02:00
WebShells
c3d232016e Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
2018-05-19 20:57:13 +02:00
WebShells
9b6bfd6e2c Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-05-19 20:56:31 +02:00
WebShells
0e2dc1d6da Translated using Weblate (Arabic)
Currently translated at 100.0% (48 of 48 strings)
2018-05-19 20:55:23 +02:00
WebShells
5f072aecfa Translated using Weblate (Arabic)
Currently translated at 100.0% (271 of 271 strings)
2018-05-19 20:44:49 +02:00
FrancescoUK
c803f01774 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/it/
2018-05-13 18:44:39 +02:00
Rostislav Hučka
8b006f5386 Translated using Weblate (Czech)
Currently translated at 87.5% (7 of 8 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
f05136f203 Translated using Weblate (Czech)
Currently translated at 85.1% (138 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
ced7a7c641 Translated using Weblate (Czech)
Currently translated at 96.9% (63 of 65 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
6ab0e52a7c Translated using Weblate (Czech)
Currently translated at 84.5% (137 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
b65ad2ae74 Translated using Weblate (Czech)
Currently translated at 83.3% (135 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
fe20fb24ca Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
d1f74b60c7 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
69c222f686 Translated using Weblate (Czech)
Currently translated at 96.9% (63 of 65 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
d861b12abe Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
bf8d4d5f2b Translated using Weblate (Czech)
Currently translated at 100.0% (12 of 12 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
7b30bd6048 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
ac92e7cf7f Translated using Weblate (Czech)
Currently translated at 82.7% (134 of 162 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
15c161b6d1 Translated using Weblate (Czech)
Currently translated at 15.5% (16 of 103 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
7c3a6344b7 Translated using Weblate (Czech)
Currently translated at 0.3% (1 of 271 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
c0115d51df Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
2cfcd4d8a7 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
08c48bc9a7 Translated using Weblate (Czech)
Currently translated at 100.0% (8 of 8 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
1d8a79b2a9 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
Rostislav Hučka
4bb3e2774b Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
truchosky
fe7ba26ab8 Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)
2018-05-13 18:42:59 +02:00
Rostislav Hučka
ea1a51c9f8 Added translation using Weblate (Czech) 2018-05-13 18:42:59 +02:00
FrancescoUK
b13ac8d4f0 Fix Summary report table header (#1972) 2018-05-12 20:34:27 +01:00
FrancescoUK
37390ae9dd Fix issue with barcode scanner and customer field (#871) 2018-05-12 18:56:25 +01:00
FrancescoUK
5f0d8b2312 Add extra payment combinations (#1982) 2018-05-12 17:21:18 +01:00
FrancescoUK
b35ea35654 Fix Italian translation errors (#1978) 2018-05-12 14:02:44 +01:00
FrancescoUK
6071f9ab97 "fix" to wrong summary_payment report (#1972) 2018-05-12 13:47:16 +01:00
FrancescoUK
4558cf0e50 Add spaces to SQL statement 2018-05-12 13:42:47 +01:00
truchosky
507294a4a6 temporary "fix" to wrong summary_payment report
I still cant find a solution to this,  summary payment in cash is wrong, like you know it considers payment ammount and it doesnt discount change, so the cash payment will be always a higher value, and if you try to discount change directly on query then it only discounts sales with 1 item, and not discounts sales with multiple items, the condition sales_items.line = 1 cause that.

This change considers item price * item qty, so at lest summary payment in cash will be acurated no matter tendered ammount  but leaves out "due sales"
2018-05-11 21:48:52 -03:00
Weblate
f8f4644987 Translated using Weblate (Flemish)
Currently translated at 100.0% (65 of 65 strings)
2018-05-07 00:11:14 +02:00
Weblate
510fe8b14e Translated using Weblate (Flemish)
Currently translated at 95.5% (259 of 271 strings)
2018-05-07 00:11:14 +02:00
FrancescoUK
a3408c31ce Missing Payment Count (#1972) 2018-05-06 08:50:09 +01:00
truchosky
1acac824a1 Missing Payment Count 2018-05-06 00:26:19 -03:00
PICCORO Lenz McKAY
fa4e7cefac Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
a77a2be2ce Translated using Weblate (Russian)
Currently translated at 96.6% (262 of 271 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
b93c3b2177 Translated using Weblate (Spanish)
Currently translated at 100.0% (110 of 110 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
ec673dc596 Translated using Weblate (Spanish)
Currently translated at 100.0% (271 of 271 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
dff043534d Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-05-05 15:53:03 +02:00
PICCORO Lenz McKAY
7a3ac75e53 Translated using Weblate (Spanish)
Currently translated at 100.0% (48 of 48 strings)
2018-05-05 15:53:03 +02:00
FrancescoUK
7234f2af53 Fix Docker run command 2018-05-05 09:02:39 +01:00
h00pl4
7ee6221952 Fix Docker run command
I believe that the quotation mark is in the wrong place currently.
2018-05-05 14:00:57 +10:00
FrancescoUK
0ba225cafd Fix CSRF error at login time (#1535) 2018-05-02 22:04:50 +01:00
FrancescoUK
e4690eb670 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/it/
2018-05-02 23:00:11 +02:00
FrancescoUK
be6e3480c2 Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/it/
2018-05-02 23:00:05 +02:00
FrancescoUK
18f65dbb89 Translated using Weblate (Italian)
Currently translated at 100.0% (110 of 110 strings)
2018-05-02 22:57:22 +02:00
FrancescoUK
2b7688d962 Translated using Weblate (Italian)
Currently translated at 100.0% (162 of 162 strings)
2018-05-02 22:57:06 +02:00
FrancescoUK
c7cebfa3a3 Translated using Weblate (Italian)
Currently translated at 100.0% (48 of 48 strings)
2018-05-02 22:56:11 +02:00
FrancescoUK
be3b50e36d Translated using Weblate (Italian)
Currently translated at 100.0% (271 of 271 strings)
2018-05-02 22:55:02 +02:00
Weblate
ee82f3e804 Translated using Weblate (Flemish)
Currently translated at 100.0% (65 of 65 strings)
2018-05-02 08:50:30 +02:00
Trần Ngọc Quân
180d40f00d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (271 of 271 strings)
2018-05-02 03:27:59 +02:00
Trần Ngọc Quân
f43df16d10 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)
2018-05-02 03:19:20 +02:00
Trần Ngọc Quân
c54b8dccd3 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (48 of 48 strings)
2018-05-02 03:18:54 +02:00
Trần Ngọc Quân
d65ee713ca Translated using Weblate (Vietnamese)
Currently translated at 100.0% (162 of 162 strings)
2018-05-02 03:16:44 +02:00
Weblate
59a4f55cb5 Translated using Weblate (Flemish)
Currently translated at 100.0% (48 of 48 strings)
2018-05-01 23:18:12 +02:00
jekkos
34da40ce0b Sync language strings 2018-05-01 23:12:39 +02:00
FrancescoUK
9d149ad4f3 Autoreturn to Sale page after receipt printing (#1966) 2018-05-01 20:46:18 +01:00
FrancescoUK
455e39260d Translated using Weblate (Italian)
Currently translated at 100.0% (268 of 268 strings)
2018-05-01 19:13:00 +02:00
FrancescoUK
0015bdffcf Remove example entries from expenses tables 2018-04-30 21:33:54 +01:00
FrancescoUK
bcd1b05961 Fix customer import issue and complete anonymisation (#1949) 2018-04-30 21:28:32 +01:00
jekkos
c62dc5fe2a Add demo url to README.md (#1956) 2018-04-30 11:47:11 +02:00
jekkos
2426fad52e Add FORCE_HTTPS environment variable (#1956) 2018-04-30 11:09:20 +02:00
WebShells
9dee282b83 Fixed site_url 2018-04-30 00:41:28 +03:00
WebShells
1a6a8841f4 Skip receipt windows
Skip receipt windows and redirect to sales if print after sale is selected.
2018-04-29 18:06:11 +03:00
FrancescoUK
fdbdf55e71 Better Customer data privacy protection (#1949) 2018-04-29 14:13:00 +01:00
FrancescoUK
3e9e144075 Fix subtle error with Stock location SQL query 2018-04-29 10:38:38 +01:00
FrancescoUK
1fe94c3626 Fix rendering of discounted unit price on invoice (#1924 #1958) 2018-04-28 12:38:33 +01:00
Steve Ireland
b4f8667047 Fix rendering of discounted unit price on invoice and quotes. 2018-04-27 08:55:22 -04:00
jekkos
fe2c639f8a Remove duplicated .travis.yml (#1954) 2018-04-24 23:26:35 +02:00
FrancescoUK
c8d1bfee35 Fix Expense amount and tax amount update issue (#1955) 2018-04-24 20:39:41 +01:00
FrancescoUK
72825acfaf Fix Item Kit Items receipt issues (#1950) 2018-04-22 09:13:01 +01:00
FrancescoUK
0e14d5390f Minor fixes 2018-04-22 09:12:01 +01:00
Steve Ireland
cdd966878d Various fixes for the item kit feature. 2018-04-21 17:46:39 -04:00
FrancescoUK
9384b53a22 Bump version to 3.2.1 for next phase 2018-04-14 15:24:47 +01:00
FrancescoUK
4bab3fc4e3 Code style adjustments 2018-04-14 14:40:02 +01:00
FrancescoUK
5c1baf20b0 Improve get_found_rows query performance (#1940) 2018-04-13 19:54:22 +01:00
FrancescoUK
075d4e1aeb Improve get_found_rows query performance (#1940) 2018-04-12 22:42:56 +01:00
Aril Apria Susanto
8dc7855e56 Translated using Weblate (Indonesian)
Currently translated at 65.9% (29 of 44 strings)
2018-04-12 17:34:40 -04:00
WebShells
d992c434d8 Translated using Weblate (French)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 16:38:10 -04:00
anonymous
1c07ba1945 Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 16:38:06 -04:00
WebShells
6357491874 Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 16:38:05 -04:00
WebShells
8880061e0e Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2018-04-11 16:38:05 -04:00
WebShells
c397a81b48 Translated using Weblate (French)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 16:38:00 -04:00
WebShells
76e1516147 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)
2018-04-11 16:37:53 -04:00
Leonardo Salazar
c495cf29a0 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 16:37:50 -04:00
WebShells
c64ac468a3 Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 16:37:50 -04:00
Leonardo Salazar
0892944aaa Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-04-11 16:37:47 -04:00
WebShells
abafd59683 Translated using Weblate (French)
Currently translated at 100.0% (65 of 65 strings)
2018-04-11 16:37:46 -04:00
WebShells
dab4a8f90d Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2018-04-11 16:31:31 -04:00
WebShells
ca7c3e9d76 Translated using Weblate (French)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 16:25:50 -04:00
WebShells
61eeed0b75 Translated using Weblate (French)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 16:20:21 -04:00
WebShells
3852bd5c3e Translated using Weblate (Arabic)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/ar_EG/
2018-04-11 16:02:44 -04:00
WebShells
cf8890efdc Translated using Weblate (Arabic)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 15:51:07 -04:00
Leonardo Salazar
e4fe32b85c Translated using Weblate (Russian)
Currently translated at 100.0% (266 of 266 strings)
2018-04-11 15:10:04 -04:00
Leonardo Salazar
6bed03a2e7 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 14:22:46 -04:00
Leonardo Salazar
390fefa803 Translated using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)
2018-04-11 14:22:45 -04:00
Aril Apria Susanto
3c069ad226 Translated using Weblate (Indonesian)
Currently translated at 72.8% (118 of 162 strings)
2018-04-11 14:22:43 -04:00
Leonardo Salazar
2e07818a2c Translated using Weblate (Russian)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 14:22:24 -04:00
Leonardo Salazar
5ce8c9694d Translated using Weblate (Russian)
Currently translated at 100.0% (103 of 103 strings)
2018-04-11 14:22:20 -04:00
Leonardo Salazar
0415cb53e9 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 14:22:15 -04:00
Leonardo Salazar
a254f78750 Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 14:22:13 -04:00
Leonardo Salazar
adde140660 Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)
2018-04-11 14:22:07 -04:00
Leonardo Salazar
0a3414f4f3 Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 14:22:03 -04:00
Aril Apria Susanto
4c3ab04e3d Translated using Weblate (Indonesian)
Currently translated at 65.9% (29 of 44 strings)
2018-04-11 14:22:02 -04:00
Leonardo Salazar
9e442e6c61 Translated using Weblate (Russian)
Currently translated at 73.6% (196 of 266 strings)
2018-04-11 14:21:57 -04:00
Chiraq Bookstore
64dd3afa54 Translated using Weblate (Russian)
Currently translated at 52.2% (139 of 266 strings)
2018-04-11 13:50:18 -04:00
Leonardo Salazar
bd17e73b36 Translated using Weblate (Russian)
Currently translated at 51.8% (138 of 266 strings)
2018-04-11 13:50:08 -04:00
Chiraq Bookstore
3e7faf1ea1 Translated using Weblate (Russian)
Currently translated at 50.3% (134 of 266 strings)
2018-04-11 13:46:27 -04:00
Leonardo Salazar
34048c2ba5 Translated using Weblate (Russian)
Currently translated at 50.3% (134 of 266 strings)
2018-04-11 13:46:02 -04:00
Leonardo Salazar
3848b72bbe Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/ru/
2018-04-11 13:40:45 -04:00
Leonardo Salazar
154db58f34 Translated using Weblate (Russian)
Currently translated at 100.0% (51 of 51 strings)
2018-04-11 13:36:06 -04:00
Leonardo Salazar
2e5cfbc1e7 Translated using Weblate (Russian)
Currently translated at 100.0% (162 of 162 strings)
2018-04-11 13:01:24 -04:00
Chiraq Bookstore
174338f9bf Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 12:50:22 -04:00
Leonardo Salazar
4d9840f9ad Translated using Weblate (Russian)
Currently translated at 100.0% (44 of 44 strings)
2018-04-11 12:41:59 -04:00
Leonardo Salazar
821aaa4e63 Translated using Weblate (Russian)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 12:34:43 -04:00
Leonardo Salazar
425f0fd21b Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)
2018-04-11 12:31:07 -04:00
Leonardo Salazar
41117b7007 Translated using Weblate (Russian)
Currently translated at 100.0% (110 of 110 strings)
2018-04-11 12:23:07 -04:00
Leonardo Salazar
6cc4196af8 Translated using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)
2018-04-11 12:00:19 -04:00
Leonardo Salazar
4329f519f8 Translated using Weblate (Russian)
Currently translated at 100.0% (68 of 68 strings)
2018-04-11 11:36:55 -04:00
Leonardo Salazar
c29937ac68 Translated using Weblate (Russian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ru/
2018-04-11 11:32:10 -04:00
Chiraq Bookstore
9d7c07c1dd Translated using Weblate (Russian)
Currently translated at 90.0% (27 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 11:29:49 -04:00
Leonardo Salazar
f24f62c0c6 Translated using Weblate (Russian)
Currently translated at 86.6% (26 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/ru/
2018-04-11 11:29:28 -04:00
Leonardo Salazar
9370d3434a Translated using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/ru/
2018-04-11 11:12:38 -04:00
Weblate
a60a58337e Translated using Weblate (Flemish)
Currently translated at 80.2% (130 of 162 strings)
2018-04-11 08:00:53 -04:00
Weblate
6e8d9bb85c Translated using Weblate (Flemish)
Currently translated at 99.0% (102 of 103 strings)
2018-04-11 08:00:47 -04:00
Weblate
7642e45850 Translated using Weblate (Flemish)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 08:00:46 -04:00
Weblate
4d37b29304 Translated using Weblate (Flemish)
Currently translated at 97.0% (100 of 103 strings)
2018-04-11 05:08:48 -04:00
Weblate
ac5dbe0b0f Translated using Weblate (Flemish)
Currently translated at 100.0% (30 of 30 strings)
2018-04-11 05:08:48 -04:00
jekkos
cd19babd6e Update Cloud install procedure (#1939) 2018-04-11 01:31:13 +02:00
Leonardo Salazar
bbb77a00ad Translated using Weblate (Russian)
Currently translated at 5.5% (1 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/ru/
2018-04-10 14:54:17 -04:00
Leonardo Salazar
c48563b703 Translated using Weblate (Russian)
Currently translated at 20.9% (9 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ru/
2018-04-10 14:54:16 -04:00
Leonardo Salazar
740d12e137 Translated using Weblate (Russian)
Currently translated at 96.2% (156 of 162 strings)
2018-04-09 16:34:23 -04:00
Leonardo Salazar
e4369db19c Translated using Weblate (Russian)
Currently translated at 2.3% (1 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/ru/
2018-04-09 16:34:14 -04:00
Leonardo Salazar
d5086ba42f Translated using Weblate (Russian)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/ru/
2018-04-09 16:27:52 -04:00
Leonardo Salazar
1c95ed432f Translated using Weblate (Russian)
Currently translated at 100.0% (103 of 103 strings)
2018-04-09 16:09:50 -04:00
Chiraq Bookstore
9f50a6ab92 Translated using Weblate (Russian)
Currently translated at 49.6% (132 of 266 strings)
2018-04-07 12:26:09 -04:00
Weblate
ee319189ed Translated using Weblate (Flemish)
Currently translated at 100.0% (68 of 68 strings)
2018-04-06 11:22:08 -04:00
Weblate
0053398037 Translated using Weblate (Flemish)
Currently translated at 100.0% (68 of 68 strings)
2018-04-06 11:22:08 -04:00
Weblate
f106097e2d Translated using Weblate (Flemish)
Currently translated at 97.6% (42 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/nl_BE/
2018-04-06 11:22:08 -04:00
FrancescoUK
cc1497baad Update README.md 2018-04-06 14:02:55 +01:00
FrancescoUK
87317b00bd Update ISSUE_TEMPLATE.md 2018-04-06 14:01:14 +01:00
jekkos
e949f776ac Correct link to install file 2018-04-06 14:17:27 +02:00
jekkos
27ca6cf6f8 Add more guidance towards posting issues about misconfigured installations 2018-04-06 14:03:15 +02:00
jekkos
6d35fae28e Add more guidance towards posting issues about misconfigured installations 2018-04-06 13:58:46 +02:00
jekkos
27c8f2614d Add system folder missing to first point in FAQ (#1930) 2018-04-06 13:49:58 +02:00
jekkos
fbce16acd1 Update INSTALL with commonly reported 'system folder missing' 'bug' 2018-04-06 13:48:33 +02:00
Weblate
a700d4ffff Translated using Weblate (Flemish)
Currently translated at 58.1% (25 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/nl_BE/
2018-04-06 07:44:53 -04:00
Weblate
738e1de6b4 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)
2018-04-06 07:39:26 -04:00
Weblate
5da3dc3928 Translated using Weblate (Flemish)
Currently translated at 91.4% (32 of 35 strings)
2018-04-06 07:38:49 -04:00
Weblate
129eb78552 Translated using Weblate (Flemish)
Currently translated at 88.5% (31 of 35 strings)
2018-04-06 07:38:49 -04:00
Weblate
97ab38436f Translated using Weblate (Flemish)
Currently translated at 85.7% (30 of 35 strings)
2018-04-06 07:38:49 -04:00
jekkos
0820a0d7ff Don't show company_name if it's empty (non null) (#1929) 2018-04-06 13:36:45 +02:00
FrancescoUK
a597fa86eb Fix composer.lock after CI 3.1.8 update 2018-04-06 10:23:22 +01:00
FrancescoUK
c05b814009 Minor helpers fixes 2018-04-06 09:58:11 +01:00
FrancescoUK
82c6954d1c Remove unused and add missing language files 2018-04-06 09:51:25 +01:00
Trần Ngọc Quân
b43ec350ae Translated using Weblate (Vietnamese)
Currently translated at 100.0% (2 of 2 strings)
2018-04-06 04:41:35 -04:00
FrancescoUK
c6bc1680fa Amend 3.2.0 release documentation 2018-04-06 08:56:06 +01:00
Trần Ngọc Quân
7d64b483ca Translated using Weblate (Vietnamese)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/vi/
2018-04-05 20:59:25 -04:00
jekkos
cfa7891b06 Catch warnings if config file rewrite fails 2018-04-06 01:00:12 +02:00
jekkos
3663c7e344 Update Dockerfile + CI 3.1.8 2018-04-06 00:54:08 +02:00
jekkos
3ca871aea9 Update LICENSE and INSTALL file links (#1921) 2018-04-05 23:35:13 +02:00
Weblate
6b935ca169 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/nl_BE/
2018-04-05 17:32:38 -04:00
Weblate
41a9b03761 Translated using Weblate (Flemish)
Currently translated at 100.0% (44 of 44 strings)
2018-04-05 17:32:27 -04:00
Weblate
6a3da0f5dc Translated using Weblate (Flemish)
Currently translated at 99.6% (265 of 266 strings)
2018-04-05 17:32:25 -04:00
Weblate
a00c38bee8 Translated using Weblate (Flemish)
Currently translated at 100.0% (44 of 44 strings)
2018-04-05 17:31:09 -04:00
PICCORO Lenz McKAY
593b5cebaa Translated using Weblate (Spanish)
Currently translated at 100.0% (110 of 110 strings)
2018-04-05 17:13:09 -04:00
Weblate
4b57b6144b Translated using Weblate (Flemish)
Currently translated at 89.0% (237 of 266 strings)
2018-04-05 16:45:19 -04:00
Weblate
d2fbceeb22 Translated using Weblate (Flemish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/nl_BE/
2018-04-05 16:37:00 -04:00
Weblate
3113945f0f Translated using Weblate (Flemish)
Currently translated at 100.0% (7 of 7 strings)

Translation: opensourcepos/enum
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/enum/nl_BE/
2018-04-05 16:24:40 -04:00
FrancescoUK
8a9e0f352a Translated using Weblate (Italian)
Currently translated at 100.0% (2 of 2 strings)
2018-04-05 14:46:44 -04:00
FrancescoUK
c844f2c1e7 Remove unused language files (#1918) 2018-04-05 19:42:55 +01:00
Chiraq Bookstore
9b0dc5a9c3 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (266 of 266 strings)
2018-04-05 14:19:35 -04:00
Chiraq Bookstore
11ba752010 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (266 of 266 strings)
2018-04-05 14:19:35 -04:00
FrancescoUK
b26dbc7022 Minor fixes to README.md 2018-04-05 18:30:38 +01:00
FrancescoUK
22f1ed10be Fix migration helper $this issue (#1927) 2018-04-05 18:23:32 +01:00
jekkos
0a289f9ed4 Upade README.md, add INSTALL.md 2018-04-05 18:35:24 +02:00
jekkos
1b0eb0d936 Add migration_helper to config.php (#1927) 2018-04-05 18:10:19 +02:00
jekkos
d146a05991 Prettify docker build instructions (#1921) 2018-04-05 09:24:06 +02:00
jekkos
8c43345a20 Add instructions to run using docker from source (#1921) 2018-04-05 09:21:26 +02:00
jekkos
50c4b30df2 Hide discount / item if no discount for that item (#1924) 2018-04-05 08:57:36 +02:00
jekkos
9f2e39711f Migration refactor: move out common code (#1440) 2018-04-05 08:57:02 +02:00
jekkos
43b4cee636 Remove sockets from Dockerfile 2018-04-05 00:07:51 +02:00
Trần Ngọc Quân
ba8c0b7b15 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (162 of 162 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
86622615fd Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
3dfa877365 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
b22252be4e Translated using Weblate (German)
Currently translated at 100.0% (51 of 51 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
83697eaf8b Translated using Weblate (German)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/de/
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
fe627eb943 Translated using Weblate (German)
Currently translated at 89.4% (238 of 266 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
4dea268e51 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (110 of 110 strings)
2018-04-04 18:07:04 -04:00
Trần Ngọc Quân
2f7d738a20 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (266 of 266 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
b99ec9117b Translated using Weblate (German)
Currently translated at 100.0% (103 of 103 strings)
2018-04-04 18:07:04 -04:00
Ethan Horseshoe
3c56ae6cb6 Translated using Weblate (German)
Currently translated at 100.0% (44 of 44 strings)
2018-04-04 18:07:04 -04:00
FrancescoUK
b1fdd45372 Translated using Weblate (Italian)
Currently translated at 100.0% (110 of 110 strings)
2018-04-04 18:07:04 -04:00
FrancescoUK
4d46da7974 Preparing release 3.2.0 2018-03-28 19:09:29 +01:00
FrancescoUK
84a5f654b1 Remove php sockets from the dependency list 2018-03-28 19:01:34 +01:00
ratana chhun
01afdc5979 Translated using Weblate (Central Khmer)
Currently translated at 66.6% (34 of 51 strings)
2018-03-28 13:50:49 -04:00
Ethan Horseshoe
3c379a6458 Translated using Weblate (German)
Currently translated at 98.5% (67 of 68 strings)
2018-03-28 13:50:44 -04:00
Ethan Horseshoe
bb203efe21 Translated using Weblate (German)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/de/
2018-03-27 01:32:35 -04:00
FrancescoUK
9e2a757b16 Fix over counting of totals (#1896) 2018-03-25 21:44:11 +01:00
FrancescoUK
4079e44572 Allow password change with no restrictions + code reorg (#1894) 2018-03-25 19:18:03 +01:00
FrancescoUK
4595ab5c35 Allow editing of Customer from sales register (#1884) 2018-03-25 18:02:08 +01:00
FrancescoUK
35150f14ed Fix Submit button translation (#1894) 2018-03-25 15:53:57 +01:00
FrancescoUK
a7ecec4bd3 Small code refactoring (#1896) 2018-03-25 14:39:52 +01:00
FrancescoUK
ae472d0176 Print reports date in different formats, remove sorting (#1896) 2018-03-25 13:57:20 +01:00
PICCORO Lenz McKAY
b18ae57cf6 Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-03-25 06:58:58 -04:00
Riccardo Pieri
2f064d9a94 Translated using Weblate (Italian)
Currently translated at 99.0% (109 of 110 strings)
2018-03-25 06:58:57 -04:00
FrancescoUK
4f2b6badd9 Allow password change with no restriction (#1894) 2018-03-24 21:47:10 +00:00
FrancescoUK
bf76450ca5 Fix Summary_payments report location (#1896) 2018-03-24 18:32:02 +00:00
Xyko Arteiro
7c88bdb21f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/taxes/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
544d8a496e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (17 of 17 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
88625ad83c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (162 of 162 strings)
2018-03-22 16:29:11 -04:00
Weblate
e89f698dff Translated using Weblate (Flemish)
Currently translated at 72.8% (118 of 162 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
a1e0e7946c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (110 of 110 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
68ce90ad8e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (51 of 51 strings)
2018-03-22 16:29:11 -04:00
Hangman
06e36ac4f4 Translated using Weblate (German)
Currently translated at 100.0% (51 of 51 strings)
2018-03-22 16:29:11 -04:00
ratana chhun
ccd52e1ded Translated using Weblate (Central Khmer)
Currently translated at 62.7% (32 of 51 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
ed0fd469e6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/module/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
7884bab2ed Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/migrate/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
213bba8312 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (103 of 103 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
17982988f7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (30 of 30 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
a7d4e4c163 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (68 of 68 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
2411fe1e3f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/pt_BR/
2018-03-22 16:29:11 -04:00
Weblate
b2a2ee9613 Translated using Weblate (Flemish)
Currently translated at 27.7% (5 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses_categories/nl_BE/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
dc78162486 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://weblate.jpeelaer.net/projects/ospos/expenses/pt_BR/
2018-03-22 16:29:11 -04:00
Xyko Arteiro
ffbb96fdee Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (35 of 35 strings)
2018-03-22 16:29:11 -04:00
Ethan Horseshoe
fd1cad99ed Translated using Weblate (German)
Currently translated at 100.0% (35 of 35 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
e7808b35cd Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (44 of 44 strings)
2018-03-22 16:29:11 -04:00
Weblate
16b9bd1305 Translated using Weblate (Flemish)
Currently translated at 54.5% (24 of 44 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
3a3ddb99d2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.8% (263 of 266 strings)
2018-03-22 16:29:11 -04:00
Xyko Arteiro
49c6ec282f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (65 of 65 strings)
2018-03-22 16:29:11 -04:00
FrancescoUK
2557945713 Merge pull request #1899 from odiea/master
Update Specific_customer.php
2018-03-20 20:28:17 +00:00
odiea
3368c62690 Update Specific_customer.php 2018-03-20 12:07:45 -06:00
jekkos
3b411bbefc Skip cleanup after deploy 2018-03-17 17:55:34 +01:00
jekkos
4d8006da2e Use bleeding edge (dpl) for deploys 2018-03-17 17:42:51 +01:00
jekkos
a5c797b617 Add API key as travis environment variable 2018-03-17 13:59:54 +01:00
jekkos
b9bc7583b2 Change bintray API ke 2018-03-17 13:37:34 +01:00
FrancescoUK
b84d9d894f Fix Summary Takings including not completed transactions (#1886) 2018-03-16 19:56:56 +00:00
FrancescoUK
63d9fd219c Revert Giftcard broken fix (#1694) 2018-03-16 19:18:37 +00:00
jekkos
ddb0e7560c Update encrypted travis API key 2018-03-16 19:09:59 +01:00
jekkos
a24a55f812 Update bstables to 1.12.1 (#1884) 2018-03-15 13:12:10 +01:00
FrancescoUK
a353068ca5 Fix locale support to Giftcard with decimals (#1694) 2018-03-12 21:37:07 +00:00
FrancescoUK
442b64d1d1 Add locale support to Giftcard with decimals (#1694) 2018-03-10 11:29:04 +00:00
jekkos
8547c3b071 Fix employee form grants regression (#1870) 2018-03-09 18:26:42 +01:00
FrancescoUK
bf30652a3d Fix config view tabs errors 2018-03-04 20:54:38 +00:00
FrancescoUK
7525c650ab Total Inv. Retail Price & Quantity 2018-03-04 17:02:21 +00:00
FrancescoUK
f2ccebc84d Enable https for proxy offloading 2018-03-04 16:49:40 +00:00
FrancescoUK
5edfed5bfc Enable https for proxy offloading 2018-03-04 16:48:36 +00:00
FrancescoUK
8c60d6cdc6 Select full input line on click (#1863) 2018-03-04 16:35:14 +00:00
FrancescoUK
33cc7e3f9c Remove the "crap" (#1875) 2018-03-04 14:47:29 +00:00
WebShells
395ac217b8 Translated using Weblate (Arabic)
Currently translated at 100.0% (17 of 17 strings)
2018-03-04 12:46:26 +00:00
WebShells
1189c3dadf Translated using Weblate (Arabic)
Currently translated at 100.0% (162 of 162 strings)
2018-03-04 12:46:24 +00:00
ratana chhun
4c92e26e37 Translated using Weblate (Central Khmer)
Currently translated at 9.8% (5 of 51 strings)
2018-03-04 12:46:14 +00:00
WebShells
ee1f23289a Translated using Weblate (Arabic)
Currently translated at 100.0% (51 of 51 strings)
2018-03-04 12:46:13 +00:00
WebShells
84f6adb532 Translated using Weblate (Arabic)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/ar_EG/
2018-03-04 12:46:11 +00:00
WebShells
da5b6e2592 Translated using Weblate (Arabic)
Currently translated at 100.0% (103 of 103 strings)
2018-03-04 12:46:06 +00:00
WebShells
38b26a3e68 Translated using Weblate (Arabic)
Currently translated at 100.0% (30 of 30 strings)
2018-03-04 12:46:02 +00:00
WebShells
9d70b23b31 Translated using Weblate (Arabic)
Currently translated at 100.0% (68 of 68 strings)
2018-03-04 12:46:02 +00:00
WebShells
2466469a9c Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)
2018-03-04 12:45:57 +00:00
WebShells
ad47e64dfd Translated using Weblate (Arabic)
Currently translated at 100.0% (65 of 65 strings)
2018-03-04 12:45:55 +00:00
WebShells
520ae0d2a9 Translated using Weblate (Arabic)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/ar_EG/
2018-03-02 20:31:56 +00:00
WebShells
8fccee51a7 Translated using Weblate (Arabic)
Currently translated at 100.0% (35 of 35 strings)
2018-03-02 20:27:51 +00:00
WebShells
32074771ac Translated using Weblate (Arabic)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/ar_EG/
2018-03-01 19:22:43 +00:00
WebShells
44a1c89292 Translated using Weblate (Arabic)
Currently translated at 100.0% (30 of 30 strings)
2018-03-01 19:21:55 +00:00
WebShells
55d4c004eb Translated using Weblate (Arabic)
Currently translated at 100.0% (108 of 108 strings)
2018-03-01 18:11:48 +00:00
WebShells
1fbc42c079 Translated using Weblate (Arabic)
Currently translated at 100.0% (266 of 266 strings)
2018-03-01 15:32:33 +00:00
WebShells
2b7a25d8a3 Translated using Weblate (Arabic)
Currently translated at 100.0% (44 of 44 strings)
2018-03-01 12:25:45 +00:00
WebShells
1f3074232c Translated using Weblate (Arabic)
Currently translated at 100.0% (103 of 103 strings)
2018-03-01 11:54:22 +00:00
ratana chhun
d3a77118ba Translated using Weblate (Central Khmer)
Currently translated at 100.0% (12 of 12 strings)
2018-03-01 04:53:11 +00:00
ratana chhun
83732383a7 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (30 of 30 strings)
2018-03-01 04:27:08 +00:00
WebShells
b495a97483 Translated using Weblate (Arabic)
Currently translated at 100.0% (17 of 17 strings)
2018-02-28 21:51:14 +00:00
Mats Pålsson
a0672d04ce Translated using Weblate (Swedish)
Currently translated at 99.3% (161 of 162 strings)
2018-02-28 21:51:14 +00:00
WebShells
e9ac0adb81 Translated using Weblate (Arabic)
Currently translated at 74.6% (121 of 162 strings)
2018-02-28 21:51:14 +00:00
WebShells
6febdc4e9d Translated using Weblate (Arabic)
Currently translated at 100.0% (51 of 51 strings)
2018-02-28 21:51:14 +00:00
WebShells
8ca18edfbd Translated using Weblate (Arabic)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/ar_EG/
2018-02-28 21:51:14 +00:00
ratana chhun
6f4cd9d5eb Translated using Weblate (Central Khmer)
Currently translated at 26.6% (8 of 30 strings)
2018-02-28 21:51:14 +00:00
WebShells
63866bf0d3 Translated using Weblate (Arabic)
Currently translated at 100.0% (68 of 68 strings)
2018-02-28 21:51:14 +00:00
WebShells
4e8b63c002 Translated using Weblate (Arabic)
Currently translated at 97.6% (42 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/ar_EG/
2018-02-28 21:51:14 +00:00
Zhivko Vanev
1500aa8b51 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (35 of 35 strings)
2018-02-28 21:51:14 +00:00
WebShells
9af064f003 Translated using Weblate (Arabic)
Currently translated at 77.2% (34 of 44 strings)
2018-02-28 21:51:14 +00:00
WebShells
0e4f894b2a Translated using Weblate (Arabic)
Currently translated at 88.7% (236 of 266 strings)
2018-02-28 21:51:14 +00:00
Mats Pålsson
91a677f018 Translated using Weblate (Swedish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-28 21:51:14 +00:00
Zhivko Vanev
556ab3c229 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-28 21:51:14 +00:00
Weblate
d7da611a76 Translated using Weblate (Dutch (Belgium))
Currently translated at 74.4% (198 of 266 strings)
2018-02-28 21:51:14 +00:00
WebShells
fa8f42629b Translated using Weblate (Arabic)
Currently translated at 100.0% (65 of 65 strings)
2018-02-28 21:51:14 +00:00
Zhivko Vanev
f8e1d57f71 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (35 of 35 strings)
2018-02-28 21:51:14 +00:00
Henk Valk
380953d8b7 Added translation using Weblate (Dutch) 2018-02-28 21:51:14 +00:00
Henk Valk
aea080052a Added translation using Weblate (Dutch) 2018-02-28 21:51:14 +00:00
Henk Valk
3568debbe6 Added translation using Weblate (Dutch) 2018-02-28 21:51:14 +00:00
Mats Pålsson
d2e8a156ab Translated using Weblate (Swedish)
Currently translated at 100.0% (68 of 68 strings)
2018-02-28 21:51:14 +00:00
Mats Pålsson
d6f6e2f234 Translated using Weblate (Swedish)
Currently translated at 100.0% (30 of 30 strings)
2018-02-28 21:51:14 +00:00
FrancescoUK
22c6d5401c Fix wrong language translations (#1842) 2018-02-25 19:02:10 +00:00
FrancescoUK
e44733599e Fix Quote, Invoice and Work Order comments (#1819) 2018-02-25 15:05:00 +00:00
FrancescoUK
acb12dd517 Bump migrate file name with newer date 2018-02-25 15:03:05 +00:00
Steve Ireland
3dbc124f62 Various fixes for comments for quotes, work orders, and invoices 2018-02-25 14:56:38 +00:00
FrancescoUK
563fcf2385 Rollback JQuery validator to vs 1.14.0 (#1858) 2018-02-25 14:23:56 +00:00
Ahmed Mahmoud Saad
accd11b74f Translated using Weblate (Arabic)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/ar_EG/
2018-02-25 11:04:27 +00:00
Ahmed Mahmoud Saad
c7b21362cb Translated using Weblate (Arabic)
Currently translated at 22.2% (4 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/ar_EG/
2018-02-25 10:59:31 +00:00
Chiraq Bookstore
78b9daac39 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (17 of 17 strings)
2018-02-25 10:24:27 +00:00
Chiraq Bookstore
00f90857a0 Translated using Weblate (az_AZ (generated))
Currently translated at 99.3% (161 of 162 strings)
2018-02-25 10:24:25 +00:00
Chiraq Bookstore
3bb8d7ad32 Translated using Weblate (az_AZ (generated))
Currently translated at 98.1% (106 of 108 strings)
2018-02-25 10:24:20 +00:00
Chiraq Bookstore
83ed48c7db Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/az_AZ/
2018-02-25 10:24:14 +00:00
Chiraq Bookstore
7e0f099479 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (68 of 68 strings)
2018-02-25 10:24:13 +00:00
Chiraq Bookstore
96af1b64ff Translated using Weblate (Russian)
Currently translated at 49.0% (130 of 265 strings)
2018-02-25 10:24:11 +00:00
Ahmed Mahmoud Saad
a005ed6862 Translated using Weblate (Arabic)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ar_EG/
2018-02-24 15:29:10 +00:00
Chiraq Bookstore
cf6df1e99c Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (17 of 17 strings)
2018-02-24 13:24:36 +00:00
Chiraq Bookstore
c1509a9dd1 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (44 of 44 strings)
2018-02-24 13:17:53 +00:00
Chiraq Bookstore
d78b547b98 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (65 of 65 strings)
2018-02-24 12:47:48 +00:00
Chiraq Bookstore
17136a011a Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-22 15:15:29 +00:00
Chiraq Bookstore
171870f512 Translated using Weblate (az_AZ (generated))
Currently translated at 66.6% (72 of 108 strings)
2018-02-22 15:15:28 +00:00
Mats Pålsson
04a3a0631f Translated using Weblate (Swedish)
Currently translated at 100.0% (108 of 108 strings)
2018-02-22 15:15:18 +00:00
Chiraq Bookstore
2dd81f4e77 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (103 of 103 strings)
2018-02-22 15:15:00 +00:00
Mats Pålsson
39a7665930 Translated using Weblate (Swedish)
Currently translated at 100.0% (103 of 103 strings)
2018-02-22 15:14:59 +00:00
Mats Pålsson
1223dccd8c Translated using Weblate (Swedish)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/sv/
2018-02-22 15:14:45 +00:00
Mats Pålsson
d078523528 Translated using Weblate (Swedish)
Currently translated at 100.0% (265 of 265 strings)
2018-02-22 15:14:38 +00:00
Chiraq Bookstore
574bcbac09 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (103 of 103 strings)
2018-02-22 11:12:36 +00:00
Chiraq Bookstore
8dad6d5249 Translated using Weblate (az_AZ (generated))
Currently translated at 72.8% (75 of 103 strings)
2018-02-21 14:15:08 +00:00
Chiraq Bookstore
75b9fdb698 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)
2018-02-21 14:14:57 +00:00
Henk Valk
6131e3db34 Translated using Weblate (Dutch (Belgium))
Currently translated at 11.6% (5 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/nl_BE/
2018-02-21 14:14:56 +00:00
Chiraq Bookstore
30f6e315e3 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)
2018-02-21 12:03:28 +00:00
Chiraq Bookstore
01dfed1793 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (68 of 68 strings)
2018-02-21 11:18:37 +00:00
Alexis Michaux
f82990a304 Translated using Weblate (French)
Currently translated at 96.9% (157 of 162 strings)
2018-02-21 11:15:45 +00:00
Chiraq Bookstore
6131c5eb53 Translated using Weblate (az_AZ (generated))
Currently translated at 97.0% (66 of 68 strings)
2018-02-21 11:15:41 +00:00
Chiraq Bookstore
a1b25d193c Translated using Weblate (Russian)
Currently translated at 41.5% (110 of 265 strings)
2018-02-21 11:15:28 +00:00
FrancescoUK
67eab51e4f Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)
2018-02-20 19:10:08 +00:00
FrancescoUK
97591e77fc Translated using Weblate (Italian)
Currently translated at 100.0% (162 of 162 strings)
2018-02-20 19:10:07 +00:00
Alexis Michaux
146d0ce6c8 Translated using Weblate (French)
Currently translated at 88.2% (143 of 162 strings)
2018-02-20 19:10:06 +00:00
FrancescoUK
9733ca9171 Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-02-20 19:09:45 +00:00
FrancescoUK
b2fcd59841 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/it/
2018-02-20 19:09:44 +00:00
FrancescoUK
f769561a3c Translated using Weblate (Italian)
Currently translated at 100.0% (103 of 103 strings)
2018-02-20 19:09:37 +00:00
FrancescoUK
2a617f7c5c Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-02-20 19:09:37 +00:00
FrancescoUK
544c142ef0 Translated using Weblate (Italian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/it/
2018-02-20 19:09:36 +00:00
Alexis Michaux
8991407b16 Translated using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)
2018-02-20 19:09:35 +00:00
FrancescoUK
caedd4cfc0 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-20 19:09:29 +00:00
Alexis Michaux
9323f3803b Translated using Weblate (French)
Currently translated at 52.2% (23 of 44 strings)
2018-02-20 19:09:29 +00:00
FrancescoUK
a031fd924b Translated using Weblate (Italian)
Currently translated at 100.0% (265 of 265 strings)
2018-02-20 19:09:25 +00:00
FrancescoUK
afadb1e171 Translated using Weblate (Italian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-20 19:09:20 +00:00
lucailvec
8f7f22726a Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-02-20 18:45:59 +00:00
lucailvec
5cbebec92f Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/it/
2018-02-20 18:45:26 +00:00
lucailvec
2b8e8bb13e Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)
2018-02-20 18:44:58 +00:00
lucailvec
cae200e06a Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)
2018-02-20 18:42:44 +00:00
FrancescoUK
49cbdb53ee Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/it/
2018-02-20 18:41:09 +00:00
lucailvec
e96e00d902 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)
2018-02-20 18:40:38 +00:00
lucailvec
6ae6fa7c32 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-20 18:39:49 +00:00
FrancescoUK
4653cde725 Translated using Weblate (Italian)
Currently translated at 100.0% (108 of 108 strings)
2018-02-20 18:38:24 +00:00
Alexis Michaux
97f2ee521f Translated using Weblate (French)
Currently translated at 100.0% (65 of 65 strings)
2018-02-20 18:37:58 +00:00
FrancescoUK
ee55be347d Update JQuery plugins (#1694) 2018-02-20 18:24:36 +00:00
Chiraq Bookstore
cee7956788 Translated using Weblate (az_AZ (generated))
Currently translated at 77.1% (125 of 162 strings)
2018-02-20 17:49:15 +00:00
Chiraq Bookstore
ffa77cfb71 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/az_AZ/
2018-02-20 17:49:07 +00:00
Chiraq Bookstore
a956a009f9 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (265 of 265 strings)
2018-02-20 12:32:59 +00:00
Chiraq Bookstore
9f7ca1a747 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)
2018-02-20 12:21:00 +00:00
Chiraq Bookstore
66d319f082 Translated using Weblate (az_AZ (generated))
Currently translated at 93.2% (247 of 265 strings)
2018-02-20 12:20:55 +00:00
PICCORO Lenz McKAY
010a3c7126 Translated using Weblate (Spanish)
Currently translated at 100.0% (265 of 265 strings)
2018-02-20 12:20:27 +00:00
Chiraq Bookstore
c1b3382795 Translated using Weblate (Russian)
Currently translated at 41.1% (109 of 265 strings)
2018-02-20 12:20:24 +00:00
Chiraq Bookstore
2a8078aac9 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (51 of 51 strings)
2018-02-20 11:22:38 +00:00
ratana chhun
409f0f0084 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (68 of 68 strings)
2018-02-20 09:00:27 +00:00
ratana chhun
df2a76b4cf Translated using Weblate (Central Khmer)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/km/
2018-02-20 07:03:48 +00:00
ratana chhun
ec97cd5cdf Translated using Weblate (Central Khmer)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/km/
2018-02-20 06:33:53 +00:00
Trần Ngọc Quân
46da8bab1d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (162 of 162 strings)
2018-02-19 07:19:07 +00:00
ratana chhun
ae6e082983 Translated using Weblate (Central Khmer)
Currently translated at 100.0% (8 of 8 strings)
2018-02-19 03:17:31 +00:00
PICCORO Lenz McKAY
028f38784e Translated using Weblate (Spanish)
Currently translated at 100.0% (162 of 162 strings)
2018-02-19 00:36:07 +00:00
FrancescoUK
136093b8ab Translated using Weblate (Italian)
Currently translated at 100.0% (162 of 162 strings)
2018-02-18 22:51:17 +00:00
FrancescoUK
17f3635574 Revert work_order_email changes (#1824) 2018-02-18 17:43:16 +00:00
Trần Ngọc Quân
c33a3b3720 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/vi/
2018-02-18 17:16:54 +00:00
Mats Pålsson
63b728b118 Translated using Weblate (Swedish)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/sv/
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
1cfdee4114 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (159 of 159 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
98ccea3419 Translated using Weblate (Swedish)
Currently translated at 100.0% (159 of 159 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
5306b6d26f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (108 of 108 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
63bc9d70a7 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
2590feee6c Translated using Weblate (Swedish)
Currently translated at 100.0% (51 of 51 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
1dd375311c Translated using Weblate (Swedish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/sv/
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
f121a31bb9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
75d54f4f62 Translated using Weblate (Swedish)
Currently translated at 4.8% (5 of 103 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
8d16b28160 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (68 of 68 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
97d07d96c8 Translated using Weblate (Swedish)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/sv/
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
78f9560e6d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/vi/
2018-02-18 17:16:54 +00:00
Mats Pålsson
fd625afeb6 Translated using Weblate (Swedish)
Currently translated at 100.0% (44 of 44 strings)
2018-02-18 17:16:54 +00:00
Trần Ngọc Quân
91374a54b4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (265 of 265 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
9c4591ea31 Translated using Weblate (Swedish)
Currently translated at 30.1% (80 of 265 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
5ade46bc35 Translated using Weblate (Swedish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-18 17:16:54 +00:00
Mats Pålsson
b1bee3196a Translated using Weblate (Swedish)
Currently translated at 100.0% (17 of 17 strings)
2018-02-18 17:16:54 +00:00
FrancescoUK
16dd8fb0a1 Fix work_order_email similar to quote_email (#1824) 2018-02-18 17:12:43 +00:00
FrancescoUK
b69d57a4b9 Fix missing sales_receipt_no_email translation (#1824) 2018-02-18 16:27:20 +00:00
FrancescoUK
1ba0f3c839 Fix quote email issue (#1824) 2018-02-18 09:23:44 +00:00
FrancescoUK
a258a27d9b Merge pull request #1842 from RuleDomain/quote-comments
Expand comments for quotes and invoices add notice when customer is required
2018-02-18 09:15:17 +00:00
Mats Pålsson
082bfeca88 Translated using Weblate (Swedish)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/sv/
2018-02-17 23:46:18 +00:00
Mats Pålsson
32075b96dd Translated using Weblate (Swedish)
Currently translated at 100.0% (35 of 35 strings)
2018-02-17 22:10:02 +00:00
Mats Pålsson
3844d6b5f5 Translated using Weblate (Swedish)
Currently translated at 72.5% (37 of 51 strings)
2018-02-17 21:43:01 +00:00
Mats Pålsson
aa6eed2947 Translated using Weblate (Swedish)
Currently translated at 29.0% (77 of 265 strings)
2018-02-17 21:42:54 +00:00
Mats Pålsson
4a74c645ad Translated using Weblate (Swedish)
Currently translated at 8.3% (22 of 265 strings)
2018-02-17 21:18:33 +00:00
Mats Pålsson
dc2c77752b Translated using Weblate (Swedish)
Currently translated at 8.3% (22 of 265 strings)
2018-02-17 21:18:09 +00:00
Mats Pålsson
85fdc661d1 Translated using Weblate (Swedish)
Currently translated at 7.9% (21 of 265 strings)
2018-02-17 21:17:46 +00:00
Chiraq Bookstore
64163e8e6e Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-17 21:07:50 +00:00
Chiraq Bookstore
810ba78776 Translated using Weblate (Russian)
Currently translated at 76.6% (23 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ru/
2018-02-17 21:07:50 +00:00
Chiraq Bookstore
82a17eb6ce Translated using Weblate (Russian)
Currently translated at 88.2% (15 of 17 strings)
2018-02-17 21:07:50 +00:00
Chiraq Bookstore
b726596ec1 Translated using Weblate (az_AZ (generated))
Currently translated at 45.0% (23 of 51 strings)
2018-02-17 21:07:50 +00:00
FrancescoUK
5aac69ad6d Add discount per item to quote and invoice (#1824) 2018-02-17 21:03:29 +00:00
FrancescoUK
c24c7ed721 Merge pull request #1836 from crmeye/master
Italian Translation (Fix)
2018-02-17 20:23:12 +00:00
FrancescoUK
f4519251af Print and Email checkbox default behaviour (#1784) 2018-02-17 17:36:15 +00:00
FrancescoUK
ba6e38f755 Fix Discount Report pop up notification (#1823) 2018-02-17 12:15:35 +00:00
Chiraq Bookstore
f838dae4b5 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-17 09:19:39 +00:00
Chiraq Bookstore
380d3a1355 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/az_AZ/
2018-02-17 09:13:34 +00:00
PICCORO Lenz McKAY
ceb5b85640 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/es/
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
fc6f8e4d92 Translated using Weblate (Russian)
Currently translated at 70.0% (21 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ru/
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
37dcba63bb Translated using Weblate (Spanish)
Currently translated at 100.0% (17 of 17 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
edf5c1ec90 Translated using Weblate (Spanish)
Currently translated at 100.0% (108 of 108 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
426bdfbadd Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/es/
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
40114601df Translated using Weblate (Spanish)
Currently translated at 100.0% (68 of 68 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
e2d9b2e141 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
427a2c3777 Translated using Weblate (az_AZ (generated))
Currently translated at 25.6% (66 of 257 strings)
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
98864c0446 Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
0995c71630 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/az_AZ/
2018-02-17 08:51:31 +00:00
Chiraq Bookstore
407e8723d8 Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
022435d0db Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
7f7943d538 Translated using Weblate (Spanish)
Currently translated at 100.0% (17 of 17 strings)
2018-02-17 08:51:31 +00:00
PICCORO Lenz McKAY
780a4c37a7 Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)
2018-02-17 08:51:31 +00:00
crmeye
b24879c9ef Merge branch 'master' into master 2018-02-17 00:18:20 +01:00
FrancescoUK
d6000c79f7 Revert "Removed edit from Discount Report" (#1823)
This reverts commit 60d77e1f61.
2018-02-16 22:46:19 +00:00
FrancescoUK
9ed0984c21 Fix indentation issue 2018-02-16 22:13:56 +00:00
FrancescoUK
21415ccb3c Fix indentation issue 2018-02-16 22:10:02 +00:00
PICCORO Lenz McKAY
cadae3eabc Translated using Weblate (Spanish)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/es/
2018-02-16 04:24:29 +00:00
PICCORO Lenz McKAY
54150940ee Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-02-16 04:18:41 +00:00
Steve Ireland
81d76b0c03 Expand comments for quotes and invoices add notice when customer is required. 2018-02-15 22:45:45 -05:00
PICCORO Lenz McKAY
469d3d500e Translated using Weblate (Spanish)
Currently translated at 100.0% (257 of 257 strings)
2018-02-16 02:23:07 +00:00
PICCORO Lenz McKAY
36fe5ded7e Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)
2018-02-16 02:22:24 +00:00
PICCORO Lenz McKAY
fec096915a Translated using Weblate (Spanish)
Currently translated at 100.0% (51 of 51 strings)
2018-02-16 02:20:13 +00:00
PICCORO Lenz McKAY
abdcd31b9e Translated using Weblate (Spanish)
Currently translated at 100.0% (108 of 108 strings)
2018-02-16 02:12:51 +00:00
PICCORO Lenz McKAY
efd58f2281 Translated using Weblate (Spanish)
Currently translated at 100.0% (159 of 159 strings)
2018-02-16 01:21:10 +00:00
PICCORO Lenz McKAY
211c18a99e Translated using Weblate (Spanish)
Currently translated at 91.8% (146 of 159 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
166c2558e6 Translated using Weblate (Spanish)
Currently translated at 98.0% (50 of 51 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
54237a1fed Translated using Weblate (Spanish)
Currently translated at 91.4% (32 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/es/
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
1d9548870b Translated using Weblate (Spanish)
Currently translated at 98.8% (254 of 257 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
032276de87 Translated using Weblate (Spanish)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/es/
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
61e16d2d33 Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-16 01:17:54 +00:00
PICCORO Lenz McKAY
463dfcd1a4 Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-02-16 01:17:54 +00:00
odiea
022dfea51a Update Specific_customer.php 2018-02-15 23:46:12 +01:00
odiea
ef23596b6e Update Reports.php 2018-02-15 23:46:12 +01:00
odiea
58e8469dde Added filters to customer 2018-02-15 23:46:12 +01:00
odiea
60d77e1f61 Removed edit from Discount Report 2018-02-15 23:46:12 +01:00
odiea
49d60313f6 Update Detailed Reports. Add payment type to Specific Customer. 2018-02-15 23:46:12 +01:00
jekkos
ed54adb70c Merge branch 'master' of weblate.jpeelaer.net:/root/docker/ospos/common 2018-02-15 23:19:12 +01:00
Chiraq Bookstore
a353e73549 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-15 21:29:53 +00:00
Chiraq Bookstore
e1508e610b Translated using Weblate (az_AZ (generated))
Currently translated at 58.8% (30 of 51 strings)
2018-02-15 21:29:48 +00:00
Chiraq Bookstore
463cf9266d Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/az_AZ/
2018-02-15 21:29:44 +00:00
Alexis Michaux
23a6ae791b Translated using Weblate (French)
Currently translated at 74.7% (192 of 257 strings)
2018-02-15 21:29:41 +00:00
jekkos
48d58b822a Sync translations (#1841) 2018-02-15 22:27:44 +01:00
Alexis Michaux
08de3e1167 Translated using Weblate (French)
Currently translated at 100.0% (65 of 65 strings)
2018-02-15 15:52:05 +00:00
Chiraq Bookstore
20c30a2c15 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)
2018-02-15 07:51:12 +00:00
Diego Campiglia
b51ea94eb5 Italian Translation (Fix) 2018-02-14 16:45:15 +01:00
Chiraq Bookstore
2c613bdc86 Translated using Weblate (Russian)
Currently translated at 66.6% (20 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/ru/
2018-02-13 23:12:28 +00:00
Chiraq Bookstore
f784aa3956 Translated using Weblate (az_AZ (generated))
Currently translated at 74.2% (118 of 159 strings)
2018-02-13 23:12:28 +00:00
Chiraq Bookstore
73b97de3e5 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/az_AZ/
2018-02-13 23:12:28 +00:00
Chiraq Bookstore
5cc2898a4b Translated using Weblate (az_AZ (generated))
Currently translated at 93.1% (41 of 44 strings)
2018-02-13 23:12:28 +00:00
HanseGucker
820cae2d3d Translated using Weblate (German)
Currently translated at 98.0% (252 of 257 strings)
2018-02-13 23:12:28 +00:00
Zhivko Vanev
3569165097 Translated using Weblate (Bulgarian)
Currently translated at 99.2% (255 of 257 strings)
2018-02-13 23:12:28 +00:00
ratana chhun
2c1f2823f2 Added translation using Weblate (Central Khmer) 2018-02-13 23:12:28 +00:00
ratana chhun
ce45769163 Added translation using Weblate (Central Khmer) 2018-02-13 23:12:28 +00:00
ratana chhun
12b62119bf Added translation using Weblate (Central Khmer) 2018-02-13 23:12:28 +00:00
FrancescoUK
9caf22aea4 Merge pull request #1827 from RuleDomain/fix-missing-comment
This adds the comment back to quote and corrects a couple of bad DEFINE references
2018-02-12 07:40:08 +00:00
Steve Ireland
2258938604 More missing language elements and one bad reference to a config value. 2018-02-11 20:09:24 -05:00
FrancescoUK
3f2a9e8c52 Merge pull request #1820 from opensourcepos/Readme-patch
Minor URL change
2018-02-09 11:14:51 +00:00
objecttothis
385de892fe Minor URL change
Changed translation website URL from http://weblate.jpeelaer.net to http://translate.opensourcepos.org to reflect the updated alias.
2018-02-09 11:31:56 +04:00
Chiraq Bookstore
a5787ecb4e Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-08 22:35:09 +00:00
PICCORO Lenz McKAY
bfecf15ee2 Translated using Weblate (Russian)
Currently translated at 100.0% (159 of 159 strings)
2018-02-08 22:35:08 +00:00
Trần Ngọc Quân
5ffb6b4c18 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-08 22:34:53 +00:00
abderrahim nabih
a6d70b6fcd Translated using Weblate (French)
Currently translated at 100.0% (51 of 51 strings)
2018-02-08 22:34:52 +00:00
PICCORO Lenz McKAY
bee9c7af5d Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/es/
2018-02-08 22:34:46 +00:00
Chiraq Bookstore
f0bdb84422 Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/az_AZ/
2018-02-08 22:34:46 +00:00
Chiraq Bookstore
12e7c5d440 Translated using Weblate (az_AZ (generated))
Currently translated at 26.0% (67 of 257 strings)
2018-02-08 22:34:41 +00:00
Chiraq Bookstore
623ff4fee9 Translated using Weblate (Russian)
Currently translated at 39.2% (101 of 257 strings)
2018-02-08 22:34:41 +00:00
Chiraq Bookstore
579a85a9fc Translated using Weblate (az_AZ (generated))
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/az_AZ/
2018-02-08 11:16:40 +00:00
Trần Ngọc Quân
22e3bba649 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (68 of 68 strings)
2018-02-08 08:11:44 +00:00
ratana chhun
9075bfcf37 Added translation using Weblate (Central Khmer) 2018-02-08 03:54:07 +00:00
Trần Ngọc Quân
478b2c0ea5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (257 of 257 strings)
2018-02-08 01:18:47 +00:00
Trần Ngọc Quân
91918fc937 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/vi/
2018-02-08 00:28:24 +00:00
PICCORO Lenz McKAY
017df21f17 Translated using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)

Translation: opensourcepos/module
Translate-URL: http://*/projects/ospos/module/ru/
2018-02-07 13:07:36 +00:00
PICCORO Lenz McKAY
e7d420f44f Translated using Weblate (Spanish)
Currently translated at 100.0% (68 of 68 strings)
2018-02-07 12:45:54 +00:00
Trần Ngọc Quân
04f2e916bb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (30 of 30 strings)
2018-02-07 07:22:30 +00:00
Trần Ngọc Quân
7770c6817f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/vi/
2018-02-07 01:26:12 +00:00
Trần Ngọc Quân
6caf2ea672 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (159 of 159 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
317d0adb78 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (159 of 159 strings)

try again
2018-02-06 10:39:52 +00:00
Trần Ngọc Quân
a7659d7b76 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
4353f5a12b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (2 of 2 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
160b7ca189 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-06 10:39:52 +00:00
Chiraq Bookstore
c9b15c7eeb Translated using Weblate (az_AZ (generated))
Currently translated at 26.0% (67 of 257 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
a1f6dbccc5 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (8 of 8 strings)
2018-02-06 10:39:52 +00:00
Trần Ngọc Quân
d399637c18 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (65 of 65 strings)
2018-02-06 10:39:52 +00:00
Zhivko Vanev
54740f734f Translated using Weblate (Bulgarian)
Currently translated at 100.0% (65 of 65 strings)
2018-02-06 10:39:52 +00:00
Trần Ngọc Quân
7e8ac7c100 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (159 of 159 strings)
2018-02-06 10:39:52 +00:00
FrancescoUK
4cff8d7dd2 Fix wrong label for tag in sale register (#1814) 2018-02-04 21:15:45 +00:00
FrancescoUK
a7ada7e85a Fix broken chartist plugin dependency 2018-02-04 20:58:58 +00:00
Trần Ngọc Quân
a3bf1d7eeb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/vi/
2018-02-03 00:45:37 +00:00
Trần Ngọc Quân
ecce5d39bb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (12 of 12 strings)
2018-02-03 00:38:16 +00:00
Zhivko Vanev
9d113c3327 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (44 of 44 strings)
2018-02-02 16:42:54 +00:00
Zhivko Vanev
1f3b05a37b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (159 of 159 strings)
2018-02-02 16:14:27 +00:00
Trần Ngọc Quân
8e60437db0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-02 09:42:09 +00:00
Chiraq Bookstore
6cb6e2fb24 Translated using Weblate (Russian)
Currently translated at 60.0% (3 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/ru/
2018-02-02 09:42:09 +00:00
Trần Ngọc Quân
71a95d7b31 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-02 09:42:08 +00:00
Trần Ngọc Quân
8be987f564 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (8 of 8 strings)
2018-02-02 07:47:01 +00:00
Trần Ngọc Quân
8bf147f025 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-02-02 07:38:27 +00:00
Weblate
b3c42d4d06 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-02-02 07:38:14 +00:00
Trần Ngọc Quân
043493ba0a Translated using Weblate (Vietnamese)
Currently translated at 100.0% (20 of 20 strings)
2018-02-02 07:20:01 +00:00
Trần Ngọc Quân
88d5b3336a Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-02 07:12:00 +00:00
Weblate
3a1b16c070 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-02 07:11:36 +00:00
Trần Ngọc Quân
44e57c59e4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (103 of 103 strings)
2018-02-02 06:49:11 +00:00
Trần Ngọc Quân
204499e5d0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (35 of 35 strings)
2018-02-02 01:13:09 +00:00
Trần Ngọc Quân
31f736e2e0 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (44 of 44 strings)
2018-02-02 01:00:15 +00:00
Trần Ngọc Quân
5a4d7a40ec Translated using Weblate (Vietnamese)
Currently translated at 100.0% (17 of 17 strings)
2018-02-01 14:05:43 +00:00
Weblate
8c5706bc1f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (107 of 107 strings)
2018-02-01 14:05:43 +00:00
Trần Ngọc Quân
04af352fad Translated using Weblate (Vietnamese)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/vi/
2018-02-01 14:05:41 +00:00
Chiraq Bookstore
677b296721 Translated using Weblate (az_AZ (generated))
Currently translated at 98.4% (64 of 65 strings)
2018-02-01 14:05:38 +00:00
Trần Ngọc Quân
a4c8db7592 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (65 of 65 strings)
2018-02-01 07:34:28 +00:00
Trần Ngọc Quân
241f05a000 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (8 of 8 strings)
2018-02-01 07:18:23 +00:00
Trần Ngọc Quân
1f5ffb04a1 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (2 of 2 strings)
2018-02-01 07:13:27 +00:00
Trần Ngọc Quân
5f12d8ade3 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/vi/
2018-02-01 07:08:49 +00:00
Trần Ngọc Quân
da64b67e26 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (17 of 17 strings)
2018-02-01 07:03:16 +00:00
Trần Ngọc Quân
beedb7e2f6 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/vi/
2018-02-01 06:53:46 +00:00
Trần Ngọc Quân
fa63933f69 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/vi/
2018-02-01 06:46:00 +00:00
Weblate
b32b767260 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (51 of 51 strings)
2018-01-31 08:01:47 +00:00
Weblate
4457cf7055 Add Vietnamese language 2018-01-31 07:57:49 +00:00
Weblate
458e9a2db5 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
3245ddb22d Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
5c833e48fb Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
49c3ad57fc Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
67402b6cd5 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Trần Ngọc Quân
cd2f2c35a4 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
4efbfe2581 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
2fd350d924 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
e1c6a7c98a Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
873bbfd2b8 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
523cbd40e3 Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
Weblate
c97393f53b Added translation using Weblate (Vietnamese) 2018-01-31 07:56:08 +00:00
PICCORO Lenz McKAY
d175b97596 Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-01-31 07:56:08 +00:00
PICCORO Lenz McKAY
aff5dd146e Translated using Weblate (Russian)
Currently translated at 100.0% (65 of 65 strings)
2018-01-31 07:56:08 +00:00
FrancescoUK
768f73770f Merge pull request #1810 from vnwildman/master
Add Vietnamese language (#1809)
2018-01-31 06:19:04 +00:00
Trần Ngọc Quân
b8f4da9314 Add Vietnamese language
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2018-01-31 08:13:51 +07:00
FrancescoUK
9c29e066ff Upgrade to CodeIgniter 3.1.7 2018-01-30 21:43:14 +00:00
PICCORO Lenz McKAY
7b0abf5982 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/es/
2018-01-28 13:35:08 +00:00
PICCORO Lenz McKAY
9fe8cffa16 Translated using Weblate (Spanish)
Currently translated at 100.0% (159 of 159 strings)
2018-01-28 13:35:04 +00:00
PICCORO Lenz McKAY
024990dac8 Translated using Weblate (Spanish)
Currently translated at 100.0% (103 of 103 strings)
2018-01-28 13:35:00 +00:00
PICCORO Lenz McKAY
d479ed2512 Translated using Weblate (Spanish)
Currently translated at 100.0% (30 of 30 strings)
2018-01-28 13:34:57 +00:00
PICCORO Lenz McKAY
f799d4f296 Translated using Weblate (Spanish)
Currently translated at 100.0% (35 of 35 strings)
2018-01-28 13:34:56 +00:00
PICCORO Lenz McKAY
c389a2c8a5 Translated using Weblate (Spanish)
Currently translated at 100.0% (44 of 44 strings)
2018-01-28 13:34:54 +00:00
PICCORO Lenz McKAY
0c8b4de6ac Translated using Weblate (Spanish)
Currently translated at 100.0% (257 of 257 strings)
2018-01-28 13:34:54 +00:00
lucailvec
0d5cad8f27 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-28 13:34:48 +00:00
lucailvec
abf163c6fa Translated using Weblate (Italian)
Currently translated at 100.0% (65 of 65 strings)
2018-01-27 09:45:22 +00:00
lucailvec
e1011b2662 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/it/
2018-01-23 20:39:40 +00:00
PICCORO Lenz McKAY
cea2a2e051 Translated using Weblate (Russian)
Currently translated at 88.6% (141 of 159 strings)
2018-01-23 20:39:39 +00:00
lucailvec
376c8cd3b2 Translated using Weblate (Italian)
Currently translated at 100.0% (107 of 107 strings)
2018-01-23 20:39:23 +00:00
lucailvec
bea420032a Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-01-23 20:39:12 +00:00
lucailvec
0e8594b92b Translated using Weblate (Italian)
Currently translated at 100.0% (103 of 103 strings)
2018-01-23 20:39:11 +00:00
PICCORO Lenz McKAY
fff072d302 Translated using Weblate (Russian)
Currently translated at 47.7% (21 of 44 strings)
2018-01-23 20:39:10 +00:00
PICCORO Lenz McKAY
803e2391ff Translated using Weblate (Spanish)
Currently translated at 98.8% (254 of 257 strings)
2018-01-23 20:39:10 +00:00
lucailvec
a6cc775d17 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-23 20:39:06 +00:00
lucailvec
c02f93bdf9 Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-01-21 10:29:59 +00:00
lucailvec
c3bbf75d0e Translated using Weblate (Italian)
Currently translated at 100.0% (159 of 159 strings)
2018-01-20 17:43:15 +00:00
PICCORO Lenz McKAY
f533e7629b Translated using Weblate (Spanish)
Currently translated at 98.1% (105 of 107 strings)
2018-01-20 17:42:59 +00:00
Hangman
54099bf43a Translated using Weblate (German)
Currently translated at 79.4% (85 of 107 strings)
2018-01-20 17:42:47 +00:00
Hangman
60ce1970e7 Translated using Weblate (German)
Currently translated at 20.0% (1 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/de/
2018-01-20 17:42:39 +00:00
lucailvec
9abb83f98b Translated using Weblate (Italian)
Currently translated at 100.0% (12 of 12 strings)
2018-01-20 17:42:38 +00:00
lucailvec
7302b0c5d8 Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)
2018-01-20 17:42:36 +00:00
PICCORO Lenz McKAY
b7a03e1a85 Translated using Weblate (Spanish)
Currently translated at 99.0% (102 of 103 strings)
2018-01-20 17:42:35 +00:00
lucailvec
91e08639b0 Translated using Weblate (Italian)
Currently translated at 100.0% (103 of 103 strings)
2018-01-20 17:42:34 +00:00
Hangman
c5874e71bb Translated using Weblate (German)
Currently translated at 100.0% (103 of 103 strings)
2018-01-20 17:42:24 +00:00
lucailvec
1315c52d41 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)
2018-01-20 17:42:22 +00:00
Hangman
e9c56184e0 Translated using Weblate (German)
Currently translated at 76.6% (23 of 30 strings)
2018-01-20 17:42:19 +00:00
lucailvec
99fbbb94a8 Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-01-20 17:42:18 +00:00
lucailvec
3b3d019a5d Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/it/
2018-01-20 17:42:11 +00:00
Hangman
ee20237021 Translated using Weblate (German)
Currently translated at 100.0% (44 of 44 strings)
2018-01-20 17:42:08 +00:00
lucailvec
4341501307 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-20 17:42:05 +00:00
Hangman
fc657f1776 Translated using Weblate (German)
Currently translated at 94.5% (243 of 257 strings)
2018-01-20 17:41:45 +00:00
lucailvec
6f55bb8626 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)
2018-01-20 15:20:25 +00:00
lucailvec
62d34178b0 Translated using Weblate (Italian)
Currently translated at 100.0% (68 of 68 strings)
2018-01-20 14:49:03 +00:00
Hangman
9d1152c392 Translated using Weblate (German)
Currently translated at 100.0% (35 of 35 strings)
2018-01-19 18:49:00 +00:00
Hangman
84cbef62f8 Translated using Weblate (German)
Currently translated at 100.0% (17 of 17 strings)
2018-01-19 18:19:38 +00:00
Hangman
8e2f5b6a5e Translated using Weblate (German)
Currently translated at 100.0% (65 of 65 strings)
2018-01-19 17:51:58 +00:00
PICCORO Lenz McKAY
58764ac632 Translated using Weblate (Spanish)
Currently translated at 100.0% (159 of 159 strings)
2018-01-19 12:24:33 +00:00
PICCORO Lenz McKAY
49ed5ac10a Translated using Weblate (Spanish)
Currently translated at 100.0% (65 of 65 strings)
2018-01-19 12:10:04 +00:00
lucailvec
02f873aa64 Translated using Weblate (Italian)
Currently translated at 100.0% (43 of 43 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/it/
2018-01-19 11:49:46 +00:00
lucailvec
1e431582b5 Translated using Weblate (Italian)
Currently translated at 100.0% (30 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/it/
2018-01-19 07:49:53 +00:00
Hangman
0d49fa72e1 Translated using Weblate (German)
Currently translated at 3.3% (1 of 30 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/de/
2018-01-19 07:49:53 +00:00
lucailvec
364886e395 Translated using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)
2018-01-19 07:49:53 +00:00
lucailvec
9d3b215fc2 Translated using Weblate (Italian)
Currently translated at 100.0% (159 of 159 strings)
2018-01-19 07:49:53 +00:00
Hangman
4cd0f13485 Translated using Weblate (German)
Currently translated at 100.0% (159 of 159 strings)
2018-01-19 07:49:53 +00:00
lucailvec
937896d436 Translated using Weblate (Italian)
Currently translated at 100.0% (51 of 51 strings)
2018-01-19 07:49:53 +00:00
lucailvec
d5c3d8056a Translated using Weblate (Italian)
Currently translated at 100.0% (5 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/it/
2018-01-19 07:49:53 +00:00
lucailvec
69fc834118 Translated using Weblate (Italian)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/it/
2018-01-19 07:49:53 +00:00
lucailvec
bac9897bed Translated using Weblate (Italian)
Currently translated at 100.0% (2 of 2 strings)
2018-01-19 07:49:53 +00:00
Zhivko Vanev
424e4f0f87 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (2 of 2 strings)
2018-01-19 07:49:53 +00:00
lucailvec
8e069c4e10 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)
2018-01-19 07:49:53 +00:00
lucailvec
3fff00c1f5 Translated using Weblate (Italian)
Currently translated at 100.0% (20 of 20 strings)
2018-01-19 07:49:53 +00:00
lucailvec
57a6a8b1a5 Translated using Weblate (Italian)
Currently translated at 100.0% (44 of 44 strings)
2018-01-19 07:49:53 +00:00
Hangman
e0f7e48d5a Translated using Weblate (German)
Currently translated at 52.2% (23 of 44 strings)
2018-01-19 07:49:53 +00:00
lucailvec
a7733bd244 Translated using Weblate (Italian)
Currently translated at 100.0% (257 of 257 strings)
2018-01-19 07:49:53 +00:00
lucailvec
eb39c0ba56 Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)
2018-01-19 07:49:53 +00:00
lucailvec
69a2f6b7f3 Translated using Weblate (Italian)
Currently translated at 96.9% (63 of 65 strings)
2018-01-19 07:49:53 +00:00
lucailvec
e241b1eb89 Translated using Weblate (Italian)
Currently translated at 100.0% (35 of 35 strings)
2018-01-19 07:49:53 +00:00
FrancescoUK
f1edb38be8 Remove duplicated language entry (#1773) 2018-01-12 21:51:55 +00:00
FrancescoUK
6d74f80306 Add Italian to the language list, resort languages (#1779) 2018-01-12 21:51:50 +00:00
FrancescoUK
0456465383 Add missing en_GB translations (#1773) 2018-01-12 21:50:09 +00:00
jekkos
f4fedef0fb Another attempt at stabilizing the build (#1759) 2018-01-11 19:15:07 +01:00
Weblate
713f6106c1 Translated using Weblate (Italian)
Currently translated at 3.0% (2 of 65 strings)
2018-01-11 17:34:54 +00:00
Weblate
e44683e6b6 Added translation using Weblate (Italian) 2018-01-11 17:34:54 +00:00
jekkos
9d594854b3 Move to travis edge environment (#1759) 2018-01-11 00:17:38 +01:00
Steve Ireland
7a55c2311e More missing language elements and one bad reference to a config value. 2018-01-11 00:07:22 +01:00
FrancescoUK
ba5fa39151 Fix missing language lines (#1773) 2018-01-06 16:40:43 +00:00
FrancescoUK
75b401b068 Add a couple of missing reports language elements 2018-01-06 16:39:02 +00:00
Steve Ireland
7029858f58 Add a couple of missing reports language elements 2018-01-05 19:46:13 -05:00
FrancescoUK
fad12b9de2 Fix PHP7.2 and MCrypt issue, use OpenSSL instead (#1770) 2018-01-03 22:01:12 +00:00
FrancescoUK
8b96af3d19 Use define instead of hard number (#1647) 2018-01-02 22:24:56 +00:00
FrancescoUK
447571090f Provide a way to enter a line total and have the quantity sold automatically calculated (#1647) 2018-01-02 22:07:20 +00:00
Steve Ireland
a6e08b5d7d Provide a way to enter a line total and have the quantity sold automatically calculated. 2018-01-02 13:42:25 -05:00
FrancescoUK
b3835ec6a3 Fix register regression (#1647) 2018-01-01 14:03:39 +00:00
FrancescoUK
080d3c0e3b Fix GB translation typo (#1647) 2018-01-01 12:20:06 +00:00
FrancescoUK
86019e002d Provide a way to enter a line total and have the quantity sold automatically calculated (#1647) 2018-01-01 12:01:43 +00:00
FrancescoUK
e0329472ef Various fixes 2018-01-01 11:59:25 +00:00
Steve Ireland
62f34663ae Provide a way to enter a line total and have the quantity sold automatically calculated. 2017-12-31 16:22:04 -05:00
FrancescoUK
9bf1d66b74 Set a larger receipt Barcode size 2017-12-31 21:18:42 +00:00
FrancescoUK
74449f6570 Remove unused Barcode quality (#1753) 2017-12-31 15:05:19 +00:00
FrancescoUK
2a306b888f Fix discount detail report (#1736) 2017-12-31 14:29:51 +00:00
FrancescoUK
161fa4f5d3 Fix to Languages and LICENSE 2017-12-31 13:35:26 +00:00
Thin Siphachanh
20791d7c12 Translated using Weblate (Lao)
Currently translated at 100.0% (42 of 42 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/lo/
2017-12-31 00:55:44 +00:00
Weblate
1a8a19d568 Add lao language 2017-12-29 16:01:33 +00:00
FrancescoUK
61062e1278 Add Lao language, small locale refactoring 2017-12-25 21:14:14 +00:00
Thin Siphachanh
1e87fe0a24 Translated using Weblate (Lao)
Currently translated at 100.0% (16 of 16 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
5f3a42592e Translated using Weblate (Lao)
Currently translated at 100.0% (12 of 12 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
8e27a88d3a Translated using Weblate (Lao)
Currently translated at 100.0% (8 of 8 strings)
2017-12-25 10:04:47 +00:00
Chonh Ssp
b98b842ebe Translated using Weblate (Lao)
Currently translated at 100.0% (101 of 101 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
8f634d7cff Translated using Weblate (Lao)
Currently translated at 100.0% (29 of 29 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
7ab2272abc Translated using Weblate (Lao)
Currently translated at 100.0% (18 of 18 strings)

Translation: opensourcepos/expenses_categories
Translate-URL: http://*/projects/ospos/expenses_categories/lo/
2017-12-25 10:04:47 +00:00
Thin Siphachanh
c0e63cbdfd Translated using Weblate (Lao)
Currently translated at 100.0% (42 of 42 strings)

Translation: opensourcepos/expenses
Translate-URL: http://*/projects/ospos/expenses/lo/
2017-12-25 10:04:47 +00:00
Thin Siphachanh
173574ffaf Translated using Weblate (Lao)
Currently translated at 100.0% (2 of 2 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
8f0af3b450 Translated using Weblate (Lao)
Currently translated at 100.0% (34 of 34 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
2d71d3bd02 Translated using Weblate (Lao)
Currently translated at 100.0% (20 of 20 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
7be5816fa1 Translated using Weblate (Lao)
Currently translated at 100.0% (254 of 254 strings)
2017-12-25 10:04:47 +00:00
Thin Siphachanh
56864e6919 Translated using Weblate (Lao)
Currently translated at 100.0% (8 of 8 strings)
2017-12-25 10:04:47 +00:00
Weblate
846d99d037 Translated using Weblate (Lao)
Currently translated at 100.0% (65 of 65 strings)
2017-12-25 10:04:47 +00:00
Weblate
6c563a210e Added translation using Weblate (Lao) 2017-12-25 10:04:47 +00:00
jekkos
b49dbd39ed Run in travis trusty environment 2017-12-25 02:19:26 +01:00
jekkos
25282381f4 Update project badges 2017-12-24 22:44:48 +01:00
FrancescoUK
13b3a3b98f Add Swedish, Khmer and Bulgarian languages support 2017-12-24 19:08:14 +00:00
FrancescoUK
455b462d25 Preparing 3.2.0 release 2017-12-24 19:08:14 +00:00
Weblate
058cf639db Added translation using Weblate (Arabic) 2017-12-24 19:00:38 +00:00
Weblate
2c97c79737 Translated using Weblate (Dutch (Belgium))
Currently translated at 13.7% (4 of 29 strings)

Translation: opensourcepos/taxes
Translate-URL: http://*/projects/ospos/taxes/nl_BE/
2017-12-24 18:33:00 +00:00
Weblate
11135e9e4f Translated using Weblate (Dutch (Belgium))
Currently translated at 20.0% (1 of 5 strings)

Translation: opensourcepos/migrate
Translate-URL: http://*/projects/ospos/migrate/nl_BE/
2017-12-24 18:29:28 +00:00
Weblate
ce321877ff Translated using Weblate (Bulgarian)
Currently translated at 100.0% (20 of 20 strings)
2017-12-24 18:29:27 +00:00
Weblate
630017aea1 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (65 of 65 strings)
2017-12-24 18:15:04 +00:00
Weblate
e7c7af36ac Added translation using Weblate (Bulgarian) 2017-12-24 18:01:55 +00:00
Weblate
9632e8b508 Added translation using Weblate (Bulgarian) 2017-12-24 18:01:18 +00:00
Weblate
546167ac01 Added translation using Weblate (Bulgarian) 2017-12-24 18:00:35 +00:00
Weblate
7bcc3d0f56 Added translation using Weblate (Bulgarian) 2017-12-24 18:00:10 +00:00
Weblate
751e70fc15 Added translation using Weblate (Bulgarian) 2017-12-24 17:59:24 +00:00
Weblate
8b1b5fc1d7 Added translation using Weblate (Bulgarian) 2017-12-24 17:56:10 +00:00
FrancescoUK
f49bf8d4d4 Translated using Weblate (Swedish)
Currently translated at 24.6% (16 of 65 strings)
2017-12-24 17:55:20 +00:00
FrancescoUK
af4e93f483 Translated using Weblate (Swedish)
Currently translated at 16.9% (11 of 65 strings)
2017-12-24 17:52:01 +00:00
FrancescoUK
4e9236b2e3 Translated using Weblate (Swedish)
Currently translated at 13.8% (9 of 65 strings)
2017-12-24 17:51:27 +00:00
FrancescoUK
195a24feb0 Translated using Weblate (Swedish)
Currently translated at 12.3% (8 of 65 strings)
2017-12-24 17:50:46 +00:00
FrancescoUK
6c5ab60f59 Translated using Weblate (Swedish)
Currently translated at 10.7% (7 of 65 strings)
2017-12-24 17:50:22 +00:00
FrancescoUK
0458fcc99c Translated using Weblate (Swedish)
Currently translated at 9.2% (6 of 65 strings)
2017-12-24 17:49:39 +00:00
Weblate
a11e1dc585 Translated using Weblate (Swedish)
Currently translated at 1.2% (2 of 159 strings)
2017-12-23 22:57:48 +00:00
Weblate
072396f951 Translated using Weblate (Swedish)
Currently translated at 0.6% (1 of 159 strings)
2017-12-23 22:56:37 +00:00
Weblate
b3a2ca4db4 Translated using Weblate (Swedish)
Currently translated at 1.5% (1 of 65 strings)
2017-12-23 22:47:58 +00:00
Salvador Hurtado
66278805c6 Translated using Weblate (Spanish)
Currently translated at 86.7% (138 of 159 strings)
2017-12-23 22:22:12 +00:00
Weblate
b91d383acf Translated using Weblate (Dutch (Belgium))
Currently translated at 100.0% (65 of 65 strings)
2017-12-23 22:22:12 +00:00
FrancescoUK
a7d7cbe43c Fix clash of item_id and item_number (Barcode) (#1747) 2017-12-23 21:20:48 +00:00
FrancescoUK
ab2685ef62 Fix circular lib dependency (#1668) upgrade to CI 3.1.6 2017-12-22 20:58:18 +00:00
FrancescoUK
c96c2a69a6 Fix Reports and few other minor things 2017-12-12 20:58:36 +00:00
FrancescoUK
323738210b Merge pull request #1748 from i92guboj/master
Incorrect header in spanish invoice template
2017-12-11 21:48:29 +00:00
i92guboj
d61d3b46f3 fix spanish invoice header 2017-12-11 22:41:11 +01:00
FrancescoUK
a08826e909 Add extra Expense fields (#1235) 2017-12-11 17:28:42 +00:00
FrancescoUK
ad1e63fa3a Fix rounding issue with GST and discounts (#1437) 2017-12-09 17:08:05 +00:00
FrancescoUK
a25a87ec60 Update README.md 2017-12-03 12:15:08 +00:00
FrancescoUK
8c6ff0ceb1 ISSUE_TEMPLATE.md minor amendment 2017-12-03 12:06:22 +00:00
FrancescoUK
0f352abcaa Simplified ISSUE_TEMPLATE.md 2017-12-03 12:03:25 +00:00
FrancescoUK
4910441099 Add table sticky header (#1610) 2017-12-02 18:57:39 +00:00
FrancescoUK
c248086566 Add table export to pdf (#1681) 2017-12-02 18:19:10 +00:00
FrancescoUK
c784a537dd Fix export all records #868 2017-12-02 17:42:57 +00:00
FrancescoUK
00958608e0 Merge pull request #1739 from odiea/master
Add Company search to Customer and Sales
2017-12-02 16:10:08 +00:00
odiea
d3cb3b7f87 Added Company search to Customer and Sales 2017-11-30 16:07:01 -07:00
FrancescoUK
983830ef70 Allow receipt item name to be wrapped. 2017-11-30 19:29:18 +00:00
FrancescoUK
35b6609327 Hide Deleted in Expense form when new expense (#1235) 2017-11-27 21:14:01 +00:00
FrancescoUK
b058e91a99 Fix code indentation issues 2017-11-27 20:52:46 +00:00
FrancescoUK
2cde603949 Add Expenses support (#1235) 2017-11-26 20:45:57 +00:00
FrancescoUK
b5b2d4f62f Restore cancelled sales (#682) 2017-11-25 21:45:59 +00:00
FrancescoUK
473676fb08 Add British English translations 2017-11-25 21:43:13 +00:00
Steve Ireland
64c2996c74 Improve the ability to restore canceled sales. 2017-11-25 21:38:00 +00:00
FrancescoUK
15ad253c3a Merge pull request #1723 from RuleDomain/fix-gift-card-vat-amount
Fix gift card amount due in a VAT tax environment.
2017-11-22 20:09:10 +00:00
Steve Ireland
fcab8e1fc9 Fix gift card amount due in a VAT tax environment. 2017-11-21 23:29:28 -05:00
FrancescoUK
8b92d19732 Merge pull request #1701 from RuleDomain/rename-location-fix
Fix issue with renaming stock locations (#1691)
2017-10-29 07:58:08 +00:00
Steve Ireland
2f221004fb Correct issues with renaming stock locations 2017-10-28 19:57:36 -04:00
FrancescoUK
2b2396521c Update bootstrap-table js version to latest master 2017-10-21 14:07:10 +01:00
FrancescoUK
f26c703626 Merge pull request #1686 from ertanyildiz/master
Updated Giftcards 81 line
2017-10-21 12:15:08 +01:00
FrancescoUK
eef9dc82ca Ensure php-mbstring extension is installed (#1673) 2017-10-21 11:57:20 +01:00
Ertan YILDIZ
5a21ac7c89 Updated Giftcards 81 line
it throws error if there is no gift cart in database. 

*check if row is set. if not, set $max_giftnumber to zero
2017-10-20 15:33:59 +03:00
FrancescoUK
269bb900b5 Export all reports records (#868) 2017-10-14 11:01:58 +01:00
FrancescoUK
37ed01ed3e Move Office Icons to the right (#1624) 2017-10-13 20:17:38 +01:00
FrancescoUK
fe4961be8e Insert Try->Catch clause (#1616) 2017-10-13 19:16:09 +01:00
FrancescoUK
058414e78c Fix invoice pdf name bug (#1163) 2017-10-07 17:01:47 +01:00
FrancescoUK
49dba3035c Various fixes to language files 2017-10-07 13:58:33 +01:00
Chiraq Bookstore
e73c33279a Translated using Weblate (az_AZ (generated))
Currently translated at 42.0% (21 of 50 strings)
2017-10-06 07:05:54 +00:00
Chiraq Bookstore
cc2916b65b Translated using Weblate (az_AZ (generated))
Currently translated at 0.0% (0 of 12 strings)
2017-10-06 07:05:54 +00:00
Chiraq Bookstore
a64c4db252 Translated using Weblate (az_AZ (generated))
Currently translated at 79.1% (53 of 67 strings)
2017-10-06 07:05:54 +00:00
Chiraq Bookstore
57172e17fc Translated using Weblate (az_AZ (generated))
Currently translated at 5.0% (1 of 20 strings)
2017-10-06 07:05:53 +00:00
Chiraq Bookstore
cc61365f4d Translated using Weblate (az_AZ (generated))
Currently translated at 30.2% (13 of 43 strings)
2017-10-06 07:05:53 +00:00
Chiraq Bookstore
59c27f275c Translated using Weblate (Russian)
Currently translated at 98.4% (62 of 63 strings)
2017-10-06 07:05:52 +00:00
Chiraq Bookstore
95453620b7 Translated using Weblate (az_AZ (generated))
Currently translated at 13.2% (33 of 249 strings)
2017-10-04 08:04:10 +00:00
Chiraq Bookstore
daa99997d8 Translated using Weblate (az_AZ (generated))
Currently translated at 65.5% (19 of 29 strings)
2017-10-04 07:29:16 +00:00
Chiraq Bookstore
c3e5291e06 Translated using Weblate (az_AZ (generated))
Currently translated at 50.5% (48 of 95 strings)
2017-10-04 07:29:16 +00:00
Chiraq Bookstore
e2e84eccaa Translated using Weblate (az_AZ (generated))
Currently translated at 62.1% (59 of 95 strings)
2017-09-29 15:18:43 +00:00
Weblate
9d67268693 Translated using Weblate (az_AZ (generated))
Currently translated at 12.0% (30 of 249 strings)
2017-09-29 15:18:42 +00:00
Chiraq Bookstore
f9490ba571 Translated using Weblate (az_AZ (generated))
Currently translated at 0.0% (0 of 8 strings)
2017-09-29 15:18:41 +00:00
Weblate
767c818e8e Translated using Weblate (az_AZ (generated))
Currently translated at 55.5% (35 of 63 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
6c3fcc29f3 Translated using Weblate (Russian)
Currently translated at 50.3% (77 of 153 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
b2c2749c99 Translated using Weblate (Russian)
Currently translated at 73.6% (70 of 95 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
c28061f006 Translated using Weblate (Russian)
Currently translated at 52.0% (26 of 50 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
bfd7e95db4 Translated using Weblate (Russian)
Currently translated at 0.0% (0 of 12 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
358104d6db Translated using Weblate (Russian)
Currently translated at 69.3% (70 of 101 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
0f3b0a0095 Translated using Weblate (Russian)
Currently translated at 50.0% (10 of 20 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
54efec81d3 Translated using Weblate (Russian)
Currently translated at 30.2% (13 of 43 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
0910e86724 Translated using Weblate (Russian)
Currently translated at 13.2% (33 of 249 strings)
2017-09-29 06:45:52 +00:00
Chiraq Bookstore
504d69f9cc Translated using Weblate (Russian)
Currently translated at 63.4% (40 of 63 strings)
2017-09-29 06:45:52 +00:00
FrancescoUK
b1b6301b93 Allow return to Giftcard with 0 balance (#1620) 2017-09-24 20:23:53 +01:00
FrancescoUK
7aca0a57c5 Fix typo in migration classes 2017-09-24 18:52:56 +01:00
FrancescoUK
9ff7f9f212 Rename Sales to be Transactions (#1599) 2017-09-24 18:14:14 +01:00
FrancescoUK
c5a78613ba Newer migration support (#1576) 2017-09-24 16:49:36 +01:00
FrancescoUK
826837e902 Merge pull request #1641 from RuleDomain/fix-invoice-override (#1638)
Add support for providing a manual invoice number
2017-09-24 16:23:58 +01:00
Steve Ireland
1b9fc76757 Add support for providing a manual invoice number 2017-09-24 10:50:08 -04:00
FrancescoUK
e7ea24bcda Merge pull request #1639 from RuleDomain/item-maint-fix
Fix item maintenance issue related to item kit permissions #1629
2017-09-24 07:56:55 +01:00
Steve Ireland
3d38b2322e Fix item maintenance issue where item cannot be saved if employee is not authorized to work with Item Kits. 2017-09-23 20:46:16 -04:00
jekkos
66b1e538ad Install language files using docker (#1458) 2017-09-22 19:37:48 +02:00
FrancescoUK
77714b97c4 Fix duplicate barcode warning icon being on the wrong row 2017-09-20 21:03:35 +01:00
FrancescoUK
f5e2f1ac0a Add duplicate barcode warning en_GB translation 2017-09-20 19:52:53 +01:00
FrancescoUK
fe79af8efd Revert "Added translation using Weblate (Azerbaijani)"
This reverts commit dc5ebd2e85.
2017-09-20 19:50:05 +01:00
objecttothis
1802a16c02 Removing link 2017-09-20 19:38:42 +02:00
objecttothis
86470a68f5 Add warning tooltip for duplicate barcodes 2017-09-20 19:38:42 +02:00
objecttothis
dd538e07cb Add warning about duplicate barcodes 2017-09-20 19:38:42 +02:00
FrancescoUK
0f09ae6657 Merge pull request #1618 from objecttothis/patch-4
Remove unneeded app_config entry (#1614)
2017-09-19 18:35:47 +01:00
objecttothis
b2d21dd8a5 Remove unneeded app_config entry
this entry is automatically created on first save, so is not needed to manually be entered.
2017-09-19 16:53:15 +04:00
FrancescoUK
89a1224ec3 Merge pull request #1617 from objecttothis/patch-3
Correcting Round-up and Round-down bug (#1590)
2017-09-19 13:44:14 +01:00
objecttothis
79d5bc9156 Correcting Round-up and Round-down bug
Former code ignored precision and just rounded up or down to the nearest integer.  This code rounds up or down to the precision in cash decimals.
2017-09-19 16:28:40 +04:00
Chiraq Bookstore
a98bf2d69c Translated using Weblate (Russian)
Currently translated at 93.7% (15 of 16 strings)
2017-09-18 18:53:19 +00:00
Chiraq Bookstore
852aa48463 Translated using Weblate (Russian)
Currently translated at 81.1% (82 of 101 strings)
2017-09-18 18:53:18 +00:00
Chiraq Bookstore
398edf40a1 Translated using Weblate (Russian)
Currently translated at 60.2% (144 of 239 strings)
2017-09-18 18:53:16 +00:00
FrancescoUK
dc5ebd2e85 Added translation using Weblate (Azerbaijani) 2017-09-17 16:41:46 +00:00
FrancescoUK
5c375636a2 Fix 3.1.1 to 3.2.0 SQL upgrade script error 2017-09-17 16:10:40 +01:00
FrancescoUK
39dbd9af52 Small code refactoring 2017-09-17 15:17:48 +01:00
FrancescoUK
5514676dee Merge pull request #1606 from RuleDomain/suspend-anytype
Suspending Work Order lost work order number
2017-09-17 15:17:08 +01:00
Steve Ireland
d63446cdb8 Suspending Work Order lost work order number 2017-09-17 09:24:52 -04:00
FrancescoUK
7789675a55 Merge branch 'RuleDomain-fix-item-kit-cost' (#1580 #1595)
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-09-16 20:46:12 +01:00
Steve Ireland
729283af37 Add support for item kit costing 2017-09-16 11:39:03 -04:00
FrancescoUK
01f4ea3890 Merge pull request #1597 from objecttothis/patch-2
Azerbaijani and Russian Translation
2017-09-15 12:08:42 +01:00
objecttothis
92575844e3 Submit Translation 2017-09-15 13:15:52 +04:00
objecttothis
883d42d529 Submit Translation 2017-09-15 13:15:15 +04:00
objecttothis
efc9b36fdd Submit Translation 2017-09-15 13:10:22 +04:00
objecttothis
775721a059 Submit Translation 2017-09-15 13:09:50 +04:00
objecttothis
15d0e0b1f9 Submit Translation 2017-09-15 13:09:10 +04:00
objecttothis
8b6e83e05c Submit Translation 2017-09-15 13:08:33 +04:00
objecttothis
25e5751d8d Submit Translation 2017-09-15 13:07:58 +04:00
objecttothis
09179be68b Submit Translation 2017-09-15 13:07:27 +04:00
objecttothis
2a3c4bf655 Submit Translation 2017-09-15 13:06:43 +04:00
objecttothis
76e37dedfe Submit Translation 2017-09-15 13:06:12 +04:00
objecttothis
616f65306a Submit Translation 2017-09-15 13:05:31 +04:00
objecttothis
e8f5102f99 Submit Translation 2017-09-15 13:04:53 +04:00
objecttothis
1b93713028 Submit Translation 2017-09-15 13:04:20 +04:00
objecttothis
e772f8d150 Submit Translation 2017-09-15 13:03:50 +04:00
objecttothis
9020a67338 Corrected misspelling 2017-09-15 13:01:58 +04:00
FrancescoUK
6144902cc1 Fix PHP 5.6 incompatibility (#1580) 2017-09-15 09:36:25 +01:00
FrancescoUK
ad913c79fc Merge pull request #1591 from RuleDomain/fix-sale-return
Change invalid SALE_SALE reference to SALE_RETURN.
2017-09-14 07:05:26 +01:00
Steve Ireland
62c5f2ad16 Change invalid SALE_SALE reference to SALE_RETURN. 2017-09-13 20:53:39 -04:00
FrancescoUK
ac32a06689 Merge pull request #1588 from objecttothis/patch-1
Forgot to commit this one
2017-09-13 21:05:11 +01:00
objecttothis
be15e98182 Forgot to commit this one
oops
2017-09-13 18:55:36 +04:00
FrancescoUK
bd18549613 Merge Allow Duplicate Barcodes 2017-09-13 09:16:57 +01:00
objecttothis
18e6a3f78b Support for custom search suggestion format 2017-09-13 09:12:41 +01:00
objecttothis
35b17b120b Modify database creation to allow duplicate barcodes 2017-09-13 09:12:41 +01:00
objecttothis
dbaf7e8481 Modify items to allow duplicate barcodes 2017-09-13 09:12:41 +01:00
objecttothis
372c3ab6bf Disables unique check and fixes return
- If allow duplicate barcodes is enabled then this function automatically returns FALSE allowing item imports and new items to no longer balk.
- Modified the code to return TRUE not only when there is 1 row but when there are one or more rows.  This will fix problems with users that allow duplicate barcodes and who upgraded from older versions before unique barcode was required.
2017-09-13 09:11:32 +01:00
objecttothis
27e9f3ff1a move save to save_barcode 2017-09-13 09:11:32 +01:00
objecttothis
783b7f0205 checkbox to allow duplicate barcodes 2017-09-13 09:11:32 +01:00
objecttothis
02159d5045 move to barcode_config 2017-09-13 09:11:32 +01:00
objecttothis
6b00091332 correct default value 2017-09-13 09:11:32 +01:00
objecttothis
59297f6954 correct default value 2017-09-13 09:10:52 +01:00
objecttothis
8d7e8d6b9b Save value of allow_duplicate_barcodes 2017-09-13 09:10:22 +01:00
objecttothis
c11973f78b misspelling 2017-09-13 09:10:22 +01:00
objecttothis
6f1da83723 misspelling 2017-09-13 09:09:31 +01:00
objecttothis
d1af54ff21 Checkbox to enable/disable allow duplicate barcode 2017-09-13 09:08:43 +01:00
objecttothis
2c8fe60035 Add language line for duplicate barcodes 2017-09-13 09:08:43 +01:00
objecttothis
8e6b8f4da0 Add allow_duplicate_barcode to master table 2017-09-13 09:08:43 +01:00
objecttothis
e687e505f8 Database entry to allow duplicate barcodes 2017-09-13 09:07:59 +01:00
FrancescoUK
ce6e9d6ba4 Merge Search suggestions formatting 2017-09-13 09:02:14 +01:00
objecttothis
67cace93c7 allow custom format in receivings as well 2017-09-13 08:55:54 +01:00
objecttothis
6e82602a47 Allow custom suggestions format
This changes the display of the search suggestions to match the format set by the user in app_config.  It does not change the logic of how the search suggestions are gathered.
2017-09-13 08:55:54 +01:00
objecttothis
178ba9f702 Add option to select custom columns for search suggestions 2017-09-13 08:55:54 +01:00
objecttothis
cac02eaf96 Add language strings 2017-09-13 08:55:54 +01:00
objecttothis
aa346cbb3f Add support for custom search suggestion format 2017-09-13 08:55:54 +01:00
objecttothis
07dd8158e5 Support for custom search suggestion format 2017-09-13 08:55:54 +01:00
FrancescoUK
f01537247b Merge pull request #1582 from RuleDomain/sales-update-fix
Restore code that was mistakenly "cleaned up"
2017-09-12 07:04:20 +01:00
Steve Ireland
8408901e5a Restore code that was mistakenly "cleaned up" 2017-09-11 19:50:13 -04:00
FrancescoUK
4c7abd7728 Update links to replace jekkos with opensourcepos 2017-09-11 22:30:15 +01:00
FrancescoUK
1fd6f5fb70 Individual languages 2017-09-11 21:02:41 +01:00
FrancescoUK
3a8b28fcb6 Fix en-GB translation Canceled -> Cancelled (#1539) 2017-09-10 18:05:44 +01:00
FrancescoUK
3de96b03a0 Fix missing cancel option (#1549) 2017-09-10 18:01:20 +01:00
Steve Ireland
3e91eb33de Final touch on Work Orders 2017-09-10 12:43:00 -04:00
FrancescoUK
4dc05063b8 Merge pull request #1574 from RuleDomain/backoffice-2
Backoffice Permissions Fix (#1543)
2017-09-10 16:56:13 +01:00
Steve Ireland
4f93bc7430 Final touch on Work Orders 2017-09-10 11:12:34 -04:00
FrancescoUK
8816c37236 Merge branch 'RuleDomain-work-order-6'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-09-10 09:08:17 +01:00
FrancescoUK
b93d6a851d Add en_GB translations 2017-09-10 08:45:09 +01:00
Steve Ireland
e85e2e5e55 Final touch on Work Orders 2017-09-09 17:39:23 -04:00
FrancescoUK
c01663f901 Fix stylesheet for Office view (#1543) 2017-09-09 16:21:31 +01:00
FrancescoUK
700e695b4b Consistency in database upgrade script 2017-09-09 15:59:38 +01:00
FrancescoUK
07541bf933 Do not show migration module if no migration is required (#1440) 2017-09-09 15:26:17 +01:00
FrancescoUK
ec76d85350 Merge pull request #1567 from objecttothis/patch-2
Adding Azerbaijani language
2017-09-09 10:34:31 +01:00
FrancescoUK
717bda9f31 Merge branch 'feature/backoffice' (#1543 #1539) 2017-09-09 10:30:12 +01:00
FrancescoUK
4de3cbeab6 More support for Work Orders (#1539) 2017-09-08 22:18:12 +01:00
FrancescoUK
da1d435114 Add CSRF issue with suhosin to FAQ with link to #1492 2017-09-08 22:05:34 +01:00
FrancescoUK
4036caf829 Add en_GB translations to backoffice feature (#1543 #1539) 2017-09-08 22:04:45 +01:00
Steve Ireland
36d549cb9b Add support for Work Orders 2017-09-08 22:04:45 +01:00
Steve Ireland
af84a617de Fix database and table script. 2017-09-08 22:04:45 +01:00
FrancescoUK
e42e01a07f Bump version to 3.2.0 2017-09-08 22:04:45 +01:00
Steve Ireland
de91510beb Add Office Menu 2017-09-08 22:04:45 +01:00
objecttothis
7a3aab92b9 Adding Azerbaijani language for 3.2.0 2017-09-08 22:26:07 +04:00
Steve Ireland
771c1b9d1e Enance reporting to accomodate work orders and canceled transactions. 2017-09-08 08:54:25 -04:00
FrancescoUK
cfa051cee8 Add en_GB translations to backoffice feature (#1543 #1539) 2017-09-07 21:40:18 +01:00
Steve Ireland
981aceda53 Add support for Work Orders 2017-09-07 21:37:50 +01:00
Steve Ireland
23b4dacb9a Fix database and table script. 2017-09-07 21:35:42 +01:00
FrancescoUK
d5c390706b Bump version to 3.2.0 2017-09-07 21:35:42 +01:00
Steve Ireland
893aad3502 Add Office Menu 2017-09-07 21:35:42 +01:00
2649 changed files with 149405 additions and 59066 deletions

View File

@@ -1,7 +0,0 @@
{
"directory": "public/bower_components",
"scripts": {
"postinstall": "grunt default genlicense",
"postuninstall": "grunt default genlicense"
}
}

View File

@@ -1,19 +1,56 @@
node_modules
tmp
application/config/email.php
# Version control
.git
.gitignore
# Sensitive config (user may mount their own)
app/Config/Email.php
# Build artifacts
node_modules/
dist/
tmp/
*.patch
patches/
# IDE and editor files
.idea/
git-svn-diff.py
*.bash
.vscode/
.swp
*.swp
.buildpath
.project
.settings/*
*.swp
.settings/
# Development tools and configs
tests/
phpunit.xml
.php-cs-fixer.*
phpstan.neon
*.bash
git-svn-diff.py
# Documentation
*.md
!LICENSE
branding/
# Build configs (not needed at runtime)
composer.json
composer.lock
package.json
package-lock.json
gulpfile.js
.env.example
.dockerignore
# Temporary and backup files
*.rej
*.orig
*~
*.~
*.log
application/sessions/*
# CI
.github/
.github/workflows/
build/

15
.editorconfig Normal file
View File

@@ -0,0 +1,15 @@
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 120
[*.md]
trim_trailing_whitespace = false

92
.env.example Normal file
View File

@@ -0,0 +1,92 @@
#--------------------------------------------------------------------
# ENVIRONMENT
#--------------------------------------------------------------------
CI_ENVIRONMENT = production
#--------------------------------------------------------------------
# SECURITY: ALLOWED HOSTNAMES
#--------------------------------------------------------------------
# IMPORTANT: Whitelist of allowed hostnames to prevent Host Header
# Injection attacks (GHSA-jchf-7hr6-h4f3).
#
# If not configured, the application will default to 'localhost',
# which may break functionality in production.
#
# Configure this with all domains/subdomains that host your application:
# - Primary domain
# - WWW subdomain (if used)
# - Any alternative domains
#
# Examples:
# Single domain:
# app.allowedHostnames.0 = 'example.com'
#
# Multiple domains:
# app.allowedHostnames.0 = 'example.com'
# app.allowedHostnames.1 = 'www.example.com'
# app.allowedHostnames.2 = 'demo.opensourcepos.org'
#
# For localhost development:
# app.allowedHostnames.0 = 'localhost'
#
# Note: Do not include the protocol (http/https) or port number.
#app.allowedHostnames.0 = ''
#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------
database.default.hostname = 'localhost'
database.default.database = 'ospos'
database.default.username = 'admin'
database.default.password = 'pointofsale'
database.default.DBDriver = 'MySQLi'
database.default.DBPrefix = 'ospos_'
database.development.hostname = 'localhost'
database.development.database = 'ospos'
database.development.username = 'admin'
database.development.password = 'pointofsale'
database.development.DBDriver = 'MySQLi'
database.development.DBPrefix = 'ospos_'
database.tests.hostname = 'localhost'
database.tests.database = 'ospos'
database.tests.username = 'admin'
database.tests.password = 'pointofsale'
database.tests.DBDriver = 'MySQLi'
database.tests.DBPrefix = 'ospos_'
#--------------------------------------------------------------------
# ENCRYPTION
#--------------------------------------------------------------------
encryption.key = ''
#--------------------------------------------------------------------
# LOGGER
# - 0 = Disables logging, Error logging TURNED OFF
# - 1 = Emergency Messages - System is unusable
# - 2 = Alert Messages - Action Must Be Taken Immediately
# - 3 = Critical Messages - Application component unavailable, unexpected exception.
# - 4 = Runtime Errors - Don't need immediate action, but should be monitored.
# - 5 = Warnings - Exceptional occurrences that are not errors.
# - 6 = Notices - Normal but significant events.
# - 7 = Info - Interesting events, like user logging in, etc.
# - 8 = Debug - Detailed debug information.
# - 9 = All Messages
#--------------------------------------------------------------------
logger.threshold = 0
app.db_log_enabled = false
#--------------------------------------------------------------------
# HONEYPOT
#--------------------------------------------------------------------
honeypot.hidden = true
honeypot.label = 'Fill This Field'
honeypot.name = 'honeypot'
honeypot.template = '<label>{label}</label><input type="text" name="{name}" value="">'
honeypot.container = '<div style="display:none">{template}</div>'

6
.gitattributes vendored
View File

@@ -1,5 +1,3 @@
dist/ merge=ours
application/language/**/*.php merge=ours
text=auto
application/config/config.php ident
application/views/partial/footer.php ident
app/Language/**/*.php merge=ours
text=auto eol=lf

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
github: jekkos
custom: ["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8"]

View File

@@ -1,47 +1,29 @@
### IMPORTANT IMPORTANT IMPORTANT
### Background information
1. Chose what you want to report between the sections "New Feature / Enhancement" and "Issue / Question / Bug".
2. Remove just the one of the two sections you don't need
3. Remove this section as it's just a guideline
4. Fill in all the details as requested by the section you chose
__IMPORTANT: If you choose to ignore this issue report template, your issue will be closed as we cannot help without the requested information.__
If you remove the complete template when submitting a Bug your issue will be closed as we cannot help without basic information.
Please make sure you tick (add an x between the square brackets with no spaces) the following check boxes:
### New Feature / Enhancement
*For New Features or Enhancements please clearly write your proposal.
It's important to state whether you expect the community to implement it or you will contribute the work.
Please bear in mind that we will implement new features only on the current code, there is no support for older versions.*
### Issue / Question / Bug
Before submitting an issue please make sure you tick (add an x between the square brackets with no spaces) the following check boxes:
- [] I'm reporting an issue of an unmodified OSPOS installation
- [] I checked open and closed issues database and no similar issue was already discussed (please make sure you searched!)
- [] I read the README, WHATS_NEW and UPGRADE
- [] I read the FAQ (https://github.com/jekkos/opensourcepos#faq) for any known install and/or upgrade gotchas (in specific PHP has php-gd, php-intl, sockets and etc. installed)
- [] I read the wiki
- [] I ran any database upgrade scripts (e.g. database/2.4_to_3.0.sql), and migrating function
- [] I'm aware the latest master could be a development version and therefore not stable
- [] I know the version of OSPOS and git commit hash (check the footer of your OSPOS), the name and version of OS, Web server, PHP and MySQL and will add them to my issue report
- [] Reporting an issue of an unmodified OSPOS installation
- [] Checked [open and closed issues](https://github.com/opensourcepos/opensourcepos/issues?utf8=%E2%9C%93&q=is%3Aissue) and no similar issue was already reported (please make sure you searched!)
- [] Read [README](https://github.com/opensourcepos/opensourcepos/blob/master/README.md), [WHATS_NEW](https://github.com/opensourcepos/opensourcepos/blob/master/WHATS_NEW.txt), [INSTALL.md](https://github.com/opensourcepos/opensourcepos/blob/master/INSTALL.md) and [UPGRADE](https://github.com/opensourcepos/opensourcepos/blob/master/UPGRADE.txt)
- [] Read the [FAQ](https://github.com/opensourcepos/opensourcepos#faq) for any known install and/or upgrade gotchas (in specific PHP extensions installed)
- [] Read the [wiki](https://github.com/opensourcepos/opensourcepos/wiki)
- [] Executed any database upgrade scripts if an upgrade pre 3.0.0 (e.g. database/2.4_to_3.0.sql)
- [] Aware the installation code that [GitHub master](https://github.com/opensourcepos/opensourcepos/tree/master) is for [developers only](https://github.com/opensourcepos/opensourcepos/wiki/Development-setup) and therefore not complete nor stable.
### Installation information
- OSPOS version is:
- OSPOS version is:
- OSPOS git commit hash is:
- PHP version is: (e.g. 5.5, 5.6, 7.0, 7.1)
- MySQL or MariaDB version is: (e.g. MySQL 5.5, MySQL 5.6, MySQL 5.7, MariaDB 10.0, MariaDB 10.1, MariaDB 10.2)
- OS and version is: (e.g. CentOS 6.9, Ubuntu 16.4, Windows 10)
- WebServer is: (e.g. Apache 2.2, Apache 2.4, Nginx 1.12, Nginx 1.13)
- (If applicable) Installation package for the LAMP/LEMP stack is: (e.g. WAMP, XAMPP)
- PHP version is:
- MySQL or MariaDB version is:
- OS and version is:
- WebServer is:
- Selected language is:
- (If applicable) Docker installation:
- (If applicable) Installation package for the LAMP/LEMP stack is:
### Expected behaviour
### Issue / Bug / Question / New Feature
### Actual behaviour
### Steps to reproduce the issue
Please write your issue here. If a bug, please make sure to provide as much information as possible including configuration settings (e.g. Decimals set, Tax mode), language and steps to reproduce the bug.

121
.github/ISSUE_TEMPLATE/bug report.yml vendored Normal file
View File

@@ -0,0 +1,121 @@
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug", "triage"]
projects: ["ospos/3", "ospos/4"]
assignees:
- none
body:
- type: markdown
attributes:
value: |
Bug reports indicate that something is not working as intended.
Please include as much detail as possible and submit a separate bug report for each problem.
Do not include personal identifying information such as email addresses or encryption keys.
- type: textarea
id: bug-description
attributes:
label: Bug Description?
description: Describe the problem that you are seeing
placeholder: "Describe the problem that you are seeing"
validations:
required: true
- type: textarea
id: steps-reproduce
attributes:
label: Steps to Reproduce?
description: List the steps to reproduce this issue
placeholder: "Steps to Reproduce"
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior?
description: Tell us what did you expect to happen?
placeholder: "Expected Behavior"
validations:
required: true
- type: dropdown
id: ospos-version
attributes:
label: OpensourcePOS Version
description: What version of our software are you running?
options:
- development (unreleased)
- opensourcepos 3.4.1
- opensourcepos 3.4.0
- opensourcepos 3.3.9
- opensourcepos 3.3.8
- opensourcepos 3.3.7
default: 0
validations:
required: true
- type: dropdown
id: php-version
attributes:
label: Php version
description: What version of Php?
options:
- Php 7.2
- Php 7.3
- Php 7.4
- Php 8.1
- Php 8.2
- Php 8.3
- Php 8.4
default: 0
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- Other
- type: input
id: server
attributes:
label: Server Operating System and version
description: "Server Operating System "
placeholder: "Server Operating System "
validations:
required: true
- type: input
id: database
attributes:
label: Database Management System and version
description: "Database Management System"
placeholder: "Database Management"
validations:
required: true
- type: input
id: webserver
attributes:
label: Web Server and version
description: "Web Server and version "
placeholder: "Web Server and version "
validations:
required: true
- type: textarea
id: servers
attributes:
label: System Information Report (optional)
description: Copy and paste from OSPOS > Configuration > Setup & Conf > Setup & Conf?
placeholder: System Information Report
value: "System Information Report"
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Unmodified copy of OpensourcePOS
description: By submitting this issue you agree this copy has not been modified
options:
- label: I agree this copy has not been modified
required: true

View File

@@ -0,0 +1,63 @@
name: ✨ Feature Request
description: Suggest an idea for this project
title: "[Feature]: "
labels: ["enhancement"]
assignees: ["none"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request! 🤗
Please make sure this feature request hasn't been already submitted by someone by looking through other open/closed issues. 😃
- type: dropdown
attributes:
multiple: false
label: Type of Feature
description: Select the type of feature request.
options:
- "✨ New Feature"
- "📝 Documentation"
- "🎨 Style and UI"
- "🔨 Code Refactor"
- "⚡ Performance Improvements"
- "✅ New Test"
validations:
required: true
- type: dropdown
id: ospos-version
attributes:
label: OpensourcePOS Version
description: What version of our software are you running?
options:
- opensourcepos 3.3.9
- opensourcepos 3.3.8
- opensourcepos 3.3.7
default: 0
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: Give us a brief description of the feature or enhancement you would like
validations:
required: true
- type: textarea
id: additional-information
attributes:
label: Additional Information
description: Give us some additional information on the feature request like proposed solutions, links, screenshots, etc.
- type: checkboxes
id: terms
attributes:
label: Verify you searched open requests in OpensourcePOS
description: By submitting this request you agree that you have searched Open Requests in the Tracker
options:
- label: I agree I have searched Open Requests
required: true

18
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- enhancement
- needsowner
- bug
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

61
.github/workflows/README.md vendored Normal file
View File

@@ -0,0 +1,61 @@
# GitHub Actions
This document describes the CI/CD workflows for OSPOS.
## Build and Release Workflow (`.github/workflows/build-release.yml`)
### Build Process
- Setup PHP 8.2 with required extensions
- Setup Node.js 20
- Install composer dependencies
- Install npm dependencies
- Build frontend assets with Gulp
### Docker Images
- Build and push `opensourcepos` Docker image for multiple architectures (linux/amd64, linux/arm64)
- On master: tagged with version and `latest`
- On other branches: tagged with version only
- Pushed to Docker Hub
### Releases
- Create distribution archives (tar.gz, zip)
- Create/update GitHub "unstable" release on master branch only
## Required Secrets
To use this workflow, you need to add the following secrets to your repository:
1. **DOCKER_USERNAME** - Docker Hub username for pushing images
2. **DOCKER_PASSWORD** - Docker Hub password/token for pushing images
### How to add secrets
1. Go to your repository on GitHub
2. Click **Settings****Secrets and variables****Actions**
3. Click **New repository secret**
4. Add `DOCKER_USERNAME` and `DOCKER_PASSWORD`
The `GITHUB_TOKEN` is automatically provided by GitHub Actions.
## Workflow Triggers
- **Push to master** - Runs build, Docker push (with `latest` tag), and release
- **Push to other branches** - Runs build and Docker push (version tag only)
- **Push tags** - Runs build and Docker push (version tag only)
- **Pull requests** - Runs build only (PHPUnit tests run in parallel via phpunit.yml)
## Existing Workflows
This repository also has these workflows:
- `.github/workflows/main.yml` - PHP linting with PHP-CS-Fixer
- `.github/workflows/phpunit.yml` - PHPUnit tests (runs on all PHP versions 8.1-8.4)
- `.github/workflows/php-linter.yml` - PHP linting
## Testing
PHPUnit tests are run separately via `.github/workflows/phpunit.yml` on every push and pull request, testing against PHP 8.1, 8.2, 8.3, and 8.4.
To test the build workflow:
1. Add the required secrets
2. Push to master or create a PR
3. Monitor the Actions tab in GitHub

218
.github/workflows/build-release.yml vendored Normal file
View File

@@ -0,0 +1,218 @@
name: Build and Release
on:
push:
branches:
- master
tags:
- '*'
pull_request:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: Build
runs-on: ubuntu-22.04
outputs:
version: ${{ steps.version.outputs.version }}
version-tag: ${{ steps.version.outputs.version-tag }}
short-sha: ${{ steps.version.outputs.short-sha }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: intl, mbstring, mysqli, gd, bcmath, zip
coverage: none
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Get composer cache directory
run: echo "COMPOSER_CACHE_FILES_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
- name: Cache composer dependencies
uses: actions/cache@v4
with:
path: ${{ env.COMPOSER_CACHE_FILES_DIR }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Get npm cache directory
run: echo "NPM_CACHE_DIR=$(npm config get cache)" >> $GITHUB_ENV
- name: Cache npm dependencies
uses: actions/cache@v4
with:
path: ${{ env.NPM_CACHE_DIR }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install composer dependencies
run: composer install --no-dev --optimize-autoloader
- name: Install npm dependencies
run: npm ci
- name: Install gulp globally
run: npm install -g gulp-cli
- name: Get version info
id: version
run: |
VERSION=$(grep "application_version" app/Config/App.php | sed "s/.*= '\(.*\)';/\1/g")
BRANCH=$(echo "${GITHUB_REF#refs/heads/}" | sed 's/feature\///')
TAG=$(echo "${GITHUB_TAG:-$BRANCH}" | tr '/' '-')
SHORT_SHA=$(git rev-parse --short=6 HEAD)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "version-tag=$VERSION-$BRANCH-$SHORT_SHA" >> $GITHUB_OUTPUT
echo "short-sha=$SHORT_SHA" >> $GITHUB_OUTPUT
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
env:
GITHUB_TAG: ${{ github.ref_name }}
- name: Create .env file
run: |
cp .env.example .env
sed -i 's/production/development/g' .env
- name: Update commit hash
run: |
SHORT_SHA="${{ steps.version.outputs.short-sha }}"
sed -i "s/commit_sha1 = 'dev'/commit_sha1 = '$SHORT_SHA'/g" app/Config/OSPOS.php
- name: Build frontend assets
run: npm run build
- name: Create distribution archives
run: |
set -euo pipefail
gulp compress
VERSION="${{ steps.version.outputs.version }}"
SHORT_SHA="${{ steps.version.outputs.short-sha }}"
mv dist/opensourcepos.tar "dist/opensourcepos.$VERSION.$SHORT_SHA.tar"
mv dist/opensourcepos.zip "dist/opensourcepos.$VERSION.$SHORT_SHA.zip"
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: dist-${{ steps.version.outputs.short-sha }}
path: dist/
retention-days: 7
- name: Upload build context for Docker
uses: actions/upload-artifact@v4
with:
name: build-context-${{ steps.version.outputs.short-sha }}
path: |
.
!.git
!node_modules
retention-days: 1
docker:
name: Build Docker Image
runs-on: ubuntu-22.04
needs: build
if: github.event_name == 'push'
steps:
- name: Download build context
uses: actions/download-artifact@v4
with:
name: build-context-${{ needs.build.outputs.short-sha }}
path: .
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Determine Docker tags
id: tags
run: |
BRANCH=$(echo "${GITHUB_REF#refs/heads/}" | tr '/' '-')
if [ "$BRANCH" = "master" ]; then
echo "tags=${{ secrets.DOCKER_USERNAME }}/opensourcepos:${{ needs.build.outputs.version-tag }},${{ secrets.DOCKER_USERNAME }}/opensourcepos:latest" >> $GITHUB_OUTPUT
else
echo "tags=${{ secrets.DOCKER_USERNAME }}/opensourcepos:${{ needs.build.outputs.version-tag }}" >> $GITHUB_OUTPUT
fi
env:
GITHUB_REF: ${{ github.ref }}
- name: Build and push Docker images
uses: docker/build-push-action@v5
with:
context: .
target: ospos
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.tags.outputs.tags }}
release:
name: Create Release
needs: build
runs-on: ubuntu-22.04
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: dist-${{ needs.build.outputs.short-sha }}
path: dist/
- name: Get version info
id: version
run: |
VERSION="${{ needs.build.outputs.version }}"
SHORT_SHA=$(git rev-parse --short=6 HEAD)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "short-sha=$SHORT_SHA" >> $GITHUB_OUTPUT
- name: Create/Update unstable release
uses: softprops/action-gh-release@v2
with:
tag_name: unstable
name: Unstable OpenSourcePOS
body: |
This is a build of the latest master which might contain bugs. Use at your own risk.
Check the releases section for the latest official release.
files: |
dist/opensourcepos.${{ steps.version.outputs.version }}.${{ steps.version.outputs.short-sha }}.zip
prerelease: true
draft: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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

63
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,63 @@
name: Coding Standards
on:
push:
paths:
- '**.php'
- 'spark'
- '.github/workflows/test-coding-standards.yml'
pull_request:
paths:
- '**.php'
- 'spark'
- '.github/workflows/test-coding-standards.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
lint:
name: PHP ${{ matrix.php-version }} Lint with PHP CS Fixer
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
php-version:
- '8.1'
- '8.2'
- '8.3'
- '8.4'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: tokenizer
coverage: none
- name: Get composer cache directory
run: echo "COMPOSER_CACHE_FILES_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ env.COMPOSER_CACHE_FILES_DIR }}
key: ${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.php-version }}-
${{ runner.os }}-
- name: Install dependencies
run: composer update --ansi --no-interaction
- name: Run lint on `app/`, `public/`
run: vendor/bin/php-cs-fixer fix --verbose --ansi --dry-run --config=.php-cs-fixer.no-header.php --using-cache=no --diff

33
.github/workflows/opencode.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: opencode
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
opencode:
if: |
contains(github.event.comment.body, ' /oc') ||
startsWith(github.event.comment.body, '/oc') ||
contains(github.event.comment.body, ' /opencode') ||
startsWith(github.event.comment.body, '/opencode')
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: read
issues: read
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Run opencode
uses: anomalyco/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-3-haiku-20240307

34
.github/workflows/php-linter.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
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/*\""
- name: PHP Lint 8.4
uses: dbfx/github-phplint/8.4@master
with:
folder-to-exclude: "! -path \"./vendor/*\" ! -path \"./folder/excluded/*\""

122
.github/workflows/phpunit.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
name: PHPUnit Tests
on:
push:
paths:
- '**.php'
- 'spark'
- 'tests/**'
- '.github/workflows/phpunit.yml'
- 'gulpfile.js'
- 'app/Database/**'
pull_request:
paths:
- '**.php'
- 'spark'
- 'tests/**'
- '.github/workflows/phpunit.yml'
- 'gulpfile.js'
- 'app/Database/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
name: PHP ${{ matrix.php-version }} Tests
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
php-version:
- '8.1'
- '8.2'
- '8.3'
- '8.4'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: intl, mbstring, mysqli
coverage: none
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Get npm cache directory
run: echo "NPM_CACHE_DIR=$(npm config get cache)" >> $GITHUB_ENV
- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: ${{ env.NPM_CACHE_DIR }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install npm dependencies
run: npm install
- name: Start MariaDB
run: |
docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=ospos \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=pointofsale \
-p 3306:3306 \
mariadb:10.5
# Wait for MariaDB to be ready
until docker exec mysql mysqladmin ping -h 127.0.0.1 -u root -proot --silent; do
echo "Waiting for MariaDB..."
sleep 2
done
echo "MariaDB is ready!"
- name: Get composer cache directory
run: echo "COMPOSER_CACHE_FILES_DIR=$(composer config cache-files-dir)" >> $GITHUB_ENV
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ env.COMPOSER_CACHE_FILES_DIR }}
key: ${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.php-version }}-
${{ runner.os }}-
- name: Install dependencies
run: composer update --ansi --no-interaction
- name: Create .env file
run: cp .env.example .env
- name: Run PHPUnit tests
env:
CI_ENVIRONMENT: testing
MYSQL_HOST_NAME: 127.0.0.1
run: composer test -- --log-junit test-results/junit.xml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results-php-${{ matrix.php-version }}
path: test-results/
retention-days: 30
- name: Stop MariaDB
if: always()
run: docker stop mysql && docker rm mysql

View File

@@ -0,0 +1,72 @@
name: Update Issue Templates
on:
release:
types: [published]
workflow_dispatch:
schedule:
- cron: '0 0 * * 0'
jobs:
update-templates:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Fetch releases and update templates
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch releases from GitHub API
RELEASES=$(gh api repos/${{ github.repository }}/releases --jq '.[].tag_name' | head -n 10)
# Create temporary file with options
OPTIONS_FILE=$(mktemp)
echo " - development (unreleased)" >> "$OPTIONS_FILE"
while IFS= read -r release; do
echo " - opensourcepos $release" >> "$OPTIONS_FILE"
done <<< "$RELEASES"
update_template() {
local template="$1"
local template_path=".github/ISSUE_TEMPLATE/$template"
# Find the line numbers for the OpensourcePOS Version dropdown
start_line=$(grep -n "label: OpensourcePOS Version" "$template_path" | cut -d: -f1)
if [ -z "$start_line" ]; then
echo "Could not find OpensourcePOS Version in $template"
return 1
fi
# Find the options section and default line
options_start=$((start_line + 3))
default_line=$(grep -n "default:" "$template_path" | awk -F: -v opts="$options_start" '$1 > opts {print $1; exit}')
# Create new template file
head -n $((options_start - 1)) "$template_path" > "${template_path}.new"
cat "$OPTIONS_FILE" >> "${template_path}.new"
tail -n +$default_line "$template_path" >> "${template_path}.new"
mv "${template_path}.new" "$template_path"
echo "Updated $template"
}
update_template "bug report.yml"
update_template "feature_request.yml"
- name: Commit and push changes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .github/ISSUE_TEMPLATE/*.yml
if git diff --staged --quiet; then
echo "No changes to commit"
else
git commit -m "Update issue templates with latest releases [skip ci]"
git push
fi

96
.gitignore vendored
View File

@@ -1,29 +1,89 @@
# Dependency directories
node_modules
tmp
application/config/email.php
application/sessions/*
application/logs/*
application/uploads/*
public/license/.licenses
public/license/bower.LICENSES
public/dist
dist/
docs/
public/bower_components
vendor
public/resources
public/images/menubar/*
!public/images/menubar/.gitkeep
public/license/*
!public/license/.gitkeep
app/Config/email.php
npm-debug.log*
.vscode
# Docker
!docker/.env
docker/data/database/db/*
docker/data/certbot/conf/*
docker/data/ospos/app/*
# Editors
## SublimeText
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
*.sublime-workspace
## VisualStudioCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
## Vim
*.sw[a-p]
## WebStorm/IntelliJ
/.idea
modules.xml
*.ipr
*.iml
# System files
*.DS_Store
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
Desktop.ini
$RECYCLE.BIN/
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Other
generate_languages.php
dist
docs
/patches
translations
/.buildpath
/.project
/.settings/*
*.patch
patches/
.idea/
git-svn-diff.py
*.bash
.swp
.buildpath
.project
.settings/*
vendor/
system/
*.swp
*.rej
*.orig
*~
*.~
*.log
.env
auth.json
*.png
*.jpg
*.jpeg
*.webp
*copy*
/writable/logs/*.log
/writable/debugbar/*.json
/app/Database/database.sql
/writable/cache/settings
/.env.bak

View File

@@ -1,18 +1,28 @@
# redirect to public page
<IfModule mod_rewrite.c>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^public$
RewriteRule ^(.*)$ %{REQUEST_URI}public/ [R=301,L]
</IfModule>
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge [NC]
RewriteRule "^(.*)$" "/public/" [R=301,L]
# If you installed CodeIgniter in a subfolder, you will need to
# change the following line to match the subfolder you need. Uncomment
# the line below and comment the line above.
#RewriteRule "^(.*)$" "/[SUBDIRECTORY]/public/" [R=301,L]
</IfModule>
# disable directory browsing
# For security reasons, Option all cannot be overridden.
Options +ExecCGI +Includes +IncludesNOEXEC +SymLinksIfOwnerMatch -Indexes
Options +SymLinksIfOwnerMatch -Indexes
# prevent folder listing
IndexIgnore *
# Apache 2.4
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
</Ifmodule>
<IfModule authz_core_module>
# secure htaccess file
<Files .htaccess>
@@ -30,38 +40,7 @@ IndexIgnore *
</Files>
# prevent access to csv, txt and md files
<FilesMatch "\.(csv|txt|md|yml|json|lock)$">
<FilesMatch "\.(csv|txt|md|yml|json|lock|env)$">
Require all denied
</FilesMatch>
</IfModule>
# Apache 2.2
<IfModule !authz_core_module>
# secure htaccess file
<Files .htaccess>
Order allow,deny
Deny from all
Satisfy all
</Files>
# prevent access to PHP error log
<Files error_log>
Order allow,deny
Deny from all
Satisfy all
</Files>
# prevent access to LICENSE
<Files LICENSE>
Order allow,deny
Deny from all
Satisfy all
</Files>
# prevent access to csv, txt and md files
<FilesMatch "\.(csv|txt|md|yml|json|lock)$">
Order allow,deny
Deny from all
Satisfy all
</FilesMatch>
</IfModule>

View File

@@ -0,0 +1,45 @@
<?php
declare(strict_types=1);
/**
* This file is part of CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
use CodeIgniter\CodingStandard\CodeIgniter4;
use Nexus\CsConfig\Factory;
use Nexus\CsConfig\Fixer\Comment\NoCodeSeparatorCommentFixer;
use Nexus\CsConfig\FixerGenerator;
use PhpCsFixer\Finder;
$finder = Finder::create()
->files()
->in([
__DIR__ . '/app',
__DIR__ . '/public',
])
->exclude(['Views/errors/html'])
->append([
__DIR__ . '/admin/starter/builds',
]);
$overrides = [
// For updating to coding-standard
'modernize_strpos' => true,
];
$options = [
'cacheFile' => 'build/.php-cs-fixer.no-header.cache',
'finder' => $finder,
'customFixers' => FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'),
'customRules' => [
NoCodeSeparatorCommentFixer::name() => true,
],
];
return Factory::create(new CodeIgniter4(), $overrides, $options)->forProjects();

View File

@@ -1,32 +0,0 @@
sudo: true
branches:
except:
- weblate
services:
- docker
before_install:
- curl -L https://github.com/docker/compose/releases/download/1.7.1/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
- date=`date +%Y%m%d%H%M%S` && branch=${TRAVIS_BRANCH} && rev=`git rev-parse --short=6 HEAD` && sed -i "s/\$1/\$1.$date.$branch.$rev/g" deployment.json
script:
- docker run --rm -v $(pwd):/app composer/composer install
- git clone https://github.com/bcit-ci/codeigniter3-translations dist/ci-translations && sudo cp -r dist/ci-translations/language/* vendor/codeigniter/framework/system/language
- docker run --rm -it -v $(pwd):/app -w /app digitallyseamless/nodejs-bower-grunt sh -c "npm install && bower install && grunt package"
- docker-compose build
env:
- TAG=$(echo ${TRAVIS_BRANCH} | sed s/feature\\///)
after_success:
'[ -n ${DOCKER_USERNAME} ] && docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
&& docker tag opensourcepos_php "jekkos/opensourcepos:$TAG" && docker tag opensourcepos_sqlscript
jekkos/opensourcepos:sqlscript && docker push "jekkos/opensourcepos:$TAG" && docker
push jekkos/opensourcepos:sqlscript'
deploy:
provider: bintray
file: deployment.json
user: jekkos
on:
all_branches: true
key:
secure: NGzLiwBZ4A6zO9AqUsVeht29A7UZejO/LKEJntQMdzYaBXD6Ao3zXpS3bPN3UwU/YTNdcm3I7DemAL2ypAkCxcdzfp842eeTlFMDuzUiD5MxrQyWeZnbFxyeN4bJgXOnH/93eXxoIg0qT7ORVzwHrrA6vOqfxB1Nq/DAV2MpK/0=

40
AGENTS.md Normal file
View File

@@ -0,0 +1,40 @@
# Agent Instructions
This document provides guidance for AI agents working on the Open Source Point of Sale (OSPOS) codebase.
## Code Style
- Follow PHP CodeIgniter 4 coding standards
- Run PHP-CS-Fixer before committing: `vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.no-header.php`
- Write PHP 8.1+ compatible code with proper type declarations
- Use PSR-12 naming conventions: `camelCase` for variables and functions, `PascalCase` for classes, `UPPER_CASE` for constants
## Development
- Create a new git worktree for each issue, based on the latest state of `origin/master`
- Commit fixes to the worktree and push to the remote
## Testing
- Run PHPUnit tests: `composer test`
- Tests must pass before submitting changes
## Build
- Install dependencies: `composer install && npm install`
- Build assets: `npm run build` or `gulp`
## Conventions
- Controllers go in `app/Controllers/`
- Models go in `app/Models/`
- Views go in `app/Views/`
- Database migrations in `app/Database/Migrations/`
- Use CodeIgniter 4 framework patterns and helpers
- Sanitize user input; escape output using `esc()` helper
## Security
- Never commit secrets, credentials, or `.env` files
- Use parameterized queries to prevent SQL injection
- Validate and sanitize all user input

67
BUILD.md Normal file
View File

@@ -0,0 +1,67 @@
# Building OSPOS
## For Developers and Hobbyists Only
If you are a developer and need to add unique features to OSPOS, you can download the raw code from the github repository and make changes. If it's a really cool change that might benefit others, we ask that you consider contributing it to the project.
After you've made your changes, you will need to do a "BUILD" on it to add all necessary components that OSPOS needs to be a fully functional application.
This documents the "How to Build" process.
The goal here is to set up and configure the build process so that the actual build is as simple as possible.
The build process uses the build tools "npm" and "gulp" to piece everything together.
## Prerequisites
- Install the latest version of NPM (tested using version 9.4.2)
- Install the latest version of Composer (tested using composer 2.5.1)
## The Workflow
1. Download the code from the master branch found at https://github.com/opensourcepos/opensourcepos/tree/master.
2. Unzip it and copy the contents into the working folder.
3. Start a terminal session from the root of your working folder. For example, I normally open up the working folder in PHPStorm and run the commands from the Terminal provided by the IDE.
4. Enter the following three commands in sequence:
- `composer install`
- `npm install`
- `npm run build`
That's all there is to it.
Note: If you receive messages similar to 'codeigniter4/framework v4.3.1 requires ext-intl', this is an indicator that you do not have intl enabled in php.ini
After the build tasks are complete, if you have the database set up and a preconfigured copy of .env, just drop the .env file into the root of the working folder. You should be ready to go.
If you do not have an existing (and upgraded) database, then you will need to continue from this point forward with the standard installation instructions, but at this point you have a runnable version of OSPOS.
### Windows Platform
Using an `.env` file is a convenient approach to store OSPOS configuration.
I've added the following Powershell scripts to make my life a bit easier, which I share with you.
* `build.ps1` - Which runs the build but also restores the .env from a backup I make of it in a specifically placed folder. I place a copy of the configured .env file in a folder that has the following path from the working folder: `../env/<working-folder-name>/.env`
### Containerized setup
Development using docker has the advantage that all the application's dependencies are contained within the docker environment. During development we want to have a live version of the code in the container when we edit it. This is accomplished by mounting the application folder within the /app of the docker container.
The file permissions for the repository in the container should be the same as on the host. That's why we have to startthe PHP process in docker with the host current uid.
```
export USERID=$(id -u)
export GROUPID=$(id -g)
docker-compose -f docker-compose.dev.yml up
```
## The Result
The build creates a developer version of a runnable instance of OSPOS. It contains a ton of developer stuff that **should not be deployed to a production environment**.
Again, the results of this build is NOT something that should be used for production.
However, the zip and tar files, found in the root `dist` folder, are created as part of the build process and can be used for deploying a ***trial production*** instance of OSPOS.
Only official releases should be used for real production. There is significant risk of failure should you chose to deploy a development branch or even a master branch that the development team hasn't signed off on.
Good luck with your build. Please report any issues you encounter.

401
CHANGELOG.md Normal file
View File

@@ -0,0 +1,401 @@
[unreleased]: https://github.com/opensourcepos/opensourcepos/compare/3.4.0...HEAD
[3.4.2]: https://github.com/opensourcepos/opensourcepos/compare/3.4.1...3.4.2
[3.4.1]: https://github.com/opensourcepos/opensourcepos/compare/3.4.0...3.4.1
[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
[3.3.6]: https://github.com/opensourcepos/opensourcepos/compare/3.3.5...3.3.6
[3.3.5]: https://github.com/opensourcepos/opensourcepos/compare/3.3.4...3.3.5
[3.3.4]: https://github.com/opensourcepos/opensourcepos/compare/3.3.3...3.3.4
[3.3.3]: https://github.com/opensourcepos/opensourcepos/compare/3.3.2...3.3.3
[3.3.2]: https://github.com/opensourcepos/opensourcepos/compare/3.3.1...3.3.2
[3.3.1]: https://github.com/opensourcepos/opensourcepos/compare/3.3.0...3.3.1
[3.3.0]: https://github.com/opensourcepos/opensourcepos/compare/3.2.3...3.3.0
[3.2.3]: https://github.com/opensourcepos/opensourcepos/compare/3.2.2...3.2.3
[3.2.2]: https://github.com/opensourcepos/opensourcepos/compare/3.2.1...3.2.2
[3.2.1]: https://github.com/opensourcepos/opensourcepos/compare/3.2.0...3.2.1
[3.2.0]: https://github.com/opensourcepos/opensourcepos/compare/3.1.1...3.2.0
[3.1.1]: https://github.com/opensourcepos/opensourcepos/compare/3.1.0...3.1.1
[3.1.0]: https://github.com/opensourcepos/opensourcepos/compare/3.0.2...3.1.0
[3.0.2]: https://github.com/opensourcepos/opensourcepos/compare/3.0.1...3.0.2
[3.0.1]: https://github.com/opensourcepos/opensourcepos/compare/3.0.0...3.0.1
[3.0.0]: https://github.com/opensourcepos/opensourcepos/compare/2.4.0...3.0.0
[2.4.0]: https://github.com/opensourcepos/opensourcepos/compare/2.3.4...2.4.0
[2.3.4]: https://github.com/opensourcepos/opensourcepos/compare/2.3.3...2.3.4
[2.3.3]: https://github.com/opensourcepos/opensourcepos/compare/2.3.2...2.3.3
[2.3.2]: https://github.com/opensourcepos/opensourcepos/compare/2.3.1...2.3.2
[2.3.1]: https://github.com/opensourcepos/opensourcepos/compare/2.3...2.3.1
[2.3.0]: https://github.com/opensourcepos/opensourcepos/compare/2.2.2...2.3
# Changelog
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
## [3.3.9] - 2023-11-06
- Translation updates (Arabic, Central Khmer, Croatian, Czech, Danish, English, French, Indonesian, Lao, Russian, Spanish, Thai)
- Fix logout race condition issue ([#3578](https://github.com/opensourcepos/opensourcepos/issues/3578))
- Fix docker compose file ([#3754](https://github.com/opensourcepos/opensourcepos/issues/3754))
- Minor report fixes
## [3.3.8] - 2022-08-03
- Translation updates (Azerbaijani, Flemish, French, Spanish, Thai, Vietnamese)
- Fix logo removal issue (CSRF regression) ([#3533](https://github.com/opensourcepos/opensourcepos/issues/3533))
- Substract refunds from total rewards as payment method ([#3536](https://github.com/opensourcepos/opensourcepos/issues/3536))
## [3.3.7] - 2022-03-29
- Translation updates (Chinese, French, Indonesian, Italian, Polish, Swedish, Thai)
- XSS fixes in bootstrap datatables
- Invoice numbering fixes
- Docker compose database scripts are now mounted from a container volume
## [3.3.6] - 2021-10-31
- Translation updates (Bosnian, Dutch, Indonesian, Polish, Russian, Spanish)
- Make footer revision clickable (ref to github)
- Minor reporting adjustments
- Introduced new global keyboard shortcuts (see overview below)
### Fixes
- reCaptcha issue fix
- Username verification bugfix
- Clickjacking security mitigations
- Fixes for the payment summary after refresh
- Hardening against XSS by introducing a CSP header in the HTTP headers
- Several CSRF and XSS fixes
- Type juggling password fix for old logins
## [3.3.5] - 2021-08-26 [YANKED]
- Translation updates (Arabic, Azerbaijani, Bulgarian, Chinese, Dutch, French, Indonesian, Polish, Portuguese, Romanian, Spanish, Swedish, Tamil, Thai, Turkish, Ukrainian, Vietnamese)
- New responsive login page based on Bootstrap `5`
- Translation fallback to English when a string is untranslated for the selected language
- Database and performance optimizations
- Grunt/CI updates
- CSV item import improvements
### Fixes
- Username verification fix on employee insert/update
- Minor report fixes
- Attribute encoding fix
- Decimal render fix
- Fixes for Docker to make it run on Windows
- Blind SQL injection fix
## [3.3.4] - 2021-04-20
- Translation updates (Hungarian, Indonesian, Bosnian, Ukrainian, Vietnamese, Spanish)
- Prevent data wipeout when calling GET directly on the save endpoint
- Cleanup `.htaccess`
- Docker compose usability improvements
- Cookie secure flag fix for Chrome (you can enable CSRF protection again now)
- Use LONGBLOB for session storage. This should fix issues preventing a user from adding a large number of items to register
- Cash rounding bugfixes
- Fix daily overview cash sale totals
- Show sale count in the transaction report
- Button disable to prevent double submission
- Add barcode field to item kits
- Fix discount register parsing in some specific locales
## [3.3.3] - 2021-01-01
- PHP `7.4` support
- Set PHP `7.2` to be the minimum level due to older version deprecations
- Added email CC and BCC (see `config/email.php`)
- Cash rounding to nearest 5 cents
- Updated composer packages and JS plugins
- Improved security (CSRF protection)
- Various small improvements and bug fixes
## [3.3.2] - 2020-09-03
- Fixed `only_full_group_by` issue with MySQL/MariaDB
- Fixed POS transaction return failure if items were deleted
- Various bug fixes
## [3.3.1] - 2019-12-14
- Various bug fixes (please disable `only_full_group_by` option from MySQL/MariaDB to avoid issues)
## [3.3.0] - 2019-09-29
- New logo
- Upgrade CodeIgniter to version `3.1.11`
- PHP `7.3` support
- Attributes feature (allows extensibility of items replacing old custom fields)
- India GST tax support + various tax support improvements
- Cash up feature
- Temporary items feature
- Fixed sales discount
- Supplier category feature
- Improved items import and CSV file generation (to contain additional attributes)
- Improved Docker installation with NGINX reverse proxy using Let's Encrypt TLS certificate
- Database performance improvements
- Added and udated translations
- Fixed various reports issues
- Fixed rounding issues
- Fixed CSRF issues
- Fixed database upgrade script issues
- Various bug fixes
## [3.2.3] - 2018-06-13
- Upgrade CodeIgniter to version `3.1.9`
- Further revert of CSRF change causing regression
## [3.2.2] - 2018-06-06
- Revert CSRF change causing regression
## [3.2.1] - 2018-06-04
- Support for GDPR
- CSRF simplifications
- Translation upgrades
- Various bug fixes
## [3.2.0] - 2018-04-14
- Upgrade CodeIgniter to version `3.1.8`
- PHP `7.2` support (use OpenSSL and not MCrypt)
- Automatic database upgrades from `3.0.0` at first login (no more SQL scripts)
- Home and (back)office menu switch (top menu can be organized in two views)
- Expenses feature
- Quote and work order features
- Improved invoice support
- Sale suspend, soft delete, complete as the state not as different tables or hard delete
- Restore deleted sales
- Improved item kits
- Export tables all records and export to PDF
- Table sticky header (headers visible during scrolling)
- Allow duplicate barcodes (config option)
- Search suggestion formatting (config option)
- Define print and email checkboxes behavior (config option)
- Edit customer from sales register
- Added and updated translations
- Various jQuery plugins upgrade
- Fixed permission issues (e.g. password change)
- Fixed various reports issues and renamed Sales to Transactions
- Various bug fixes (e.g. tax, rounding, library circular dependency)
## [3.1.1] - 2017-09-09
- Updated en-US and en-GB translations, better grammar, and consistency
- Fixed database migration issue with VAT tax included
- Fixed database backup bug
- Fixed gift card error
- Fixed database `upgrade to 3.1.x` script (now it's to `3.1.1` and there is no `3.1.0` anymore)
- Fixed old database upgrade scripts for people upgrading from `2.x` versions
- Fixed `.htaccess` file in OSPOS root dir (it was not forwarding to `public` subdir)
- Fixed few jQuery `2.0` upgrade issues
## [3.1.0] - 2017-09-02
- MySQL `5.7` and PHP `7.x` support
- Advanced tax support with customer tax categories and more
- Better horeca use case support with dinner table sale tagging
- Customer rewards support
- Added quote support and better invoice support
- Added integration with Mailchimp to connect customer list with Mailchimp list
- Prevent inserting two customers with the same email address
- Customer total spending and stats
- Added Google reCAPTCHA option for the login page to increase protection from brute force attacks
- Added due payment for credit sale support
- Gift card numbering with two options: series and random
- Extended item kits functionality
- Employees are allowed to change their own password by clicking their name in the top bar
- Cash rounding support, extended decimals
- Reworked item pictures, file names, and storing
- Financial year start date and selection from date range pickers
- Date time range filters can be date and time or date only
- Added two new Bootswatch themes
- Receipts font size support
- Fix automatically people's name first capital letter, emails in lower case only
- Fixes to Receiving
- Various amendments to database script updates from older versions
- Added dotenv support
- Updates to language translations (split English to American English and British English)
- Various Dockers support improvements
- Minor bugfixes
## [3.0.2] - 2016-12-31
- Fixed error when performing scans multiple times in a row
- Fixed summary reports
- Protect employee privacy by printing just the first letter of the family name
- Updates to language translations
- Various Dockers support improvements
- Minor bugfixes
## [3.0.1] - 2016-11-27
- Upgrade CodeIgniter to version `3.1.2`
- Substantial database performance improvements
- Improved security: email and SMS passwords encryption, removed `phpinfo.php`
- Set code to be production and not development in `index.php`
- Reports improvements, fixed table sorting, tax calculation and made profit to be net profit
- Better Apache `2.4` support in `.htaccess`
- Updates to language translations
- Fixed excel template download links
- Fixed employee name in sale receipt and invoice reprinting
- Fixed `2.3.2_to_2.3.3.sql` database upgrade script mistake
- Fixed `phppos to ospos` database migration script
- Minor bug fixes and some general code clean up
## [3.0.0] 2016-10-22
- Upgrade CodeIgniter to version `3.1.0`
- Major UI overhaul based on Bootstrap `3.0` and Bootswatch Themes
- New tabular views with advanced filtering using Bootstrap Tables
- New graphical reports with no more Adobe Flash dependency
- Redesign of all modal dialogs
- Updated Sales register with simplified payment flow
- Improved security: MySQL injection, XSS, CSFR, BCrypt password encryption, safer project layout
- Support for text messaging (interfacing to specific support required)
- Email configuration
- Improved Localisation support
- Improved Store Config page
- Docker container ready for cloud installation
- Composer PHP support
- More languages and integration with Weblate for continuous translation
- About 280 closed issues under `3.0.0` release label, too many to produce a meaningful list
- Various code cleanup, refactoring, optimization and etc.
## [2.4.0] - 2016-10-03
- Upgrade CodeIgniter to version `3.0.5`
- Fix for spurious logouts
- Apache `.htaccess` `mod_expiry` caching and security optimizations
- Bulk item edit fixes (category, tax, and supplier fields)
- Remove f-key shortcuts used for module navigation
- Allow using custom invoice numbers when suspending a sale
- PHP `7` fixes
- Specific warnings to distinguish between reorder level and out of stock situation in sales
- Fix malware detection issues due to usage of `base64` encoding for storing session variables
- Improve language generation scripts (use PHP builtin functionality)
- Add extra buttons for navigation and printing to receipt and invoice
- Improve print layout for invoices
- Make layout consistent for items between receipt and invoice templates
- Minor bugfixes
## [2.3.4] - 2016-02-08
- Migration script fixes
- Improved continuous integration setup
- More integration tests
- Virtualized container setup (`docker install`)
- Live clock functionality and favicon
- Improved PHP `7` compatibility
- Added de_CH (German) as language
- Minor code cleanup
- Removal of annoying backup prompt on logout
## [2.3.3] - 2016-01-06
- Item kit fixes (search, list, ...)
- Add date picker widgets in sale/receiving edit forms
- Add date filter in items module
- Add barcode generation logic for EAN8, EAN13
- Add barcode validation and fallback logic for EAN8, EAN13
- New config option to generate barcodes if `item_number` is empty
- Add cost and count to inventory reports
- Gift card fixes
- Refactor sales overview (added date filtering + search options)
- Better locale config support
- Improve PHP compatibility
- Fix invoice numbering bug on suspending a sale
- Add configurable locale-dependent date format
- Add grunt-cache-breaker plugin
- Suspend button appears before adding a payment
- Searching of deleted items, filtering part is removed
- Remove infamous `0` after leaving sale or receiving comments empty
- Add SQL script to clean zeroes in sales/receivings comments
- Numerous other bug fixes
## [2.3.2] - 2016-01-25
- Nominatim (OpenStreetMap) customer address autocompletion
- Sale invoice templating
- Configurable barcode generation for items
- Stock location filtering in detailed sales and receivings reports
- Gift cards fixes
- Proper pagination support for most modules
- Language updates
- Fix for decimal tax rates
- Add gender and company name attributes to customer
- Stock location config screen refactor
- Basic Travis CI and PhantomJS setup
- Database backup on admin logout
- Modifiable item thumbnails
- Email invoice PDF generation using DomPDF
- Modifiable company logo
- jQuery upgrade (`1.2` -> `1.8.3`)
- JavaScript minification (using Grunt)
- Numerous bugfixes
## [2.3.1] - 2015-02-11
- Extra report permissions (this includes a refactoring of the database model - new grants table)
- Tax inclusive/exclusive pricing
- Receivings amount multiplication (can be configured in items section)
- Customizable sale and receiving numbering
- Gift card improvements
- Fix item import through CSV
- Bug fixes for reports
## [2.3.0] - 2014-08-20
- Support for multiple stock locations
## 2.2.2 - 2014-08-19
- French language added
- Thai language added
- Upgrade CodeIgniter to version `2.2.0`
- Database types for amounts all changed to decimal types (this will fix rounding errors in the sales and receivings reports)
- Fix duplicated session cookies in HTTP headers (this broke the application when running on Nginx)
## 2.1.1
- Barcodes on the order receipt were not generated correctly
- Sales edit screen for detailed sales reports is now available with ThickBox as in the rest of the application
- Indonesian language files updated (Oktafianus)
- Default language set to `en` in `config.php`
- Fixed some CSS bugs in the suspended sales section
- Default cookie `sess_time_expire` set to `86400` (24h)
## 2.1.0
- Various upgrades, too numerous to list here
- Removed dependency on ofc upload library due to vulnerability found
## 2.0.2
- Fixed multiple gift cards issue per Bug #4 reported on Sourceforge where a second gift card added would have its balance set to `0` even if the sale did not require the total of the second gift card to pay the remaining amount due
- Small code cleanup
## 2.1.0
- Upgrade CodeIgniter to version `2.1.0`
- Various small improvements

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,19 +1,32 @@
FROM php:7.0.15-apache
MAINTAINER jekkos
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
php5-apcu \
FROM php:8.2-apache AS ospos
LABEL maintainer="jekkos"
RUN apt-get update && apt-get install -y --no-install-recommends \
libicu-dev \
libgd-dev \
libmcrypt-dev
&& docker-php-ext-install mysqli bcmath intl gd \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& a2enmod rewrite
RUN a2enmod rewrite
RUN docker-php-ext-install mysqli bcmath intl gd sockets mbstring mcrypt
RUN echo "date.timezone = \"\${PHP_TIMEZONE}\"" > /usr/local/etc/php/conf.d/timezone.ini
RUN echo -e “$(hostname -i)\t$(hostname) $(hostname).localhost” >> /etc/hosts
WORKDIR /app
COPY . /app
RUN ln -s /app/*[^public] /var/www && rm -rf /var/www/html && ln -nsf /app/public /var/www/html
RUN chmod 755 /app/public/uploads && chown -R www-data:www-data /app/public /app/application
COPY --chown=www-data:www-data . /app
RUN chmod 770 /app/writable/uploads /app/writable/logs /app/writable/cache \
&& ln -s /app/*[^public] /var/www \
&& rm -rf /var/www/html \
&& ln -nsf /app/public /var/www/html
RUN [ ! -f test/ospos.js ] || sed -i -e "s/\(localhost\)/web/g" test/ospos.js
FROM ospos AS ospos_dev
ARG USERID
ARG GROUPID
RUN echo "Adding user uid $USERID with gid $GROUPID"
RUN ( addgroup --gid $GROUPID ospos || true ) && ( adduser --uid $USERID --gid $GROUPID ospos )
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

View File

@@ -1,9 +0,0 @@
FROM jekkos/opensourcepos:master
MAINTAINER jekkos
RUN mkdir -p /app/bower_components && ln -s /app/bower_components /var/www/html/bower_components
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini

View File

@@ -1,11 +1,3 @@
FROM digitallyseamless/nodejs-bower-grunt:5
MAINTAINER jekkos
# apt-get install curl
COPY Gruntfile.js .
COPY package.json .
COPY test .
RUN npm install
CMD ['while ! curl web/index.php | grep username; do sleep 1; done; grunt mochaWebdriver:test']
FROM php:8.4-cli
RUN apt-get update && apt-get install -y libicu-dev && docker-php-ext-install intl
WORKDIR /app

View File

@@ -1,252 +0,0 @@
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
wiredep: {
task: {
ignorePath: '../../../public/',
src: ['application/views/partial/header.php']
}
},
bower_concat: {
all: {
mainFiles: {
'bootstrap-table': [ "src/bootstrap-table.js", "src/bootstrap-table.css", "dist/extensions/export/bootstrap-table-export.js", "dist/extensions/mobile/bootstrap-table-mobile.js"]
},
dest: {
'js': 'tmp/opensourcepos_bower.js',
'css': 'tmp/opensourcepos_bower.css'
}
}
},
bowercopy: {
options: {
report: false
},
targetdistjqueryui: {
options: {
srcPrefix: 'public/bower_components/jquery-ui',
destPrefix: 'public/dist'
},
files: {
'jquery-ui': 'themes/base/jquery-ui.min.css'
}
},
targetdistbootswatch: {
options: {
srcPrefix: 'public/bower_components/bootswatch',
destPrefix: 'public/dist'
},
files: {
bootswatch: '*/'
}
},
targetlicense: {
options: {
srcPrefix: './'
},
files: {
'public/license': 'LICENSE'
}
}
},
cssmin: {
target: {
files: {
'public/dist/<%= pkg.name %>.min.css': ['tmp/opensourcepos_bower.css', 'public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css']
}
}
},
concat: {
js: {
options: {
separator: ';'
},
files: {
'tmp/<%= pkg.name %>.js': ['tmp/opensourcepos_bower.js', 'public/js/jquery*', 'public/js/*.js']
}
},
sql: {
options: {
banner: '-- >> This file is autogenerated from tables.sql and constraints.sql. Do not modify directly << --'
},
files: {
'database/database.sql': ['database/tables.sql', 'database/constraints.sql'],
'database/migrate_phppos_dist.sql': ['database/tables.sql', 'database/phppos_migrate.sql', 'database/constraints.sql']
}
}
},
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
},
dist: {
files: {
'public/dist/<%= pkg.name %>.min.js': ['tmp/<%= pkg.name %>.js']
}
}
},
jshint: {
files: ['Gruntfile.js', 'public/js/*.js'],
options: {
// options here to override JSHint defaults
globals: {
jQuery: true,
console: true,
module: true,
document: true
}
}
},
tags: {
css_header: {
options: {
scriptTemplate: '<rel type="text/css" src="{{ path }}"></rel>',
openTag: '<!-- start css template tags -->',
closeTag: '<!-- end css template tags -->',
ignorePath: '../../../public/'
},
src: ['public/css/*.css', '!public/css/login.css', '!public/css/invoice_email.css', '!public/css/barcode_font.css'],
dest: 'application/views/partial/header.php',
},
mincss_header: {
options: {
scriptTemplate: '<rel type="text/css" src="{{ path }}"></rel>',
openTag: '<!-- start mincss template tags -->',
closeTag: '<!-- end mincss template tags -->',
ignorePath: '../../../public/'
},
// jquery-ui must be first or at least before opensourcepos.min.css
src: ['public/dist/jquery-ui/*.css', 'public/dist/*.css'],
dest: 'application/views/partial/header.php',
},
css_login: {
options: {
scriptTemplate: '<rel type="text/css" src="{{ path }}"></rel>',
openTag: '<!-- start css template tags -->',
closeTag: '<!-- end css template tags -->',
ignorePath: '../../public/'
},
src: ['public/css/login.css'],
dest: 'application/views/login.php'
},
js: {
options: {
scriptTemplate: '<script type="text/javascript" src="{{ path }}"></script>',
openTag: '<!-- start js template tags -->',
closeTag: '<!-- end js template tags -->',
ignorePath: '../../../public/'
},
src: ['public/js/jquery*', 'public/js/*.js'],
dest: 'application/views/partial/header.php'
},
minjs: {
options: {
scriptTemplate: '<script type="text/javascript" src="{{ path }}"></script>',
openTag: '<!-- start minjs template tags -->',
closeTag: '<!-- end minjs template tags -->',
ignorePath: '../../../public/'
},
src: ['public/dist/*min.js'],
dest: 'application/views/partial/header.php'
}
},
mochaWebdriver: {
options: {
timeout: 1000 * 60 * 3
},
test : {
options: {
usePhantom: true,
usePromises: true
},
src: ['test/**/*.js']
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint']
},
cachebreaker: {
dev: {
options: {
match: [ {
'opensourcepos.min.js': 'public/dist/opensourcepos.min.js',
'opensourcepos.min.css': 'public/dist/opensourcepos.min.css'
} ],
replacement: 'md5'
},
files: {
src: ['application/views/partial/header.php', 'application/views/login.php']
}
}
},
clean: {
license: ['public/bower_components/**/bower.json']
},
license: {
all: {
// Target-specific file lists and/or options go here.
options: {
// Target-specific options go here.
directory: 'public/bower_components',
output: 'public/license/bower.LICENSES'
}
}
},
'bower-licensechecker': {
options: {
/*directory: 'path/to/bower',*/
acceptable: [ 'MIT', 'BSD', 'LICENSE.md' ],
printTotal: true,
warn: {
nonBower: true,
noLicense: true,
allGood: true,
noGood: true
},
log: {
outFile: 'public/license/.licenses',
nonBower: true,
noLicense: true,
allGood: true,
noGood: true,
}
}
},
apigen: {
generate:{
options: {
apigenPath: 'vendor/bin/',
source: 'application',
destination: 'docs'
}
}
},
compress: {
main: {
options: {
mode: 'zip',
archive: 'dist/opensourcepos.zip'
},
files: [
{src: ['public/**', 'vendor/**', 'application/**', '!/public/images/menubar/png/', '!/public/dist/bootswatch/', '/public/dist/bootswatch/*/*.css', 'database/**', '*.txt', '*.md', 'LICENSE', 'docker*', 'Dockerfile', '**/.htaccess', '*.csv']}
]
}
}
});
require('load-grunt-tasks')(grunt);
grunt.loadNpmTasks('grunt-mocha-webdriver');
grunt.loadNpmTasks('grunt-composer');
grunt.loadNpmTasks('grunt-apigen');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.registerTask('default', ['wiredep', 'bower_concat', 'bowercopy', 'concat', 'uglify', 'cssmin', 'tags', 'cachebreaker']);
grunt.registerTask('update', ['composer:update', 'bower:update']);
grunt.registerTask('genlicense', ['clean:license', 'license', 'bower-licensechecker']);
grunt.registerTask('package', ['default', 'compress']);
grunt.registerTask('packages', ['composer:update']);
grunt.registerTask('gendocs', ['apigen:generate']);
};

96
INSTALL.md Normal file
View File

@@ -0,0 +1,96 @@
## Server Requirements
- PHP version `8.1` to `8.4` 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.
## Security Configuration
### Allowed Hostnames (Required for Production)
OpenSourcePOS validates the Host header against a whitelist to prevent Host Header Injection attacks (GHSA-jchf-7hr6-h4f3). **You must configure this for production deployments.**
Add the following to your `.env` file:
```
app.allowedHostnames.0 = 'yourdomain.com'
app.allowedHostnames.1 = 'www.yourdomain.com'
```
**For local development**, use:
```
app.allowedHostnames.0 = 'localhost'
```
If `allowedHostnames` is not configured:
1. A security warning will be logged
2. The application will fall back to 'localhost' as the hostname
3. This means URLs generated by the application (links, redirects, etc.) will point to 'localhost'
### HTTPS Behind Proxy
If your installation is behind a proxy with SSL offloading, set:
```
FORCE_HTTPS = true
```
## Local install
First of all, if you're seeing the message `system folder missing` after launching your browser, 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/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. Unzip and upload Open Source Point of Sale files to the web-server.
4. If `.env` does not exist, copy `.env.example` to `.env`.
5. Open `.env` and modify credentials to connect to your database if needed.
6. The database schema will be automatically created when you first access the application. Migrations run automatically on fresh installs.
7. Go to your install `public` dir via the browser.
8. Log in using
- Username: admin
- Password: pointofsale
9. If everything works, then set the `CI_ENVIRONMENT` variable to `production` in the .env file
10. Enjoy!
11. Oops, an issue? Please make sure you read the FAQ, wiki page, and you checked open and closed issues on GitHub. PHP `display_errors` is disabled by default. Create an` app/Config/.env` file from the `.env.example` to enable it in a development environment.
## Local install using Docker
OSPOS can be deployed using Docker on Linux, Mac, and Windows. Locally or on a host (server).
This setup dramatically reduces the number of possible issues as all setup is now done in a Dockerfile.
Docker runs natively on Mac and Linux. Windows requires WSL2 to be installed. Please refer to the Docker documentation for instructions on how to set it up on your platform.
**Be aware that this setup is not suited for production usage! Change the default passwords in the compose file before exposing the containers publicly.**
Start the containers using the following command
```
docker-compose up
```
## Nginx install using Docker
Since OSPOS version `3.3.0` the Docker installation offers a reverse proxy based on Nginx with a Let's Encrypt TLS certificate termination (aka HTTPS connection).
Let's Encrypt is a free certificate issuer, requiring a special installation that this Docker installation would take care of for you.
Any Let's Encrypt TLS certificate renewal will be managed automatically, therefore there is no need to worry about those details.
Before starting your installation, you should edit the `docker/.env` file and configure it to contain the correct MySQL/MariaDB and phpMyAdmin passwords (don't use the defaults!).
You will also need to register to Let's Encrypt. Configure your host domain name and Let's Encrypt email address in the `docker/.env` file.
The variable `STAGING` needs to be set to `0` when you are confident your configuration is correct so that Let's Encrypt will issue a final proper TLS certificate.
Follow local install steps, but instead use
```
docker/install-nginx.sh
```
Do **not** use below command on live deployments unless you want to tear everything down. All your disk content will be wiped!
```
docker/uninstall.sh
```
## Cloud install
If you choose DigitalOcean:
[Through this link](https://m.do.co/c/ac38c262507b), you will get a [**free $100, 60-day credit**](https://m.do.co/c/ac38c262507b). [Check the wiki](https://github.com/opensourcepos/opensourcepos/wiki/Getting-Started-installations) for further instructions on how to install the necessary components.

79
LICENSE
View File

@@ -1,42 +1,55 @@
The MIT License (MIT)
MIT License
Copyright (c) 2013-2025 jekkos
Copyright (c) 2017-2025 objecttothis
Copyright (c) 2017-2025 odiea
Copyright (c) 2021-2025 BudsieBuds
Copyright (c) 2017-2024 Steve Ireland
Copyright (c) 2018-2024 WebShells
Copyright (c) 2015-2023 FrancescoUK (aka daN4cat)
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 Nathan Sas (aka nathanzky)
Copyright (c) 2018 Emilio Silva (aka emi-silva)
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 Rinaldy@dbarber (aka rnld26)
Copyright (c) 2015 Toni Haryanto (aka yllumi)
Copyright (c) 2012-2014 pappastech
Copyright (c) 2012 Alain
Copyright (c) 2013 Rob Garrison
Copyright (c) 2013 Parq
Copyright (c) 2013 Ramel
Copyright (c) 2013-2017 jekkos
Copyright (c) 2015-2017 FrancescoUK (aka daN4cat)
Copyright (c) 2015 Aamir Shahzad (aka asakpke), RoshanTech.com
Copyright (c) 2015 Toni Haryanto (aka yllumi)
Copyright (c) 2016-2017 Ramkrishna Mondal (aka RamkrishnaMondal)
Copyright (c) 2016 Rinaldy@dbarber (aka rnld26)
Copyright (c) 2016-2017 Jorge Colmenarez (aka jlctmaster), frontuari.com
Copyright (c) 2017 Steve Ireland
Copyright (c) 2017 Jesus Guerrero Botella (aka i92guboj)
Copyright (c) 2017 Deep Shah (aka deepshah)
Copyright (c) 2017 Joshua Fernandez (aka joshua1234511)
Copyright (c) 2017 odiea
Copyright (c) 2012 Alain
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
You cannot claim copyright or ownership of the Software.
Footer signatures "You are using Open Source Point Of Sale" and/or "Open Source Point Of Sale"
with version, hash and URL link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Additionally, you cannot claim copyright or ownership of the Software.
The footer signatures with version, hash and URL link to the official website
of the project MUST BE RETAINED, MUST BE VISIBLE IN EVERY PAGE and CANNOT BE
MODIFIED.
Footer signatures are in the format
"© 2010 - current year · opensourcepos.org · version - commit"
or "Open Source Point of Sale".

297
README.md
View File

@@ -1,200 +1,143 @@
[![Build Status](https://travis-ci.org/jekkos/opensourcepos.svg?branch=master)](https://travis-ci.org/jekkos/opensourcepos)
[![Join the chat at https://gitter.im/jekkos/opensourcepos](https://badges.gitter.im/jekkos/opensourcepos.svg)](https://gitter.im/jekkos/opensourcepos?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![devDependency Status](https://david-dm.org/jekkos/opensourcepos/dev-status.svg)](https://david-dm.org/jekkos/opensourcepos#info=devDependencie)
[![Dependency Status](https://gemnasium.com/badges/github.com/jekkos/opensourcepos.svg)](https://gemnasium.com/github.com/jekkos/opensourcepos)
[![GitHub version](https://badge.fury.io/gh/jekkos%2Fopensourcepos.svg)](https://badge.fury.io/gh/jekkos%2Fopensourcepos)
[![Translation status](http://weblate.jpeelaer.net/widgets/ospos/-/svg-badge.svg)](http://weblate.jpeelaer.net/engage/ospos/?utm_source=widget)
<p align="center"><img src="https://raw.githubusercontent.com/opensourcepos/opensourcepos/master/branding/emblem.svg" alt="Open Source Point of Sale Logo" width="auto" height="200"></p>
<h3 align="center">Open Source Point of Sale</h3>
<p align="center">
<a href="#-introduction">Introduction</a> · <a href="#-live-demo">Demo</a> · <a href="#-installation">Installation</a> ·
<a href="#-contributing">Contributing</a> · <a href="#-reporting-bugs">Bugs</a> · <a href="#-faq">FAQ</a> ·
<a href="#-keep-the-machine-running">Donate</a> · <a href="#-license">License</a> · <a href="#-credits">Credits</a>
</p>
Introduction
------------
<p align="center">
<a href="https://github.com/opensourcepos/opensourcepos/actions/workflows/build-release.yml" target="_blank"><img src="https://github.com/opensourcepos/opensourcepos/actions/workflows/build-release.yml/badge.svg" alt="Build Status"></a>
<a href="https://app.gitter.im/#/room/#opensourcepos_Lobby:gitter.im?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge" target="_blank"><img src="https://badges.gitter.im/jekkos/opensourcepos.svg" alt="Join the chat at https://app.gitter.im"></a>
<a href="https://badge.fury.io/gh/opensourcepos%2Fopensourcepos" target="_blank"><img src="https://badge.fury.io/gh/opensourcepos%2Fopensourcepos.svg" alt="Project Version"></a>
<a href="https://translate.opensourcepos.org/engage/opensourcepos/?utm_source=widget" target="_blank"><img src="https://translate.opensourcepos.org/widgets/opensourcepos/-/svg-badge.svg" alt="Translation Status"></a>
</p>
Open Source Point of Sale is a web based point of sale system.
The main features are:
* Stock management (Items and Kits)
* VAT, customer and multi tiers taxation
* Sale register with transactions logging
* Quotation and invoicing
* Receipt and invoice printing and/or emailing
* Barcode generation and printing
* Suppliers and Customers database
* Multiuser with permission control
* Receivings
* Giftcard
* Rewards
* Restaurant tables
* Messaging (SMS)
* Multilanguage
* Selectable Boostrap (Bootswatch) based UI theme
* Mailchimp integration
* reCAPTCHA to protect login page from brute force attacks
* Reporting on sales, orders, inventory status
## 👋 Introduction
The software is written in PHP language, it uses MySQL (or MariaDB) as data storage back-end and has a simple but intuitive user interface.
Open Source Point of Sale is a web-based point of sale system. The application is written in PHP, uses MySQL (or MariaDB) as the data storage back-end, and has a simple but intuitive user interface.
The latest 3.x version is a complete overhaul of the original software.
It is now based on Bootstrap 3 using Bootswatch themes, and still uses CodeIgniter 3 as framework.
It also has improved functionality and security.
The latest `3.4` version is a complete overhaul of the original software. It uses CodeIgniter 4 as a framework and is based on Bootstrap 3 using Bootswatch themes. Along with improved functionality and security.
Deployed to a Cloud it's a SaaS (Software as a Service) solution.
The features include:
- Stock management (items and kits with an extensible list of attributes)
- VAT, GST, customer, and multi tiers taxation
- Sale register with transactions logging
- Quotation and invoicing
- Expenses logging
- Cash up function
- Printing and emailing of receipts, invoices and quotations
- Barcode generation and printing
- Database of customers and suppliers
- Multiuser with permission control
- Reporting on sales, orders, expenses, inventory status and more
- Receivings
- Gift cards
- Rewards
- Restaurant tables
- Messaging (SMS)
- Multilanguage
- Selectable Bootstrap based UI theme with Bootswatch
- MailChimp integration
- Optional Google reCAPTCHA to protect the login page from brute force attacks
- GDPR ready
License
-------
## 🧪 Live Demo
We've got a live version of our latest master running for you to play around with and test everything out. It's a containerized install that will reinitialize when new functionality is merged into our code repository.
You can [find the demo here](https://demo.opensourcepos.org/) and log in with these credentials.
👤 Username `admin`
🔒 Password `pointofsale`
If you bump into an issue, please check [the status page here](https://status.opensourcepos.org/) to confirm if the server is up and running.
## 🖥️ Development Demo
Besides the demo of the latest master, we also have a development server that builds when there's a new commit to our repository. It's mainly used for testing out new code before merging it into the master. [It can be found here](https://dev.opensourcepos.org/).
The log in credentials are the same as the regular live demo.
## 💾 Installation
Please **refrain from creating issues** about installation problems before having read the FAQ and going through existing GitHub issues. We have a build pipeline that checks the sanity of our latest repository commit, and in case the application itself is broken then our build will be as well.
This application can be set up in _many_ different ways and we only support the ones described in [the INSTALL.md file](INSTALL.md).
For more information and recommendations on support hardware, like receipt printers and barcode scanners, read [this page](https://github.com/opensourcepos/opensourcepos/wiki/Supported-hardware-datasheet) on our wiki.
## ✨ Contributing
Everyone is more than welcome to help us improve this project. If you think you've got something to help us go forward, feel free to open a [pull request]() or join the conversation on [Element](https://app.gitter.im/#/room/#opensourcepos_Lobby:gitter.im).
Want to help translate Open Source Point of Sale in your language? You can find [our Weblate here](https://translate.opensourcepos.org), sign up, and start translating. You can subscribe to different languages to receive a notification once a new string is added or needs updating. Have a look at our [guidelines](https://github.com/opensourcepos/opensourcepos/wiki/Adding-translations) below to help you get started.
Only with the help of the community, we can keep language translations up to date. Thanks!
## 🐛 Reporting Bugs
Before creating a new issue, you'll need copy and include the info under the `System Info` tab in the configuration section in most cases. If that information is not provided in full, your issue might be tagged as pending.
If you're reporting a potential security issue, please refer to our security policy found in the [SECURITY.md](SECURITY.md) file.
NOTE: If you're running non-release code, please make sure you always run the latest database upgrade script and download the latest master code.
## 📖 FAQ
- If you get the message `system folder missing`, then you have cloned the source using git and you need to run a build first. Check [INSTALL.md](INSTALL.md) for instructions or download latest zip file from [GitHub releases](https://github.com/opensourcepos/opensourcepos/releases) instead.
- If at login time you read `The installation is not correct, check your php.ini file.`, please check the error_log in `public` folder to understand what's wrong and make sure you read the [INSTALL.md](INSTALL.md). To know how to enable `error_log`, please read the comment in [issue #1770](https://github.com/opensourcepos/opensourcepos/issues/1770#issuecomment-355177943).
- If you installed your OSPOS under a web server subdir, please edit `public/.htaccess` and go to the lines with the comments `if in web root` or `if in subdir`, uncomment one and replace `<OSPOS path>` with your path, and follow the instruction on the second comment line. If you face more issues, please read [issue #920](https://github.com/opensourcepos/opensourcepos/issues/920) for more information.
- 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 `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 `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).
- PHP `≥ 8.1` is required to run this app.
## 🏃 Keep the Machine Running
If you like our project, please consider buying us a coffee through the button below so we can keep adding features.
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)\
Or refer to the [FUNDING.yml](.github/FUNDING.yml) file.
If you choose to deploy OSPOS in the cloud, you can contribute to the project by using DigitalOcean and signing up through our referral link. You'll receive a [free $200, 60-day credit](https://m.do.co/c/ac38c262507b) if you run OSPOS in a DigitalOcean droplet through [our referral link](https://m.do.co/c/ac38c262507b).
## 📄 License
Open Source Point of Sale is licensed under MIT terms with an important addition:
_The footer signature "You are using Open Source Point Of Sale" with version,
hash and link to the original distribution of the code MUST BE RETAINED,
MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED._
The footer signature "© 2010 - _current year_ · opensourcepos.org · 3.x.x - _hash_" including the version, hash and link to our website MUST BE RETAINED, MUST BE VISIBLE IN EVERY PAGE and CANNOT BE MODIFIED.
Also worth noting:
_The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software._
_The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software._
For more details please read the file __LICENSE__.
For more details please read the [LICENSE](LICENSE) file.
It's important to understand that althought you are free to use the software the copyright stays and the license agreement applies in all cases.
Therefore any actions like:
It's important to understand that although you are free to use the application, the copyright has to stay and the license agreement applies in all cases. Therefore, any actions like:
- Removing LICENSE and any license files is prohibited
- Removing LICENSE and/or any license files is prohibited
- Authoring the footer notice replacing it with your own or even worse claiming the copyright is absolutely prohibited
- Claiming full ownership of the code is prohibited
In short you are free to use the software but you cannot claim any property on it.
In short, you are free to use the application, but you cannot claim any property on it.
Any person or company found breaching the license agreement will be chased up.
Any person or company found breaching the license agreement might find a bunch of monkeys at the door ready to destroy their servers.
## 🙏 Credits
Keep the Machine Running
------------------------
If you like the project, and you are making money out of it on a daily basis, then consider buying me a coffee so I can keep adding features.
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)
Server Requirements
-------------------
PHP version 5.6 or newer is recommended (PHP 7.x is supported). Please note that PHP needs to have `php-gd`, `php-bcmath`, `php-intl`, `php-sockets`, `php-mcrypt` and `php-curl` installed and enabled.
MySQL 5.5, 5.6 and 5.7 are supported, also MariaDB replacement is supported and apparently offering better performance.
Apache 2.2 and 2.4 are supported. Also Nginx has been proven to work fine, see [wiki page here](https://github.com/jekkos/opensourcepos/wiki/Local-Deployment-using-LEMP)
Raspberry PI based installations proved to work, see [wiki page here](https://github.com/jekkos/opensourcepos/wiki/Installing-on-Raspberry-PI---Orange-PI-(Headless-OSPOS))
For Windows based installations please read [the wiki](https://github.com/jekkos/opensourcepos/wiki) and also existing closed issues as this topic has been covered well in all the variants and issues.
Local install
-------------
1. Dowload the latest [stable release](https://github.com/jekkos/opensourcepos/releases) from github or [unstable build](https://bintray.com/jekkos/opensourcepos/opensourcepos/view/files?sort=updated&order=asc#files) from bintray
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 web server
5. Modify application/config/database.php and modify credentials if needed to connect to your database
6. Modify application/config/config.php encryption key with your own
7. Go to your point of sale install public dir via the browser
8. LOGIN using
* username: admin
* password: pointofsale
9. Enjoy
10. Oops an issue? Please make sure you read the FAQ, wiki page and you checked open and closed issue on GitHub. PHP display_errors is disabled by default. Create an application/config/.env file from the .env.example to enable it in a development environment.
Local install using Docker
--------------------------
From now on ospos can be deployed using Docker on Linux, Mac or Windows. This setup dramatically reduces the number of possible issues as all setup is now done in a Dockerfile. Docker runs natively on mac and linux, but will require more overhead on windows. Please refer to the docker documentation for instructions on how to set it up on your platform.
To build and run the image, issue following commands in a terminal with docker installed
docker-compose build
docker-compose up
Cloud install
-------------
A quick option would be to install directly to [Digitalocean](https://m.do.co/c/ac38c262507b) using their preconfigured LAMP stack.
Create a DO account first, add a droplet with preconfigured LAMP and follow the instructions for Local Install below. You will be running a provisioned VPS within minutes.
Cloud install using Docker
--------------------------
If you want to run a quick demo of ospos or run it permanently in the cloud, then we
suggest using Docker cloud together with the DigitalOcean hosting platform. This way all the
configuration is done automatically and the install will just work.
If you choose *DigitalOcean* [through this link](https://m.do.co/c/ac38c262507b), you will get a *$10 credit* for a first
month of uptime on the platform. A full setup will only take about 2 minutes by following steps below.
1. Create a [Digitalocean account](https://m.do.co/c/ac38c262507b)
2. Create a [docker cloud account](https://cloud.docker.com)
3. Login to docker cloud
4. Associate your docker cloud account with your previously created digital ocean account under settings
5. Create a new node on DigitalOcean through the `Infrastructure > Nodes` tab. Fill in a name (ospos) and choose a region near to you. We recommend to choose a node with minimum 1G RAM for the whole stack
6. Click [![Deploy to Docker Cloud](https://files.cloud.docker.com/images/deploy-to-dockercloud.svg)](https://cloud.docker.com/stack/deploy/?repo=https://github.com/jekkos/opensourcepos)
7. Othewise create a new stack under `Applications > Stacks` and paste the [contents of docker-cloud.yml](https://github.com/jekkos/opensourcepos/blob/master/docker-cloud.yml) from the source repository in the text field and hit `Create and deploy`
8. Find your website url under `Infrastructure > Nodes > <yournode> > Endpoints > web`
9. Login with default username/password admin/pointofsale
10. DNS name for this server can be easily configured in the DigitalOcean control panel
More info [on maintaining a docker](https://github.com/jekkos/opensourcepos/wiki/Docker-cloud-maintenance) install can be found on the wiki
Language Translations
---------------------
To help us with OSPOS translations please use [Weblate website here](http://weblate.jpeelaer.net) and sign up. After registering you can subscribe to different languages and you will be notified once a new translation is added.
Please also read the [wiki page here](https://github.com/jekkos/opensourcepos/wiki/Adding-translations) to find our Translations Guideline.
Only with the help of the community we can keep language translations up to date.
Reporting Bugs
--------------
If you are taking a release candidate code please make sure you always run the latest database upgrade script and you took the latest code from master.
Please DO NOT post issues if you have not done those step.
Bug reports must follow this schema:
1. Ospos **version string with git commit hash** (see ospos footer)
2. OS name and version running your Web Server (e.g. Linux Ubuntu 16.04)
3. Web Server name and version (e.g. Apache 2.4)
4. Database name and version (e.g. MySQL 5.6)
5. PHP version (e.g. PHP 5.6)
6. Language selected in OSPOS (e.g. English, Spanish)
7. Any configuration of OSPOS that you changed
8. Exact steps to reproduce the issue (test case)
9. Optionally some screenshots to illustrate each step
If above information is not provided in full, your issue will be tagged as pending.
If missing information is not provided within a week we will close your issue.
FAQ
---
* If a blank page (HTTP status 500) shows after search completion or receipt generation, then double check `php5-gd` presence in your php installation. On windows check in php.ini whether the lib is installed. On Ubuntu issue `sudo apt-get install php5-gd`. Also have a look at the Dockerfile for a complete list of recommended packages.
* If sales and receiving views don't show properly, please make sure BCMath lib (`php-bcmath`) is installed. On windows check php.ini and make sure php_bcmath extension is not commented out
* If the following error is seen in sales module `Message: Class 'NumberFormatter' not found` then you don't have `php5-intl` extension installed. Please check the [wiki](https://github.com/jekkos/opensourcepos/wiki/Localisation-support#php5-intl-extension-installation) to resolve this issue on your platform. If you use WAMP, please read [issue #949](https://github.com/jekkos/opensourcepos/issues/949)
* If you read errors containing messages with Socket word in it, please make sure you have installed PHP Sockets support (e.g. go to PHP.ini and make sure all the needed modules are not commented out. This means `php5-gd`, `php-intl` and `php-sockets`. Restart the web server)
* If you installed your OSPOS under a web server subdir, please edit public/.htaccess and go to the lines with comment `if in web root` and `if in subdir comment above line, uncomment below one and replace <OSPOS path> with your path` and follow the instruction on the second comment line. If you face more issues please read [issue #920](https://github.com/jekkos/opensourcepos/issues/920) for more help
* If the avatar pictures are not shown in Items or at Item save time you get an error, please make sure your public and subdirs are assigned to the correct owner and the access permission is set to 755
* If you have problems with the encryption support or you get an error please make sure `php5-mcrypt` is installed
* If you have suhosin installed and face an issue with CSRF, please make sure you read [issue #1492](https://github.com/jekkos/opensourcepos/issues/1492)
| <div align="center">DigitalOcean</div> | <div align="center">JetBrains</div> | <div align="center">GitHub</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://github.com/features/actions" target="_blank"><img src="https://github.githubassets.com/images/modules/site/icons/eyebrow-panel/actions-icon.svg" alt="GitHub Actions 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 [GitHub](https://github.com) for providing free continuous integration via GitHub Actions for open-source projects. |

46
SECURITY.md Normal file
View File

@@ -0,0 +1,46 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
- [Security Policy](#security-policy)
- [Supported Versions](#supported-versions)
- [Security Advisories](#security-advisories)
- [Reporting a Vulnerability](#reporting-a-vulnerability)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# Security Policy
## Supported Versions
We release patches for security vulnerabilities.
| Version | Supported |
| --------- | ------------------ |
| >= 3.4.2 | :white_check_mark: |
| < 3.4.2 | :x: |
## Security Advisories
The following security vulnerabilities have been published:
### High Severity
| CVE | Vulnerability | CVSS | Published | Fixed In | Credit |
|-----|--------------|------|-----------|----------|--------|
| [CVE-2025-68434](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-wjm4-hfwg-5w5r) | CSRF leading to Admin Creation | 8.8 | 2025-12-17 | 3.4.2 | @Nixon-H, @jekkos |
| [CVE-2025-68147](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-xgr7-7pvw-fpmh) | Stored XSS in Return Policy | 8.1 | 2025-12-17 | 3.4.2 | @Nixon-H, @jekkos |
| [CVE-2025-66924](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-gv8j-f6gq-g59m) | Stored XSS in Item Kits | 7.2 | 2026-03-04 | 3.4.2 | @hungnqdz, @omkaryepre |
### Medium Severity
| CVE | Vulnerability | CVSS | Published | Fixed In | Credit |
|-----|--------------|------|-----------|----------|--------|
| [CVE-2025-68658](https://github.com/opensourcepos/opensourcepos/security/advisories/GHSA-32r8-8r9r-9chw) | Stored XSS in Company Name | 4.3 | 2026-01-13 | 3.4.2 | @hungnqdz |
For a complete list including draft advisories, see our [GitHub Security Advisories page](https://github.com/opensourcepos/opensourcepos/security/advisories).
## Reporting a Vulnerability
Please report (suspected) security vulnerabilities to **[jeroen@steganos.dev](mailto:jeroen@steganos.dev)**.
You will receive a response from us within 48 hours. If the issue is confirmed, we will release a patch as soon as possible depending on complexity but historically within a few days.

20
UPGRADE.md Normal file
View File

@@ -0,0 +1,20 @@
## 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.
4. Install the new OSPOS.
5. (Only applicable if upgrading from pre `3.0.0`) Run the database upgrade scripts from `database` dir (check which ones you need according to the version you are upgrading from).
6. Take the saved old `config.php` and upgrade the new `config.php` with any additional changes you made in the old.
Take time to understand if new config rules require some changes (e.g. encryption keys).
7. Take the saved old `database.php` and change the new `database.php` to contain all the configurations you had in the old setup.
Please try not to use the old layout, use the new one and copy the content of the config variables.
8. Restore the content of the old `uploads` folder into `public/uploads` one.
9. Once the new code is in place, the database is manually updated, and the config files are in place, you're good to go.
10. The first login will take longer because OSPOS post `3.0.0` will upgrade automatically to the latest version.
11. If everything went according to plan, you'll be able to use your upgraded version of OSPOS.
12. Still have issues? Please check the [README](README.md) and [GitHub issues](https://github.com/opensourcepos/opensourcepos/issues).
Maybe a similar issue has already been reported, and you can find your answer there.

View File

@@ -1,16 +0,0 @@
How to Upgrade
-------------------------
1. Backup 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
4. Install the new OSPOS
5. Run the database upgrade scripts from database/ dir (check which ones you need according to the version you are upgrading from)
6. Take the saved old config.php and upgrade the new config.php with any additional changes you made in the old.
Take time to understand if new config rules require some changes (e.g. encryption keys)
7. Take the saved old database.php and change the new database.php to contain all the configuration you had in the old setup.
Please try not to use the old layout, use the new one and just copy the content of the config variables
8. Restore the content of the old uploads/ folder into public/uploads/ one
9. Once the new code is in place, database is updated and config files are sorted you are good to start the new OSPOS
10. Once logged in in OSPOS go to Migrate (see Migrate button after Store Config) and run the Migrate script
11. Now you can use OSPOS
12. If any issue please check FAQ and/or GitHub issues as somebody else might have had your problem already or post a question

View File

@@ -1,202 +0,0 @@
Version 3.1.1
-------------
+ Updated en-US and en-GB translations, better grammar and consistency
+ Fixed database migration issue with VAT tax included
+ Fixed database backup bug
+ Fixed Gift card error
+ Fixed database upgrade to 3.1.x script (now it's to 3.1.1 and there is no 3.1.0 anymore)
+ Fixed old database upgrade scripts for people upgrading from 2.x versions
+ Fixed .htaccess file in opensourcepos root dir (it was not forwarding to public subdir)
+ Fixed few jQuery 2.0 upgrade issues
Version 3.1.0
-------------
+ MySQL 5.7 and PHP 7.x support
+ Advanced Tax support with customer tax categories and etc,
+ Better HORECA use case support with Dinner Table sale tagging
+ Customer Rewards support
+ Added quote support and better invoice support
+ Added integration with Mailchimp to connect Customer list with Mailchimp list
+ Prevent inserting two customers with same email address
+ Customer total spending and stats
+ Added reCAPTCHA to Login page to increase protection from Brute Force attacks
+ Added due payment for credit sale support
+ Gifcard numbering with two options: Series and Random
+ Extended Item Kits functionality
+ Employee allowed to change their own password clicking their name on top bar
+ Cash rounding support, extended decimals
+ Reworked Item Pictures and file name and storing
+ Financial year start date and selection from date range pickers
+ Date time range filters can be date & time or date only
+ Added two new Bootswatch themes
+ Receipts font size support
+ Fix automatically people's name first capital letter, emails in lower case only
+ Fixes to Receiving
+ Various amendments to database script updates from older versions
+ Added dotenv support
+ Updates to language translations (split English to American English and British English)
+ Various Dockers support improvements
+ Minor bugfixes
Version 3.0.2
-------------
+ Fixed error when performing scans multiple times in a row
+ Fixed summary reports
+ Protect Employee privacy printing just the first letter of the family name
+ Updates to language translations
+ Various Dockers support improvements
+ Minor bugfixes
Version 3.0.1
-------------
+ *CodeIgniter 3.1.2 Upgrade*
+ *Substantial database performance improvements*
+ *Improved security: email and sms passwords encryption, removed phpinfo.php*
+ *Set code to be production and not development in index.php*
+ *Reports improvements, fixed table sorting, tax calculation and made profit to be net profit*
+ Better Apache 2.4 support in .htaccess
+ Updates to language translations
+ Fixed excel template download links
+ Fixed employee name in Sale receipt and invoice reprinting
+ Fixed 2.3.2_to_2.3.3.sql database upgrade script mistake
+ Fixed phppos to ospos database migration script
+ Minor bugfixes and some general code clean up
Version 3.0.0
-------------
+ *CodeIgniter 3.1 Upgrade*
+ Major UI overhaul based on *Boostrap 3.0 and Bootswatch Themes*
+ New tabular views with advanced filtering using *Bootstrap Tables*
+ New graphical reports with no more Adobe flash dependency
+ Redesign of all modal dialogs
+ Updated Sales register with simplified payment flow
+ *Improved security: MySQL injection, XSS, CSFR, BCrypt password encryption, safer project layout*
+ Support for TXT messaging (interfacing to specific support required)
+ Email configuration
+ Improved Localisation support
+ Improved Store Config page
+ Docker container ready for Cloud installation
+ Composer PHP support
+ More languages and integration with Weblate for continuous translation
+ About 280 closed issues under 3.0.0 release label, too many to produce a meaningful list
+ Various code cleanup, refactoring, optimisation and etc.
Version 2.4.0
-------------
+ *CodeIgniter 3.0.5* Upgrade (please read UPGRADE.txt)
+ Fix for spurious logouts
+ Apache .htaccess mod_expiry caching and security optimizations
+ Bulk item edit fixes (category, tax and supplier fields)
+ Remove f-key shortcuts used for module navigation
+ Allow to use custom invoice numbers when suspending sale
+ PHP7 fixes
+ Specific warnings to distinguish between reorder level and out of stock situation in sales
+ Fix malware detection issues due to usage of base64 encoding for storing session variables
+ Improve language generation scripts (use PHP builtin functionality)
+ Add extra buttons for navigation and printing to receipt and invoice
+ Improve print layout for invoices
+ Make layout consistent for items between receipt and invoice templates
+ Minor bugfixes
Version 2.3.4
-------------
+ Migration script fixes
+ Improved continuous integration setup
+ More integration tests
+ Virtualized container setup (docker install)
+ Live clock functionality + favicon
+ Improved PHP 7 compatbility
+ Added de_CH (German) as language
+ Minor code cleanup
+ Removal of annoying backup prompt on logout
Version 2.3.3
-------------
+ Item kit fixes (search, list, ..)
+ Add datepicker widgets in sale/receiving edit forms
+ Add date filter in items module
+ Add barcode generation logic for EAN8, EAN13
+ Add barcode validation + fallback logic for EAN8, EAN13
+ New config option to generate barcodes if item_number empty
+ Add cost + count to inventory reports
+ Giftcard fixes
+ Refactor sales overview (added date filtering + search options)
+ Better locale config support
+ Improve php compatibility
+ Fix invoice numbering bug on suspend
+ Add configurable locale-dependent dateformat
+ Add grunt-cache-breaker plugin
+ Suspend button appeaers before adding a payment
+ Searching of deleted items, filtering part is removed
+ Remove infamous "0" after leaving sale or receiving comments empty
+ Add SQL script to clean zeroes in sales/receivings comments
+ Numerous other bug fixes
Version 2.3.2
-------------
+ Nominatim (OpenStreetMap) customer address autocompletion
+ Sale invoice templating
+ Configurable barcode generation for items
+ Stock location filtering in detailed sales and receivings reports
+ Giftcards bugfixes
+ Proper pagination support for most modules
+ Language updates
+ Bugfix for decimal taxrates
+ Add gender + company name attributes to customer
+ Stock location config screen refactor
+ Basic travis-ci + phantomJs setup
+ Database backup on admin logout
+ Modifiable item thumbnails
+ Email invoice PDF generation using DomPDF
+ Modifiable company logo
+ jQuery upgrade (1.2 -> 1.8.3)
+ Javascript minification (using grunt)
+ Numerous bugfixes
Version 2.3.1
-------------
+ Extra report permissions (this includes a refactoring of the database model - new grants table)
+ Tax inclusive/exclusive pricing
+ Receivings amount multiplication (can be configured in items section)
+ Customizable sale and receiving numbering
+ Giftcard improvements
+ Fix item import through csv
+ Bug fixes for reports
Version 2.3.0
-------------
+ Support for multiple stock locations
Version 2.2.2
-------------
+ French language added
+ Thai language added
+ Upgrade to CodeIgniter 2.2 (contains several security fixes)
+ Database types for amounts all changed to decimal types (this will fix rounding errors in the sales and receivings reports) the rest of the application
+ Fix duplicated session cookies in http headers (this broke the application when running on nginx)
Version 2.1.1
---------------
+ Barcodes on the order receipt weren't generated correctly
+ Sales edit screen for detailed sales reports is now available with thickbox as in the rest of the application
+ Indonesian language files updated (Oktafianus)
+ Default language set to 'en' in config.php
+ Fix some css bugs in suspended sales section
+ Default cookie sess_time_expire set to 86400 (24h)
Version 2.1.0
-------------
+ Various upgrades, too numerous to list here.
+ Removed dependancy on ofc upload library due to vulnerability found.
Version 2.0.2
-------------
+ Fixed multiple giftcards issue per Bug #4 reported on Sourceforge where a
second giftcard added would have its balance set to $0 even if the sale did
not require the total of the second giftcard to pay the remaining amount due.
+ Small code cleanup
Version 2.1.0
-------------
* Upgrade to CodeIgniter 2.1.0
* Various small improvements

6
app/.htaccess Normal file
View File

@@ -0,0 +1,6 @@
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>

15
app/Common.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
/**
* The goal of this file is to allow developers a location
* where they can overwrite core procedural functions and
* replace them with their own. This file is loaded during
* the bootstrap process and is called during the framework's
* execution.
*
* This can be looked at as a `master helper` file that is
* loaded early on, and may also contain additional functions
* that you'd like to use throughout your entire application
*
* @see: https://codeigniter.com/user_guide/extending/common.html
*/

335
app/Config/App.php Normal file
View File

@@ -0,0 +1,335 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Session\Handlers\DatabaseHandler;
class App extends BaseConfig
{
/**
* This is the code version of the Open Source Point of Sale you're running.
*
* @var string
*/
public string $application_version = '3.4.2';
/**
* This is the commit hash for the version you are currently using.
*
* @var string
*/
public string $commit_sha1 = 'dev';
/**
* Logs are stored in writable/logs
*
* @var bool
*/
public bool $db_log_enabled = false;
/**
* DB Query Log only long-running queries
*
* @var bool
*/
public bool $db_log_only_long = false;
/**
* Defines whether to require/reroute to HTTPS
*
* @var bool
*/
public bool $https_on; // Set in the constructor
/**
* --------------------------------------------------------------------------
* Base Site URL
* --------------------------------------------------------------------------
*
* URL to your CodeIgniter root. Typically, this will be your base URL,
* WITH a trailing slash:
*
* E.g., http://example.com/
*/
public string $baseURL; // Defined in the constructor
/**
* Allowed Hostnames for the Site URL.
*
* Security: This is used to validate the HTTP Host header to prevent
* Host Header Injection attacks. If the Host header doesn't match
* an entry in this list, the request will use the first allowed hostname.
*
* IMPORTANT: This MUST be configured for production deployments.
* If empty, the application will fall back to 'localhost'.
*
* Configure via .env file:
* app.allowedHostnames.0 = 'example.com'
* app.allowedHostnames.1 = 'www.example.com'
*
* For local development:
* app.allowedHostnames.0 = 'localhost'
*
* @var list<string>
*/
public array $allowedHostnames = [];
/**
* --------------------------------------------------------------------------
* Index File
* --------------------------------------------------------------------------
*
* Typically, this will be your `index.php` file, unless you've renamed it to
* something else. If you have configured your web server to remove this file
* from your site URIs, set this variable to an empty string.
*/
public string $indexPage = '';
/**
* --------------------------------------------------------------------------
* URI PROTOCOL
* --------------------------------------------------------------------------
*
* This item determines which server global should be used to retrieve the
* URI string. The default setting of 'REQUEST_URI' works for most servers.
* If your links do not seem to work, try one of the other delicious flavors:
*
* 'REQUEST_URI': Uses $_SERVER['REQUEST_URI']
* 'QUERY_STRING': Uses $_SERVER['QUERY_STRING']
* 'PATH_INFO': Uses $_SERVER['PATH_INFO']
*
* WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
public string $uriProtocol = 'REQUEST_URI';
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.
|
| By default, only these are allowed: `a-z 0-9~%.:_-`
|
| Set an empty string to allow all characters -- but only if you are insane.
|
| The configured value is actually a regular expression character group
| and it will be used as: '/\A[<permittedURIChars>]+\z/iu'
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
public string $permittedURIChars = 'a-z 0-9~%.:_\-=';
/**
* --------------------------------------------------------------------------
* Default Locale
* --------------------------------------------------------------------------
*
* The Locale roughly represents the language and location that your visitor
* is viewing the site from. It affects the language strings and other
* strings (like currency markers, numbers, etc), that your program
* should run under for this request.
*/
public string $defaultLocale = 'en';
/**
* --------------------------------------------------------------------------
* Negotiate Locale
* --------------------------------------------------------------------------
*
* If true, the current Request object will automatically determine the
* language to use based on the value of the Accept-Language header.
*
* If false, no automatic detection will be performed.
*/
public bool $negotiateLocale = true;
/**
* --------------------------------------------------------------------------
* Supported Locales
* --------------------------------------------------------------------------
*
* If $negotiateLocale is true, this array lists the locales supported
* by the application in descending order of priority. If no match is
* found, the first locale will be used.
*
* IncomingRequest::setLocale() also uses this list.
*
* @var list<string>
*/
public array $supportedLocales = [
'ar-EG',
'ar-LB',
'az',
'bg',
'bs',
'ckb',
'cs',
'da',
'de-CH',
'de-DE',
'el',
'en',
'en-GB',
'es-ES',
'es-MX',
'fa',
'fr',
'he',
'hr-HR',
'hu',
'hy',
'id',
'it',
'km',
'lo',
'ml',
'nb',
'nl-BE',
'nl-NL',
'pl',
'pt-BR',
'ro',
'ru',
'sv',
'ta',
'th',
'tl',
'tr',
'uk',
'ur',
'vi',
'zh-Hans',
'zh-Hant',
];
/**
* --------------------------------------------------------------------------
* Application Timezone
* --------------------------------------------------------------------------
*
* The default timezone that will be used in your application to display
* dates with the date helper, and can be retrieved through app_timezone()
*
* @see https://www.php.net/manual/en/timezones.php for list of timezones
* supported by PHP.
*/
public string $appTimezone = 'UTC';
/**
* --------------------------------------------------------------------------
* Default Character Set
* --------------------------------------------------------------------------
*
* This determines which character set is used by default in various methods
* that require a character set to be provided.
*
* @see http://php.net/htmlspecialchars for a list of supported charsets.
*/
public string $charset = 'UTF-8';
/**
* --------------------------------------------------------------------------
* Force Global Secure Requests
* --------------------------------------------------------------------------
*
* If true, this will force every request made to this application to be
* made via a secure connection (HTTPS). If the incoming request is not
* secure, the user will be redirected to a secure version of the page
* and the HTTP Strict Transport Security (HSTS) header will be set.
*/
public bool $forceGlobalSecureRequests = false;
/**
* --------------------------------------------------------------------------
* Reverse Proxy IPs
* --------------------------------------------------------------------------
*
* If your server is behind a reverse proxy, you must whitelist the proxy
* IP addresses from which CodeIgniter should trust headers such as
* X-Forwarded-For or Client-IP in order to properly identify
* the visitor's IP address.
*
* You need to set a proxy IP address or IP address with subnets and
* the HTTP header for the client IP address.
*
* Here are some examples:
* [
* '10.0.1.200' => 'X-Forwarded-For',
* '192.168.5.0/24' => 'X-Real-IP',
* ]
*
* @var array<string, string>
*/
public array $proxyIPs = [];
/**
* --------------------------------------------------------------------------
* Content Security Policy
* --------------------------------------------------------------------------
*
* Enables the Response's Content Secure Policy to restrict the sources that
* can be used for images, scripts, CSS files, audio, video, etc. If enabled,
* the Response object will populate default values for the policy from the
* `ContentSecurityPolicy.php` file. Controllers can always add to those
* restrictions at run time.
*
* For a better understanding of CSP, see these documents:
*
* @see http://www.html5rocks.com/en/tutorials/security/content-security-policy/
* @see http://www.w3.org/TR/CSP/
*/
public bool $CSPEnabled = false; // TODO: Currently CSP3 tags are not supported so enabling this causes problems with script-src-elem, style-src-attr and style-src-elem
public function __construct()
{
parent::__construct();
$this->https_on = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_ENV['FORCE_HTTPS']) && $_ENV['FORCE_HTTPS'] == 'true');
$host = $this->getValidHost();
$this->baseURL = $this->https_on ? 'https' : 'http';
$this->baseURL .= '://' . $host . '/';
$this->baseURL .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
}
/**
* Validates and returns a trusted hostname.
*
* Security: Prevents Host Header Injection attacks (GHSA-jchf-7hr6-h4f3)
* by validating the HTTP_HOST against a whitelist of allowed hostnames.
*
* @return string A validated hostname
*/
private function getValidHost(): string
{
$httpHost = $_SERVER['HTTP_HOST'] ?? 'localhost';
if (empty($this->allowedHostnames)) {
log_message('warning',
'Security: allowedHostnames is not configured. ' .
'Host header injection protection is disabled. ' .
'Please set app.allowedHostnames in your .env file. ' .
'Received Host: ' . $httpHost
);
return 'localhost';
}
if (in_array($httpHost, $this->allowedHostnames, true)) {
return $httpHost;
}
log_message('warning',
'Security: Rejected HTTP_HOST "' . $httpHost . '" - not in allowedHostnames whitelist. ' .
'Using fallback: ' . $this->allowedHostnames[0]
);
return $this->allowedHostnames[0];
}
}

210
app/Config/Autoload.php Normal file
View File

@@ -0,0 +1,210 @@
<?php
namespace Config;
use CodeIgniter\Config\AutoloadConfig;
/**
* -------------------------------------------------------------------
* AUTOLOADER CONFIGURATION
* -------------------------------------------------------------------
*
* This file defines the namespaces and class maps so the Autoloader
* can find the files as needed.
*
* NOTE: If you use an identical key in $psr4 or $classmap, then
* the values in this file will overwrite the framework's values.
*
* NOTE: This class is required prior to Autoloader instantiation,
* and does not extend BaseConfig.
*
* @immutable
*/
class Autoload extends AutoloadConfig
{
/**
* -------------------------------------------------------------------
* Namespaces
* -------------------------------------------------------------------
* This maps the locations of any namespaces in your application to
* their location on the file system. These are used by the autoloader
* to locate files the first time they have been instantiated.
*
* The 'Config' (APPPATH . 'Config') and 'CodeIgniter' (SYSTEMPATH) are
* already mapped for you.
*
* You may change the name of the 'App' namespace if you wish,
* but this should be done prior to creating any namespaced classes,
* else you will need to modify all of those classes for this to work.
*
* @var array<string, list<string>|string>
*/
public $psr4 = [
APP_NAMESPACE => APPPATH,
'Config' => APPPATH . 'Config',
'dompdf' => APPPATH . 'ThirdParty/dompdf/src'
];
/**
* -------------------------------------------------------------------
* Class Map
* -------------------------------------------------------------------
* The class map provides a map of class names and their exact
* location on the drive. Classes loaded in this manner will have
* slightly faster performance because they will not have to be
* searched for within one or more directories as they would if they
* were being autoloaded through a namespace.
*
* Prototype:
* $classmap = [
* 'MyClass' => '/path/to/class/file.php'
* ];
*
* @var array<string, string>
*/
public $classmap = [
// Controllers
'Attributes' => '/App/Controllers/Attributes.php',
'Cashups' => '/App/Controllers/Cashups.php',
'Config' => '/App/Controllers/Config.php',
'Customers' => '/App/Controllers/Customers.php',
'Employees' => '/App/Controllers/Employees.php',
'Expenses' => '/App/Controllers/Expenses.php',
'Expenses_categories' => '/App/Controllers/Expenses_categories.php',
'Giftcards' => '/App/Controllers/Giftcards.php',
'Home' => '/App/Controllers/Home.php',
'Item_kits' => '/App/Controllers/Item_kits.php',
'Items' => '/App/Controllers/Items.php',
'Login' => '/App/Controllers/Login.php',
'Messages' => '/App/Controllers/Messages.php',
'No_access' => '/App/Controllers/No_access.php',
'Office' => '/App/Controllers/Office.php',
'Persons' => '/App/Controllers/Persons.php',
'Receivings' => '/App/Controllers/Receivings.php',
'Reports' => '/App/Controllers/Reports.php',
'Sales' => '/App/Controllers/Sales.php',
'Secure_Controller' => '/App/Controllers/Secure_Controller.php',
'Suppliers' => '/App/Controllers/Suppliers.php',
'Tax_categories' => '/App/Controllers/Tax_categories.php',
'Tax_codes' => '/App/Controllers/Tax_codes.php',
'Tax_jurisdictions' => '/App/Controllers/Tax_jurisdictions.php',
'Taxes' => '/App/Controllers/Taxes.php',
// Models
'Appconfig' => '/App/Models/Appconfig.php',
'Attribute' => '/App/Models/Attribute.php',
'Cashup' => '/App/Models/Cashup.php',
'Customer' => '/App/Models/Customer.php',
'Customer_rewards' => '/App/Models/Customer_rewards.php',
'Dinner_table' => '/App/Models/Dinner_table.php',
'Employee' => '/App/Models/Employee.php',
'Expense' => '/App/Models/Expense.php',
'Expense_category' => '/App/Models/Expense_category.php',
'Giftcard' => '/App/Models/Giftcard.php',
'Inventory' => '/App/Models/Inventory.php',
'Item_kit' => '/App/Models/Item_kit.php',
'Item_kit_items' => '/App/Models/Item_kit_items.php',
'Item_quantity' => '/App/Models/Item_quantity.php',
'Item_taxes' => '/App/Models/Item_taxes.php',
'Module' => '/App/Models/Module.php',
'Person' => '/App/Models/Person.php',
'Receiving' => '/App/Models/Receiving.php',
'Rewards' => '/App/Models/Rewards.php',
'Sale' => '/App/Models/Sale.php',
'Stock_location' => '/App/Models/Stock_location.php',
'Supplier' => '/App/Models/Supplier.php',
'Tax' => '/App/Models/Tax.php',
'Tax_category' => '/App/Models/Tax_category.php',
'Tax_code' => '/App/Models/Tax_code.php',
'Tax_jurisdiction' => '/App/Models/Tax_jurisdiction.php',
// Reports
'Report' => '/App/Models/Reports/Report.php',
'Detailed_receiving' => '/App/Models/Reports/Detailed_receiving.php',
'Detailed_sales' => '/App/Models/Reports/Detailed_sales.php',
'Inventory_low' => '/App/Models/Reports/Inventory_low.php',
'Inventory_summary' => '/App/Models/Reports/Inventory_summary.php',
'Specific_customer' => '/App/Models/Reports/Specific_customer.php',
'Specific_discount' => '/App/Models/Reports/Specific_discount.php',
'Specific_employee' => '/App/Models/Reports/Specific_employee.php',
'Specific_supplier' => '/App/Models/Reports/Specific_supplier.php',
'Summary_categories' => '/App/Models/Reports/Summary_categories.php',
'Summary_customers' => '/App/Models/Reports/Summary_customers.php',
'Summary_discounts' => '/App/Models/Reports/Summary_discounts.php',
'Summary_employees' => '/App/Models/Reports/Summary_employees.php',
'Summary_expenses_categories' => '/App/Models/Reports/Summary_expenses_categories.php',
'Summary_items' => '/App/Models/Reports/Summary_items.php',
'Summary_payments' => '/App/Models/Reports/Summary_payments.php',
'Summary_report' => '/App/Models/Reports/Summary_report.php',
'Summary_sales' => '/App/Models/Reports/Summary_sales.php',
'Summary_sales_taxes' => '/App/Models/Reports/Summary_sales_taxes.php',
'Summary_suppliers' => '/App/Models/Reports/Summary_suppliers.php',
'Summary_taxes' => '/App/Models/Reports/Summary_taxes.php',
// Tokens
'Token' => '/App/Models/Tokens/Token.php',
'Token_barcode_ean' => '/App/Models/Tokens/Token_barcode_ean.php',
'Token_barcode_price' => '/App/Models/Tokens/Token_barcode_price.php',
'Token_barcode_weight' => '/App/Models/Tokens/Token_barcode_weight.php',
'Token_customer' => '/App/Models/Tokens/Token_customer.php',
'Token_invoice_count' => '/App/Models/Tokens/Token_invoice_count.php',
'Token_invoice_sequence' => '/App/Models/Tokens/Token_invoice_sequence.php',
'Token_quote_sequence' => '/App/Models/Tokens/Token_quote_sequence.php',
'Token_suspended_invoice_count' => '/App/Models/Tokens/Token_suspended_invoice_count.php',
'Token_work_order_sequence' => '/App/Models/Tokens/Token_work_order_sequence.php',
'Token_year_invoice_count' => '/App/Models/Tokens/Token_year_invoice_count.php',
'Token_year_quote_count' => '/App/Models/Tokens/Token_year_quote_count.php',
// Libraries
'Barcode_lib' => '/App/Libraries/Barcode_lib.php',
'Email_lib' => '/App/Libraries/Email_lib.php',
'Item_lib' => '/App/Libraries/Item_lib.php',
'Mailchimp_lib' => '/App/Libraries/Mailchimp_lib.php',
'MY_Email' => '/App/Libraries/MY_Email.php',
'MY_Migration' => '/App/Libraries/MY_Migration.php',
'Receving_lib' => '/App/Libraries/Receiving_lib.php',
'Sale_lib' => '/App/Libraries/Sale_lib.php',
'Sms_lib' => '/App/Libraries/Sms_lib.php',
'Tax_lib' => '/App/Libraries/Tax_lib.php',
'Token_lib' => '/App/Libraries/Token_lib.php',
// Miscellaneous
'Rounding_mode' => '/App/Models/Enums/Rounding_mode.php'
];
/**
* -------------------------------------------------------------------
* Files
* -------------------------------------------------------------------
* The files array provides a list of paths to __non-class__ files
* that will be autoloaded. This can be useful for bootstrap operations
* or for loading functions.
*
* Prototype:
* $files = [
* '/path/to/my/file.php',
* ];
*
* @var list<string>
*/
public $files = [];
/**
* -------------------------------------------------------------------
* Helpers
* -------------------------------------------------------------------
* Prototype:
* $helpers = [
* 'form',
* ];
*
* @var list<string>
*/
public $helpers = [
'form',
'cookie',
'tabular',
'locale',
'security'
];
}

View File

@@ -0,0 +1,34 @@
<?php
/*
|--------------------------------------------------------------------------
| ERROR DISPLAY
|--------------------------------------------------------------------------
| In development, we want to show as many errors as possible to help
| make sure they don't make it to production. And save us hours of
| painful debugging.
|
| If you set 'display_errors' to '1', CI4's detailed error report will show.
*/
error_reporting(E_ALL);
ini_set('display_errors', '1');
/*
|--------------------------------------------------------------------------
| DEBUG BACKTRACES
|--------------------------------------------------------------------------
| If true, this constant will tell the error screens to display debug
| backtraces along with the other error information. If you would
| prefer to not see this, set this value to false.
*/
defined('SHOW_DEBUG_BACKTRACE') || define('SHOW_DEBUG_BACKTRACE', true);
/*
|--------------------------------------------------------------------------
| DEBUG MODE
|--------------------------------------------------------------------------
| Debug mode is an experimental flag that can allow changes throughout
| the system. This will control whether Kint is loaded, and a few other
| items. It can always be used within your own application too.
*/
defined('CI_DEBUG') || define('CI_DEBUG', true);

View File

@@ -0,0 +1,25 @@
<?php
/*
|--------------------------------------------------------------------------
| ERROR DISPLAY
|--------------------------------------------------------------------------
| Don't show ANY in production environments. Instead, let the system catch
| it and display a generic error message.
|
| If you set 'display_errors' to '1', CI4's detailed error report will show.
*/
error_reporting(E_ALL & ~E_DEPRECATED);
// If you want to suppress more types of errors.
// error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
ini_set('display_errors', '0');
/*
|--------------------------------------------------------------------------
| DEBUG MODE
|--------------------------------------------------------------------------
| Debug mode is an experimental flag that can allow changes throughout
| the system. It's not widely used currently, and may not survive
| release of the framework.
*/
defined('CI_DEBUG') || define('CI_DEBUG', false);

View File

@@ -0,0 +1,23 @@
<?php
/*
|--------------------------------------------------------------------------
| ERROR DISPLAY
|--------------------------------------------------------------------------
*/
error_reporting(E_ALL);
ini_set('display_errors', '1');
/*
|--------------------------------------------------------------------------
| DEBUG BACKTRACES
|--------------------------------------------------------------------------
*/
defined('SHOW_DEBUG_BACKTRACE') || define('SHOW_DEBUG_BACKTRACE', true);
/*
|--------------------------------------------------------------------------
| DEBUG MODE
|--------------------------------------------------------------------------
*/
defined('CI_DEBUG') || define('CI_DEBUG', true);

View File

@@ -0,0 +1,20 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class CURLRequest extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* CURLRequest Share Options
* --------------------------------------------------------------------------
*
* Whether share options between requests or not.
*
* If true, all the options won't be reset between requests.
* It may cause an error request with unnecessary headers.
*/
public bool $shareOptions = false;
}

161
app/Config/Cache.php Normal file
View File

@@ -0,0 +1,161 @@
<?php
namespace Config;
use CodeIgniter\Cache\CacheInterface;
use CodeIgniter\Cache\Handlers\DummyHandler;
use CodeIgniter\Cache\Handlers\FileHandler;
use CodeIgniter\Cache\Handlers\MemcachedHandler;
use CodeIgniter\Cache\Handlers\PredisHandler;
use CodeIgniter\Cache\Handlers\RedisHandler;
use CodeIgniter\Cache\Handlers\WincacheHandler;
use CodeIgniter\Config\BaseConfig;
class Cache extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Primary Handler
* --------------------------------------------------------------------------
*
* The name of the preferred handler that should be used. If for some reason
* it is not available, the $backupHandler will be used in its place.
*/
public string $handler = 'file';
/**
* --------------------------------------------------------------------------
* Backup Handler
* --------------------------------------------------------------------------
*
* The name of the handler that will be used in case the first one is
* unreachable. Often, 'file' is used here since the filesystem is
* always available, though that's not always practical for the app.
*/
public string $backupHandler = 'dummy';
/**
* --------------------------------------------------------------------------
* Key Prefix
* --------------------------------------------------------------------------
*
* This string is added to all cache item names to help avoid collisions
* if you run multiple applications with the same cache engine.
*/
public string $prefix = '';
/**
* --------------------------------------------------------------------------
* Default TTL
* --------------------------------------------------------------------------
*
* The default number of seconds to save items when none is specified.
*
* WARNING: This is not used by framework handlers where 60 seconds is
* hard-coded, but may be useful to projects and modules. This will replace
* the hard-coded value in a future release.
*/
public int $ttl = 300;
/**
* --------------------------------------------------------------------------
* Reserved Characters
* --------------------------------------------------------------------------
*
* A string of reserved characters that will not be allowed in keys or tags.
* Strings that violate this restriction will cause handlers to throw.
* Default: {}()/\@:
*
* NOTE: The default set is required for PSR-6 compliance.
*/
public string $reservedCharacters = '{}()/\@:';
/**
* --------------------------------------------------------------------------
* File settings
* --------------------------------------------------------------------------
*
* Your file storage preferences can be specified below, if you are using
* the File driver.
*
* @var array<string, int|string|null>
*/
public array $file = [
'storePath' => WRITEPATH . 'cache/',
'mode' => 0640,
];
/**
* -------------------------------------------------------------------------
* Memcached settings
* -------------------------------------------------------------------------
*
* Your Memcached servers can be specified below, if you are using
* the Memcached drivers.
*
* @see https://codeigniter.com/user_guide/libraries/caching.html#memcached
*
* @var array<string, bool|int|string>
*/
public array $memcached = [
'host' => '127.0.0.1',
'port' => 11211,
'weight' => 1,
'raw' => false,
];
/**
* -------------------------------------------------------------------------
* Redis settings
* -------------------------------------------------------------------------
* Your Redis server can be specified below, if you are using
* the Redis or Predis drivers.
*
* @var array<string, int|string|null>
*/
public array $redis = [
'host' => '127.0.0.1',
'password' => null,
'port' => 6379,
'timeout' => 0,
'database' => 0,
];
/**
* --------------------------------------------------------------------------
* Available Cache Handlers
* --------------------------------------------------------------------------
*
* This is an array of cache engine alias' and class names. Only engines
* that are listed here are allowed to be used.
*
* @var array<string, class-string<CacheInterface>>
*/
public array $validHandlers = [
'dummy' => DummyHandler::class,
'file' => FileHandler::class,
'memcached' => MemcachedHandler::class,
'predis' => PredisHandler::class,
'redis' => RedisHandler::class,
'wincache' => WincacheHandler::class,
];
/**
* --------------------------------------------------------------------------
* Web Page Caching: Cache Include Query String
* --------------------------------------------------------------------------
*
* Whether to take the URL query string into consideration when generating
* output cache files. Valid options are:
*
* false = Disabled
* true = Enabled, take all query parameters into account.
* Please be aware that this may result in numerous cache
* files generated for the same page over and over again.
* ['q'] = Enabled, but only take into account the specified list
* of query parameters.
*
* @var bool|list<string>
*/
public $cacheQueryString = false;
}

176
app/Config/Constants.php Normal file
View File

@@ -0,0 +1,176 @@
<?php
/*
| --------------------------------------------------------------------
| App Namespace
| --------------------------------------------------------------------
|
| This defines the default Namespace that is used throughout
| CodeIgniter to refer to the Application directory. Change
| this constant to change the namespace that all application
| classes should use.
|
| NOTE: changing this will require manually modifying the
| existing namespaces of App\* namespaced-classes.
*/
defined('APP_NAMESPACE') || define('APP_NAMESPACE', 'App');
/*
| --------------------------------------------------------------------------
| Composer Path
| --------------------------------------------------------------------------
|
| The path that Composer's autoload file is expected to live. By default,
| the vendor folder is in the Root directory, but you can customize that here.
*/
defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . 'vendor/autoload.php');
/*
|--------------------------------------------------------------------------
| Timing Constants
|--------------------------------------------------------------------------
|
| Provide simple ways to work with the myriad of PHP functions that
| require information to be in seconds.
*/
defined('SECOND') || define('SECOND', 1);
defined('MINUTE') || define('MINUTE', 60);
defined('HOUR') || define('HOUR', 3600);
defined('DAY') || define('DAY', 86400);
defined('WEEK') || define('WEEK', 604800);
defined('MONTH') || define('MONTH', 2_592_000);
defined('YEAR') || define('YEAR', 31_536_000);
defined('DECADE') || define('DECADE', 315_360_000);
defined('DEFAULT_DATE') || define('DEFAULT_DATE', mktime(0, 0, 0, 1, 1, 2010));
defined('DEFAULT_DATETIME') || define('DEFAULT_DATETIME', mktime(0, 0, 0, 1, 1, 2010));
defined('NOW') || define('NOW', time());
/*
| --------------------------------------------------------------------------
| Exit Status Codes
| --------------------------------------------------------------------------
|
| Used to indicate the conditions under which the script is exit()ing.
| While there is no universal standard for error codes, there are some
| broad conventions. Three such conventions are mentioned below, for
| those who wish to make use of them. The CodeIgniter defaults were
| chosen for the least overlap with these conventions, while still
| leaving room for others to be defined in future versions and user
| applications.
|
| The three main conventions used for determining exit status codes
| are as follows:
|
| Standard C/C++ Library (stdlibc):
| http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
| (This link also contains other GNU-specific conventions)
| BSD sysexits.h:
| http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
| Bash scripting:
| http://tldp.org/LDP/abs/html/exitcodes.html
|
*/
defined('EXIT_SUCCESS') || define('EXIT_SUCCESS', 0); // no errors
defined('EXIT_ERROR') || define('EXIT_ERROR', 1); // generic error
defined('EXIT_CONFIG') || define('EXIT_CONFIG', 3); // configuration error
defined('EXIT_UNKNOWN_FILE') || define('EXIT_UNKNOWN_FILE', 4); // file not found
defined('EXIT_UNKNOWN_CLASS') || define('EXIT_UNKNOWN_CLASS', 5); // unknown class
defined('EXIT_UNKNOWN_METHOD') || define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
defined('EXIT_USER_INPUT') || define('EXIT_USER_INPUT', 7); // invalid user input
defined('EXIT_DATABASE') || define('EXIT_DATABASE', 8); // database error
defined('EXIT__AUTO_MIN') || define('EXIT__AUTO_MIN', 9); // lowest automatically-assigned error code
defined('EXIT__AUTO_MAX') || define('EXIT__AUTO_MAX', 125); // highest automatically-assigned error code
/**
* Global Constants.
*/
const NEW_ENTRY = -1;
const ACTIVE = 0;
const DELETED = 1;
/**
* Attribute Related Constants.
*/
const GROUP = 'GROUP';
const DROPDOWN = 'DROPDOWN';
const DECIMAL = 'DECIMAL';
const DATE = 'DATE';
const TEXT = 'TEXT';
const CHECKBOX = 'CHECKBOX';
const NO_DEFINITION_ID = 0;
const CATEGORY_DEFINITION_ID = -1;
const DEFINITION_TYPES = [GROUP, DROPDOWN, DECIMAL, TEXT, DATE, CHECKBOX];
/**
* Item Related Constants.
*/
const HAS_STOCK = 0;
const HAS_NO_STOCK = 1;
const ITEM = 0;
const ITEM_KIT = 1;
const ITEM_AMOUNT_ENTRY = 2;
const ITEM_TEMP = 3;
const NEW_ITEM = -1;
const PRINT_ALL = 0;
const PRINT_PRICED = 1;
const PRINT_KIT = 2;
const PRINT_YES = 0;
const PRINT_NO = 1;
const PRICE_ALL = 0;
const PRICE_KIT = 1;
const PRICE_KIT_ITEMS = 2;
const PRICE_OPTION_ALL = 0;
const PRICE_OPTION_KIT = 1;
const PRICE_OPTION_KIT_STOCK = 2;
const NAME_SEPARATOR = ' | ';
/**
* Sale Related Constants.
*/
const COMPLETED = 0;
const SUSPENDED = 1;
const CANCELED = 2;
const SALE_TYPE_POS = 0;
const SALE_TYPE_INVOICE = 1;
const SALE_TYPE_WORK_ORDER = 2;
const SALE_TYPE_QUOTE = 3;
const SALE_TYPE_RETURN = 4;
const PERCENT = 0;
const FIXED = 1;
const PRICE_MODE_STANDARD = 0;
const PRICE_MODE_KIT = 1;
const PAYMENT_TYPE_UNASSIGNED = '--';
const CASH_ADJUSTMENT_TRUE = 1;
const CASH_ADJUSTMENT_FALSE = 0;
const CASH_MODE_TRUE = 1;
const CASH_MODE_FALSE = 0;
/**
* Supplier Related Constants
*/
const GOODS_SUPPLIER = 0;
const COST_SUPPLIER = 1;
/**
* Locale Related Constants
*/
const MAX_PRECISION = 1e14;
const DEFAULT_PRECISION = 2;
const DEFAULT_LANGUAGE = 'english';
const DEFAULT_LANGUAGE_CODE = 'en';
/**
* Admin modules - list of modules required for admin privileges
*/
const ADMIN_MODULES = ['customers', 'employees', 'giftcards', 'items', 'item_kits', 'messages', 'receivings', 'reports', 'sales', 'config', 'suppliers'];

View File

@@ -0,0 +1,200 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Stores the default settings for the ContentSecurityPolicy, if you
* choose to use it. The values here will be read in and set as defaults
* for the site. If needed, they can be overridden on a page-by-page basis.
*
* Suggested reference for explanations:
*
* @see https://www.html5rocks.com/en/tutorials/security/content-security-policy/
*/
class ContentSecurityPolicy extends BaseConfig
{
// -------------------------------------------------------------------------
// Broadbrush CSP management
// -------------------------------------------------------------------------
/**
* Default CSP report context
*/
public bool $reportOnly = false;
/**
* Specifies a URL where a browser will send reports
* when a content security policy is violated.
*/
public ?string $reportURI = null;
/**
* Instructs user agents to rewrite URL schemes, changing
* HTTP to HTTPS. This directive is for websites with
* large numbers of old URLs that need to be rewritten.
*/
public bool $upgradeInsecureRequests = false;
// -------------------------------------------------------------------------
// Sources allowed
// NOTE: once you set a policy to 'none', it cannot be further restricted
// -------------------------------------------------------------------------
/**
* Will default to self if not overridden
*
* @var list<string>|string|null
*/
public $defaultSrc = [
'self',
'www.google.com',
];
/**
* Lists allowed scripts' URLs.
*
* @var list<string>|string
*/
public $scriptSrc = [
'self',
'unsafe-inline',
'unsafe-eval',
'www.google.com www.gstatic.com'
];
/**
* Lists allowed stylesheets' URLs.
*
* @var list<string>|string
*/
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',
'data:',
'blob:',
];
/**
* Restricts the URLs that can appear in a page's `<base>` element.
*
* Will default to self if not overridden
*
* @var list<string>|string|null
*/
public $baseURI;
/**
* Lists the URLs for workers and embedded frame contents
*
* @var list<string>|string
*/
public $childSrc = 'self';
/**
* Limits the origins that you can connect to (via XHR,
* WebSockets, and EventSource).
*
* @var list<string>|string
*/
public $connectSrc = [
'self',
'nominatim.openstreetmap.org',
];
/**
* Specifies the origins that can serve web fonts.
*
* @var list<string>|string
*/
public $fontSrc = [
'self',
'fonts.googleapis.com',
'fonts.gstatic.com',
];
/**
* Lists valid endpoints for submission from `<form>` tags.
*
* @var list<string>|string
*/
public $formAction = 'self';
/**
* Specifies the sources that can embed the current page.
* This directive applies to `<frame>`, `<iframe>`, `<embed>`,
* and `<applet>` tags. This directive can't be used in
* `<meta>` tags and applies only to non-HTML resources.
*
* @var list<string>|string|null
*/
public $frameAncestors;
/**
* The frame-src directive restricts the URLs which may
* be loaded into nested browsing contexts.
*
* @var list<string>|string|null
*/
public $frameSrc;
/**
* Restricts the origins allowed to deliver video and audio.
*
* @var list<string>|string|null
*/
public $mediaSrc;
/**
* Allows control over Flash and other plugins.
*
* @var list<string>|string
*/
public $objectSrc = 'none';
/**
* @var list<string>|string|null
*/
public $manifestSrc;
/**
* Limits the kinds of plugins a page may invoke.
*
* @var list<string>|string|null
*/
public $pluginTypes;
/**
* List of actions allowed.
*
* @var list<string>|string|null
*/
public $sandbox;
/**
* Nonce tag for style
*/
public string $styleNonceTag = '{csp-style-nonce}';
/**
* Nonce tag for script
*/
public string $scriptNonceTag = '{csp-script-nonce}';
/**
* Replace nonce tag automatically
*/
public bool $autoNonce = true;
}

107
app/Config/Cookie.php Normal file
View File

@@ -0,0 +1,107 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use DateTimeInterface;
class Cookie extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Cookie Prefix
* --------------------------------------------------------------------------
*
* Set a cookie name prefix if you need to avoid collisions.
*/
public string $prefix = '';
/**
* --------------------------------------------------------------------------
* Cookie Expires Timestamp
* --------------------------------------------------------------------------
*
* Default expires timestamp for cookies. Setting this to `0` will mean the
* cookie will not have the `Expires` attribute and will behave as a session
* cookie.
*
* @var DateTimeInterface|int|string
*/
public $expires = 0;
/**
* --------------------------------------------------------------------------
* Cookie Path
* --------------------------------------------------------------------------
*
* Typically will be a forward slash.
*/
public string $path = '/';
/**
* --------------------------------------------------------------------------
* Cookie Domain
* --------------------------------------------------------------------------
*
* Set to `.your-domain.com` for site-wide cookies.
*/
public string $domain = '';
/**
* --------------------------------------------------------------------------
* Cookie Secure
* --------------------------------------------------------------------------
*
* Cookie will only be set if a secure HTTPS connection exists.
*/
public bool $secure = false;
/**
* --------------------------------------------------------------------------
* Cookie HTTPOnly
* --------------------------------------------------------------------------
*
* Cookie will only be accessible via HTTP(S) (no JavaScript).
*/
public bool $httponly = true;
/**
* --------------------------------------------------------------------------
* Cookie SameSite
* --------------------------------------------------------------------------
*
* Configure cookie SameSite setting. Allowed values are:
* - None
* - Lax
* - Strict
* - ''
*
* Alternatively, you can use the constant names:
* - `Cookie::SAMESITE_NONE`
* - `Cookie::SAMESITE_LAX`
* - `Cookie::SAMESITE_STRICT`
*
* Defaults to `Lax` for compatibility with modern browsers. Setting `''`
* (empty string) means default SameSite attribute set by browsers (`Lax`)
* will be set on cookies. If set to `None`, `$secure` must also be set.
*
* @phpstan-var 'None'|'Lax'|'Strict'|''
*/
public string $samesite = 'Lax';
/**
* --------------------------------------------------------------------------
* Cookie Raw
* --------------------------------------------------------------------------
*
* This flag allows setting a "raw" cookie, i.e., its name and value are
* not URL encoded using `rawurlencode()`.
*
* If this is set to `true`, cookie names should be compliant of RFC 2616's
* list of allowed characters.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#attributes
* @see https://tools.ietf.org/html/rfc2616#section-2.2
*/
public bool $raw = false;
}

105
app/Config/Cors.php Normal file
View File

@@ -0,0 +1,105 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Cross-Origin Resource Sharing (CORS) Configuration
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
*/
class Cors extends BaseConfig
{
/**
* The default CORS configuration.
*
* @var array{
* allowedOrigins: list<string>,
* allowedOriginsPatterns: list<string>,
* supportsCredentials: bool,
* allowedHeaders: list<string>,
* exposedHeaders: list<string>,
* allowedMethods: list<string>,
* maxAge: int,
* }
*/
public array $default = [
/**
* Origins for the `Access-Control-Allow-Origin` header.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
*
* E.g.:
* - ['http://localhost:8080']
* - ['https://www.example.com']
*/
'allowedOrigins' => [],
/**
* Origin regex patterns for the `Access-Control-Allow-Origin` header.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
*
* NOTE: A pattern specified here is part of a regular expression. It will
* be actually `#\A<pattern>\z#`.
*
* E.g.:
* - ['https://\w+\.example\.com']
*/
'allowedOriginsPatterns' => [],
/**
* Weather to send the `Access-Control-Allow-Credentials` header.
*
* The Access-Control-Allow-Credentials response header tells browsers whether
* the server allows cross-origin HTTP requests to include credentials.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
*/
'supportsCredentials' => false,
/**
* Set headers to allow.
*
* The Access-Control-Allow-Headers response header is used in response to
* a preflight request which includes the Access-Control-Request-Headers to
* indicate which HTTP headers can be used during the actual request.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
*/
'allowedHeaders' => [],
/**
* Set headers to expose.
*
* The Access-Control-Expose-Headers response header allows a server to
* indicate which response headers should be made available to scripts running
* in the browser, in response to a cross-origin request.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
*/
'exposedHeaders' => [],
/**
* Set methods to allow.
*
* The Access-Control-Allow-Methods response header specifies one or more
* methods allowed when accessing a resource in response to a preflight
* request.
*
* E.g.:
* - ['GET', 'POST', 'PUT', 'DELETE']
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
*/
'allowedMethods' => [],
/**
* Set how many seconds the results of a preflight request can be cached.
*
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age
*/
'maxAge' => 7200,
];
}

139
app/Config/Database.php Normal file
View File

@@ -0,0 +1,139 @@
<?php
namespace Config;
use CodeIgniter\Database\Config;
/**
* Database Configuration
*/
class Database extends Config
{
/**
* The directory that holds the Migrations and Seeds directories.
*/
public string $filesPath = APPPATH . 'Database' . DIRECTORY_SEPARATOR;
/**
* Lets you choose which connection group to use if no other is specified.
*/
public string $defaultGroup = 'default';
/**
* The default database connection.
*
* @var array<string, mixed>
*/
public array $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'admin',
'password' => 'pointofsale',
'database' => 'ospos',
'DBDriver' => 'MySQLi',
'DBPrefix' => 'ospos_',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8mb4',
'DBCollat' => 'utf8mb4_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
'dateFormat' => [
'date' => 'Y-m-d',
'datetime' => 'Y-m-d H:i:s',
'time' => 'H:i:s',
],
];
/**
* This database connection is used when running PHPUnit database tests.
*
* @var array<string, mixed>
*/
public array $tests = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'admin',
'password' => 'pointofsale',
'database' => 'ospos',
'DBDriver' => 'MySQLi',
'DBPrefix' => 'ospos_',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8mb4',
'DBCollat' => 'utf8mb4_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
'foreignKeys' => true,
'busyTimeout' => 1000,
'dateFormat' => [
'date' => 'Y-m-d',
'datetime' => 'Y-m-d H:i:s',
'time' => 'H:i:s',
],
];
/**
* This database connection is used when developing against non-production data.
*
* @var array
*/
public $development = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'admin',
'password' => 'pointofsale',
'database' => 'ospos',
'DBDriver' => 'MySQLi',
'DBPrefix' => 'ospos_',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8mb4',
'DBCollat' => 'utf8mb4_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
'foreignKeys' => true,
'busyTimeout' => 1000,
'dateFormat' => [
'date' => 'Y-m-d',
'datetime' => 'Y-m-d H:i:s',
'time' => 'H:i:s',
],
];
public function __construct()
{
parent::__construct();
// Ensure that we always set the database group to 'tests' if
// we are currently running an automated test suite, so that
// we don't overwrite live data on accident.
switch (ENVIRONMENT) {
case 'testing':
$this->defaultGroup = 'tests';
break;
case 'development';
$this->defaultGroup = 'development';
break;
}
foreach ([&$this->development, &$this->tests, &$this->default] as &$config) {
$config['hostname'] = !getenv('MYSQL_HOST_NAME') ? $config['hostname'] : getenv('MYSQL_HOST_NAME');
$config['username'] = !getenv('MYSQL_USERNAME') ? $config['username'] : getenv('MYSQL_USERNAME');
$config['password'] = !getenv('MYSQL_PASSWORD') ? $config['password'] : getenv('MYSQL_PASSWORD');
$config['database'] = !getenv('MYSQL_DB_NAME') ? $config['database'] : getenv('MYSQL_DB_NAME');
}
}
}

46
app/Config/DocTypes.php Normal file
View File

@@ -0,0 +1,46 @@
<?php
namespace Config;
/**
* @immutable
*/
class DocTypes
{
/**
* List of valid document types.
*
* @var array<string, string>
*/
public array $list = [
'xhtml11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
'xhtml1-strict' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
'xhtml1-trans' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
'xhtml1-frame' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
'xhtml-basic11' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
'html5' => '<!DOCTYPE html>',
'html4-strict' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">',
'html4-trans' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
'html4-frame' => '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">',
'mathml1' => '<!DOCTYPE math SYSTEM "http://www.w3.org/Math/DTD/mathml1/mathml.dtd">',
'mathml2' => '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">',
'svg10' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">',
'svg11' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">',
'svg11-basic' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">',
'svg11-tiny' => '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">',
'xhtml-math-svg-xh' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-math-svg-sh' => '<!DOCTYPE svg:svg PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">',
'xhtml-rdfa-1' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">',
'xhtml-rdfa-2' => '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">',
];
/**
* Whether to remove the solidus (`/`) character for void HTML elements (e.g. `<input>`)
* for HTML5 compatibility.
*
* Set to:
* `true` - to be HTML5 compatible
* `false` - to be XHTML compatible
*/
public bool $html5 = true;
}

121
app/Config/Email.php Normal file
View File

@@ -0,0 +1,121 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Email extends BaseConfig
{
public string $fromEmail = 'noreply@opensourcepos.org';
public string $fromName = 'Opensource Point of Sale';
public string $recipients = 'blackhole@none.com';
/**
* The "user agent"
*/
public string $userAgent = 'CodeIgniter';
/**
* The mail sending protocol: mail, sendmail, smtp
*/
public string $protocol = 'mail';
/**
* The server path to Sendmail.
*/
public string $mailPath = '/usr/sbin/sendmail';
/**
* SMTP Server Hostname
*/
public string $SMTPHost = 'mail.mxserver.com';
/**
* SMTP Username
*/
public string $SMTPUser = 'user';
/**
* SMTP Password
*/
public string $SMTPPass = 'pass';
/**
* SMTP Port
*/
public int $SMTPPort = 25;
/**
* SMTP Timeout (in seconds)
*/
public int $SMTPTimeout = 5;
/**
* Enable persistent SMTP connections
*/
public bool $SMTPKeepAlive = false;
/**
* SMTP Encryption.
*
* @var string '', 'tls' or 'ssl'. 'tls' will issue a STARTTLS command
* to the server. 'ssl' means implicit SSL. Connection on port
* 465 should set this to ''.
*/
public string $SMTPCrypto = 'tls';
/**
* Enable word-wrap
*/
public bool $wordWrap = true;
/**
* Character count to wrap at
*/
public int $wrapChars = 76;
/**
* Type of mail, either 'text' or 'html'
*/
public string $mailType = 'html';
/**
* Character set (utf-8, iso-8859-1, etc.)
*/
public string $charset = 'UTF-8';
/**
* Whether to validate the email address
*/
public bool $validate = false;
/**
* Email Priority. 1 = highest. 5 = lowest. 3 = normal
*/
public int $priority = 3;
/**
* Newline character. (Use “\r\n” to comply with RFC 822)
*/
public string $CRLF = "\r\n";
/**
* Newline character. (Use “\r\n” to comply with RFC 822)
*/
public string $newline = "\r\n";
/**
* Enable BCC Batch Mode.
*/
public bool $BCCBatchMode = false;
/**
* Number of emails in each BCC batch
*/
public int $BCCBatchSize = 200;
/**
* Enable notify message from server
*/
public bool $DSN = false;
}

92
app/Config/Encryption.php Normal file
View File

@@ -0,0 +1,92 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Encryption configuration.
*
* These are the settings used for encryption, if you don't pass a parameter
* array to the encrypter for creation/initialization.
*/
class Encryption extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Encryption Key Starter
* --------------------------------------------------------------------------
*
* If you use the Encryption class you must set an encryption key (seed).
* You need to ensure it is long enough for the cipher and mode you plan to use.
* See the user guide for more info.
*/
public string $key = '';
/**
* --------------------------------------------------------------------------
* Encryption Driver to Use
* --------------------------------------------------------------------------
*
* One of the supported encryption drivers.
*
* Available drivers:
* - OpenSSL
* - Sodium
*/
public string $driver = 'OpenSSL';
/**
* --------------------------------------------------------------------------
* SodiumHandler's Padding Length in Bytes
* --------------------------------------------------------------------------
*
* This is the number of bytes that will be padded to the plaintext message
* before it is encrypted. This value should be greater than zero.
*
* See the user guide for more information on padding.
*/
public int $blockSize = 16;
/**
* --------------------------------------------------------------------------
* Encryption digest
* --------------------------------------------------------------------------
*
* HMAC digest to use, e.g. 'SHA512' or 'SHA256'. Default value is 'SHA512'.
*/
public string $digest = 'SHA512';
/**
* Whether the cipher-text should be raw. If set to false, then it will be base64 encoded.
* This setting is only used by OpenSSLHandler.
*
* Set to false for CI3 Encryption compatibility.
*/
public bool $rawData = false;
/**
* Encryption key info.
* This setting is only used by OpenSSLHandler.
*
* Set to 'encryption' for CI3 Encryption compatibility.
*/
public string $encryptKeyInfo = '';
/**
* Authentication key info.
* This setting is only used by OpenSSLHandler.
*
* Set to 'authentication' for CI3 Encryption compatibility.
*/
public string $authKeyInfo = '';
/**
* Cipher to use.
* This setting is only used by OpenSSLHandler.
*
* Set to 'AES-128-CBC' to decrypt encrypted data that encrypted
* by CI3 Encryption default configuration.
*/
public string $cipher = 'AES-256-CTR';
}

67
app/Config/Events.php Normal file
View File

@@ -0,0 +1,67 @@
<?php
namespace Config;
use CodeIgniter\Events\Events;
use CodeIgniter\Exceptions\FrameworkException;
use CodeIgniter\HotReloader\HotReloader;
use App\Events\Db_log;
use App\Events\Load_config;
use App\Events\Method;
/*
* --------------------------------------------------------------------
* Application Events
* --------------------------------------------------------------------
* Events allow you to tap into the execution of the program without
* modifying or extending core files. This file provides a central
* location to define your events, though they can always be added
* at run-time, also, if needed.
*
* You create code that can execute by subscribing to events with
* the 'on()' method. This accepts any form of callable, including
* Closures, that will be executed when the event is triggered.
*
* Example:
* Events::on('create', [$myInstance, 'myMethod']);
*/
Events::on('pre_system', static function (): void {
if (ENVIRONMENT !== 'testing') {
if (ini_get('zlib.output_compression')) {
throw FrameworkException::forEnabledZlibOutputCompression();
}
while (ob_get_level() > 0) {
ob_end_flush();
}
ob_start(static fn ($buffer) => $buffer);
}
/*
* --------------------------------------------------------------------
* Debug Toolbar Listeners.
* --------------------------------------------------------------------
* If you delete, they will no longer be collected.
*/
if (CI_DEBUG && ! is_cli()) {
Events::on('DBQuery', 'CodeIgniter\Debug\Toolbar\Collectors\Database::collect');
service('toolbar')->respond();
// Hot Reload route - for framework use on the hot reloader.
if (ENVIRONMENT === 'development') {
service('routes')->get('__hot-reload', static function (): void {
(new HotReloader())->run();
});
}
}
});
$config = new Load_config();
Events::on('post_controller_constructor', [$config, 'load_config']);
$db_log = new Db_log();
Events::on('DBQuery', [$db_log, 'db_log_queries']);
$method = new Method();
Events::on('pre_controller', [$method, 'validate_method']);

106
app/Config/Exceptions.php Normal file
View File

@@ -0,0 +1,106 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Debug\ExceptionHandler;
use CodeIgniter\Debug\ExceptionHandlerInterface;
use Psr\Log\LogLevel;
use Throwable;
/**
* Setup how the exception handler works.
*/
class Exceptions extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* LOG EXCEPTIONS?
* --------------------------------------------------------------------------
* If true, then exceptions will be logged
* through Services::Log.
*
* Default: true
*/
public bool $log = true;
/**
* --------------------------------------------------------------------------
* DO NOT LOG STATUS CODES
* --------------------------------------------------------------------------
* Any status codes here will NOT be logged if logging is turned on.
* By default, only 404 (Page Not Found) exceptions are ignored.
*
* @var list<int>
*/
public array $ignoreCodes = [404];
/**
* --------------------------------------------------------------------------
* Error Views Path
* --------------------------------------------------------------------------
* This is the path to the directory that contains the 'cli' and 'html'
* directories that hold the views used to generate errors.
*
* Default: APPPATH.'Views/errors'
*/
public string $errorViewPath = APPPATH . 'Views/errors';
/**
* --------------------------------------------------------------------------
* HIDE FROM DEBUG TRACE
* --------------------------------------------------------------------------
* Any data that you would like to hide from the debug trace.
* In order to specify 2 levels, use "/" to separate.
* ex. ['server', 'setup/password', 'secret_token']
*
* @var list<string>
*/
public array $sensitiveDataInTrace = [];
/**
* --------------------------------------------------------------------------
* WHETHER TO THROW AN EXCEPTION ON DEPRECATED ERRORS
* --------------------------------------------------------------------------
* 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;
/**
* --------------------------------------------------------------------------
* LOG LEVEL THRESHOLD FOR DEPRECATIONS
* --------------------------------------------------------------------------
* If `$logDeprecations` is set to `true`, this sets the log level
* to which the deprecation will be logged. This should be one of the log
* levels recognized by PSR-3.
*
* The related `Config\Logger::$threshold` should be adjusted, if needed,
* to capture logging the deprecations.
*/
public string $deprecationLogLevel = LogLevel::WARNING;
/*
* DEFINE THE HANDLERS USED
* --------------------------------------------------------------------------
* Given the HTTP status code, returns exception handler that
* should be used to deal with this error. By default, it will run CodeIgniter's
* default handler and display the error information in the expected format
* for CLI, HTTP, or AJAX requests, as determined by is_cli() and the expected
* response format.
*
* Custom handlers can be returned if you want to handle one or more specific
* error codes yourself like:
*
* if (in_array($statusCode, [400, 404, 500])) {
* return new \App\Libraries\MyExceptionHandler();
* }
* if ($exception instanceOf PageNotFoundException) {
* return new \App\Libraries\MyExceptionHandler();
* }
*/
public function handler(int $statusCode, Throwable $exception): ExceptionHandlerInterface
{
return new ExceptionHandler($this);
}
}

37
app/Config/Feature.php Normal file
View File

@@ -0,0 +1,37 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* Enable/disable backward compatibility breaking features.
*/
class Feature extends BaseConfig
{
/**
* Use improved new auto routing instead of the legacy version.
*/
public bool $autoRoutesImproved = true;
/**
* Use filter execution order in 4.4 or before.
*/
public bool $oldFilterOrder = false;
/**
* The behavior of `limit(0)` in Query Builder.
*
* If true, `limit(0)` returns all records. (the behavior of 4.4.x or before in version 4.x.)
* If false, `limit(0)` returns no records. (the behavior of 3.1.9 or later in version 3.x.)
*/
public bool $limitZeroAsAll = true;
/**
* Use strict location negotiation.
*
* By default, the locale is selected based on a loose comparison of the language code (ISO 639-1)
* Enabling strict comparison will also consider the region code (ISO 3166-1 alpha-2).
*/
public bool $strictLocaleNegotiation = false;
}

124
app/Config/Filters.php Normal file
View File

@@ -0,0 +1,124 @@
<?php
namespace Config;
use CodeIgniter\Config\Filters as BaseFilters;
use CodeIgniter\Filters\Cors;
use CodeIgniter\Filters\CSRF;
use CodeIgniter\Filters\DebugToolbar;
use CodeIgniter\Filters\ForceHTTPS;
use CodeIgniter\Filters\Honeypot;
use CodeIgniter\Filters\InvalidChars;
use CodeIgniter\Filters\PageCache;
use CodeIgniter\Filters\PerformanceMetrics;
use CodeIgniter\Filters\SecureHeaders;
class Filters extends BaseFilters
{
/**
* Configures aliases for Filter classes to
* make reading things nicer and simpler.
*
* @var array<string, class-string|list<class-string>>
*
* [filter_name => classname]
* or [filter_name => [classname1, classname2, ...]]
*/
public array $aliases = [
'csrf' => CSRF::class,
'toolbar' => DebugToolbar::class,
'honeypot' => Honeypot::class,
'invalidchars' => InvalidChars::class,
'secureheaders' => SecureHeaders::class,
'cors' => Cors::class,
'forcehttps' => ForceHTTPS::class,
'pagecache' => PageCache::class,
'performance' => PerformanceMetrics::class,
];
/**
* List of special required filters.
*
* The filters listed here are special. They are applied before and after
* other kinds of filters, and always applied even if a route does not exist.
*
* Filters set by default provide framework functionality. If removed,
* those functions will no longer work.
*
* @see https://codeigniter.com/user_guide/incoming/filters.html#provided-filters
*
* @var array{before: list<string>, after: list<string>}
*/
public array $required = [
'before' => [
'forcehttps', // Force Global Secure Requests
'pagecache', // Web Page Caching
],
'after' => [
'pagecache', // Web Page Caching
'performance', // Performance Metrics
'toolbar', // Debug Toolbar
],
];
/**
* List of filter aliases that are always
* applied before and after every request.
*
* @var array<string, array<string, array<string, string>>>|array<string, list<string>>
*/
public array $globals = [
'before' => [
'honeypot',
'csrf' => ['except' => 'login'],
'invalidchars',
],
'after' => [
'toolbar',
'honeypot',
'secureheaders',
],
];
/**
* List of filter aliases that works on a
* particular HTTP method (GET, POST, etc.).
*
* Example:
* 'POST' => ['foo', 'bar']
*
* If you use this, you should disable auto-routing because auto-routing
* permits any HTTP method to access a controller. Accessing the controller
* with a method you don't expect could bypass the filter.
*
* @var array<string, list<string>>
*/
public array $methods = [];
/**
* List of filter aliases that should run on any
* before or after URI patterns.
*
* Example:
* isLoggedIn' => ['before' => ['account/*', 'profiles/*']]
*
* @var array<string, array<string, list<string>>>
*/
public array $filters = [];
/**
* Constructor to conditionally disable CSRF filter in testing environment
*/
public function __construct()
{
// Check for testing environment via env variable or constant
$isTesting = ($_ENV['CI_ENVIRONMENT'] ?? $_SERVER['CI_ENVIRONMENT'] ?? getenv('CI_ENVIRONMENT')) === 'testing'
|| (defined('ENVIRONMENT') && ENVIRONMENT === 'testing');
// Remove CSRF filter from globals in testing environment
if ($isTesting) {
// Remove the 'csrf' key from $globals['before'] while preserving array structure
$this->globals['before'] = array_filter($this->globals['before'], static fn($key) => $key !== 'csrf', ARRAY_FILTER_USE_KEY);
}
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace Config;
use CodeIgniter\Config\ForeignCharacters as BaseForeignCharacters;
/**
* @immutable
*/
class ForeignCharacters extends BaseForeignCharacters
{
}

64
app/Config/Format.php Normal file
View File

@@ -0,0 +1,64 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Format\JSONFormatter;
use CodeIgniter\Format\XMLFormatter;
class Format extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Available Response Formats
* --------------------------------------------------------------------------
*
* When you perform content negotiation with the request, these are the
* available formats that your application supports. This is currently
* only used with the API\ResponseTrait. A valid Formatter must exist
* for the specified format.
*
* These formats are only checked when the data passed to the respond()
* method is an array.
*
* @var list<string>
*/
public array $supportedResponseFormats = [
'application/json',
'application/xml', // machine-readable XML
'text/xml', // human-readable XML
];
/**
* --------------------------------------------------------------------------
* Formatters
* --------------------------------------------------------------------------
*
* Lists the class to use to format responses with of a particular type.
* For each mime type, list the class that should be used. Formatters
* can be retrieved through the getFormatter() method.
*
* @var array<string, string>
*/
public array $formatters = [
'application/json' => JSONFormatter::class,
'application/xml' => XMLFormatter::class,
'text/xml' => XMLFormatter::class,
];
/**
* --------------------------------------------------------------------------
* Formatters Options
* --------------------------------------------------------------------------
*
* Additional Options to adjust default formatters behaviour.
* For each mime type, list the additional options that should be used.
*
* @var array<string, int>
*/
public array $formatterOptions = [
'application/json' => JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES,
'application/xml' => 0,
'text/xml' => 0,
];
}

44
app/Config/Generators.php Normal file
View File

@@ -0,0 +1,44 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Generators extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Generator Commands' Views
* --------------------------------------------------------------------------
*
* This array defines the mapping of generator commands to the view files
* they are using. If you need to customize them for your own, copy these
* view files in your own folder and indicate the location here.
*
* You will notice that the views have special placeholders enclosed in
* curly braces `{...}`. These placeholders are used internally by the
* generator commands in processing replacements, thus you are warned
* not to delete them or modify the names. If you will do so, you may
* end up disrupting the scaffolding process and throw errors.
*
* YOU HAVE BEEN WARNED!
*
* @var array<string, array<string, string>|string>
*/
public array $views = [
'make:cell' => [
'class' => 'CodeIgniter\Commands\Generators\Views\cell.tpl.php',
'view' => 'CodeIgniter\Commands\Generators\Views\cell_view.tpl.php',
],
'make:command' => 'CodeIgniter\Commands\Generators\Views\command.tpl.php',
'make:config' => 'CodeIgniter\Commands\Generators\Views\config.tpl.php',
'make:controller' => 'CodeIgniter\Commands\Generators\Views\controller.tpl.php',
'make:entity' => 'CodeIgniter\Commands\Generators\Views\entity.tpl.php',
'make:filter' => 'CodeIgniter\Commands\Generators\Views\filter.tpl.php',
'make:migration' => 'CodeIgniter\Commands\Generators\Views\migration.tpl.php',
'make:model' => 'CodeIgniter\Commands\Generators\Views\model.tpl.php',
'make:seeder' => 'CodeIgniter\Commands\Generators\Views\seeder.tpl.php',
'make:validation' => 'CodeIgniter\Commands\Generators\Views\validation.tpl.php',
'session:migration' => 'CodeIgniter\Commands\Generators\Views\migration.tpl.php',
];
}

42
app/Config/Honeypot.php Normal file
View File

@@ -0,0 +1,42 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Honeypot extends BaseConfig
{
/**
* Makes Honeypot visible or not to human
*/
public bool $hidden = true;
/**
* Honeypot Label Content
*/
public string $label = 'Fill This Field';
/**
* Honeypot Field Name
*/
public string $name = 'honeypot';
/**
* Honeypot HTML Template
*/
public string $template = '<label>{label}</label><input type="text" name="{name}" value="">';
/**
* Honeypot container
*
* If you enabled CSP, you can remove `style="display:none"`.
*/
public string $container = '<div style="display:none">{template}</div>';
/**
* The id attribute for Honeypot container tag
*
* Used when CSP is enabled.
*/
public string $containerId = 'hpc';
}

31
app/Config/Images.php Normal file
View File

@@ -0,0 +1,31 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Images\Handlers\GDHandler;
use CodeIgniter\Images\Handlers\ImageMagickHandler;
class Images extends BaseConfig
{
/**
* Default handler used if no other handler is specified.
*/
public string $defaultHandler = 'gd';
/**
* The path to the image library.
* Required for ImageMagick, GraphicsMagick, or NetPBM.
*/
public string $libraryPath = '/usr/local/bin/convert';
/**
* The available handler classes.
*
* @var array<string, string>
*/
public array $handlers = [
'gd' => GDHandler::class,
'imagick' => ImageMagickHandler::class,
];
}

63
app/Config/Kint.php Normal file
View File

@@ -0,0 +1,63 @@
<?php
namespace Config;
use Kint\Parser\ConstructablePluginInterface;
use Kint\Renderer\Rich\TabPluginInterface;
use Kint\Renderer\Rich\ValuePluginInterface;
/**
* --------------------------------------------------------------------------
* Kint
* --------------------------------------------------------------------------
*
* We use Kint's `RichRenderer` and `CLIRenderer`. This area contains options
* that you can set to customize how Kint works for you.
*
* @see https://kint-php.github.io/kint/ for details on these settings.
*/
class Kint
{
/*
|--------------------------------------------------------------------------
| Global Settings
|--------------------------------------------------------------------------
*/
/**
* @var list<class-string<ConstructablePluginInterface>|ConstructablePluginInterface>|null
*/
public $plugins;
public int $maxDepth = 6;
public bool $displayCalledFrom = true;
public bool $expanded = false;
/*
|--------------------------------------------------------------------------
| RichRenderer Settings
|--------------------------------------------------------------------------
*/
public string $richTheme = 'aante-light.css';
public bool $richFolder = false;
/**
* @var array<string, class-string<ValuePluginInterface>>|null
*/
public $richObjectPlugins;
/**
* @var array<string, class-string<TabPluginInterface>>|null
*/
public $richTabPlugins;
/*
|--------------------------------------------------------------------------
| CLI Settings
|--------------------------------------------------------------------------
*/
public bool $cliColors = true;
public bool $cliForceUTF8 = false;
public bool $cliDetectWidth = true;
public int $cliMinWidth = 40;
}

150
app/Config/Logger.php Normal file
View File

@@ -0,0 +1,150 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Log\Handlers\FileHandler;
class Logger extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Error Logging Threshold
* --------------------------------------------------------------------------
*
* You can enable error logging by setting a threshold over zero. The
* threshold determines what gets logged. Any values below or equal to the
* threshold will be logged.
*
* Threshold options are:
*
* - 0 = Disables logging, Error logging TURNED OFF
* - 1 = Emergency Messages - System is unusable
* - 2 = Alert Messages - Action Must Be Taken Immediately
* - 3 = Critical Messages - Application component unavailable, unexpected exception.
* - 4 = Runtime Errors - Don't need immediate action, but should be monitored.
* - 5 = Warnings - Exceptional occurrences that are not errors.
* - 6 = Notices - Normal but significant events.
* - 7 = Info - Interesting events, like user logging in, etc.
* - 8 = Debug - Detailed debug information.
* - 9 = All Messages
*
* You can also pass an array with threshold levels to show individual error types
*
* array(1, 2, 3, 8) = Emergency, Alert, Critical, and Debug messages
*
* For a live site you'll usually enable Critical or higher (3) to be logged otherwise
* your log files will fill up very fast.
*
* @var int|list<int>
*/
public $threshold = (ENVIRONMENT === 'production') ? 4 : 9;
/**
* --------------------------------------------------------------------------
* Date Format for Logs
* --------------------------------------------------------------------------
*
* Each item that is logged has an associated date. You can use PHP date
* codes to set your own date formatting
*/
public string $dateFormat = 'Y-m-d H:i:s';
/**
* --------------------------------------------------------------------------
* Log Handlers
* --------------------------------------------------------------------------
*
* The logging system supports multiple actions to be taken when something
* is logged. This is done by allowing for multiple Handlers, special classes
* designed to write the log to their chosen destinations, whether that is
* a file on the getServer, a cloud-based service, or even taking actions such
* as emailing the dev team.
*
* Each handler is defined by the class name used for that handler, and it
* MUST implement the `CodeIgniter\Log\Handlers\HandlerInterface` interface.
*
* The value of each key is an array of configuration items that are sent
* to the constructor of each handler. The only required configuration item
* is the 'handles' element, which must be an array of integer log levels.
* This is most easily handled by using the constants defined in the
* `Psr\Log\LogLevel` class.
*
* Handlers are executed in the order defined in this array, starting with
* the handler on top and continuing down.
*
* @var array<class-string, array<string, int|list<string>|string>>
*/
public array $handlers = [
/*
* --------------------------------------------------------------------
* File Handler
* --------------------------------------------------------------------
*/
FileHandler::class => [
// The log levels that this handler will handle.
'handles' => [
'critical',
'alert',
'emergency',
'debug',
'error',
'info',
'notice',
'warning',
],
/*
* The default filename extension for log files.
* An extension of 'php' allows for protecting the log files via basic
* scripting, when they are to be stored under a publicly accessible directory.
*
* NOTE: Leaving it blank will default to 'log'.
*/
'fileExtension' => '',
/*
* The file system permissions to be applied on newly created log files.
*
* IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
* integer notation (i.e. 0700, 0644, etc.)
*/
'filePermissions' => 0660,
/*
* Logging Directory Path
*
* By default, logs are written to WRITEPATH . 'logs/'
* Specify a different destination here, if desired.
*/
'path' => '',
],
/*
* The ChromeLoggerHandler requires the use of the Chrome web browser
* and the ChromeLogger extension. Uncomment this block to use it.
*/
// 'CodeIgniter\Log\Handlers\ChromeLoggerHandler' => [
// /*
// * The log levels that this handler will handle.
// */
// 'handles' => ['critical', 'alert', 'emergency', 'debug',
// 'error', 'info', 'notice', 'warning'],
// ],
/*
* The ErrorlogHandler writes the logs to PHP's native `error_log()` function.
* Uncomment this block to use it.
*/
// 'CodeIgniter\Log\Handlers\ErrorlogHandler' => [
// /* The log levels this handler can handle. */
// 'handles' => ['critical', 'alert', 'emergency', 'debug', 'error', 'info', 'notice', 'warning'],
//
// /*
// * The message type where the error should go. Can be 0 or 4, or use the
// * class constants: `ErrorlogHandler::TYPE_OS` (0) or `ErrorlogHandler::TYPE_SAPI` (4)
// */
// 'messageType' => 0,
// ],
];
}

50
app/Config/Migrations.php Normal file
View File

@@ -0,0 +1,50 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Migrations extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Enable/Disable Migrations
* --------------------------------------------------------------------------
*
* Migrations are enabled by default.
*
* You should enable migrations whenever you intend to do a schema migration
* and disable it back when you're done.
*/
public bool $enabled = true;
/**
* --------------------------------------------------------------------------
* Migrations Table
* --------------------------------------------------------------------------
*
* This is the name of the table that will store the current migrations state.
* When migrations runs it will store in a database table which migration
* files have already been run.
*/
public string $table = 'migrations';
/**
* --------------------------------------------------------------------------
* Timestamp Format
* --------------------------------------------------------------------------
*
* This is the format that will be used when creating new migrations
* using the CLI command:
* > php spark make:migration
*
* NOTE: if you set an unsupported format, migration runner will not find
* your migration files.
*
* Supported formats:
* - YmdHis_
* - Y-m-d-His_
* - Y_m_d_His_
*/
public string $timestampFormat = 'YmdHis_';
}

536
app/Config/Mimes.php Normal file
View File

@@ -0,0 +1,536 @@
<?php
namespace Config;
/**
* Mimes
*
* This file contains an array of mime types. It is used by the
* Upload class to help identify allowed file types.
*
* When more than one variation for an extension exist (like jpg, jpeg, etc)
* the most common one should be first in the array to aid the guess*
* methods. The same applies when more than one mime-type exists for a
* single extension.
*
* When working with mime types, please make sure you have the ´fileinfo´
* extension enabled to reliably detect the media types.
*
* @immutable
*/
class Mimes
{
/**
* Map of extensions to mime types.
*
* @var array<string, list<string>|string>
*/
public static array $mimes = [
'hqx' => [
'application/mac-binhex40',
'application/mac-binhex',
'application/x-binhex40',
'application/x-mac-binhex40',
],
'cpt' => 'application/mac-compactpro',
'csv' => [
'text/csv',
'text/x-comma-separated-values',
'text/comma-separated-values',
'application/vnd.ms-excel',
'application/x-csv',
'text/x-csv',
'application/csv',
'application/excel',
'application/vnd.msexcel',
'text/plain',
],
'bin' => [
'application/macbinary',
'application/mac-binary',
'application/octet-stream',
'application/x-binary',
'application/x-macbinary',
],
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
'exe' => [
'application/octet-stream',
'application/vnd.microsoft.portable-executable',
'application/x-dosexec',
'application/x-msdownload',
],
'class' => 'application/octet-stream',
'psd' => [
'application/x-photoshop',
'image/vnd.adobe.photoshop',
],
'so' => 'application/octet-stream',
'sea' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/oda',
'pdf' => [
'application/pdf',
'application/force-download',
'application/x-download',
],
'ai' => [
'application/pdf',
'application/postscript',
],
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => [
'application/vnd.ms-excel',
'application/msexcel',
'application/x-msexcel',
'application/x-ms-excel',
'application/x-excel',
'application/x-dos_ms_excel',
'application/xls',
'application/x-xls',
'application/excel',
'application/download',
'application/vnd.ms-office',
'application/msword',
],
'ppt' => [
'application/vnd.ms-powerpoint',
'application/powerpoint',
'application/vnd.ms-office',
'application/msword',
],
'pptx' => [
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
],
'wbxml' => 'application/wbxml',
'wmlc' => 'application/wmlc',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'php' => [
'application/x-php',
'application/x-httpd-php',
'application/php',
'text/php',
'text/x-php',
'application/x-httpd-php-source',
],
'php4' => 'application/x-httpd-php',
'php3' => 'application/x-httpd-php',
'phtml' => 'application/x-httpd-php',
'phps' => 'application/x-httpd-php-source',
'js' => [
'application/x-javascript',
'text/plain',
],
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'tar' => 'application/x-tar',
'tgz' => [
'application/x-tar',
'application/x-gzip-compressed',
],
'z' => 'application/x-compress',
'xhtml' => 'application/xhtml+xml',
'xht' => 'application/xhtml+xml',
'zip' => [
'application/x-zip',
'application/zip',
'application/x-zip-compressed',
'application/s-compressed',
'multipart/x-zip',
],
'rar' => [
'application/vnd.rar',
'application/x-rar',
'application/rar',
'application/x-rar-compressed',
],
'mid' => 'audio/midi',
'midi' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => [
'audio/mpeg',
'audio/mpg',
'audio/mpeg3',
'audio/mp3',
],
'aif' => [
'audio/x-aiff',
'audio/aiff',
],
'aiff' => [
'audio/x-aiff',
'audio/aiff',
],
'aifc' => 'audio/x-aiff',
'ram' => 'audio/x-pn-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'rv' => 'video/vnd.rn-realvideo',
'wav' => [
'audio/x-wav',
'audio/wave',
'audio/wav',
],
'bmp' => [
'image/bmp',
'image/x-bmp',
'image/x-bitmap',
'image/x-xbitmap',
'image/x-win-bitmap',
'image/x-windows-bmp',
'image/ms-bmp',
'image/x-ms-bmp',
'application/bmp',
'application/x-bmp',
'application/x-win-bitmap',
],
'gif' => 'image/gif',
'jpg' => [
'image/jpeg',
'image/pjpeg',
],
'jpeg' => [
'image/jpeg',
'image/pjpeg',
],
'jpe' => [
'image/jpeg',
'image/pjpeg',
],
'jp2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'j2k' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpf' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpg2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpx' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'jpm' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'mj2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'mjp2' => [
'image/jp2',
'video/mj2',
'image/jpx',
'image/jpm',
],
'png' => [
'image/png',
'image/x-png',
],
'webp' => 'image/webp',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'css' => [
'text/css',
'text/plain',
],
'html' => [
'text/html',
'text/plain',
],
'htm' => [
'text/html',
'text/plain',
],
'shtml' => [
'text/html',
'text/plain',
],
'txt' => 'text/plain',
'text' => 'text/plain',
'log' => [
'text/plain',
'text/x-log',
],
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'xml' => [
'application/xml',
'text/xml',
'text/plain',
],
'xsl' => [
'application/xml',
'text/xsl',
'text/xml',
],
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'avi' => [
'video/x-msvideo',
'video/msvideo',
'video/avi',
'application/x-troff-msvideo',
],
'movie' => 'video/x-sgi-movie',
'doc' => [
'application/msword',
'application/vnd.ms-office',
],
'docx' => [
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/zip',
'application/msword',
'application/x-zip',
],
'dot' => [
'application/msword',
'application/vnd.ms-office',
],
'dotx' => [
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/zip',
'application/msword',
],
'xlsx' => [
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/zip',
'application/vnd.ms-excel',
'application/msword',
'application/x-zip',
],
'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
'word' => [
'application/msword',
'application/octet-stream',
],
'xl' => 'application/excel',
'eml' => 'message/rfc822',
'json' => [
'application/json',
'text/json',
],
'pem' => [
'application/x-x509-user-cert',
'application/x-pem-file',
'application/octet-stream',
],
'p10' => [
'application/x-pkcs10',
'application/pkcs10',
],
'p12' => 'application/x-pkcs12',
'p7a' => 'application/x-pkcs7-signature',
'p7c' => [
'application/pkcs7-mime',
'application/x-pkcs7-mime',
],
'p7m' => [
'application/pkcs7-mime',
'application/x-pkcs7-mime',
],
'p7r' => 'application/x-pkcs7-certreqresp',
'p7s' => 'application/pkcs7-signature',
'crt' => [
'application/x-x509-ca-cert',
'application/x-x509-user-cert',
'application/pkix-cert',
],
'crl' => [
'application/pkix-crl',
'application/pkcs-crl',
],
'der' => 'application/x-x509-ca-cert',
'kdb' => 'application/octet-stream',
'pgp' => 'application/pgp',
'gpg' => 'application/gpg-keys',
'sst' => 'application/octet-stream',
'csr' => 'application/octet-stream',
'rsa' => 'application/x-pkcs7',
'cer' => [
'application/pkix-cert',
'application/x-x509-ca-cert',
],
'3g2' => 'video/3gpp2',
'3gp' => [
'video/3gp',
'video/3gpp',
],
'mp4' => 'video/mp4',
'm4a' => 'audio/x-m4a',
'f4v' => [
'video/mp4',
'video/x-f4v',
],
'flv' => 'video/x-flv',
'webm' => 'video/webm',
'aac' => 'audio/x-acc',
'm4u' => 'application/vnd.mpegurl',
'm3u' => 'text/plain',
'xspf' => 'application/xspf+xml',
'vlc' => 'application/videolan',
'wmv' => [
'video/x-ms-wmv',
'video/x-ms-asf',
],
'au' => 'audio/x-au',
'ac3' => 'audio/ac3',
'flac' => 'audio/x-flac',
'ogg' => [
'audio/ogg',
'video/ogg',
'application/ogg',
],
'kmz' => [
'application/vnd.google-earth.kmz',
'application/zip',
'application/x-zip',
],
'kml' => [
'application/vnd.google-earth.kml+xml',
'application/xml',
'text/xml',
],
'ics' => 'text/calendar',
'ical' => 'text/calendar',
'zsh' => 'text/x-scriptzsh',
'7zip' => [
'application/x-compressed',
'application/x-zip-compressed',
'application/zip',
'multipart/x-zip',
],
'cdr' => [
'application/cdr',
'application/coreldraw',
'application/x-cdr',
'application/x-coreldraw',
'image/cdr',
'image/x-cdr',
'zz-application/zz-winassoc-cdr',
],
'wma' => [
'audio/x-ms-wma',
'video/x-ms-asf',
],
'jar' => [
'application/java-archive',
'application/x-java-application',
'application/x-jar',
'application/x-compressed',
],
'svg' => [
'image/svg+xml',
'image/svg',
'application/xml',
'text/xml',
],
'vcf' => 'text/x-vcard',
'srt' => [
'text/srt',
'text/plain',
],
'vtt' => [
'text/vtt',
'text/plain',
],
'ico' => [
'image/x-icon',
'image/x-ico',
'image/vnd.microsoft.icon',
],
'stl' => [
'application/sla',
'application/vnd.ms-pki.stl',
'application/x-navistyle',
],
];
/**
* Attempts to determine the best mime type for the given file extension.
*
* @return string|null The mime type found, or none if unable to determine.
*/
public static function guessTypeFromExtension(string $extension): array|string|null
{
$extension = trim(strtolower($extension), '. ');
if (! array_key_exists($extension, static::$mimes)) {
return null;
}
return is_array(static::$mimes[$extension]) ? static::$mimes[$extension][0] : static::$mimes[$extension];
}
/**
* Attempts to determine the best file extension for a given mime type.
*
* @param string|null $proposedExtension - default extension (in case there is more than one with the same mime type)
*
* @return string|null The extension determined, or null if unable to match.
*/
public static function guessExtensionFromType(string $type, ?string $proposedExtension = null): ?string
{
$type = trim(strtolower($type), '. ');
$proposedExtension = trim(strtolower($proposedExtension ?? ''));
if (
$proposedExtension !== ''
&& array_key_exists($proposedExtension, static::$mimes)
&& in_array($type, (array) static::$mimes[$proposedExtension], true)
) {
// The detected mime type matches with the proposed extension.
return $proposedExtension;
}
// Reverse check the mime type list if no extension was proposed.
// This search is order sensitive!
foreach (static::$mimes as $ext => $types) {
if (in_array($type, (array) $types, true)) {
return $ext;
}
}
return null;
}
}

84
app/Config/Modules.php Normal file
View File

@@ -0,0 +1,84 @@
<?php
namespace Config;
use CodeIgniter\Modules\Modules as BaseModules;
/**
* Modules Configuration.
*
* NOTE: This class is required prior to Autoloader instantiation,
* and does not extend BaseConfig.
*
* @immutable
*/
class Modules extends BaseModules
{
/**
* --------------------------------------------------------------------------
* Enable Auto-Discovery?
* --------------------------------------------------------------------------
*
* If true, then auto-discovery will happen across all elements listed in
* $aliases below. If false, no auto-discovery will happen at all,
* giving a slight performance boost.
*
* @var bool
*/
public $enabled = true;
/**
* --------------------------------------------------------------------------
* Enable Auto-Discovery Within Composer Packages?
* --------------------------------------------------------------------------
*
* If true, then auto-discovery will happen across all namespaces loaded
* by Composer, as well as the namespaces configured locally.
*
* @var bool
*/
public $discoverInComposer = true;
/**
* The Composer package list for Auto-Discovery
* This setting is optional.
*
* E.g.:
* [
* 'only' => [
* // List up all packages to auto-discover
* 'codeigniter4/shield',
* ],
* ]
* or
* [
* 'exclude' => [
* // List up packages to exclude.
* 'pestphp/pest',
* ],
* ]
*
* @var array{only?: list<string>, exclude?: list<string>}
*/
public $composerPackages = [];
/**
* --------------------------------------------------------------------------
* Auto-Discovery Rules
* --------------------------------------------------------------------------
*
* Aliases list of all discovery classes that will be active and used during
* the current application request.
*
* If it is not listed, only the base application elements will be used.
*
* @var list<string>
*/
public $aliases = [
'events',
'filters',
'registrars',
'routes',
'services',
];
}

53
app/Config/OSPOS.php Normal file
View File

@@ -0,0 +1,53 @@
<?php
namespace Config;
use App\Models\Appconfig;
use CodeIgniter\Cache\CacheInterface;
use CodeIgniter\Config\BaseConfig;
/**
* This class holds the configuration options stored from the database so that on launch those settings can be cached
* once in memory. The settings are referenced frequently, so there is a significant performance hit to not storing
* them.
*/
class OSPOS extends BaseConfig
{
public array $settings;
public string $commit_sha1 = 'dev'; // TODO: Travis scripts need to be updated to replace this with the commit hash on build
private CacheInterface $cache;
public function __construct()
{
parent::__construct();
$this->cache = Services::cache();
$this->set_settings();
}
/**
* @return void
*/
public function set_settings(): void
{
$cache = $this->cache->get('settings');
if ($cache) {
$this->settings = decode_array($cache);
} else {
$appconfig = model(Appconfig::class);
foreach ($appconfig->get_all()->getResult() as $app_config) {
$this->settings[$app_config->key] = $app_config->value;
}
$this->cache->save('settings', encode_array($this->settings));
}
}
/**
* @return void
*/
public function update_settings(): void
{
$this->cache->delete('settings');
$this->set_settings();
}
}

32
app/Config/Optimize.php Normal file
View File

@@ -0,0 +1,32 @@
<?php
namespace Config;
/**
* Optimization Configuration.
*
* NOTE: This class does not extend BaseConfig for performance reasons.
* So you cannot replace the property values with Environment Variables.
*
* @immutable
*/
class Optimize
{
/**
* --------------------------------------------------------------------------
* Config Caching
* --------------------------------------------------------------------------
*
* @see https://codeigniter.com/user_guide/concepts/factories.html#config-caching
*/
public bool $configCacheEnabled = false;
/**
* --------------------------------------------------------------------------
* Config Caching
* --------------------------------------------------------------------------
*
* @see https://codeigniter.com/user_guide/concepts/autoloader.html#file-locator-caching
*/
public bool $locatorCacheEnabled = false;
}

61
app/Config/Pager.php Normal file
View File

@@ -0,0 +1,61 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Pager extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Templates
* --------------------------------------------------------------------------
*
* Pagination links are rendered out using views to configure their
* appearance. This array contains aliases and the view names to
* use when rendering the links.
*
* Within each view, the Pager object will be available as $pager,
* and the desired group as $pagerGroup;
*
* @var array<string, string>
*/
public array $templates = [
'default_full' => 'CodeIgniter\Pager\Views\default_full',
'default_simple' => 'CodeIgniter\Pager\Views\default_simple',
'default_head' => 'CodeIgniter\Pager\Views\default_head',
];
/**
* --------------------------------------------------------------------------
* Items Per Page
* --------------------------------------------------------------------------
*
* The default number of results shown in a single page.
*/
public int $perPage = 20;
/**
* --------------------------------------------------------------------------
* Bootstrap 3 pagination links styling
* --------------------------------------------------------------------------
*
* Source code from http://stackoverflow.com/questions/20088779/bootstrap-3-pagination-with-codeigniter
*/
public $config = [
'full_tag_open' => '<ul class="pagination pagination-sm">',
'full_tag_close' => '</ul>',
'num_tag_open' => '<li>',
'num_tag_close' => '</li>',
'cur_tag_open' => '<li class="disabled"><li class="active"><a href="#">',
'cur_tag_close' => '<span class="sr-only"></span></a></li>',
'next_tag_open' => '<li>',
'next_tagl_close' => '</li>',
'prev_tag_open' => '<li>',
'prev_tagl_close' => '</li>',
'first_tag_open' => '<li>',
'first_tagl_close' => '</li>',
'last_tag_open' => '<li>',
'last_tagl_close' => '</li>'
];
}

80
app/Config/Paths.php Normal file
View File

@@ -0,0 +1,80 @@
<?php
namespace Config;
/**
* Paths
*
* Holds the paths that are used by the system to
* locate the main directories, app, system, etc.
*
* Modifying these allows you to restructure your application,
* share a system folder between multiple applications, and more.
*
* All paths are relative to the project's root folder.
*
* NOTE: This class is required prior to Autoloader instantiation,
* and does not extend BaseConfig.
*
* @immutable
*/
class Paths
{
/**
* ---------------------------------------------------------------
* SYSTEM FOLDER NAME
* ---------------------------------------------------------------
*
* This must contain the name of your "system" folder. Include
* the path if the folder is not in the same directory as this file.
*/
public string $systemDirectory = __DIR__ . '/../../vendor/codeigniter4/framework/system';
/**
* ---------------------------------------------------------------
* APPLICATION FOLDER NAME
* ---------------------------------------------------------------
*
* If you want this front controller to use a different "app"
* folder than the default one you can set its name here. The folder
* can also be renamed or relocated anywhere on your server. If
* you do, use a full server path.
*
* @see http://codeigniter.com/user_guide/general/managing_apps.html
*/
public string $appDirectory = __DIR__ . '/..';
/**
* ---------------------------------------------------------------
* WRITABLE DIRECTORY NAME
* ---------------------------------------------------------------
*
* This variable must contain the name of your "writable" directory.
* The writable directory allows you to group all directories that
* need write permission to a single place that can be tucked away
* for maximum security, keeping it out of the app and/or
* system directories.
*/
public string $writableDirectory = __DIR__ . '/../../writable';
/**
* ---------------------------------------------------------------
* TESTS DIRECTORY NAME
* ---------------------------------------------------------------
*
* This variable must contain the name of your "tests" directory.
*/
public string $testsDirectory = __DIR__ . '/../../tests';
/**
* ---------------------------------------------------------------
* VIEW DIRECTORY NAME
* ---------------------------------------------------------------
*
* This variable must contain the name of the directory that
* contains the view files used by your application. By
* default this is in `app/Views`. This value
* is used when no value is provided to `Services::renderer()`.
*/
public string $viewDirectory = __DIR__ . '/../Views';
}

28
app/Config/Publisher.php Normal file
View File

@@ -0,0 +1,28 @@
<?php
namespace Config;
use CodeIgniter\Config\Publisher as BasePublisher;
/**
* Publisher Configuration
*
* Defines basic security restrictions for the Publisher class
* to prevent abuse by injecting malicious files into a project.
*/
class Publisher extends BasePublisher
{
/**
* A list of allowed destinations with a (pseudo-)regex
* of allowed files for each destination.
* Attempts to publish to directories not in this list will
* result in a PublisherException. Files that do no fit the
* pattern will cause copy/merge to fail.
*
* @var array<string, string>
*/
public $restrictions = [
ROOTPATH => '*',
FCPATH => '#\.(s?css|js|map|html?|xml|json|webmanifest|ttf|eot|woff2?|gif|jpe?g|tiff?|png|webp|bmp|ico|svg)$#i',
];
}

41
app/Config/Routes.php Normal file
View File

@@ -0,0 +1,41 @@
<?php
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->setDefaultController('Login');
$routes->get('/', 'Login::index');
$routes->get('login', 'Login::index');
$routes->post('login', 'Login::index');
$routes->add('no_access/index/(:segment)', 'No_access::index/$1');
$routes->add('no_access/index/(:segment)/(:segment)', 'No_access::index/$1/$2');
$routes->add('reports/summary_(:any)/(:any)/(:any)', 'Reports::Summary_$1/$2/$3/$4');
$routes->add('reports/summary_expenses_categories', 'Reports::date_input_only');
$routes->add('reports/summary_payments', 'Reports::date_input_only');
$routes->add('reports/summary_discounts', 'Reports::summary_discounts_input');
$routes->add('reports/summary_(:any)', 'Reports::date_input');
$routes->add('reports/graphical_(:any)/(:any)/(:any)', 'Reports::Graphical_$1/$2/$3/$4');
$routes->add('reports/graphical_summary_expenses_categories', 'Reports::date_input_only');
$routes->add('reports/graphical_summary_discounts', 'Reports::summary_discounts_input');
$routes->add('reports/graphical_(:any)', 'Reports::date_input');
$routes->add('reports/inventory_(:any)/(:any)', 'Reports::Inventory_$1/$2');
$routes->add('reports/inventory_low', 'Reports::inventory_low');
$routes->add('reports/inventory_summary', 'Reports::inventory_summary_input');
$routes->add('reports/inventory_summary/(:any)/(:any)/(:any)', 'Reports::inventory_summary/$1/$2/$3');
$routes->add('reports/detailed_(:any)/(:any)/(:any)/(:any)', 'Reports::Detailed_$1/$2/$3/$4');
$routes->add('reports/detailed_sales', 'Reports::date_input_sales');
$routes->add('reports/detailed_receivings', 'Reports::date_input_recv');
$routes->add('reports/specific_(:any)/(:any)/(:any)/(:any)', 'Reports::Specific_$1/$2/$3/$4');
$routes->add('reports/specific_customers', 'Reports::specific_customer_input');
$routes->add('reports/specific_employees', 'Reports::specific_employee_input');
$routes->add('reports/specific_discounts', 'Reports::specific_discount_input');
$routes->add('reports/specific_suppliers', 'Reports::specific_supplier_input');

140
app/Config/Routing.php Normal file
View File

@@ -0,0 +1,140 @@
<?php
/**
* This file is part of CodeIgniter 4 framework.
*
* (c) CodeIgniter Foundation <admin@codeigniter.com>
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Config;
use CodeIgniter\Config\Routing as BaseRouting;
/**
* Routing configuration
*/
class Routing extends BaseRouting
{
/**
* For Defined Routes.
* An array of files that contain route definitions.
* Route files are read in order, with the first match
* found taking precedence.
*
* Default: APPPATH . 'Config/Routes.php'
*
* @var list<string>
*/
public array $routeFiles = [
APPPATH . 'Config/Routes.php',
];
/**
* For Defined Routes and Auto Routing.
* The default namespace to use for Controllers when no other
* namespace has been specified.
*
* Default: 'App\Controllers'
*/
public string $defaultNamespace = 'App\Controllers';
/**
* For Auto Routing.
* The default controller to use when no other controller has been
* specified.
*
* Default: 'Home'
*/
public string $defaultController = 'Login';
/**
* For Defined Routes and Auto Routing.
* The default method to call on the controller when no other
* method has been set in the route.
*
* Default: 'index'
*/
public string $defaultMethod = 'index';
/**
* For Auto Routing.
* Whether to translate dashes in URIs for controller/method to underscores.
* Primarily useful when using the auto-routing.
*
* Default: false
*/
public bool $translateURIDashes = false;
/**
* Sets the class/method that should be called if routing doesn't
* find a match. It can be the controller/method name like: Users::index
*
* This setting is passed to the Router class and handled there.
*
* If you want to use a closure, you will have to set it in the
* routes file by calling:
*
* $routes->set404Override(function() {
* // Do something here
* });
*
* Example:
* public $override404 = 'App\Errors::show404';
*/
public ?string $override404 = null;
/**
* If TRUE, the system will attempt to match the URI against
* Controllers by matching each segment against folders/files
* in APPPATH/Controllers, when a match wasn't found against
* defined routes.
*
* If FALSE, will stop searching and do NO automatic routing.
*/
public bool $autoRoute = true;
/**
* For Defined Routes.
* If TRUE, will enable the use of the 'prioritize' option
* when defining routes.
*
* Default: false
*/
public bool $prioritize = false;
/**
* For Defined Routes.
* If TRUE, matched multiple URI segments will be passed as one parameter.
*
* Default: false
*/
public bool $multipleSegmentsOneParam = false;
/**
* For Auto Routing (Improved).
* Map of URI segments and namespaces.
*
* The key is the first URI segment. The value is the controller namespace.
* E.g.,
* [
* 'blog' => 'Acme\Blog\Controllers',
* ]
*
* @var array<string, string>
*/
public array $moduleRoutes = [];
/**
* For Auto Routing (Improved).
* Whether to translate dashes in URIs for controller/method to CamelCase.
* E.g., blog-controller -> BlogController
*
* If you enable this, $translateURIDashes is ignored.
*
* Default: false
*/
public bool $translateUriToCamelCase = false;
}

86
app/Config/Security.php Normal file
View File

@@ -0,0 +1,86 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Security extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* CSRF Protection Method
* --------------------------------------------------------------------------
*
* Protection Method for Cross Site Request Forgery protection.
*
* @var string|false 'cookie', 'session', or false
*/
public string|false $csrfProtection = 'session';
/**
* --------------------------------------------------------------------------
* CSRF Token Randomization
* --------------------------------------------------------------------------
*
* Randomize the CSRF Token for added security.
*/
public bool $tokenRandomize = false;
/**
* --------------------------------------------------------------------------
* CSRF Token Name
* --------------------------------------------------------------------------
*
* Token name for Cross Site Request Forgery protection.
*/
public string $tokenName = 'csrf_ospos_v4';
/**
* --------------------------------------------------------------------------
* CSRF Header Name
* --------------------------------------------------------------------------
*
* Header name for Cross Site Request Forgery protection.
*/
public string $headerName = 'X-CSRF-TOKEN';
/**
* --------------------------------------------------------------------------
* CSRF Cookie Name
* --------------------------------------------------------------------------
*
* Cookie name for Cross Site Request Forgery protection.
*/
public string $cookieName = 'csrf_cookie_ospos_v4';
/**
* --------------------------------------------------------------------------
* CSRF Expires
* --------------------------------------------------------------------------
*
* Expiration time for Cross Site Request Forgery protection cookie.
*
* Defaults to two hours (in seconds).
*/
public int $expires = 7200;
/**
* --------------------------------------------------------------------------
* CSRF Regenerate
* --------------------------------------------------------------------------
*
* Regenerate CSRF Token on every submission.
*/
public bool $regenerate = false;
/**
* --------------------------------------------------------------------------
* CSRF Redirect
* --------------------------------------------------------------------------
*
* Redirect to previous page with error on failure.
*
* @see https://codeigniter4.github.io/userguide/libraries/security.html#redirection-on-failure
*/
public bool $redirect = (ENVIRONMENT === 'production');
}

76
app/Config/Services.php Normal file
View File

@@ -0,0 +1,76 @@
<?php
namespace Config;
use Locale;
use HTMLPurifier;
use HTMLPurifier_Config;
use CodeIgniter\Config\BaseService;
use Config\Services as AppServices;
use CodeIgniter\HTTP\IncomingRequest;
/**
* Services Configuration file.
*
* Services are simply other classes/libraries that the system uses
* to do its job. This is used by CodeIgniter to allow the core of the
* framework to be swapped out easily without affecting the usage within
* the rest of your application.
*
* This file holds any application-specific services, or service overrides
* that you might need. An example has been included with the general
* method format you should use for your service methods. For more examples,
* see the core Services file at system/Config/Services.php.
*/
class Services extends BaseService
{
/*
* public static function example($getShared = true)
* {
* if ($getShared) {
* return static::getSharedInstance('example');
* }
*
* return new \CodeIgniter\Example();
* }
*/
/**
* 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)
{
if ($getShared) {
return static::getSharedInstance('htmlPurifier');
}
if (!isset(static::$htmlPurifier)) {
$config = HTMLPurifier_Config::createDefault();
static::$htmlPurifier = new HTMLPurifier($config);
}
return static::$htmlPurifier;
}
}

127
app/Config/Session.php Normal file
View File

@@ -0,0 +1,127 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Session\Handlers\BaseHandler;
use CodeIgniter\Session\Handlers\DatabaseHandler;
class Session extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Session Driver
* --------------------------------------------------------------------------
*
* The session storage driver to use:
* - `CodeIgniter\Session\Handlers\FileHandler`
* - `CodeIgniter\Session\Handlers\DatabaseHandler`
* - `CodeIgniter\Session\Handlers\MemcachedHandler`
* - `CodeIgniter\Session\Handlers\RedisHandler`
*
* @var class-string<BaseHandler>
*/
public string $driver = DatabaseHandler::class;
/**
* --------------------------------------------------------------------------
* Session Cookie Name
* --------------------------------------------------------------------------
*
* The session cookie name, must contain only [0-9a-z_-] characters
*/
public string $cookieName = 'ospos_session';
/**
* --------------------------------------------------------------------------
* Session Expiration
* --------------------------------------------------------------------------
*
* The number of SECONDS you want the session to last.
* Setting to 0 (zero) means expire when the browser is closed.
*/
public int $expiration = 7200;
/**
* --------------------------------------------------------------------------
* Session Save Path
* --------------------------------------------------------------------------
*
* The location to save sessions to and is driver dependent.
*
* For the 'files' driver, it's a path to a writable directory.
* WARNING: Only absolute paths are supported!
*
* For the 'database' driver, it's a table name.
* Please read up the manual for the format with other session drivers.
*
* IMPORTANT: You are REQUIRED to set a valid save path!
*/
public string $savePath = 'sessions';
/**
* --------------------------------------------------------------------------
* Session Match IP
* --------------------------------------------------------------------------
*
* Whether to match the user's IP address when reading the session data.
*
* WARNING: If you're using the database driver, don't forget to update
* your session table's PRIMARY KEY when changing this setting.
*/
public bool $matchIP = true;
/**
* --------------------------------------------------------------------------
* Session Time to Update
* --------------------------------------------------------------------------
*
* How many seconds between CI regenerating the session ID.
*/
public int $timeToUpdate = 300;
/**
* --------------------------------------------------------------------------
* Session Regenerate Destroy
* --------------------------------------------------------------------------
*
* Whether to destroy session data associated with the old session ID
* when auto-regenerating the session ID. When set to FALSE, the data
* will be later deleted by the garbage collector.
*/
public bool $regenerateDestroy = true;
/**
* --------------------------------------------------------------------------
* Session Database Group
* --------------------------------------------------------------------------
*
* DB Group for the database session.
*/
public ?string $DBGroup = null;
/**
* --------------------------------------------------------------------------
* Lock Retry Interval (microseconds)
* --------------------------------------------------------------------------
*
* This is used for RedisHandler.
*
* Time (microseconds) to wait if lock cannot be acquired.
* The default is 100,000 microseconds (= 0.1 seconds).
*/
public int $lockRetryInterval = 100_000;
/**
* --------------------------------------------------------------------------
* Lock Max Retries
* --------------------------------------------------------------------------
*
* This is used for RedisHandler.
*
* Maximum number of lock acquisition attempts.
* The default is 300 times. That is lock timeout is about 30 (0.1 * 300)
* seconds.
*/
public int $lockMaxRetries = 300;
}

122
app/Config/Toolbar.php Normal file
View File

@@ -0,0 +1,122 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Debug\Toolbar\Collectors\Database;
use CodeIgniter\Debug\Toolbar\Collectors\Events;
use CodeIgniter\Debug\Toolbar\Collectors\Files;
use CodeIgniter\Debug\Toolbar\Collectors\Logs;
use CodeIgniter\Debug\Toolbar\Collectors\Routes;
use CodeIgniter\Debug\Toolbar\Collectors\Timers;
use CodeIgniter\Debug\Toolbar\Collectors\Views;
/**
* --------------------------------------------------------------------------
* Debug Toolbar
* --------------------------------------------------------------------------
*
* The Debug Toolbar provides a way to see information about the performance
* and state of your application during that page display. By default it will
* NOT be displayed under production environments, and will only display if
* `CI_DEBUG` is true, since if it's not, there's not much to display anyway.
*/
class Toolbar extends BaseConfig
{
/**
* --------------------------------------------------------------------------
* Toolbar Collectors
* --------------------------------------------------------------------------
*
* List of toolbar collectors that will be called when Debug Toolbar
* fires up and collects data from.
*
* @var list<class-string>
*/
public array $collectors = [
Timers::class,
Database::class,
Logs::class,
Views::class,
// \CodeIgniter\Debug\Toolbar\Collectors\Cache::class,
Files::class,
Routes::class,
Events::class,
];
/**
* --------------------------------------------------------------------------
* Collect Var Data
* --------------------------------------------------------------------------
*
* If set to false var data from the views will not be collected. Useful to
* avoid high memory usage when there are lots of data passed to the view.
*/
public bool $collectVarData = true;
/**
* --------------------------------------------------------------------------
* Max History
* --------------------------------------------------------------------------
*
* `$maxHistory` sets a limit on the number of past requests that are stored,
* helping to conserve file space used to store them. You can set it to
* 0 (zero) to not have any history stored, or -1 for unlimited history.
*/
public int $maxHistory = 20;
/**
* --------------------------------------------------------------------------
* Toolbar Views Path
* --------------------------------------------------------------------------
*
* The full path to the the views that are used by the toolbar.
* This MUST have a trailing slash.
*/
public string $viewsPath = SYSTEMPATH . 'Debug/Toolbar/Views/';
/**
* --------------------------------------------------------------------------
* Max Queries
* --------------------------------------------------------------------------
*
* If the Database Collector is enabled, it will log every query that the
* the system generates so they can be displayed on the toolbar's timeline
* and in the query log. This can lead to memory issues in some instances
* with hundreds of queries.
*
* `$maxQueries` defines the maximum amount of queries that will be stored.
*/
public int $maxQueries = 100;
/**
* --------------------------------------------------------------------------
* Watched Directories
* --------------------------------------------------------------------------
*
* Contains an array of directories that will be watched for changes and
* used to determine if the hot-reload feature should reload the page or not.
* We restrict the values to keep performance as high as possible.
*
* NOTE: The ROOTPATH will be prepended to all values.
*
* @var list<string>
*/
public array $watchedDirectories = [
'app',
];
/**
* --------------------------------------------------------------------------
* Watched File Extensions
* --------------------------------------------------------------------------
*
* Contains an array of file extensions that will be watched for changes and
* used to determine if the hot-reload feature should reload the page or not.
*
* @var list<string>
*/
public array $watchedExtensions = [
'php', 'css', 'js', 'html', 'svg', 'json', 'env',
];
}

252
app/Config/UserAgents.php Normal file
View File

@@ -0,0 +1,252 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
/**
* -------------------------------------------------------------------
* User Agents
* -------------------------------------------------------------------
*
* This file contains four arrays of user agent data. It is used by the
* User Agent Class to help identify browser, platform, robot, and
* mobile device data. The array keys are used to identify the device
* and the array values are used to set the actual name of the item.
*/
class UserAgents extends BaseConfig
{
/**
* -------------------------------------------------------------------
* OS Platforms
* -------------------------------------------------------------------
*
* @var array<string, string>
*/
public array $platforms = [
'windows nt 10.0' => 'Windows 10',
'windows nt 6.3' => 'Windows 8.1',
'windows nt 6.2' => 'Windows 8',
'windows nt 6.1' => 'Windows 7',
'windows nt 6.0' => 'Windows Vista',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.1' => 'Windows XP',
'windows nt 5.0' => 'Windows 2000',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows phone' => 'Windows Phone',
'windows' => 'Unknown Windows OS',
'android' => 'Android',
'blackberry' => 'BlackBerry',
'iphone' => 'iOS',
'ipad' => 'iOS',
'ipod' => 'iOS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS',
'symbian' => 'Symbian OS',
];
/**
* -------------------------------------------------------------------
* Browsers
* -------------------------------------------------------------------
*
* The order of this array should NOT be changed. Many browsers return
* multiple browser types so we want to identify the subtype first.
*
* @var array<string, string>
*/
public array $browsers = [
'OPR' => 'Opera',
'Flock' => 'Flock',
'Edge' => 'Spartan',
'Edg' => 'Edge',
'Chrome' => 'Chrome',
// Opera 10+ always reports Opera/9.80 and appends Version/<real version> to the user agent string
'Opera.*?Version' => 'Opera',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Trident.* rv' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse',
'Maxthon' => 'Maxthon',
'Ubuntu' => 'Ubuntu Web Browser',
'Vivaldi' => 'Vivaldi',
];
/**
* -------------------------------------------------------------------
* Mobiles
* -------------------------------------------------------------------
*
* @var array<string, string>
*/
public array $mobiles = [
// legacy array, old values commented out
'mobileexplorer' => 'Mobile Explorer',
// 'openwave' => 'Open Wave',
// 'opera mini' => 'Opera Mini',
// 'operamini' => 'Opera Mini',
// 'elaine' => 'Palm',
'palmsource' => 'Palm',
// 'digital paths' => 'Palm',
// 'avantgo' => 'Avantgo',
// 'xiino' => 'Xiino',
'palmscape' => 'Palmscape',
// 'nokia' => 'Nokia',
// 'ericsson' => 'Ericsson',
// 'blackberry' => 'BlackBerry',
// 'motorola' => 'Motorola'
// Phones and Manufacturers
'motorola' => 'Motorola',
'nokia' => 'Nokia',
'palm' => 'Palm',
'iphone' => 'Apple iPhone',
'ipad' => 'iPad',
'ipod' => 'Apple iPod Touch',
'sony' => 'Sony Ericsson',
'ericsson' => 'Sony Ericsson',
'blackberry' => 'BlackBerry',
'cocoon' => 'O2 Cocoon',
'blazer' => 'Treo',
'lg' => 'LG',
'amoi' => 'Amoi',
'xda' => 'XDA',
'mda' => 'MDA',
'vario' => 'Vario',
'htc' => 'HTC',
'samsung' => 'Samsung',
'sharp' => 'Sharp',
'sie-' => 'Siemens',
'alcatel' => 'Alcatel',
'benq' => 'BenQ',
'ipaq' => 'HP iPaq',
'mot-' => 'Motorola',
'playstation portable' => 'PlayStation Portable',
'playstation 3' => 'PlayStation 3',
'playstation vita' => 'PlayStation Vita',
'hiptop' => 'Danger Hiptop',
'nec-' => 'NEC',
'panasonic' => 'Panasonic',
'philips' => 'Philips',
'sagem' => 'Sagem',
'sanyo' => 'Sanyo',
'spv' => 'SPV',
'zte' => 'ZTE',
'sendo' => 'Sendo',
'nintendo dsi' => 'Nintendo DSi',
'nintendo ds' => 'Nintendo DS',
'nintendo 3ds' => 'Nintendo 3DS',
'wii' => 'Nintendo Wii',
'open web' => 'Open Web',
'openweb' => 'OpenWeb',
// Operating Systems
'android' => 'Android',
'symbian' => 'Symbian',
'SymbianOS' => 'SymbianOS',
'elaine' => 'Palm',
'series60' => 'Symbian S60',
'windows ce' => 'Windows CE',
// Browsers
'obigo' => 'Obigo',
'netfront' => 'Netfront Browser',
'openwave' => 'Openwave Browser',
'mobilexplorer' => 'Mobile Explorer',
'operamini' => 'Opera Mini',
'opera mini' => 'Opera Mini',
'opera mobi' => 'Opera Mobile',
'fennec' => 'Firefox Mobile',
// Other
'digital paths' => 'Digital Paths',
'avantgo' => 'AvantGo',
'xiino' => 'Xiino',
'novarra' => 'Novarra Transcoder',
'vodafone' => 'Vodafone',
'docomo' => 'NTT DoCoMo',
'o2' => 'O2',
// Fallback
'mobile' => 'Generic Mobile',
'wireless' => 'Generic Mobile',
'j2me' => 'Generic Mobile',
'midp' => 'Generic Mobile',
'cldc' => 'Generic Mobile',
'up.link' => 'Generic Mobile',
'up.browser' => 'Generic Mobile',
'smartphone' => 'Generic Mobile',
'cellphone' => 'Generic Mobile',
];
/**
* -------------------------------------------------------------------
* Robots
* -------------------------------------------------------------------
*
* There are hundred of bots but these are the most common.
*
* @var array<string, string>
*/
public array $robots = [
'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot',
'baiduspider' => 'Baiduspider',
'bingbot' => 'Bing',
'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo',
'ask jeeves' => 'Ask Jeeves',
'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos',
'yandex' => 'YandexBot',
'mediapartners-google' => 'MediaPartners Google',
'CRAZYWEBCRAWLER' => 'Crazy Webcrawler',
'adsbot-google' => 'AdsBot Google',
'feedfetcher-google' => 'Feedfetcher Google',
'curious george' => 'Curious George',
'ia_archiver' => 'Alexa Crawler',
'MJ12bot' => 'Majestic-12',
'Uptimebot' => 'Uptimebot',
];
}

46
app/Config/Validation.php Normal file
View File

@@ -0,0 +1,46 @@
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Validation\StrictRules\CreditCardRules;
use CodeIgniter\Validation\StrictRules\FileRules;
use CodeIgniter\Validation\StrictRules\FormatRules;
use CodeIgniter\Validation\StrictRules\Rules;
use App\Config\Validation\OSPOSRules;
class Validation extends BaseConfig
{
// --------------------------------------------------------------------
// Setup
// --------------------------------------------------------------------
/**
* Stores the classes that contain the
* rules that are available.
*
* @var list<string>
*/
public array $ruleSets = [
Rules::class,
FormatRules::class,
FileRules::class,
CreditCardRules::class,
OSPOSRules::class,
];
/**
* Specifies the views that are used to display the
* errors.
*
* @var array<string, string>
*/
public array $templates = [
'list' => 'CodeIgniter\Validation\Views\list',
'single' => 'CodeIgniter\Validation\Views\single',
];
// --------------------------------------------------------------------
// Rules
// --------------------------------------------------------------------
}

View File

@@ -0,0 +1,138 @@
<?php
namespace App\Config\Validation;
use App\Models\Employee;
use CodeIgniter\HTTP\IncomingRequest;
use Config\OSPOS;
use Config\Services;
/**
* @property Employee employee
* @property IncomingRequest request
*/
class OSPOSRules
{
private IncomingRequest $request;
private array $config;
/**
* Validates the username and password sent to the login view. User is logged in on successful validation.
*
* @param string $username Username to check against.
* @param string $fields Comma separated string of the fields for validation.
* @param array $data Data sent to the view.
* @param string|null $error The error sent back to the validation handler on failure.
* @return bool True if validation passes or false if there are errors.
* @noinspection PhpUnused
*/
public function login_check(string $username, string $fields, array $data, ?string &$error = null): bool
{
$employee = model(Employee::class);
$this->request = Services::request();
$this->config = config(OSPOS::class)->settings;
// Installation Check
if (!$this->installation_check()) {
$error = lang('Login.invalid_installation');
return false;
}
$password = $data['password'];
if (!$employee->login($username, $password)) {
$error = lang('Login.invalid_username_and_password');
return false;
}
$gcaptcha_enabled = array_key_exists('gcaptcha_enable', $this->config) && $this->config['gcaptcha_enable'];
if ($gcaptcha_enabled) {
$g_recaptcha_response = $this->request->getPost('g-recaptcha-response');
if (!$this->gcaptcha_check($g_recaptcha_response)) {
$error = lang('Login.invalid_gcaptcha');
return false;
}
}
return true;
}
/**
* Checks to see if GCaptcha verification was successful.
*
* @param $response
* @return bool true on successful GCaptcha verification or false if GCaptcha failed.
*/
private function gcaptcha_check($response): bool
{
if (!empty($response)) {
$check = [
'secret' => $this->config['gcaptcha_secret_key'],
'response' => $response,
'remoteip' => $this->request->getIPAddress()
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($check));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$status = json_decode($result, true);
if (!empty($status['success'])) {
return true;
}
}
return false;
}
/**
* Checks to make sure dependency PHP extensions are installed
*
* @return bool
*/
private function installation_check(): bool
{
$installed_extensions = implode(', ', get_loaded_extensions());
$required_extensions = ['bcmath', 'intl', 'gd', 'openssl', 'mbstring', 'curl', 'xml', 'json'];
$pattern = '/';
foreach ($required_extensions as $extension) {
$pattern .= '(?=.*\b' . preg_quote($extension, '/') . '\b)';
}
$pattern .= '/i';
$is_installed = preg_match($pattern, $installed_extensions);
if (!$is_installed) {
log_message('error', '[ERROR] Check your php.ini.');
log_message('error', "PHP installed extensions: $installed_extensions");
log_message('error', 'PHP required extensions: ' . implode(', ', $required_extensions));
}
return $is_installed;
}
/**
* Validates the candidate as a decimal number. Takes the locale into account. Used in validation rule calls.
*
* @param string $candidate
* @param string|null $error
* @return bool
* @noinspection PhpUnused
*/
public function decimal_locale(string $candidate, ?string &$error = null): bool
{
return parse_decimals($candidate) !== false;
}
}

62
app/Config/View.php Normal file
View File

@@ -0,0 +1,62 @@
<?php
namespace Config;
use CodeIgniter\Config\View as BaseView;
use CodeIgniter\View\ViewDecoratorInterface;
/**
* @phpstan-type parser_callable (callable(mixed): mixed)
* @phpstan-type parser_callable_string (callable(mixed): mixed)&string
*/
class View extends BaseView
{
/**
* When false, the view method will clear the data between each
* call. This keeps your data safe and ensures there is no accidental
* leaking between calls, so you would need to explicitly pass the data
* to each view. You might prefer to have the data stick around between
* calls so that it is available to all views. If that is the case,
* set $saveData to true.
*
* @var bool
*/
public $saveData = true;
/**
* Parser Filters map a filter name with any PHP callable. When the
* Parser prepares a variable for display, it will chain it
* through the filters in the order defined, inserting any parameters.
* To prevent potential abuse, all filters MUST be defined here
* in order for them to be available for use within the Parser.
*
* Examples:
* { title|esc(js) }
* { created_on|date(Y-m-d)|esc(attr) }
*
* @var array<string, string>
* @phpstan-var array<string, parser_callable_string>
*/
public $filters = [];
/**
* Parser Plugins provide a way to extend the functionality provided
* by the core Parser by creating aliases that will be replaced with
* any callable. Can be single or tag pair.
*
* @var array<string, callable|list<string>|string>
* @phpstan-var array<string, list<parser_callable_string>|parser_callable_string|parser_callable>
*/
public $plugins = [];
/**
* View Decorators are class methods that will be run in sequence to
* have a chance to alter the generated output just prior to caching
* the results.
*
* All classes must implement CodeIgniter\View\ViewDecoratorInterface
*
* @var list<class-string<ViewDecoratorInterface>>
*/
public array $decorators = [];
}

View File

@@ -0,0 +1,272 @@
<?php
namespace App\Controllers;
use App\Models\Attribute;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
require_once('Secure_Controller.php');
/**
* Attributes controls the custom attributes assigned to items
**/
class Attributes extends Secure_Controller
{
private Attribute $attribute;
public function __construct()
{
parent::__construct('attributes');
$this->attribute = model(Attribute::class);
}
/**
* Gets and sends the main view for Attributes to the browser.
*
* @return string
**/
public function getIndex(): string
{
$data['table_headers'] = get_attribute_definition_manage_table_headers();
return view('attributes/manage', $data);
}
/**
* Returns attribute table data rows. This will be called with AJAX.
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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);
$total_rows = $this->attribute->get_found_rows($search);
$data_rows = [];
foreach ($attributes->getResult() as $attribute_row) {
$attribute_row->definition_flags = $this->get_attributes($attribute_row->definition_flags);
$data_rows[] = get_attribute_definition_data_row($attribute_row);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* AJAX called function which saves the attribute value sent via POST by using the model save function.
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postSaveAttributeValue(): ResponseInterface
{
$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) ?? false,
$this->request->getPost('attribute_id', FILTER_SANITIZE_NUMBER_INT) ?? false
);
return $this->response->setJSON(['success' => $success != 0]);
}
/**
* AJAX called function deleting an attribute value using the model delete function.
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postDeleteDropdownAttributeValue(): ResponseInterface
{
$success = $this->attribute->deleteDropdownAttributeValue(
html_entity_decode($this->request->getPost('attribute_value')),
$this->request->getPost('definition_id', FILTER_SANITIZE_NUMBER_INT)
);
return $this->response->setJSON(['success' => $success]);
}
/**
* AJAX called function which saves the attribute definition.
*
* @param int $definition_id
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postSaveDefinition(int $definition_id = NO_DEFINITION_ID): ResponseInterface
{
$definition_flags = 0;
$flags = (empty($this->request->getPost('definition_flags'))) ? [] : $this->request->getPost('definition_flags', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
foreach ($flags as $flag) {
$definition_flags |= $flag;
}
// Validate definition_group (definition_fk) foreign key
$definition_group_input = $this->request->getPost('definition_group');
$definition_fk = $this->validateDefinitionGroup($definition_group_input);
if ($definition_fk === false) {
return $this->response->setJSON([
'success' => false,
'message' => lang('Attributes.definition_invalid_group'),
'id' => NEW_ENTRY
]);
}
// Save definition data
$definition_data = [
'definition_name' => $this->request->getPost('definition_name'),
'definition_unit' => $this->request->getPost('definition_unit') != '' ? $this->request->getPost('definition_unit') : null,
'definition_flags' => $definition_flags,
'definition_fk' => $definition_fk
];
if ($this->request->getPost('definition_type') != null) {
$definition_data['definition_type'] = DEFINITION_TYPES[$this->request->getPost('definition_type')];
}
$definition_name = $definition_data['definition_name'];
if ($this->attribute->save_definition($definition_data, $definition_id)) {
// New definition
if ($definition_id == NO_DEFINITION_ID) {
$definition_values = json_decode(html_entity_decode($this->request->getPost('definition_values')));
foreach ($definition_values as $definition_value) {
$this->attribute->saveAttributeValue($definition_value, $definition_data['definition_id']);
}
return $this->response->setJSON([
'success' => true,
'message' => lang('Attributes.definition_successful_adding') . ' ' . $definition_name,
'id' => $definition_data['definition_id']
]);
} else { // Existing definition
return $this->response->setJSON([
'success' => true,
'message' => lang('Attributes.definition_successful_updating') . ' ' . $definition_name,
'id' => $definition_id
]);
}
} else { // Failure
return $this->response->setJSON([
'success' => false,
'message' => lang('Attributes.definition_error_adding_updating', [$definition_name]),
'id' => NEW_ENTRY
]);
}
}
/**
* Validates a definition_group foreign key.
* Returns the validated integer ID, null if empty, or false if invalid.
*
* @param mixed $definition_group_input
* @return int|null|false
*/
private function validateDefinitionGroup(mixed $definition_group_input): int|null|false
{
if ($definition_group_input === '' || $definition_group_input === null) {
return null;
}
$definition_group_id = (int) $definition_group_input;
// Must be a positive integer, exist in attribute_definitions, and be of type GROUP
if ($definition_group_id <= 0
|| !$this->attribute->exists($definition_group_id)
|| $this->attribute->getAttributeInfo($definition_group_id)->definition_type !== GROUP
) {
return false;
}
return $definition_group_id;
}
/**
*
* @param int $definition_id
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function getSuggestAttribute(int $definition_id): ResponseInterface
{
$suggestions = $this->attribute->get_suggestions($definition_id, html_entity_decode($this->request->getGet('term')));
return $this->response->setJSON($suggestions);
}
/**
* @param int $row_id
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
$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);
return $this->response->setJSON($data_row);
}
/**
* @param int $definition_flags
* @return array
*/
private function get_attributes(int $definition_flags = 0): array
{
$definition_flag_names = [];
foreach (Attribute::get_definition_flags() as $id => $term) {
if ($id & $definition_flags) {
$definition_flag_names[$id] = lang('Attributes.' . strtolower($term) . '_visibility');
}
}
return $definition_flag_names;
}
/**
* @param int $definition_id
* @return string
*/
public function getView(int $definition_id = NO_DEFINITION_ID): string
{
$info = $this->attribute->getAttributeInfo($definition_id);
foreach (get_object_vars($info) as $property => $value) {
$info->$property = $value;
}
$data['definition_id'] = $definition_id;
$data['definition_values'] = $this->attribute->get_definition_values($definition_id);
$data['definition_group'] = $this->attribute->get_definitions_by_type(GROUP, $definition_id);
$data['definition_group'][''] = lang('Common.none_selected_text');
$data['definition_info'] = $info;
$show_all = Attribute::SHOW_IN_ITEMS | Attribute::SHOW_IN_RECEIVINGS | Attribute::SHOW_IN_SALES;
$data['definition_flags'] = $this->get_attributes($show_all);
$selected_flags = $info->definition_flags === '' ? $show_all : $info->definition_flags;
$data['selected_definition_flags'] = $this->get_attributes($selected_flags);
return view('attributes/form', $data);
}
/**
* Deletes an attribute definition
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$attributes_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if($this->attribute->deleteDefinitionList($attributes_to_delete)) {
$message = lang('Attributes.definition_successful_deleted') . ' ' . count($attributes_to_delete) . ' ' . lang('Attributes.definition_one_or_multiple');
return $this->response->setJSON(['success' => true, 'message' => $message]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Attributes.definition_cannot_be_deleted')]);
}
}
}

View File

@@ -0,0 +1,58 @@
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
/**
* Class BaseController
*
* BaseController provides a convenient place for loading components
* and performing functions that are needed by all your controllers.
* Extend this class in any new controllers:
* class Home extends BaseController
*
* For security be sure to declare any new methods as protected or private.
*/
abstract class BaseController extends Controller
{
/**
* Instance of the main Request object.
*
* @var CLIRequest|IncomingRequest
*/
protected $request;
/**
* An array of helpers to be loaded automatically upon
* class instantiation. These helpers will be available
* to all other controllers that extend BaseController.
*
* @var list<string>
*/
protected $helpers = [];
/**
* Be sure to declare properties for any property fetch you initialized.
* The creation of dynamic property is deprecated in PHP 8.2.
*/
// protected $session;
/**
* @return void
*/
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
// Do Not Edit This Line
parent::initController($request, $response, $logger);
// Preload any models, libraries, etc, here.
// E.g.: $this->session = service('session');
}
}

284
app/Controllers/Cashups.php Normal file
View File

@@ -0,0 +1,284 @@
<?php
namespace App\Controllers;
use App\Models\Cashup;
use App\Models\Expense;
use App\Models\Reports\Summary_payments;
use CodeIgniter\HTTP\ResponseInterface;
use Config\OSPOS;
use Config\Services;
class Cashups extends Secure_Controller
{
private Cashup $cashup;
private Expense $expense;
private Summary_payments $summary_payments;
private array $config;
public function __construct()
{
parent::__construct('cashups');
$this->cashup = model(Cashup::class);
$this->expense = model(Expense::class);
$this->summary_payments = model(Summary_payments::class);
$this->config = config(OSPOS::class)->settings;
}
/**
* @return string
*/
public function getIndex(): string
{
$data['table_headers'] = get_cashups_manage_table_headers();
// filters that will be loaded in the multiselect dropdown
$data['filters'] = ['is_deleted' => lang('Cashups.is_deleted')];
// Restore filters from URL
$data = array_merge($data, restoreTableFilters($this->request));
return view('cashups/manage', $data);
}
/**
* @return void
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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
'end_date' => $this->request->getGet('end_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'is_deleted' => false
];
// Check if any filter is set in the multiselect dropdown
$request_filters = array_fill_keys($this->request->getGet('filters', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? [], true);
$filters = array_merge($filters, $request_filters);
$cash_ups = $this->cashup->search($search, $filters, $limit, $offset, $sort, $order);
$total_rows = $this->cashup->get_found_rows($search, $filters);
$data_rows = [];
foreach ($cash_ups->getResult() as $cash_up) {
$data_rows[] = get_cash_up_data_row($cash_up);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* @param int $cashup_id
* @return string
*/
public function getView(int $cashup_id = NEW_ENTRY): string
{
$data = [];
$data['employees'] = [];
foreach ($this->employee->get_all()->getResult() as $employee) {
foreach (get_object_vars($employee) as $property => $value) {
$employee->$property = $value;
}
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
}
$cash_ups_info = $this->cashup->get_info($cashup_id);
foreach (get_object_vars($cash_ups_info) as $property => $value) {
$cash_ups_info->$property = $value;
}
// Open cashup
if ($cash_ups_info->cashup_id == NEW_ENTRY) {
$cash_ups_info->open_date = date('Y-m-d H:i:s');
$cash_ups_info->close_date = $cash_ups_info->open_date;
$cash_ups_info->open_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
$cash_ups_info->close_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
}
// If all the amounts are null or 0 that means it's a close cashup
elseif (
floatval($cash_ups_info->closed_amount_cash) == 0
&& floatval($cash_ups_info->closed_amount_due) == 0
&& floatval($cash_ups_info->closed_amount_card) == 0
&& floatval($cash_ups_info->closed_amount_check) == 0
) {
// Set the close date and time to the actual as this is a close session
$cash_ups_info->close_date = date('Y-m-d H:i:s');
// The closed amount starts with the open amount -/+ any trasferred amount
$cash_ups_info->closed_amount_cash = $cash_ups_info->open_amount_cash + $cash_ups_info->transfer_amount_cash;
// If it's date mode only and not date & time truncate the open and end date to date only
if (empty($this->config['date_or_time_format'])) {
if ($cash_ups_info->open_date != null) {
$start_date = substr($cash_ups_info->open_date, 0, 10);
} else {
$start_date = null;
}
if ($cash_ups_info->close_date != null) {
$end_date = substr($cash_ups_info->close_date, 0, 10);
} else {
$end_date = null;
}
// Search for all the payments given the time range
$inputs = [
'start_date' => $start_date,
'end_date' => $end_date,
'sale_type' => 'complete',
'location_id' => 'all'
];
} else {
// Search for all the payments given the time range
$inputs = [
'start_date' => $cash_ups_info->open_date,
'end_date' => $cash_ups_info->close_date,
'sale_type' => 'complete',
'location_id' => 'all'
];
}
// Get all the transactions payment summaries
$reports_data = $this->summary_payments->getData($inputs);
foreach ($reports_data as $row) {
if ($row['trans_group'] == lang('Reports.trans_payments')) {
if ($row['trans_type'] == lang('Sales.cash')) {
$cash_ups_info->closed_amount_cash += $row['trans_amount'];
} elseif ($row['trans_type'] == lang('Sales.due')) {
$cash_ups_info->closed_amount_due += $row['trans_amount'];
} elseif (
$row['trans_type'] == lang('Sales.debit') ||
$row['trans_type'] == lang('Sales.credit')
) {
$cash_ups_info->closed_amount_card += $row['trans_amount'];
} elseif ($row['trans_type'] == lang('Sales.check')) {
$cash_ups_info->closed_amount_check += $row['trans_amount'];
}
}
}
// Lookup expenses paid in cash
$filters = [
'only_cash' => true,
'only_due' => false,
'only_check' => false,
'only_credit' => false,
'only_debit' => false,
'is_deleted' => false
];
$payments = $this->expense->get_payments_summary('', array_merge($inputs, $filters));
foreach ($payments as $row) {
$cash_ups_info->closed_amount_cash -= $row['amount'];
}
$cash_ups_info->closed_amount_total = $this->_calculate_total($cash_ups_info->open_amount_cash, $cash_ups_info->transfer_amount_cash, $cash_ups_info->closed_amount_cash, $cash_ups_info->closed_amount_due, $cash_ups_info->closed_amount_card, $cash_ups_info->closed_amount_check);
}
$data['cash_ups_info'] = $cash_ups_info;
return view("cashups/form", $data);
}
/**
* @param int $row_id
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
$cash_ups_info = $this->cashup->get_info($row_id);
$data_row = get_cash_up_data_row($cash_ups_info);
return $this->response->setJSON($data_row);
}
/**
* @param int $cashup_id
* @return ResponseInterface
*/
public function postSave(int $cashup_id = NEW_ENTRY): ResponseInterface
{
$open_date = $this->request->getPost('open_date');
$open_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $open_date);
$close_date = $this->request->getPost('close_date');
$close_date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $close_date);
$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($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),
'close_employee_id' => $this->request->getPost('close_employee_id', FILTER_SANITIZE_NUMBER_INT),
'deleted' => $this->request->getPost('deleted') != null
];
if ($this->cashup->save_value($cash_up_data, $cashup_id)) {
// New cashup_id
if ($cashup_id == NEW_ENTRY) {
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_adding'), 'id' => $cash_up_data['cashup_id']]);
} else { // Existing Cashup
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_updating'), 'id' => $cashup_id]);
}
} else { // Failure
return $this->response->setJSON(['success' => false, 'message' => lang('Cashups.error_adding_updating'), 'id' => NEW_ENTRY]);
}
}
/**
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$cash_ups_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($this->cashup->delete_list($cash_ups_to_delete)) {
return $this->response->setJSON(['success' => true, 'message' => lang('Cashups.successful_deleted') . ' ' . count($cash_ups_to_delete) . ' ' . lang('Cashups.one_or_multiple'), 'ids' => $cash_ups_to_delete]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Cashups.cannot_be_deleted'), 'ids' => $cash_ups_to_delete]);
}
}
/**
* Calculate the total for cashups. Used in app\Views\cashups\form.php
*
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postAjax_cashup_total(): ResponseInterface
{
$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
return $this->response->setJSON(['total' => to_currency_no_money($total)]);
}
/**
* Calculate total
*/
private function _calculate_total(float $open_amount_cash, float $transfer_amount_cash, float $closed_amount_due, float $closed_amount_cash, float $closed_amount_card, $closed_amount_check): float // TODO: need to get rid of hungarian notation here. Also, the signature is pretty long. Perhaps they need to go into an object or array?
{
return ($closed_amount_cash - $open_amount_cash - $transfer_amount_cash + $closed_amount_due + $closed_amount_card + $closed_amount_check);
}
}

1002
app/Controllers/Config.php Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,485 @@
<?php
namespace App\Controllers;
use App\Libraries\Mailchimp_lib;
use App\Models\Customer;
use App\Models\Customer_rewards;
use App\Models\Tax_code;
use CodeIgniter\HTTP\DownloadResponse;
use CodeIgniter\HTTP\ResponseInterface;
use Config\OSPOS;
use Config\Services;
use stdClass;
class Customers extends Persons
{
private string $_list_id;
private Mailchimp_lib $mailchimp_lib;
private Customer_rewards $customer_rewards;
private Customer $customer;
private Tax_code $tax_code;
private array $config;
public function __construct()
{
parent::__construct('customers');
$this->mailchimp_lib = new Mailchimp_lib();
$this->customer_rewards = model(Customer_rewards::class);
$this->customer = model(Customer::class);
$this->tax_code = model(Tax_code::class);
$this->config = config(OSPOS::class)->settings;
$encrypter = Services::encrypter();
if (!empty($this->config['mailchimp_list_id'])) {
$this->_list_id = $encrypter->decrypt($this->config['mailchimp_list_id']);
} else {
$this->_list_id = '';
}
}
/**
* @return string
*/
public function getIndex(): string
{
$data['table_headers'] = get_customer_manage_table_headers();
return view('people/manage', $data);
}
/**
* Gets one row for a customer manage table. This is called using AJAX to update one row.
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
$person = $this->customer->get_info($row_id);
// Retrieve the total amount the customer spent so far together with min, max and average values
$stats = $this->customer->get_stats($person->person_id); // TODO: This and the next 11 lines are duplicated in search(). Extract a method.
if (empty($stats)) {
// Create object with empty properties.
$stats = new stdClass();
$stats->total = 0;
$stats->min = 0;
$stats->max = 0;
$stats->average = 0;
$stats->avg_discount = 0;
$stats->quantity = 0;
}
$data_row = get_customer_data_row($person, $stats);
return $this->response->setJSON($data_row);
}
/**
* Returns customer table data rows. This will be called with AJAX.
*
* @return void
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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);
$total_rows = $this->customer->get_found_rows($search);
$data_rows = [];
foreach ($customers->getResult() as $person) {
// Retrieve the total amount the customer spent so far together with min, max and average values
$stats = $this->customer->get_stats($person->person_id); // TODO: duplicated... see above
if (empty($stats)) {
// Create object with empty properties.
$stats = new stdClass();
$stats->total = 0;
$stats->min = 0;
$stats->max = 0;
$stats->average = 0;
$stats->avg_discount = 0;
$stats->quantity = 0;
}
$data_rows[] = get_customer_data_row($person, $stats);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* Gives search suggestions based on what is being searched for
* @return ResponseInterface
*/
public function getSuggest(): ResponseInterface
{
$search = $this->request->getGet('term');
$suggestions = $this->customer->get_search_suggestions($search);
return $this->response->setJSON($suggestions);
}
/**
* @return ResponseInterface
*/
public function suggest_search(): ResponseInterface
{
$search = $this->request->getGet('term');
$suggestions = $this->customer->get_search_suggestions($search, 25, false);
return $this->response->setJSON($suggestions);
}
/**
* Loads the customer edit form
* @return string
*/
public function getView(int $customer_id = NEW_ENTRY): string
{
// Set default values
if ($customer_id == null) $customer_id = NEW_ENTRY;
$info = $this->customer->get_info($customer_id);
foreach (get_object_vars($info) as $property => $value) {
$info->$property = $value;
}
$data['person_info'] = $info;
if (empty($info->person_id) || empty($info->date) || empty($info->employee_id)) {
$data['person_info']->date = date('Y-m-d H:i:s');
$data['person_info']->employee_id = $this->employee->get_logged_in_employee_info()->person_id;
}
$employee_info = $this->employee->get_info($info->employee_id);
$data['employee'] = $employee_info->first_name . ' ' . $employee_info->last_name;
$tax_code_info = $this->tax_code->get_info($info->sales_tax_code_id);
if ($tax_code_info->tax_code != null) {
$data['sales_tax_code_label'] = $tax_code_info->tax_code . ' ' . $tax_code_info->tax_code_name;
} else {
$data['sales_tax_code_label'] = '';
}
$packages = ['' => lang('Items.none')];
foreach ($this->customer_rewards->get_all()->getResultArray() as $row) {
$packages[$row['package_id']] = $row['package_name'];
}
$data['packages'] = $packages;
$data['selected_package'] = $info->package_id;
$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);
if (!empty($stats)) {
foreach (get_object_vars($stats) as $property => $value) {
$info->$property = $value;
}
$data['stats'] = $stats;
}
// Retrieve the info from Mailchimp only if there is an email address assigned
if (!empty($info->email)) {
// Collect Mailchimp customer info
if (($mailchimp_info = $this->mailchimp_lib->getMemberInfo($this->_list_id, $info->email)) !== false) {
$data['mailchimp_info'] = $mailchimp_info;
// Collect customer Mailchimp emails activities (stats)
if (($activities = $this->mailchimp_lib->getMemberActivity($this->_list_id, $info->email)) !== false) {
if (array_key_exists('activity', $activities)) {
$open = 0;
$unopen = 0;
$click = 0;
$total = 0;
$lastopen = '';
foreach ($activities['activity'] as $activity) {
if ($activity['action'] == 'sent') {
++$unopen;
} elseif ($activity['action'] == 'open') {
if (empty($lastopen)) {
$lastopen = substr($activity['timestamp'], 0, 10);
}
++$open;
} elseif ($activity['action'] == 'click') {
if (empty($lastopen)) {
$lastopen = substr($activity['timestamp'], 0, 10);
}
++$click;
}
++$total;
}
$data['mailchimp_activity']['total'] = $total;
$data['mailchimp_activity']['open'] = $open;
$data['mailchimp_activity']['unopen'] = $unopen;
$data['mailchimp_activity']['click'] = $click;
$data['mailchimp_activity']['lastopen'] = $lastopen;
}
}
}
}
return view("customers/form", $data);
}
/**
* Inserts/updates a customer
* @return ResponseInterface
*/
public function postSave(int $customer_id = NEW_ENTRY): ResponseInterface
{
$first_name = $this->request->getPost('first_name');
$last_name = $this->request->getPost('last_name');
$email = strtolower($this->request->getPost('email', FILTER_SANITIZE_EMAIL));
// Format first and last name properly
$first_name = $this->nameize($first_name);
$last_name = $this->nameize($last_name);
$person_data = [
'first_name' => $first_name,
'last_name' => $last_name,
'gender' => $this->request->getPost('gender', FILTER_SANITIZE_NUMBER_INT),
'email' => $email,
'phone_number' => $this->request->getPost('phone_number'),
'address_1' => $this->request->getPost('address_1'),
'address_2' => $this->request->getPost('address_2'),
'city' => $this->request->getPost('city'),
'state' => $this->request->getPost('state'),
'zip' => $this->request->getPost('zip'),
'country' => $this->request->getPost('country'),
'comments' => $this->request->getPost('comments')
];
$date_formatter = date_create_from_format($this->config['dateformat'] . ' ' . $this->config['timeformat'], $this->request->getPost('date'));
$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 : 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,
'date' => $date_formatter->format('Y-m-d H:i:s'),
'employee_id' => $this->request->getPost('employee_id', FILTER_SANITIZE_NUMBER_INT),
'sales_tax_code_id' => $this->request->getPost('sales_tax_code_id') == '' ? null : $this->request->getPost('sales_tax_code_id', FILTER_SANITIZE_NUMBER_INT)
];
if ($this->customer->save_customer($person_data, $customer_data, $customer_id)) {
// Save customer to Mailchimp selected list // TODO: addOrUpdateMember should be refactored. Potentially pass an array or object instead of 6 parameters.
$mailchimp_status = $this->request->getPost('mailchimp_status');
$this->mailchimp_lib->addOrUpdateMember(
$this->_list_id,
$email,
$first_name,
$last_name,
$mailchimp_status == null ? "" : $mailchimp_status,
['vip' => $this->request->getPost('mailchimp_vip') != null]
);
// New customer
if ($customer_id == NEW_ENTRY) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Customers.successful_adding') . ' ' . $first_name . ' ' . $last_name,
'id' => $customer_data['person_id']
]);
} else { // Existing customer
return $this->response->setJSON([
'success' => true,
'message' => lang('Customers.successful_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => $customer_id
]);
}
} else { // Failure
return $this->response->setJSON([
'success' => false,
'message' => lang('Customers.error_adding_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => NEW_ENTRY
]);
}
}
/**
* Verifies if an email address already exists. Used in app/Views/customers/form.php
*
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postCheckEmail(): ResponseInterface
{
$email = strtolower($this->request->getPost('email', FILTER_SANITIZE_EMAIL));
$person_id = $this->request->getPost('person_id', FILTER_SANITIZE_NUMBER_INT);
$exists = $this->customer->check_email_exists($email, $person_id);
return $this->response->setJSON(!$exists ? 'true' : 'false');
}
/**
* Verifies if an account number already exists. Used in app/Views/customers/form.php
*
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postCheckAccountNumber(): ResponseInterface
{
$exists = $this->customer->check_account_number_exists($this->request->getPost('account_number'), $this->request->getPost('person_id', FILTER_SANITIZE_NUMBER_INT));
return $this->response->setJSON(!$exists ? 'true' : 'false');
}
/**
* This deletes customers from the customers table
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$customers_to_delete = $this->request->getPost('ids');
$customers_info = $this->customer->get_multiple_info($customers_to_delete);
$count = 0;
foreach ($customers_info->getResult() as $info) {
if ($this->customer->delete($info->person_id)) {
// remove customer from Mailchimp selected list
$this->mailchimp_lib->removeMember($this->_list_id, $info->email);
$count++;
}
}
if ($count == count($customers_to_delete)) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Customers.successful_deleted') . ' ' . $count . ' ' . lang('Customers.one_or_multiple')
]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Customers.cannot_be_deleted')]);
}
}
/**
* Customers import from csv spreadsheet
*
* @return DownloadResponse The template for Customer CSV imports is returned and download forced.
* @noinspection PhpUnused
*/
public function getCsv(): DownloadResponse
{
$name = 'importCustomers.csv';
$data = file_get_contents(WRITEPATH . "uploads/$name");
return $this->response->download($name, $data);
}
/**
* Displays the customer CSV import modal. Used in app/Views/people/manage.php
*
* @return string
* @noinspection PhpUnused
*/
public function getCsvImport(): string
{
return view('customers/form_csv_import');
}
/**
* Imports a CSV file containing customers. Used in app/Views/customers/form_csv_import.php
*
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postImportCsvFile(): ResponseInterface
{
if ($_FILES['file_path']['error'] != UPLOAD_ERR_OK) {
return $this->response->setJSON(['success' => false, 'message' => lang('Customers.csv_import_failed')]);
} else {
if (($handle = fopen($_FILES['file_path']['tmp_name'], 'r')) !== false) {
// Skip the first row as it's the table description
fgetcsv($handle);
$i = 1;
$failCodes = [];
while (($data = fgetcsv($handle)) !== false) {
$consent = $data[3] == '' ? 0 : 1;
if (sizeof($data) >= 16 && $consent) {
$email = strtolower($data[4]);
$person_data = [
'first_name' => $data[0],
'last_name' => $data[1],
'gender' => $data[2],
'email' => $email,
'phone_number' => $data[5],
'address_1' => $data[6],
'address_2' => $data[7],
'city' => $data[8],
'state' => $data[9],
'zip' => $data[10],
'country' => $data[11],
'comments' => $data[12]
];
$customer_data = [
'consent' => $consent,
'company_name' => $data[13],
'discount' => $data[15],
'discount_type' => $data[16],
'taxable' => $data[17] == '' ? 0 : 1,
'date' => date('Y-m-d H:i:s'),
'employee_id' => $this->employee->get_logged_in_employee_info()->person_id
];
$account_number = $data[14];
// Don't duplicate people with same email
$invalidated = $this->customer->check_email_exists($email);
if ($account_number != '') {
$customer_data['account_number'] = $account_number;
$invalidated &= $this->customer->check_account_number_exists($account_number);
}
} else {
$invalidated = true;
}
if ($invalidated) {
$failCodes[] = $i;
log_message('error', "Row $i was not imported: Either email or account number already exist or data was invalid.");
} elseif ($this->customer->save_customer($person_data, $customer_data)) {
// Save customer to Mailchimp selected list
$this->mailchimp_lib->addOrUpdateMember($this->_list_id, $person_data['email'], $person_data['first_name'], '', $person_data['last_name']);
} else {
$failCodes[] = $i;
}
++$i;
}
if (count($failCodes) > 0) {
$message = lang('Customers.csv_import_partially_failed', [count($failCodes), implode(', ', $failCodes)]);
return $this->response->setJSON(['success' => false, 'message' => $message]);
} else {
return $this->response->setJSON(['success' => true, 'message' => lang('Customers.csv_import_success')]);
}
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Customers.csv_import_nodata_wrongformat')]);
}
}
}
}

View File

@@ -0,0 +1,259 @@
<?php
namespace App\Controllers;
use App\Models\Module;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
/**
*
*
* @property module module
*
*/
class Employees extends Persons
{
public function __construct()
{
parent::__construct('employees');
$this->module = model('Module');
}
/**
* Returns employee table data rows. This will be called with AJAX.
*
* @return void
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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);
$total_rows = $this->employee->get_found_rows($search);
$data_rows = [];
foreach ($employees->getResult() as $person) {
$data_rows[] = get_person_data_row($person);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* AJAX called function gives search suggestions based on what is being searched for.
*
* @return ResponseInterface
*/
public function getSuggest(): ResponseInterface
{
$search = $this->request->getGet('term');
$suggestions = $this->employee->get_search_suggestions($search, 25, true);
return $this->response->setJSON($suggestions);
}
/**
* @return ResponseInterface
*/
public function suggest_search(): ResponseInterface
{
$search = $this->request->getPost('term');
$suggestions = $this->employee->get_search_suggestions($search);
return $this->response->setJSON($suggestions);
}
/**
* Loads the employee edit form
* @return string
*/
public function getView(int $employee_id = NEW_ENTRY): string
{
$person_info = $this->employee->get_info($employee_id);
$current_user = $this->employee->get_logged_in_employee_info();
if ($employee_id != NEW_ENTRY && !$this->employee->canModifyEmployee($person_info->person_id, $current_user->person_id)) {
header('Location: ' . base_url('no_access/employees/employees'));
exit();
}
foreach (get_object_vars($person_info) as $property => $value) {
$person_info->$property = $value;
}
$data['person_info'] = $person_info;
$data['employee_id'] = $employee_id;
$modules = [];
foreach ($this->module->get_all_modules()->getResult() as $module) {
$module->grant = $this->employee->has_grant($module->module_id, $person_info->person_id);
$module->menu_group = $this->employee->get_menu_group($module->module_id, $person_info->person_id);
$modules[] = $module;
}
$data['all_modules'] = $modules;
$permissions = [];
foreach ($this->module->get_all_subpermissions()->getResult() as $permission) { // TODO: subpermissions does not follow naming standards.
$permission->permission_id = str_replace(' ', '_', $permission->permission_id);
$permission->grant = $this->employee->has_grant($permission->permission_id, $person_info->person_id);
$permissions[] = $permission;
}
$data['all_subpermissions'] = $permissions;
return view('employees/form', $data);
}
/**
* Inserts/updates an employee
* @return ResponseInterface
*/
public function postSave(int $employee_id = NEW_ENTRY): ResponseInterface
{
$current_user = $this->employee->get_logged_in_employee_info();
if ($employee_id != NEW_ENTRY) {
$target_employee = $this->employee->get_info($employee_id);
if (!$this->employee->canModifyEmployee($target_employee->person_id, $current_user->person_id)) {
return $this->response->setJSON([
'success' => false,
'message' => lang('Employees.error_updating_admin'),
'id' => NEW_ENTRY
]);
}
}
$first_name = $this->request->getPost('first_name', FILTER_SANITIZE_FULL_SPECIAL_CHARS); // TODO: duplicated code
$last_name = $this->request->getPost('last_name', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$email = strtolower($this->request->getPost('email', FILTER_SANITIZE_EMAIL));
// format first and last name properly
$first_name = $this->nameize($first_name);
$last_name = $this->nameize($last_name);
$person_data = [
'first_name' => $first_name,
'last_name' => $last_name,
'gender' => $this->request->getPost('gender', FILTER_SANITIZE_NUMBER_INT),
'email' => $email,
'phone_number' => $this->request->getPost('phone_number', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'address_1' => $this->request->getPost('address_1', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'address_2' => $this->request->getPost('address_2', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'city' => $this->request->getPost('city', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'state' => $this->request->getPost('state', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'zip' => $this->request->getPost('zip', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'country' => $this->request->getPost('country', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'comments' => $this->request->getPost('comments', FILTER_SANITIZE_FULL_SPECIAL_CHARS)
];
$grants_array = [];
$isAdmin = $this->employee->isAdmin($current_user->person_id);
foreach ($this->module->get_all_permissions()->getResult() as $permission) {
$grants = [];
$grant = $this->request->getPost('grant_' . $permission->permission_id) != null ? $this->request->getPost('grant_' . $permission->permission_id, FILTER_SANITIZE_FULL_SPECIAL_CHARS) : '';
if ($grant == $permission->permission_id) {
if (!$isAdmin && !$this->employee->has_grant($permission->permission_id, $current_user->person_id)) {
continue;
}
$grants['permission_id'] = $permission->permission_id;
$grants['menu_group'] = $this->request->getPost('menu_group_' . $permission->permission_id) != null ? $this->request->getPost('menu_group_' . $permission->permission_id, FILTER_SANITIZE_FULL_SPECIAL_CHARS) : '--';
$grants_array[] = $grants;
}
}
// Password has been changed OR first time password set
if (!empty($this->request->getPost('password')) && ENVIRONMENT != 'testing') {
$exploded = explode(":", $this->request->getPost('language', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
$employee_data = [
'username' => $this->request->getPost('username', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'password' => password_hash($this->request->getPost('password'), PASSWORD_DEFAULT),
'hash_version' => 2,
'language_code' => $exploded[0],
'language' => $exploded[1]
];
} else { // Password not changed
$exploded = explode(":", $this->request->getPost('language', FILTER_SANITIZE_FULL_SPECIAL_CHARS));
$employee_data = [
'username' => $this->request->getPost('username', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'language_code' => $exploded[0],
'language' => $exploded[1]
];
}
if ($this->employee->save_employee($person_data, $employee_data, $grants_array, $employee_id)) {
// New employee
if ($employee_id == NEW_ENTRY) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Employees.successful_adding') . ' ' . $first_name . ' ' . $last_name,
'id' => $employee_data['person_id']
]);
} else { // Existing employee
$logged_in_employee_id = session()->get('person_id');
if ($employee_id == $logged_in_employee_id) {
session()->set('language_code', $employee_data['language_code']);
session()->set('language', $employee_data['language']);
}
return $this->response->setJSON([
'success' => true,
'message' => lang('Employees.successful_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => $employee_id
]);
}
} else { // Failure
return $this->response->setJSON([
'success' => false,
'message' => lang('Employees.error_adding_updating') . ' ' . $first_name . ' ' . $last_name,
'id' => NEW_ENTRY
]);
}
}
/**
* This deletes employees from the employees table
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$employees_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$current_user = $this->employee->get_logged_in_employee_info();
if (!$this->employee->isAdmin($current_user->person_id)) {
foreach ($employees_to_delete as $emp_id) {
if ($this->employee->isAdmin((int)$emp_id)) {
return $this->response->setJSON(['success' => false, 'message' => lang('Employees.error_deleting_admin')]);
}
}
}
if ($this->employee->delete_list($employees_to_delete)) { // TODO: this is passing a string, but delete_list expects an array
return $this->response->setJSON([
'success' => true,
'message' => lang('Employees.successful_deleted') . ' ' . count($employees_to_delete) . ' ' . lang('Employees.one_or_multiple')
]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Employees.cannot_be_deleted')]);
}
}
/**
* Checks an employee username against the database. Used in app\Views\employees\form.php
*
* @param $employee_id
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function getCheckUsername($employee_id): ResponseInterface
{
$exists = $this->employee->username_exists($employee_id, $this->request->getGet('username'));
return $this->response->setJSON(!$exists ? 'true' : 'false');
}
}

View File

@@ -0,0 +1,215 @@
<?php
namespace App\Controllers;
use App\Models\Expense;
use App\Models\Expense_category;
use CodeIgniter\HTTP\ResponseInterface;
use Config\OSPOS;
use Config\Services;
class Expenses extends Secure_Controller
{
private Expense $expense;
private Expense_category $expense_category;
public function __construct()
{
parent::__construct('expenses');
$this->expense = model(Expense::class);
$this->expense_category = model(Expense_category::class);
}
/**
* @return void
*/
public function getIndex(): string
{
$data['table_headers'] = get_expenses_manage_table_headers();
// filters that will be loaded in the multiselect dropdown
$data['filters'] = [
'only_cash' => lang('Expenses.cash_filter'),
'only_due' => lang('Expenses.due_filter'),
'only_check' => lang('Expenses.check_filter'),
'only_credit' => lang('Expenses.credit_filter'),
'only_debit' => lang('Expenses.debit_filter'),
'is_deleted' => lang('Expenses.is_deleted')
];
// Restore filters from URL
$data = array_merge($data, restoreTableFilters($this->request));
return view('expenses/manage', $data);
}
/**
* @return void
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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),
'end_date' => $this->request->getGet('end_date', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'only_cash' => false,
'only_due' => false,
'only_check' => false,
'only_credit' => false,
'only_debit' => false,
'is_deleted' => false
];
// Check if any filter is set in the multiselect dropdown
$request_filters = array_fill_keys($this->request->getGet('filters', FILTER_SANITIZE_FULL_SPECIAL_CHARS) ?? [], true);
$filters = array_merge($filters, $request_filters);
$expenses = $this->expense->search($search, $filters, $limit, $offset, $sort, $order);
$total_rows = $this->expense->get_found_rows($search, $filters);
$payments = $this->expense->get_payments_summary($search, $filters);
$payment_summary = get_expenses_manage_payments_summary($payments, $expenses);
$data_rows = [];
foreach ($expenses->getResult() as $expense) {
$data_rows[] = get_expenses_data_row($expense);
}
if ($total_rows > 0) {
$data_rows[] = get_expenses_data_last_row($expenses);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows, 'payment_summary' => $payment_summary]);
}
/**
* @param int $expense_id
* @return void
*/
public function getView(int $expense_id = NEW_ENTRY): string
{
$data = []; // TODO: Duplicated code
$data['expenses_info'] = $this->expense->get_info($expense_id);
$expense_id = $data['expenses_info']->expense_id;
$current_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
$can_assign_employee = $this->employee->has_grant('employees', $current_employee_id);
$data['employees'] = [];
if ($can_assign_employee) {
foreach ($this->employee->get_all()->getResult() as $employee) {
$data['employees'][$employee->person_id] = $employee->first_name . ' ' . $employee->last_name;
}
} else {
$stored_employee_id = $expense_id == NEW_ENTRY ? $current_employee_id : $data['expenses_info']->employee_id;
$stored_employee = $this->employee->get_info($stored_employee_id);
$data['employees'][$stored_employee_id] = $stored_employee->first_name . ' ' . $stored_employee->last_name;
}
$data['can_assign_employee'] = $can_assign_employee;
$expense_categories = [];
foreach ($this->expense_category->get_all(0, 0, true)->getResultArray() as $row) {
$expense_categories[$row['expense_category_id']] = $row['category_name'];
}
$data['expense_categories'] = $expense_categories;
if ($expense_id == NEW_ENTRY) {
$data['expenses_info']->date = date('Y-m-d H:i:s');
$data['expenses_info']->employee_id = $current_employee_id;
}
$data['payments'] = [];
foreach ($this->expense->get_expense_payment($expense_id)->getResult() as $payment) {
foreach (get_object_vars($payment) as $property => $value) {
$payment->$property = $value;
}
$data['payments'][] = $payment;
}
// Don't allow gift card to be a payment option in a sale transaction edit because it's a complex change
$data['payment_options'] = $this->expense->get_payment_options();
return view("expenses/form", $data);
}
/**
* @param int $row_id
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
$expense_info = $this->expense->get_info($row_id);
$data_row = get_expenses_data_row($expense_info);
return $this->response->setJSON($data_row);
}
/**
* @param int $expense_id
* @return ResponseInterface
*/
public function postSave(int $expense_id = NEW_ENTRY): ResponseInterface
{
$config = config(OSPOS::class)->settings;
$newdate = $this->request->getPost('date', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$date_formatter = date_create_from_format($config['dateformat'] . ' ' . $config['timeformat'], $newdate);
$current_employee_id = $this->employee->get_logged_in_employee_info()->person_id;
$submitted_employee_id = $this->request->getPost('employee_id', FILTER_SANITIZE_NUMBER_INT);
if (!$this->employee->has_grant('employees', $current_employee_id)) {
if ($expense_id == NEW_ENTRY) {
$employee_id = $current_employee_id;
} else {
$existing_expense = $this->expense->get_info($expense_id);
$employee_id = $existing_expense->employee_id;
}
} else {
$employee_id = $submitted_employee_id;
}
$expense_data = [
'date' => $date_formatter->format('Y-m-d H:i:s'),
'supplier_id' => $this->request->getPost('supplier_id') == '' ? null : $this->request->getPost('supplier_id', FILTER_SANITIZE_NUMBER_INT),
'supplier_tax_code' => $this->request->getPost('supplier_tax_code', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'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),
'employee_id' => $employee_id,
'deleted' => $this->request->getPost('deleted') != null
];
if ($this->expense->save_value($expense_data, $expense_id)) {
// New Expense
if ($expense_id == NEW_ENTRY) {
return $this->response->setJSON(['success' => true, 'message' => lang('Expenses.successful_adding'), 'id' => $expense_data['expense_id']]);
} else { // Existing Expense
return $this->response->setJSON(['success' => true, 'message' => lang('Expenses.successful_updating'), 'id' => $expense_id]);
}
} else { // Failure
return $this->response->setJSON(['success' => false, 'message' => lang('Expenses.error_adding_updating'), 'id' => NEW_ENTRY]);
}
}
/**
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$expenses_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($this->expense->delete_list($expenses_to_delete)) {
return $this->response->setJSON(['success' => true, 'message' => lang('Expenses.successful_deleted') . ' ' . count($expenses_to_delete) . ' ' . lang('Expenses.one_or_multiple'), 'ids' => $expenses_to_delete]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Expenses.cannot_be_deleted'), 'ids' => $expenses_to_delete]);
}
}
}

View File

@@ -0,0 +1,125 @@
<?php
namespace App\Controllers;
use App\Models\Expense_category;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
class Expenses_categories extends Secure_Controller // TODO: Is this class ever used?
{
private Expense_category $expense_category;
public function __construct()
{
parent::__construct('expenses_categories');
$this->expense_category = model(Expense_category::class);
}
/**
* @return void
*/
public function getIndex(): string
{
$data['table_headers'] = get_expense_category_manage_table_headers();
return view('expenses_categories/manage', $data);
}
/**
* Returns expense_category_manage table data rows. This will be called with AJAX.
**/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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);
$total_rows = $this->expense_category->get_found_rows($search);
$data_rows = [];
foreach ($expense_categories->getResult() as $expense_category) {
$data_rows[] = get_expense_category_data_row($expense_category);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* @param int $row_id
* @return void
*/
public function getRow(int $row_id): ResponseInterface
{
$data_row = get_expense_category_data_row($this->expense_category->get_info($row_id));
return $this->response->setJSON($data_row);
}
/**
* @param int $expense_category_id
* @return void
*/
public function getView(int $expense_category_id = NEW_ENTRY): string
{
$data['category_info'] = $this->expense_category->get_info($expense_category_id);
return view("expenses_categories/form", $data);
}
/**
* @param int $expense_category_id
* @return void
*/
public function postSave(int $expense_category_id = NEW_ENTRY): ResponseInterface
{
$expense_category_data = [
'category_name' => $this->request->getPost('category_name', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'category_description' => $this->request->getPost('category_description', FILTER_SANITIZE_FULL_SPECIAL_CHARS)
];
if ($this->expense_category->save_value($expense_category_data, $expense_category_id)) {
// New expense_category
if ($expense_category_id == NEW_ENTRY) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Expenses_categories.successful_adding'),
'id' => $expense_category_data['expense_category_id']
]);
} else { // Existing Expense Category
return $this->response->setJSON([
'success' => true,
'message' => lang('Expenses_categories.successful_updating'),
'id' => $expense_category_id
]);
}
} else { // Failure
return $this->response->setJSON([
'success' => true,
'message' => lang('Expenses_categories.error_adding_updating') . ' ' . $expense_category_data['category_name'],
'id' => NEW_ENTRY
]);
}
}
/**
* @return void
*/
public function postDelete(): ResponseInterface
{
$expense_category_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($this->expense_category->delete_list($expense_category_to_delete)) { // TODO: Convert to ternary notation.
return $this->response->setJSON([
'success' => true,
'message' => lang('Expenses_categories.successful_deleted') . ' ' . count($expense_category_to_delete) . ' ' . lang('Expenses_categories.one_or_multiple')
]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Expenses_categories.cannot_be_deleted')]);
}
}
}

View File

@@ -0,0 +1,188 @@
<?php
namespace App\Controllers;
use App\Models\Giftcard;
use CodeIgniter\HTTP\ResponseInterface;
use Config\OSPOS;
use Config\Services;
class Giftcards extends Secure_Controller
{
private Giftcard $giftcard;
public function __construct()
{
parent::__construct('giftcards');
$this->giftcard = model(Giftcard::class);
}
/**
* @return string
*/
public function getIndex(): string
{
$data['table_headers'] = get_giftcards_manage_table_headers();
return view('giftcards/manage', $data);
}
/**
* Returns Giftcards table data rows. This will be called with AJAX.
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search');
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(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);
$total_rows = $this->giftcard->get_found_rows($search);
$data_rows = [];
foreach ($giftcards->getResult() as $giftcard) {
$data_rows[] = get_giftcard_data_row($giftcard);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* Gets search suggestions for giftcards. Used in app\Views\sales\register.php
*
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function getSuggest(): ResponseInterface
{
$search = $this->request->getGet('term');
$suggestions = $this->giftcard->get_search_suggestions($search, true);
return $this->response->setJSON($suggestions);
}
/**
* @return ResponseInterface
*/
public function suggest_search(): ResponseInterface
{
$search = $this->request->getPost('term');
$suggestions = $this->giftcard->get_search_suggestions($search);
return $this->response->setJSON($suggestions);
}
/**
* @param int $row_id
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
$data_row = get_giftcard_data_row($this->giftcard->get_info($row_id));
return $this->response->setJSON($data_row);
}
/**
* @param int $giftcard_id
* @return string
*/
public function getView(int $giftcard_id = NEW_ENTRY): string
{
$config = config(OSPOS::class)->settings;
$giftcard_info = $this->giftcard->get_info($giftcard_id);
$data['selected_person_name'] = ($giftcard_id > 0 && isset($giftcard_info->person_id)) ? $giftcard_info->first_name . ' ' . $giftcard_info->last_name : '';
$data['selected_person_id'] = $giftcard_info->person_id;
if ($config['giftcard_number'] == 'random') {
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : '';
} else {
$max_number_obj = $this->giftcard->get_max_number();
$max_giftnumber = isset($max_number_obj) ? $this->giftcard->get_max_number()->giftcard_number : 0; // TODO: variable does not follow naming standard.
$data['giftcard_number'] = $giftcard_id > 0 ? $giftcard_info->giftcard_number : $max_giftnumber + 1;
}
$data['giftcard_id'] = $giftcard_id;
$data['giftcard_value'] = $giftcard_info->value;
return view("giftcards/form", $data);
}
/**
* @param int $giftcard_id
* @return ResponseInterface
*/
public function postSave(int $giftcard_id = NEW_ENTRY): ResponseInterface
{
$giftcard_number = $this->request->getPost('giftcard_number', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($giftcard_id == NEW_ENTRY && trim($giftcard_number) == '') {
$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' => parse_decimals($this->request->getPost('giftcard_amount')),
'person_id' => empty($this->request->getPost('person_id')) ? null : $this->request->getPost('person_id', FILTER_SANITIZE_NUMBER_INT)
];
if ($this->giftcard->save_value($giftcard_data, $giftcard_id)) {
// New giftcard
if ($giftcard_id == NEW_ENTRY) { // TODO: Constant needed
return $this->response->setJSON([
'success' => true,
'message' => lang('Giftcards.successful_adding') . ' ' . $giftcard_data['giftcard_number'],
'id' => $giftcard_data['giftcard_id']
]);
} else { // Existing giftcard
return $this->response->setJSON([
'success' => true,
'message' => lang('Giftcards.successful_updating') . ' ' . $giftcard_data['giftcard_number'],
'id' => $giftcard_id
]);
}
} else { // Failure
return $this->response->setJSON([
'success' => false,
'message' => lang('Giftcards.error_adding_updating') . ' ' . $giftcard_data['giftcard_number'],
'id' => NEW_ENTRY
]);
}
}
/**
* Checks the giftcard number validity. Used in app\Views\giftcards\form.php
*
* @return void
* @noinspection PhpUnused
*/
public function postCheckNumberGiftcard(): ResponseInterface
{
$existing_id = $this->request->getPost('giftcard_id', FILTER_SANITIZE_NUMBER_INT);
$giftcard_number = $this->request->getPost('giftcard_number', FILTER_SANITIZE_NUMBER_INT);
$giftcard_id = $this->giftcard->get_giftcard_id($giftcard_number);
$success = ($giftcard_id == (int) $existing_id || !$giftcard_id );
return $this->response->setJSON($success ? 'true' : 'false');
}
/**
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$giftcards_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($this->giftcard->delete_list($giftcards_to_delete)) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Giftcards.successful_deleted') . ' ' . count($giftcards_to_delete) . ' ' . lang('Giftcards.one_or_multiple')
]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Giftcards.cannot_be_deleted')]);
}
}
}

127
app/Controllers/Home.php Normal file
View File

@@ -0,0 +1,127 @@
<?php
namespace App\Controllers;
use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\ResponseInterface;
class Home extends Secure_Controller
{
public function __construct()
{
parent::__construct('home', null, 'home');
}
/**
* @return string
*/
public function getIndex(): string
{
$logged_in = $this->employee->is_logged_in();
return view('home/home');
}
/**
* Logs the currently logged in employee out of the system. Used in app/Views/partial/header.php
*
* @return RedirectResponse
* @noinspection PhpUnused
*/
public function getLogout(): RedirectResponse
{
$this->employee->logout();
return redirect()->to('login');
}
/**
* Load "change employee password" form
*
* @return ResponseInterface|string
* @noinspection PhpUnused
*/
public function getChangePassword(int $employeeId = NEW_ENTRY)
{
$loggedInEmployee = $this->employee->get_logged_in_employee_info();
$currentPersonId = $loggedInEmployee->person_id;
$employeeId = $employeeId === NEW_ENTRY ? $currentPersonId : $employeeId;
if (!$this->employee->isAdmin($currentPersonId) && $employeeId !== $currentPersonId) {
return $this->response->setStatusCode(403)->setBody(lang('Employees.unauthorized_modify'));
}
$person_info = $this->employee->get_info($employeeId);
foreach (get_object_vars($person_info) as $property => $value) {
$person_info->$property = $value;
}
$data['person_info'] = $person_info;
return view('home/form_change_password', $data);
}
/**
* Change employee password
*
* @return ResponseInterface
*/
public function postSave(int $employeeId = NEW_ENTRY): ResponseInterface
{
$currentUser = $this->employee->get_logged_in_employee_info();
$employeeId = $employeeId === NEW_ENTRY ? $currentUser->person_id : $employeeId;
if (!$this->employee->isAdmin($currentUser->person_id) && $employeeId !== $currentUser->person_id) {
return $this->response->setStatusCode(403)->setJSON([
'success' => false,
'message' => lang('Employees.unauthorized_modify')
]);
}
if (!empty($this->request->getPost('current_password')) && $employeeId != NEW_ENTRY) {
if ($this->employee->check_password($this->request->getPost('username', FILTER_SANITIZE_FULL_SPECIAL_CHARS), $this->request->getPost('current_password'))) {
// Validate password length BEFORE hashing
$new_password = $this->request->getPost('password');
if (strlen($new_password) < 8) {
return $this->response->setJSON([
'success' => false,
'message' => lang('Employees.password_minlength'),
'id' => NEW_ENTRY
]);
}
$employee_data = [
'username' => $this->request->getPost('username', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
'password' => password_hash($new_password, PASSWORD_DEFAULT),
'hash_version' => 2
];
if ($this->employee->change_password($employee_data, $employeeId)) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Employees.successful_change_password'),
'id' => $employeeId
]);
} else {
return $this->response->setJSON([
'success' => false,
'message' => lang('Employees.unsuccessful_change_password'),
'id' => NEW_ENTRY
]);
}
} else {
return $this->response->setJSON([
'success' => false,
'message' => lang('Employees.current_password_invalid'),
'id' => NEW_ENTRY
]);
}
} else {
return $this->response->setJSON([
'success' => false,
'message' => lang('Employees.current_password_invalid'),
'id' => NEW_ENTRY
]);
}
}
}

View File

@@ -0,0 +1,295 @@
<?php
namespace App\Controllers;
use App\Libraries\Barcode_lib;
use App\Models\Item;
use App\Models\Item_kit;
use App\Models\Item_kit_items;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
class Item_kits extends Secure_Controller
{
private Item $item;
private Item_kit $item_kit;
private Item_kit_items $item_kit_items;
public function __construct()
{
parent::__construct('item_kits');
$this->item = model(Item::class);
$this->item_kit = model(Item_kit::class);
$this->item_kit_items = model(Item_kit_items::class);
}
/**
* Add the total cost and retail price to a passed item_kit retrieving the data from each singular item part of the kit
*/
private function _add_totals_to_item_kit(object $item_kit): object // TODO: Hungarian notation
{
$kit_item_info = $this->item->get_info($item_kit->kit_item_id ?? $item_kit->item_id);
$item_kit->total_cost_price = 0;
$item_kit->total_unit_price = $kit_item_info->unit_price;
$total_quantity = 0;
foreach ($this->item_kit_items->get_info($item_kit->item_kit_id) as $item_kit_item) {
$item_info = $this->item->get_info($item_kit_item['item_id']);
foreach (get_object_vars($item_info) as $property => $value) {
$item_info->$property = $value;
}
$item_kit->total_cost_price += $item_info->cost_price * $item_kit_item['quantity'];
if ($item_kit->price_option == PRICE_OPTION_ALL || ($item_kit->price_option == PRICE_OPTION_KIT_STOCK && $item_info->stock_type == HAS_STOCK)) {
$item_kit->total_unit_price += $item_info->unit_price * $item_kit_item['quantity'];
$total_quantity += $item_kit_item['quantity'];
}
}
$discount_fraction = bcdiv($item_kit->kit_discount, '100');
$item_kit->total_unit_price = $item_kit->total_unit_price - round(($item_kit->kit_discount_type == PERCENT)
? bcmul($item_kit->total_unit_price, $discount_fraction)
: $item_kit->kit_discount, totals_decimals(), PHP_ROUND_HALF_UP);
return $item_kit;
}
/**
* @return string
*/
public function getIndex(): string
{
$data['table_headers'] = get_item_kits_manage_table_headers();
return view('item_kits/manage', $data);
}
/**
* Returns Item_kit table data rows. This will be called with AJAX.
*/
public function getSearch(): ResponseInterface
{
$search = $this->request->getGet('search') ?? '';
$limit = $this->request->getGet('limit', FILTER_SANITIZE_NUMBER_INT);
$offset = $this->request->getGet('offset', FILTER_SANITIZE_NUMBER_INT);
$sort = $this->sanitizeSortColumn(item_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);
$total_rows = $this->item_kit->get_found_rows($search);
$data_rows = [];
foreach ($item_kits->getResult() as $item_kit) {
// Calculate the total cost and retail price of the Kit, so it can be printed out in the manage table
$item_kit = $this->_add_totals_to_item_kit($item_kit);
$data_rows[] = get_item_kit_data_row($item_kit);
}
return $this->response->setJSON(['total' => $total_rows, 'rows' => $data_rows]);
}
/**
* @return ResponseInterface
*/
public function suggest_search(): ResponseInterface
{
$search = $this->request->getPost('term');
$suggestions = $this->item_kit->get_search_suggestions($search);
return $this->response->setJSON($suggestions);
}
/**
* @param int $row_id
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
// Calculate the total cost and retail price of the Kit, so it can be added to the table refresh
$item_kit = $this->_add_totals_to_item_kit($this->item_kit->get_info($row_id));
return $this->response->setJSON(get_item_kit_data_row($item_kit));
}
/**
* @param int $item_kit_id
* @return string
*/
public function getView(int $item_kit_id = NEW_ENTRY): string
{
$info = $this->item_kit->get_info($item_kit_id);
if ($item_kit_id == NEW_ENTRY) {
$info->price_option = '0';
$info->print_option = PRINT_ALL;
$info->kit_item_id = 0;
$info->item_number = '';
$info->kit_discount = 0;
}
foreach (get_object_vars($info) as $property => $value) {
$info->$property = $value;
}
$data['item_kit_info'] = $info;
$items = [];
foreach ($this->item_kit_items->get_info($item_kit_id) as $item_kit_item) {
$item['kit_sequence'] = $item_kit_item['kit_sequence'];
$item['name'] = $this->item->get_info($item_kit_item['item_id'])->name;
$item['item_id'] = $item_kit_item['item_id'];
$item['quantity'] = $item_kit_item['quantity'];
$items[] = $item;
}
$data['item_kit_items'] = $items;
$data['selected_kit_item_id'] = $info->kit_item_id;
$data['selected_kit_item'] = ($item_kit_id > 0 && isset($info->kit_item_id)) ? $info->item_name : '';
return view("item_kits/form", $data);
}
/**
* @param int $item_kit_id
* @return ResponseInterface
*/
public function postSave(int $item_kit_id = NEW_ENTRY): ResponseInterface
{
$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'),
'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')),
'description' => $this->request->getPost('description')
];
if ($this->item_kit->save_value($item_kit_data, $item_kit_id)) {
$new_item = false;
// New item kit
if ($item_kit_id == NEW_ENTRY) {
$item_kit_id = $item_kit_data['item_kit_id'];
$new_item = true;
}
$item_kit_items_array = $this->request->getPost('item_kit_qty') === null ? null : $this->request->getPost('item_kit_qty');
if ($item_kit_items_array != null) {
$item_kit_items = [];
foreach ($item_kit_items_array as $item_id => $item_kit_qty) {
$item_kit_items[] = [
'item_id' => $item_id,
'quantity' => $item_kit_qty === null ? 0 : parse_quantity($item_kit_qty),
'kit_sequence' => $this->request->getPost("item_kit_seq[$item_id]") === null ? 0 : intval($this->request->getPost("item_kit_seq[$item_id]"))
];
}
}
if (!empty($item_kit_items)) {
$success = $this->item_kit_items->save_value($item_kit_items, $item_kit_id);
} else {
$success = true;
}
if ($new_item) {
return $this->response->setJSON([
'success' => $success,
'message' => lang('Item_kits.successful_adding') . ' ' . $item_kit_data['name'],
'id' => $item_kit_id
]);
} else {
return $this->response->setJSON([
'success' => $success,
'message' => lang('Item_kits.successful_updating') . ' ' . $item_kit_data['name'],
'id' => $item_kit_id
]);
}
} else { // Failure
return $this->response->setJSON([
'success' => false,
'message' => lang('Item_kits.error_adding_updating') . ' ' . $item_kit_data['name'],
'id' => NEW_ENTRY
]);
}
}
/**
* @return ResponseInterface
*/
public function postDelete(): ResponseInterface
{
$item_kits_to_delete = $this->request->getPost('ids', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
if ($this->item_kit->delete_list($item_kits_to_delete)) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Item_kits.successful_deleted') . ' ' . count($item_kits_to_delete) . ' ' . lang('Item_kits.one_or_multiple')
]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Item_kits.cannot_be_deleted')]);
}
}
/**
* Checks the validity of the item kit number. Used in app/Views/item_kits/form.php
*
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function postCheckItemNumber(): ResponseInterface
{
$exists = $this->item_kit->item_number_exists($this->request->getPost('item_kit_number', FILTER_SANITIZE_FULL_SPECIAL_CHARS), $this->request->getPost('item_kit_id', FILTER_SANITIZE_NUMBER_INT));
return $this->response->setJSON(!$exists ? 'true' : 'false');
}
/**
* AJAX called function that generates barcodes for selected item_kits.
*
* @param string $item_kit_ids Colon separated list of item_kit_id values to generate barcodes for.
* @return string
* @noinspection PhpUnused
*/
public function getGenerateBarcodes(string $item_kit_ids): string
{
$barcode_lib = new Barcode_lib();
$result = [];
$item_kit_ids = explode(':', $item_kit_ids);
foreach ($item_kit_ids as $item_kid_id) {
// Calculate the total cost and retail price of the Kit, so it can be added to the barcode text at the bottom
$item_kit = $this->_add_totals_to_item_kit($this->item_kit->get_info($item_kid_id));
$item_kid_id = 'KIT ' . urldecode($item_kid_id);
$result[] = [
'name' => $item_kit->name,
'item_id' => $item_kid_id,
'item_number' => $item_kid_id,
'cost_price' => $item_kit->total_cost_price,
'unit_price' => $item_kit->total_unit_price
];
}
$data['items'] = $result;
$barcode_config = $barcode_lib->get_barcode_config();
// In case the selected barcode type is not Code39 or Code128 we set by default Code128
// The rationale for this is that EAN codes cannot have strings as seed, so 'KIT ' is not allowed
if ($barcode_config['barcode_type'] != 'C39' && $barcode_config['barcode_type'] != 'C128') {
$barcode_config['barcode_type'] = 'C128';
}
$data['barcode_config'] = $barcode_config;
// Display barcodes
return view("barcodes/barcode_sheet", $data);
}
}

1374
app/Controllers/Items.php Normal file
View File

File diff suppressed because it is too large Load Diff

74
app/Controllers/Login.php Normal file
View File

@@ -0,0 +1,74 @@
<?php
namespace App\Controllers;
use App\Libraries\MY_Migration;
use App\Models\Employee;
use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\Model;
use Config\OSPOS;
use Config\Services;
/**
* @property employee employee
*/
class Login extends BaseController
{
public Model $employee;
/**
* @return RedirectResponse|string
*/
public function index(): string|RedirectResponse
{
$this->employee = model(Employee::class);
if (!$this->employee->is_logged_in()) {
$migration = new MY_Migration(config('Migrations'));
$config = config(OSPOS::class)->settings;
$gcaptcha_enabled = array_key_exists('gcaptcha_enable', $config)
? $config['gcaptcha_enable']
: false;
$migration->migrate_to_ci4();
$validation = Services::validation();
$data = [
'has_errors' => false,
'is_latest' => $migration->is_latest(),
'latest_version' => $migration->get_latest_migration(),
'gcaptcha_enabled' => $gcaptcha_enabled,
'config' => $config,
'validation' => $validation
];
if ($this->request->getMethod() !== 'POST') {
return view('login', $data);
}
$rules = ['username' => 'required|login_check[data]'];
$messages = [
'username' => [
'required' => lang('Login.required_username'),
'login_check' => lang('Login.invalid_username_and_password'),
]
];
if (!$this->validate($rules, $messages)) {
$data['has_errors'] = !empty($validation->getErrors());
return view('login', $data);
}
if (!$data['is_latest']) {
set_time_limit(3600);
$migration->setNamespace('App')->latest();
return redirect()->to('login');
}
}
return redirect()->to('home');
}
}

View File

@@ -0,0 +1,91 @@
<?php
namespace App\Controllers;
use App\Libraries\Sms_lib;
use App\Models\Person;
use CodeIgniter\HTTP\ResponseInterface;
class Messages extends Secure_Controller
{
private Sms_lib $sms_lib;
public function __construct()
{
parent::__construct('messages');
$this->sms_lib = new Sms_lib();
}
/**
* @return string
*/
public function getIndex(): string
{
return view('messages/sms');
}
/**
* @param int $person_id
* @return string
*/
public function getView(int $person_id = NEW_ENTRY): string
{
$person = model(Person::class);
$info = $person->get_info($person_id);
foreach (get_object_vars($info) as $property => $value) {
$info->$property = $value;
}
$data['person_info'] = $info;
return view('messages/form_sms', $data);
}
/**
* @return ResponseInterface
*/
public function send(): ResponseInterface
{
$phone = $this->request->getPost('phone', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$message = $this->request->getPost('message', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$response = $this->sms_lib->sendSMS($phone, $message);
if ($response) {
return $this->response->setJSON(['success' => true, 'message' => lang('Messages.successfully_sent') . ' ' . esc($phone)]);
} else {
return $this->response->setJSON(['success' => false, 'message' => lang('Messages.unsuccessfully_sent') . ' ' . esc($phone)]);
}
}
/**
* Sends an SMS message to a user. Used in app/Views/messages/form_sms.php.
*
* @param int $person_id
* @return ResponseInterface
* @noinspection PhpUnused
*/
public function send_form(int $person_id = NEW_ENTRY): ResponseInterface
{
$phone = $this->request->getPost('phone', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$message = $this->request->getPost('message', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$response = $this->sms_lib->sendSMS($phone, $message);
if ($response) {
return $this->response->setJSON([
'success' => true,
'message' => lang('Messages.successfully_sent') . ' ' . esc($phone),
'person_id' => $person_id
]);
} else {
return $this->response->setJSON([
'success' => false,
'message' => lang('Messages.unsuccessfully_sent') . ' ' . esc($phone),
'person_id' => NEW_ENTRY
]);
}
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Controllers;
use App\Models\Module;
use CodeIgniter\HTTP\ResponseInterface;
/**
* Part of the grants mechanism to restrict access to modules that the user doesn't have permission for.
* Instantiated in the views.
*
* @property module module
*/
class No_access extends BaseController
{
private Module $module;
public function __construct()
{
$this->module = model(Module::class);
}
/**
* @param string $module_id
* @param string $permission_id
* @return string
*/
public function getIndex(string $module_id = '', string $permission_id = ''): string
{
$data['module_name'] = $this->module->get_module_name($module_id);
$data['permission_id'] = $permission_id;
return view('no_access', $data);
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Controllers;
use App\Models\Employee;
use CodeIgniter\HTTP\ResponseInterface;
/**
* @property Employee employee
*/
class Office extends Secure_Controller
{
protected Employee $employee;
public function __construct()
{
parent::__construct('office', null, 'office');
}
/**
* @return string
*/
public function getIndex(): string
{
return view('home/office');
}
/**
* @return void
*/
public function logout(): void
{
$this->employee = model(Employee::class);
$this->employee->logout();
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Controllers;
use App\Models\Person;
use CodeIgniter\HTTP\ResponseInterface;
use Config\Services;
use function Tamtamchik\NameCase\str_name_case;
abstract class Persons extends Secure_Controller
{
protected Person $person;
/**
* @param string|null $module_id
*/
public function __construct(?string $module_id = null)
{
parent::__construct($module_id);
$this->person = model(Person::class);
}
/**
* @return string
*/
public function getIndex(): string
{
$data['table_headers'] = get_people_manage_table_headers();
return view('people/manage', $data);
}
/**
* Gives search suggestions based on what is being searched for
* @return ResponseInterface
*/
public function getSuggest(): ResponseInterface
{
$search = $this->request->getGet('term');
$suggestions = $this->person->get_search_suggestions($search);
return $this->response->setJSON($suggestions);
}
/**
* Gets one row for a person manage table. This is called using AJAX to update one row.
* @return ResponseInterface
*/
public function getRow(int $row_id): ResponseInterface
{
$data_row = get_person_data_row($this->person->get_info($row_id));
return $this->response->setJSON($data_row);
}
/**
* Capitalize segments of a name, and put the rest into lower case.
* You can pass the characters you want to use as delimiters as exceptions.
* The function supports UTF-8 strings
*
* Example:
* i.e. <?php echo nameize("john o'grady-smith"); ?>
*
* returns John O'Grady-Smith
*/
protected function nameize(string $input): string
{
$adjusted_name = str_name_case($input);
// TODO: Use preg_replace to match HTML entities and convert them to lowercase. This is a workaround for https://github.com/tamtamchik/namecase/issues/20
return preg_replace_callback('/&[a-zA-Z0-9#]+;/', function ($matches) {
return strtolower($matches[0]);
}, $adjusted_name);
}
}

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