mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-09-13 13:57:34 -04:00
bugfix(items, validation): reject unsafe tax names and fix payments temp table collision - Add unicode_alpha_numeric_punct rule (OSPOSRules) to allow accented/CJK chars in text fields while blocking HTML-unsafe chars (<, >) as defense-in-depth against injection - Items controller: extract validateItemFields/validateBulkUpdateFields, validate tax_names on save and bulk update using new rule; add shared validateFields helper in Secure_Controller to DRY up validation + JSON error response - Escape tax_group output in sales/quote.php and receipt_email.php views to harden output encoding at render time - Rename sales_payments_temp -> sales_report_payments_temp (Summary_report) and -> sales_search_payments_temp (Sale model) to avoid name collision between concurrently-created temp tables - AGENTS.md: document alignment rule for => columns when inserting new language keys Tests: - Add ItemsControllerTest covering postSave/bulkupdate tax_names validation - Reject <, > in tax_names on /items/save and /items/bulkupdate - Verify unicode and apostrophe-containing tax names are accepted - Cover CSV import helpers: header generation (basic, multiple locations, attributes), stock-location/attribute header builders, get_csv_file parsing (plain, BOM-prefixed, multi-row) - Validate required-header detection for import templates - Remove outdated tax name test from SalesControllerTest - Simplify Database class references in SalesControllerTest i18n: - Add tax_name_invalid translation to Items.php for 20+ locales, inserted alphabetically after tax_category in each file - Normalize quote style in ar-EG/Items.php to single quotes - Add ka/Items.php Georgian locale scaffold Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
125 lines
8.6 KiB
PHP
125 lines
8.6 KiB
PHP
<?php
|
||
|
||
return [
|
||
'add_minus' => 'İnventar + Topla və ya - Çıx.',
|
||
'allow_alt_description' => 'Alternativ təsvirə icazə verin',
|
||
'amount_entry' => 'Məbləğ Əlavəsi',
|
||
'bulk_edit' => 'Kütləvi Redaktə',
|
||
'buy_price_required' => 'Alış qiyməti tələb olunan sahədir.',
|
||
'cannot_be_deleted' => 'Seçilmiş Mal (lar) silmək mükün deyil, bir və ya birdən çox Mallarda Satışlar var.',
|
||
'cannot_find_item' => 'Mal Tapılmadı.',
|
||
'categories' => '',
|
||
'category' => 'Bolmə',
|
||
'category_new' => '',
|
||
'category_required' => 'Bölmə sahəsi boş qala bilməz.',
|
||
'change_all_to_allow_alt_desc' => 'Hamısı üçün Alternativ Təsvirə İcazə Verin.',
|
||
'change_all_to_not_allow_allow_desc' => 'Hamısı üçün Alternativ Təsvirə İcazə Verməyin.',
|
||
'change_all_to_serialized' => 'Hamısını Seriyalaşdırılmışa görə dəyişin',
|
||
'change_all_to_unserialized' => 'Qeyri Seriyalara görə dəyiş',
|
||
'change_image' => 'Şəkili Dəyiş',
|
||
'confirm_bulk_edit' => 'Siz əminsinizmi ki işarələnmiş butun malları redaktə etmək istəyirsiniz?',
|
||
'confirm_bulk_edit_wipe_taxes' => 'Bütün Məhsul Vergisi məlumatları dəyişdiriləcək.',
|
||
'confirm_delete' => 'Seçilmiş element(ləri) silmək istədiyinizə əminsiniz?',
|
||
'confirm_restore' => 'Seçilmiş element (lər) bərpa etmək istədiyinizə əminsinizmi?',
|
||
'cost_price' => 'Topdan Satış qiyməti',
|
||
'cost_price_number' => 'Topdansatış qiyməti rəqəm olmalıdır.',
|
||
'cost_price_required' => 'Topdan satiış - doldurulması vacib sahə.',
|
||
'count' => 'inventorun yenilənməsi',
|
||
'csv_import_failed' => 'səhv csv import',
|
||
'csv_import_invalid_location' => '',
|
||
'csv_import_nodata_wrongformat' => 'Yüklənmiş faylda məlumat yoxdur və ya düzgün formatlanmır.',
|
||
'csv_import_partially_failed' => 'Xətlərdə {0} element idxalı uğursuzluq (lar) var: {1}. Heç bir sıra idxal edilmədi.',
|
||
'csv_import_success' => 'Malların İdxalı Uğurla Həyata Keçdi.',
|
||
'current_quantity' => 'indiki say',
|
||
'default_pack_name' => 'Hər biri',
|
||
'description' => 'təsvir',
|
||
'details_count' => 'detallı inventor sayı',
|
||
'do_nothing' => 'heç nə etməmək',
|
||
'edit' => '',
|
||
'edit_fields_you_want_to_update' => 'Seçilmiş məhsullar üçün tələb olunan sahələri redaktə edin.',
|
||
'edit_multiple_items' => 'bir neçə malın redaktəsi',
|
||
'empty_upc_items' => 'Boş Barkod Malları',
|
||
'error_adding_updating' => 'mal əlavə etməkdə və ya yeniləməkdə səhv var',
|
||
'error_updating_multiple' => 'malların yenilənməsində səhv var',
|
||
'generate_barcodes' => 'şifrə yarat',
|
||
'hsn_code' => 'Harmonize Sistem Nomenklaturası',
|
||
'image' => 'Avatar',
|
||
'import_items_csv' => 'CSVdən Malları İdxal Et',
|
||
'info_provided_by' => 'Məlumat təqdim olundu',
|
||
'inventory' => 'inventor',
|
||
'inventory_CSV_import_quantity' => 'Miqdarı CSV-dən idxal olunur',
|
||
'inventory_comments' => 'komentariyalar',
|
||
'inventory_data_tracking' => 'İnventarlaşdırma Üçün Məlumat İzləmə',
|
||
'inventory_date' => 'Tarix',
|
||
'inventory_employee' => 'Əmakdaş',
|
||
'inventory_in_out_quantity' => 'Daxili və Xarici Say',
|
||
'inventory_remarks' => 'Qeydlər',
|
||
'is_deleted' => 'Silindi',
|
||
'is_printed' => '',
|
||
'is_serialized' => 'Malın Seriya Nömrəsi var',
|
||
'item' => 'Mal',
|
||
'item_id' => '',
|
||
'item_number' => 'Barkod',
|
||
'item_number_duplicate' => 'Malın Nömrəsi artiq Məlumat bazasında var.',
|
||
'item_number_invalid' => 'Malın Nömrəsində icazə verilməyən simvollar var.',
|
||
'kit' => 'Dəst',
|
||
'location' => 'Yer',
|
||
'low_inventory_items' => 'Bitmış Mallar',
|
||
'low_sell_item' => 'Malların aşağı qiy. satışı',
|
||
'manually_editing_of_quantity' => 'Sayı Əl ilə Redeaktə Etmək',
|
||
'markup' => '',
|
||
'name' => 'Malın Adı',
|
||
'name_required' => 'Malın adı olan sahə boş qala bilməz.',
|
||
'new' => 'Yeni Mal',
|
||
'no_description_items' => 'Mallar haqqında Təsvir Yoxdur',
|
||
'no_items_to_display' => 'Mallar Göstərilmir.',
|
||
'none' => 'Heçnə',
|
||
'none_selected' => 'Siz redaktə etmək üçün hər hansı bir mal seçməmisiniz',
|
||
'nonstock' => 'Əldə Olmayan',
|
||
'number_information' => 'Malın Nömrəsi',
|
||
'number_required' => 'Barkod tələb olunan sahədir.',
|
||
'one_or_multiple' => 'Mal (lar)',
|
||
'pack_name' => 'Paket Adı',
|
||
'qty_per_pack' => 'Paketin miqdarı',
|
||
'quantity' => 'Sayı',
|
||
'quantity_number' => 'Miqdarı mütləq rəqəmlə olmalıdır.',
|
||
'quantity_required' => 'Miqyas tələb olunan sahədir.',
|
||
'receiving_quantity' => 'Qəbul Olunan Miqdar',
|
||
'remove_image' => 'Şəkili Sil',
|
||
'reorder_level' => 'Səviyyani yenidən düzəlt',
|
||
'reorder_level_number' => 'Yenidən sıralama səviyyəsi rəqəmlə olmalıdır.',
|
||
'reorder_level_required' => 'Düzəliş Səviyyəsi zəruri bir sahədir.',
|
||
'retrive_item_info' => 'Mal Haqqında Məlumat',
|
||
'sales_tax_1' => 'Satış Vergisi',
|
||
'sales_tax_2' => 'Satış Vergisi 2',
|
||
'search_attributes' => 'Atributları Axtar',
|
||
'select_image' => 'Şəkil Seç',
|
||
'serialized_items' => 'Seriyalı Mallar',
|
||
'standard' => 'Standart',
|
||
'stock' => 'Ehtiyyat',
|
||
'stock_location' => 'Ehtiyyatın Yerləşdiyi Yer',
|
||
'stock_type' => 'Ehtiyyatda olanın Növü',
|
||
'successful_adding' => 'Siz uğurla malı əlavə etdiniz',
|
||
'successful_bulk_edit' => 'Siz uğurla bütun mallari yenilədiniz',
|
||
'successful_deleted' => 'Siz uğurla sildiniz',
|
||
'successful_updating' => 'Siz uğurla malı yenilədiniz',
|
||
'supplier' => 'Təchizatcı',
|
||
'tax_1' => 'Vergi 1',
|
||
'tax_2' => 'Vergi 2',
|
||
'tax_3' => '',
|
||
'tax_category' => 'Vergi Bolməsi',
|
||
'tax_name_invalid' => 'Vergi adında icazə verilməyən simvollar var.',
|
||
'tax_percent' => 'Vergi Faizi',
|
||
'tax_percent_number' => 'Vergi Faizi rəqəmli dəyər vahidi olmalıdir',
|
||
'tax_percent_required' => 'Vergi Faizi tələb olunan sahədir.',
|
||
'tax_percents' => 'Vergi Faiz(lər) i',
|
||
'temp' => 'Müvəqqəti',
|
||
'type' => 'Malın Növü',
|
||
'unit_price' => 'Pərakəndə Satış',
|
||
'unit_price_number' => 'Vahid qiyməti rəqəmlə olmalıdır.',
|
||
'unit_price_required' => 'Pərakəndə qiymət - vacib sahədir.',
|
||
'upc_database' => 'Barkod Məlumat Bazası',
|
||
'update' => 'Malı Yenilə',
|
||
'use_inventory_menu' => 'İnvertizasiya Menyusundan İstifadə Et',
|
||
];
|